From 53cc4a78b5cfa522ee70b58909203f83b560cfc3 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Fri, 22 Mar 2024 11:32:28 +0800 Subject: [PATCH 01/13] =?UTF-8?q?2024-3-22=20=E5=9F=BA=E7=A1=80=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=E8=AE=BE=E5=A4=87?= =?UTF-8?q?-=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=88=AB=E9=80=89=E6=8B=A9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/wms/controller/BaseEquipmentController.java | 9 +++++++++ .../main/java/com/op/wms/mapper/BaseEquipmentMapper.java | 3 +++ .../java/com/op/wms/service/IBaseEquipmentService.java | 2 ++ .../op/wms/service/impl/BaseEquipmentServiceImpl.java | 9 +++++++++ .../main/resources/mapper/wms/BaseEquipmentMapper.xml | 9 +++++++++ 5 files changed, 32 insertions(+) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java index b15c51b8..e39cbc74 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java @@ -277,4 +277,13 @@ public class BaseEquipmentController extends BaseController { List list = baseEquipmentService.selectBYRecordsList(baseEquipment); return getDataTable(list); } + + /** + * 查询设备类型(字典中的) + */ + @GetMapping("/getEquipmentTypeDeptList") + public TableDataInfo getEquipmentTypeDeptList(BaseEquipment baseEquipment) { + List list = baseEquipmentService.getEquipmentTypeDeptList(baseEquipment); + return getDataTable(list); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java index 05753314..4c1aae93 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java @@ -135,4 +135,7 @@ public interface BaseEquipmentMapper { //查询辅助设备 List selectEquipmentListByCategory(BaseEquipment baseEquipment); + + //查询设备类型(维护在字典中的) + List getEquipmentTypeDeptList(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java index d4ed29d5..fec24879 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java @@ -93,4 +93,6 @@ public interface IBaseEquipmentService { //辅助设备列表 List selectEquipmentListByCategory(BaseEquipment baseEquipment); + + List getEquipmentTypeDeptList(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java index 330a7668..6204554c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java @@ -616,4 +616,13 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { public List selectBYRecordsList(BaseEquipment baseEquipment) { return baseEquipmentMapper.selectBYRecordsList(baseEquipment); } + + /** + * 查询设备类型 + */ + @Override + @DS("master") + public List getEquipmentTypeDeptList(BaseEquipment baseEquipment) { + return baseEquipmentMapper.getEquipmentTypeDeptList(baseEquipment); + } } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml index cf87e858..73f685fc 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml @@ -710,4 +710,13 @@ and plan_type = 'maintenance' + + From 29c2ca8448a8a03762985767f6461c9e277fbbb8 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 22 Mar 2024 12:22:34 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=8A=A5=E5=B7=A5+=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=87=8D=E5=A4=8D+=E5=85=B6=E5=AE=83?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E5=8A=9F=E8=83=BD=E6=94=B9=E5=96=842?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/op/job/task/RyTask.java | 15 +++++----- .../java/com/op/open/mapper/OpenMapper.java | 2 ++ .../op/open/service/impl/OpenServiceImpl.java | 29 ++++++++++++------- .../main/resources/mapper/open/OpenMapper.xml | 6 ++++ .../plan/controller/ProOrderController.java | 1 - .../plan/mapper/ProOrderWorkorderMapper.java | 4 +++ .../service/impl/ProOrderServiceImpl.java | 24 +++++++++++++-- .../mapper/plan/ProOrderWorkorderMapper.xml | 22 +++++++++++++- .../impl/QcCheckTaskIncomeServiceImpl.java | 15 ++++------ .../impl/QcCheckTaskProduceServiceImpl.java | 20 +++++++------ 10 files changed, 96 insertions(+), 42 deletions(-) diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index fb387861..394e2fbc 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -157,9 +157,15 @@ public class RyTask { /************质量管理系统定时任务开始*****************/ //过程巡检,每3分钟执行检查一次 public void createProduceXJTask(){ - logger.info("++质量管理系统+过程巡检+开始++createProduceXJTask+++++"); + logger.info("++质量管理系统+过程巡检任务创建+开始++createProduceXJTask+++++"); remoteQualityService.createProduceXJTask(); } + + //来料检验批量检验任务创建,每30分钟执行一次 + public void createIncomeBatchTask(){ + logger.info("++质量管理系统+来料检验任务创建+开始++createIncomeBatchTask+++++"); + remoteQualityService.createIncomeBatchTask(); + } /************质量管理系统定时任务结束*****************/ /************hr 人力基础数据定时任务开始*****************/ @@ -182,12 +188,5 @@ public class RyTask { } /************部门基础数据定时任务开始*****************/ - /************质量管理系统-来料检验批量检验任务创建-定时任务开始*****************/ - //来料检验批量检验任务创建,每30分钟执行一次 - public void createIncomeBatchTask(){ - logger.info("++质量管理系统+来料检验批量检验任务创建+开始++createIncomeBatchTask+++++"); - remoteQualityService.createIncomeBatchTask(); - } - /************质量管理系统-来料检验批量检验任务创建-定时任务结束*****************/ } diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 85ccc6cf..3bd8ad5f 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -80,5 +80,7 @@ public interface OpenMapper { List getCheckUsers(String checkType); public int addCheckUsers(@Param("list") List users); + + String getSampNum(QcCheckTaskProduceDTO sampQua); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index da094dcb..52b75d54 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -372,24 +372,33 @@ public class OpenServiceImpl implements OpenService { int m = openMapper.addCheckUsers(users); logger.info(qcCheckTaskProduce.getOrderNo()+":检查人新增" + m + "成功"); - /**qc_check_type_project**/ + /**qc_check_type_project**///个性 List items = openMapper.getTPByTypeMaterial(qctp); - if (CollectionUtils.isEmpty(items)) { - /**qc_material_group_detail**/ - QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); - if (group == null) { - logger.info(qcCheckTaskProduce.getOrderNo()+":"+qcCheckTaskProduce.getMaterialCode()+"没有维护物料组检测项,检验任务生成失败"); - return 0;//没有找到检测项目 - } - qctp.setGroupId(group.getGroupId());//共性 - items = openMapper.getTPByTypeGroup(qctp); + + /**qc_material_group_detail**/ + QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); + if (group == null) { + group = new QcMaterialGroupDetailDTO(); + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); } + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = openMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); /**qc_check_task_detail**/ if (CollectionUtils.isEmpty(items)) { return 0;//没有找到检测项目 } + /**qc_sample_rule**/ + QcCheckTaskProduceDTO sampQua = new QcCheckTaskProduceDTO(); + sampQua.setCheckType(qcCheckTaskProduce.getCheckType()); + sampQua.setQuality(qcCheckTaskProduce.getQuality()); + String sampNum = openMapper.getSampNum(sampQua); + if(StringUtils.isNotBlank(sampNum)){ + qcCheckTaskProduce.setSampleQuality(new BigDecimal(sampNum)); + } + /**qc_check_task**/ qcCheckTaskProduce.setRecordId(beLongId); qcCheckTaskProduce.setFactoryCode(factoryCode); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 6e780f62..aa7436fe 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -201,6 +201,12 @@ from qc_user_material qum where qum.material_code = #{checkType} and pow.del_flag = '0' and qum.del_flag = '0' + insert into equ_repair_order diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index f3915d6f..08a18768 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -292,7 +292,6 @@ public class ProOrderController extends BaseController { return proOrderService.syncSAPOrders(); } /** - * 下发生产工单。workorderIds:母工单号 * 如果改成复选,需要考虑很多中订单组合情况 * 所以尽量不要动 */ diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index b9e518f0..72fc7853 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -197,5 +197,9 @@ public interface ProOrderWorkorderMapper { List getOrderByOrders(@Param("orderIds") String[] orderIds); List checkBatchCodes(@Param("batchs") List formFields); + + List getUnSplitOrder(@Param("orderIds") String[] orderIds); + + ProOrderWorkorder selectSonOrder(String parentOrder); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 5ae7f845..c76adc38 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1094,10 +1094,27 @@ public class ProOrderServiceImpl implements IProOrderService { @Transactional(rollbackFor = Exception.class) public int deleteOrder(String[] orderIds) { - //未拆分,直接关闭订单 + //未拆分、部分拆分,直接关闭订单 List checkOrders = proOrderWorkorderMapper.getOrderByOrders(orderIds); if(!CollectionUtils.isEmpty(checkOrders)){ - int m0 = proOrderMapper.deleteProOrderByIds(orderIds); + List allOrderIds = new ArrayList<>(); + for(ProOrderWorkorder order:checkOrders){ + String topOrderCode = order.getOrderCode(); + allOrderIds.add(order.getOrderId()); + Boolean run = true; + while (run) { + //下级 + ProOrderWorkorder sonOrder = proOrderWorkorderMapper.selectSonOrder(topOrderCode); + //有下级code + if (sonOrder != null) { + allOrderIds.add(sonOrder.getOrderId()); + topOrderCode = sonOrder.getOrderCode(); + } else { + run = false; + } + } + } + int m0 = proOrderMapper.deleteProOrderByIds(allOrderIds.toArray(new String[allOrderIds.size()])); logger.info(orderIds[0]+"删除订单m0:"+m0); return 1; } @@ -1107,6 +1124,7 @@ public class ProOrderServiceImpl implements IProOrderService { if(checkWorkOrders.size() != orderIds.length){ return 2; } + for(ProOrderWorkorder workorder:checkWorkOrders){ //要删除的工单id们 List delteIds = new ArrayList<>(); @@ -1178,7 +1196,7 @@ public class ProOrderServiceImpl implements IProOrderService { if(!CollectionUtils.isEmpty(repeatBatchCodes)){ return StringUtils.join(repeatBatchCodes, ","); } - return ""; + return ""; } public static void main(String args[]){ diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 583eb34c..8fdca2a1 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -535,7 +535,7 @@ and pow.del_flag = '0' + + insert into mes_prepare_detail diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 9ac1a3f5..e88e9018 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -150,22 +150,17 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { QcCheckTypeProject qctp= new QcCheckTypeProject(); qctp.setTypeId(qcCheckTaskIncome.getCheckType());//生产过程检验 qctp.setMaterialCode(qcCheckTaskIncome.getMaterialCode());//特性 - /**qc_check_type_project**/ + /**qc_check_type_project**///个性 List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - /**qc_material_group_detail**/ - //个性 QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskIncome.getMaterialCode()); -// if(group == null){ -// return 0;//没有找到检测项目 -// } - if(Objects.isNull(group)){ - return 0;//没有找到检测项目 - } //共性 + if(group == null){//默认 + group = new QcMaterialGroupDetail(); + group.setGroupId("729971295b734782b544f9d6d06fb8b9"); + } qctp.setGroupId(group.getGroupId()); List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); - items.addAll(itemsGG); /**qc_check_task_detail**/ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index 0d6572cd..ee0810c1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -27,6 +27,7 @@ import com.op.quality.service.IQcCheckTaskUserService; import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; +import com.op.system.api.domain.quality.QcMaterialGroupDetailDTO; import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -158,17 +159,18 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService QcCheckTypeProject qctp= new QcCheckTypeProject(); qctp.setTypeId(qcCheckTaskProduce.getCheckType());//生产过程检验 qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 - /**qc_check_type_project**/ + /**qc_check_type_project**///个性 List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - if(CollectionUtils.isEmpty(items)){ - /**qc_material_group_detail**/ - QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); - if(group == null){ - return 0;//没有找到检测项目 - } - qctp.setGroupId(group.getGroupId());//共性 - items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); + if(group == null){ + group = new QcMaterialGroupDetail(); + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); } + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); /**qc_check_task_detail**/ if(CollectionUtils.isEmpty(items)){ From 26ab01f44c94d1e49b3feb716a86fadb68ba7ce0 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 22 Mar 2024 14:52:02 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=8A=A5=E5=B7=A5+=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=87=8D=E5=A4=8D+=E5=85=B6=E5=AE=83?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E5=8A=9F=E8=83=BD=E6=94=B9=E5=96=843?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 8fdca2a1..17c09b36 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -546,7 +546,7 @@ From ff952cf2499d14d1d17922e3c0d71d2de260747e Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Fri, 22 Mar 2024 16:14:16 +0800 Subject: [PATCH 08/13] =?UTF-8?q?wms=E6=88=90=E5=93=81=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B921?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/wms/service/impl/WmsProductPutServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 4454ebcd..015878ea 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -685,7 +685,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { //成品销售出库--确认接口---修改出库单,--出库库存 WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoById(wmsSellOutEmbryo.getId()); Integer tem= wmsProductPutTrayCodeList.size(); - BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem)); + BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); WmsSellOutEmbryo wmsSellOutEmbryoUpdate=new WmsSellOutEmbryo(); if (result == 0){//出库完 @@ -695,7 +695,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { } wmsSellOutEmbryoUpdate.setId(wmsSellOutEmbryo.getId()); wmsSellOutEmbryoUpdate.setOutQuantity(OutQuantity); - wmsSellOutEmbryoMapper.updateWmsSellOutEmbryo(wmsSellOutEmbryo); + wmsSellOutEmbryoMapper.updateWmsSellOutEmbryo(wmsSellOutEmbryoUpdate); //订单修改完成 for(WmsProductPutTrayCode wmsProductPutTrayCode: wmsProductPutTrayCodeList){//库存修改 //解除绑定 From ab377c74138ebcb44f4251e6413759d8e4e06206 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 22 Mar 2024 21:16:19 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E6=8A=A5=E5=B7=A5+=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=87=8D=E5=A4=8D+=E5=85=B6=E5=AE=83?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E5=8A=9F=E8=83=BD=E6=94=B9=E5=96=846?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/IWCInterfaceServiceImpl.java | 32 ----- .../impl/MesReportWorkConsumeServiceImpl.java | 110 +++++++++++++----- .../mapper/mes/MesReportWorkConsumeMapper.xml | 3 +- .../mapper/mes/MesReportWorkMapper.xml | 2 +- .../service/impl/ProOrderServiceImpl.java | 41 ++++--- .../mapper/plan/ProOrderWorkorderMapper.xml | 2 +- .../QcCheckTaskIncomeController.java | 75 ++++++------ 7 files changed, 139 insertions(+), 126 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 2edfbc70..09383f65 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -347,12 +347,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return R.fail("子母工单信息缺失"); } - /**修改sap物料损耗组成**/ - R updateBomsSap = this.updateAttr1BomsSap(workOrders); - if(updateBomsSap.getCode()== 500){ - return updateBomsSap; - } - R sapRson = null; if(workOrders.size()==1){ /**(一层报工)工单报工**/ @@ -440,32 +434,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } return sapRson; } - //修改报工物料组成 - private R updateAttr1BomsSap(List workOrderCodes) { - //是否有变动的物料损耗组成 - List updateBoms = mesReportWorkMapper.getUpdateAttr1Boms(workOrderCodes.get(workOrderCodes.size()-1)); - if(!CollectionUtils.isEmpty(updateBoms)){ - List> mapList = new ArrayList<>(); - Map mapBom = null; - for(MesReportWorkConsume updateBom:updateBoms){ - mapBom = new HashMap(); - mapBom.put("P_AUFNR",updateBom.getWorkorderCodeSap());// 订单号 例如:000100308287 - mapBom.put("P_MATNR",updateBom.getMaterialCode());// 物料号 例如:000000040000015089 - //mapBom.put("P_GMEIN",updateBom.getUnit());// 基本计量单位 例如:m - mapBom.put("P_WERKS",workOrderCodes.get(0).getFactoryCode());//物料工厂 例如:1000 - mapBom.put("P_LGORT",updateBom.getWarehouseCode());//仓库编号 例如:0013 - mapList.add(mapBom); - } - - logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() - + "报工损耗物料组件修改请求:" + JSONObject.toJSONString(mapList)); - R bomUpdateR = remoteSapService.shopOrderBomUpdate(mapList); - logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() - + "报工损耗物料组件修改结果:" + JSONObject.toJSONString(bomUpdateR)); - return bomUpdateR; - } - return R.ok(); - } /** * diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 65f44bfd..2a11d2ed 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -4,13 +4,16 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.mes.domain.*; import com.op.mes.mapper.MesReportWorkMapper; +import com.op.system.api.RemoteSapService; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; @@ -38,6 +41,9 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer @Autowired private MesReportWorkMapper mesReportWorkMapper; + @Autowired + private RemoteSapService remoteSapService; + /** * 查询生产报工物料消耗 * @@ -164,42 +170,82 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer @Override @DS("#header.poolName") public int submitConsumePS(List mesReportWorkConsumes) { - Date nowTime = DateUtils.getNowDate(); - String updateBy = SecurityUtils.getUsername(); - for (MesReportWorkConsume mesReportWorkConsume : mesReportWorkConsumes) { - mesReportWorkConsume.setUpdateTime(nowTime); - mesReportWorkConsume.setUpdateBy(updateBy); + + //根据belong_work_order找到sap工单(子子母) + List workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWorkConsumes.get(0).getParentOrder()); + if (CollectionUtils.isEmpty(workOrders)) { + return 0; } - List updates = mesReportWorkConsumes - .stream() - .filter(u -> u.getCreateTime()!=null).collect(Collectors.toList()); - List adds = mesReportWorkConsumes - .stream() - .filter(u -> u.getCreateTime()==null).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(adds)){ - Map consumeInfoMap = new HashMap<>(); - for(MesReportWorkConsume add:adds){ - MesReportWorkConsume newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); - if(newConsumeInfo==null){ - MesReportWorkConsume mapItem = mesReportWorkConsumeMapper.getNewConsumeInfo(add.getWorkorderCode()); - consumeInfoMap.put(add.getWorkorderCode(),mapItem); + + /**修改sap物料损耗组成**/ + R updateBomsSap = this.updateAttr1BomsSap(workOrders); + if(updateBomsSap.getCode()== 500){ + return 0; + }else { + Date nowTime = DateUtils.getNowDate(); + String updateBy = SecurityUtils.getUsername(); + for (MesReportWorkConsume mesReportWorkConsume : mesReportWorkConsumes) { + mesReportWorkConsume.setUpdateTime(nowTime); + mesReportWorkConsume.setUpdateBy(updateBy); + } + List updates = mesReportWorkConsumes + .stream() + .filter(u -> u.getCreateTime() != null).collect(Collectors.toList()); + List adds = mesReportWorkConsumes + .stream() + .filter(u -> u.getCreateTime() == null).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(adds)) { + Map consumeInfoMap = new HashMap<>(); + for (MesReportWorkConsume add : adds) { + MesReportWorkConsume newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); + if (newConsumeInfo == null) { + MesReportWorkConsume mapItem = mesReportWorkConsumeMapper.getNewConsumeInfo(add.getWorkorderCode()); + consumeInfoMap.put(add.getWorkorderCode(), mapItem); + } + newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); + + add.setRecordId(IdUtils.fastSimpleUUID()); + add.setReportCode(newConsumeInfo.getReportCode()); + add.setWorkorderCode(newConsumeInfo.getWorkorderCode()); + add.setCreateTime(nowTime); + add.setCreateTime(nowTime); + add.setAttr1("1");//新增标识 + add.setParentOrder(newConsumeInfo.getParentOrder()); } - newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); - - add.setRecordId(IdUtils.fastSimpleUUID()); - add.setReportCode(newConsumeInfo.getReportCode()); - add.setWorkorderCode(newConsumeInfo.getWorkorderCode()); - add.setCreateTime(nowTime); - add.setCreateTime(nowTime); - add.setAttr1("1");//新增标识 - add.setParentOrder(newConsumeInfo.getParentOrder()); + int addNum = mesReportWorkConsumeMapper.addConsumePS(adds); + System.out.println("addNum:" + addNum); + } + int updateNum = mesReportWorkConsumeMapper.submitConsumePS(updates); + System.out.println("addNum:" + updateNum); + return updateNum; + } + } + + //修改报工物料组成 + private R updateAttr1BomsSap(List workOrderCodes) { + //是否有变动的物料损耗组成 + List updateBoms = mesReportWorkMapper.getUpdateAttr1Boms(workOrderCodes.get(workOrderCodes.size()-1)); + if(!CollectionUtils.isEmpty(updateBoms)){ + List> mapList = new ArrayList<>(); + Map mapBom = null; + for(MesReportWorkConsume updateBom:updateBoms){ + mapBom = new HashMap(); + mapBom.put("P_AUFNR",updateBom.getWorkorderCodeSap());// 订单号 例如:000100308287 + mapBom.put("P_MATNR",updateBom.getMaterialCode());// 物料号 例如:000000040000015089 + //mapBom.put("P_GMEIN",updateBom.getUnit());// 基本计量单位 例如:m + mapBom.put("P_WERKS",workOrderCodes.get(0).getFactoryCode());//物料工厂 例如:1000 + mapBom.put("P_LGORT",updateBom.getWarehouseCode());//仓库编号 例如:0013 + mapList.add(mapBom); } - int addNum =mesReportWorkConsumeMapper.addConsumePS(adds); - System.out.println("addNum:"+addNum); + + logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() + + "报工损耗物料组件修改请求:" + JSONObject.toJSONString(mapList)); + R bomUpdateR = remoteSapService.shopOrderBomUpdate(mapList); + logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() + + "报工损耗物料组件修改结果:" + JSONObject.toJSONString(bomUpdateR)); + return bomUpdateR; } - int updateNum =mesReportWorkConsumeMapper.submitConsumePS(updates); - System.out.println("addNum:"+updateNum); - return updateNum; + return R.ok(); } @Override diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index 9b5cb4a9..d45efda4 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -105,7 +105,8 @@ pow.workorder_code_sap workorderCodeSap, mrwc.attr1, mrwc.warehouse_code warehouseCode, - mpd.quantity planQuantity + mpd.quantity planQuantity, + mrwc.parent_order parentOrder from mes_report_work_consume mrwc left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code left join mes_prepare_detail mpd on mpd.parent_work_order = pow.belong_work_order diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 9a5b2bcf..1ef6fb75 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -687,7 +687,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pow.workorder_code_sap workorderCodeSap, mrwc.warehouse_code warehouseCode from mes_report_work_consume mrwc - left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code + left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code where mrwc.attr1 = '1' and mrwc.del_flag = '0' and mrwc.parent_order = #{workorderCode} diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index c76adc38..0b119c07 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1093,33 +1093,36 @@ public class ProOrderServiceImpl implements IProOrderService { @DS("#header.poolName") @Transactional(rollbackFor = Exception.class) public int deleteOrder(String[] orderIds) { + //只准一个个的删 - //未拆分、部分拆分,直接关闭订单 List checkOrders = proOrderWorkorderMapper.getOrderByOrders(orderIds); if(!CollectionUtils.isEmpty(checkOrders)){ - List allOrderIds = new ArrayList<>(); - for(ProOrderWorkorder order:checkOrders){ - String topOrderCode = order.getOrderCode(); - allOrderIds.add(order.getOrderId()); - Boolean run = true; - while (run) { - //下级 - ProOrderWorkorder sonOrder = proOrderWorkorderMapper.selectSonOrder(topOrderCode); - //有下级code - if (sonOrder != null) { - allOrderIds.add(sonOrder.getOrderId()); - topOrderCode = sonOrder.getOrderCode(); - } else { - run = false; + if(checkOrders.get(0).equals("o0")){ + //未拆分,直接关闭订单 + List allOrderIds = new ArrayList<>(); + for(ProOrderWorkorder order:checkOrders){ + String topOrderCode = order.getOrderCode(); + allOrderIds.add(order.getOrderId()); + Boolean run = true; + while (run) { + //下级 + ProOrderWorkorder sonOrder = proOrderWorkorderMapper.selectSonOrder(topOrderCode); + //有下级code + if (sonOrder != null) { + allOrderIds.add(sonOrder.getOrderId()); + topOrderCode = sonOrder.getOrderCode(); + } else { + run = false; + } } } + int m0 = proOrderMapper.deleteProOrderByIds(allOrderIds.toArray(new String[allOrderIds.size()])); + logger.info(orderIds[0]+"删除订单m0:"+m0); + return 1; } - int m0 = proOrderMapper.deleteProOrderByIds(allOrderIds.toArray(new String[allOrderIds.size()])); - logger.info(orderIds[0]+"删除订单m0:"+m0); - return 1; } - //已经存在工单可以进行订单关闭的数据 + //完全拆分已经存在工单可以进行订单关闭的数据 List checkWorkOrders = proOrderWorkorderMapper.getWorkOrderByOrders(orderIds); if(checkWorkOrders.size() != orderIds.length){ return 2; diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 17c09b36..18185476 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -541,7 +541,7 @@ #{orderId} - and status in ('o1','o0') and del_flag = '0' + and del_flag = '0' @@ -877,8 +877,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" upload_msg = null where workorder_code = #{workorderCode} or parent_order = #{workorderCode} + + update mes_report_work_consume + set attr2 = '1' + where parent_order = #{workorderCode} and attr1= '1' + - + update mes_report_work set del_flag = '1' where id = #{id} From a38d0d32e5776d49c63204c94db09cff0ea5a55a Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 25 Mar 2024 10:55:39 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B910?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/mes/MesReportWorkConsumeMapper.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index d45efda4..f5c05a81 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -52,6 +52,7 @@ and factory_code = #{factoryCode} and recoil = #{recoil} and del_flag = '0' + and quantity != '.00' @@ -86,6 +87,12 @@ and bp.product_group_name like concat('%',#{productGroupName}, '%') + + and bp.product_code not in( + select material_code from mes_report_work_consume + where workorder_code = #{workorderCode} or parent_order = #{workorderCode} and del_flag='0' + ) +