Commit b1048a2f zshaohui

1.接口异常全部重发修改

2.出入库任务统计修改
3.看板数据展示修改
1 个父辈 c16db042
......@@ -97,7 +97,7 @@ public class InterfaceExceptionController {
}
}
@ApiOperation("全部重发")
@PostMapping("/reSendAll")
@GetMapping("/reSendAll")
public ResultBean reSend(InterfaceExCriteria criteria) {
Query query= QueryHelp.getQuery(criteria);
List<HikApiRequestError> requests = hikApiRequestErrorDao.findByQuery(query);
......
......@@ -970,120 +970,4 @@ public class LiteOrderCache implements ITaskListener {
}
return outPos;
}
public void updateOrderProgress(LiteOrder order, boolean flag) {
try {
if (!flag) {
if (!order.isClosed()) {
return;
}
} else {
if (!order.isNew()) {
return;
}
}
if (StringUtils.isNotBlank(order.getReplenishmentNo())) {
return;
}
OrderProgress progress = dataCache.getCache(Constants.CACHE_OrderProgress);
if (progress == null) {
progress = initProgress(order.getOrderNo());
} else {
//判断创建时间,是否在当前时间范围内
Date createDate = progress.getCreateDate();
Date startDate = ShiftUtil.getShiftAStartDate();
DateTime endDate = DateUtil.offsetDay(startDate, 1);
//如果当前时间大于等于当天的白班开始日期,再判断工单记录的创建时间是否在今天范围内
if (System.currentTimeMillis() >= startDate.getTime()){
if (createDate.getTime() >= startDate.getTime() && createDate.getTime() < endDate.getTime()) {
} else {
progress = initProgress(order.getOrderNo());
}
}
}
Date orderStartDate = order.getStartDate();
String orderStartDateStr = DateUtil.format(orderStartDate, "yyyy-MM-dd");
log.info("工单:" + order.getOrderNo() + "开工时间为:" + orderStartDateStr + "状态为:" + order.getStatus());
if (ShiftUtil.isA(orderStartDate)) {
if (order.isNew()) {
log.info("工单:" + order.getOrderNo() + "属于白班新建,数量加1");
progress.setShiftAOrderCount(progress.getShiftAOrderCount() + 1);
} else if (order.isClosed()) {
log.info("工单:" + order.getOrderNo() + "属于白班关闭,数量加1");
progress.setShiftAOrderFinishedCount(progress.getShiftAOrderFinishedCount() + 1);
}
} else if (ShiftUtil.isB(orderStartDate)) {
if (order.isNew()) {
log.info("工单:" + order.getOrderNo() + "属于夜班新建,数量加1");
progress.setShiftBOrderCount(progress.getShiftBOrderCount() + 1);
} else if (order.isClosed()) {
log.info("工单:" + order.getOrderNo() + "属于夜班新建,数量加1");
progress.setShiftBOrderFinishedCount(progress.getShiftBOrderFinishedCount() + 1);
}
}
dataCache.updateCache(Constants.CACHE_OrderProgress, progress);
} catch (Exception e) {
log.error("更新工单信息报错", e);
e.printStackTrace();
}
}
private OrderProgress initProgress(String orderNo) {
OrderProgress process = new OrderProgress();
Date startDate = ShiftUtil.getShiftAStartDate();
DateTime endDate = DateUtil.offsetDay(startDate, 1);
Query query = new Query(Criteria.where("startDate").gte(startDate).lt(endDate));
List<LiteOrder> liteOrderList = liteOrderManager.findByQuery(query);
//A班工单数量
int shiftAOrderCount = 0;
//B班工单数量
int shiftBOrderCount = 0;
//A班工单完成数量
int shiftAOrderFinishedCount = 0;
//B班工单完成数量
int shiftBOrderFinishedCount = 0;
for (LiteOrder order : liteOrderList) {
if (orderNo.equals(order.getOrderNo())) {
continue;
}
if (StringUtils.isNotBlank(order.getReplenishmentNo())){
continue;
}
if (ShiftUtil.isA(order.getStartDate())) {
if (order.isClosed()) {
shiftAOrderFinishedCount = shiftAOrderFinishedCount + 1;
}
shiftAOrderCount = shiftAOrderCount + 1;
} else {
if (order.isClosed()) {
shiftBOrderFinishedCount = shiftBOrderFinishedCount + 1;
}
shiftBOrderCount = shiftBOrderCount + 1;
}
}
process.setShiftAOrderCount(shiftAOrderCount);
process.setShiftBOrderCount(shiftBOrderCount);
process.setShiftAOrderFinishedCount(shiftAOrderFinishedCount);
process.setShiftBOrderFinishedCount(shiftBOrderFinishedCount);
return process;
}
}
......@@ -15,6 +15,8 @@ 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 com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.po.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -31,8 +33,6 @@ 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
......@@ -49,6 +49,9 @@ public class HikvisionKanBanController {
@Autowired
private ILiteOrderManager liteOrderManager;
@Autowired
private IUserManager userManager;
@ApiOperation("获取库容信息")
@GetMapping("/getStorageInventoryInfo")
@AnonymousAccess
......@@ -90,9 +93,15 @@ public class HikvisionKanBanController {
@AnonymousAccess
public ResultBean<InOutDetailInfo> inOutDetail(@RequestParam(value = "date") String date, @RequestParam(value = "type") String type) {
InOutDetailInfo info = new InOutDetailInfo();
List<TaskCount> taskCountList = hikTaskCountManager.findTaskCountByDate(DateUtil.parse(date, "yyyy-MM-dd"),true);
List<TaskCount> taskCountList = hikTaskCountManager.findTaskCountByDateStr(date);
if (taskCountList != null && !taskCountList.isEmpty()) {
for (TaskCount taskCount : taskCountList) {
//判断有没有别名,没有就跳过
User user = userManager.findByUserName(taskCount.getName());
if (user == null || StringUtils.isBlank(user.getOtherName())) {
continue;
}
taskCount.setName(user.getOtherName());
if (ShiftUtil.SHIFT_A.equals(taskCount.getShift())) {
if ("1".equals(type)) {
if (taskCount.getPutInCount() > 0) {
......@@ -157,18 +166,20 @@ public class HikvisionKanBanController {
int checkOutCount = 0;
for (TaskCount taskCount : taskCountList) {
if (i == timeList.size() - 1) {
if (taskCount.getCreateDate().getTime() > timeList.get(i).getTime()) {
putInCount = putInCount + taskCount.getPutInCount();
checkOutCount = checkOutCount + taskCount.getCheckOutCount();
if ("1".equals(type)){
String format = DateUtil.format(date, "yyyy-MM-dd");
if (format.equals(taskCount.getDateStr())){
putInCount = taskCount.getPutInCount() + putInCount;
checkOutCount = taskCount.getCheckOutCount() + checkOutCount;
}
} else {
if (taskCount.getCreateDate().getTime() >= timeList.get(i).getTime() && taskCount.getCreateDate().getTime() < timeList.get(i + 1).getTime()) {
putInCount = putInCount + taskCount.getPutInCount();
checkOutCount = checkOutCount + taskCount.getCheckOutCount();
String format = DateUtil.format(date, "yyyy-MM");
String dateStr = taskCount.getDateStr();
if (StringUtils.isNotBlank(dateStr) && dateStr.startsWith(format)){
putInCount = taskCount.getPutInCount() + putInCount;
checkOutCount = taskCount.getCheckOutCount() + checkOutCount;
}
}
}
detail.setPutInCount(putInCount);
......@@ -229,7 +240,7 @@ public class HikvisionKanBanController {
//判断是否属于A班数据
Date orderStartDate = order.getStartDate();
boolean shiftA = ShiftUtil.isA(orderStartDate);
boolean shiftA = ShiftUtil.isShiftA(orderStartDate);
if (shiftA) {
shiftAOrderCount = shiftAOrderCount + 1;
......
......@@ -7,7 +7,9 @@ import java.util.Date;
import java.util.List;
public interface IHikTaskCountDao extends IBaseDao {
TaskCount getByOperatorAndShift(String operator, String shift, Date createDate);
TaskCount getByOperatorAndShift(String operator, String shift, String dateStr);
List<TaskCount> findTaskCountByDate(Date date);
List<TaskCount> findTaskCountByDateStr(String dateStr);
}
......@@ -18,12 +18,17 @@ public class HikTaskCountDaoImpl extends AbstractBaseDao implements IHikTaskCoun
}
@Override
public TaskCount getByOperatorAndShift(String operator, String shift, Date createDate) {
return findOne(new Query(Criteria.where("name").is(operator).and("shift").is(shift).and("createDate").gte(createDate)));
public TaskCount getByOperatorAndShift(String operator, String shift, String dateStr) {
return findOne(new Query(Criteria.where("name").is(operator).and("shift").is(shift).and("dateStr").is(dateStr)));
}
@Override
public List<TaskCount> findTaskCountByDate(Date date) {
return findByQuery(new Query(Criteria.where("createDate").gte(date)));
}
@Override
public List<TaskCount> findTaskCountByDateStr(String dateStr) {
return findByQuery(new Query(Criteria.where("dateStr").is(dateStr)));
}
}
......@@ -13,4 +13,6 @@ public interface IHikTaskCountManager {
void updateInOutCount(DataLog task);
List<TaskCount> findTaskCountByDate(Date date,boolean hasOtherName);
List<TaskCount> findTaskCountByDateStr(String dateStr);
}
......@@ -28,36 +28,33 @@ public class HikTaskCountManagerImpl implements IHikTaskCountManager {
private IUserManager userManager;
@Override
public void updateInOutCount(DataLog task) {
public synchronized void updateInOutCount(DataLog task) {
if (task.isFinished()) {
//获取到操作人,班次,和查询时间
String operator = task.getOperator();
if (StringUtils.isBlank(operator)) {
operator = "other";
}
String shift = "";
Date createDate = null;
String shift = "";
//判断当前时间是否属于A班
Date taskDate = task.getCreateDate();
if (ShiftUtil.isA(taskDate)) {
Date taskDate = task.getUpdateDate();
boolean shiftA = ShiftUtil.isShiftA(taskDate);
if (shiftA){
shift = ShiftUtil.SHIFT_A;
createDate = ShiftUtil.getShiftAStartDate();
} else {
shift = ShiftUtil.SHIFT_B;
if (taskDate.getTime() < ShiftUtil.getShiftAStartDate().getTime()) {
createDate = DateUtil.offsetDay(ShiftUtil.getShiftAStartDate(), -1);
} else {
createDate = ShiftUtil.getShiftAStartDate();
}
}
String dateStr = ShiftUtil.getDateStr(taskDate);
//保存数据
TaskCount taskCount = hikTaskCountDao.getByOperatorAndShift(operator, shift, createDate);
TaskCount taskCount = hikTaskCountDao.getByOperatorAndShift(operator, shift, dateStr);
if (taskCount == null) {
log.info(taskDate + "操作人:" + operator + "新建一条记录");
taskCount = new TaskCount();
taskCount.setName(operator);
taskCount.setShift(shift);
taskCount.setDateStr(dateStr);
}
if (task.isPutInTask()) {
log.info("姓名:" + operator + "班次:" + shift + ",入库数量+1");
......@@ -90,4 +87,9 @@ public class HikTaskCountManagerImpl implements IHikTaskCountManager {
}
return resultList;
}
@Override
public List<TaskCount> findTaskCountByDateStr(String dateStr) {
return hikTaskCountDao.findTaskCountByDateStr(dateStr);
}
}
......@@ -16,6 +16,12 @@ public class TaskCount extends BasePo {
*/
private String name;
/**
* 当前日期
*/
private String dateStr;
/**
* 入库数量
*/
......
......@@ -29,49 +29,49 @@ public class ShiftUtil {
return DateUtil.parse(currentDateStr + " " + SHIFT_A_START, "yyyy-MM-dd HH:mm:ss");
}
/**
* 获取A班结束时间
* 判断是否属于A班范围内
*
* @param date
* @return
*/
public static Date getShiftAEndDate() {
String currentDateStr = DateUtil.format(new Date(), "yyyy-MM-dd");
return DateUtil.parse(currentDateStr + " " + SHIFT_A_END, "yyyy-MM-dd HH:mm:ss");
public static boolean isShiftA(Date date) {
String dateStr = DateUtil.format(date, "HH:mm:ss");
DateTime endTime = DateUtil.parse(dateStr, "HH:mm:ss");
DateTime shiftAStartTime = DateUtil.parse(SHIFT_A_START, "HH:mm:ss");
DateTime shiftAEndTime = DateUtil.parse(SHIFT_A_END, "HH:mm:ss");
return endTime.getTime() >= shiftAStartTime.getTime() && endTime.getTime() < shiftAEndTime.getTime();
}
/**
* 判断是否属于A班
* 判断是否属于0点到8点半
*
* @param date
* @return
*/
public static boolean isA(Date date) {
return date.getTime() >= getShiftAStartDate().getTime() && date.getTime() < getShiftAEndDate().getTime();
public static boolean isNextDay(Date date) {
String dateStr = DateUtil.format(date, "HH:mm:ss");
DateTime time = DateUtil.parse(dateStr, "HH:mm:ss");
DateTime startTime = DateUtil.parse(START, "HH:mm:ss");
DateTime endTime = DateUtil.parse(SHIFT_A_START, "HH:mm:ss");
return time.getTime() >= startTime.getTime() && time.getTime() < endTime.getTime();
}
public static boolean isB(Date date) {
Date startDate = getShiftAEndDate();
DateTime endDate = DateUtil.offsetDay(getShiftAStartDate(), 1);
return date.getTime() >= startDate.getTime() && date.getTime() < endDate.getTime();
}
public static Date getShiftASelectDate() {
String currentDateStr = DateUtil.format(new Date(), "yyyy-MM-dd");
return DateUtil.parse(currentDateStr + " " + START, "yyyy-MM-dd 00:00:00");
/**
* 获取当前日期
*
* @param date
* @return
*/
public static String getDateStr(Date date) {
if (!isShiftA(date)) {
if (isNextDay(date)) {
DateTime dateTime = DateUtil.offsetDay(date, -1);
return DateUtil.format(dateTime, "yyyy-MM-dd");
}
public static Date getShiftBSelectDate(Date paramDate) {
String currentDateStr = DateUtil.format(new Date(), "yyyy-MM-dd");
Date currentDate = DateUtil.parse(currentDateStr + " " + START, "yyyy-MM-dd 00:00:00");
Date shiftAStartDate = getShiftAStartDate();
String paramDateStr = DateUtil.format(paramDate, "yyyy-MM-dd");
DateTime resultDate = DateUtil.parse(paramDateStr, "yyyy-MM-dd");
if (paramDate.getTime() >= currentDate.getTime() && paramDate.getTime() < shiftAStartDate.getTime()) {
return DateUtil.offsetDay(resultDate, -1);
}
return resultDate;
return DateUtil.format(date, "yyyy-MM-dd");
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!