diff --git a/src/main/java/com/spring/modules/part/mapper/RoutingManagementMapper.java b/src/main/java/com/spring/modules/part/mapper/RoutingManagementMapper.java index a8cce1f1..809135e5 100644 --- a/src/main/java/com/spring/modules/part/mapper/RoutingManagementMapper.java +++ b/src/main/java/com/spring/modules/part/mapper/RoutingManagementMapper.java @@ -177,7 +177,7 @@ public interface RoutingManagementMapper extends BaseMapper void syncSaveWorkCenter(List subList); - void syncUpdateWorkCenter(WorkCenter toUpdate); + void syncUpdateWorkCenter(List toUpdate); RoutingComponentEntity getRoutingComponentRowKeyAndVersion(@Param("operationId") Integer operationId); diff --git a/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java b/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java index 577bcf8b..2041c557 100644 --- a/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java +++ b/src/main/java/com/spring/modules/part/service/impl/RoutingManagementServiceImpl.java @@ -1392,15 +1392,12 @@ public class RoutingManagementServiceImpl extends ServiceImpl subList = toUpdate.subList(i, end); routingManagementMapper.syncUpdateLocation(subList); } -// for (LocationInformationEntity locationInformationEntity : toUpdate) { -// routingManagementMapper.syncUpdateLocation(locationInformationEntity); -// } } } @@ -1470,15 +1467,12 @@ public class RoutingManagementServiceImpl extends ServiceImpl subList = toUpdate.subList(i, end); routingManagementMapper.syncUpdateLaborClass(subList); } -// for (PersonnelLevel personnelLevel : toUpdate) { -// routingManagementMapper.syncUpdateLaborClass(personnelLevel); -// } } } @@ -1538,7 +1532,7 @@ public class RoutingManagementServiceImpl extends ServiceImpl subList = toAdd.subList(i, end); @@ -1547,16 +1541,16 @@ public class RoutingManagementServiceImpl extends ServiceImpl subList = toUpdate.subList(i, end); -// -// } - for (WorkCenter workCenter : toUpdate) { - routingManagementMapper.syncUpdateWorkCenter(workCenter); + // 分批修改 + int batchSize = 50; // 假设每批100条记录 + for (int i = 0; i < toUpdate.size(); i += batchSize) { + int end = Math.min(i + batchSize, toUpdate.size()); + List subList = toUpdate.subList(i, end); + routingManagementMapper.syncUpdateWorkCenter(subList); } +// for (WorkCenter workCenter : toUpdate) { +// routingManagementMapper.syncUpdateWorkCenter(workCenter); +// } } } diff --git a/src/main/java/com/spring/modules/part/task/PartRelatedTask.java b/src/main/java/com/spring/modules/part/task/PartRelatedTask.java index 48c4c673..4c27afeb 100644 --- a/src/main/java/com/spring/modules/part/task/PartRelatedTask.java +++ b/src/main/java/com/spring/modules/part/task/PartRelatedTask.java @@ -49,9 +49,9 @@ public class PartRelatedTask { laborClassVo.setSiteCon(siteCon); routingManagementService.syncLaborClassToPLM(laborClassVo); // 同步加工中心 - WorkCenterVo workCenterVo = new WorkCenterVo(); - workCenterVo.setSiteCon(siteCon); - routingManagementService.syncWorkCenterToPLM(workCenterVo); +// WorkCenterVo workCenterVo = new WorkCenterVo(); +// workCenterVo.setSiteCon(siteCon); +// routingManagementService.syncWorkCenterToPLM(workCenterVo); // 同步unitValue InventoryPartUnitCostSumVo unitCostVo = new InventoryPartUnitCostSumVo(); unitCostVo.setSiteCon(siteCon); diff --git a/src/main/resources/mapper/part/PartInformationMapper.xml b/src/main/resources/mapper/part/PartInformationMapper.xml index 50cfad04..ab27b7bd 100644 --- a/src/main/resources/mapper/part/PartInformationMapper.xml +++ b/src/main/resources/mapper/part/PartInformationMapper.xml @@ -2007,16 +2007,35 @@ - UPDATE inventory_part_unit_cost_sum SET - - inventory_value = #{item.inventoryValue}, - lot_batch_no = #{item.lotBatchNo}, - serial_no = #{item.serialNo}, - ifs_row_version = #{item.ifsRowVersion} + UPDATE inventory_part_unit_cost_sum + SET + inventory_value = CASE + + WHEN site = #{item.site} AND part_no = #{item.partNo} AND configuration_id = #{item.configurationId} THEN #{item.inventoryValue} - WHERE - - site = #{item.site} and part_no = #{item.partNo} and configuration_id = #{item.configurationId} + ELSE inventory_value + END, + lot_batch_no = CASE + + WHEN site = #{item.site} AND part_no = #{item.partNo} AND configuration_id = #{item.configurationId} THEN #{item.lotBatchNo} + + ELSE lot_batch_no + END, + serial_no = CASE + + WHEN site = #{item.site} AND part_no = #{item.partNo} AND configuration_id = #{item.configurationId} THEN #{item.serialNo} + + ELSE serial_no + END, + ifs_row_version = CASE + + WHEN site = #{item.site} AND part_no = #{item.partNo} AND configuration_id = #{item.configurationId} THEN #{item.ifsRowVersion} + + ELSE ifs_row_version + END + WHERE (site, part_no, configuration_id) IN + + #{item.site}, #{item.partNo}, #{item.configurationId} diff --git a/src/main/resources/mapper/part/RoutingManagementMapper.xml b/src/main/resources/mapper/part/RoutingManagementMapper.xml index dd39403e..ece4b38b 100644 --- a/src/main/resources/mapper/part/RoutingManagementMapper.xml +++ b/src/main/resources/mapper/part/RoutingManagementMapper.xml @@ -1174,18 +1174,43 @@ - UPDATE location SET - - location_name = #{item.locationName}, - active = #{item.active}, - warehouse_id = #{item.warehouseId}, - location_type = #{item.locationType}, - ifs_row_version = #{item.ifsRowVersion} + UPDATE location + SET + location_name = CASE location_id + + WHEN #{item.locationId} THEN #{item.locationName} - WHERE - - location_id = #{item.locationId} AND site = #{item.site} + ELSE location_name + END, + active = CASE location_id + + WHEN #{item.locationId} THEN #{item.active} + + ELSE active + END, + warehouse_id = CASE location_id + + WHEN #{item.locationId} THEN #{item.warehouseId} + + ELSE warehouse_id + END, + location_type = CASE location_id + + WHEN #{item.locationId} THEN #{item.locationType} + + ELSE location_type + END, + ifs_row_version = CASE location_id + + WHEN #{item.locationId} THEN #{item.ifsRowVersion} + ELSE ifs_row_version + END + WHERE location_id IN + + #{item.locationId} + + AND site = #{list[0].site} @@ -1233,17 +1258,37 @@ - UPDATE labor_class SET - - level_desc = #{item.levelDesc}, - active = #{item.active}, - level_cost = #{item.levelCost}, - ifs_row_version = #{item.ifsRowVersion} + UPDATE labor_class + SET + level_desc = CASE level_id + + WHEN #{item.levelId} THEN #{item.levelDesc} - WHERE - - level_id = #{item.levelId} AND site = #{item.site} + ELSE level_desc + END, + active = CASE level_id + + WHEN #{item.levelId} THEN #{item.active} + + ELSE active + END, + level_cost = CASE level_id + + WHEN #{item.levelId} THEN #{item.levelCost} + ELSE level_cost + END, + ifs_row_version = CASE level_id + + WHEN #{item.levelId} THEN #{item.ifsRowVersion} + + ELSE ifs_row_version + END + WHERE level_id IN + + #{item.levelId} + + AND site = #{list[0].site} @@ -1301,51 +1346,126 @@ + + + UPDATE work_center + SET + work_center_desc = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.workCenterDesc} + + ELSE work_center_desc + END, + work_center_type_db = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.workCenterTypeDB} + + ELSE work_center_type_db + END, + work_center_type = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.workCenterType} + + ELSE work_center_type + END, + average_capacity = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.averageCapacity,jdbcType=DECIMAL} + + ELSE average_capacity + END, + efficiency = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.efficiency,jdbcType=DECIMAL} + + ELSE efficiency + END, + utilization = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.utilization,jdbcType=DECIMAL} + + ELSE utilization + END, + capacity_type_db = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.capacityTypeDB} + + ELSE capacity_type_db + END, + capacity_type = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.capacityType} + + ELSE capacity_type + END, + um_id = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.umId} + + ELSE um_id + END, + active = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.active} + + ELSE active + END, + remark = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.remark} + + ELSE remark + END, + pro_line_no = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.proLineNo} + + ELSE pro_line_no + END, + can_create_new_roll_flag = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.canCreateNewRollFlag} + + ELSE can_create_new_roll_flag + END, + need_setup_flag = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.needSetupFlag} + + ELSE need_setup_flag + END, + ifs_row_version = CASE work_center_no + + WHEN #{item.workCenterNo} THEN #{item.ifsRowVersion} + + ELSE ifs_row_version + END + WHERE work_center_no IN + + #{item.workCenterNo} + + AND site = #{list[0].site} + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - UPDATE work_center SET - work_center_desc = #{workCenterDesc}, - work_center_type_db = #{workCenterTypeDB}, - work_center_type = #{workCenterType}, - average_capacity = #{averageCapacity,jdbcType=DECIMAL}, - efficiency = #{efficiency,jdbcType=DECIMAL}, - utilization = #{utilization,jdbcType=DECIMAL}, - capacity_type_db = #{capacityTypeDB}, - capacity_type = #{capacityType}, - um_id = #{umId}, - active = #{active}, - remark = #{remark}, - pro_line_no = #{proLineNo}, - can_create_new_roll_flag = #{canCreateNewRollFlag}, - need_setup_flag = #{needSetupFlag}, - ifs_row_version = #{ifsRowVersion} - WHERE work_center_no = #{workCenterNo} AND site = #{site} -