From b20b6e63d974cec3940eeb9c4f73120735403e34 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Fri, 1 Dec 2023 10:58:48 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0SAP=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/sap/controller/SapController.java | 2 + .../sap/domain/vo/SapPurchaseOrderQuery.java | 114 ++++++++++++++++++ .../op/sap/service/impl/SapItemSyncImpl.java | 109 ++++++++++++----- .../SapMaterialPreparationServiceImpl.java | 25 +++- .../sap/service/impl/SapOrderServiceImpl.java | 97 ++++++++++++--- 5 files changed, 299 insertions(+), 48 deletions(-) diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index cdc632b12..272266219 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -377,6 +377,8 @@ public class SapController extends BaseController { } + + @PostMapping("/sapMaterialPosting") @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ diff --git a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java index 01c2c742f..281d431df 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java @@ -8,11 +8,125 @@ public class SapPurchaseOrderQuery { * S_MATNR 物料号 * S_PWERK 工厂 */ + /** + * EBELN 采购凭证号 + * EBELP 采购凭证的项目编号 + * MATNR 物料号 + * MAKTX 物料描述(短文本) + * MENGE 采购订单数量 + * MEINS 采购订单的计量单位 + * ZMENGE 交货数量 + * ZMEINS 基本计量单位 + * LIFNR 供应商帐户号 + * WERKS 工厂 + * LGORT 库存地点 + * EINDT 项目交货日期 + * ELIKZ 交货已完成标识 + * BEIZHU 注释 + */ private String ebeln; private String ebelp; private String matnr; private String pwerk; + private String maktx; + private String menge; + private String meins; + private String zmenge; + private String zmeins; + private String lifnr; + private String werks; + private String lgort; + private String eindt; + private String elikz; + private String beizhu; + public String getMaktx() { + return maktx; + } + + public void setMaktx(String maktx) { + this.maktx = maktx; + } + + public String getMenge() { + return menge; + } + + public void setMenge(String menge) { + this.menge = menge; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public String getZmenge() { + return zmenge; + } + + public void setZmenge(String zmenge) { + this.zmenge = zmenge; + } + + public String getZmeins() { + return zmeins; + } + + public void setZmeins(String zmeins) { + this.zmeins = zmeins; + } + + public String getLifnr() { + return lifnr; + } + + public void setLifnr(String lifnr) { + this.lifnr = lifnr; + } + + public String getWerks() { + return werks; + } + + public void setWerks(String werks) { + this.werks = werks; + } + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getEindt() { + return eindt; + } + + public void setEindt(String eindt) { + this.eindt = eindt; + } + + public String getElikz() { + return elikz; + } + + public void setElikz(String elikz) { + this.elikz = elikz; + } + + public String getBeizhu() { + return beizhu; + } + + public void setBeizhu(String beizhu) { + this.beizhu = beizhu; + } public String getEbeln() { return ebeln; diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index 812d87a03..caa23494e 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -1,5 +1,6 @@ package com.op.sap.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.constant.Constants; import com.op.common.core.domain.R; @@ -54,6 +55,7 @@ public class SapItemSyncImpl implements SapItemSyncService { // 获取调用 RFC 函数对象 //获取连接 // JCoDestination dest = SAPConnUtils.connect(); + log.info("物料基础数据同步输入参数---------"+JSONObject.toJSONString(sapItemQuery)); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMMR_MES_MAT_GET"); @@ -104,7 +106,7 @@ public class SapItemSyncImpl implements SapItemSyncService { // 获取 内表 - ZMES_PRO JCoTable maraTable = func.getTableParameterList().getTable("LT_MARA"); JCoRecordMetaData metaData = maraTable.getRecordMetaData(); - System.out.println("###" + metaData.toString()); + // System.out.println("###" + metaData.toString()); // 加载数据源 DynamicDataSourceContextHolder.push("ds_1000"); List sapBaseProductList=new ArrayList<>(); @@ -143,35 +145,64 @@ public class SapItemSyncImpl implements SapItemSyncService { String MVGR5_NM = maraTable.getString("MVGR5_NM"); String LAEDA = maraTable.getString("LAEDA"); String ERSDA = maraTable.getString("LAEDA"); - System.out.println( + log.info("物料基础数据同步数据输出----"+ "物料号:" + MATNR+ - "物料描述(短文本):" + MAKTX+ - "国际文件号(EAN/UPC):" + EAN11+ - "物料类型:" + MTART+ - "物料类型描述:" + MTBEZ+ - "物料组:" + MATKL+ - "物料组描述:" + WGBEZ+ - "毛重:" + BRGEW+ - "净重:" + NTGEW+ - "体积:" + VOLUM+ - "体积单位:" + VOLEH+ - "基本计量单位:" + MEINS+ - "帐面库存单位的可选计量单位 :" + MEINH+ - "基本计量单位转换分子:" + UMREZ+ - "转换为基本计量单位的分母:" + UMREN+ - "在客户级标记要删除的物料:" + LVORM+ - "数量:" + MENGE+ - "总货架寿命 :" + MHDHB+ - "产品组:" + SPART+ - "产品组描述:" + SPART_NM+ - "物料组1:" + MVGR1+ - "物料组1描述:" + MVGR1_NM+ - "物料组2:" + MVGR2+ - "物料组2描述:" + MVGR2_NM+ - " 物料组3:" + MVGR3+ - " 物料组描述 :" + MVGR3_NM+ - "创建日期:"+ERSDA+ + "物料描述(短文本):" + MAKTX+ + "国际文件号(EAN/UPC):" + EAN11+ + "物料类型:" + MTART+ + "物料类型描述:" + MTBEZ+ + "物料组:" + MATKL+ + "物料组描述:" + WGBEZ+ + "毛重:" + BRGEW+ + "净重:" + NTGEW+ + "体积:" + VOLUM+ + "体积单位:" + VOLEH+ + "基本计量单位:" + MEINS+ + "帐面库存单位的可选计量单位 :" + MEINH+ + "基本计量单位转换分子:" + UMREZ+ + "转换为基本计量单位的分母:" + UMREN+ + "在客户级标记要删除的物料:" + LVORM+ + "数量:" + MENGE+ + "总货架寿命 :" + MHDHB+ + "产品组:" + SPART+ + "产品组描述:" + SPART_NM+ + "物料组1:" + MVGR1+ + "物料组1描述:" + MVGR1_NM+ + "物料组2:" + MVGR2+ + "物料组2描述:" + MVGR2_NM+ + " 物料组3:" + MVGR3+ + " 物料组描述 :" + MVGR3_NM+ + "创建日期:"+ERSDA+ "上次更改日期:"+LAEDA); +// System.out.println( +// "物料号:" + MATNR+ +// "物料描述(短文本):" + MAKTX+ +// "国际文件号(EAN/UPC):" + EAN11+ +// "物料类型:" + MTART+ +// "物料类型描述:" + MTBEZ+ +// "物料组:" + MATKL+ +// "物料组描述:" + WGBEZ+ +// "毛重:" + BRGEW+ +// "净重:" + NTGEW+ +// "体积:" + VOLUM+ +// "体积单位:" + VOLEH+ +// "基本计量单位:" + MEINS+ +// "帐面库存单位的可选计量单位 :" + MEINH+ +// "基本计量单位转换分子:" + UMREZ+ +// "转换为基本计量单位的分母:" + UMREN+ +// "在客户级标记要删除的物料:" + LVORM+ +// "数量:" + MENGE+ +// "总货架寿命 :" + MHDHB+ +// "产品组:" + SPART+ +// "产品组描述:" + SPART_NM+ +// "物料组1:" + MVGR1+ +// "物料组1描述:" + MVGR1_NM+ +// "物料组2:" + MVGR2+ +// "物料组2描述:" + MVGR2_NM+ +// " 物料组3:" + MVGR3+ +// " 物料组描述 :" + MVGR3_NM+ +// "创建日期:"+ERSDA+ +// "上次更改日期:"+LAEDA); baseProduct.setProductCode(MATNR); baseProduct.setProductDescZh(MAKTX); baseProduct.setProductGroup(MATKL); @@ -314,7 +345,7 @@ public class SapItemSyncImpl implements SapItemSyncService { // int failureNum = 0; // StringBuilder successMsg = new StringBuilder(); // StringBuilder failureMsg = new StringBuilder(); -// log.info("反冲物料开始过账----------------------------------------"); + log.info("反冲物料开始过账----------------------------------------"); // for (int i = 0; i < sapBackflushMPQueryList.size(); i++) { // L_ITEM.setRow(i); @@ -340,6 +371,26 @@ public class SapItemSyncImpl implements SapItemSyncService { L_ITEM.setValue("MOVE_BATCH",sfp.getMove_batch()); } + func.execute(dest); + JCoTable maraTable = func.getTableParameterList().getTable("LT_RETURN"); + JCoRecordMetaData metaData = maraTable.getRecordMetaData(); + System.out.println("###" + metaData.toString()); + for (int i = 0; i < maraTable.getNumRows(); i++) { + maraTable.setRow(i); + String TYPE = maraTable.getString("TYPE"); + System.out.println(TYPE); + } + String L_MSG= func.getExportParameterList().getString("L_MSG"); + String RETCODE= func.getExportParameterList().getString("RETCODE"); + String MATERIALDOCUMENT= func.getExportParameterList().getString("MATERIALDOCUMENT"); + String MATDOCUMENTYEAR= func.getExportParameterList().getString("MATDOCUMENTYEAR"); + + + System.out.println(L_MSG); + System.out.println(RETCODE); + System.out.println(MATERIALDOCUMENT); + System.out.println(MATDOCUMENTYEAR); + return R.ok(); }catch (Exception e){ diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java index 4c4a80dba..2d7f7ef25 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java @@ -8,6 +8,8 @@ import com.op.sap.service.SapMaterialPreparationService; import com.op.sap.util.SAPConnUtils; import com.op.system.api.domain.sap.SapMaterialPreparation; import com.sap.conn.jco.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; @@ -18,7 +20,7 @@ import java.util.List; @Component @Service public class SapMaterialPreparationServiceImpl implements SapMaterialPreparationService { - + private static final Logger log = LoggerFactory.getLogger(SapMaterialPreparationServiceImpl.class); @Autowired SapMaterialPreparationMapper sapMaterialPreparationMapper; @@ -33,6 +35,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation // 获取调用 RFC 函数对象 //获取连接 // JCoDestination dest = SAPConnUtils.connect(); + log.info("备料单入参-----"+shopOrder); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_MATERIAL_PREPARATION"); if (func == null) { @@ -48,7 +51,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation // 获取 内表 - ZMES_PRO JCoTable maraTable = func.getTableParameterList().getTable("LT_MAPRE"); JCoRecordMetaData metaData = maraTable.getRecordMetaData(); - System.out.println("###" + metaData.toString()); + //System.out.println("###" + metaData.toString()); List sapMaterialPreparationList =new ArrayList<>(); // 循环输出 Table 数据 @@ -66,7 +69,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation String MEINS = maraTable.getString("MEINS"); String RGEKZ = maraTable.getString("RGEKZ"); String DBSKZ = maraTable.getString("DBSKZ"); - System.out.println("订单号:" + AUFNR + log.info( "备料单输出------"+ "订单号:" + AUFNR + " - 预留/相关需求的项目编号:" + RSPOS + " - 物料号:" + MATNR + " - 物料描述(短文本):" + MAKTX + @@ -78,6 +81,18 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation " - 基本计量单位:" + MEINS + " - 标识:反冲:" + RGEKZ + " - 直接采购标识:" + DBSKZ ); +// System.out.println("订单号:" + AUFNR +// + " - 预留/相关需求的项目编号:" + RSPOS + +// " - 物料号:" + MATNR + +// " - 物料描述(短文本):" + MAKTX + +// " - 工厂:" + WERKS + +// " - 库存地点:" + LGORT + +// " - 组件的需求日期 :" + BDTER + +// " - 需求量:" + BDMNG + +// " - 欠料数量:" + ZQLSL + +// " - 基本计量单位:" + MEINS + +// " - 标识:反冲:" + RGEKZ + +// " - 直接采购标识:" + DBSKZ ); SapMaterialPreparation sapMaterialPreparation = new SapMaterialPreparation(); sapMaterialPreparation.setAUFNR(AUFNR); sapMaterialPreparation.setBDMNG(BDMNG); @@ -93,8 +108,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation sapMaterialPreparation.setZQLSL(ZQLSL); sapMaterialPreparationList.add(sapMaterialPreparation); } - return R.ok(sapMaterialPreparationList); + String MSG= func.getExportParameterList().getString("MSG"); + return R.ok(sapMaterialPreparationList,MSG); } catch (Exception e) { + log.error("同步领料单报错-----"+e.getMessage()); return R.fail(e.getMessage()); } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index d81cd2c5f..b29676a69 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -18,6 +18,8 @@ import com.op.system.api.domain.sap.SapShopOrderQuery; import com.op.system.api.model.SapProOrder; import com.sap.conn.jco.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; @@ -31,7 +33,7 @@ import java.util.Map; @Component @Service public class SapOrderServiceImpl implements SapOrderService { - + private static final Logger log = LoggerFactory.getLogger(SapOrderServiceImpl.class); private static final String END_DATE="99991231"; @Autowired private JCoDestination dest; @@ -43,6 +45,7 @@ public class SapOrderServiceImpl implements SapOrderService { // 获取调用 RFC 函数对象 //获取连接 //JCoDestination dest = SAPConnUtils.connect(); + log.info("订单同步入参-----"+sapShopOrderQuery.toString()); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRO_TO"); if (func == null) { @@ -51,8 +54,8 @@ public class SapOrderServiceImpl implements SapOrderService { JCoParameterList jCoParameterList= func.getTableParameterList(); JCoParameterList js= func.getExportParameterList(); - System.out.println(js); - System.out.println(jCoParameterList); +// System.out.println(js); +// System.out.println(jCoParameterList); // 配置传入参数 // S_WERKS(工厂) S_AUFNR(订单号) S_MATNR(物料号) S_ERDAT(创建日期) 例如:20230923 @@ -95,7 +98,7 @@ public class SapOrderServiceImpl implements SapOrderService { // 获取 内表 - ZMES_PRO JCoTable maraTable = func.getTableParameterList().getTable("ZMES_PRO"); JCoRecordMetaData metaData = maraTable.getRecordMetaData(); - System.out.println("###" + metaData.toString()); + // System.out.println("###" + metaData.toString()); List proOrderList = new ArrayList<>(); // 循环输出 Table 数据 @@ -115,9 +118,12 @@ public class SapOrderServiceImpl implements SapOrderService { String ERNAM = maraTable.getString("ERNAM"); String ERDAT = maraTable.getString("ERDAT"); String STTXT = maraTable.getString("STTXT"); - System.out.println("订单号:" + AUFNR + " - 订单类型:" + AUART + " - 上级订单编号:" + MAUFNR + " - 物料号:" + PLNBEZ + " - 物料描述(短文本):" + MAKTX + log.info("订单输出------:"+"订单号:" + AUFNR + " - 订单类型:" + AUART + " - 上级订单编号:" + MAUFNR + " - 物料号:" + PLNBEZ + " - 物料描述(短文本):" + MAKTX + " - 订单的计划工厂:" + PWERK + " - 订单数量总计:" + GAMNG + " - 基本计量单位:" + GMEIN + " - 任务清单组码:" + PLNNR + " - 基本开始日期:" + GSTRP + " - 基本完成日期:" + GLTRP + " - 输入者:" + ERNAM + " - 创建日期:" + ERDAT + " - 系统状态:" + STTXT); +// System.out.println("订单号:" + AUFNR + " - 订单类型:" + AUART + " - 上级订单编号:" + MAUFNR + " - 物料号:" + PLNBEZ + " - 物料描述(短文本):" + MAKTX +// + " - 订单的计划工厂:" + PWERK + " - 订单数量总计:" + GAMNG + " - 基本计量单位:" + GMEIN + " - 任务清单组码:" + PLNNR + " - 基本开始日期:" + GSTRP +// + " - 基本完成日期:" + GLTRP + " - 输入者:" + ERNAM + " - 创建日期:" + ERDAT + " - 系统状态:" + STTXT); SapProOrder proOrder = new SapProOrder(); proOrder.setId(IdUtils.fastSimpleUUID()); proOrder.setPlanFactoryCode(PWERK); @@ -145,7 +151,7 @@ public class SapOrderServiceImpl implements SapOrderService { return R.ok(proOrderList); } catch (Exception e) { - System.out.println(e.getMessage()); + return R.fail(e.getMessage()); } } @@ -156,6 +162,7 @@ public class SapOrderServiceImpl implements SapOrderService { try { //获取连接 // JCoDestination dest = SAPConnUtils.connect(); + log.info("订单创建入参-----"+JSONObject.toJSONString(sapCreateOrderList)); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CREATE"); if (func == null) { @@ -176,12 +183,12 @@ public class SapOrderServiceImpl implements SapOrderService { jCoParameterList.setValue("P_DATEE",sapCreateOrder.getDatee()); func.execute(dest);//执行调用函数 JCoParameterList J= func.getExportParameterList(); - System.out.println(J); + // System.out.println(J); L_MSG= func.getExportParameterList().getString("L_MSG"); String LV_ORDER_NUMBER= func.getExportParameterList().getString("LV_ORDER_NUMBER"); JCoTable LT_ZGD=func.getTableParameterList().getTable("LT_ZGD"); - System.out.println(LT_ZGD); + // System.out.println(LT_ZGD); //DynamicDataSourceContextHolder.push("ds_1000");//controller已经完成切换 for (int i = 0; i sapPurchaseOrderQueryList=new ArrayList<>(); + for (int i = 0; i < maraTable.getNumRows(); i++) { + maraTable.setRow(i); + SapPurchaseOrderQuery sapPCorder=new SapPurchaseOrderQuery(); + String EBELN = maraTable.getString("EBELN"); + String EBELP = maraTable.getString("EBELP"); + String MATNR = maraTable.getString("MATNR"); + String MAKTX = maraTable.getString("MAKTX"); + String MENGE = maraTable.getString("MENGE"); + String MEINS = maraTable.getString("MEINS"); + String ZMENGE = maraTable.getString("ZMENGE"); + String ZMEINS = maraTable.getString("ZMEINS"); + String LIFNR = maraTable.getString("LIFNR"); + String WERKS = maraTable.getString("WERKS"); + String LGORT = maraTable.getString("LGORT"); + String EINDT = maraTable.getString("EINDT"); + String ELIKZ = maraTable.getString("ELIKZ"); + String BEIZHU = maraTable.getString("BEIZHU"); + System.out.println( + "采购凭证号"+EBELN+ + "采购凭证的项目编号"+EBELP+ + "物料号"+MATNR+ + "物料描述(短文本)"+MAKTX+ + "采购订单数量"+MENGE+ + "采购订单的计量单位"+MEINS+ + "交货数量"+ZMENGE+ + "基本计量单位"+ZMEINS+ + "供应商帐户号"+LIFNR+ + "工厂"+WERKS+ + "库存地点"+LGORT+ + "项目交货日期"+EINDT+ + "交货已完成标识"+ELIKZ+ + "注释"+BEIZHU); + + sapPCorder.setEbeln(EBELN); + sapPCorder.setEbelp(EBELP); + sapPCorder.setMatnr(MATNR); + sapPCorder.setMaktx(MAKTX); + sapPCorder.setMenge(MENGE); + sapPCorder.setMeins(MEINS); + sapPCorder.setZmenge(ZMENGE); + sapPCorder.setZmeins(ZMEINS); + sapPCorder.setLifnr(LIFNR); + sapPCorder.setWerks(WERKS); + sapPCorder.setLgort(LGORT); + sapPCorder.setEindt(EINDT); + sapPCorder.setElikz(ELIKZ); + sapPCorder.setBeizhu(BEIZHU); + sapPurchaseOrderQueryList.add(sapPCorder); + } + return R.ok(sapPurchaseOrderQueryList); }catch (Exception e){ return R.fail(e.getMessage()); } @@ -375,6 +438,7 @@ public class SapOrderServiceImpl implements SapOrderService { @Override public R shopUpdateSync(SapShopOrderQuery sapProOrder) { try { + log.info("订单修改入参-------"+sapProOrder.toString()); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE"); // 配置传入参数 @@ -399,11 +463,14 @@ public class SapOrderServiceImpl implements SapOrderService { String RETCODE= func.getExportParameterList().getString("RETCODE"); String MESSAGE= func.getExportParameterList().getString("MESSAGE"); if ((Constants.FAIL).equals(Integer.parseInt(RETCODE))){ + log.error("订单修改结果-----"+MESSAGE); return R.fail(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE); }else { + log.info("订单修改结果-----"+MESSAGE); return R.ok(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE); } }catch (Exception e){ + log.error(e.getMessage()); return R.fail(e.getMessage()); } } From f0cc46c0b1bc6b190b7bbec3d684fa06a17b1e61 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 1 Dec 2023 11:09:15 +0800 Subject: [PATCH 2/4] =?UTF-8?q?999=E5=B7=A5=E5=8E=82=E5=B7=A1=E6=A3=80?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=89=93=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/service/impl/DeviceTaskServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index 34040a1af..6fae45c52 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -127,11 +127,11 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉 + //if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉 logger.info("++++++++++++" + dateSource.get("poolName") + "++++巡检开始++++++++++"); Runnable run = () -> createPatrolCheckPlanFunc(dateSource.get("poolName")); executorService.execute(run); - } + //} }); } catch (Exception e) { logger.error("service == dataClearTask == exception", e); From 56fc72ff0da4b85c46e6d7721fadb674b3fab63e Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Sat, 2 Dec 2023 00:11:06 +0800 Subject: [PATCH 3/4] =?UTF-8?q?sap=E6=8A=A5=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/mes/ProOrderWorkorderDTO.java | 47 +++++ .../com/op/system/api/domain/sap/SapRFW.java | 2 +- .../MesReportWorkConsumeController.java | 18 ++ .../controller/MesReportWorkController.java | 25 ++- .../com/op/mes/domain/MesPrepareDetail.java | 32 +++- .../java/com/op/mes/domain/MesReportWork.java | 128 ++++++++++++++ .../op/mes/domain/MesReportWorkConsume.java | 43 ++++- .../mapper/MesReportWorkConsumeMapper.java | 6 + .../op/mes/mapper/MesReportWorkMapper.java | 17 +- .../service/IMesReportWorkConsumeService.java | 8 + .../op/mes/service/IMesReportWorkService.java | 8 + .../service/impl/IWCInterfaceServiceImpl.java | 141 ++++++++------- .../impl/MesReportWorkConsumeServiceImpl.java | 109 ++++++++++++ .../impl/MesReportWorkServiceImpl.java | 34 ++++ .../mapper/mes/MesReportWorkConsumeMapper.xml | 46 ++++- .../mapper/mes/MesReportWorkMapper.xml | 159 +++++++++++++++-- .../op/open/controller/OpenController.java | 24 +-- .../java/com/op/open/service/OpenService.java | 2 +- .../op/open/service/impl/OpenServiceImpl.java | 160 +++++++++--------- .../service/impl/ProOrderServiceImpl.java | 38 +++-- .../impl/ProOrderWorkorderServiceImpl.java | 33 ++-- .../mapper/plan/ProOrderWorkorderMapper.xml | 6 +- .../op/quality/controller/QuaController.java | 14 ++ .../mapper/QcCheckUnqualifiedMapper.java | 8 + .../quality/QcCheckUnqualifiedMapper.xml | 12 ++ 25 files changed, 888 insertions(+), 232 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java index 3652eb5ab..9499fabf1 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java @@ -6,6 +6,7 @@ import com.op.common.core.web.domain.TreeEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -185,6 +186,52 @@ public class ProOrderWorkorderDTO extends TreeEntity { // 供湿料计划使用 private String bucketName1; + private String workorderCodes; + private String productCodes; + private String productNames; + private BigDecimal quantitySplits; + private String units; + + public String getWorkorderCodes() { + return workorderCodes; + } + + public void setWorkorderCodes(String workorderCodes) { + this.workorderCodes = workorderCodes; + } + + public String getProductCodes() { + return productCodes; + } + + public void setProductCodes(String productCodes) { + this.productCodes = productCodes; + } + + public String getProductNames() { + return productNames; + } + + public void setProductNames(String productNames) { + this.productNames = productNames; + } + + public BigDecimal getQuantitySplits() { + return quantitySplits; + } + + public void setQuantitySplits(BigDecimal quantitySplits) { + this.quantitySplits = quantitySplits; + } + + public String getUnits() { + return units; + } + + public void setUnits(String units) { + this.units = units; + } + public String getMaterialName1() { return materialName1; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java index 19a581c84..534fd004d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java @@ -114,7 +114,7 @@ public class SapRFW { } } - public class lt_hw{ + public static class lt_hw{ String material; String entry_qnt; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkConsumeController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkConsumeController.java index fc68b8da3..c67141d86 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkConsumeController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkConsumeController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.uuid.IdUtils; +import com.op.mes.domain.MesReportWork; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; @@ -135,4 +136,21 @@ public class MesReportWorkConsumeController extends BaseController { List list = mesReportWorkConsumeService.getTeamList(dto); return list; } + + /**获取母子报工物料损耗记录**/ + @RequiresPermissions("mes:reportWork:report") + @GetMapping("/getConsumeList") + public List getConsumeList(MesReportWorkConsume mesReportWorkConsume) { + List rlist = mesReportWorkConsumeService.getConsumeList(mesReportWorkConsume); + return rlist; + } + @PostMapping("/submitConsumePS") + public AjaxResult submitConsumePS(@RequestBody List mesReportWorkConsume) { + return toAjax(mesReportWorkConsumeService.submitConsumePS(mesReportWorkConsume)); + } + /**填写报工**/ + @PostMapping("/submitReportInfo") + public AjaxResult submitReportInfo(@RequestBody MesReportWork mesReportWork) { + return toAjax(mesReportWorkConsumeService.submitReportInfo(mesReportWork)); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index bdd116a7f..d70885d45 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -66,8 +66,9 @@ public class MesReportWorkController extends BaseController { // String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; // mesReportWork.setCreateTimeEnd(dateEndStr);//end // } - List list = mesReportWorkService.selectMesReportWorkList(mesReportWork); - return getDataTable(list); +// List list = mesReportWorkService.selectMesReportWorkList(mesReportWork); + List hzlist = mesReportWorkService.getReportWorkHzList(mesReportWork); + return getDataTable(hzlist); } /** @@ -369,6 +370,26 @@ public class MesReportWorkController extends BaseController { return mesReportWorkService.getBatchList(ProOrderWorkorder); } + /**获取母子报工记录**/ + @RequiresPermissions("mes:reportWork:report") + @GetMapping("/getReportList") + public List getReportList(MesReportWork mesReportWork) { + List rlist = mesReportWorkService.getReportList(mesReportWork); + return rlist; + } + + @PostMapping("/submitReportPS") + public AjaxResult submitReportPS(@RequestBody List mesReportWorks) { + return toAjax(mesReportWorkService.submitReportPS(mesReportWorks)); + } + + @GetMapping("/getPrepareList") + public List getPrepareList(MesPrepareDetail mesPrepareDetail) { + List rlist = mesReportWorkService.getPrepareList(mesPrepareDetail); + return rlist; + } + + public static void main(String args[]){ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00"); try { diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java index 9550e625c..3778a9c93 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java @@ -29,7 +29,7 @@ public class MesPrepareDetail extends BaseEntity { /** 物料名称 */ @Excel(name = "物料名称") - private String materailName; + private String materialName; /** 规格型号 */ @Excel(name = "规格型号") @@ -83,6 +83,24 @@ public class MesPrepareDetail extends BaseEntity { private String needDate; private String recoil; private String buyFlag; + private String workorderCode; + private String parentOrder; + + public String getParentOrder() { + return parentOrder; + } + + public void setParentOrder(String parentOrder) { + this.parentOrder = parentOrder; + } + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } public String getBuyFlag() { return buyFlag; @@ -149,13 +167,15 @@ public class MesPrepareDetail extends BaseEntity { public String getMaterialCode() { return materialCode; } - public void setMaterailName(String materailName) { - this.materailName = materailName; + + public String getMaterialName() { + return materialName; } - public String getMaterailName() { - return materailName; + public void setMaterialName(String materialName) { + this.materialName = materialName; } + public void setMaterailSpc(String materailSpc) { this.materailSpc = materailSpc; } @@ -247,7 +267,7 @@ public class MesPrepareDetail extends BaseEntity { .append("recordId", getRecordId()) .append("prepareId", getPrepareId()) .append("materialCode", getMaterialCode()) - .append("materailName", getMaterailName()) + .append("materialName", getMaterialName()) .append("materailSpc", getMaterailSpc()) .append("unit", getUnit()) .append("quantity", getQuantity()) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java index 430c2bbc5..df2eda833 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java @@ -2,6 +2,8 @@ package com.op.mes.domain; import java.math.BigDecimal; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -80,6 +82,7 @@ public class MesReportWork extends BaseEntity { @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "报工时间", width = 30, dateFormat = "yyyy-MM-dd") private Date feedbackTime; + private String feedbackTimeStr; /** 录入人员 */ @Excel(name = "录入人员") @@ -165,6 +168,131 @@ public class MesReportWork extends BaseEntity { private String feedbackTimeEnd; private String batch; private String endReport; + private String parentOrder; + private String workorderCodes; + private String productCodes; + private String productNames; + private BigDecimal quantitys; + private BigDecimal quantitySplits; + private String units; + private BigDecimal quantityFeedbacks; + private Long useMans; + private Long workTimes; + private String workCenter; + private String shiftId; + private List consumesInfos; + + public String getShiftId() { + return shiftId; + } + + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } + + public String getWorkCenter() { + return workCenter; + } + + public void setWorkCenter(String workCenter) { + this.workCenter = workCenter; + } + + public Long getUseMans() { + return useMans; + } + + public void setUseMans(Long useMans) { + this.useMans = useMans; + } + + public Long getWorkTimes() { + return workTimes; + } + + public void setWorkTimes(Long workTimes) { + this.workTimes = workTimes; + } + + public BigDecimal getQuantityFeedbacks() { + return quantityFeedbacks; + } + + public void setQuantityFeedbacks(BigDecimal quantityFeedbacks) { + this.quantityFeedbacks = quantityFeedbacks; + } + + public BigDecimal getQuantitys() { + return quantitys; + } + + public void setQuantitys(BigDecimal quantitys) { + this.quantitys = quantitys; + } + + public String getWorkorderCodes() { + return workorderCodes; + } + + public void setWorkorderCodes(String workorderCodes) { + this.workorderCodes = workorderCodes; + } + + public String getProductCodes() { + return productCodes; + } + + public void setProductCodes(String productCodes) { + this.productCodes = productCodes; + } + + public String getProductNames() { + return productNames; + } + + public void setProductNames(String productNames) { + this.productNames = productNames; + } + + public BigDecimal getQuantitySplits() { + return quantitySplits; + } + + public void setQuantitySplits(BigDecimal quantitySplits) { + this.quantitySplits = quantitySplits; + } + + public String getUnits() { + return units; + } + + public void setUnits(String units) { + this.units = units; + } + + public List getConsumesInfos() { + return consumesInfos; + } + + public void setConsumesInfos(List consumesInfos) { + this.consumesInfos = consumesInfos; + } + + public String getParentOrder() { + return parentOrder; + } + + public void setParentOrder(String parentOrder) { + this.parentOrder = parentOrder; + } + + public String getFeedbackTimeStr() { + return feedbackTimeStr; + } + + public void setFeedbackTimeStr(String feedbackTimeStr) { + this.feedbackTimeStr = feedbackTimeStr; + } public String getEndReport() { return endReport; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java index f2f1616f4..d1a1d7fb1 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java @@ -5,9 +5,11 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.op.common.core.annotation.Excel; import com.op.common.core.web.domain.BaseEntity; +import java.math.BigDecimal; + /** * 生产报工物料消耗对象 mes_report_work_consume - * + * * @author Open Platform * @date 2023-08-24 */ @@ -35,7 +37,7 @@ public class MesReportWorkConsume extends BaseEntity { /** 数量 */ @Excel(name = "数量") - private Long quantity; + private BigDecimal quantity; /** 单位 */ @Excel(name = "单位") @@ -67,6 +69,33 @@ public class MesReportWorkConsume extends BaseEntity { //虚拟字段 private String id; + private String parentOrder; + private String batch; + private String recoil; + + public String getRecoil() { + return recoil; + } + + public void setRecoil(String recoil) { + this.recoil = recoil; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public String getParentOrder() { + return parentOrder; + } + + public void setParentOrder(String parentOrder) { + this.parentOrder = parentOrder; + } public void setRecordId(String recordId) { this.recordId = recordId; @@ -111,13 +140,15 @@ public class MesReportWorkConsume extends BaseEntity { public String getMaterialSpc() { return materialSpc; } - public void setQuantity(Long quantity) { + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { this.quantity = quantity; } - public Long getQuantity() { - return quantity; - } public void setUnit(String unit) { this.unit = unit; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java index 4a8e3e988..92f41acd1 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java @@ -69,4 +69,10 @@ public interface MesReportWorkConsumeMapper { List getTeamList(BaseTeamTDTO dto); int insertMesReportWorkConsumes(@Param("list") List mesReportWorkConsumes); + + List getConsumeList(MesReportWorkConsume mesReportWorkConsume); + + int submitConsumePS(@Param("list")List mesReportWorkConsumes); + + int addConsumePS(@Param("list")List rconsumes); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index 00ef2696c..f0de465f0 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -10,6 +10,7 @@ import com.op.system.api.domain.device.EquEquipmentDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 报工报表Mapper接口 @@ -71,7 +72,7 @@ public interface MesReportWorkMapper { public List getProductionList(MesReportProduction mesReportProduction); - public List getReportWorkList(MesReportWork mesReportWork); + public List getReportWork(MesReportWork mesReportWork); public void updateSyncSapStatus(MesReportWork work); @@ -81,7 +82,7 @@ public interface MesReportWorkMapper { List getWorkcenterList(MesDailyReport mesDailyReport); - public void updateWorkOrderStatus(MesReportWork work); + public void updateOrderWorkStatus(MesReportWork work); @MapKey("nameDate") Map getLineChartsDatas(MesReportProduction mesReportProduction); @@ -109,5 +110,15 @@ public interface MesReportWorkMapper { List getBatchList(ProOrderWorkorder proOrderWorkorder); - List getSapWorkOrder(String workorderCode); + List getSapWorkOrder(String workorderCode); + + List getReportWorkHzList(MesReportWork mesReportWork); + + List getReportList(MesReportWork mesReportWork); + + int submitReportPS(@Param("list") List mesReportWorks); + + List getPrepareList(MesPrepareDetail mesPrepareDetail); + + int addReportPS(@Param("list") List rworks); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkConsumeService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkConsumeService.java index adcf46e47..b3c49ded9 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkConsumeService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkConsumeService.java @@ -1,6 +1,8 @@ package com.op.mes.service; import java.util.List; + +import com.op.mes.domain.MesReportWork; import com.op.mes.domain.MesReportWorkConsume; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; @@ -74,4 +76,10 @@ public interface IMesReportWorkConsumeService { public List getTeamList(BaseTeamTDTO dto); int insertMesReportWorkConsumes(List mesReportWorkConsumes); + + List getConsumeList(MesReportWorkConsume mesReportWorkConsume); + + int submitConsumePS(List mesReportWorkConsume); + + int submitReportInfo(MesReportWork mesReportWork); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java index 34112f93f..6f89c2397 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java @@ -90,4 +90,12 @@ public interface IMesReportWorkService { R reportSap(MesReportWork mesReportWork); List getBatchList(ProOrderWorkorder proOrderWorkorder); + + List getReportWorkHzList(MesReportWork mesReportWork); + + List getReportList(MesReportWork mesReportWork); + + int submitReportPS(List mesReportWorks); + + List getPrepareList(MesPrepareDetail mesPrepareDetail); } 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 435f3d3a8..4858cb073 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 @@ -9,6 +9,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.http.HttpUtils; import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; import com.op.mes.domain.*; import com.op.mes.domain.buffer.JsonRootBean; import com.op.mes.domain.dto.LGInfoDto; @@ -281,103 +282,117 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return R.ok(true); } + /**** + * 报工顺序:先子单报工,然后母单报工 + * 关闭母工单,关闭子工单 + * @param mesReportWork + * @return + */ @Override public R reportWork(MesReportWork mesReportWork) { + String belongWorkOrder = mesReportWork.getWorkorderCode(); if(StringUtils.isNotBlank(mesReportWork.getFactoryCode())){//已经加上ds_ DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key } + //根据belong_work_order找到sap工单 + List sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode()); + if(CollectionUtils.isEmpty(sapWorkOrders)||sapWorkOrders.size()<2){ + return R.fail("子母工单信息缺失"); + } + /**子工单先报工,然后母工单报工**/ mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 mesReportWork.setProdType("prod"); - List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); + mesReportWork.setWorkorderCode(sapWorkOrders.get(1).getWorkorderCode()); + List reportWorks = mesReportWorkMapper.getReportWork(mesReportWork); if(CollectionUtils.isEmpty(reportWorks)){ - return R.fail("未查询到报工单"); + return R.fail("未查询到报工单"); } + MesReportWork sWork = reportWorks.get(0); + //子工单报工 + logger.info("==========================子工单报工开始"); + this.reportToSap(sWork); + logger.info("==========================子工单报工结束"); + mesReportWork.setWorkorderCode(sapWorkOrders.get(0).getWorkorderCode()); + List reportWorks2 = mesReportWorkMapper.getReportWork(mesReportWork); + if(CollectionUtils.isEmpty(reportWorks2)){ + return R.fail("未查询到报工单"); + } + MesReportWork pWork = reportWorks2.get(0); - MesReportWork work = reportWorks.get(0); + //母工单报工 + logger.info("==========================母工单报工开始"); + this.reportToSap(pWork); + logger.info("==========================母工单报工结束"); + //最终报工标识:关闭子母工单 + if("1".equals(pWork.getEndReport())){ + logger.info("报工======母sap工单编码:"+sapWorkOrders.get(0).getWorkorderCodeSap()+ + "子sap工单编码:"+sapWorkOrders.get(1).getWorkorderCodeSap() + ); + //关闭母子订单//订单的订单编码 + SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); + sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0).getWorkorderCodeSap()); + sapCloseOrderQuery.setOrder(sapWorkOrders.get(1).getWorkorderCodeSap()); + R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery); + logger.info("报工======关闭母子sap工单"+sapCloseOrderQuery.getLeadOrder()+":"+ + sapCloseOrderQuery.getOrder()+":"+ + closeR.getCode()+","+ + closeR.getMsg()+","+ + closeR.getData()); + MesReportWork rworkVo = new MesReportWork(); + rworkVo.setStatus("w3"); + rworkVo.setUpdateTime(DateUtils.getNowDate()); + rworkVo.setUpdateBy(SecurityUtils.getUsername()); + rworkVo.setWorkorderCode(belongWorkOrder); + //pro_work_order status->w3报工--belong_work_order + mesReportWorkMapper.updateOrderWorkStatus(rworkVo); + } + return R.ok(); + } + + private R reportToSap(MesReportWork workOrder){ SapRFW sapRFW = new SapRFW(); - sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 - sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 - ltgs.setConf_activity1(work.getSac1());//人工 - ltgs.setConf_activity2(work.getSac2()); - ltgs.setConf_activity3(work.getSac3());//机器 - ltgs.setConf_activity4(work.getSac4()); - ltgs.setConf_activity5(work.getSac5());//折旧 - ltgs.setConf_activity6(work.getSac6()); + sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号 + sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量 + SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改 + ltgs.setConf_activity1(workOrder.getSac1());//人工 + ltgs.setConf_activity2(workOrder.getSac2()); + ltgs.setConf_activity3(workOrder.getSac3());//机器 + ltgs.setConf_activity4(workOrder.getSac4()); + ltgs.setConf_activity5(workOrder.getSac5());//折旧 + ltgs.setConf_activity6(workOrder.getSac6()); sapRFW.setLt_gs(ltgs); List lt_hwList =new ArrayList<>(); - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:报工数量"+sapRFW.getGamng()); MesReportWorkConsume consumeqo = new MesReportWorkConsume(); - consumeqo.setWorkorderCode(work.getWorkorderCode()); + consumeqo.setWorkorderCode(workOrder.getWorkorderCode()); List consumes = mesReportWorkConsumeMapper.selectMesReportWorkConsumeList(consumeqo); if(!CollectionUtils.isEmpty(consumes)){ for(MesReportWorkConsume consume:consumes){ - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:【原料损耗】"+ - consume.getMaterialCode()+"|"+consume.getQuantity()); - SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 + SapRFW.lt_hw lthw = new SapRFW.lt_hw();//MES生产订单报工货物移动修改 lthw.setEntry_qnt(consume.getQuantity()+"");//数量 lthw.setMaterial(consume.getMaterialCode());//物料编码 lt_hwList.add(lthw); } }else{ - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:工单"+work.getWorkorderCode()+"mes_report_work_consume没有数据"); + logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工:工单"+workOrder.getWorkorderCode()+"mes_report_work_consume没有数据"); return R.fail("mes_report_work_consume没有数据"); } sapRFW.setLt_hwList(lt_hwList); - + logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工请求:"+JSONObject.toJSONString(sapRFW)); R r = remoteSapService.sapRFWOrder(sapRFW); - logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); + logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); //上传成功,更改mes_report_work状态 if (r.getCode() == 200) { - work.setUploadStatus("1"); + workOrder.setUploadStatus("1"); } else { - work.setUploadStatus("2"); - work.setUploadMsg(r.getMsg()); - } - work.setUploadTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateSyncSapStatus(work); - //工单完成数量>工单数量:关闭订单 - MesReportWork proResult = mesReportWorkMapper.getProdResult(work); - //ProOrderWorkorder topOrder = this.getTopOrder(work.getWorkorderCode()); - if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0 - || - "1".equals(work.getEndReport())//最终报工标识 - ){ - logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); - //工单完成,关闭工单 - List sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 - //关闭母子订单//订单的订单编码 - SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); - sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0)); - sapCloseOrderQuery.setOrder(sapWorkOrders.get(1)); - R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery); - logger.info(work.getWorkorderCodeSap()+"报工后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+ - sapCloseOrderQuery.getOrder()+":"+ - closeR.getCode()+","+ - closeR.getMsg()+","+ - closeR.getData()); - - work.setStatus("w3"); - work.setUpdateTime(DateUtils.getNowDate()); - //pro_work_order status->w3报工--belong_work_order - mesReportWorkMapper.updateWorkOrderStatus(work); - logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功"); + workOrder.setUploadStatus("2"); + workOrder.setUploadMsg(r.getMsg()); } + workOrder.setUploadTime(DateUtils.getNowDate()); + mesReportWorkMapper.updateSyncSapStatus(workOrder); return R.ok(); } -// //根据工单子单编码获取最顶级订单的母单 -// private ProOrderWorkorder getTopOrder(String workorderCode) { -// //pro_order_workorder -// ProOrderWorkorder topOrder = mesReportWorkMapper.getOrderByCode(workorderCode); -// while (!"0".equals(topOrder.getParentOrder()) && StringUtils.isNotEmpty(topOrder.getParentOrder())) { -// //pro_order_workorder -// topOrder = mesReportWorkMapper.getOrderByCode(topOrder.getParentOrder()); -// } -// return topOrder; -// } - public void dateBKFunc(String poolName,List tables){ DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key 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 9549454e6..8972f8a81 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 @@ -1,18 +1,28 @@ package com.op.mes.service.impl; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; 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.MesReportWork; +import com.op.mes.mapper.MesReportWorkMapper; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.mes.mapper.MesReportWorkConsumeMapper; import com.op.mes.domain.MesReportWorkConsume; import com.op.mes.service.IMesReportWorkConsumeService; +import org.springframework.util.CollectionUtils; /** * 生产报工物料消耗Service业务层处理 @@ -22,9 +32,13 @@ import com.op.mes.service.IMesReportWorkConsumeService; */ @Service public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private MesReportWorkConsumeMapper mesReportWorkConsumeMapper; + @Autowired + private MesReportWorkMapper mesReportWorkMapper; + /** * 查询生产报工物料消耗 * @@ -135,4 +149,99 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer return mesReportWorkConsumeMapper.getTeamList(dto); } + @Override + @DS("#header.poolName") + public List getConsumeList(MesReportWorkConsume mesReportWorkConsume) { + return mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + } + + @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); + } + return mesReportWorkConsumeMapper.submitConsumePS(mesReportWorkConsumes); + } + + @Override + @DS("#header.poolName") + public int submitReportInfo(MesReportWork mesReportWork) { + Date nowTime = DateUtils.getNowDate(); + String createBy = SecurityUtils.getUsername(); + mesReportWork.setCreateBy(createBy); + mesReportWork.setCreateTime(nowTime); + //mes_report_work 母子 + List rworks = this.getAddMesReportWorks(mesReportWork); + if(!CollectionUtils.isEmpty(rworks)){ + int rps = mesReportWorkMapper.addReportPS(rworks); + System.out.println("rps添加成功:"+rps); + } + + //mes_report_work_consume 母子 + List rconsumes = this.getAddWorkConsumes(mesReportWork, + rworks.get(0).getReportCode(), + rworks.get(1).getReportCode()); + if(!CollectionUtils.isEmpty(rconsumes)) { + int rcs = mesReportWorkConsumeMapper.addConsumePS(rconsumes); + System.out.println("rcs添加成功:" + rcs); + } + return 1; + } + + private List getAddMesReportWorks(MesReportWork mesReportWork){ + List rworks = new ArrayList<>(); + //母 + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, mesReportWork.getFeedbackTime()); + int liushuiNum = mesReportWorkMapper.getTodayMaxNum(mesReportWork); + String liushuiStr = String.format("%04d", liushuiNum); + String pReportCode = bpDD+liushuiStr; + MesReportWork prwork = new MesReportWork(); + BeanUtils.copyProperties(mesReportWork,prwork); + prwork.setId(IdUtils.fastSimpleUUID()); + prwork.setReportCode(pReportCode); + prwork.setParentOrder("0"); + prwork.setProdType("prod"); + rworks.add(prwork); + //子 + String bpDD2 = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, mesReportWork.getFeedbackTime()); + int liushuiNum2 = mesReportWorkMapper.getTodayMaxNum(mesReportWork); + String liushuiStr2 = String.format("%04d", liushuiNum2); + String pReportCode2 = bpDD2+liushuiStr2; + MesReportWork srwork = new MesReportWork(); + BeanUtils.copyProperties(mesReportWork,srwork); + srwork.setId(IdUtils.fastSimpleUUID()); + srwork.setReportCode(pReportCode2); + srwork.setWorkorderCode(mesReportWork.getWorkorderCodes()); + srwork.setParentOrder(mesReportWork.getWorkorderCode()); + srwork.setProductCode(mesReportWork.getProductCodes()); + srwork.setProductName(mesReportWork.getProductNames()); + srwork.setUnit(mesReportWork.getUnits()); + srwork.setQuantity(mesReportWork.getQuantitys()); + srwork.setQuantityFeedback(mesReportWork.getQuantityFeedbacks()); + srwork.setUseMan(mesReportWork.getUseMans()); + srwork.setWorkTime(mesReportWork.getWorkTimes()); + srwork.setUseMan(mesReportWork.getUseMans()); + srwork.setProdType("prod"); + rworks.add(srwork); + + return rworks; + } + private List getAddWorkConsumes(MesReportWork mesReportWork,String pReportCode,String sReportCode) { + List rconsumes = mesReportWork.getConsumesInfos(); + for(MesReportWorkConsume consume:rconsumes){ + consume.setRecordId(IdUtils.fastSimpleUUID()); + consume.setCreateBy(mesReportWork.getCreateBy()); + consume.setCreateTime(mesReportWork.getCreateTime()); + if("0".equals(consume.getParentOrder())){ + consume.setReportCode(pReportCode); + }else{ + consume.setReportCode(sReportCode); + } + } + return rconsumes; + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 4f8b0ef4c..2d450bb01 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -12,6 +12,7 @@ import com.op.common.core.constant.SecurityConstants; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.ServletUtils; +import com.op.common.security.utils.SecurityUtils; import com.op.mes.domain.*; import com.op.mes.domain.dto.LineChartDto; import com.op.mes.domain.dto.LineChartSeriesDto; @@ -128,6 +129,37 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return mesReportWorkMapper.getBatchList(proOrderWorkorder); } + @Override + @DS("#header.poolName") + public List getReportWorkHzList(MesReportWork mesReportWork) { + List dtos = mesReportWorkMapper.getReportWorkHzList(mesReportWork); + return dtos; + } + + @Override + @DS("#header.poolName") + public List getReportList(MesReportWork mesReportWork) { + return mesReportWorkMapper.getReportList(mesReportWork); + } + + @Override + @DS("#header.poolName") + public int submitReportPS(List mesReportWorks) { + Date nowTime = DateUtils.getNowDate(); + String updateBy = SecurityUtils.getUsername(); + for(MesReportWork mesReportWork:mesReportWorks){ + mesReportWork.setUpdateTime(nowTime); + mesReportWork.setUpdateBy(updateBy); + } + return mesReportWorkMapper.submitReportPS(mesReportWorks); + } + + @Override + @DS("#header.poolName") + public List getPrepareList(MesPrepareDetail mesPrepareDetail) { + return mesReportWorkMapper.getPrepareList(mesPrepareDetail); + } + /** * 修改报工报表 * @@ -402,6 +434,8 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return dtos; } + + public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); Date now = calendar.getTime(); 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 2d3b3e14b..9faba0e34 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 @@ -82,8 +82,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from base_team_t where del_flag = '0' + - + insert into mes_report_work_consume record_id, @@ -137,6 +155,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + insert into mes_report_work_consume + ( + record_id,report_code,workorder_code, + material_code,material_name,quantity,unit, + create_by,create_time,parent_order,recoil + )values + + ( + #{item.recordId},#{item.reportCode},#{item.workorderCode}, + #{item.materialCode},#{item.materialName},#{item.quantity},#{item.unit}, + #{item.createBy},#{item.createTime},#{item.parentOrder},#{item.recoil} + ) + + update mes_report_work_consume @@ -161,6 +194,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where record_id = #{recordId} + + + update mes_report_work_consume + set + quantity = #{item.quantity}, + update_by = #{item.updateBy}, + update_time = #{item.updateTime} + where + record_id = #{item.recordId} + + update mes_report_work_consume 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 f6ae8139c..737e9b7ac 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 @@ -78,6 +78,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + select id, report_type, report_code, workorder_code, product_code, @@ -213,7 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and CONVERT(varchar(10),mrw.feedback_time, 120) >= #{productDateStart} and #{productDateEnd} >= CONVERT(varchar(10),mrw.feedback_time, 120) - select ow.order_code orderCode, ow.workorder_code workorderCode, @@ -235,8 +242,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code left join pro_route rte on rte.route_code = ow.route_code where mrw.upload_status != #{uploadStatus} and mrw.prod_type = #{prodType} - - and mrw.report_code = #{reportCode} + + and mrw.workorder_code = #{workorderCode} order by mrw.create_time @@ -421,14 +428,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pow.product_spc, pow.unit, pow.quantity_split, pow.route_code, pow.prod_line_code, pow.product_date, pow.shift_id, pow.parent_order, pow.status, pow.remark, - s.Shift_Desc shiftName + s.Shift_Desc shiftName, + pows.workorder_code workorderCodes,pows.product_code productCodes, pows.product_name productNames, + pows.quantity_split quantitySplits,pows.unit units from pro_order_workorder pow left join base_shifts_t s on pow.shift_id = s.Shift_Id + left join pro_order_workorder pows on pows.parent_order = pow.workorder_code where pow.del_flag = '0' and pow.status = 'w2' and pow.parent_order ='0' - order by pow.product_date desc + and pow.workorder_code like concat('%', #{workorderCode}, '%') + order by pow.product_date desc - + select workorder_code_sap workorderCodeSap, + workorder_code workorderCode + from pro_order_workorder where belong_work_order = #{workorderCode} and del_flag = '0' + order by parent_order + + + + @@ -533,6 +622,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{endReport}, + + insert into mes_report_work + ( + id,report_type,report_code, + workorder_code,parent_order, + product_code,product_name, + unit,quantity,quantity_feedback, + user_name,nick_name,feedback_channel, + feedback_time,remark, + work_time,use_man,batch, + machine_code,machine_name,shift_code,work_center, + create_by,create_time,del_flag,end_report + )values + + ( + #{item.id},'UNI',#{item.reportCode}, + #{item.workorderCode},#{item.parentOrder}, + #{item.productCode},#{item.productName}, + #{item.unit},#{item.quantity},#{item.quantityFeedback}, + #{item.userName},#{item.nickName},#{item.feedbackChannel}, + #{item.feedbackTime},#{item.remark}, + #{item.workTime},#{item.useMan},#{item.batch}, + #{item.machineCode},#{item.machineName},#{item.shiftId},#{item.workCenter}, + #{item.createBy},#{item.createTime},'0',#{item.endReport} + ) + + update mes_report_work @@ -582,15 +698,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" upload_msg = #{uploadMsg}, where 1=1 - - and id = #{id} - - - and report_code = #{reportCode} - + and id = #{id} + and workorder_code = #{workorderCode} - - update pro_order_workorder set status = #{status} where workorder_code = #{workorderCode} + + update pro_order_workorder + set status = #{status}, + update_by = #{updateBy}, + update_time = #{updateTime} + where belong_work_order = #{workorderCode} + + + + + update mes_report_work + set quantity_feedback = #{item.quantityFeedback}, + work_time = #{item.workTime}, + use_man = #{item.useMan}, + update_by = #{item.updateBy}, + update_time = #{item.updateTime} + where + id = #{item.id} + diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index ca6c18b45..74c13d74e 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -44,18 +44,18 @@ public class OpenController extends BaseController { } return openService.requestDestinationStations(wcsdto); } - /**上位机报工**/ - @PostMapping("/reportWork") - public AjaxResult reportWork(@RequestBody MesReportWorkDTO mesReportWork) { - if(StringUtils.isBlank(mesReportWork.getFactoryCode())){ - return error("[factoryCode] is null"); - } - if(StringUtils.isBlank(mesReportWork.getReportCode())){ - return error("[reportCode] is null"); - } - - return success(openService.reportWork(mesReportWork)); - } +// /**上位机报工**/ +// @PostMapping("/reportWork") +// public AjaxResult reportWork(@RequestBody MesReportWorkDTO mesReportWork) { +// if(StringUtils.isBlank(mesReportWork.getFactoryCode())){ +// return error("[factoryCode] is null"); +// } +// if(StringUtils.isBlank(mesReportWork.getReportCode())){ +// return error("[reportCode] is null"); +// } +// +// return success(openService.reportWork(mesReportWork)); +// } /**获取料罐信息**/ @PostMapping("/getLGInfo") diff --git a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java index 10ce38f51..c2a7d3f28 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java @@ -16,7 +16,7 @@ public interface OpenService { WCSDTO requestDestinationStations(WCSDTO wcsdto); - R reportWork(MesReportWorkDTO mesReportWork); +// R reportWork(MesReportWorkDTO mesReportWork); List getLGInfo(WCSDTO wcsDTO); } 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 2bd5a1aac..c97ac09db 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 @@ -153,86 +153,86 @@ public class OpenServiceImpl implements OpenService { return dto; } - @Override - public R reportWork(MesReportWorkDTO mesReportWork) { - DynamicDataSourceContextHolder.push("ds_"+mesReportWork.getFactoryCode());// 这是数据源的key - - mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 - mesReportWork.setProdType("prod"); - List reportWorks = openMapper.getReportWorkList(mesReportWork); - if(CollectionUtils.isEmpty(reportWorks)){ - return R.fail("未查询到报工单"); - } - - MesReportWorkDTO work = reportWorks.get(0); - SapRFW sapRFW = new SapRFW(); - sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 - sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 - ltgs.setConf_activity1(work.getSac1());//人工 - ltgs.setConf_activity2(work.getSac2()); - ltgs.setConf_activity3(work.getSac3());//机器 - ltgs.setConf_activity4(work.getSac4()); - ltgs.setConf_activity5(work.getSac5());//折旧 - ltgs.setConf_activity6(work.getSac6()); - sapRFW.setLt_gs(ltgs); - List lt_hwList =new ArrayList<>(); - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:报工数量"+sapRFW.getGamng()); - MesReportWorkConsumeDTO consumeqo = new MesReportWorkConsumeDTO(); - consumeqo.setWorkorderCode(work.getWorkorderCode()); - List consumes = openMapper.selectMesReportWorkConsumeList(consumeqo); - if(!CollectionUtils.isEmpty(consumes)){ - for(MesReportWorkConsumeDTO consume:consumes){ - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:【原料损耗】"+ - consume.getMaterialCode()+"|"+consume.getQuantity()); - SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 - lthw.setEntry_qnt(consume.getQuantity()+"");//数量 - lthw.setMaterial(consume.getMaterialCode());//物料编码 - lt_hwList.add(lthw); - } - }else{ - logger.info(work.getWorkorderCodeSap()+"母sap工单报工:工单"+work.getWorkorderCode()+"==mes_report_work_consume没有数据"); - //return R.fail("mes_report_work_consume没有数据"); - } - sapRFW.setLt_hwList(lt_hwList); - logger.info(work.getWorkorderCodeSap()+"母sap工单报工请求:"+ JSONObject.toJSONString(sapRFW)); - R r = remoteSapService.sapRFWOrder(sapRFW); - logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); - //上传成功,更改mes_report_work状态 - if (r.getCode() == 200) { - work.setUploadStatus("1"); - } else { - work.setUploadStatus("2"); - work.setUploadMsg(r.getMsg()); - } - work.setUploadTime(DateUtils.getNowDate()); - openMapper.updateSyncSapStatus(work); - //工单完成数量>工单数量:关闭订单 - MesReportWorkDTO proResult = openMapper.getProdResult(work); - //ProOrderWorkorderDTO topOrder = this.getTopOrder(work.getWorkorderCode()); - if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0||"1".equals(work.getEndReport())//最终报工标识 - ){ - logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); - //工单完成,关闭母工单 - List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 - //关闭母子订单//订单的订单编码 - SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); - sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0)); - sapCloseOrderQuery.setOrder(sapWorkOrders.get(1)); - R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery); - logger.info(work.getWorkorderCodeSap()+"下发工单后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+ - sapCloseOrderQuery.getOrder()+":"+ - closeR.getCode()+","+ - closeR.getMsg()+","+ - closeR.getData()); - work.setStatus("w3"); - work.setUpdateTime(DateUtils.getNowDate()); - //pro_work_order status->w3报工--belong_work_order - openMapper.updateWorkOrderStatus(work); - logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功"); - } - return R.ok(); - } +// @Override +// public R reportWork(MesReportWorkDTO mesReportWork) { +// DynamicDataSourceContextHolder.push("ds_"+mesReportWork.getFactoryCode());// 这是数据源的key +// logger.info("上位机开始报工:报工单"+mesReportWork.getReportCode()); +// mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 +// mesReportWork.setProdType("prod"); +// List reportWorks = openMapper.getReportWorkList(mesReportWork); +// if(CollectionUtils.isEmpty(reportWorks)){ +// return R.fail("未查询到报工单"); +// } +// +// MesReportWorkDTO work = reportWorks.get(0); +// SapRFW sapRFW = new SapRFW(); +// sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 +// sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 +// SapRFW.lt_gs ltgs = sapRFW.new lt_gs();//生产订单报工工时修改 +// ltgs.setConf_activity1(work.getSac1());//人工 +// ltgs.setConf_activity2(work.getSac2()); +// ltgs.setConf_activity3(work.getSac3());//机器 +// ltgs.setConf_activity4(work.getSac4()); +// ltgs.setConf_activity5(work.getSac5());//折旧 +// ltgs.setConf_activity6(work.getSac6()); +// sapRFW.setLt_gs(ltgs); +// List lt_hwList =new ArrayList<>(); +// //logger.info(work.getWorkorderCodeSap()+"母sap工单报工:报工数量"+sapRFW.getGamng()); +// MesReportWorkConsumeDTO consumeqo = new MesReportWorkConsumeDTO(); +// consumeqo.setWorkorderCode(work.getWorkorderCode()); +// List consumes = openMapper.selectMesReportWorkConsumeList(consumeqo); +// if(!CollectionUtils.isEmpty(consumes)){ +// for(MesReportWorkConsumeDTO consume:consumes){ +// logger.info(work.getWorkorderCodeSap()+"母sap工单报工:【原料损耗】"+ +// consume.getMaterialCode()+"|"+consume.getQuantity()); +// SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 +// lthw.setEntry_qnt(consume.getQuantity()+"");//数量 +// lthw.setMaterial(consume.getMaterialCode());//物料编码 +// lt_hwList.add(lthw); +// } +// }else{ +// logger.info(work.getWorkorderCodeSap()+"母sap工单报工:工单"+work.getWorkorderCode()+"==mes_report_work_consume没有数据"); +// //return R.fail("mes_report_work_consume没有数据"); +// } +// sapRFW.setLt_hwList(lt_hwList); +// logger.info(work.getWorkorderCodeSap()+"母sap工单报工请求参数:"+ JSONObject.toJSONString(sapRFW)); +// R r = remoteSapService.sapRFWOrder(sapRFW); +// logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); +// //上传成功,更改mes_report_work状态 +// if (r.getCode() == 200) { +// work.setUploadStatus("1"); +// } else { +// work.setUploadStatus("2"); +// work.setUploadMsg(r.getMsg()); +// } +// work.setUploadTime(DateUtils.getNowDate()); +// openMapper.updateSyncSapStatus(work); +// //工单完成数量>工单数量:关闭订单 +// MesReportWorkDTO proResult = openMapper.getProdResult(work); +// //ProOrderWorkorderDTO topOrder = this.getTopOrder(work.getWorkorderCode()); +// if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0||"1".equals(work.getEndReport())//最终报工标识 +// ){ +// logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); +// //工单完成,关闭母工单 +// List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 +// //关闭母子订单//订单的订单编码 +// SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); +// sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0)); +// sapCloseOrderQuery.setOrder(sapWorkOrders.get(1)); +// R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery); +// logger.info(work.getWorkorderCodeSap()+"下发工单后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+ +// sapCloseOrderQuery.getOrder()+":"+ +// closeR.getCode()+","+ +// closeR.getMsg()+","+ +// closeR.getData()); +// work.setStatus("w3"); +// work.setUpdateTime(DateUtils.getNowDate()); +// //pro_work_order status->w3报工--belong_work_order +// openMapper.updateWorkOrderStatus(work); +// logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功"); +// } +// return R.ok(); +// } @Override public List getLGInfo(WCSDTO wcsDTO) { 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 fc41f382c..3b6659098 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 @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import com.alibaba.csp.sentinel.util.StringUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.op.common.core.utils.ServletUtils; import com.op.plan.domain.vo.CascaderDTO; import com.baomidou.dynamic.datasource.annotation.DS; @@ -93,7 +94,6 @@ public class ProOrderServiceImpl implements IProOrderService { * @return */ @Override - @Transactional @DS("#header.poolName") public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO) { boolean checkout = true; @@ -294,8 +294,12 @@ public class ProOrderServiceImpl implements IProOrderService { R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 logger.info("母订单"+proOrder.getOrderCode()+ "订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg()); + }else{ + workOrder.setProductCode(splitOrderDTO.getProduct().getChildren().get(0).getProdCode()); + workOrder.setProductName(splitOrderDTO.getProduct().getChildren().get(0).getProdDesc()); } workOrder.setBelongWorkOrder(belongWorkOrder); + workOrder.setProdType("LJ01"); // 将工单信息更新至数据库 proOrderWorkorderMapper.insertProOrderWorkorder(workOrder); @@ -437,15 +441,15 @@ public class ProOrderServiceImpl implements IProOrderService { sapqo.setErdat(maxCreateTime.getCreateTimeStr());//S_ERDAT(创建日期) 例如:20230923 } - //添加调用sap日志 - SysSapLog sysSapLog = new SysSapLog(); - sysSapLog.setId(IdUtils.fastSimpleUUID()); - sysSapLog.setMesssge(sapqo.toString()); - sysSapLog.setMethod("syncSAP"); - sysSapLog.setReqcode("请求"); - sysSapLog.setCreateTime(DateUtils.getNowDate()); - proOrderMapper.addSapLog(sysSapLog); - +// //添加调用sap日志 +// SysSapLog sysSapLog = new SysSapLog(); +// sysSapLog.setId(IdUtils.fastSimpleUUID()); +// sysSapLog.setMesssge(sapqo.toString()); +// sysSapLog.setMethod("syncSAP"); +// sysSapLog.setReqcode("请求"); +// sysSapLog.setCreateTime(DateUtils.getNowDate()); +// proOrderMapper.addSapLog(sysSapLog); + logger.info("手动订单同步:【参数】"+ JSONObject.toJSONString(sapqo)); //取>=20230923的sap数据 R> rSapProOrder = remoteSapService.shopOrderSync(sapqo);//sap只能同步指定日期的数据 @@ -461,12 +465,14 @@ public class ProOrderServiceImpl implements IProOrderService { String failOrder = ""; ProOrder proOrder = null; for (SapProOrder sapProOrder:newOrders) { - //工单生产后整个订单就被锁定//订单存在就更新,不存在就插入 - proOrder = new ProOrder(); - BeanUtils.copyProperties(sapProOrder, proOrder); - proOrder.setSyncUser(syncUser); - proOrder.setProdType("prod");//只有白坯有导入 - failOrder += syncFunc(proOrder); + if("LJ88".equals(sapProOrder.getOrderType())){ + //工单生产后整个订单就被锁定//订单存在就更新,不存在就插入 + proOrder = new ProOrder(); + BeanUtils.copyProperties(sapProOrder, proOrder); + proOrder.setSyncUser(syncUser); + proOrder.setProdType("prod");//只有白坯有导入 + failOrder += syncFunc(proOrder); + } } return failOrder; } 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 9a00d021d..e2731a480 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 @@ -1,6 +1,7 @@ package com.op.plan.service.impl; import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.context.SecurityContextHolder; @@ -224,7 +225,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { */ @Override @DS("#header.poolName") - @Transactional(rollbackFor = Exception.class) + //@Transactional(rollbackFor = Exception.class) public int downProOrderWorkorderByWorkorderIds(String[] workorderIds) { List sapList = null;//回传给sap的工单 //如果是白坯生成备料单 @@ -299,22 +300,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 - sap.setAufpar(whiteOrder.getProdType());//订单类型 + sap.setAufpar("LJ01");//订单类型 sap.setMatnr(whiteOrder.getProductCode());//物料编号 sap.setQuantity(whiteOrder.getQuantitySplit() + "");//数量 sap.setDates(DateUtils.parseDateToStr("yyyy-MM-dd", whiteOrder.getProductDate()));//开始时间 sap.setDatee(DateUtils.parseDateToStr("yyyy-MM-dd", whiteOrder.getProductDate()));//完成时间 sapList.add(sap); - //添加调用sap日志 -// SysSapLog sysSapLog = new SysSapLog(); -// sysSapLog.setId(IdUtils.fastSimpleUUID()); -// sysSapLog.setMesssge(Arrays.asList(sapList).toString()); -// sysSapLog.setMethod("downProOrderWorkorderByWorkorderIds"); -// sysSapLog.setReqcode("请求"); -// sysSapLog.setCreateTime(DateUtils.getNowDate()); -// proOrderMapper.addSapLog(sysSapLog); - logger.info(whiteOrder.getWorkorderCode()+"sap工单回传sap虚拟工单号开始:"+Arrays.asList(sapList).toString()); + logger.info(whiteOrder.getWorkorderCode()+"sap工单回传sap工单号开始:"+ JSONObject.toJSONString(sapList)); R>> r = remoteSapService.SapCreateOrder(sapList); logger.info("sap工单回传:" + r.getMsg()); if (500 == r.getCode()) { @@ -329,7 +322,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } Date updateTime = DateUtils.getNowDate(); if (!CollectionUtils.isEmpty(returnCodes)) { - logger.info("sap工单回传sap虚拟工单号结束:" + StringUtils.join(returnCodes, ",")); + logger.info("sap工单回传sap工单号结束:" + StringUtils.join(returnCodes, ",")); //按照母子顺序进行更新 for (int m=0;m sapMaterialPreparationList = remoteSapService.materialPreparation(sapWorkOrders.get(m)).getData(); if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { System.out.println("sap无领料单数据"); } //取出各领料单 String orderCode = sapWorkOrders.get(m); - logger.info("sap虚拟工单码:"+orderCode); + logger.info("sap工单码:"+orderCode); /**mes_prepare**/ String mesPrepareId = IdUtils.fastSimpleUUID(); MesPrepareDTO mesPrepare0 = new MesPrepareDTO(); @@ -436,7 +420,10 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sap.getMEINS()+","+sap.getRGEKZ()+","+sap.getDBSKZ() ); } - proOrderWorkorderMapper.insertMesPrepareDetails(details); + if(!CollectionUtils.isEmpty(details)){ + proOrderWorkorderMapper.insertMesPrepareDetails(details); + } + logger.info("获取sap领料单:" + sapWorkOrders.get(m)+"结束"); } } 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 e49372efb..88fe27ae9 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 @@ -457,9 +457,9 @@ INSERT INTO mes_prepare_detail ( - record_id,prepare_id,material_code,material_name,unit, - quantity,create_by,create_time,factory_code,status, - locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order + record_id,prepare_id,material_code,material_name,unit, + quantity,create_by,create_time,factory_code,status, + locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order )VALUES ( diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index d63fb8308..44711b5a3 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -18,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; /** @@ -46,6 +48,9 @@ public class QuaController extends BaseController { @Autowired private IQcCheckTaskIncomeService qcCheckTaskIncomeService; + @Autowired + private IQcCheckUnqualifiedService qcCheckUnqualifiedService; + @PostMapping("/saveQcProCheck") public R saveQcProCheck(@RequestBody QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); @@ -244,4 +249,13 @@ public class QuaController extends BaseController { List list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject); return getDataTable(list); } + + @GetMapping("/getUnqualifiedList") + public TableDataInfo getUnqualifiedList(QcCheckUnqualified qcCheckUnqualified) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckUnqualified.getFactoryCode()); + startPage(); + qcCheckUnqualified.setDelFlag("0"); + List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); + return getDataTable(list); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java index 09a483496..0b053a0cc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java @@ -63,4 +63,12 @@ public interface QcCheckUnqualifiedMapper { public int deleteQcCheckUnqualifiedByIds(String[] ids); public List getDefectList(QcDefectType qcDefectType); + + /** + * 查询手持不合格处理列表 + * + * @param qcCheckUnqualified 不合格处理 + * @return 不合格处理集合 + */ + public List getUnqualifiedList(QcCheckUnqualified qcCheckUnqualified); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index 193c42aaa..82588aa61 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -73,6 +73,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from qc_defect_type where defect_type = #{defectType} and del_flag='0' + insert into qc_check_unqualified From 7d44bda34a6d85cd55e7b665df887f052cd77177 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Sat, 2 Dec 2023 00:42:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?sap=E6=8A=A5=E5=B7=A5-=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/mes/service/impl/MesReportWorkServiceImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 2d450bb01..677d2eea0 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -133,6 +133,15 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { @DS("#header.poolName") public List getReportWorkHzList(MesReportWork mesReportWork) { List dtos = mesReportWorkMapper.getReportWorkHzList(mesReportWork); + for(MesReportWork dto:dtos){ + if("1".equals(dto.getUploadStatus())){ + dto.setUploadStatus("sap报工成功"); + }else if("2".equals(dto.getUploadStatus())){ + dto.setUploadStatus("sap报工失败"); + }else if("0".equals(dto.getUploadStatus())){ + dto.setUploadStatus("待报工sap"); + } + } return dtos; }