Commit 02d556c13fa3242f6a7726cef57e2cfe20a40e29
1 parent
ebe60db4
入库任务和出库单失败后手动回传
Showing
8 changed files
with
149 additions
and
13 deletions
src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java
... | ... | @@ -626,7 +626,7 @@ public class MesReceiptController extends BaseController { |
626 | 626 | shipmentHeader.setErrorMsg("出库回传:接口地址错误或返回为空"); |
627 | 627 | shipmentHeader.setPushSuccessStatus(2); |
628 | 628 | shipmentHeaderService.updateById(shipmentHeader); |
629 | - return true; | |
629 | + return false; | |
630 | 630 | } |
631 | 631 | shipmentHeader.setPushErrorCount(shipmentHeader.getPushErrorCount()+1); |
632 | 632 | if (!returnInfo.hasError()) { |
... | ... |
src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
... | ... | @@ -436,17 +436,19 @@ public class RyTask extends BaseController { |
436 | 436 | public void gcBill(){ |
437 | 437 | |
438 | 438 | LambdaQueryWrapper<ReceiptHeader> query = Wrappers.lambdaQuery(); |
439 | - query.eq(ReceiptHeader::getFirstStatus,QuantityConstant.RECEIPT_HEADER_RETURN) | |
439 | + query .eq(ReceiptHeader::getFirstStatus,QuantityConstant.RECEIPT_HEADER_RETURN) | |
440 | 440 | .eq(ReceiptHeader::getLastStatus,QuantityConstant.RECEIPT_HEADER_RETURN) |
441 | + .eq(ReceiptHeader::getPushSuccessStatus,1) | |
441 | 442 | .eq(ReceiptHeader::getDeleted, true) |
442 | - .last("LIMIT 10"); | |
443 | + .last("LIMIT 1"); | |
443 | 444 | List<ReceiptHeader> receiptHeaders = receiptHeaderService.list(query); |
444 | 445 | |
445 | 446 | LambdaQueryWrapper<ShipmentHeader> query1 = Wrappers.lambdaQuery(); |
446 | - query1.eq(ShipmentHeader::getLastStatus,QuantityConstant.RECEIPT_HEADER_RETURN) | |
447 | + query1 .eq(ShipmentHeader::getFirstStatus,QuantityConstant.RECEIPT_HEADER_RETURN) | |
447 | 448 | .eq(ShipmentHeader::getLastStatus,QuantityConstant.RECEIPT_HEADER_RETURN) |
449 | + .eq(ShipmentHeader::getPushSuccessStatus,1) | |
448 | 450 | .eq(ShipmentHeader::getDeleted, false) |
449 | - .last("LIMIT 10"); | |
451 | + .last("LIMIT 1"); | |
450 | 452 | List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(query1); |
451 | 453 | |
452 | 454 | for (ReceiptHeader receiptHeader : receiptHeaders) { |
... | ... | @@ -477,6 +479,51 @@ public class RyTask extends BaseController { |
477 | 479 | } |
478 | 480 | } |
479 | 481 | |
482 | + public void gcBill2(){ | |
483 | + LambdaQueryWrapper<ReceiptHeader> query = Wrappers.lambdaQuery(); | |
484 | + query.eq(ReceiptHeader::getFirstStatus,QuantityConstant.RECEIPT_HEADER_POSTING) | |
485 | + .eq(ReceiptHeader::getLastStatus,QuantityConstant.RECEIPT_HEADER_POSTING) | |
486 | + .eq(ReceiptHeader::getDeleted, true) | |
487 | + .last("LIMIT 1"); | |
488 | + List<ReceiptHeader> receiptHeaders = receiptHeaderService.list(query); | |
489 | + | |
490 | + LambdaQueryWrapper<ShipmentHeader> query1 = Wrappers.lambdaQuery(); | |
491 | + query1.eq(ShipmentHeader::getLastStatus,QuantityConstant.SHIPMENT_HEADER_COMPLETED) | |
492 | + .eq(ShipmentHeader::getLastStatus,QuantityConstant.SHIPMENT_HEADER_COMPLETED) | |
493 | + .eq(ShipmentHeader::getDeleted, false) | |
494 | + .last("LIMIT 1"); | |
495 | + List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(query1); | |
496 | + | |
497 | + | |
498 | + for (ReceiptHeader receiptHeader : receiptHeaders) { | |
499 | + try{ | |
500 | + //新增入库单历史 | |
501 | + receiptHeaderHistoryService.saveById(String.valueOf(receiptHeader.getId()), "回传"); | |
502 | + receiptHeader.setDeleted(false); | |
503 | + if (!receiptHeaderService.updateById(receiptHeader)) { | |
504 | + throw new ServiceException("删除头表失败"); | |
505 | + } | |
506 | + }catch (Exception e){ | |
507 | + e.printStackTrace(); | |
508 | + } | |
509 | + } | |
510 | + | |
511 | + for (ShipmentHeader shipmentHeader : shipmentHeaders) { | |
512 | + try{ | |
513 | + //新增入库单历史 | |
514 | + shipmentHeaderHistoryService.saveById(String.valueOf(shipmentHeader.getId()), "回传"); | |
515 | + shipmentHeader.setDeleted(true); | |
516 | + if (!shipmentHeaderService.updateById(shipmentHeader)) { | |
517 | + throw new ServiceException("删除头表失败"); | |
518 | + } | |
519 | + }catch (Exception e){ | |
520 | + e.printStackTrace(); | |
521 | + } | |
522 | + | |
523 | + } | |
524 | + } | |
525 | + | |
526 | + | |
480 | 527 | public void restoreHistoryDate(){ |
481 | 528 | receiptRestore(); |
482 | 529 | shipmentRestore(); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java
... | ... | @@ -583,10 +583,22 @@ public class ShipmentHeaderController extends BaseController { |
583 | 583 | if (shipmentHeader == null) { |
584 | 584 | return AjaxResult.error("没有找到出库单"); |
585 | 585 | } |
586 | - //shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_RETURN); | |
587 | - //shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_RETURN); | |
588 | - //shipmentHeaderService.updateById(shipmentHeader); | |
589 | - return AjaxResult.success("回传成功"); | |
586 | + if (shipmentHeader.getPushSuccessStatus()!=2) { | |
587 | + return AjaxResult.error("只有回传错误才能手动回传!"); | |
588 | + } | |
589 | + if (("MOM".equals(shipmentHeader.getCreatedBy()) || "merge".equals(shipmentHeader.getShipmentType()) || "299".equals(shipmentHeader.getShipmentType()))) { | |
590 | + try { | |
591 | + shipmentHeader.setWarehouse("035"); | |
592 | + if (mesReceiptController.postE_Rd_Out(shipmentHeader)) { | |
593 | + return AjaxResult.success("回传成功"); | |
594 | + } | |
595 | + } catch (Exception e) { | |
596 | + e.printStackTrace(); | |
597 | + } | |
598 | + }else { | |
599 | + return AjaxResult.error("无需回传"); | |
600 | + } | |
601 | + return AjaxResult.error("回传失败"); | |
590 | 602 | } |
591 | 603 | |
592 | 604 | |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeaderHistory/controller/ShipmentHeaderHistoryController.java
... | ... | @@ -64,13 +64,14 @@ public class ShipmentHeaderHistoryController extends BaseController |
64 | 64 | @Log(title = "出库-出库单历史", operating="查看历史出库主单", action = BusinessType.GRANT) |
65 | 65 | @PostMapping("/list") |
66 | 66 | @ResponseBody |
67 | - public TableDataInfo list(ShipmentHeaderHistory shipmentHeader, String createdBegin, String createdEnd, String deliveryDate, String startDate) { | |
67 | + public TableDataInfo list(ShipmentHeaderHistory shipmentHeader, String createdBegin, String createdEnd, String deliveryDate, String startDate,String importDate) { | |
68 | 68 | LambdaQueryWrapper<ShipmentHeaderHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
69 | 69 | PageDomain pageDomain = TableSupport.buildPageRequest(); |
70 | 70 | Integer pageNum = pageDomain.getPageNum(); |
71 | 71 | Integer pageSize = pageDomain.getPageSize(); |
72 | 72 | Date date1 = null; |
73 | 73 | Date date2 = null; |
74 | + Date date3 = null; | |
74 | 75 | try { |
75 | 76 | if (StringUtils.isNotNull(deliveryDate)) { |
76 | 77 | date1 = new SimpleDateFormat("yyyy-MM-dd").parse(deliveryDate); |
... | ... | @@ -89,7 +90,14 @@ public class ShipmentHeaderHistoryController extends BaseController |
89 | 90 | } |
90 | 91 | } catch (java.text.ParseException e) { |
91 | 92 | } |
92 | - | |
93 | + try { | |
94 | + if (StringUtils.isNotNull(importDate)) { | |
95 | + date3 = new SimpleDateFormat("yyyy-MM-dd").parse(importDate); | |
96 | + } else { | |
97 | + date3 = null; | |
98 | + } | |
99 | + } catch (java.text.ParseException e) { | |
100 | + } | |
93 | 101 | Date startTime1 = date1; |
94 | 102 | Date endTime1 = null; |
95 | 103 | if(startTime1!=null){ |
... | ... | @@ -103,6 +111,12 @@ public class ShipmentHeaderHistoryController extends BaseController |
103 | 111 | //获取当前时间 |
104 | 112 | endTime2 = DateUtils.dateAddNum(startTime2, 1,0,-1); |
105 | 113 | } |
114 | + Date startTime3 = date3; | |
115 | + Date endTime3 = null; | |
116 | + if (startTime3 != null) { | |
117 | + //获取当前时间 | |
118 | + endTime3 = DateUtils.dateAddNum(startTime3, 1, 0, -1); | |
119 | + } | |
106 | 120 | |
107 | 121 | lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),ShipmentHeaderHistory::getCreated, createdBegin) |
108 | 122 | .le(StringUtils.isNotEmpty(createdEnd), ShipmentHeaderHistory::getCreated, createdEnd) |
... | ... | @@ -117,11 +131,14 @@ public class ShipmentHeaderHistoryController extends BaseController |
117 | 131 | .like(StringUtils.isNotEmpty(shipmentHeader.getShipmentNote()), ShipmentHeaderHistory::getShipmentNote, shipmentHeader.getShipmentNote()) |
118 | 132 | .like(StringUtils.isNotEmpty(shipmentHeader.getWorkshop()),ShipmentHeaderHistory::getWorkshop,shipmentHeader.getWorkshop()) |
119 | 133 | .eq(StringUtils.isNotEmpty(shipmentHeader.getShipmentType()),ShipmentHeaderHistory::getShipmentType,shipmentHeader.getShipmentType()) |
134 | + .like(StringUtils.isNotEmpty(shipmentHeader.getProcessType()), ShipmentHeaderHistory::getProcessType, shipmentHeader.getProcessType()) | |
120 | 135 | .eq(StringUtils.isNotEmpty(shipmentHeader.getReferCode()), ShipmentHeaderHistory::getReferCode, shipmentHeader.getReferCode()) |
136 | + .like(StringUtils.isNotEmpty(shipmentHeader.getTransferWarehouseName()), ShipmentHeaderHistory::getTransferWarehouseName, shipmentHeader.getTransferWarehouseName()) | |
121 | 137 | .eq(StringUtils.isNotEmpty(shipmentHeader.getReferCodeType()), ShipmentHeaderHistory::getReferCodeType, shipmentHeader.getReferCodeType()) |
122 | 138 | .like(StringUtils.isNotEmpty(shipmentHeader.getOrigin()), ShipmentHeaderHistory::getOrigin, shipmentHeader.getOrigin()) |
123 | 139 | .between(StringUtils.isNotNull(startTime1), ShipmentHeaderHistory::getRequestedDeliveryDate, startTime1,endTime1) |
124 | 140 | .between(StringUtils.isNotNull(startTime2), ShipmentHeaderHistory::getRequestedStartDate, startTime2,endTime2) |
141 | + .between(StringUtils.isNotNull(startTime3), ShipmentHeaderHistory::getDailyScheduleImportDate, startTime3, endTime3) | |
125 | 142 | .eq(shipmentHeader.getFirstStatus()!=null, ShipmentHeaderHistory::getFirstStatus, shipmentHeader.getFirstStatus()) |
126 | 143 | .eq(shipmentHeader.getLastStatus()!=null, ShipmentHeaderHistory::getLastStatus, shipmentHeader.getLastStatus()) |
127 | 144 | .eq(StringUtils.isNotNull(shipmentHeader.getPushSuccessStatus()),ShipmentHeaderHistory::getPushSuccessStatus,shipmentHeader.getPushSuccessStatus()) |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java
... | ... | @@ -35,6 +35,7 @@ import com.huaheng.pc.task.taskDetail.domain.TaskDetail; |
35 | 35 | import com.huaheng.pc.task.taskDetail.service.TaskDetailService; |
36 | 36 | import com.huaheng.pc.task.taskHeader.domain.TaskHeader; |
37 | 37 | import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper; |
38 | +import com.huaheng.pc.task.taskHeader.service.ReceiptTaskService; | |
38 | 39 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
39 | 40 | import com.huaheng.pc.task.taskHeader.service.WorkTaskService; |
40 | 41 | import io.swagger.annotations.ApiOperation; |
... | ... | @@ -74,6 +75,9 @@ public class TaskHeaderController extends BaseController { |
74 | 75 | @Resource |
75 | 76 | private ContainerTypeService containerTypeService; |
76 | 77 | |
78 | + @Resource | |
79 | + private ReceiptTaskService receiptTaskService; | |
80 | + | |
77 | 81 | |
78 | 82 | private String prefix = "task/taskHeader"; |
79 | 83 | |
... | ... | @@ -204,6 +208,26 @@ public class TaskHeaderController extends BaseController { |
204 | 208 | return taskHeaderService.completeTaskByWMS(Convert.toIntArray(taskId), null); |
205 | 209 | } |
206 | 210 | |
211 | + | |
212 | + /** | |
213 | + * 回传erp | |
214 | + */ | |
215 | + //@RequiresPermissions("task:taskHeader:complete") | |
216 | + //@Log(title = "任务-任务管理", operating = "PC完成立库任务", action = BusinessType.UPDATE) | |
217 | + @PostMapping( "/backERP") | |
218 | + @ResponseBody | |
219 | + public AjaxResult backERP(String taskId){ | |
220 | + if (StringUtils.isEmpty(taskId)){ | |
221 | + return AjaxResult.error("taskId不能为空"); | |
222 | + } | |
223 | + TaskHeader taskHeader = taskHeaderService.getById(taskId); | |
224 | + if (taskHeader==null) { | |
225 | + return AjaxResult.error("找不到该任务"+taskId); | |
226 | + } | |
227 | + return receiptTaskService.backMomReceipt(taskHeader); | |
228 | + } | |
229 | + | |
230 | + | |
207 | 231 | /** |
208 | 232 | * 删除立库任务 |
209 | 233 | */ |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
... | ... | @@ -602,11 +602,14 @@ public class ReceiptTaskService { |
602 | 602 | taskHeader.setBackMoM(3); |
603 | 603 | receiptHeader.setErrorMsg(returnInfo.getMsg()); |
604 | 604 | receiptHeader.setPushSuccessStatus(2); |
605 | + taskHeaderService.updateById(taskHeader); | |
606 | + receiptHeaderService.updateById(receiptHeader); | |
607 | + return AjaxResult.error("回传失败"); | |
605 | 608 | } |
606 | 609 | taskHeaderService.updateById(taskHeader); |
607 | 610 | receiptHeaderService.updateById(receiptHeader); |
608 | 611 | } |
609 | 612 | } |
610 | - return AjaxResult.success("回传MOM成功"); | |
613 | + return AjaxResult.success("回传成功"); | |
611 | 614 | } |
612 | 615 | } |
... | ... |
src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
... | ... | @@ -50,6 +50,12 @@ |
50 | 50 | 通知单号:<input type="text" name="noticeNo"/> |
51 | 51 | </li> |
52 | 52 | <li> |
53 | + 调整单号:<input type="text" name="processType"/> | |
54 | + </li> | |
55 | + <li> | |
56 | + 调入仓库名称:<input type="text" name="transferWarehouseName"/> | |
57 | + </li> | |
58 | + <li> | |
53 | 59 | 头 状 态:<select name="firstStatus" |
54 | 60 | th:with="firstStatus=${@dict.getType('shipmentHeaderStatus')}"> |
55 | 61 | <option value="">所有</option> |
... | ... | @@ -89,6 +95,11 @@ |
89 | 95 | 备注:<input type="text" name="shipmentNote"/> |
90 | 96 | </li> |
91 | 97 | <li class="time"> |
98 | + | |
99 | + <label>日计划导入日期: </label> | |
100 | + <input type="text" class="time-input" id="dailyScheduleImportDate" | |
101 | + placeholder="日计划导入日期" | |
102 | + name="importDate" autocomplete="off"/> | |
92 | 103 | <label>计划开工日期: </label> |
93 | 104 | <input type="text" class="time-input" id="requestedStartDate" |
94 | 105 | placeholder="计划开工日期" |
... | ... | @@ -256,6 +267,15 @@ |
256 | 267 | var shipmentId = ""; |
257 | 268 | var shipmentCode = ""; |
258 | 269 | |
270 | + //日计划导入日期 | |
271 | + layui.use('laydate', function () { | |
272 | + var laydate = layui.laydate; | |
273 | + var day1 = new Date(); | |
274 | + day1.setTime(day1.getTime() + 24 * 60 * 60 * 1000 * 1); | |
275 | + // laydate.render({ elem: '#requestedDeliveryDate', theme: 'molv',value: new Date(day1), isInitValue: true}); | |
276 | + laydate.render({elem: '#dailyScheduleImportDate', theme: 'molv'}); | |
277 | + }); | |
278 | + | |
259 | 279 | //计划完工日期 |
260 | 280 | layui.use('laydate', function () { |
261 | 281 | var laydate = layui.laydate; |
... | ... | @@ -402,6 +422,7 @@ |
402 | 422 | // return actions.join(''); |
403 | 423 | // } |
404 | 424 | // }, |
425 | + | |
405 | 426 | { |
406 | 427 | field: 'warehouseCode', |
407 | 428 | title: '仓库', |
... | ... |
src/main/resources/templates/task/taskHeader/taskHeader.html
... | ... | @@ -160,6 +160,9 @@ |
160 | 160 | actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a> '); |
161 | 161 | actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); |
162 | 162 | } |
163 | + if (row.status >= 100 && row.backMoM===3) { | |
164 | + actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="backERP(\'' + row.id + '\')"><i class="fa fa-check"></i>回传</a>'); | |
165 | + } | |
163 | 166 | return actions.join(''); |
164 | 167 | } |
165 | 168 | }, |
... | ... | @@ -321,7 +324,7 @@ |
321 | 324 | }, |
322 | 325 | { |
323 | 326 | field : 'pushErrorCount', |
324 | - title : '回传次数', | |
327 | + title : '回传错误次数', | |
325 | 328 | visible:true, |
326 | 329 | }, |
327 | 330 | { |
... | ... | @@ -555,6 +558,15 @@ |
555 | 558 | }); |
556 | 559 | } |
557 | 560 | |
561 | + /*任务列表-回传*/ | |
562 | + function backERP(taskId) { | |
563 | + $.modal.confirm("确定回传MOM?", function() { | |
564 | + var url = ctx + 'task/taskHeader/backERP'; | |
565 | + var data = { "taskId" : taskId }; | |
566 | + $.operate.post(url, data); | |
567 | + }); | |
568 | + } | |
569 | + | |
558 | 570 | /*任务列表-批量完成任务*/ |
559 | 571 | function batchComplete() { |
560 | 572 | //var rows = $.common.isEmpty($.table._option.taskId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.taskId); |
... | ... |