From d84ed060312f3e7fd5f53dd47d3a1729706a880b Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 04 十一月 2024 16:52:50 +0800
Subject: [PATCH] #优化

---
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |  112 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 99 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index ed9acce..7b2dde8 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -5,15 +5,11 @@
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.AgvLocDetl;
-import com.zy.asrs.entity.AgvLocMast;
-import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.AgvLocDetlMapper;
-import com.zy.asrs.service.AgvBasDevpService;
-import com.zy.asrs.service.AgvLocDetlService;
-import com.zy.asrs.service.AgvLocMastService;
-import com.zy.asrs.service.AgvWrkDetlService;
+import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.TaskDto;
@@ -46,27 +42,68 @@
     AgvBasDevpService agvBasDevpService;
     @Autowired
     AgvLocMastService agvLocMastService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private FlowLogService flowLogService;
 
     public void addLocDetlInfo(String locNo, int taskCode) {
+        Date now = new Date();
         List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode));
+        long flowId = snowflakeIdWorker.nextId();
         agvWrkDetls.stream().map(agvWrkDetl -> {
             AgvLocDetl agvLocDetl = new AgvLocDetl();
             log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
             BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
             agvLocDetl.setLocNo(locNo);
             this.insert(agvLocDetl);
+            // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+            OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode());
+//            FlowLog flowLog = new FlowLog();
+//            flowLog.setFid(String.valueOf(flowId));
+//            flowLog.setSpare2(String.valueOf(taskCode));
+//            flowLog.setLocNo(locNo);
+//            flowLog.setSpare1(agvWrkDetl.getSuppCode());
+//            flowLog.setOpType(101L);
+//            flowLog.setOrderNo(agvWrkDetl.getOrderNo());
+//            flowLog.setThreeCode(agvWrkDetl.getThreeCode());
+//            flowLog.setMatnr(agvWrkDetl.getMatnr());
+//            flowLog.setMaktx(agvWrkDetl.getMaktx());
+//            flowLog.setOrderPrevious(orderDetl.getAnfme());
+//            flowLog.setOrderCurrent(orderDetl.getAnfme());
+//            flowLog.setOrderChanged(0.0);
+//            flowLog.setQtyPrevious(orderDetl.getQty()-agvWrkDetl.getAnfme());
+//            flowLog.setQtyCurrent(orderDetl.getQty());
+//            flowLog.setQtyChanged(agvWrkDetl.getAnfme());
+//
+//            flowLog.setLocPrevious(0.0D);
+//            flowLog.setLocCurrent(agvWrkDetl.getAnfme());
+//            flowLog.setLocChanged(agvWrkDetl.getAnfme());
+//
+//            flowLog.setAppeTime(now);
+//            if (!flowLogService.insert(flowLog)) {
+//                throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//            }
             return agvLocDetl;
         }).collect(Collectors.toList());
 
     }
 
-    public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) {
+    public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq,String type) {
         //鏍规嵁鐗╂枡鍙峰拰鎵规鎵惧埌瀵瑰簲鐨勫簱瀛橈紝骞朵笖鎸夌収淇敼鏃堕棿鎺掑簭
         Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time");
-
+        if (type != null) {
+            wrapper.notLike("loc_no", "F1");
+        }
         wapperSetCondition(wrapper,"batch",batch);
         wapperSetCondition(wrapper,"three_code",csocode);
         wapperSetCondition(wrapper,"dead_time",isoseq);
+
+        if ("JG".equals(orderNo.substring(0,2))) {
+            wapperSetCondition(wrapper,"process_sts","1");
+        }
 
         List<AgvLocDetl> agvLocDetls = this.selectList(wrapper);
 
@@ -86,10 +123,11 @@
                 String orderNoWrkDtel = Utils.getOrderNo(orderNo,anfme);
                 //鏇存柊璁㈠崟鏁伴噺
                 orderNo = Utils.orderMergeUpdate(orderNo,anfme);
-                LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNoWrkDtel, anfme);
+                LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNoWrkDtel, anfme,agvLocDetl.getProcessSts());
                 locDto.setCsocode(csocode);
                 locDto.setIsoseq(isoseq);
                 locDto.setContainerCode(agvLocDetl.getSuppCode());
