From 644054957e6c926cee03cf99b1869ae2b1523ff4 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 07 四月 2025 14:32:52 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |    8 +++
 src/main/java/com/zy/common/utils/YyyyMmddUtils.java        |   80 ++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/entity/param/StockOutParam.java   |    2 +
 src/main/java/com/zy/asrs/controller/OutController.java     |    2 +
 4 files changed, 91 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index dc5d93d..a3db49b 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -169,7 +169,9 @@
         param.setLocDetls(locDetls);
 
         List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+        Date now = new Date();
         for (StockOutParam stockOutParam : stockOutParams){
+            stockOutParam.setNowTime(now);
             workService.startupFullTakeStore(stockOutParam, getUserId());
         }
 
diff --git a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
index ded467b..fe581d2 100644
--- a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -2,6 +2,7 @@
 
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -14,6 +15,7 @@
     private Integer outSite;
     private String orderNo;
     private String cstmrName;
+    private Date nowTime;
 
     // 鐗╂枡缂栧彿闆嗗悎
     private List<LocDetl> locDetls;
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 ed93308..8901eb6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -20,6 +20,7 @@
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
+import com.zy.common.utils.YyyyMmddUtils;
 import com.zy.common.web.WcsController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -165,6 +166,7 @@
     @Transactional
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         // 鐩爣绔欑偣鐘舵�佹娴�
+        Date now = param.getNowTime();
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
@@ -180,6 +182,7 @@
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
                 // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+                staNo.setModiTime(now);
                 stockOut(staNo, locDetlDtos, null, userId);
             }else {
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
@@ -394,6 +397,7 @@
     @Transactional
     public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
         Date now = new Date();
+        Date nowPri = staNo.getModiTime();
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
         List<OutLocDto> dtos = new ArrayList<>();
@@ -439,7 +443,9 @@
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(now);
             wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-            wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+
+            Integer pri = YyyyMmddUtils.convertPri(nowPri);
+            wrkMast.setIoType(pri); // 鍏ュ嚭搴撶姸鎬�
             wrkMast.setIoPri(13D); // 浼樺厛绾э細13
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
diff --git a/src/main/java/com/zy/common/utils/YyyyMmddUtils.java b/src/main/java/com/zy/common/utils/YyyyMmddUtils.java
new file mode 100644
index 0000000..013ff33
--- /dev/null
+++ b/src/main/java/com/zy/common/utils/YyyyMmddUtils.java
@@ -0,0 +1,80 @@
+package com.zy.common.utils;
+
+import com.core.common.DateUtils;
+
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.util.Date;
+
+public class YyyyMmddUtils {
+    public static String convertYyyyMMdd() {
+        return DateUtils.convert(new Date(), "MMdd");
+    }
+
+    public static String convertYyyyMMdd(Date date) {
+        return DateUtils.convert(date, "MMdd");
+    }
+
+    public static long convertYyyyMMdd100000() {
+        String convert = convertYyyyMMdd();
+        return 100000*(Long.valueOf(convert));
+    }
+
+    public static long convertYyyyMMdd100000(Date date) {
+        String convert = convertYyyyMMdd(date);
+        return 100000*(Long.valueOf(convert));
+    }
+
+    public static LocalTime convertToBeijingTime(Date date) {
+        return date.toInstant()                       // Date -> Instant锛堟椂闂存埑锛�
+                .atZone(ZoneId.of("Asia/Shanghai"))    // 缁戝畾鍖椾含鏃跺尯锛圲TC+8锛�
+                .toLocalTime();                       // 鎻愬彇鏃堕棿閮ㄥ垎
+    }
+
+    public static LocalDateTime convert(Date date) {
+        return date.toInstant()                     // 灏� Date 杞崲涓� Instant锛堟椂闂存埑锛�
+                .atZone(ZoneId.systemDefault())     // 缁戝畾绯荤粺榛樿鏃跺尯
+                .toLocalDateTime();                 // 鎻愬彇鏃犳椂鍖虹殑鏃ユ湡鏃堕棿
+    }
+
+    // 鍩轰簬 java.time 鐨勫疄鐜帮紙绾跨▼瀹夊叏涓旂畝娲侊級
+    public static long getSecondsOfDay(Date date) {
+        // 1. 鑾峰彇褰撳ぉ闆剁偣鏃堕棿锛堢郴缁熸椂鍖猴級
+        LocalDateTime startOfDay = LocalDateTime.now().with(LocalTime.MIN);
+
+        // 2. 鑾峰彇褰撳墠鏃堕棿
+        LocalDateTime currentTime = convert(date);
+
+        // 3. 璁$畻鏃堕棿宸殑绉掓暟
+        long secondsSinceMidnight = Duration.between(startOfDay, currentTime).getSeconds();
+        return secondsSinceMidnight;
+    }
+
+    // 鍘熸柟娉曟敼閫狅紙甯� Date 鍙傛暟锛�
+    public static long convertYyyyMMdd100000ioPri(Date data) {
+        long ioPri = convertYyyyMMdd100000(data);
+        long secondsOfDay = getSecondsOfDay(data);
+        System.out.println(secondsOfDay);
+        return ioPri + (1000000 - secondsOfDay);
+    }
+
+    // 閲嶈浇鏂规硶锛堝吋瀹规棤 Date 鍙傛暟鐨勮皟鐢級
+    public static long convertYyyyMMdd1000000ioPri() {
+        return convertYyyyMMdd100000ioPri(new Date());
+    }
+
+    // 閲嶈浇鏂规硶锛堝吋瀹规棤 Date 鍙傛暟鐨勮皟鐢級
+    public static Integer convertPri(Date date) {
+        long datePri = convertYyyyMMdd100000ioPri(date);
+        return (int)datePri;
+    }
+
+    public static void main(String[] args) {
+        Date now = new Date();
+        long result = YyyyMmddUtils.convertYyyyMMdd100000ioPri(now);
+        System.out.println("璁$畻鍊硷細" + result);
+        System.out.println("璁$畻鍊硷細" + (int)result);
+    }
+}

--
Gitblit v1.9.1