From 74863c38a407b1e0f36250dfa0c63e5da7fe5f66 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 19 一月 2026 18:06:51 +0800
Subject: [PATCH] WMS功能完善
---
src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java | 177 ++++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 126 insertions(+), 51 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..48197f3 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,26 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+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.entity.mes.StockDetl;
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.LocDetlService;
+import com.zy.asrs.service.LocMastService;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -57,24 +68,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 +108,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,12 +160,33 @@
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 digitalTwinMapper.recentDetainMat(areaId, start, pageIndex, pageSize);
+ }
- return dbDetainMats;
+ @Resource
+ private LocDetlService locDetlService;
+
+ @Resource
+ private LocMastService locMastService;
+
+ /**
+ * 鏌ヨ搴撳瓨鍜屽簱浣嶈缁嗕俊鎭�
+ *
+ * @param areaId
+ * @return
+ */
+ public List<DtLocDetailVo> warehouseDetail2(String areaId) {
+ 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());
}
/**
@@ -148,12 +195,11 @@
* @param areaId
* @return
*/
- public List<DtLocDetailVo> warehouseDetail(String areaId) {
+ public R warehouseDetail(String areaId) {
List<DtLocDetailVo> locDetailVos = new ArrayList<>();
- List<LocMast> locMasts = new ArrayList<>();
- List<LocDetl> locDetls = new ArrayList<>();
-
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","F"));
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<>());
for (LocMast locMast : locMasts) {
DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
dtLocDetailVo.setLocMast(locMast);
@@ -164,16 +210,41 @@
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) {
+ if (locDetl1.size() == 1) {
dtLocDetailVo.setLocDetl(locDetl1.get(0));
- dtLocDetailVo.setAreaId(locDetl.getAreaId());
- dtLocDetailVo.setAreaName(locDetl.getAreaName());
+// dtLocDetailVo.setAreaId(locDetl.getAreaId());
+// dtLocDetailVo.setAreaName(locDetl.getAreaName());
}
}
locDetailVos.add(dtLocDetailVo);
}
- return locDetailVos;
+ return R.ok(locDetailVos);
+// 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 +272,11 @@
}
List<LocCount> locCounts;
- if(areaId.isEmpty()){
+// if(areaId.isEmpty()){
locCounts = locCountMapper.getByDate(Integer.parseInt(startDate), Integer.parseInt(endDate));
- } else {
- locCounts = locCountMapper.getByAreaAndDate(areaId, 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();
@@ -224,30 +295,34 @@
* 瀹氭湡缁熻鍓╀綑搴撳瓨
*
*/
+ @Transactional
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) {
+ return new DtEquipmentVo();
+// BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<>());
+// return DtEquipmentVo.builder()
+// .equipmentId("1").equipmentName("鍫嗗灈鏈�1").equipmentType(1)
+// .belongAreaId("A").belongAreaName("鍔犲伐搴�").verticalSpeed(Integer.valueOf(crnp.getCtlHp()))
+// .horizontalSpeed(Integer.valueOf(crnp.getCtlRest())).voltage(220).status(crnp.getCrnErr() == 0 ? 1 : 3).operateMethod(crnp.getCrnSts() == 3 ? 1 : 3).build();
}
--
Gitblit v1.9.1