+                locDto.setProcessSts(agvLocDetl.getProcessSts());
                 //褰撳墠搴撲綅鎵�澶勬ゼ灞�
                 int floor = Integer.parseInt(agvLocDetl.getLocNo().split("F")[1]);
                 //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor));
@@ -120,6 +158,31 @@
     @Override
     public Double getSumAnfme(String matnr, String threeCode) {
         return this.baseMapper.selectSumAnfmeByMatnr(matnr, threeCode);
+    }
+
+    @Override
+    public AgvLocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode) {
+        return this.baseMapper.selectItemByOrderNo(locNo, matnr, batch,csocode,isoCode);
+    }
+
+    @Override
+    public Double getSumAnfmeProcess(String matnr, String threeCode) {
+        return this.baseMapper.selectSumAnfmeByMatnrProcess(matnr, threeCode);
+    }
+
+    @Override
+    public Double getSumAnfmeProcessed(String matnr, String threeCode) {
+        return this.baseMapper.selectSumAnfmeByMatnrProcessed(matnr, threeCode);
+    }
+
+    @Override
+    public Double getSumAnfmeDb(String matnr, String threeCode,Integer floor) {
+        return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode, floor);
+    }
+
+    @Override
+    public Double getSumAnfmeback(String matnr, String threeCode,Integer floor) {
+        return this.baseMapper.getSumAnfmeback(matnr, threeCode, floor);
     }
 
     /*
@@ -165,7 +228,22 @@
         } else {
             AgvLocDetl agvLocDetl = this.selectOne(wrapper);
             agvLocDetl.setAnfme(anfme);
+            agvLocDetl.setModiTime(new Date());
             return this.baseMapper.updateAnfme(locNo,anfme,matnr,batch,csocode,isocode) > 0;
+        }
+    }
+
+    public boolean updateAnfmeProcess(Double anfme, String locNo, String matnr, String batch, String csocode, String isocode, Integer process) {
+        EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
+        wrapper.eq("loc_no", locNo);
+        Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
+        if (anfme <= 0) {
+            return this.baseMapper.deleteLocDetl(locNo,anfme,matnr,batch,csocode,isocode) > 0;
+        } else {
+            AgvLocDetl agvLocDetl = this.selectOne(wrapper);
+            agvLocDetl.setAnfme(anfme);
+            agvLocDetl.setModiTime(new Date());
+            return this.baseMapper.updateAnfmeProcess(locNo,anfme,matnr,batch,csocode,isocode,process) > 0;
         }
     }
 
@@ -198,6 +276,14 @@
         EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
         wrapper.eq("loc_no",locNo);
         Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
+        return this.selectOne(wrapper);
+    }
+
+    @Override
+    public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode2(String locNo,String orderNo, String matnr, String batch, String csocode, String isocode) {
+        EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
+        wrapper.eq("loc_no",locNo);
+        Utils.confirmOnlyMat2(wrapper,orderNo,matnr,batch,csocode,isocode);
         return this.selectOne(wrapper);
     }
 
@@ -245,15 +331,15 @@
             Row row = sheet.getRow(i);
             // 搴撲綅鍙�
             String locNo = dataFormatter.formatCellValue(row.getCell(0));
-            // 瀹瑰櫒鐮�
+            // 璐ф灦鐮�
             String containerCode = dataFormatter.formatCellValue(row.getCell(1));
 
             List<AgvLocDetl> agvLocDetls = this.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo).eq("supp_code", containerCode));
             if(Cools.isEmpty(agvLocDetls)){
-                log.info("搴撲綅鍙凤細" + locNo + "锛屽鍣ㄧ爜锛�" + containerCode + "锛屼笉瀛樺湪鏄庣粏");
+                log.info("搴撲綅鍙凤細" + locNo + "锛岃揣鏋剁爜锛�" + containerCode + "锛屼笉瀛樺湪鏄庣粏");
             }
             if(agvLocDetls.size()>1){
-                log.info("搴撲綅鍙凤細" + locNo + "锛屽鍣ㄧ爜锛�" + containerCode + "锛屽瓨鍦�1鏉′互涓婅褰�");
+                log.info("搴撲綅鍙凤細" + locNo + "锛岃揣鏋剁爜锛�" + containerCode + "锛屽瓨鍦�1鏉′互涓婅褰�");
             }
         }
     }

--
Gitblit v1.9.1