From cc26587ff6d7025e0e35f9ad14f2aa787db4879a Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 3 Apr 2024 16:23:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A1=E6=A3=80=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/mes/mapper/MesMapper.java | 2 + .../mes/service/impl/MesBoradServiceImpl.java | 27 ++++++--- .../main/resources/mapper/mes/MesMapper.xml | 17 ++++-- .../service/impl/ProOrderServiceImpl.java | 2 +- .../impl/ProOrderWorkorderServiceImpl.java | 2 +- .../mapper/QcCheckTaskProduceMapper.java | 4 ++ .../impl/QcCheckTaskProduceServiceImpl.java | 56 +++++++++++++++---- .../quality/QcCheckTaskProduceMapper.xml | 42 ++++++++++++++ 8 files changed, 126 insertions(+), 26 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java index 063a71a6..e904a1aa 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java @@ -81,4 +81,6 @@ public interface MesMapper { Map getProduction15Days(BoardDTO boardDTO); BoardDTO getWorkOrder(BoardDTO boardDTO); + @MapKey("productDate") + Map getProduction15DaysAct(BoardDTO boardDTO); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java index 97eb6c7b..498247d8 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java @@ -58,13 +58,18 @@ public class MesBoradServiceImpl implements IMesBoradService { dto.setDays(days); boardDTO.setStartTime(days.get(0)); boardDTO.setEndTime(days.get(days.size()-1)); - Map pros15 = mesMapper.getProduction15Days(boardDTO); - MesReportWork todaydto = pros15.get(nowDate); - if(todaydto != null){ - dto.setPlanProduction(todaydto.getQuantity().toString().replace(".00","")); - dto.setActProduction(todaydto.getQuantityFeedback().toString()); + Map pros15Plan = mesMapper.getProduction15Days(boardDTO); + Map pros15Act = mesMapper.getProduction15DaysAct(boardDTO); + MesReportWork todayPlandto = pros15Plan.get(nowDate); + MesReportWork todayActdto = pros15Act.get(nowDate); + if(todayPlandto != null){ + dto.setPlanProduction(todayPlandto.getQuantity().toString().replace(".00","")); }else{ dto.setPlanProduction("0"); + } + if(todayActdto != null){ + dto.setActProduction(todayActdto.getQuantityFeedback().toString().replace(".00","")); + }else{ dto.setActProduction("0"); } //plans; @@ -72,12 +77,16 @@ public class MesBoradServiceImpl implements IMesBoradService { List acts = new ArrayList<>(); //acts; for(String dayStr:days){ - MesReportWork workR = pros15.get(dayStr); - if(workR != null){ - plans.add(workR.getQuantity().toString()); - acts.add(workR.getQuantityFeedback().toString()); + MesReportWork workPlanR = pros15Plan.get(dayStr); + MesReportWork workActR = pros15Act.get(dayStr); + if(workPlanR != null){ + plans.add(workPlanR.getQuantity().toString()); }else{ plans.add("0"); + } + if(workActR != null){ + acts.add(workActR.getQuantityFeedback().toString()); + }else{ acts.add("0"); } } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index 7e454347..f8ddb0e3 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -295,15 +295,23 @@ + + 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 2f79d470..53720057 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 @@ -465,7 +465,7 @@ public class ProOrderServiceImpl implements IProOrderService { String failOrder = ""; ProOrder proOrder = null; for (SapProOrder sapProOrder:newOrders) { - if("LJ88".equals(sapProOrder.getOrderType())){ + if(!("LJ01".equals(sapProOrder.getOrderType()) || "MES".equals(sapProOrder.getCreateBy()))){ //工单生产后整个订单就被锁定//订单存在就更新,不存在就插入 proOrder = new ProOrder(); BeanUtils.copyProperties(sapProOrder, proOrder); 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 68f973a9..6ff815b1 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 @@ -379,7 +379,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 - sap.setAufpar("LJ01");//订单类型 + sap.setAufpar(whiteOrder.getProdType());//订单类型 sap.setVerid(whiteOrder.getAtrr2());//生产版本 sap.setMatnr(whiteOrder.getProductCode());//物料编号 sap.setQuantity(whiteOrder.getQuantitySplit() + "");//数量 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java index de15c9b3..0fd8942b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java @@ -82,4 +82,8 @@ public interface QcCheckTaskProduceMapper { * @return 来料检验集合 */ public List selectQcCheckReportIncomeList(QcCheckReportIncome qcCheckReportIncome); + + public List getOrderWorksW2(ProOrderWorkorderDTO qoWork); + + public QcCheckTaskProduce getLastXJTask(QcCheckTaskProduce productTask); } 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 4e5b2ba8..323e9444 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 @@ -1,11 +1,12 @@ package com.op.quality.service.impl; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.time.LocalDateTime; import java.time.LocalTime; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -243,6 +244,16 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService } /**qc_check_task**/ + if("LJ01".equals(qcCheckTaskProduce.getProductType())){ + //正常 + qcCheckTaskProduce.setProductType("a"); + }else if("LJ02".equals(qcCheckTaskProduce.getProductType())){ + //返修 + qcCheckTaskProduce.setProductType("b"); + }else if("LJ04".equals(qcCheckTaskProduce.getProductType())){ + //试产 + qcCheckTaskProduce.setProductType("c"); + } qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); /**qc_check_task_detail**/ @@ -382,23 +393,34 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key ProOrderWorkorderDTO qoWork = new ProOrderWorkorderDTO(); qoWork.setStatus("w2"); - List works = qcCheckTaskProduceMapper.getOrderWorks(qoWork); - for(QcCheckTaskProduce productTask:works){ + //活动中 + List w2works = qcCheckTaskProduceMapper.getOrderWorksW2(qoWork); + for(QcCheckTaskProduce productTask:w2works){ productTask.setCheckType("checkTypeSCXJ");//过程检验-巡检 productTask.setOrderNo(productTask.getWorkorderCode()); - Date nowTime = DateUtils.getNowDate(); - Date startTime = productTask.getCreateTime(); - + //获取最新一条巡检数据 + QcCheckTaskProduce lastXJ = qcCheckTaskProduceMapper.getLastXJTask(productTask); + if(lastXJ != null ){ + productTask.setProductType(lastXJ.getProductType()); + productTask.setConfirmManCode(lastXJ.getConfirmManCode()); + productTask.setConfirmManName(lastXJ.getConfirmManName()); + productTask.setCreateTime(lastXJ.getCreateTime()); + } + Date nowTime = DateUtils.getNowDate(); + Date startTime = productTask.getCreateTime(); LocalTime startTime0 = LocalTime.parse("11:30"); LocalTime endTime0 = LocalTime.parse("12:30"); LocalTime currentTime = LocalTime.now(); - if (!currentTime.isAfter(startTime0.minusSeconds(1)) && !currentTime.isBefore(endTime0.plusSeconds(1))) { + if (currentTime.isAfter(startTime0.minusSeconds(1)) && currentTime.isBefore(endTime0.plusSeconds(1))) { // 当前时间在11:30到12:30之间,不执行任务 logger.info("++++++++++++过程检验巡检任务生成午间休息++++++++++++++"); } else { - long mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); + long mins = 60L; + if(startTime != null){ + mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); + } if(mins>=60){ int m = insertQcCheckTaskProduce(productTask); @@ -408,4 +430,16 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService } logger.info("++++++++++++" + poolName + "++++过程检验巡检结束++++++++++"); } + + public static void main(String args[]) throws ParseException { + LocalDateTime start = LocalDateTime.of(2024, 4, 2, 23, 58); + LocalDateTime end = LocalDateTime.of(2024, 4, 3, 0, 30); + + System.out.println("相差的分钟数: " + Duration.between(start, end).toMinutes() + "分钟"); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date start1 = dateFormat.parse("2024-04-02 23:45:30"); + Date end1 = dateFormat.parse("2024-04-03 00:05:30"); + System.out.println(DateUtil.between(start1, end1, DateUnit.MINUTE)); + } } 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 89958265..4d815eac 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 @@ -417,4 +417,46 @@ order by t.order_no,t.createTimeStr desc + +