From 58137d4f560dc16900ea99e0a7a07080b7751e5f Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期一, 20 十一月 2023 20:17:47 +0800
Subject: [PATCH] Merge branch 'tzskasrs' of http://47.97.1.152:5880/r/zy-asrs into tzskasrs

---
 src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java |   70 +++++++++++++++++++++++++++++++++--
 1 files changed, 66 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
index c9af0a1..2d675d6 100644
--- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -1,8 +1,10 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.ManLocDetl;
 import com.zy.asrs.entity.Mat;
@@ -15,15 +17,14 @@
 import com.zy.asrs.service.NodeService;
 import com.zy.asrs.service.WaitPakinService;
 import com.zy.asrs.utils.SaasUtils;
+import com.zy.common.model.LocDto;
 import com.zy.system.entity.User;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 @Service("manLocDetlService")
 public class ManLocDetlServiceImpl extends ServiceImpl<ManLocDetlMapper, ManLocDetl> implements ManLocDetlService {
@@ -155,6 +156,12 @@
         Date now = new Date();
         for (LocDetlAdjustParam.LocDetlAdjust locDetlAdjust : param.getList()) {
             ManLocDetl manLocDetl = this.baseMapper.selectItem(param.getLocNo(), locDetlAdjust.getMatnr(), locDetlAdjust.getBatch());
+
+            if(Cools.isEmpty(manLocDetl)){
+                addManlocDetl(locDetlAdjust,param.getLocNo());
+                continue;
+            }
+
             this.baseMapper.delete(new EntityWrapper<ManLocDetl>()
                     .eq("loc_no", param.getLocNo()).eq("matnr",locDetlAdjust.getMatnr()));
             Mat mat = matService.selectOne(new EntityWrapper<Mat>()
@@ -200,4 +207,59 @@
         return baseMapper.increase(anfme,locNo,matnr,batch,weight);
     }
 
+    public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) {
+        Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>().eq("matnr", matnr).orderBy("modi_time");
+        wrapper.eq("status",1);
+        wapperSetCondition(wrapper,"batch",batch);
+        wapperSetCondition(wrapper,"csocode",csocode);
+        wapperSetCondition(wrapper,"isoseq",isoseq);
+
+        List<ManLocDetl> manLocDetls = this.selectList(wrapper);
+        for (ManLocDetl manLocDetl : manLocDetls){
+            if(issued > 0) {
+                double anfme = manLocDetl.getAnfme();
+                anfme = anfme > issued ? issued : anfme;
+                LocDto locDto = new LocDto(manLocDetl.getLocNo(), manLocDetl.getMatnr(), manLocDetl.getMaktx(), manLocDetl.getBatch(), orderNo, anfme);
+                locDto.setCsocode(csocode);
+                locDto.setIsoseq(isoseq);
+                locDto.setContainerCode(manLocDetl.getContainerCode());
+                List<String> stationList = new ArrayList<>();
+                stationList.add("鏃犻渶绔欑偣");
+                locDto.setAgvStaNos(stationList);
+
+                locDtoList.add(locDto);
+                issued -= anfme;
+            }
+        }
+
+        return issued;
+    }
+
+    private void wapperSetCondition(Wrapper wrapper,String column, String condition){
+        if(Cools.isEmpty(condition)){
+            wrapper.andNew().eq(column,"").or().isNull(column);
+        }else {
+            wrapper.eq(column,condition);
+        }
+    }
+
+    private void addManlocDetl(LocDetlAdjustParam.LocDetlAdjust param, String locNo){
+        Date now = new Date();
+        ManLocDetl manLocDetl = new ManLocDetl();
+        Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", locNo));
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        BeanUtils.copyProperties(mat,manLocDetl);
+        manLocDetl.setNodeId(node.getId());
+        manLocDetl.setBatch(param.getBatch());
+        manLocDetl.setAnfme(param.getCount());
+        manLocDetl.setContainerCode(param.getSuppCode());
+        manLocDetl.setCsocode(param.getThreeCode());
+        manLocDetl.setIsoseq(param.getDeadTime());
+        manLocDetl.setCreateTime(now);
+        manLocDetl.setModiTime(now);
+        manLocDetl.setLocNo(locNo);
+        manLocDetl.setStatus(1);
+        this.insert(manLocDetl);
+    }
+
 }

--
Gitblit v1.9.1