Commit c16db042 zshaohui

1.工单统计更改逻辑

2.优化今日出入库数量
1 个父辈 cbec08b7
......@@ -111,7 +111,6 @@ public class LiteOrderCache implements ITaskListener {
liteOrderMap.remove(order.getOrderNo());
}
liteOrderMap.put(order.getOrderNo(), order);
updateOrderProgress(order, false);
}
public void removeOrder(LiteOrder order) {
......@@ -122,7 +121,6 @@ public class LiteOrderCache implements ITaskListener {
public synchronized void updateOrder(LiteOrder order) {
order = liteOrderManager.save(order);
liteOrderMap.put(order.getOrderNo(), order);
updateOrderProgress(order, false);
}
public LiteOrder findOrderById(String orderId) {
......
......@@ -93,7 +93,6 @@ public class HikvisionApiController {
liteOrderManager.createWithItems(order);
liteOrderCache.addOrderToMap(order);
log.info("新建工单[" + order.getOrderNo() + "]工单详情"+order.getOrderItems().size()+"条" );
liteOrderCache.updateOrderProgress(order,true);
} else {
if (order.getStatus() > LITEORDER_STATUS.NEW) {
log.info("工单[" + orderNo + "]已存在,且状态为[" + order.getStatus() + "],不能修改工单信息:" + outInfo.toString());
......
package com.neotel.smfcore.hikvision;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.bean.OrderProgress;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.hikvision.bean.InOutDetailInfo;
import com.neotel.smfcore.hikvision.bean.StorageInventoryInfo;
......@@ -14,9 +15,14 @@ import com.neotel.smfcore.hikvision.service.manager.IHikTaskCountManager;
import com.neotel.smfcore.hikvision.service.po.TaskCount;
import com.neotel.smfcore.hikvision.util.ShiftUtil;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -25,6 +31,8 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Api(tags = "海康看板")
@Slf4j
......@@ -38,6 +46,9 @@ public class HikvisionKanBanController {
@Autowired
private IHikTaskCountManager hikTaskCountManager;
@Autowired
private ILiteOrderManager liteOrderManager;
@ApiOperation("获取库容信息")
@GetMapping("/getStorageInventoryInfo")
@AnonymousAccess
......@@ -172,11 +183,76 @@ public class HikvisionKanBanController {
@GetMapping("/getOrderProgress")
@AnonymousAccess
public ResultBean getOrderProgress() {
OrderProgress progress = dataCache.getCache(Constants.CACHE_OrderProgress);
if (progress == null) {
progress = new OrderProgress();
return ResultBean.newOkResult(getProgress());
}
private Long lastSaveTime = null;
private OrderProgress cacheProgress = null;
private OrderProgress getProgress() {
if (lastSaveTime != null && System.currentTimeMillis() - lastSaveTime <= 1000 * 60 * 10) {
if (cacheProgress != null) {
return cacheProgress;
}
}
OrderProgress progress = new OrderProgress();
Date endDate = null;
//判断当前时间是否在今天A班开始时间
Date currentDate = new Date();
Date startDate = ShiftUtil.getShiftAStartDate();
if (currentDate.getTime() < startDate.getTime()) {
endDate = ShiftUtil.getShiftAStartDate();
startDate = DateUtil.offsetDay(startDate, -1);
} else {
endDate = DateUtil.offsetDay(startDate, 1);
}
return ResultBean.newOkResult(progress);
Criteria c = Criteria.where("startDate").gte(startDate).lt(endDate);
Query q = new Query(c);
List<LiteOrder> liteOrderList = liteOrderManager.findByQuery(q);
if (liteOrderList != null && !liteOrderList.isEmpty()) {
int shiftAOrderCount = 0;
int shiftAOrderFinishedCount = 0;
int shiftBOrderCount = 0;
int shiftBOrderFinishedCount = 0;
for (LiteOrder order : liteOrderList) {
if (StringUtils.isNotBlank(order.getReplenishmentNo())) {
continue;
}
//判断是否属于A班数据
Date orderStartDate = order.getStartDate();
boolean shiftA = ShiftUtil.isA(orderStartDate);
if (shiftA) {
shiftAOrderCount = shiftAOrderCount + 1;
if (order.isClosed()) {
shiftAOrderFinishedCount = shiftAOrderFinishedCount + 1;
}
} else {
shiftBOrderCount = shiftBOrderCount + 1;
if (order.isClosed()) {
shiftBOrderFinishedCount = shiftBOrderFinishedCount + 1;
}
}
}
progress.setShiftAOrderCount(shiftAOrderCount);
progress.setShiftAOrderFinishedCount(shiftAOrderFinishedCount);
progress.setShiftBOrderCount(shiftBOrderCount);
progress.setShiftBOrderFinishedCount(shiftBOrderFinishedCount);
}
lastSaveTime = System.currentTimeMillis();
cacheProgress = progress;
return progress;
}
private static Date getFirTwelveMonthsDate() {
......
package com.neotel.smfcore.hikvision.service.manager.impl;
import cn.hutool.core.date.DateUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.hikvision.service.po.TaskCount;
......@@ -36,24 +37,33 @@ public class HikTaskCountManagerImpl implements IHikTaskCountManager {
}
String shift = "";
Date createDate = null;
if (ShiftUtil.isA(task.getCreateDate())) {
//判断当前时间是否属于A班
Date taskDate = task.getCreateDate();
if (ShiftUtil.isA(taskDate)) {
shift = ShiftUtil.SHIFT_A;
createDate = ShiftUtil.getShiftASelectDate();
createDate = ShiftUtil.getShiftAStartDate();
} else {
shift = ShiftUtil.SHIFT_B;
createDate = ShiftUtil.getShiftBSelectDate(task.getCreateDate());
if (taskDate.getTime() < ShiftUtil.getShiftAStartDate().getTime()) {
createDate = DateUtil.offsetDay(ShiftUtil.getShiftAStartDate(), -1);
} else {
createDate = ShiftUtil.getShiftAStartDate();
}
}
//保存数据
TaskCount taskCount = hikTaskCountDao.getByOperatorAndShift(operator, shift, createDate);
if (taskCount == null) {
log.info(taskDate + "操作人:" + operator + "新建一条记录");
taskCount = new TaskCount();
taskCount.setName(operator);
taskCount.setShift(shift);
}
if (task.isPutInTask()) {
log.info("姓名:" + operator + "班次:" + shift + ",入库数量+1");
taskCount.setPutInCount(taskCount.getPutInCount() + 1);
} else {
log.info("姓名:" + operator + "班次:" + shift + ",出库数量+1");
taskCount.setCheckOutCount(taskCount.getCheckOutCount() + 1);
}
hikTaskCountDao.save(taskCount);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!