select bmi.material_id,
bmi.erp_id,
bmi.material_code,
bmi.old_material_code,
bmi.material_name,
bmi.material_categories,
bmi.material_subclass,
bmi.material_type_id,
bmt.type_name material_type_name,
bmi.batch_flag,
bmi.batch_amount,
bmi.material_unit_id,
bmi.material_unit,
bmi.material_matkl,
bmi.material_spec,
bmi.net_weight,
bmi.gross_weight,
bmi.always_flag,
bmi.factory_id,
bmi.create_org_id,
bmi.purchase_price_unit_id,
bmi.use_org_id,
bmi.material_classfication,
bmi.prodline_id,
bmi.active_flag,
bmi.deleted_flag,
bmi.apply_flag,
bmi.material_classfication,
bmi.auto_outstock_flag,
bmi.accessories_flag,
bmi.low_value_consumable_flag,
bmi.remark,
bmi.create_by,
bmi.create_time,
bmi.update_by,
bmi.update_time,
bmi.approve_date,
bmi.erp_modify_date,
bmi.safe_stock_amount,
mbui.unit_name,
wst.availableAmount,
IF(wst.availableAmount >= bmi.safe_stock_amount, '1', '0') isExceeded
from mes_base_material_info bmi
left join mes_base_material_type bmt on bmt.matrial_type_id = bmi.material_type_id
left join mes_base_unit_info mbui on bmi.material_unit_id = mbui.erp_id
left join (select material_id, SUM(total_amount - occupy_amount) availableAmount
from wms_stock_total
GROUP BY material_id) wst on bmi.material_id = wst.material_id
insert into mes_base_material_info
erp_id,
material_code,
old_material_code,
material_name,
material_categories,
material_subclass,
material_type_id,
batch_flag,
material_unit_id,
material_unit,
material_matkl,
material_spec,
net_weight,
gross_weight,
factory_id,
create_org_id,
use_org_id,
prodline_id,
material_classfication,
active_flag,
deleted_flag,
remark,
create_by,
create_time,
update_by,
update_time,
approve_date,
erp_modify_date,
#{erpId},
#{materialCode},
#{oldMaterialCode},
#{materialName},
#{materialCategories},
#{materialSubclass},
#{materialTypeId},
#{batchFlag},
#{materialUnitId},
#{materialUnit},
#{materialMatkl},
#{materialSpec},
#{netWeight},
#{grossWeight},
#{factoryId},
#{createOrgId},
#{useOrgId},
#{prodlineId},
#{materialClassfication},
#{activeFlag},
#{deletedFlag},
#{remark},
#{createBy},
#{createTime},
#{updateBy},
#{updateTime},
#{approveDate},
#{erpModifyDate},
update mes_base_material_info
erp_id = #{erpId},
material_code = #{materialCode},
old_material_code = #{oldMaterialCode},
material_name = #{materialName},
material_categories =
#{materialCategories},
material_subclass = #{materialSubclass},
material_type_id = #{materialTypeId},
batch_flag = #{batchFlag},
batch_amount = #{batchAmount},
material_unit_id = #{materialUnitId},
material_unit = #{materialUnit},
material_matkl = #{materialMatkl},
material_spec = #{materialSpec},
net_weight = #{netWeight},
gross_weight = #{grossWeight},
always_flag = #{alwaysFlag},
factory_id = #{factoryId},
create_org_id = #{createOrgId},
use_org_id = #{useOrgId},
prodline_id = #{prodlineId},
active_flag = #{activeFlag},
deleted_flag = #{deletedFlag},
remark = #{remark},
create_by = #{createBy},
create_time = #{createTime},
update_by = #{updateBy},
update_time = #{updateTime},
approve_date = #{approveDate},
safe_stock_amount = #{safeStockAmount},
erp_modify_date = #{erpModifyDate},
always_flag = #{alwaysFlag},
batch_amount = #{batchAmount},
auto_outstock_flag = #{autoOutstockFlag},
accessories_flag = #{accessoriesFlag},
low_value_consumable_flag = #{lowValueConsumableFlag},
where material_id = #{materialId}
delete
from mes_base_material_info
where material_id = #{materialId}
delete from mes_base_material_info where material_id in
#{materialId}