| | |
| | | } |
| | | |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(Integer.valueOf(param.getTaskNo())); |
| | | String costTime = resolveCostTime(wrkMast, wrkDetls); |
| | | |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("taskNo", param.getTaskNo()); |
| | | map.put("ioType", wrkMast.getIoType()); |
| | | map.put("costTime", costTime); |
| | | map.put("costTimeStr", costTime); |
| | | map.put("wrkDetls", wrkDetls); |
| | | Integer count = 0; |
| | | String supp = ""; |
| | | //该订单累计入库件数 |
| | | if(wrkMast.getIoType()<100){ |
| | | List<WrkMast> orderNo = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", wrkMast.getUserNo())); |
| | | //该订单累计入出库件数 |
| | | 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(); |
| | | } |
| | | List<WrkMastLog> userNo = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", wrkMast.getUserNo())); |
| | | if (userNo != null && userNo.size() > 0) { |
| | | count = userNo.size()+count; |
| | | count = userNo.size()+count+1; |
| | | } |
| | | supp = count + ""; |
| | | }else { |
| | | supp = wrkDetls.get(0).getSupp(); |
| | | if (userNo != null && userNo.size() > 0) { |
| | | count = userNo.size()+1; |
| | | } |
| | | supp = count + ""; |
| | | } |
| | | map.put("supp", supp); |
| | | |
| | | //耗时 |
| | | String costTime = resolveCostTime(wrkMast, wrkDetls); |
| | | map.put("costTime", costTime); |
| | | |
| | | return R.ok().add(map); |
| | | } |
| | | |
| | | private String resolveCostTime(WrkMast wrkMast, List<WrkDetl> wrkDetls) { |
| | | Date createTime = resolveOrderCreateTime(resolveOrderNo(wrkMast, wrkDetls)); |
| | | if (createTime == null) { |
| | | if (wrkMast == null || wrkMast.getIoType() == null) { |
| | | return "0"; |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | |
| | | private Date resolveInboundTaskCreateTime(WrkMast wrkMast, List<WrkDetl> wrkDetls) { |
| | | 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); |
| | | } |
| | | |
| | | private Date resolveUserNoCreateTime(String userNo) { |
| | | if (Cools.isEmpty(userNo)) { |
| | | return null; |
| | | } |
| | | 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) { |
| | |
| | | minCreateTime(wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", orderNo))), |
| | | minCreateTime(wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>().eq("order_no", orderNo))) |
| | | ); |
| | | if (historyCreateTime != null) { |
| | | return historyCreateTime; |
| | | } |
| | | |
| | | return minDate( |
| | | 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 (wrkMast == null) { |
| | | return null; |
| | | } |
| | | return firstDate(wrkMast.getAppeTime(), wrkMast.getIoTime(), wrkMast.getModiTime()); |
| | | } |
| | | |
| | | private Date firstDate(Date... dates) { |
| | | if (dates == null || dates.length == 0) { |
| | | return null; |
| | | } |
| | | for (Date date : dates) { |
| | | if (date != null) { |
| | | return date; |
| | | } |
| | | } |
| | | return null; |
| | | return minDate(minDate(wrkMast.getAppeTime(), wrkMast.getIoTime()), wrkMast.getModiTime()); |
| | | } |
| | | |
| | | private Date minCreateTime(List<?> list) { |
| | |
| | | private Date resolveCreateTime(Object item) { |
| | | if (item instanceof WrkMast) { |
| | | WrkMast wrkMast = (WrkMast) item; |
| | | return firstDate(wrkMast.getAppeTime(), wrkMast.getIoTime(), wrkMast.getModiTime()); |
| | | return minDate(minDate(wrkMast.getAppeTime(), wrkMast.getIoTime()), wrkMast.getModiTime()); |
| | | } |
| | | if (item instanceof WrkMastLog) { |
| | | WrkMastLog wrkMastLog = (WrkMastLog) item; |
| | | return firstDate(wrkMastLog.getAppeTime(), wrkMastLog.getIoTime(), wrkMastLog.getModiTime()); |
| | | return minDate(minDate(wrkMastLog.getAppeTime(), wrkMastLog.getIoTime()), wrkMastLog.getModiTime()); |
| | | } |
| | | if (item instanceof WrkDetl) { |
| | | WrkDetl wrkDetl = (WrkDetl) item; |
| | | return firstDate(wrkDetl.getAppeTime(), wrkDetl.getIoTime(), wrkDetl.getModiTime()); |
| | | return minDate(minDate(wrkDetl.getAppeTime(), wrkDetl.getIoTime()), wrkDetl.getModiTime()); |
| | | } |
| | | if (item instanceof WrkDetlLog) { |
| | | WrkDetlLog wrkDetlLog = (WrkDetlLog) item; |
| | | return firstDate(wrkDetlLog.getAppeTime(), wrkDetlLog.getIoTime(), wrkDetlLog.getModiTime()); |
| | | return minDate(minDate(wrkDetlLog.getAppeTime(), wrkDetlLog.getIoTime()), wrkDetlLog.getModiTime()); |
| | | } |
| | | return null; |
| | | } |