From 0df8aa8a511ad4f8ceffc1ac287e6b29c7b7bc4f Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 29 Aug 2024 17:56:21 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=A0=87=E8=AF=86=E5=8D=A1=E5=92=8C?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E9=A1=B9=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plan/mapper/ProOrderWorkorderMapper.java | 4 + .../impl/ProOrderWorkorderServiceImpl.java | 43 +++++++--- .../mapper/plan/ProOrderWorkorderMapper.xml | 36 +++++++-- .../mapper/QcCheckTypeProjectMapper.java | 1 + .../impl/QcCheckTaskInventoryServiceImpl.java | 24 ++++++ .../quality/QcCheckTaskIncomeMapper.xml | 3 +- .../quality/QcCheckTaskInventoryMapper.xml | 79 +++++-------------- .../quality/QcCheckTypeProjectMapper.xml | 9 ++- 8 files changed, 119 insertions(+), 80 deletions(-) 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 c99b5c2d0..48041c6c4 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 @@ -235,6 +235,7 @@ public interface ProOrderWorkorderMapper { List getBatchDict(String batchFlag); List getPreIdCardList(ProOrderWorkorder proOrderWorkorder); + List getPreIdCardListB(ProOrderWorkorder proOrderWorkorder); int addBatchPallet(@Param("list")List dtos); @@ -244,5 +245,8 @@ public interface ProOrderWorkorderMapper { void updateOnePallet(ProOrderWorkorder pw);//更新一个标识卡 List getBatchCode(String workorderId);//获取批次号下拉框 + + void cleanCard(ProOrderWorkorder proOrderWorkorder); + } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 6d5f23090..8de4d91ca 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -1269,8 +1269,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { @DS("#header.poolName") public List getIdCardList(ProOrderWorkorder proOrderWorkorder) { List dtos = new ArrayList<>(); - List dtos0 = proOrderWorkorderMapper.getPreIdCardList(proOrderWorkorder); - if(!CollectionUtils.isEmpty(dtos0) && dtos0.get(0).getPalletNo() == null && proOrderWorkorder.getAddFlag().equals("0")){//说明没生成过标识卡 增打标志0 + //清除之前的非补打的 + List dtos0 = null; + if(proOrderWorkorder.getPalletNo()==null&&proOrderWorkorder.getAddFlag().equals("0")) {//不是增打和补打 + proOrderWorkorderMapper.cleanCard(proOrderWorkorder); + } + if(proOrderWorkorder.getAddFlag().equals("0")&&proOrderWorkorder.getPalletNo()==null){//非增打标志0 + dtos0 = proOrderWorkorderMapper.getPreIdCardList(proOrderWorkorder); ProOrderWorkorder pw = null; int i = 1; Date nowDate = DateUtils.getNowDate(); @@ -1295,8 +1300,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { pw.setUnit(pow.getUnit()); pw.setUmrez(pw.getBatchQuantity().multiply(pow.getUmrez()));//子单数量 pw.setPalletNo(i++); - pw.setPalletCode(pow.getProductCode().replace("0000000","") + "-" +pow.getWorkorderCode() + "-" - + pow.getBatchCode() + "-" + pw.getPalletNo());//workorderCode 实际上是订单号 + //批次+板号+物料+工单号 + pw.setPalletCode( + pow.getBatchCode() + "-" + + pw.getPalletNo() + "-" + + pow.getProductCode().replace("0000000","") + "-" + + pow.getWorkorderCode().replace("000","") + );//workorderCode 实际上是订单号 pw.setCreateTime(nowDate); pw.setCreateBy(SecurityUtils.getUsername()); pw.setAddFlag("0");//增打标志 @@ -1305,18 +1315,28 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } } } - if(!CollectionUtils.isEmpty(dtos)){ + if(!CollectionUtils.isEmpty(dtos)) {//不是增打和补打 proOrderWorkorderMapper.addBatchPallet(dtos); + proOrderWorkorder.setProdType("1");//补打标识临时借用 + List dtosZ = proOrderWorkorderMapper.getPreIdCardListB(proOrderWorkorder);//增打 + if(!CollectionUtils.isEmpty(dtosZ)){ + dtos.addAll(dtosZ); + } } - }else if(proOrderWorkorder.getAddFlag().equals("1")){ + }else if(proOrderWorkorder.getAddFlag().equals("1")){//增打 //增打 增打过来的会有批次号、批次数量、板次 增打标志1 根据唯一二维码去判断是不是生成过标识卡 有增打标志 Integer palletNo = proOrderWorkorder.getPalletNo();//板次 proOrderWorkorder.setPalletNo(null);//板次置空 去查询 获取产品等信息 List dtos1 = proOrderWorkorderMapper.getPreIdCardList(proOrderWorkorder); ProOrderWorkorder pow = dtos1.get(0); proOrderWorkorder.setPalletNo(palletNo); - String uniqueBarCode = pow.getProductCode().replace("0000000","") + "-" + - pow.getWorkorderCode() + "-" + proOrderWorkorder.getBatchCode() + "-" + palletNo;//订单号+批次+板次 唯一二维码标识 + //批次+板号+物料+工单号 +// String uniqueBarCode = pow.getProductCode().replace("0000000","") + "-" + +// pow.getWorkorderCode() + "-" + proOrderWorkorder.getBatchCode() + "-" + palletNo;//订单号+批次+板次 唯一二维码标识 + String uniqueBarCode = proOrderWorkorder.getBatchCode() + "-" + + palletNo + "-" + + pow.getProductCode().replace("0000000","") + "-" + + pow.getWorkorderCode().replace("000",""); ProOrderWorkorder pw = new ProOrderWorkorder(); pw.setProductName(pow.getProductName());//产品名 pw.setWorkorderCode(pow.getWorkorderCode());//工单号 实际是订单号 @@ -1348,9 +1368,10 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { return dto; } dtos.add(pw); - - }else if(!CollectionUtils.isEmpty(dtos0) && dtos0.get(0).getPalletNo() != null && proOrderWorkorder.getAddFlag().equals("0")){ - dtos.addAll(dtos0); + }else if(proOrderWorkorder.getAddFlag().equals("0") + &&proOrderWorkorder.getPalletNo()!=null){////补打 + dtos = proOrderWorkorderMapper.getPreIdCardListB(proOrderWorkorder); + dtos.get(0).setUmrez(dtos.get(0).getBatchQuantity().multiply(dtos.get(0).getUmrez()));//子单数量 } return dtos; } 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 55ddc3c32..68438b1ef 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 @@ -686,20 +686,40 @@ pow.product_date productDateStr, pow.workorder_code_sap workorderCode, powb.batch_code batchCode, - case when powbp.quantity is not null then powbp.quantity - else powb.batch_quantity end batchQuantity,pow.unit, + powb.batch_quantity batchQuantity, + pow.unit, bpa.pallet_num palletNum, - concat(REPLACE(pow.product_code, '0000000', ''),'-',pow.workorder_code_sap,'-', powb.batch_code,'-',powbp.pallet_num) palletCode, - powbp.pallet_num palletNo, bp.umrez from pro_order_workorder pow left join pro_order_workorder_batch powb on pow.workorder_id = powb.workorder_id left join base_product_attached bpa on concat('0000000',bpa.product_code) = pow.product_code left join base_product bp on bp.product_code = pow.product_code + where pow.workorder_code = #{workorderCode} and pow.del_flag = '0' and powb.del_flag = '0' + order by powb.batch_code + + @@ -847,6 +867,7 @@ and pow.del_flag = '0' and pow.workorder_id = #{workorderId} + INSERT INTO pro_order_workorder_batch_pallet ( id,workorder_code,batch_code,quantity,pallet_num,create_by, @@ -984,6 +1005,11 @@ #{orderId} + + delete from pro_order_workorder_batch_pallet where workorder_code in( + select workorder_code_sap from pro_order_workorder where workorder_code = #{workorderCode} + ) and add_flag = '0' + update qc_check_task set income_batch_no = #{newIncomeBatchNo} where income_batch_no = #{incomeBatchNo} and order_no = #{orderNo} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java index 4975b7037..f1d302eb1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java @@ -83,4 +83,5 @@ public interface QcCheckTypeProjectMapper { QcProjectType getProductGroup(String materialCode); QcMaterialGroupDetail selectExist(QcMaterialGroupDetail materialGroupDetail); + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java index e5538ae61..ac0f64bb4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java @@ -28,6 +28,7 @@ import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysNoticeGroup; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.dto.WechartDTO; +import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -209,6 +210,29 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer } //检验人插入 qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + }else{//定时任务触发 + qcCheckTaskInventory.setCheckManName(""); + qcCheckTaskInventory.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + List users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskInventory.getCheckType()); + if(CollectionUtils.isEmpty(users)){ + QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setUserCode("mobile"); + dto0.setUserName("手持测试用户"); + users.add(dto0); + }else{ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskInventory.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + } + /**qc_check_task_user**/ + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); } /** 不良品数据插入 */ BigDecimal noOkQuality = new BigDecimal(0); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index fa37c7b2f..6b54fd0c4 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -139,7 +139,7 @@ td.property_code propertyCode, td.check_mode checkMode, td.check_tool checkTool, - td.unit_code unitCode, + dic.dict_label unitCode, td.check_standard checkStandard, td.actual_value actualValue, td.status, @@ -161,6 +161,7 @@ qctp.weight from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id + left join lanju_op_cloud.dbo.sys_dict_data dic on dic.dict_value = td.unit_code and dic.status ='0' where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' and td.rule_name is not null order by qctp.sort diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml index 4ea2660b1..56de2728f 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml @@ -298,68 +298,29 @@ t0.quality, t0.incomeTime, t0.supplierCode, - t0.supplierName + t0.supplierName, + t0.check_Type from ( - select t.*,bp.warehouse_cycle, - case when qct.create_time is not null then DATEDIFF(day, qct.create_time, GETDATE()) - else DATEDIFF(day, t.incomeTime, GETDATE()) end days - from ( - SELECT - wms_raw_order_in_sn.po_no AS orderNo, - wms_raw_order_in_sn.material_code AS materialCode, - wms_raw_order_in_sn.material_desc AS materialName, - COUNT(wms_raw_order_in_sn.amount) AS quality, - wms_raw_order_in_sn.gmt_create incomeTime, - wms_raw_order_in_sn.wh_code supplierCode, - base_warehouse.warehouse_name supplierName, - wms_raw_order_in_sn.user_defined4 unit - FROM - wms_raw_order_in_sn - LEFT JOIN base_warehouse ON base_warehouse.warehouse_code=wms_raw_order_in_sn.wh_code - WHERE - wms_raw_order_in_sn.active_flag = '1' - GROUP BY - wms_raw_order_in_sn.wh_code, - wms_raw_order_in_sn.po_no, - wms_raw_order_in_sn.material_code, - wms_raw_order_in_sn.material_desc, - wms_raw_order_in_sn.user_defined4, - base_warehouse.warehouse_code, - base_warehouse.warehouse_name, - wms_raw_order_in_sn.gmt_create - union all - SELECT - wms_fp_storage_news_sn.order_no, - wms_fp_storage_news_sn.product_name, - wms_fp_storage_news_sn.product_code, - SUM ( wms_fp_storage_news_sn.amount ) AS total_amount, - wms_fp_storage_news_sn.gmt_create, - wms_fp_storage_news_sn.wh_code , - base_warehouse.warehouse_name, - wms_fp_storage_news_sn.user_defined3 - FROM - wms_fp_storage_news_sn - LEFT JOIN base_warehouse ON base_warehouse.warehouse_code=wms_fp_storage_news_sn.wh_code - WHERE - wms_fp_storage_news_sn.active_flag = '1' - GROUP BY - wms_fp_storage_news_sn.order_no, - wms_fp_storage_news_sn.product_name, - wms_fp_storage_news_sn.product_code, - wms_fp_storage_news_sn.gmt_create, - wms_fp_storage_news_sn.user_defined3, - base_warehouse.warehouse_code, - base_warehouse.warehouse_name, - wms_fp_storage_news_sn.wh_code - ) t - left join base_product_attached bp on t.materialCode = concat('0000000',bp.product_code) - left join ( + select t.order_no orderNo, + t.material_code materialCode, + t.material_name materialName, + t.quality quality, + t.income_time incomeTime, + t.supplier_code supplierCode, + t.supplier_name supplierName, + t.check_type check_Type, + bp.warehouse_cycle, + case when qct.create_time is not null then DATEDIFF(day, qct.create_time, GETDATE()) + else DATEDIFF(day, t.income_time, GETDATE()) end days + from qc_check_task t + left join base_product_attached bp on t.material_code = concat('0000000',bp.product_code) + left join ( select order_no,material_code,max(create_time) create_time from qc_check_task where check_type='checkTypeCC' and del_flag = '0' GROUP BY order_no,material_code - ) qct on qct.order_no = t.orderNo - and t.materialCode = qct.material_code - where bp.warehouse_cycle is not null - )t0 + ) qct on qct.order_no = t.order_no + and t.material_code = qct.material_code + where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0' + )t0 where t0.days >= t0.warehouse_cycle diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml index e95c68323..82bc7ed1f 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml @@ -42,7 +42,7 @@ diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml index 7f1e79958..5560f2771 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsFpStorageNewsSnMapper.xml @@ -48,7 +48,8 @@ and product_name like concat('%', #{productName}, '%') - and product_code = #{productCode} + and product_code like concat('%',#{productCode} , + '%') and sn = #{sn} and bar_code = #{barCode} and amount = #{amount} From bb82554e6f62e30a20e99d939f3dbf317560c7ec Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 29 Aug 2024 18:45:11 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=97=A0=E7=94=A8=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/mes/service/impl/MesInspectionReportServiceImpl.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInspectionReportServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInspectionReportServiceImpl.java index c087ae8e2..fbcb03bd7 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInspectionReportServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInspectionReportServiceImpl.java @@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.StringUtils; -import com.op.common.core.utils.uuid.IdUtils; -import com.op.common.core.web.domain.AjaxResult; import com.op.mes.domain.MesInspectionReport; import com.op.mes.mapper.MesInspectionReportMapper; import com.op.mes.service.IMesInspectionReportService; @@ -14,9 +12,6 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import sun.reflect.misc.ReflectUtil; - -import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; From 60640bfe48a985aea9d97efa4b069873e52c8730 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Fri, 30 Aug 2024 10:46:29 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=85=A5=E5=BA=93=E4=BF=AE=E6=94=B91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsToWCSmissionController.java | 7 +- .../wms/service/IOdsProcureOrderService.java | 2 + .../impl/OdsProcureOrderServiceImpl.java | 176 +++++++++++++++++- 3 files changed, 183 insertions(+), 2 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index 1df02da55..1545e9166 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -787,6 +787,11 @@ public class WmsToWCSmissionController { OdsProcureOrder odsProcureOrder1 = odsProcureOrderService.selectOrderCard(odsProcureOrder); return success(odsProcureOrder1); } - + // + @PostMapping("/addOrderCard") + public AjaxResult addOrderCard(@RequestBody OdsProcureOrder odsProcureOrder) { + String result = odsProcureOrderService.addOrderCard(odsProcureOrder); + return success(result); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java index db3a73621..f81dcc856 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java @@ -117,4 +117,6 @@ public interface IOdsProcureOrderService { String getIdCardListDA(OdsProcureOrder odsProcureOrder); OdsProcureOrder selectOrderCard(OdsProcureOrder odsProcureOrder); + + String addOrderCard(OdsProcureOrder odsProcureOrder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 6df4db65c..3bdd0e7b9 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -43,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.op.wms.service.IOdsProcureOrderService; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -779,7 +780,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { mapList.add(paramMap); R result2 = remoteSapService.temporarilyCollected(mapList); int code = result2.getCode(); - if (code == 200){//成功 + if (code == 200){ + //成功 Map map = new HashMap(); map = (Map) result2.getData(); String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT"); @@ -1212,6 +1214,178 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { return order; } + @Override + @Transactional + public String addOrderCard(OdsProcureOrder odsProcureOrder) { + //他有两部分,分别是单子和标识卡,修改单子,把标识卡保存修改库存 + String result1="操作成功"; + //收货记录--rawOrderInSnId。修改收货数量------------- + DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); + //--receiptNoCode收货单号 + OdsProcureOrder order = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); + //查询出对应的采购单 + List orderList= odsProcureOrder.getList(); + //对应采购单的标识卡 + + //wms_raw_order_in_sn + BigDecimal Tme=new BigDecimal("0"); + for (OdsProcureOrder order1: + orderList) { + //标识卡信息 + //wms_raw_order_in_sn + WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn(); + wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID()); + wmsRawOrderInSn.setUserDefined1("2");//1是收货,2是入库 + wmsRawOrderInSn.setUserDefined2(order.getUserDefined7());//批次 + wmsRawOrderInSn.setWhCode(odsProcureOrder.getWhCode());//厂库编号 + wmsRawOrderInSn.setWaCode(odsProcureOrder.getWaCode()); + wmsRawOrderInSn.setWlCode(order1.getSn());//库位设置为托盘 + wmsRawOrderInSn.setPoNo(order.getProcureCode());//采购单号 + wmsRawOrderInSn.setPoLine(odsProcureOrder.getPoLine());//行项目 + wmsRawOrderInSn.setMaterialCode(order1.getMaterialCode()); + wmsRawOrderInSn.setMaterialDesc(order1.getMaterialDesc()); + wmsRawOrderInSn.setAmount(order1.getPlanNumber());//实际输入数量 + wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderInSn.setCreateBy(odsProcureOrder.getCreateBy()); + wmsRawOrderInSn.setGmtCreate(new Date()); + wmsRawOrderInSn.setActiveFlag("1"); + wmsRawOrderInSn.setUserDefined4(order.getUnit());//单位 + wmsRawOrderInSn.setSn(order1.getSn());//托盘号 + wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderInSn.setUserDefined3(order.getID()); + wmsRawOrderInSn.setUserDefined5(odsProcureOrder.getReceiptNoCode()); + wmsRawOrderInSn.setUserDefined6(order1.getUserDefined6());//标识码绑定 + wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn); + //标识码绑定 + if (order1.getUserDefined6()!=null){ + WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable(); + wmsLogotypeTable.setId(IdUtils.fastSimpleUUID()); + wmsLogotypeTable.setLogotype(order1.getUserDefined6()); + wmsLogotypeTable.setSn(order1.getSn()); + wmsLogotypeTable.setActiveFlag("1"); + wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable); + } + //插入收货记录 + //如果收货完成了的话,就插入信息收货完成 + odsProcureOrder.setPlanNumber(order1.getPlanNumber());//操作数量 + odsProcureOrder.setOrderStatus("1"); + BigDecimal result = order.getRealityNumber().add(order1.getPlanNumber()); + if (result.equals(order.getPlanNumber())) { + odsProcureOrder.setOrderStatus("2");// + } + odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); + Tme= Tme.add(order1.getPlanNumber()); + //单据修改完成 + } + //标识卡记录已经录入,订单已经修改完成 + + BigDecimal amount= Tme;//要入库的数量 + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + paramMap.put("EBELN",order.getProcureCode()); + paramMap.put("EBELP",order.getUserDefined3()); + paramMap.put("MATNR",order.getMaterialCode()); + paramMap.put("WERKS",order.getSiteCode()); + paramMap.put("QUANTITY",amount.toString()); + mapList.add(paramMap); + R result2 = remoteSapService.temporarilyCollected(mapList); + int code = result2.getCode(); + if (code == 200){ + Map map = new HashMap(); + map = (Map) result2.getData(); + String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT"); + String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR"); + order.setSapTempInfor(result2.getMsg()); + WmsRawOrderIn wmsRawOrderIn=new WmsRawOrderIn(); + wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID()); + wmsRawOrderIn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderIn.setDnNo(odsProcureOrder.getReceiptNoCode()); + wmsRawOrderIn.setPoNo(order.getProcureCode()); + wmsRawOrderIn.setPoLine(order.getUserDefined3()); + wmsRawOrderIn.setMaterialCode(order.getMaterialCode()); + wmsRawOrderIn.setMaterialDesc(order.getMaterialDesc()); + wmsRawOrderIn.setRequestAmount(amount); + wmsRawOrderIn.setUnit(order.getUnit()); + wmsRawOrderIn.setRequestTime(new Date()); + wmsRawOrderIn.setOrderStatus("0");//暂收 + wmsRawOrderIn.setActiveFlag("1"); + wmsRawOrderIn.setSupplyCode(order.getSupplierCode()); + //wmsRawOrderIn.setUserDefined1(); + wmsRawOrderIn.setAccountingStatus("0");//0是暂收 + wmsRawOrderIn.setUserDefined1(MATERIALDOCUMENT);//物料凭证编号 + wmsRawOrderIn.setUserDefined2(MATDOCUMENTYEAR);//年凭证号 + wmsRawOrderIn.setUserDefined3(result2.getMsg());//暂收信息 + //wmsRawOrderIn.setAccountingMessage(result2.getMsg()); + wmsRawOrderIn.setSapFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderIn.setCreateBy(odsProcureOrder.getCreateBy()); + wmsRawOrderIn.setGmtCreate(new Date()); + wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn); + + order.setSapTempStatus("1");//0是失败。1是成功 + + odsProcureOrderMapper.updateOdsProcureOrder(order); + for (OdsProcureOrder odsProcureOrder1:orderList){ + //收货 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); + wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNewsSn.setWhCode(odsProcureOrder.getWhCode());//仓库编码 + wmsOdsMateStorageNewsSn.setWaCode(odsProcureOrder.getWaCode()); + wmsOdsMateStorageNewsSn.setWlCode(odsProcureOrder1.getSn());//库位编码- + wmsOdsMateStorageNewsSn.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsMateStorageNewsSn.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); + wmsOdsMateStorageNewsSn.setSn(odsProcureOrder1.getSn()); + wmsOdsMateStorageNewsSn.setAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder.getCreateBy()); + wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); + wmsOdsMateStorageNewsSn.setUserDefined2(order.getUserDefined7());//批次 + wmsOdsMateStorageNewsSn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsOdsMateStorageNewsSn.setSapFactoryCode(odsProcureOrder.getFactoryCode()); + wmsOdsMateStorageNewsSn.setActiveFlag("1"); + wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); + //修改库存 + //2,修改库存---/加库存数量-/-冻结数量 + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(odsProcureOrder.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(odsProcureOrder1.getSn());//库位编码 + wmsOdsEmStorageNews.setWaCode(odsProcureOrder.getWaCode());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsEmStorageNews.setUserDefined2(order.getUserDefined7());//批次 + wmsOdsEmStorageNews.setAmount(odsProcureOrder1.getPlanNumber()); + //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 + WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); + if (wmsOdsMateStorageNews == null) { + WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); + wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNews1.setWhCode(odsProcureOrder.getWhCode()); + wmsOdsMateStorageNews1.setWlCode(odsProcureOrder1.getSn()); + wmsOdsMateStorageNews1.setWaCode(odsProcureOrder.getWaCode()); + wmsOdsMateStorageNews1.setAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNews1.setStorageAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNews1.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsMateStorageNews1.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); + wmsOdsMateStorageNews1.setStorageType("BC"); + wmsOdsMateStorageNews1.setCreateBy(odsProcureOrder.getCreateBy()); + wmsOdsMateStorageNews1.setGmtCreate(new Date()); + wmsOdsMateStorageNews1.setActiveFlag("1"); + wmsOdsMateStorageNews1.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsOdsMateStorageNews1.setSapFactoryCode(odsProcureOrder.getFactoryCode()); + wmsOdsMateStorageNews1.setUserDefined1(order.getUnit());//单位 + wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); + } else { + wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + } + // wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库 + } + }else {////失败| + result1="暂收失败"; + order.setSapTempInfor(result2.getMsg()); + order.setSapTempStatus("0");//0是失败。1是成功 + odsProcureOrderMapper.updateOdsProcureOrder(order); + return result1; + } + return result1; + } + public String dayin( List orderList) { // 定义请求的URL地址 String url = dayinUrl1;