From 5772f1ba90c1477666b0b33c3ca4e7bdb4259cc3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 12 六月 2020 14:03:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/entity/param/FullStoreParam.java     |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |   44 ++++++++++++--
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |   39 +++++++++++++
 src/main/java/com/zy/asrs/entity/MatCodeCountDto.java          |   35 +++++++++++
 src/main/java/com/zy/asrs/controller/WorkController.java       |    2 
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    5 +
 6 files changed, 116 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 84fe6c7..1cf9edd 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -1,6 +1,5 @@
 package com.zy.asrs.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.core.annotations.ManagerAuth;
 import com.core.common.R;
 import com.zy.asrs.entity.param.FullStoreParam;
@@ -33,7 +32,6 @@
     @RequestMapping("/full/store/start")
     @ManagerAuth(memo = "鍏ㄦ澘鍏ュ簱")
     public R start(@RequestBody FullStoreParam fullStoreParam) {
-        System.out.println(JSON.toJSONString(fullStoreParam));
         workService.startupFullStore(fullStoreParam,getUserId());
         return R.ok();
     }
diff --git a/src/main/java/com/zy/asrs/entity/MatCodeCountDto.java b/src/main/java/com/zy/asrs/entity/MatCodeCountDto.java
new file mode 100644
index 0000000..592f751
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/MatCodeCountDto.java
@@ -0,0 +1,35 @@
+package com.zy.asrs.entity;
+
+/**
+ * Created by vincent on 2020/6/12
+ */
+public class MatCodeCountDto {
+
+    private String matNo;
+
+    private int count;
+
+    public MatCodeCountDto() {
+    }
+
+    public MatCodeCountDto(String matNo, int count) {
+        this.matNo = matNo;
+        this.count = count;
+    }
+
+    public String getMatNo() {
+        return matNo;
+    }
+
+    public void setMatNo(String matNo) {
+        this.matNo = matNo;
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public void setCount(int count) {
+        this.count = count;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/FullStoreParam.java b/src/main/java/com/zy/asrs/entity/param/FullStoreParam.java
index e19c0ea..de82fa3 100644
--- a/src/main/java/com/zy/asrs/entity/param/FullStoreParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/FullStoreParam.java
@@ -13,7 +13,7 @@
     // 鐗╂枡鍒楄〃鏁版嵁
     private List<MatCodeStore> list;
 
-    static class MatCodeStore {
+    public static class MatCodeStore {
 
         // 鐗╂枡缂栧彿
         private String matNo;
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 7de4f69..3e23f9a 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -2,7 +2,12 @@
 
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.MatCodeCountDto;
+
+import java.util.List;
 
 public interface WrkDetlService extends IService<WrkDetl> {
 
+    void createWorkDetail(Integer workNo, List<MatCodeCountDto> matCodeCountDtos, Long userId);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 99a10d6..9f25e0a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -4,18 +4,20 @@
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.MatCodeCountDto;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.service.BasDevpService;
-import com.zy.asrs.service.WorkService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.*;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * Created by vincent on 2020/6/11
@@ -29,6 +31,10 @@
     private BasDevpService basDevpService;
     @Autowired
     private CommonService commonService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private LocMastService locMastService;
 
     @Override
     @Transactional
@@ -38,7 +44,7 @@
             throw new CoolException(BaseRes.PARAM);
         }
         // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp staNo = basDevpService.checkSiteStatus(param.getDevpNo());
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(0);
         if (workNo == 0) {
@@ -66,7 +72,7 @@
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("N");
-        wrkMast.setCtnType(staNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeUser(userId);
         wrkMast.setAppeTime(new Date());
@@ -74,11 +80,33 @@
         wrkMast.setModiTime(new Date());
         boolean res = wrkMastService.insert(wrkMast);
         if (!res) {
-            throw new CoolException("娉ㄥ叆sql澶辫触");
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
-
         // 鐢熸垚宸ヤ綔妗f槑缁�
-
+        List<MatCodeCountDto> matDtos = new ArrayList<>();
+        param.getList().forEach(elem -> {
+            matDtos.add(new MatCodeCountDto(elem.getMatNo(), elem.getCount()));
+        });
+        wrkDetlService.createWorkDetail(workNo, matDtos, userId);
+        // 鏇存柊婧愮珯鐐逛俊鎭�
+        sourceStaNo.setWrkNo(workNo);
+        sourceStaNo.setModiUser(userId);
+        sourceStaNo.setModiTime(new Date());
+        if (!basDevpService.updateById(sourceStaNo)){
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
+        }
+        // 鏇存柊鐩爣搴撲綅淇℃伅
+        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocType().equals("O")){
+            locMast.setLocType("S"); // S.鍏ュ簱棰勭害
+            locMast.setModiUser(userId);
+            locMast.setModiTime(new Date());
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 464a45c..3dcdf3d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -1,12 +1,51 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.MatCode;
 import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.MatCodeCountDto;
 import com.zy.asrs.mapper.WrkDetlMapper;
+import com.zy.asrs.service.MatCodeService;
 import com.zy.asrs.service.WrkDetlService;
+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;
 
 @Service("wrkDetlService")
 public class WrkDetlServiceImpl extends ServiceImpl<WrkDetlMapper, WrkDetl> implements WrkDetlService {
 
+    @Autowired
+    private MatCodeService matCodeService;
+
+    @Override
+    @Transactional
+    public void createWorkDetail(Integer workNo, List<MatCodeCountDto> matCodeCountDtos, Long userId) {
+        if (matCodeCountDtos.isEmpty()){
+            return;
+        }
+        for (MatCodeCountDto dto : matCodeCountDtos) {
+            MatCode matCode = matCodeService.selectById(dto.getMatNo());
+            if (Cools.isEmpty(matCode)){
+                throw new CoolException("鐗╂枡鏉$爜鏁版嵁涓虹┖");
+            }
+            // 淇濇寔宸ヤ綔妗f槑缁�
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setIoTime(new Date());
+            wrkDetl.setMatnr(matCode.getMatNo()); // 鐗╂枡缂栧彿
+            wrkDetl.setAnfme((double) dto.getCount()); // 鏁伴噺
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setAppeTime(new Date());
+            wrkDetl.setModiUser(userId);
+            wrkDetl.setModiTime(new Date());
+            if (!this.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        }
+    }
 }

--
Gitblit v1.9.1