From 973eed10d720c7dbd0020407c3b89fe1d385944f Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 08 十二月 2025 09:42:20 +0800
Subject: [PATCH] wms功能完善

---
 src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java |  150 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 148 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index 68b9ca5..149c125 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -1,12 +1,158 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.TaskMapper;
-import com.zy.asrs.entity.Task;
-import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.utils.OrderInAndOutUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 @Service("taskService")
 public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService {
 
+    @Autowired
+    private TaskLogService taskLogService;
+    @Autowired
+    private LocCacheService locCacheService;
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private TaskDetlService taskDetlService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void completeWrkMast(String workNo, Long userId) {
+        Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo));
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+        }
+        if (wrkMast.getWrkSts() == 304) {
+            throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+        }
+
+        wrkMast.setWrkSts(304L);
+
+        Date now = new Date();
+        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
+        wrkMast.setCrnEndTime(now);
+        wrkMast.setModiTime(now);
+        wrkMast.setModiUser(userId);
+        // 瀹屾垚鎿嶄綔浜哄憳璁板綍
+        wrkMast.setManuType("鎵嬪姩瀹屾垚");
+        if (!this.updateById(wrkMast)) {
+            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+        }
+    }
+
+    @Override
+    @Transactional
+    public void pickWrkMast(String workNo, Long userId) {
+        Task wrkMast = this.selectById(workNo);
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+        }
+        // 鍏ュ嚭搴撶被鍨嬪垽鏂�
+        if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
+            throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
+        }
+        // 宸ヤ綔鐘舵�佸垽鏂�
+        if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
+            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
+        }
+        // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+//        if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+//            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+//        }
+        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+        if (!taskLogService.save(wrkMast.getWrkNo())) {
+            throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+        }
+        // 鑾峰彇鐩爣绔�
+//        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//                .eq("type_no", wrkMast.getIoType() - 50)
+//                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+//                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+//        StaDesc staDesc = staDescService.selectOne(wrapper);
+//        if (Cools.isEmpty(staDesc)) {
+//            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+//        }
+        Date now = new Date();
+        // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+//        Integer staNo = staDesc.getCrnStn();
+        // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+        wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+//        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+        wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+        wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+        wrkMast.setModiTime(now);
+        wrkMast.setModiUser(userId);
+        if (!this.updateById(wrkMast)) {
+            throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+        }
+        // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+        LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
+        locMast.setLocSts("Q");
+        locMast.setModiTime(now);
+        locMast.setModiUser(userId);
+        if (!locCacheService.updateById(locMast)) {
+            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+        }
+    }
+
+    @Override
+    public List<Task> selectToBeCompleteData() {
+        return this.baseMapper.selectToBeCompleteData();
+    }
+
+
+    @Override
+    @Transactional
+    public void cancelWrkMast(String workNo, Long userId) {
+        Date now = new Date();
+        Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo));
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+        }
+        if(wrkMast.getWrkSts() >= 304) {
+            throw new CoolException("宸ヤ綔鐘舵�佸凡缁忓畬鎴愶細" + wrkMast.getWrkSts());
+        }
+
+        // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+        wrkMast.setManuType("鎵嬪姩鍙栨秷");
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        if (!taskService.updateById(wrkMast)) {
+            throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
+        }
+        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+        if (!taskLogService.save(wrkMast.getWrkNo())) {
+            throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+        }
+        // 鍒犻櫎宸ヤ綔涓绘。
+        taskService.deleteById(wrkMast);
+
+            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+            taskDetlLogService.save(wrkMast.getWrkNo());
+            // 鍒犻櫎宸ヤ綔妗f槑缁�
+            taskDetlService.delete(new EntityWrapper<TaskDetl>().eq("wrk_no", workNo));
+    }
+
 }

--
Gitblit v1.9.1