From cb40968a0fcc0ddf38a7e1465d1d92118b1f3b87 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 7 Mar 2024 09:04:20 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesReportWorkConsumeController.java | 11 + .../controller/MesReportWorkController.java | 15 +- .../mes/domain/MesReportWorkConsumeTabs.java | 46 ++ .../com/op/mes/domain/ProOrderWorkorder.java | 10 +- .../service/IMesReportWorkConsumeService.java | 3 + .../op/mes/service/IMesReportWorkService.java | 3 + .../impl/MesReportWorkConsumeServiceImpl.java | 33 +- .../impl/MesReportWorkServiceImpl.java | 55 ++ .../mapper/mes/MesPrepareDetailMapper.xml | 2 +- .../mapper/mes/MesReportWorkConsumeMapper.xml | 1 + .../mapper/mes/MesReportWorkMapper.xml | 6 +- .../QcCheckTaskMarketController.java | 109 ++++ .../op/quality/domain/QcCheckTaskMarket.java | 558 ++++++++++++++++++ .../com/op/quality/domain/QcInterface.java | 18 + .../mapper/QcCheckTaskMarketMapper.java | 67 +++ .../op/quality/mapper/QcInterfaceMapper.java | 2 +- .../service/IQcCheckTaskMarketService.java | 61 ++ .../impl/QcCheckReportProduceServiceImpl.java | 12 + .../impl/QcCheckTaskInventoryServiceImpl.java | 13 + .../impl/QcCheckTaskMarketServiceImpl.java | 300 ++++++++++ .../service/impl/QcInterfaceServiceImpl.java | 288 +++++++-- .../quality/QcCheckTaskMarketMapper.xml | 240 ++++++++ .../mapper/quality/QcCheckTypeMapper.xml | 2 +- .../mapper/quality/QcInterfaceMapper.xml | 1 + 24 files changed, 1787 insertions(+), 69 deletions(-) create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsumeTabs.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskMarketController.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskMarket.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskMarketMapper.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskMarketService.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskMarketServiceImpl.java create mode 100644 op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskMarketMapper.xml 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 90e34b885..63237d5f7 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 @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.uuid.IdUtils; import com.op.mes.domain.MesReportWork; +import com.op.mes.domain.MesReportWorkConsumeTabs; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; @@ -148,6 +149,16 @@ public class MesReportWorkConsumeController extends BaseController { return rlist; } + /** + * 获取母子报工物料损耗记录 + **/ + @RequiresPermissions("mes:reportWork:report") + @GetMapping("/getAllLevelConsumeList") + public List getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume) { + List rlist = mesReportWorkConsumeService.getAllLevelConsumeList(mesReportWorkConsume); + return rlist; + } + @PostMapping("/submitConsumePS") public AjaxResult submitConsumePS(@RequestBody List mesReportWorkConsume) { return toAjax(mesReportWorkConsumeService.submitConsumePS(mesReportWorkConsume)); 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 2fbba6f87..37521890e 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 @@ -13,15 +13,21 @@ import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.poi.ExcelMapUtil; 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.dto.LineChartDto; import com.op.mes.domain.dto.SysFactoryDto; +import com.op.system.api.RemoteSapService; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.device.EquEquipmentDTO; +import com.op.system.api.domain.dto.MesPrepareDTO; +import com.op.system.api.domain.dto.MesPrepareDetailDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; +import com.op.system.api.domain.sap.SapMaterialPreparation; import org.apache.commons.lang.StringUtils; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -46,10 +52,11 @@ import com.op.common.core.utils.poi.ExcelUtilDailyReport; * @date 2023-08-24 */ @RestController -@RequestMapping("/reportWork") +@RequestMapping("./reportWork") public class MesReportWorkController extends BaseController { @Autowired private IMesReportWorkService mesReportWorkService; + /** * 查询报工报表列表 */ @@ -444,7 +451,11 @@ public class MesReportWorkController extends BaseController { e.printStackTrace(); } } - /**获取母子报工记录**/ + /**获取最新领料单**/ + @PostMapping("/getNewPrepareData") + public List getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) { + return mesReportWorkService.getNewPrepareData(mesPrepareDetail); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsumeTabs.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsumeTabs.java new file mode 100644 index 000000000..1d4861b2b --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsumeTabs.java @@ -0,0 +1,46 @@ +package com.op.mes.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 生产报工物料消耗对象 mes_report_work_consume + * + * @author Open Platform + * @date 2023-08-24 + */ +public class MesReportWorkConsumeTabs extends BaseEntity { + private static final long serialVersionUID = 1L; + private String libId; + private String title; + private List libList; + + public String getLibId() { + return libId; + } + + public void setLibId(String libId) { + this.libId = libId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public List getLibList() { + return libList; + } + + public void setLibList(List libList) { + this.libList = libList; + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java index a4b7b42ff..b27272cb0 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java @@ -28,7 +28,7 @@ public class ProOrderWorkorder extends TreeEntity { */ @Excel(name = "工单编码") private String workorderCode; - + private String workorderCodeSap; /** * 工单名称 */ @@ -209,6 +209,14 @@ public class ProOrderWorkorder extends TreeEntity { private String batchCode; private String batchId; + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + public String getBatchCode() { return batchCode; } 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 44e3eb04f..7f4fb12ad 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 @@ -4,6 +4,7 @@ import java.util.List; import com.op.mes.domain.MesReportWork; import com.op.mes.domain.MesReportWorkConsume; +import com.op.mes.domain.MesReportWorkConsumeTabs; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; @@ -84,4 +85,6 @@ public interface IMesReportWorkConsumeService { int submitReportInfo(MesReportWork mesReportWork); List getBomList(MesReportWorkConsume mesReportWorkConsume); + + List getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume); } 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 dcfd6d138..3063faf24 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 @@ -10,6 +10,7 @@ import com.op.mes.domain.dto.LineChartDto; import com.op.mes.domain.dto.SysFactoryDto; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.device.EquEquipmentDTO; +import com.op.system.api.domain.dto.MesPrepareDetailDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; /** @@ -108,4 +109,6 @@ public interface IMesReportWorkService { List getPutInOrderList(MesReportWork mesReportWorks); List getAllLevelReportList(MesReportWork mesReportWork); + + List getNewPrepareData(MesPrepareDetail mesPrepareDetail); } 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 67e531da3..1d6fe2d68 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 @@ -11,7 +11,7 @@ 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.domain.*; import com.op.mes.mapper.MesReportWorkMapper; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; @@ -21,7 +21,6 @@ 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; @@ -260,4 +259,34 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer List dtos = mesReportWorkConsumeMapper.getBomList(mesReportWorkConsume); return dtos; } + + @Override + @DS("#header.poolName") + public List getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume) { + List tabs = new ArrayList<>(); + MesReportWorkConsumeTabs pTabs = new MesReportWorkConsumeTabs(); + int i = 1; + pTabs.setLibId("consume"+i); + pTabs.setTitle("第"+i+"层工单物料损耗"); + mesReportWorkConsume.setParentOrder("0"); + List liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + pTabs.setLibList(liblist0); + tabs.add(pTabs); + + ProOrderWorkorder sonWorkOrder = mesReportWorkMapper.getSonWorkOrder(mesReportWorkConsume.getWorkorderCode()); + while(sonWorkOrder!=null){ + int xh = ++i; + MesReportWorkConsumeTabs sTabs = new MesReportWorkConsumeTabs(); + sTabs.setLibId("consume"+xh); + sTabs.setTitle("第"+xh+"层工单物料损耗"); + mesReportWorkConsume.setWorkorderCode(sonWorkOrder.getWorkorderCode()); + List liblist = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + sTabs.setLibList(liblist); + tabs.add(sTabs); + + sonWorkOrder = mesReportWorkMapper.getSonWorkOrder(sonWorkOrder.getWorkorderCode()); + } + + return tabs; + } } 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 be5ac1cbd..b2f0a60a7 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 @@ -18,10 +18,15 @@ import com.op.mes.domain.dto.LineChartDto; import com.op.mes.domain.dto.LineChartSeriesDto; import com.op.mes.domain.dto.SysFactoryDto; import com.op.mes.service.IWCSInterfaceService; +import com.op.system.api.RemoteSapService; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.device.EquEquipmentDTO; +import com.op.system.api.domain.dto.MesPrepareDetailDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; +import com.op.system.api.domain.sap.SapMaterialPreparation; import org.apache.commons.lang.StringUtils; +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.MesReportWorkMapper; @@ -36,6 +41,12 @@ import org.springframework.util.CollectionUtils; */ @Service public class MesReportWorkServiceImpl implements IMesReportWorkService { + + protected Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private RemoteSapService remoteSapService; + @Autowired private MesReportWorkMapper mesReportWorkMapper; @@ -182,6 +193,50 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return tabs; } + @Override + @DS("#header.poolName") + public List getNewPrepareData(MesPrepareDetail mesPrepareDetail) { + Date createDate = DateUtils.getNowDate(); + String workorderCodeSap = mesReportWorkMapper.getOrderByCode(mesPrepareDetail.getWorkorderCode()).getWorkorderCodeSap(); + logger.info("获取sap最新领料单:" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]"+ "开始"); + + List sapMaterialPreparationList = remoteSapService.materialPreparation(workorderCodeSap).getData(); + if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { + logger.info("sap无领料单数据:"+mesPrepareDetail.getWorkorderCode()); + } + + /**mes_prepare_detail**/ + List details = new ArrayList<>(); + + MesPrepareDetailDTO detail = null; + for (SapMaterialPreparation sap : sapMaterialPreparationList) { + detail = new MesPrepareDetailDTO(); + detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号 + detail.setMaterialCode(sap.getMATNR());//物料号 + detail.setMaterailName(sap.getMAKTX());//物料描述(短文本) + detail.setFactoryCode(sap.getWERKS());//工厂 + detail.setLocator(sap.getLGORT());//库存地点 + detail.setNeedDate(sap.getBDTER());//组件的需求日期 + detail.setQuantity(sap.getBDMNG());////需求量 + detail.setFundQuanlity(sap.getZQLSL());//欠料数量 + detail.setUnit(sap.getMEINS());//基本计量单位 + detail.setRecoil(sap.getRGEKZ());//反冲标识 + detail.setBuyFlag(sap.getDBSKZ());//直接采购标识 + detail.setCreateBy(SecurityUtils.getUsername()); + detail.setCreateTime(createDate); + details.add(detail); + logger.info("获取sap最新领料单:" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]" + + sap.getRSPOS() + "," + sap.getMATNR() + "," + + sap.getMAKTX() + "," + sap.getWERKS() + "," + sap.getLGORT() + "," + + sap.getBDTER() + "," + sap.getBDMNG() + "," + sap.getZQLSL() + "," + + sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ() + ); + } + + logger.info("获取sap最新领料单:" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]" + "结束"); + return details; + } + @Override @DS("#header.poolName") public int submitReportPS(List mesReportWorks) { diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml index cbdbcf8e8..b451787bb 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml @@ -81,7 +81,7 @@ left join mes_prepare mp on ow.workorder_code = mp.workorder_code left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id where ow.belong_work_order = #{workorderCode} - order by mp.workorder_name desc + order by mpd.recoil 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 4ad92d762..42429401e 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 @@ -106,6 +106,7 @@ from mes_report_work_consume mrwc where mrwc.del_flag = '0' and mrwc.workorder_code = #{workorderCode} + order by mrwc.recoil + select qct.record_id, qct.check_no, qct.income_batch_no, + qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit, + qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, + qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, + qct.create_by,qct.create_time, qct.update_by, qct.update_time, + qct.check_type,qct.sample_quality,qct.noOk_quality, + q.type_code + from qc_check_task qct + left join qc_check_type q on q.id = qct.check_type + + and qct.check_no = #{checkNo} + and qct.income_batch_no = #{incomeBatchNo} + and qct.order_no = #{orderNo} + and qct.material_code = #{materialCode} + and qct.material_name like concat('%', + #{materialName}, '%') + + and qct.supplier_code = #{supplierCode} + and qct.supplier_name like concat('%', + #{supplierName}, '%') + + and qct.income_time = #{incomeTime} + and qct.check_loc = #{checkLoc} + and qct.check_status = #{checkStatus} + and qct.check_man_code = #{checkManCode} + and qct.check_man_name like concat('%', + #{checkManName}, '%') + + and qct.check_result = #{checkResult} + and qct.status = #{status} + and qct.del_flag = #{delFlag} + and qct.factory_code = #{factoryCode} + and CONVERT(varchar(30),qct.income_time, 120) >= #{incomeTimeStart} + and #{incomeTimeEnd} > CONVERT(varchar(30),qct.income_time, 120) + and CONVERT(varchar(30),qct.check_time, 120) >= #{checkTimeStart} + and #{checkTimeEnd} > CONVERT(varchar(30),qct.check_time, 120) + and qct.check_type = #{checkType} + and q.type_code = #{typeCode} + + + + + + + insert into qc_check_task + + record_id, + check_no, + income_batch_no, + order_no, + material_code, + material_name, + quality, + unit, + supplier_code, + supplier_name, + income_time, + check_loc, + check_status, + check_man_code, + check_man_name, + check_time, + check_result, + status, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + check_type, + noOk_quality, + sample_quality, + aNoOkquality, + bNoOkquality, + cNoOkquality, + type_code, + order_type, + + + #{recordId}, + #{checkNo}, + #{incomeBatchNo}, + #{orderNo}, + #{materialCode}, + #{materialName}, + #{quality}, + #{unit}, + #{supplierCode}, + #{supplierName}, + #{incomeTime}, + #{checkLoc}, + #{checkStatus}, + #{checkManCode}, + #{checkManName}, + #{checkTime}, + #{checkResult}, + #{status}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + #{checkType}, + #{noOkQuality}, + #{sampleQuality}, + #{aNoOkquality}, + #{bNoOkquality}, + #{cNoOkquality}, + #{typeCode}, + #{orderType}, + + + + + update qc_check_task + + check_no = #{checkNo}, + income_batch_no = #{incomeBatchNo}, + order_no = #{orderNo}, + material_code = #{materialCode}, + material_name = #{materialName}, + quality = #{quality}, + unit = #{unit}, + supplier_code = #{supplierCode}, + supplier_name = #{supplierName}, + income_time = #{incomeTime}, + check_loc = #{checkLoc}, + check_status = #{checkStatus}, + check_man_code = #{checkManCode}, + check_man_name = #{checkManName}, + check_time = #{checkTime}, + check_result = #{checkResult}, + status = #{status}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + del_flag = #{delFlag}, + check_type = #{checkType}, + noOk_quality = #{noOkQuality}, + sample_quality = #{sampleQuality}, + aNoOkquality = #{aNoOkquality}, + bNoOkquality = #{bNoOkquality}, + cNoOkquality = #{cNoOkquality}, + type_code = #{typeCode}, + order_type = #{orderType}, + + where record_id = #{recordId} + + + + delete from qc_check_task where record_id = #{recordId} + + + + delete from qc_check_task where record_id in + + #{recordId} + + + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index e82284584..0a130ef10 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -34,7 +34,7 @@ and attr1 = #{attr1} and del_flag = '0' - order by create_time + order by type_code + - + From f75db486b3cb1daa131dc214a84aaa248e6f78c9 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 7 Mar 2024 10:39:21 +0800 Subject: [PATCH 03/19] =?UTF-8?q?SAP=E6=8A=A5=E5=B7=A5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=A7=E7=BA=BF=E7=BC=96=E7=A0=81=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/sap/service/impl/SapOrderServiceImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 2125c5647..4fc8609e2 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 @@ -99,7 +99,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 数据 @@ -156,7 +156,7 @@ public class SapOrderServiceImpl implements SapOrderService { return R.ok(proOrderList); } catch (Exception e) { - + log.error(e.getMessage()); return R.fail(e.getMessage()); } } @@ -201,7 +201,6 @@ public class SapOrderServiceImpl implements SapOrderService { LV_ORDER_NUM_List.add(AUFNR); } // 去重并排序(从大到小) - } List uniqueAndSorted = LV_ORDER_NUM_List.stream() .distinct() @@ -278,10 +277,15 @@ public class SapOrderServiceImpl implements SapOrderService { if (StringUtils.isEmpty(sapRFW.getGamng())){ return R.fail("报工数量为空"); } + if (StringUtils.isEmpty(sapRFW.getAnzma())){ + return R.fail("产线编号为空"); + } //订单号 jCoParameterList.setValue("P_AUFNR",sapRFW.getAufnr()); //报工数量 jCoParameterList.setValue("P_GAMNG",sapRFW.getGamng()); + //产线编号 + jCoParameterList.setValue("P_ANZMA",sapRFW.getAnzma()); if (sapRFW.getLt_gs()==null){ return R.fail("生产订单报工工时为空"); } From d249fd5b080cfece175303da19be84a991775b43 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 7 Mar 2024 10:40:40 +0800 Subject: [PATCH 04/19] =?UTF-8?q?SAP=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=A7=E7=BA=BF=E7=BC=96=E7=A0=81=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/op/system/api/domain/sap/SapRFW.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 534fd004d..b379c598d 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 @@ -8,9 +8,18 @@ import java.util.List; public class SapRFW { private String aufnr; private String gamng; + private String anzma; private lt_gs lt_gs; private List lt_hwList; + public String getAnzma() { + return anzma; + } + + public void setAnzma(String anzma) { + this.anzma = anzma; + } + public List getLt_hwList() { return lt_hwList; } From 4adc2b3fac6b8a2baf059973d0af86f4883ff79a Mon Sep 17 00:00:00 2001 From: A0010407 Date: Thu, 7 Mar 2024 15:25:39 +0800 Subject: [PATCH 05/19] =?UTF-8?q?2024-3-7=20=E8=B4=A8=E9=87=8F=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E3=80=81=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E5=9D=97-=E6=9D=A5=E6=96=99=E6=A3=80=E9=AA=8C=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=88=9B=E5=BB=BA=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?-=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/system/api/RemoteQualityService.java | 3 + .../factory/RemoteQualityFallbackFactory.java | 5 ++ .../src/main/java/com/op/job/task/RyTask.java | 8 ++ .../QcCheckTaskIncomeController.java | 85 +++++++++++++++++-- .../mapper/QcCheckTaskIncomeMapper.java | 6 ++ .../service/IQcCheckTaskIncomeService.java | 5 ++ .../impl/QcCheckTaskIncomeServiceImpl.java | 15 +++- .../quality/QcCheckTaskIncomeMapper.xml | 22 +++++ 8 files changed, 141 insertions(+), 8 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java index 646c3fa53..768b7b65d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java @@ -28,4 +28,7 @@ public interface RemoteQualityService { @PostMapping("/qcWarehousing/createProductTask") public R createProductTask(@RequestBody QcCheckTaskWarehousingDTO qcCheckTaskIncome); + + @PostMapping("/qcIncome/createIncomeBatchTask") + public R createIncomeBatchTask(); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java index 0400c399a..01e7bf349 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java @@ -37,6 +37,11 @@ public class RemoteQualityFallbackFactory implements FallbackFactory>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + ExecutorService executorService = new ThreadPoolExecutor( + dateSources.size(), + dateSources.size(), + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + try { + dateSources.forEach(dateSource -> { + Runnable run = () -> createIncomeBatchTaskFunc(dateSource.get("poolName")); + executorService.execute(run); + }); + } catch (Exception e) { + logger.error("controller == createIncomeBatchTask == exception", e); + return error("controller == createIncomeBatchTask == exception"); + } finally { + executorService.shutdown(); + } + return success(); + } + + public AjaxResult createIncomeBatchTaskFunc(String poolName){ + try { + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + Date taskTime = DateUtils.getNowDate(); + logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务开始+++时间:"+ taskTime +"++++++++++"); + List incomeBatchLists = qcCheckTaskIncomeService.getIncomeBatchList(poolName); + List batchRecordIds = new ArrayList<>(); + int successNum = 0;//成功任务数 + int failNum = 0;//失败任务数 + if(incomeBatchLists != null){ + for( int i = 0 ; i < incomeBatchLists.size();){ + QcCheckTaskIncomeDTO qcCheckTaskIncomedto = new QcCheckTaskIncomeDTO(); + QcCheckTaskIncome income = incomeBatchLists.get(i); + BeanUtils.copyProperties(income,qcCheckTaskIncomedto); + //内层一个一个创建任务 + AjaxResult ajaxResult = createIncomeTask(qcCheckTaskIncomedto); + if(ajaxResult.isSuccess()){ + batchRecordIds.add(qcCheckTaskIncomedto.getRecordId()); + successNum = successNum + 1; + logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务成功++++++++++"); + }else if(ajaxResult.isError()){ + failNum = failNum +1; + logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务失败++++++++++"); + } + i++; + } + }else{ + logger.info("++++++++++++" + poolName + "工厂来料检验没有可创建的任务++++++++++"); + } + //批量修改原表中的check_status和check_time + int upate = qcCheckTaskIncomeService.updateIncomeBatchList(batchRecordIds,taskTime); + logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务结束:成功"+ successNum +"失败"+ failNum +"+++++"); + return success(); + } catch (Exception e) { + logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务失败++++++++++"); + return error("++++++++++++" + poolName + "工厂来料检验批量创建任务失败++++++++++"); + } + } + @PostMapping("/createIncomeTask") public AjaxResult createIncomeTask(@RequestBody QcCheckTaskIncomeDTO qcCheckTaskIncome0) { QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome(); @@ -166,14 +237,14 @@ public class QcCheckTaskIncomeController extends BaseController { if (qcCheckTaskIncome.getIncomeTime() == null) { return error("[incomeTime]不能为空"); } - logger.info("来料检验任务生成开始================================"); - logger.info("来料检验任务生成参数:" + JSONObject.toJSONString(qcCheckTaskIncome)); + logger.info(qcCheckTaskIncome0.getFactoryCode() + "工厂来料检验任务生成开始================================"); + logger.info(qcCheckTaskIncome0.getFactoryCode() + "工厂来料检验任务生成参数:" + JSONObject.toJSONString(qcCheckTaskIncome)); int r = qcCheckTaskIncomeService.insertQcCheckTaskIncome(qcCheckTaskIncome); if (r > 0) { return toAjax(r); } - return error("添加失败:请检查物料的关联检测项"); + return error(qcCheckTaskIncome0.getFactoryCode() + "工厂添加失败:请检查物料的关联检测项" ); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index dac1c52f9..29eaf5fb1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -1,5 +1,6 @@ package com.op.quality.mapper; +import java.util.Date; import java.util.List; import com.op.quality.domain.*; @@ -102,4 +103,9 @@ public interface QcCheckTaskIncomeMapper { int deleteQcCheckTaskDefects(String belongId); List getCkeckTaskXJList(QcCheckTaskIncome qcCheckTaskIncome); + + //查询SRM来料记录表中,所有未插入的数据 + List getIncomeBatchList(); + + int updateIncomeBatchList(@Param("list") List batchRecordIds, @Param("time") Date taskTime); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 8adc4ece3..afea8afd5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -1,5 +1,6 @@ package com.op.quality.service; +import java.util.Date; import java.util.List; import com.op.quality.domain.*; @@ -91,4 +92,8 @@ public interface IQcCheckTaskIncomeService { List getCkeckProjectXJList(QcCheckTaskIncome qcCheckTaskIncome); List getDefectListPDA(QcDefectType qcDefectType); + + List getIncomeBatchList(String poolName); + + int updateIncomeBatchList(List batchRecordIds , Date taskTime); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index ad81540ba..abbacf457 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -156,7 +156,10 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { /**qc_material_group_detail**/ //个性 QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskIncome.getMaterialCode()); - if(group == null){ +// if(group == null){ +// return 0;//没有找到检测项目 +// } + if(Objects.isNull(group)){ return 0;//没有找到检测项目 } //共性 @@ -708,4 +711,14 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return n ; } + @Override + public List getIncomeBatchList(String poolName) { + DynamicDataSourceContextHolder.push(poolName);//这是数据源的key + return qcCheckTaskIncomeMapper.getIncomeBatchList(); + } + + @Override + public int updateIncomeBatchList(List batchRecordIds , Date taskTime){ + return qcCheckTaskIncomeMapper.updateIncomeBatchList(batchRecordIds ,taskTime); + } } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 67ee786bc..3e60a9473 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -429,4 +429,26 @@ ) + + + + + + + + update qc_income_original + set + check_status = '1', + check_time = #{time} + where + record_id = #{item} + + From 06d6da1045243dcb7efedf7451f5b9e946efd8e1 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 7 Mar 2024 15:35:56 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/op/sap/controller/SapController.java | 2 ++ .../main/java/com/op/sap/service/impl/SapOrderServiceImpl.java | 3 +-- 2 files changed, 3 insertions(+), 2 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 aaf243025..be1d6d100 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 @@ -351,6 +351,8 @@ public class SapController extends BaseController { return sapOrderService.sapRFWOrder(sapRFW); } + + /** * 生产订单关闭接口 * 传母订单号即可 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 4fc8609e2..7be1d435f 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 @@ -268,7 +268,6 @@ public class SapOrderServiceImpl implements SapOrderService { if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } - // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); if (StringUtils.isEmpty(sapRFW.getAufnr())){ @@ -321,7 +320,7 @@ public class SapOrderServiceImpl implements SapOrderService { System.out.println(func.getExportParameterList()); String RETCODE= func.getExportParameterList().getString("RETCODE"); MESSAGE= func.getExportParameterList().getString("MESSAGE"); - if (Constants.FAIL.equals(RETCODE)){ + if (Constants.FAIL.equals(Integer.parseInt(RETCODE))){ return R.fail("订单号:"+sapRFW.getAufnr()+"报工失败"+MESSAGE); } return R.ok("",MESSAGE); From eabfa9449d740b2fd93480ccda59682c5e7dbcfa Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 7 Mar 2024 15:41:32 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E5=A2=9E=E5=8A=A0sap?= =?UTF-8?q?=E4=BA=A7=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MesReportWorkController.java | 2 +- .../java/com/op/mes/domain/MesReportWork.java | 27 +++++++------------ .../service/impl/IWCInterfaceServiceImpl.java | 6 ++--- .../mapper/mes/MesReportWorkMapper.xml | 9 ++++--- 4 files changed, 19 insertions(+), 25 deletions(-) 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 37521890e..ad034b78a 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 @@ -52,7 +52,7 @@ import com.op.common.core.utils.poi.ExcelUtilDailyReport; * @date 2023-08-24 */ @RestController -@RequestMapping("./reportWork") +@RequestMapping("/reportWork") public class MesReportWorkController extends BaseController { @Autowired private IMesReportWorkService mesReportWorkService; 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 cab779e95..f87cb2e99 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 @@ -86,8 +86,6 @@ public class MesReportWork extends BaseEntity { @Excel(name = "物料消耗单位") private String materialNameUnit; - - /** 报工单编号 */ // @Excel(name = "报工单编号") private String reportCode; @@ -96,18 +94,12 @@ public class MesReportWork extends BaseEntity { //@Excel(name = "报工类型,报工类型:SELF上位机报工、UNI系统报工") private String reportType; - /** 规格型号 */ //@Excel(name = "规格型号") private String spec; - - - - private BigDecimal quantitySplit; - /** 合格数量 */ //@Excel(name = "合格数量") private BigDecimal quantityQualified; @@ -120,13 +112,9 @@ public class MesReportWork extends BaseEntity { //@Excel(name = "报工人员") private String userName; - - /** 报工途径:PAD、MOBILE、PC */ //@Excel(name = "报工途径:PAD、MOBILE、PC") private String feedbackChannel; - - private String feedbackTimeStr; /** 录入人员 */ @@ -137,16 +125,10 @@ public class MesReportWork extends BaseEntity { //@Excel(name = "状态") private String status; - - - - /** 线体编码 */ //@Excel(name = "线体编码") private String machineCode; - - /** 班组编码 */ //@Excel(name = "班组编码") private String teamCode; @@ -226,6 +208,15 @@ public class MesReportWork extends BaseEntity { private String voucher; //版本 private String version; + private String sapCode; + + public String getSapCode() { + return sapCode; + } + + public void setSapCode(String sapCode) { + this.sapCode = sapCode; + } public String getVoucher() { return voucher; 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 34e09174f..f74650426 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 @@ -344,7 +344,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { /**(两层报工)子工单先报工,然后母工单报工**/ mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 mesReportWork.setProdType("prod"); - mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); + mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); if(sHzWorks==null){ return R.fail("未查询到子报工单"); @@ -355,7 +355,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); if(sapRson.getCode()== 200){ //一定是子单报工成功返回后,再母单报工 - mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); + mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork); if(pHzWork==null){ return R.fail("未查询到母报工单"); @@ -449,8 +449,8 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return R.fail("mes_report_work_consume没有数据"); } sapRFW.setLt_hwList(lt_hwList); + sapRFW.setAnzma(workOrder.getSapCode());//产线编号 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状态 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 85808be7e..fd8f7a955 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 @@ -572,7 +572,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mrw.product_code productCode, mrw.product_name productName, mrw.sac1, - mrw.sac2 + mrw.sac2, + equ.sap_code sapCode from ( select workorder_code, @@ -588,7 +589,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by workorder_code,product_code,product_name,use_man ) mrw left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code - + left join base_equipment equ on equ.equipment_code = ow.workorder_name select be.equipment_code AS 'equipmentCode', be.equipment_name AS 'equipmentName',be.equipment_status AS - 'equipmentStatus', (SELECT ROUND( + 'equipmentStatus',be.department AS + 'department',(SELECT ROUND( SUM(CAST(fault_time AS FLOAT)) / SUM(CAST(actual_operation_time AS FLOAT)), 2) From 8bb60b521265561bf4cbfb15534ad1805a3f1c77 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 7 Mar 2024 21:43:14 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E5=B7=A1=E6=A3=80=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=AE=9A=E7=82=B9=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op-job/src/main/java/com/op/job/task/RyTask.java | 2 +- .../java/com/op/quality/controller/QuaController.java | 6 ++++++ .../service/impl/QcCheckTaskProduceServiceImpl.java | 10 +++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index f59d6ea5b..2868bf0e4 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -155,7 +155,7 @@ public class RyTask { } /************质量管理系统定时任务开始*****************/ - //过程巡检,每15分钟执行一次 + //过程巡检,改为整点08:00-20:00运行 public void createProduceXJTask(){ logger.info("++质量管理系统+过程巡检+开始++createProduceXJTask+++++"); remoteQualityService.createProduceXJTask(); 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 fefd949cf..38a2a79fb 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 @@ -189,6 +189,12 @@ public class QuaController extends BaseController { if(CollectionUtils.isEmpty(qcCheckTaskIncome.getQcCheckTaskDetails())){ return error("[List]不能为空"); } + if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateBy())){ + return error("[updateBy]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateByName())){ + return error("[updateByName]不能为空"); + } return toAjax(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskIncome)); } /** diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index cb3635798..dbc19808e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -383,14 +383,14 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService for(QcCheckTaskProduce productTask:works){ productTask.setCheckType("checkTypeSCXJ");//过程检验-巡检 productTask.setOrderNo(productTask.getWorkorderCode()); - Date nowTime = DateUtils.getNowDate(); - Date startTime = productTask.getCreateTime(); +// Date nowTime = DateUtils.getNowDate(); +// Date startTime = productTask.getCreateTime(); - long mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); - if(mins>=60){ +// long mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); +// if(mins>=60){ int m = insertQcCheckTaskProduce(productTask); logger.info("++++++++++++过程检验巡检任务生成" + m + "++++++++++++++"); - } +// } } logger.info("++++++++++++" + poolName + "++++过程检验巡检结束++++++++++"); } From 841b3029c20fecd2dded1786647c5adfd627969d Mon Sep 17 00:00:00 2001 From: A0010407 Date: Fri, 8 Mar 2024 12:01:19 +0800 Subject: [PATCH 10/19] =?UTF-8?q?2024-3-8=20=E8=AE=BE=E5=A4=87=E6=A8=A1?= =?UTF-8?q?=E5=9D=97-=E8=AE=BE=E5=A4=87=E7=9C=8B=E6=9D=BF=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/vo/IEquipmentVO.java | 8 ++++---- .../impl/DeviceInterfaceServiceImpl.java | 18 +++++++++--------- .../mapper/device/DeviceInterfaceMapper.xml | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java index a079d7ac3..0b2edfd88 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java @@ -12,8 +12,8 @@ public class IEquipmentVO { private Double failureRate; // 设备有效利用率 private Double utilizationRatio; - // 设备维修质量 - private Double rapairQuantity; + // 设备维修质量 拼错了!!!!! + private String rapairQuantity; // 设备状态 private String equipmentStatus; @@ -25,11 +25,11 @@ public class IEquipmentVO { this.equipmentStatus = equipmentStatus; } - public Double getRapairQuantity() { + public String getRapairQuantity() { return rapairQuantity; } - public void setRapairQuantity(Double rapairQuantity) { + public void setRapairQuantity(String rapairQuantity) { this.rapairQuantity = rapairQuantity; } 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 0a560a28c..9045db323 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 @@ -95,26 +95,26 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { runTime += diffTime; } // 计算维修质量(故障时间(小时)/故障次数) - double rapairQuantity = runTime / 3600000 / workOrderList.size(); - equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); + Double rapairQuantity = runTime / 3600000 / workOrderList.size(); + String douStr = String.format("%.2f", rapairQuantity); + equipmentVO.setRapairQuantity(douStr); } else { // 没有该记录则默认为0 - equipmentVO.setRapairQuantity(0D); + equipmentVO.setRapairQuantity("0.00"); } } // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 List top10 = equipmentVOList.stream() - .sorted(Comparator.comparingDouble(IEquipmentVO::getRapairQuantity)) // 排序 - .limit(10) // 限制结果数量为10 - .collect(Collectors.toList()); // 将结果收集到List中 - + .sorted(Comparator.comparing(IEquipmentVO::getRapairQuantity).reversed())// 由正序改为 反转排序 倒序 +// .limit(10) // 限制结果数量为10 改为不限制结果数量 + .collect(Collectors.toList()); //将结果收集到List中 return success(top10); } /** - * 设备稳定性-MTBF top10 + * 设备稳定性-MTBF * 公式:实际运转时间/停机次数 */ @Override @@ -132,7 +132,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 完好设备占比 - * 公式:维修/故障设备 + * 公式:(所有设备-故障设备)/所有设备 */ @Override @DS("#header.poolName") diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index bdd8cff70..9cd330cc4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -96,7 +96,7 @@ )/COUNT(equipment_code) as decimal(18,2))as mtbf from equ_operation eo - and day(eo.create_time) = day(getdate()) + and convert(char(10),eo.create_time,120) = convert(char(10),getdate(),120) and month(eo.create_time) = month(getdate()) and year(eo.create_time) = year(getdate()) From 93d33895e7a67568cb5b998e7963eca7c8ea6258 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 8 Mar 2024 22:12:24 +0800 Subject: [PATCH 11/19] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E5=85=AC=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9+=E8=AE=A2=E5=8D=95=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9+=E5=B7=A1=E6=A3=80?= =?UTF-8?q?=E5=A4=9A=E5=87=BA=E4=B8=80=E6=9D=A1=E7=9A=84bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/mes/service/impl/IWCInterfaceServiceImpl.java | 8 ++++---- .../src/main/resources/mapper/mes/MesReportWorkMapper.xml | 2 +- .../java/com/op/open/service/impl/OpenServiceImpl.java | 5 ++++- .../resources/mapper/quality/QcCheckTaskProduceMapper.xml | 3 ++- .../java/com/op/sap/service/impl/SapOrderServiceImpl.java | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index f74650426..349343ef1 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 @@ -295,14 +295,14 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { * * 其它 = 人工 * * 二层---------------------------------------- * * 子单进行报工的时候公式调整如下(数值单位不用管): - * * 机器=sum(工时数/用人数) + * * 机器=sum(工时数) * * 人工 = 用人数*机器 * * 折旧 = 机器 * * 其它 = 人工 * *

* * 母单进行报工的时候公式调整如下: - * * 机器=子单机器 - * * 人工 = 管理系统维护的用人数*机器 + * * 机器=sum(工时数) + * * 人工 = 4*sum(工时数) * * 折旧 = 机器 * * 其它 = 人工 * * 三层及其以上---------------------------------------- @@ -368,7 +368,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { //母工单报工 logger.info("==========================母工单报工开始"); pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); - pHzWork.setSac1(sHzWorks.getSac1()); + pHzWork.setSac2("4");//母单报工固定值 R sapR = this.reportHzToSap(pHzWork,2); logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); return sapR; 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 fd8f7a955..a4a215856 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 @@ -578,7 +578,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select workorder_code, sum(quantity_feedback) quantity_feedback, - sum(round( work_time/use_man,2)) sac1, + sum(work_time) sac1, use_man sac2, product_code, product_name 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 00aae8e00..85ad36a0e 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 @@ -391,7 +391,10 @@ public class OpenServiceImpl implements OpenService { } /**qc_check_task**/ - + if("checkTypeSCXJ".equals(qcCheckTaskProduce.getCheckType())){ + //巡检要求8-20点准点产生巡检任务。要求8点之前开始生产,那么第一条上位机触发的就当成模板 + qcCheckTaskProduce.setDelFlag("1"); + } qcCheckTaskProduce.setRecordId(beLongId); qcCheckTaskProduce.setFactoryCode(factoryCode); qcCheckTaskProduce.setCreateTime(nowDate); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 926f70b41..ff5c67708 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -179,7 +179,8 @@ qct.confirm_man_name confirmManName from qc_check_task qct left join pro_order_workorder pow on qct.order_no = pow.workorder_code - where check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and pow.del_flag = '0' + where qct.check_type = 'checkTypeSCXJ' + and pow.del_flag = '0' and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120) and pow.status = 'w2' and pow.parent_order = '0' group by qct.factory_code, 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 7be1d435f..0c4d03a11 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 @@ -228,7 +228,7 @@ public class SapOrderServiceImpl implements SapOrderService { // JCoDestination dest = SAPConnUtils.connect(); log.info("订单关闭入参------"+sapCloseOrderQuery.toString()); JCoRepository repository = dest.getRepository(); - JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CLOSE"); + JCoFunction func = repository.getFunction("ZMES_AUFNR_CLOSE"); if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } From adbf632d7475b32ee505c133a5d0e73b9b4202c8 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Fri, 8 Mar 2024 23:37:19 +0800 Subject: [PATCH 12/19] =?UTF-8?q?=E5=B7=A1=E6=A3=80=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=BC=9A=E5=A4=9A=E4=B8=80=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/op/open/service/impl/OpenServiceImpl.java | 4 ---- .../resources/mapper/quality/QcCheckTaskProduceMapper.xml | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) 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 85ad36a0e..146764e95 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 @@ -391,10 +391,6 @@ public class OpenServiceImpl implements OpenService { } /**qc_check_task**/ - if("checkTypeSCXJ".equals(qcCheckTaskProduce.getCheckType())){ - //巡检要求8-20点准点产生巡检任务。要求8点之前开始生产,那么第一条上位机触发的就当成模板 - qcCheckTaskProduce.setDelFlag("1"); - } qcCheckTaskProduce.setRecordId(beLongId); qcCheckTaskProduce.setFactoryCode(factoryCode); qcCheckTaskProduce.setCreateTime(nowDate); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index ff5c67708..28de20adf 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -179,7 +179,7 @@ qct.confirm_man_name confirmManName from qc_check_task qct left join pro_order_workorder pow on qct.order_no = pow.workorder_code - where qct.check_type = 'checkTypeSCXJ' + where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and pow.del_flag = '0' and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120) and pow.status = 'w2' and pow.parent_order = '0' From c3125ca18bd6d6d997ae3c56143b5d658d71ebeb Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Sat, 9 Mar 2024 11:01:15 +0800 Subject: [PATCH 13/19] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=8A=A0=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/plan/ProOrderWorkorderMapper.xml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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 ac5ed3a14..6d48cb75f 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 @@ -189,9 +189,18 @@ + + + + and belong_goal_id = #{belongGoalId} + + + and supplier_code = #{supplierCode} + + + and supplier_name like concat('%', #{supplierName}, '%') + + + and attr1 = #{attr1} + + + and attr2 = #{attr2} + + + and attr3 = #{attr3} + + + and attr4 = #{attr4} + + + and factory_code = #{factoryCode} + + + + + + + + insert into qc_goal_distribute + + id, + + belong_goal_id, + + supplier_code, + + supplier_name, + + attr1, + + attr2, + + attr3, + + attr4, + + create_by, + + create_time, + + update_by, + + update_time, + + factory_code, + + del_flag, + + + + #{id}, + + #{belongGoalId}, + + #{supplierCode}, + + #{supplierName}, + + #{attr1}, + + #{attr2}, + + #{attr3}, + + #{attr4}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{factoryCode}, + + #{delFlag}, + + + + + + update qc_goal_distribute + + belong_goal_id = + #{belongGoalId}, + + supplier_code = + #{supplierCode}, + + supplier_name = + #{supplierName}, + + attr1 = + #{attr1}, + + attr2 = + #{attr2}, + + attr3 = + #{attr3}, + + attr4 = + #{attr4}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + factory_code = + #{factoryCode}, + + del_flag = + #{delFlag}, + + + where id = #{id} + + + + delete from qc_goal_distribute where id = #{id} + + + + delete from qc_goal_distribute where id in + + #{id} + + + + + delete from qc_goal_distribute where belong_goal_id = #{belongGoalId} + + + + + + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml new file mode 100644 index 000000000..ea8481884 --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, goal_ym, goal_type, noOk_rate, noOk_quality_rate, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag, check_type, type_code, scope, parent_goal from qc_goal + + + + + + + + + + insert into qc_goal + + id, + + goal_ym, + + goal_type, + + noOk_rate, + + noOk_quality_rate, + + create_by, + + create_time, + + update_by, + + update_time, + + factory_code, + + del_flag, + + check_type, + + type_code, + + scope, + + parent_goal, + + + + #{id}, + + #{goalYm}, + + #{goalType}, + + #{nookRate}, + + #{nookQualityRate}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{factoryCode}, + + #{delFlag}, + + #{checkType}, + + #{typeCode}, + + #{scope}, + + #{parentGoal}, + + + + + + insert into qc_goal(id,goal_ym,goal_type,noOk_rate,noOk_quality_rate,create_by,create_time, + update_by,update_time,factory_code,check_type,type_code,scope,parent_goal)values + + (#{item.id}, + #{item.goalYm}, + #{item.goalType}, + #{item.nookRate}, + #{item.nookQualityRate}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime}, + #{item.factoryCode}, + #{item.checkType}, + #{item.typeCode}, + #{item.scope}, + #{item.parentGoal}) + + + + + + update qc_goal + + goal_ym = + #{goalYm}, + + goal_type = + #{goalType}, + + noOk_rate = + #{nookRate}, + + noOk_quality_rate = + #{nookQualityRate}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + factory_code = + #{factoryCode}, + + del_flag = + #{delFlag}, + + check_type = + #{checkType}, + + type_code = + #{typeCode}, + + scope = + #{scope}, + + parent_goal = + #{parentGoal}, + + + where id = #{id} + + + + + delete from qc_goal where id = #{id} + + + + delete from qc_goal where id in + + #{id} + + + From 27a1e2bba2ee6b6142b6edeebb7d14774d2bee1a Mon Sep 17 00:00:00 2001 From: A0010407 Date: Mon, 11 Mar 2024 17:48:06 +0800 Subject: [PATCH 16/19] =?UTF-8?q?2024-3-11=20=E8=AE=BE=E5=A4=87=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9+=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E5=BF=AB=E9=80=9F=E5=B7=A5=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/mapper/DeviceInterfaceMapper.java | 1 + .../impl/DeviceInterfaceServiceImpl.java | 9 ++++---- .../impl/EquRepairWorkOrderServiceImpl.java | 9 +++++++- .../mapper/device/DeviceInterfaceMapper.xml | 22 +++++++++++++++++++ 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java index 05406ff0d..68ef5667d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -26,6 +26,7 @@ public interface DeviceInterfaceMapper { * @return */ List selectEquipmentList(EquOperation equOperation); + List selectEquipmentVOList(EquOperation equOperation); /** * 获取维修工单中设备信息 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 9045db323..238a36b6f 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 @@ -53,7 +53,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备信息 * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) - * 设备有效利用率:(实际产量/理论产量) + * 设备有效利用率:(实际产量/理论产量)改为:一定天数内该设备的总开机时间/(天数*24小时) * * @return */ @@ -61,10 +61,10 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @DS("#header.poolName") public AjaxResult getEquipmentInfo(EquOperation equOperation) { if (equOperation.getTimeDimension() == null) { - equOperation.setTimeDimension("dd"); + equOperation.setTimeDimension("yyyy"); } // 获取所有设备信息 - List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(equOperation); + List equipmentVOList = deviceInterfaceMapper.selectEquipmentVOList(equOperation); return success(equipmentVOList); } @@ -107,7 +107,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 List top10 = equipmentVOList.stream() .sorted(Comparator.comparing(IEquipmentVO::getRapairQuantity).reversed())// 由正序改为 反转排序 倒序 -// .limit(10) // 限制结果数量为10 改为不限制结果数量 + .limit(10) // 限制结果数量为10 改为不限制结果数量 .collect(Collectors.toList()); //将结果收集到List中 return success(top10); } @@ -138,7 +138,6 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @DS("#header.poolName") public AjaxResult getEquipmentIntactRate(EquOperation equOperation) { //查询所有设备(设备停用的除外) - // 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 EquOperation equipmentIntactRate = deviceInterfaceMapper.getEquipmentIntactRate(equOperation); Double totalEquipment = new Double(equipmentIntactRate.getTotalEquipment()); Double operationEquipment = new Double(equipmentIntactRate.getOperationEquipment()); 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 77360fa08..3698d7ec3 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 @@ -150,7 +150,14 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); - return equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); + int result = equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); + + //2.修改设备状态 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equipmentCode); + equEquipment.setEquipmentStatus("0");//0故障 + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + return result; } /** diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 9cd330cc4..05bcf3876 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -42,6 +42,28 @@ and be.equipment_category = '0' + + 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 a4a215856..33b8d2602 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 @@ -529,24 +529,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"