From 872dd98f359f6d6ff45dac82fe925a5abf4faa83 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 21 四月 2026 10:47:09 +0800
Subject: [PATCH] 1.订单累计入库件数改成改站点入库所以总和。从早上8点开始计算
---
src/main/java/com/zy/asrs/controller/OpenController.java | 289 ++++++++++++++++++++++++---------------------------------
1 files changed, 122 insertions(+), 167 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 22818dc..1b25813 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -25,7 +25,6 @@
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
-import java.util.concurrent.TimeUnit;
/**
* Created by vincent on 2022/4/8
@@ -50,8 +49,6 @@
private WaitPakinService waitPakinService;
@Autowired
private WrkDetlService wrkDetlService;
- @Autowired
- private WrkDetlLogService wrkDetlLogService;
@Autowired
private WrkMastService wrkMastService;
@Autowired
@@ -232,8 +229,8 @@
@PostMapping("/arm/task/v1")
@AppAuth(memo = "鍒嗘嫞绾夸笂鎶ユ帴鏀�")
public synchronized R TaskArmReport(@RequestHeader(required = false) String appkey,
- @RequestBody TaskArmReportParam param,
- HttpServletRequest request) {
+ @RequestBody TaskArmReportParam param,
+ HttpServletRequest request) {
auth(appkey, param, request);
if (Cools.isEmpty(param)) {
return R.parse(BaseRes.PARAM);
@@ -277,8 +274,8 @@
@PostMapping("/arm/task/cycle_result")
@AppAuth(memo = "鍗曠爜瀹屾垚")
public synchronized R TaskArmCycleResult(@RequestHeader(required = false) String appkey,
- @RequestBody TaskArmCycleResultParam param,
- HttpServletRequest request) {
+ @RequestBody TaskArmCycleResultParam param,
+ HttpServletRequest request) {
auth(appkey, param, request);
if (Cools.isEmpty(param)) {
return R.parse(BaseRes.PARAM);
@@ -309,8 +306,8 @@
@PostMapping("/arm/task/workspace_status")
@AppAuth(memo = "鎵樼洏瀹屾垚")
public synchronized R TaskArmWorkspaceStatus(@RequestHeader(required = false) String appkey,
- @RequestBody TaskArmWorkspaceStatusParam param,
- HttpServletRequest request) {
+ @RequestBody TaskArmWorkspaceStatusParam param,
+ HttpServletRequest request) {
auth(appkey, param, request);
if (Cools.isEmpty(param)) {
return R.parse(BaseRes.PARAM);
@@ -342,8 +339,8 @@
@PostMapping("/arm/task/loc_status")
// @AppAuth(memo = "鎵樼洏灏辩华鐘舵�佹煡璇�")
public synchronized R TaskArmLocStatus(@RequestHeader(required = false) String appkey,
- @RequestBody ArmOKParam param,
- HttpServletRequest request) {
+ @RequestBody ArmOKParam param,
+ HttpServletRequest request) {
auth(appkey, param, request);
if (Cools.isEmpty(param)) {
return R.parse(BaseRes.PARAM);
@@ -369,8 +366,8 @@
@PostMapping("/armAbnormalOperation")
// @AppAuth(memo = "寮傚父涓婃姤")
public synchronized R ArmAbnormalOperation(@RequestHeader(required = false) String appkey,
- @RequestBody TaskArmErrorParam param,
- HttpServletRequest request) {
+ @RequestBody TaskArmErrorParam param,
+ HttpServletRequest request) {
auth(appkey, param, request);
if (Cools.isEmpty(param.getArm_no())) {
return R.error("鏈烘鑷傜紪鍙穂Arm_no]涓嶈兘涓虹┖");
@@ -467,6 +464,26 @@
log.info("[comb] cache: {}", param == null ? "null" : JSON.toJSONString(param));
request.setAttribute("cache", param);
}
+
+ if (Cools.isEmpty(param)) {
+ return R.error("娌℃湁鍏ュ簱鏁版嵁");
+ }
+ boolean boo =false;
+ for (MesToCombParam mesToCombParam : param) {
+ if (mesToCombParam.getOperateType()==2){
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", mesToCombParam.getPalletId()));
+ int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", mesToCombParam.getPalletId()));
+ int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",mesToCombParam.getPalletId()).eq("io_status", "Y"));
+ if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+ return R.error(mesToCombParam.getPalletId()+"-宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�,鏃犳硶鍒犻櫎");
+ }
+ waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet",mesToCombParam.getPalletId()));
+ boo = true;
+ }
+ }
+ if (boo){
+ return R.ok();
+ }
List<MesToCombParam> errorComb = Lists.newArrayList();
List<MesToCombParam> validComb = Lists.newArrayList();
for (MesToCombParam mesToCombParam : param) {
@@ -515,7 +532,7 @@
}
log.info("[outOrder] cache: {}", JSON.toJSONString(params));
request.setAttribute("cache", params);
- Map<String, List<OutTaskParam>> linesByBatch = new LinkedHashMap<>();
+ Map<String, List<OutTaskParam>> linesByBatchSeq = new LinkedHashMap<>();
for (OutTaskParam outTaskParam : params) {
if (Cools.isEmpty(outTaskParam) || Cools.isEmpty(outTaskParam.getOrderId())) {
return R.error("鍑哄簱鍗曞彿涓嶈兘涓虹┖");
@@ -526,10 +543,10 @@
if (Cools.isEmpty(outTaskParam.getStationId())) {
return R.error("鎵樼洏銆�" + outTaskParam.getPalletId() + "銆嶅嚭搴撳彛缂栫爜涓嶈兘涓虹┖");
}
- linesByBatch.computeIfAbsent(outTaskParam.getBatchSeq(), k -> new ArrayList<>()).add(outTaskParam);
+ linesByBatchSeq.computeIfAbsent(outTaskParam.getBatchSeq(), k -> new ArrayList<>()).add(outTaskParam);
}
- for (Map.Entry<String, List<OutTaskParam>> entry : linesByBatch.entrySet()) {
+ for (Map.Entry<String, List<OutTaskParam>> entry : linesByBatchSeq.entrySet()) {
List<OutTaskParam> lines = entry.getValue();
OutTaskParam head = lines.get(0);
String oid = head.getOrderId();
@@ -564,8 +581,13 @@
}
}
+ List<OutTaskParam> groupedParams = new ArrayList<>(params.size());
+ for (List<OutTaskParam> lines : linesByBatchSeq.values()) {
+ groupedParams.addAll(lines);
+ }
+
Set<String> seenPallet = new LinkedHashSet<>();
- for (OutTaskParam outTaskParam : params) {
+ for (OutTaskParam outTaskParam : groupedParams) {
String pid = outTaskParam.getPalletId();
String palletKey = pid == null ? "" : pid;
if (!seenPallet.add(palletKey)) {
@@ -594,7 +616,7 @@
List<OutTaskParam> missingStock = Lists.newArrayList();
List<OutTaskParam> missingLoc = Lists.newArrayList();
- for (OutTaskParam outTaskParam : params) {
+ for (OutTaskParam outTaskParam : groupedParams) {
int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", outTaskParam.getPalletId()));
if (countLoc == 0) {
missingStock.add(outTaskParam);
@@ -622,7 +644,7 @@
return R.error("娌℃湁鎵惧埌鎵樼洏鐮佸搴斿簱浣嶏細" + String.join("锛�", badPalletIds)).add(missingLoc);
}
- return openService.outOrderBatch(params);
+ return openService.outOrderBatch(linesByBatchSeq);
}
/**
@@ -674,11 +696,20 @@
return param.getOrderId() + "#" + param.getBatchSeq();
}
+ /**
+ * 鎺ㄨ崘鍑哄簱绔欑偣
+ */
+ @PostMapping("/pakoutStaNo")
+ public synchronized R pakoutStaNo(@RequestBody List<String> barcodes) {
+ String StaNo = "1,2,3,4,5";
+ return R.ok().add(StaNo);
+ }
+
/*************************************鐢佃鏈虹▼搴�***********************************************/
@GetMapping("/locDetl/statistics")
- public R locDetlStatistics(){
+ public synchronized R locDetlStatistics(){
HashMap<String, Object> param = new HashMap<>();
Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(1, 100, param, LocDetl.class));
for (LocDetl locDetl : stockStatis.getRecords()) {
@@ -691,7 +722,7 @@
}
@GetMapping("/line/charts")
- public R locIoLineCharts(){
+ public synchronized R locIoLineCharts(){
Map<String,Object> map=new HashMap<String, Object>();
List<AxisBean> list = new ArrayList<AxisBean>();
@@ -745,9 +776,7 @@
AxisBean cube5 = new AxisBean();
cube5.setName("鍏ュ簱浣撶Н");
- AxisBean cube15 = new AxisBean();
- cube15.setName("鍑哄簱浣撶Н");
- List<WorkCubeTotalAxis> workCubeTotalAxes = reportQueryMapper.getCubeTotal();
+ List<WorkCubeTotalAxis> workCubeTotalAxes = reportQueryMapper.getInboundCubeTotal();
Map<String, WorkCubeTotalAxis> cubeMap = new HashMap<String, WorkCubeTotalAxis>();
if (workCubeTotalAxes != null) {
for (WorkCubeTotalAxis w : workCubeTotalAxes) {
@@ -757,7 +786,6 @@
}
}
ArrayList<Number> data4 = new ArrayList<Number>();
- ArrayList<Number> data5 = new ArrayList<Number>();
SimpleDateFormat sfCube = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendarCube = Calendar.getInstance();
calendarCube.add(Calendar.DATE, -12);
@@ -766,15 +794,10 @@
String str = sfCube.format(calendarCube.getTime());
WorkCubeTotalAxis cubeAxis = cubeMap.get(str);
data4.add(cubeAxis == null || cubeAxis.getCube5Total() == null ? 0 : cubeAxis.getCube5Total());
- data5.add(cubeAxis == null || cubeAxis.getCube15Total() == null ? 0 : cubeAxis.getCube15Total());
}
Number[] array4 = new Number[data4.size()];
cube5.setData(data4.toArray(array4));
list.add(cube5);
- Number[] array5 = new Number[data5.size()];
- cube15.setData(data5.toArray(array5));
- list.add(cube15);
-
}
map.put("rows",list);
return R.ok(map);
@@ -784,7 +807,7 @@
* 鍏ュ嚭搴撴寜灏忔椂鎶樼嚎锛氭í杞翠负銆屽綋鍓嶆暣鐐硅捣鍚戝墠鍏� 12 灏忔椂銆嶆粴鍔ㄧ獥鍙o紝涓庡簱琛� ymd锛坹yyy-MM-dd HH锛夊榻�
*/
@GetMapping("/line/charts/hourly")
- public R locIoLineChartsHourly() {
+ public synchronized R locIoLineChartsHourly() {
Map<String, Object> map = new HashMap<>();
List<AxisBean> list = new ArrayList<>();
@@ -795,6 +818,9 @@
ArrayList<Integer> data1 = new ArrayList<>();
ArrayList<Integer> data2 = new ArrayList<>();
+ ArrayList<Double> data3 = new ArrayList<>();
+ ArrayList<Double> data4 = new ArrayList<>();
+ ArrayList<Double> data5 = new ArrayList<>();
List<String> categories = new ArrayList<>();
final int n = 12;
@@ -811,15 +837,24 @@
int inV = 0;
int outV = 0;
+ double inC = 0;
+ double outC = 0;
+ double outD = 0;
for (WorkChartAxis w : listChart) {
if (w.getYmd() != null && key.equals(w.getYmd().trim())) {
inV = w.getInqty();
outV = w.getOutqty();
+ inC = w.getCubeInqty();
+ outC = w.getCubeOutqty();
+ outD = w.getOutTeu();
break;
}
}
data1.add(inV);
data2.add(outV);
+ data3.add(inC);
+ data4.add(outC);
+ data5.add(outD);
calendar.add(Calendar.HOUR_OF_DAY, 1);
}
@@ -834,6 +869,31 @@
Integer[] array2 = new Integer[data2.size()];
outqty.setData(data2.toArray(array2));
list.add(outqty);
+
+ if (data3.size() >0) {
+ AxisBean cubeInqty = new AxisBean();
+ cubeInqty.setName("鍏ュ簱浣撶Н");
+ Double [] array3 = new Double[data3.size()];
+ cubeInqty.setData(data3.toArray(array3));
+ list.add(cubeInqty);
+ }
+
+ if (data4.size() >0) {
+ AxisBean cubeOutqty = new AxisBean();
+ cubeOutqty.setName("鍑哄簱浣撶Н");
+ Double[] array4 = new Double[data4.size()];
+ cubeOutqty.setData(data4.toArray(array4));
+ list.add(cubeOutqty);
+ }
+
+ if (data5.size() >0) {
+ AxisBean cubeOutqty = new AxisBean();
+ cubeOutqty.setName("鍑哄簱TEU");
+ Double[] array5 = new Double[data4.size()];
+ cubeOutqty.setData(data5.toArray(array5));
+ list.add(cubeOutqty);
+ }
+
map.put("categories", categories);
map.put("rows", list);
@@ -871,7 +931,8 @@
}
// 鎬诲簱浣嶆暟
- Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
+ Integer total1 = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
+ Integer total = total1>40000?6528:total1;
// 浣跨敤涓�
Integer used = locUseRate.getFqty() + locUseRate.getUqty();
// 搴撲綅浣跨敤鐜�
@@ -918,167 +979,61 @@
Integer count = 0;
String supp = "";
//璇ヨ鍗曠疮璁″叆鍑哄簱浠舵暟
- List<WrkMast> orderNo = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", wrkMast.getUserNo()));
- List<WrkMastLog> userNo = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", wrkMast.getUserNo()).eq("wrk_sts",15L));
Integer ioType = wrkMast.getIoType();
if (ioType != null && ioType < 100) {
- if (orderNo != null && orderNo.size() > 0) {
- count = orderNo.size();
- }
- if (userNo != null && userNo.size() > 0) {
- count = userNo.size()+count+1;
- }
- supp = count + "";
+ Date endTime = new Date();
+ Date startTime = resolveBusinessDayStart(endTime);
+ Long inboundCount = wrkMastLogService.countInboundHistoryBySourceStaNo(startTime, endTime, resolveInboundStationNo(wrkMast));
+ supp = String.valueOf(inboundCount);
}else {
+ List<WrkMast> orderNo = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", wrkMast.getUserNo()));
+ List<WrkMastLog> userNo = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", wrkMast.getUserNo()).eq("wrk_sts",15L));
if (userNo != null && userNo.size() > 0) {
count = userNo.size()+1;
+ }
+ if (orderNo != null && orderNo.size() > 0) {
+ count=orderNo.size()+count;
}
supp = count + "";
}
map.put("supp", supp);
//鑰楁椂
- String costTime = resolveCostTime(wrkMast, wrkDetls);
- map.put("costTime", costTime);
+ Long costTime = resolveCostTime(wrkMast);
+ map.put("costTime", String.valueOf(costTime));
return R.ok().add(map);
}
- private String resolveCostTime(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+ private Long resolveCostTime(WrkMast wrkMast) {
if (wrkMast == null || wrkMast.getIoType() == null) {
- return "0";
+ return 0L;
}
- Date createTime;
- if (wrkMast.getIoType() < 100) {
- createTime = resolveInboundTaskCreateTime(wrkMast, wrkDetls);
- } else {
- createTime = resolveTaskCreateTime(wrkMast);
- }
-
- if (createTime == null) {
- return "0";
- }
-
- long minutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis() - createTime.getTime());
- if (minutes < 0L) {
- minutes = 0L;
- }
- return String.valueOf(minutes);
+ Date endTime = new Date();
+ Date startTime = resolveBusinessDayStart(endTime);
+ Integer wrkSts = wrkMast.getIoType() < 100 ? 5 : 15;
+ return wrkMastLogService.sumCostTimeByWrkSts(startTime, endTime, wrkSts);
}
- private Date resolveInboundTaskCreateTime(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+ private Integer resolveInboundStationNo(WrkMast wrkMast) {
if (wrkMast == null) {
return null;
}
-
- if (!Cools.isEmpty(wrkMast.getUserNo())) {
- Date userNoCreateTime = resolveUserNoCreateTime(wrkMast.getUserNo());
- if (userNoCreateTime != null) {
- return userNoCreateTime;
- }
- }
-
- String orderNo = resolveOrderNo(wrkMast, wrkDetls);
- if (Cools.isEmpty(orderNo)) {
- return null;
- }
- return resolveOrderCreateTime(orderNo);
+ return wrkMast.getSourceStaNo() == null ? wrkMast.getStaNo() : wrkMast.getSourceStaNo();
}
- private Date resolveUserNoCreateTime(String userNo) {
- if (Cools.isEmpty(userNo)) {
- return null;
+ private Date resolveBusinessDayStart(Date now) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(now);
+ calendar.set(Calendar.HOUR_OF_DAY, 8);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ if (now.before(calendar.getTime())) {
+ calendar.add(Calendar.DATE, -1);
}
- return minDate(
- minCreateTime(wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", userNo))),
- minCreateTime(wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", userNo)))
- );
- }
-
- private String resolveOrderNo(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
- if (wrkMast != null && !Cools.isEmpty(wrkMast.getUserNo())) {
- return wrkMast.getUserNo();
- }
- if (Cools.isEmpty(wrkDetls)) {
- return null;
- }
- for (WrkDetl wrkDetl : wrkDetls) {
- if (wrkDetl != null && !Cools.isEmpty(wrkDetl.getOrderNo())) {
- return wrkDetl.getOrderNo();
- }
- }
- return null;
- }
-
- private Date resolveOrderCreateTime(String orderNo) {
- if (Cools.isEmpty(orderNo)) {
- return null;
- }
-
- Date historyCreateTime = minDate(
- minCreateTime(wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", orderNo))),
- minCreateTime(wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>().eq("order_no", orderNo)))
- );
- Date currentCreateTime = minDate(
- minCreateTime(wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", orderNo))),
- minCreateTime(wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)))
- );
- return minDate(historyCreateTime, currentCreateTime);
- }
-
- private Date minDate(Date first, Date second) {
- if (first == null) {
- return second;
- }
- if (second == null) {
- return first;
- }
- return first.before(second) ? first : second;
- }
-
- private Date resolveTaskCreateTime(WrkMast wrkMast) {
- if (wrkMast == null) {
- return null;
- }
- return minDate(minDate(wrkMast.getAppeTime(), wrkMast.getIoTime()), wrkMast.getModiTime());
- }
-
- private Date minCreateTime(List<?> list) {
- if (Cools.isEmpty(list)) {
- return null;
- }
- Date min = null;
- for (Object item : list) {
- Date createTime = resolveCreateTime(item);
- if (createTime == null) {
- continue;
- }
- if (min == null || createTime.before(min)) {
- min = createTime;
- }
- }
- return min;
- }
-
- private Date resolveCreateTime(Object item) {
- if (item instanceof WrkMast) {
- WrkMast wrkMast = (WrkMast) item;
- return minDate(minDate(wrkMast.getAppeTime(), wrkMast.getIoTime()), wrkMast.getModiTime());
- }
- if (item instanceof WrkMastLog) {
- WrkMastLog wrkMastLog = (WrkMastLog) item;
- return minDate(minDate(wrkMastLog.getAppeTime(), wrkMastLog.getIoTime()), wrkMastLog.getModiTime());
- }
- if (item instanceof WrkDetl) {
- WrkDetl wrkDetl = (WrkDetl) item;
- return minDate(minDate(wrkDetl.getAppeTime(), wrkDetl.getIoTime()), wrkDetl.getModiTime());
- }
- if (item instanceof WrkDetlLog) {
- WrkDetlLog wrkDetlLog = (WrkDetlLog) item;
- return minDate(minDate(wrkDetlLog.getAppeTime(), wrkDetlLog.getIoTime()), wrkDetlLog.getModiTime());
- }
- return null;
+ return calendar.getTime();
}
}
--
Gitblit v1.9.1