From c6820e2cff19f338e70c9b112f19070c240f561a Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 15 一月 2026 12:53:59 +0800
Subject: [PATCH] 完善销售订单出库自动勾选
---
src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java | 176 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 104 insertions(+), 72 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
index ede00fc..935062a 100644
--- a/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
@@ -1,15 +1,22 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocCount;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.digitaltwin.*;
import com.zy.asrs.mapper.DigitalTwinMapper;
import com.zy.asrs.mapper.LocCountMapper;
+import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.DigitalTwinService;
+import com.zy.asrs.service.LocMastService;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -36,7 +43,7 @@
List<Double> dbOverview = digitalTwinMapper.overview(areaId);
if (dbOverview != null && !dbOverview.isEmpty()){
DtOverviewVo dtOverviewVo = DtOverviewVo.builder()
- .totalLoc((int)Math.round(dbOverview.get(0)))
+ .totalLoc((int)Math.round(dbOverview.get(0)))
.useLoc((int)Math.round(dbOverview.get(1)))
.remainingStock((int)Math.round(dbOverview.get(2)))
.todayWarehousing((int)Math.round(dbOverview.get(3)))
@@ -57,24 +64,32 @@
*/
public List<DtOrderVo> order(String startDate, String endDate) {
- String startTime;
- String endTime;
+ Date startTime = new Date();
+ Date endTime = new Date();
if (startDate == null || endDate == null || startDate.isEmpty() || endDate.isEmpty()){
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, -7);
- Date start = calendar.getTime();
+ startTime = calendar.getTime();
+ endTime = now;
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- endDate = sdf.format(now);
- startDate = sdf.format(start);
+ } else {
+ SimpleDateFormat sdf =
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+
+ try {
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
}
- startTime = startDate.substring(0, 4) + "-" + startDate.substring(4, 6) + "-" + startDate.substring(6, 8) + "00:00:00";
- endTime = endDate.substring(0, 4) + "-" + endDate.substring(4, 6) + "-" + endDate.substring(6, 8) + "00:00:00";
List<DtOrderVo> dbOrder = digitalTwinMapper.recentOrder(startTime, endTime);
// 绌烘棩鏈熻ˉ鍏�
-
+ for (DtOrderVo dtOrderVo : dbOrder) {
+ dtOrderVo.setOrderDate(dtOrderVo.getOrderDate());
+ }
return dbOrder;
}
@@ -89,27 +104,34 @@
*/
public List<DtInAndOutBoundVo> inAndOutBound(String areaId, String startDate, String endDate) {
- List<DtInAndOutBoundVo> dtInAndOutBoundVos = new ArrayList<>();
-
- String startTime;
- String endTime;
+ Date startTime = new Date();
+ Date endTime = new Date();
if (startDate == null || endDate == null || startDate.isEmpty() || endDate.isEmpty()){
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, -7);
- Date start = calendar.getTime();
+ startTime = calendar.getTime();
+ endTime = now;
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- endDate = sdf.format(now);
- startDate = sdf.format(start);
+ } else {
+ SimpleDateFormat sdf =
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+
+ try {
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
}
- startTime = startDate.substring(0, 4) + "-" + startDate.substring(4, 6) + "-" + startDate.substring(6, 8) + "00:00:00";
- endTime = endDate.substring(0, 4) + "-" + endDate.substring(4, 6) + "-" + endDate.substring(6, 8) + "00:00:00";
+
List<DtInAndOutBoundVo> dtInBoundVos = digitalTwinMapper.recentInBound(areaId, startTime, endTime);
List<DtInAndOutBoundVo> dtOutBoundVos = digitalTwinMapper.recentOutBound(areaId, startTime, endTime);
// 鏍煎紡鏁寸悊
+ List<DtInAndOutBoundVo> dtInAndOutBoundVos = new ArrayList<>(dtInBoundVos);
+ dtInAndOutBoundVos.addAll(dtOutBoundVos);
return dtInAndOutBoundVos;
}
@@ -134,13 +156,14 @@
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, -overDayNum);
Date start = calendar.getTime();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String startTime = sdf.format(start);
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+// Date startTime = sdf.parse(start);
- List<DtDetainMatVo> dbDetainMats = digitalTwinMapper.recentDetainMat(areaId, startTime, pageIndex, pageSize);
-
- return dbDetainMats;
+ return digitalTwinMapper.recentDetainMat(areaId, start, pageIndex, pageSize);
}
+
+ @Resource
+ private LocMastService locMastService;
/**
* 鏌ヨ搴撳瓨鍜屽簱浣嶈缁嗕俊鎭�
@@ -149,31 +172,39 @@
* @return
*/
public List<DtLocDetailVo> warehouseDetail(String areaId) {
- List<DtLocDetailVo> locDetailVos = new ArrayList<>();
-
- List<LocMast> locMasts = new ArrayList<>();
- List<LocDetl> locDetls = new ArrayList<>();
-
- for (LocMast locMast : locMasts) {
- DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
- dtLocDetailVo.setLocMast(locMast);
- dtLocDetailVo.setLocNo(locMast.getLocNo());
- dtLocDetailVo.setLocSts(locMast.getLocSts());
- dtLocDetailVo.setRow1(locMast.getRow1());
- dtLocDetailVo.setBay1(locMast.getBay1());
- dtLocDetailVo.setLev1(locMast.getLev1());
- for (LocDetl locDetl : locDetls) {
- List<LocDetl> locDetl1 = locDetls.parallelStream().filter(a -> a.getLocNo().equals(locDetl.getLocNo())).collect(Collectors.toList());
- if (locDetl1 != null && locDetl1.size() == 1) {
- dtLocDetailVo.setLocDetl(locDetl1.get(0));
- dtLocDetailVo.setAreaId(locDetl.getAreaId());
- dtLocDetailVo.setAreaName(locDetl.getAreaName());
- }
- }
- locDetailVos.add(dtLocDetailVo);
- }
-
- return locDetailVos;
+ List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<>());
+ return locMastList.stream()
+ .map(loc -> {
+ DtLocDetailVo vo = new DtLocDetailVo();
+ BeanUtils.copyProperties(loc, vo);
+ return vo;
+ })
+ .collect(Collectors.toList());
+// List<DtLocDetailVo> locDetailVos = new ArrayList<>();
+//
+// List<LocMast> locMasts = new ArrayList<>();
+// List<LocDetl> locDetls = new ArrayList<>();
+//
+// for (LocMast locMast : locMasts) {
+// DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
+// dtLocDetailVo.setLocMast(locMast);
+// dtLocDetailVo.setLocNo(locMast.getLocNo());
+// dtLocDetailVo.setLocSts(locMast.getLocSts());
+// dtLocDetailVo.setRow1(locMast.getRow1());
+// dtLocDetailVo.setBay1(locMast.getBay1());
+// dtLocDetailVo.setLev1(locMast.getLev1());
+// for (LocDetl locDetl : locDetls) {
+// List<LocDetl> locDetl1 = locDetls.parallelStream().filter(a -> a.getLocNo().equals(locDetl.getLocNo())).collect(Collectors.toList());
+// if (locDetl1 != null && locDetl1.size() == 1) {
+// dtLocDetailVo.setLocDetl(locDetl1.get(0));
+// dtLocDetailVo.setAreaId(locDetl.getAreaId());
+// dtLocDetailVo.setAreaName(locDetl.getAreaName());
+// }
+// }
+// locDetailVos.add(dtLocDetailVo);
+// }
+//
+// return locDetailVos;
}
/**
@@ -201,11 +232,11 @@
}
List<LocCount> locCounts;
- if(areaId.isEmpty()){
- locCounts = locCountMapper.getByDate(Integer.parseInt(startDate), Integer.parseInt(endDate));
- } else {
- locCounts = locCountMapper.getByAreaAndDate(areaId, Integer.parseInt(startDate), Integer.parseInt(endDate));
- }
+// if(areaId.isEmpty()){
+ locCounts = locCountMapper.getByDate(Integer.parseInt(startDate), Integer.parseInt(endDate));
+// } else {
+// locCounts = locCountMapper.getByAreaAndDate(areaId, Integer.parseInt(startDate), Integer.parseInt(endDate));
+// }
for (LocCount locCount : locCounts) {
String date = locCount.getDate().toString();
@@ -225,29 +256,30 @@
*
*/
public void locNumCount() {
-
- List<LocCount> result = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date = sdf.format(new Date());
List<LocCount> totalLoc = locCountMapper.totalLoc();
List<LocCount> useLoc = locCountMapper.useLoc();
- for (LocCount locCount : totalLoc) {
- LocCount locCount1 = new LocCount();
- locCount1.setDate(Integer.valueOf(date));
- locCount1.setAreaId(locCount.getAreaId());
- locCount1.setLocNum(locCount1.getLocNum());
- for (LocCount locCount2 : useLoc) {
- if(locCount1.getAreaId().equals(locCount2.getAreaId())){
- locCount1.setRemainNum(locCount1.getLocNum() - locCount2.getLocNum());
- }
- }
- result.add(locCount1);
- }
- for (LocCount locCount : result) {
- locCountMapper.insertOrUpdate(locCount);
- }
+ LocCount locCount1 = new LocCount();
+ locCount1.setDate(Integer.valueOf(date));
+ locCount1.setLocNum(totalLoc.get(0).getLocNum());
+ locCount1.setRemainNum(locCount1.getLocNum() - useLoc.get(0).getLocNum());
+
+ locCountMapper.insertOrUpdate(locCount1);
+ }
+
+ @Resource
+ private BasCrnpService basCrnpService;
+
+ @Override
+ public DtEquipmentVo equipment(String areaId) {
+ BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<>());
+ return DtEquipmentVo.builder()
+ .equipmentId("1").equipmentName("鍫嗗灈鏈�1").equipmentType(1)
+ .belongAreaId("C").belongAreaName("鑱旂粨鍣ㄥ簱").verticalSpeed(Integer.valueOf(Cools.isEmpty(crnp.getCtlHp()) ? "0" : crnp.getCtlHp()))
+ .horizontalSpeed(Integer.valueOf( Cools.isEmpty(crnp.getCtlRest()) ? "0" : crnp.getCtlRest())).voltage(220).status(crnp.getCrnErr() == 0 ? 1 : 3).operateMethod(crnp.getCrnSts() == 3 ? 1 : 3).build();
}
--
Gitblit v1.9.1