From 6965200126a0d44cf16bdb3597f2c1acc0044e7b Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Thu, 30 Nov 2023 19:55:30 +0800 Subject: [PATCH 01/27] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=94=9F=E6=88=90BUG?= =?UTF-8?q?=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/EquUpkeepServiceImpl.java | 22 +++++++++++++++++++ .../mapper/device/EquOrderDetailMapper.xml | 5 +++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java index ce0a9008..259af103 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java @@ -187,6 +187,28 @@ public class EquUpkeepServiceImpl implements IEquUpkeepService { EquPlanDetail detail = new EquPlanDetail(); BeanUtils.copyProperties(checkItem,detail); + if (!detail.getItemCode().isEmpty()) { + itemTempName.append(detail.getItemName()).append(","); + // 获取检查项详情list + List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); + if (equCheckItemList.size() > 0) { + List standardList = new ArrayList<>(); + for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { + EquPlanStandard standard = new EquPlanStandard(); + BeanUtils.copyProperties(standardTemp,standard); + + standard.setShowFlag(true); + standardList.add(standard); + } + detail.setEquPlanStandardList(standardList); + } + } + detailList.add(detail); + } + if (data.getItemLoop() == 0) { + EquPlanDetail detail = new EquPlanDetail(); + BeanUtils.copyProperties(checkItem,detail); + if (!detail.getItemCode().isEmpty()) { itemTempName.append(detail.getItemName()).append(","); // 获取检查项详情list diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml index ea050820..9556f487 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml @@ -113,13 +113,14 @@ #{itemTools}, + insert into equ_order_detail ( id, order_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, del_flag, - create_by, create_time,item_tools + create_by, create_time ) VALUES @@ -127,7 +128,7 @@ #{item.id},#{item.parentCode}, #{item.itemCode},#{item.itemName},#{item.itemMethod}, #{item.itemType},#{item.itemTypeName},#{item.factoryCode},#{item.delFlag}, - #{item.createBy},#{item.createTime},#{itemTools} + #{item.createBy},#{item.createTime} ) 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 02/27] =?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 cdc632b1..27226621 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 01c2c742..281d431d 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 812d87a0..caa23494 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 4c4a80db..2d7f7ef2 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 d81cd2c5..b29676a6 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 6048b4cb4a7593407cddd1af01882e8484e94893 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Fri, 1 Dec 2023 10:58:51 +0800 Subject: [PATCH 03/27] =?UTF-8?q?999=E5=BA=93=E5=B7=A1=E6=A3=80=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E7=94=9F=E6=88=90BUG=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceTaskServiceImpl.java | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 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 34040a1a..6af61cd4 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 @@ -78,9 +78,10 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { private EquSpareApplyMapper equSpareApplyMapper; @Autowired private SparePartsLedgerMapper sparePartsLedgerMapper; + /** * 根据点检计划生成点检任务 - * **/ + **/ @Override public AjaxResult createSpotCheckPlanTask() { @@ -111,7 +112,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { /** * 根据巡检计划生成点检任务 - * **/ + **/ @Override public AjaxResult createPatrolCheckPlanTask() { @@ -127,11 +128,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉 - logger.info("++++++++++++" + dateSource.get("poolName") + "++++巡检开始++++++++++"); - Runnable run = () -> createPatrolCheckPlanFunc(dateSource.get("poolName")); - executorService.execute(run); - } + logger.info("++++++++++++" + dateSource.get("poolName") + "++++巡检开始++++++++++"); + Runnable run = () -> createPatrolCheckPlanFunc(dateSource.get("poolName")); + executorService.execute(run); }); } catch (Exception e) { logger.error("service == dataClearTask == exception", e); @@ -144,7 +143,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { /** * 根据保养计划生成点检任务 - * **/ + **/ @Override public AjaxResult createMaintenancePlanTask() { @@ -173,19 +172,19 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { return success(); } - public void createSpotCheckPlanFunc(String poolName){ + public void createSpotCheckPlanFunc(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key /**equ_plan equ_plan_equ**/ EquPlan equPlan = new EquPlan(); equPlan.setPlanType("spotInspection"); List plans = deviceTaskMapper.getPlans(equPlan); - for(EquPlan plan:plans){ + for (EquPlan plan : plans) { EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); - if(hasTask==null || Integer.parseInt(plan.getPlanLoop())<= hasTask.getDays()){ + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays()) { //生成点检计划 int m = this.createOrderPlan(plan); - if(m==0){ + if (m == 0) { error("equ_order相关添加失败"); } } @@ -193,19 +192,19 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { logger.info("++++++++++++" + poolName + "++++点检结束++++++++++"); } - public void createPatrolCheckPlanFunc(String poolName){ + public void createPatrolCheckPlanFunc(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key /**equ_plan equ_plan_equ**/ EquPlan equPlan = new EquPlan(); equPlan.setPlanType("inspection"); List plans = deviceTaskMapper.getPlans(equPlan); - for(EquPlan plan:plans){ + for (EquPlan plan : plans) { EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); - if(hasTask==null || Integer.parseInt(plan.getPlanLoop())<= hasTask.getDays()){ + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays()) { //生成巡检计划 int m = this.createOrderPlan(plan); - if(m==0){ + if (m == 0) { error("equ_order相关添加失败"); } } @@ -213,29 +212,29 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { logger.info("++++++++++++" + poolName + "++++巡检结束++++++++++"); } - public void createMaintenancePlanFunc(String poolName){ + public void createMaintenancePlanFunc(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key /**equ_plan equ_plan_equ**/ EquPlan equPlan = new EquPlan(); equPlan.setPlanType("maintenance"); List plans = deviceTaskMapper.getPlans(equPlan); - for(EquPlan plan:plans){ + for (EquPlan plan : plans) { EquOrder hasTask = null; - if("1".equals(plan.getCalculationRule())){ + if ("1".equals(plan.getCalculationRule())) { //根据order_start//1按上次保养时间 hasTask = deviceTaskMapper.getNewTaskOrder0(plan); - }else if("0".equals(plan.getCalculationRule())){ + } else if ("0".equals(plan.getCalculationRule())) { //根据createTime//0按固定周期 hasTask = deviceTaskMapper.getNewTaskOrder(plan); - }else if("2".equals(plan.getCalculationRule())){ + } else if ("2".equals(plan.getCalculationRule())) { //单次生成保养计划 } - if(hasTask==null || Integer.parseInt(plan.getPlanLoop())<= hasTask.getDays()){ + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays()) { //生成保养计划 int m = this.createOrderPlan(plan); - if(m==0){ + if (m == 0) { error("equ_order相关添加失败"); } } @@ -243,7 +242,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { logger.info("++++++++++++" + poolName + "++++保养结束++++++++++"); } - private int createOrderPlan(EquPlan plan){ + private int createOrderPlan(EquPlan plan) { Date nowtime = DateUtils.getNowDate(); String createBy = "job"; String factory = plan.getFactoryCode(); @@ -251,21 +250,21 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { /**equ_plan->equ_order********************************************************************/ EquOrder order = new EquOrder(); //源->目标 - BeanUtils.copyProperties(plan,order); + BeanUtils.copyProperties(plan, order); order.setOrderId(IdUtils.fastSimpleUUID()); order.setCreateBy(createBy); order.setCreateTime(nowtime); // 流水号 - String serialNum = String.format("%03d",equOrderMapper.selectSerialNumber()); - String orderCode = "O"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+serialNum; + String serialNum = String.format("%03d", equOrderMapper.selectSerialNumber()); + String orderCode = "O" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + serialNum; order.setOrderCode(orderCode); - if("1".equals(plan.getUpkeep())) {//1委外工单 - order.setOutsourceCode("BW"+orderCode); + if ("1".equals(plan.getUpkeep())) {//1委外工单 + order.setOutsourceCode("BW" + orderCode); } /**equ_order**/ sce = equOrderMapper.insertEquOrder(order); - System.out.println(plan.getPlanCode()+"========equ_order:"+sce); + System.out.println(plan.getPlanCode() + "========equ_order:" + sce); /**equ_plan_equ_spare->equ_spare_apply*************************************************************/ EquPlanEquSpare equPlanEquSpare = new EquPlanEquSpare(); equPlanEquSpare.setParentCode(plan.getPlanEquId()); @@ -276,7 +275,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { for (EquPlanEquSpare spare : spares) { EquSpareApply apply = new EquSpareApply(); apply.setApplyId(IdUtils.fastSimpleUUID()); - apply.setApplyCode("A"+orderCode+String.format("%02d",applySerialNum)); + apply.setApplyCode("A" + orderCode + String.format("%02d", applySerialNum)); applySerialNum++; apply.setSpareCode(spare.getMaterialCode()); apply.setSpareName(spare.getMaterialDesc()); @@ -310,13 +309,13 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { List standards = new ArrayList<>(); List standards0 = null; - for(EquPlanDetail itme:details){ + for (EquPlanDetail itme : details) { String detailId = IdUtils.fastSimpleUUID(); EquPlanStandard standardqo = new EquPlanStandard(); //equ_plan_detail的id standardqo.setParentCode(itme.getId()); standards0 = equPlanStandardMapper.selectEquPlanStandardList(standardqo); - for(EquPlanStandard standard:standards0) { + for (EquPlanStandard standard : standards0) { standard.setId(IdUtils.fastSimpleUUID()); standard.setCreateTime(nowtime); standard.setCreateBy(createBy); @@ -332,19 +331,19 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { itme.setDelFlag("0"); itme.setParentCode(orderCode); } - if(!CollectionUtils.isEmpty(details)) { + if (!CollectionUtils.isEmpty(details)) { sce = equOrderDetailMapper.insertEquOrderDetails(details); System.out.println(plan.getPlanCode() + "========equ_order_detail:" + sce); } /**equ_plan_standard->equ_order_standard*******************************************************/ - if(!CollectionUtils.isEmpty(standards)) { + if (!CollectionUtils.isEmpty(standards)) { sce = equOrderStandardMapper.insertEquOrderStandards(standards); System.out.println(plan.getPlanCode() + "========equ_order_standard:" + sce); } /**equ_plan_person->equ_order_standard*********************************************************/ - if("1".equals(plan.getUpkeep())){//1委外 + if ("1".equals(plan.getUpkeep())) {//1委外 EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); - BeanUtils.copyProperties(plan,equOutsourceWork); + BeanUtils.copyProperties(plan, equOutsourceWork); equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); equOutsourceWork.setWorkCode(order.getOutsourceCode()); equOutsourceWork.setWorkType("1");//1委外保养0委外维修 @@ -354,7 +353,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { equOutsourceWork.setRepairCode(orderCode); sce = equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); System.out.println(plan.getPlanCode() + "========equ_outsource_work:" + sce); - }else { + } else { EquPlanPerson equPlanPerson = new EquPlanPerson(); equPlanPerson.setPlanCode(plan.getPlanCode()); List persons = equPlanPersonMapper.selectEquPlanPersonList(equPlanPerson); From f0cc46c0b1bc6b190b7bbec3d684fa06a17b1e61 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 1 Dec 2023 11:09:15 +0800 Subject: [PATCH 04/27] =?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 34040a1a..6fae45c5 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 05/27] =?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 3652eb5a..9499fabf 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 19a581c8..534fd004 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 fc68b8da..c67141d8 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 bdd116a7..d70885d4 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 9550e625..3778a9c9 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 430c2bbc..df2eda83 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 f2f1616f..d1a1d7fb 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) { - this.quantity = quantity; - } - public Long getQuantity() { + public BigDecimal getQuantity() { return quantity; } + + public void setQuantity(BigDecimal quantity) { + this.quantity = 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 4a8e3e98..92f41acd 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 00ef2696..f0de465f 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 adcf46e4..b3c49ded 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 34112f93..6f89c239 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 435f3d3a..4858cb07 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); + + //母工单报工 + 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(); + } - MesReportWork work = reportWorks.get(0); + 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 9549454e..8972f8a8 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 4f8b0ef4..2d450bb0 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 2d3b3e14..9faba0e3 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 f6ae8139..737e9b7a 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}, + update_by = #{updateBy}, + update_time = #{updateTime} + where belong_work_order = #{workorderCode} - - update pro_order_workorder set status = #{status} where workorder_code = #{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 ca6c18b4..74c13d74 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 10ce38f5..c2a7d3f2 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 2bd5a1aa..c97ac09d 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 fc41f382..3b665909 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 9a00d021..e2731a48 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 e49372ef..88fe27ae 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 d63fb830..44711b5a 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 09a48349..0b053a0c 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 193c42aa..82588aa6 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 06/27] =?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 2d450bb0..677d2eea 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; } From 8856c74e4dff4b3d67623c8d3f631e61b9ff43e7 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 4 Dec 2023 10:29:01 +0800 Subject: [PATCH 07/27] =?UTF-8?q?=E8=B4=A8=E9=87=8Fbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quality/service/impl/QcCheckTypeProjectServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java index 14244499..0a7fb6a0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java @@ -9,6 +9,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.system.api.domain.SysDictData; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcCheckTypeProjectMapper; @@ -58,7 +59,10 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); if(dictMap != null){ for(QcCheckTypeProject dto:dtos){ - dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + if(StringUtils.isNotBlank(dto.getUint())){ + dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + } + } } return dtos; From 6712c71f99a1b777bc1148083543b74e74b93164 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 4 Dec 2023 13:26:01 +0800 Subject: [PATCH 08/27] =?UTF-8?q?=E8=B4=A8=E9=87=8F-=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E9=A1=B9=E5=A2=9E=E5=8A=A0=E4=B8=A4=E4=B8=AA=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/quality/domain/QcCheckProject.java | 22 ++++++++++++++- .../mapper/quality/QcCheckProjectMapper.xml | 27 ++++++++++++++----- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java index 9fa1b38f..e01a6f67 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java @@ -7,7 +7,7 @@ import com.op.common.core.web.domain.BaseEntity; /** * 检验项目维护对象 qc_check_project - * + * * @author Open Platform * @date 2023-10-13 */ @@ -53,11 +53,31 @@ public class QcCheckProject extends BaseEntity { @Excel(name = "工厂编码") private String factoryCode; + private String samplePlan; + + private String judge; + + public String getJudge() { + return judge; + } + + public void setJudge(String judge) { + this.judge = judge; + } + /** 删除标识1删除0正常 */ private String delFlag; private Long serialNumber; + public String getSamplePlan() { + return samplePlan; + } + + public void setSamplePlan(String samplePlan) { + this.samplePlan = samplePlan; + } + public void setId(String id) { this.id = id; } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml index 515f9b92..2a8c2f3a 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,15 +20,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select id, order_num, rule_name, property_code, check_mode, check_tool, unit_code, check_standard, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_check_project + select id, order_num, rule_name, property_code, check_mode, check_tool, unit_code, check_standard, + attr1, create_by, create_time, update_by, update_time, factory_code, del_flag,sample_plan, + judge + from qc_check_project - + - + insert into qc_check_project @@ -65,6 +72,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time, factory_code, del_flag, + sample_plan, + judge, #{id}, @@ -82,6 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateTime}, #{factoryCode}, #{delFlag}, + #{samplePlan}, + #{judge}, @@ -102,6 +113,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time = #{updateTime}, factory_code = #{factoryCode}, del_flag = #{delFlag}, + sample_plan = #{samplePlan}, + judge = #{judge}, where id = #{id} @@ -111,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from qc_check_project where id in + delete from qc_check_project where id in #{id} @@ -122,4 +135,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM qc_check_project WHERE CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120) - \ No newline at end of file + From 739bc7237cda0a5c7e303221bfbad003818b3941 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 4 Dec 2023 13:36:21 +0800 Subject: [PATCH 09/27] =?UTF-8?q?PDA=E8=AE=BE=E5=A4=87=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BABUG+=E4=BF=9D=E5=85=BB=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0BUG=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/service/impl/DevicePDAServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index c744876d..6d28e899 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -66,6 +66,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private SparePartsLedgerMapper sparePartsLedgerMapper; + @Autowired + private EquipmentMapper equipmentMapper; + /** * 获取今日巡检任务工单list-状态不为已完成 @@ -115,6 +118,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { timeArray.add(order.getOrderEnd()); order.setTimeArray(timeArray); + // 设备名称 + order.setEquipmentName(equipmentMapper.selectEquipmentByEquipmentCode(order.getEquipmentCode()).getEquipmentName()); + order.setPlanName(equOrderMapper.selectPlanNameByPlanCode(order.getOrderCode())); order.setWorkCenterName(equOrderMapper.selectCenterNameByCenterCode(order.getPlanWorkshop())); @@ -155,7 +161,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // 保养图片 BaseFileData selectTemp = new BaseFileData(); - selectTemp.setSourceId(equOrder.getId()); + selectTemp.setSourceId(order.getOrderId()); List upkeepPictures = equFileMapper.selectUrlList(selectTemp); if (upkeepPictures != null) { order.setUpkeepPictures(upkeepPictures); From 68fe1b45e57b66d6f98d85d4b658880fdae2c805 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 4 Dec 2023 13:36:29 +0800 Subject: [PATCH 10/27] =?UTF-8?q?PDA=E8=AE=BE=E5=A4=87=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BABUG+=E4=BF=9D=E5=85=BB=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0BUG=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/service/impl/InspectionWorkServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java index 7203edc3..492e7f35 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java @@ -59,6 +59,9 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { order.setPlanName(equPlan.getPlanName()); } + // 设备名称 + order.setEquipmentName(equipmentMapper.selectEquipmentByEquipmentCode(order.getEquipmentCode()).getEquipmentName()); + // 保养图片 BaseFileData selectTemp = new BaseFileData(); selectTemp.setSourceId(orderId); From 3575e34f3e6fbf119ea4e7d3739c37494a158605 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Mon, 4 Dec 2023 13:55:46 +0800 Subject: [PATCH 11/27] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E7=BB=B4=E4=BF=AEPC=E5=A1=AB=E5=86=99=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=81=E6=89=8B=E6=8C=81=E5=A1=AB=E5=86=99=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/EquEquipment.java | 12 + .../mapper/EquRepairWorkOrderMapper.java | 8 + .../service/impl/DevicePDAServiceImpl.java | 245 ++++++++++-------- .../impl/EquRepairWorkOrderServiceImpl.java | 9 + .../device/EquRepairWorkOrderMapper.xml | 7 + 5 files changed, 179 insertions(+), 102 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquEquipment.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquEquipment.java index 5566f4e4..3b2755e8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquEquipment.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquEquipment.java @@ -154,6 +154,10 @@ public class EquEquipment extends BaseEntity { @Excel(name = "SAP资产号") private String sapAsset; + /** 设备状态 */ + @Excel(name = "设备状态") + private String equipmentStatus; + public void setEquipmentId(Long equipmentId) { this.equipmentId = equipmentId; } @@ -400,6 +404,14 @@ public class EquEquipment extends BaseEntity { return sapAsset; } + //设备状态 + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } + public String getEquipmentStatus() { + return equipmentStatus; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java index 3393c5aa..58cc2b5a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java @@ -4,6 +4,7 @@ import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.domain.BaseFileData; +import com.op.device.domain.EquEquipment; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.EquTeamUser; import org.apache.ibatis.annotations.Param; @@ -104,4 +105,11 @@ public interface EquRepairWorkOrderMapper { * @return */ EquRepairWorkOrder selectEquRepairWorkOrderByWorkCode(String workCode); + + /** + * 修改设备状态 + * @param equEquipment + * @return + */ + public int updateEquipmentStatus(EquEquipment equEquipment); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 6d28e899..c1669d0d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -15,6 +15,7 @@ import com.op.device.service.IDevicePDAService; import com.op.system.api.domain.SysUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +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; @@ -537,14 +538,23 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); //维修中 equRepairWorkOrder.setWorkStatus("2"); + //维修工单里面的设备名 简化TODO + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + //修改设备状态 改为维修中 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(list.getEquipmentCode()); + equEquipment.setEquipmentStatus("2"); + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - return success("提交成功,开始维修!"); + return success("提交成功,设备开始维修!"); } catch (Exception e) { return error(); } } /** + * 查询设备 * @param equipmentId * @return */ @@ -617,117 +627,148 @@ public class DevicePDAServiceImpl implements IDevicePDAService { * @param equRepairWorkOrder * @return */ + @Transactional//增加事务注解,出错时自动回滚 @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - //判断是否停机 - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); - if (list.getWorkDownMachine().equals("1")) { - //维修结束时间、维修真正停机时间 - equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); - } - equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); - //更新每一项点检/巡检检查项信息 - List checkLists = equRepairWorkOrder.getDetailList(); - for (EquOrder checkList : checkLists) { - checkList.setUpdateBy(SecurityUtils.getUsername()); - checkList.setUpdateTime(DateUtils.getNowDate()); - List standardLists = checkList.getStandardList(); - for (EquOrderStandard standardList : standardLists) { - //先删除每个检查项标准图片 - equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); - //图片 - if (StringUtils.isNotEmpty(standardList.getPicturePath())) { - String[] ids = standardList.getPicturePath().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(standardList.getId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); + try { + //判断是否停机 + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + if (list.getWorkDownMachine().equals("1")) { + //维修真正停机时间 + equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); + } + //维修工单结束时间 + equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); + + ////更新每一项点检/巡检检查项信息 + //判空 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())){ + List checkLists = equRepairWorkOrder.getDetailList(); + for (EquOrder checkList : checkLists) { + checkList.setUpdateBy(SecurityUtils.getUsername()); + checkList.setUpdateTime(DateUtils.getNowDate()); + List standardLists = checkList.getStandardList(); + for (EquOrderStandard standardList : standardLists) { + //先删除每个检查项标准图片 + equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); + //图片批量新增 + if (StringUtils.isNotEmpty(standardList.getPicturePath())) { + String[] ids = standardList.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(standardList.getId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //图片类型 维修后 + file.setImageType("4"); + files.add(file); + } + equOrderStandardMapper.insertBaseFileBatch(files); + } + standardList.setRepairReach(standardList.getDetailReach()); + standardList.setRepairValue(standardList.getActualValue()); + standardList.setUpdateTime(DateUtils.getNowDate()); + standardList.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandardMapper.updateActualValues(standardList); } - equOrderStandardMapper.insertBaseFileBatch(files); + equOrderMapper.updateEquOrder(checkList); } - standardList.setRepairReach(standardList.getDetailReach()); - standardList.setRepairValue(standardList.getActualValue()); - standardList.setUpdateTime(DateUtils.getNowDate()); - standardList.setUpdateBy(SecurityUtils.getUsername()); - equOrderStandardMapper.updateActualValues(standardList); } - equOrderMapper.updateEquOrder(checkList); - } - //新建申领单 - List equSpareApplies = equRepairWorkOrder.getApplyList(); - for (EquSpareApply equSpareApply : equSpareApplies) { - //生成领料单code - String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); - String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); - //十五位单号 - equSpareApply.setApplyCode("AW" + code + serialNum); - equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); - //备品备件规格型号!!!!! -// equSpareApply.setSpareModel(equSpareApply.getS); - equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); - equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); - equSpareApply.setApplyPeople(SecurityUtils.getUsername()); - equSpareApply.setCreateBy(SecurityUtils.getUsername()); - equSpareApply.setCreateTime(DateUtils.getNowDate()); - equSpareApply.setApplyTime(DateUtils.getNowDate()); - equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); - equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String key = "#header.poolName"; - equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); - equSpareApplyMapper.insertEquSpareApply(equSpareApply); - - //更新完备品申领单后,更新库存 - SparePartsLedger sparePartsLedger = new SparePartsLedger(); - sparePartsLedger.setStorageId(equSpareApply.getStorageId()); - BigDecimal applyNum = equSpareApply.getSpareQuantity(); - BigDecimal amount = equSpareApply.getAmount(); - sparePartsLedger.setAmount(amount.subtract(applyNum)); - sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); - } + ////新建申领单 + //判空 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getApplyList())){ + List equSpareApplies = equRepairWorkOrder.getApplyList(); + for (EquSpareApply equSpareApply : equSpareApplies) { + //生成领料单code + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + //十五位单号 + equSpareApply.setApplyCode("AW" + code + serialNum); + equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + //备品备件规格型号!!!!! + //equSpareApply.setSpareModel(equSpareApply.getSpareMode()); + //备件编码 + equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); + //备件名称 + equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); + //申领人 + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); + equSpareApply.setCreateBy(SecurityUtils.getUsername()); + equSpareApply.setCreateTime(DateUtils.getNowDate()); + //申领时间 + equSpareApply.setApplyTime(DateUtils.getNowDate()); + //使用设备 + equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); + //关联维修工单号 + equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + //工厂号 + equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + equSpareApplyMapper.insertEquSpareApply(equSpareApply); + + ////更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + //减去库存 + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); + } + } - //图片 - //先删除每个维修工单对应图片 - equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); - if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { - String[] ids = equRepairWorkOrder.getFileList().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(equRepairWorkOrder.getWorkId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); + ////增加多个维修后照片 + //先删除每个维修工单对应图片 + equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); + if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { + String[] ids = equRepairWorkOrder.getFileList().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equRepairWorkOrder.getWorkId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); + } + equRepairWorkOrderMapper.insertBaseFileBatch(files); } - equRepairWorkOrderMapper.insertBaseFileBatch(files); + + ////更新维修工单 + //维修状态 + equRepairWorkOrder.setWorkStatus("1"); + //维修人 + equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); + //维修人员联系方式TODO!!!! + equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + + //维修工单里面的设备名 简化TODO + EquRepairWorkOrder example = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + //修改设备状态 由维修中改为正常运行 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(example.getEquipmentCode()); + equEquipment.setEquipmentStatus("1"); + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + + return success("提交成功,维修完成!"); + } catch (Exception e) { + return error("提交失败!"); } - //维修人:当前登录人 - //维修状态 - equRepairWorkOrder.setWorkStatus("1"); - //维修结束时间 - equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); - equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - //需要更新设备状态????这里没做 - return success("提交成功,维修完成!"); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 58746268..790412b6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -185,6 +185,15 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equOrderStandard.setUpdateTime(DateUtils.getNowDate()); equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard); } + + if(equRepairWorkOrder.getWorkStatus().equals("1")){ + //修改设备状态 由维修中改为正常运行 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + equEquipment.setEquipmentStatus("1"); + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + } + return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml index 8236de13..062a6694 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml @@ -477,4 +477,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and del_flag = '0' + + update base_equipment + set equipment_status = #{equipmentStatus} + where equipment_code = #{equipmentCode} + and del_flag = '0' + + \ No newline at end of file From 6c81f5e1d13552c3e9a7b84005dc75f5a4627cf1 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Mon, 4 Dec 2023 14:22:31 +0800 Subject: [PATCH 12/27] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=97=B6=E5=88=A4=E6=96=AD=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=98=AF=E4=B8=8D=E6=98=AF=E7=9C=9F=E7=9A=84=E6=95=85=E9=9A=9C?= =?UTF-8?q?=20=E9=9C=80=E8=A6=81=E7=BB=B4=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EquRepairOrderServiceImpl.java | 53 +++++++++++++++++-- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index de1ffbac..e970b796 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -164,6 +164,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { /** * 审核故障报修 + * 审核过程中判断设备是不是真的故障 需要维修 * * @param equRepairOrder 故障报修 * @return 结果 @@ -171,7 +172,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { @Override @DS("#header.poolName") public int checkEquRepairOrder(EquRepairOrder equRepairOrder) { - //改了,不生成流水号,从第十位开始切割 + //不生成流水号,从报修单号第十位开始切割、拼接 String code = equRepairOrder.getOrderCode().substring(10); String workCode = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + code; //判断是否是点检、巡检过来的 @@ -185,7 +186,6 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { one.setWorkCode("WX" + workCode); one.setUpdateBy(SecurityUtils.getUsername()); one.setUpdateTime(DateUtils.getNowDate()); - //只更新其中一个信息 equOrderMapper.updateEquOrderRepairCode(one); } } @@ -196,11 +196,15 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //维修单号 equRepairWorkOrder.setWorkCode("WX" + workCode); + //报修id equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); + //设备编号 equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); + //维修组 equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); //不委外 equRepairWorkOrder.setWorkOutsource("0"); + //无委外单号 equRepairWorkOrder.setOutWorkCode("无"); //是否立即维修 1是 0 否 equRepairWorkOrder.setWorkHandle("0"); @@ -213,7 +217,9 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { }else{ equRepairWorkOrder.setWorkDownMachine("0"); } + //故障描述???? equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); + //维修状态 待维修 equRepairWorkOrder.setWorkStatus("0"); equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); @@ -225,20 +231,35 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); equRepairOrder.setOrderStatus("审核通过"); + ////更新设备状态 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); + //0 故障 + equEquipment.setEquipmentStatus("0"); + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + }else if(equRepairOrder.getRepairDestination().equals("不维修")){ equRepairOrder.setOrderStatus("驳回"); }else if(equRepairOrder.getRepairDestination().equals("委外维修")){ EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); - //委外工单编码、id、联系方式、委外单位、委外人员、委外原因 + //id equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); + //报修单号 equOutsourceWork.setOrderCode(equRepairOrder.getOrderCode()); + //设备编码 equOutsourceWork.setEquipmentCode(equRepairOrder.getEquipmentCode()); + //委外工单号 equOutsourceWork.setWorkCode("WW" + workCode); + //维修工单号 equOutsourceWork.setRepairCode("无"); + //委外联系方式 equOutsourceWork.setWorkConnection(equRepairOrder.getWorkConnection()); + //委外单位 equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit()); + //委外人员 equOutsourceWork.setWorkPerson(equRepairOrder.getOutSourcePerson()); + //委外原因 equOutsourceWork.setWorkReason(equRepairOrder.getOutSourceReason()); //委外类型 维修委外 equOutsourceWork.setWorkType("0"); @@ -246,20 +267,35 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equOutsourceWork.setCreateTime(DateUtils.getNowDate()); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; + //工厂号 equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); equRepairOrder.setOrderStatus("审核通过"); + + ////更新设备状态 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); + //0 故障 + equEquipment.setEquipmentStatus("0"); + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + }else if(equRepairOrder.getRepairDestination().equals("立即维修")){ EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + //维修工单id + equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); //报修单号 equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //维修单号 equRepairWorkOrder.setWorkCode("WX"+workCode); + //orderId equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); + //设备编码 equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); + //维修组 equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); //不委外 equRepairWorkOrder.setWorkOutsource("0"); + //无委外工单号 equRepairWorkOrder.setOutWorkCode("无"); //是否立即维修 1是 0 否 equRepairWorkOrder.setWorkHandle("0"); @@ -272,9 +308,10 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { }else{ equRepairWorkOrder.setWorkDownMachine("0"); } + //故障描述 equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); + //工单状态 待维修 equRepairWorkOrder.setWorkStatus("0"); - equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername()); //工厂 @@ -283,6 +320,14 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); equRepairOrder.setOrderStatus("审核通过"); + + ////更新设备状态 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); + //0 故障 + equEquipment.setEquipmentStatus("0"); + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + } equRepairOrder.setUpdateTime(DateUtils.getNowDate()); equRepairOrder.setUpdateBy(SecurityUtils.getUsername()); From 5c0b7d3cbedb2bb1d22ceefc229b53d39dbddf70 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 4 Dec 2023 14:38:10 +0800 Subject: [PATCH 13/27] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E5=BC=80=E5=A7=8B/?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/mapper/EquOrderMapper.java | 7 +++++++ .../service/impl/DevicePDAServiceImpl.java | 18 ++++++++++++++++++ .../resources/mapper/device/EquOrderMapper.xml | 8 ++++++++ 3 files changed, 33 insertions(+) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 123d0396..77c344f5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -4,6 +4,7 @@ import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.device.domain.EquOrder; +import com.op.device.domain.Equipment; import com.op.device.domain.dto.PDADTO; import org.apache.ibatis.annotations.Mapper; @@ -164,4 +165,10 @@ public interface EquOrderMapper { * @param repairCode */ void updateEquOrderStatusComplete(String repairCode); + + /** + * 更新设备状态 + * @param equ + */ + void updateEquipmentStatus(Equipment equ); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 6d28e899..ac2d6951 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -68,6 +68,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquipmentMapper equipmentMapper; + @Autowired + private EquOperationRecordMapper equOperationRecordMapper; /** @@ -325,6 +327,12 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (maintenanceFlag) { // 设置结束时间 equOrder.setOrderEnd(DateUtils.getNowDate()); + // 创建设备对象用于更新设备状态 + Equipment equ = new Equipment(); + equ.setEquipmentCode(equOrder.getEquipmentCode()); + // 更新设备状态为开机 + equ.setStatus("1"); + equOrderMapper.updateEquipmentStatus(equ); //上传附件 if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { String[] ids = equOrder.getPicturePath().split(","); @@ -455,6 +463,16 @@ public class DevicePDAServiceImpl implements IDevicePDAService { order.setOrderStatus("3"); // 设置是否停机保养 order.setShutDown(pdadto.getShutDown()); + // 创建设备对象用于更新设备状态 + Equipment equ = new Equipment(); + equ.setEquipmentCode(order.getEquipmentCode()); + // 停机保养 + if (pdadto.getShutDown().equals("1")){ + // 更改设备状态为停机 + equ.setStatus("0"); + equOrderMapper.updateEquipmentStatus(equ); + } + // 设置开始时间 order.setOrderStart(DateUtils.getNowDate()); // 设置保养人 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index bede34e5..0d93ddf6 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -358,4 +358,12 @@ and del_flag = '0' + + update base_equipment be + set be.status = #{status} + where be.equipmentCode = #{equipmentCode} + and be.del_flag = '0' + + + From b4f86d97a0b62dba9a444d3c32f0cb189bf580de Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 4 Dec 2023 16:05:07 +0800 Subject: [PATCH 14/27] =?UTF-8?q?=E8=B4=A8=E9=87=8F-=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=A3=80=E9=AA=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QcCheckTypeProjectController.java | 3 +- .../op/quality/domain/QcCheckTypeProject.java | 10 ++--- .../impl/QcCheckTypeProjectServiceImpl.java | 4 +- .../impl/QcMaterialGroupServiceImpl.java | 2 +- .../impl/QcUserMaterialServiceImpl.java | 1 + .../quality/QcCheckTypeProjectMapper.xml | 38 ++++++++++++++----- 6 files changed, 39 insertions(+), 19 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java index d5c864fd..ce30450f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java @@ -100,9 +100,10 @@ public class QcCheckTypeProjectController extends BaseController { /** * 修改数据状态 */ - @Log(title = "物料检验项目维护", businessType = BusinessType.UPDATE) + @Log(title = "修改数据状态", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody QcCheckTypeProject qcCheckTypeProject) { return toAjax(qcCheckTypeProjectService.changeStatus(qcCheckTypeProject)); } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java index 5619b9b9..0b1dc6f0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java @@ -78,14 +78,14 @@ public class QcCheckTypeProject extends BaseEntity { private String checkTool; private String checkMode; - private String uint; + private String unit; - public String getUint() { - return uint; + public String getUnit() { + return unit; } - public void setUint(String uint) { - this.uint = uint; + public void setUnit(String unit) { + this.unit = unit; } public String getCheckTool() { diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java index 0a7fb6a0..d0999d1c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java @@ -59,8 +59,8 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); if(dictMap != null){ for(QcCheckTypeProject dto:dtos){ - if(StringUtils.isNotBlank(dto.getUint())){ - dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + if(StringUtils.isNotBlank(dto.getUnit())){ + dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel()); } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java index 08c509b4..6dcdabe5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java @@ -194,7 +194,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); if(dictMap != null){ for(QcCheckTypeProject dto:dtos){ - dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel()); } } return dtos; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java index 016f5a27..c7710402 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java @@ -29,6 +29,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { @Autowired private QcUserMaterialMapper qcUserMaterialMapper; @Override + @DS("master") public List selectUserList(QcUserMaterial qcUserMaterial) { return qcUserMaterialMapper.selectUserList( qcUserMaterial); } 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 231ccdbc..75afc412 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 @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -23,11 +23,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + select id, project_id, type_id, standard_value, upper_diff, down_diff, sample, status, attr1, - create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, material_code, sample_num + create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, + material_code, sample_num,unit,sort from qc_check_type_project @@ -35,8 +40,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT ctp.id, ctp.project_id, - cp.rule_name ruleName, - cp.property_code propertyCode, + cp.rule_name, + cp.property_code, + cp.unit_code unit, ctp.type_id, ctp.standard_value, ctp.upper_diff, @@ -51,7 +57,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ctp.del_flag, ctp.group_id, ctp.material_code, - ctp.sample_num + ctp.sample_num, + ctp.sort FROM qc_check_type_project ctp LEFT JOIN qc_check_project cp ON ctp.project_id = cp.id AND cp.del_flag = '0' @@ -68,14 +75,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ctp.sample_num = #{sampleNum} and cp.rule_name like concat('%', #{ruleName}, '%') + order by ctp.sort + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 0d93ddf6..05011613 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -359,10 +359,10 @@ - update base_equipment be - set be.status = #{status} - where be.equipmentCode = #{equipmentCode} - and be.del_flag = '0' + update base_equipment + set status = #{status} + where equipment_code = #{equipmentCode} + and del_flag = '0' From 2f48dfba53fed32d722af0ac8f510aae5c9b0ca7 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Mon, 4 Dec 2023 17:49:27 +0800 Subject: [PATCH 16/27] =?UTF-8?q?=E6=8A=A5=E4=BF=AE+=E7=BB=B4=E4=BF=AE+?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=8F=AD=E7=BB=84+=E5=A7=94=E5=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/op/device/domain/EquOrder.java | 11 +++++++++++ .../op/device/mapper/EquOrderStandardMapper.java | 4 ++-- .../device/service/impl/DevicePDAServiceImpl.java | 14 ++++++++------ .../service/impl/EquRepairOrderServiceImpl.java | 3 ++- .../impl/EquRepairWorkOrderServiceImpl.java | 3 ++- .../resources/mapper/device/EquOrderMapper.xml | 12 +++++++++--- .../mapper/device/EquOrderStandardMapper.xml | 7 +++++-- 7 files changed, 39 insertions(+), 15 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index 3a9e700d..9d56f45c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -207,6 +207,9 @@ public class EquOrder extends BaseEntity { private String picturePath; + //工具 + private String itemTools; + public String getPicturePath() { return picturePath; } @@ -663,6 +666,14 @@ public class EquOrder extends BaseEntity { return itemTypeName; } + //工具 + public String getItemTools() { + return itemTools; + } + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java index 41308b97..b04c8f74 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java @@ -79,12 +79,12 @@ public interface EquOrderStandardMapper { /** * 删除图片 */ - void deleteBaseFileBySourceId(String id); + void deleteBaseFileBySourceId(@Param("sourceId")String sourceId , @Param("imageType")String imageType); /** * 查询图片 */ - public List getBaseFileBatch(String id); + public List getBaseFileBatch(@Param("sourceId")String sourceId , @Param("imageType")String imageType); //PC查询点检巡检报修 List selectPdaEquOrderList(EquOrderStandard equOrderStandard); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 00b38dca..3d1f7da5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -620,7 +620,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for (EquOrderStandard standardList : standardLists) { //每个检查标准里面的照片 - List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); + String imageType = "4"; + List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId(),imageType); if (!CollectionUtils.isEmpty(files)) { standardList.setPicturePaths(files); } @@ -658,7 +659,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - try { +// try { //判断是否停机 EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); if (list.getWorkDownMachine().equals("1")) { @@ -678,7 +679,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { List standardLists = checkList.getStandardList(); for (EquOrderStandard standardList : standardLists) { //先删除每个检查项标准图片 - equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); + String imageType = "4"; + equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId(),imageType); //图片批量新增 if (StringUtils.isNotEmpty(standardList.getPicturePath())) { String[] ids = standardList.getPicturePath().split(","); @@ -793,9 +795,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); return success("提交成功,维修完成!"); - } catch (Exception e) { - return error("提交失败!"); - } +// } catch (Exception e) { +// return error("提交失败!"); +// } } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index e970b796..dfb15f3b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -81,7 +81,8 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 - List file = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); + String imageType = "3"; + List file = equOrderStandardMapper.getBaseFileBatch(standardList.getId(),imageType); if (!CollectionUtils.isEmpty(file)) { standardList.setPicturePaths(file); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 790412b6..076051d4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -77,7 +77,8 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 - List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); + String imageType = "4"; + List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId(),imageType); if (!CollectionUtils.isEmpty(files)) { standardList.setPicturePaths(files); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 05011613..3a437cbd 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -45,6 +45,7 @@ + @@ -300,11 +301,14 @@ eo.order_code, eo.repair_code, eo.work_code, + eo.plan_loop, + eo.plan_loop_type, eod.id, eod.item_name, eod.item_method, eod.item_type, - eod.item_type_name + eod.item_type_name, + eod.item_tools from equ_order eo left join equ_order_detail eod on eo.order_code = eod.order_code where eo.work_code = #{workCode} @@ -318,18 +322,20 @@ eo.order_code, eo.repair_code, eo.work_code, + eo.plan_loop, + eo.plan_loop_type, eod.id, eod.item_name, eod.item_method, eod.item_type, - eod.item_type_name + eod.item_type_name, + eod.item_tools from equ_order eo left join equ_order_detail eod on eo.order_code = eod.order_code where eo.repair_code = #{repairCode} and eo.del_flag = '0' - where source_id = #{sourceId} + and image_type = #{imageType} From 550203d2659532c5b76706ec9bf66f055fbcf539 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 5 Dec 2023 09:19:30 +0800 Subject: [PATCH 17/27] =?UTF-8?q?=E6=8B=86=E5=8D=95-=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E5=8A=A0=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/plan/service/impl/ProOrderServiceImpl.java | 1 + .../op/plan/service/impl/ProOrderWorkorderServiceImpl.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) 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 3b665909..f0763aa6 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 @@ -95,6 +95,7 @@ public class ProOrderServiceImpl implements IProOrderService { */ @Override @DS("#header.poolName") + @Transactional(rollbackFor = Exception.class) public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO) { boolean checkout = true; // 校验批次编号是否存在(重复问题) 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 e2731a48..683b337f 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 @@ -225,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的工单 //如果是白坯生成备料单 @@ -311,7 +311,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { R>> r = remoteSapService.SapCreateOrder(sapList); logger.info("sap工单回传:" + r.getMsg()); if (500 == r.getCode()) { - logger.error("sap工单回传:" + r.getMsg()); + logger.error("sap工单回传:(sap订单创建)" + r.getMsg()); return 0; } List> returnMaps = r.getData(); From 9b8cb7dc456009d9cf25699bc97834479d9396a4 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 5 Dec 2023 09:28:30 +0800 Subject: [PATCH 18/27] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0=E8=AE=A1=E5=88=92=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/service/impl/EquOrderServiceImpl.java | 6 ++++++ .../src/main/resources/mapper/device/EquOrderMapper.xml | 1 + 2 files changed, 7 insertions(+) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index c982cff2..a559228e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -149,6 +149,7 @@ public class EquOrderServiceImpl implements IEquOrderService { List workCenters = equPlanMapper.selectWorkCenter(factory); + // 设置工作中心 for (EquOrder order : orderList) { for (WorkCenter center : workCenters) { if (center.getFactoryCode().equals(order.getPlanWorkshop())) { @@ -156,6 +157,11 @@ public class EquOrderServiceImpl implements IEquOrderService { } } order.setEquipmentName(equOrderMapper.selectEquipmentNameByEquCode(order.getEquipmentCode())); + // 设置计划名称 + String planName = equOrderMapper.selectPlanNameByPlanCode(order.getPlanCode()); + if (planName!=null) { + order.setPlanName(planName); + } } return orderList; } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 3a437cbd..ec811201 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -106,6 +106,7 @@ and #{orderEndArrayEnd} >= CONVERT(date,order_end) and del_flag = '0' + order by create_time desc where equipment_code = #{equipmentCode} + and del_flag = '0' \ No newline at end of file From 515aff7f48942b52eea2e1b048cd205477fc7221 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 5 Dec 2023 11:46:18 +0800 Subject: [PATCH 22/27] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E7=94=A8=E6=97=B6?= =?UTF-8?q?=E3=80=81=E8=AE=A1=E5=88=92=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/service/impl/DevicePDAServiceImpl.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index f65d34f7..73282be1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -121,11 +121,14 @@ public class DevicePDAServiceImpl implements IDevicePDAService { timeArray.add(order.getOrderEnd()); order.setTimeArray(timeArray); + String planName = equOrderMapper.selectPlanNameByPlanCode(order.getPlanCode()); + if (planName != null) { + order.setPlanName(planName); + } + // 设备名称 order.setEquipmentName(equipmentMapper.selectEquipmentByEquipmentCode(order.getEquipmentCode()).getEquipmentName()); - order.setPlanName(equOrderMapper.selectPlanNameByPlanCode(order.getOrderCode())); - order.setWorkCenterName(equOrderMapper.selectCenterNameByCenterCode(order.getPlanWorkshop())); List detailList = equOrderDetailMapper.selectEquOrderDetailByOrderCode(order.getOrderCode()); @@ -253,6 +256,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // 更新工单信息 equOrder.setOrderStatus("1"); // 状态为已完成 + equOrder.setOrderStart(DateUtils.getNowDate());// 设置检查时间 equOrder.setUpdateTime(DateUtils.getNowDate()); equOrder.setUpdateBy(SecurityContextHolder.getUserName()); equOrder.setPlanPerson(SecurityContextHolder.getUserName()); @@ -328,6 +332,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (maintenanceFlag) { // 设置结束时间 equOrder.setOrderEnd(DateUtils.getNowDate()); + // 设置保养用时 + long diff = equOrder.getOrderEnd().getTime() - equOrder.getOrderStart().getTime(); + equOrder.setOrderCostTime(String.valueOf(diff/60000)); // 创建设备对象用于更新设备状态 Equipment equ = new Equipment(); equ.setEquipmentCode(equOrder.getEquipmentCode()); From b1712dd5fcb6c81fbe08df287625b79a815769a8 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 5 Dec 2023 12:20:57 +0800 Subject: [PATCH 23/27] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/MesReportWorkConsumeMapper.java | 2 + .../op/mes/mapper/MesReportWorkMapper.java | 4 ++ .../service/impl/IWCInterfaceServiceImpl.java | 26 +++++----- .../impl/MesReportWorkConsumeServiceImpl.java | 9 +++- .../mapper/mes/MesReportWorkConsumeMapper.xml | 21 +++++--- .../mapper/mes/MesReportWorkMapper.xml | 49 ++++++++++++++++--- .../resources/mapper/plan/ProOrderMapper.xml | 4 +- 7 files changed, 86 insertions(+), 29 deletions(-) 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 92f41acd..b349ef97 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 @@ -75,4 +75,6 @@ public interface MesReportWorkConsumeMapper { int submitConsumePS(@Param("list")List mesReportWorkConsumes); int addConsumePS(@Param("list")List rconsumes); + + List getSonConsumeList(MesReportWorkConsume mesReportWorkConsume); } 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 f0de465f..1513a6cc 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 @@ -121,4 +121,8 @@ public interface MesReportWorkMapper { List getPrepareList(MesPrepareDetail mesPrepareDetail); int addReportPS(@Param("list") List rworks); + + public MesReportWork getReportWorkHz(MesReportWork mesReportWork); + + MesReportWork getEndReport(MesReportWork pWork); } 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 4858cb07..c91ee251 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 @@ -304,28 +304,26 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 mesReportWork.setProdType("prod"); mesReportWork.setWorkorderCode(sapWorkOrders.get(1).getWorkorderCode()); - List reportWorks = mesReportWorkMapper.getReportWork(mesReportWork); - if(CollectionUtils.isEmpty(reportWorks)){ - return R.fail("未查询到报工单"); + MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); + if(sHzWorks==null){ + return R.fail("未查询到子报工单"); } - MesReportWork sWork = reportWorks.get(0); //子工单报工 logger.info("==========================子工单报工开始"); - this.reportToSap(sWork); + this.reportHzToSap(sHzWorks); logger.info("==========================子工单报工结束"); mesReportWork.setWorkorderCode(sapWorkOrders.get(0).getWorkorderCode()); - List reportWorks2 = mesReportWorkMapper.getReportWork(mesReportWork); - if(CollectionUtils.isEmpty(reportWorks2)){ - return R.fail("未查询到报工单"); + MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork); + if(pHzWork==null){ + return R.fail("未查询到母报工单"); } - MesReportWork pWork = reportWorks2.get(0); - //母工单报工 logger.info("==========================母工单报工开始"); - this.reportToSap(pWork); + this.reportHzToSap(pHzWork); logger.info("==========================母工单报工结束"); //最终报工标识:关闭子母工单 - if("1".equals(pWork.getEndReport())){ + MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork); + if("1".equals(endReport.getEndReport())){ logger.info("报工======母sap工单编码:"+sapWorkOrders.get(0).getWorkorderCodeSap()+ "子sap工单编码:"+sapWorkOrders.get(1).getWorkorderCodeSap() ); @@ -350,7 +348,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return R.ok(); } - private R reportToSap(MesReportWork workOrder){ + private R reportHzToSap(MesReportWork workOrder){ SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号 sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量 @@ -379,6 +377,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } sapRFW.setLt_hwList(lt_hwList); logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工请求:"+JSONObject.toJSONString(sapRFW)); + R r = remoteSapService.sapRFWOrder(sapRFW); logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); //上传成功,更改mes_report_work状态 @@ -390,6 +389,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } workOrder.setUploadTime(DateUtils.getNowDate()); mesReportWorkMapper.updateSyncSapStatus(workOrder); + return R.ok(); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 8972f8a8..2f93a072 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 @@ -152,7 +152,14 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer @Override @DS("#header.poolName") public List getConsumeList(MesReportWorkConsume mesReportWorkConsume) { - return mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + List dtos = new ArrayList<>(); + if("0".equals(mesReportWorkConsume.getParentOrder())){ + dtos = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + }else{ + dtos = mesReportWorkConsumeMapper.getSonConsumeList(mesReportWorkConsume); + } + + return dtos; } @Override diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index 9faba0e3..1d3c7ed6 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 @@ -93,15 +93,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mrwc.recoil from mes_report_work_consume mrwc where mrwc.del_flag = '0' - and mrwc.workorder_code = #{workorderCode} - - - and mrwc.parent_order = #{workorderCode} - + + - + insert into mes_report_work_consume record_id, 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 737e9b7a..6f1a8645 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 @@ -469,8 +469,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + insert into mes_report_work diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml index a0fe4877..c1d9381d 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml @@ -63,9 +63,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and prod_spc = #{prodSpc} and CONVERT(varchar(10),plan_pro_date, 120) >= '${planDateStart}' and '${planDateEnd}%' >= CONVERT(varchar(10),plan_pro_date, 120) + and prod_type != 'white' + and del_flag = '0' - and prod_type != 'white' - and del_flag = '0' ORDER BY plan_pro_date DESC From 9d8c6624b10e9f0c905bf52b7a397bb756e64e9d Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 5 Dec 2023 13:36:12 +0800 Subject: [PATCH 24/27] =?UTF-8?q?=E5=BF=AB=E9=80=9F=E4=BF=9D=E5=85=BB?= =?UTF-8?q?=E5=B7=A5=E5=8D=95PDA=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0BUG?= =?UTF-8?q?=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/device/EquOrderMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index 90549916..67861b0f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -139,7 +139,7 @@ From 53b090b2dbccac578050599f13d99080cd13db66 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 5 Dec 2023 14:12:26 +0800 Subject: [PATCH 25/27] =?UTF-8?q?=E5=AE=8C=E5=A5=BD=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=8D=A0=E6=AF=94=20=E5=8E=BB=E6=8E=89=E7=99=BE=E5=88=86?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/device/EquOperationRecordMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 7e34a4db..cb10a351 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -174,7 +174,7 @@ SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END) AS operationEquipment, SUM(CASE WHEN equipment_status = '0' or equipment_status = '0' THEN 1 Else 0 END) AS faultEquipment, COUNT(*) AS totalEquipment, - CONCAT(cast(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100/COUNT(*)as decimal(10,2)),'%') AS intactRate + CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate FROM base_equipment WHERE del_flag = '0' AND status = '1' From adecc8bee1ba536467ced996ba052d4854fcb631 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 5 Dec 2023 14:41:16 +0800 Subject: [PATCH 26/27] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceInterfaceServiceImpl.java | 11 ++++++----- .../mapper/device/EquOperationRecordMapper.xml | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index da8fba1c..13d84288 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -78,14 +78,14 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /* 停机故障率逻辑 */ - long totalTime = 0L;// 运行总时间 - long downTime = 0L;// 停机时间 + double totalTime = 0;// 运行总时间 + double downTime = 0;// 停机时间 // 通过设备编码获取运行记录中的运行记录List List operationRecordList = equOperationRecordMapper.selectEquOperationRecordByEquipmentCode(equipmentVO.getEquipmentCode()); if (operationRecordList.size() != 0) { for (EquOperationRecord operationRecord : operationRecordList) { // 运行时间差值 - long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); + double diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); // 开机运行时间运行总时间累加 if (operationRecord.getType().equals("on")) { totalTime += diffTime; @@ -103,6 +103,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { } else { // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) double failureRate = downTime / totalTime; + System.out.println(failureRate); equipmentVO.setFailureRate(failureRate); } @@ -145,7 +146,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 通过该设备code获取设备维修记录(只获取开始时间、结束时间) List workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode()); if (workOrderList.size() != 0) { - Long runTime = 0l; + double runTime = 0; for (EquRepairWorkOrder workOrder : workOrderList) { // 维修时间差值 long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime(); @@ -153,7 +154,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { runTime += diffTime; } // 计算维修质量(故障时间(小时)/故障次数) - long rapairQuantity = runTime / 3600000 / workOrderList.size(); + double rapairQuantity = runTime / 3600000 / workOrderList.size(); equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); } else { // 没有该记录则默认为0 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 7e34a4db..2b38ed9d 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -73,6 +73,7 @@ where eor.del_flag = '0' and eor.end_time is not null and eor.equipment_code = #{equipmentCode} + and eor.create_time >= DATEADD(year,-1, GETDATE()) From 345910f457b046082aa2a79e8f5ce9049d9ec326 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 5 Dec 2023 15:49:00 +0800 Subject: [PATCH 27/27] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=8F=98=E6=9B=B4=E3=80=81=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/device/service/impl/EquOrderServiceImpl.java | 4 +++- .../src/main/resources/mapper/device/EquPlanMapper.xml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index a559228e..5b87bf6e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -256,7 +256,9 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 更新工单信息 - equOrder.setOrderStatus("1"); // 状态为已完成 + if (!equOrder.getPlanType().equals("maintenance")) { + equOrder.setOrderStatus("1"); // 状态为已完成 + } equOrder.setUpdateTime(DateUtils.getNowDate()); equOrder.setUpdateBy(SecurityContextHolder.getUserName()); equOrder.setPlanPerson(SecurityContextHolder.getUserName()); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml index c05b9aba..34051cdc 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml @@ -87,6 +87,7 @@ and #{getLoopEndArrayEnd} >= CONVERT(date,plan_loop_end) and del_flag = '0' + order by create_time desc