Commit efff988671f94c7488726601336d159b5a3b2e0c

Authored by 谭毅彬
2 parents b3ece8e4 75336c9a

Merge branch 'develop' of http://172.16.29.40:8010/wms/wms4.git into develop

ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
@@ -175,7 +175,7 @@ @@ -175,7 +175,7 @@
175 </template> 175 </template>
176 176
177 <span slot="action" slot-scope="text, record"> 177 <span slot="action" slot-scope="text, record">
178 - <a-popconfirm v-has="'receiptHeader:back'" v-show="record.lastStatus == 800" title="确定回传吗?" @confirm="() => hanleBack(record)"> 178 + <a-popconfirm v-has="'receiptHeader:back'" v-show="record.lastStatus == 800 && record.referCode != null" title="确定回传吗?" @confirm="() => hanleBack(record)">
179 <a><a-button type="default">回传</a-button></a> 179 <a><a-button type="default">回传</a-button></a>
180 </a-popconfirm> 180 </a-popconfirm>
181 <a-popconfirm v-has="'receiptHeader:crossDocking'" v-show="record.lastStatus == 0" title="确定越库吗?" @confirm="() => hanleCross(record)"> 181 <a-popconfirm v-has="'receiptHeader:crossDocking'" v-show="record.lastStatus == 0" title="确定越库吗?" @confirm="() => hanleCross(record)">
@@ -329,6 +329,11 @@ export default { @@ -329,6 +329,11 @@ export default {
329 dataIndex: 'remark' 329 dataIndex: 'remark'
330 }, 330 },
331 { 331 {
  332 + title: '回传失败原因',
  333 + align: "center",
  334 + dataIndex: 'backErrorMsg'
  335 + },
  336 + {
332 title: '创建人', 337 title: '创建人',
333 align: "center", 338 align: "center",
334 dataIndex: 'createBy' 339 dataIndex: 'createBy'
ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue
@@ -204,7 +204,7 @@ @@ -204,7 +204,7 @@
204 <span slot="action" slot-scope="text, record"> 204 <span slot="action" slot-scope="text, record">
205 <a v-if="record.firstStatus == '0' && flowOff == '1'" @click="createAudit(record)"><a-button type="primary">提交审核</a-button><a-divider type="vertical"/></a> 205 <a v-if="record.firstStatus == '0' && flowOff == '1'" @click="createAudit(record)"><a-button type="primary">提交审核</a-button><a-divider type="vertical"/></a>
206 <a v-if="record.nextAuditor == username && flowOff == '1' " @click="audit(record)"><a-button type="primary">审核</a-button><a-divider type="vertical"/></a> 206 <a v-if="record.nextAuditor == username && flowOff == '1' " @click="audit(record)"><a-button type="primary">审核</a-button><a-divider type="vertical"/></a>
207 - <a-popconfirm v-has="'shipmentHeader:back'" v-if="record.lastStatus == 800" title="确定回传吗?" @confirm="() => hanleBack(record)"> 207 + <a-popconfirm v-has="'shipmentHeader:back'" v-if="record.lastStatus == 800 && record.referCode != null" title="确定回传吗?" @confirm="() => hanleBack(record)">
208 <a><a-button type="default">回传</a-button></a> 208 <a><a-button type="default">回传</a-button></a>
209 </a-popconfirm> 209 </a-popconfirm>
210 <a v-if="((record.firstStatus >= 15 && record.firstStatus != '20' && record.lastStatus < 800)) 210 <a v-if="((record.firstStatus >= 15 && record.firstStatus != '20' && record.lastStatus < 800))
@@ -368,6 +368,11 @@ export default { @@ -368,6 +368,11 @@ export default {
368 dataIndex: 'remark' 368 dataIndex: 'remark'
369 }, 369 },
370 { 370 {
  371 + title: '回传失败原因',
  372 + align: "center",
  373 + dataIndex: 'backErrorMsg'
  374 + },
  375 + {
371 title: '创建人', 376 title: '创建人',
372 align: "center", 377 align: "center",
373 dataIndex: 'createBy' 378 dataIndex: 'createBy'
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
@@ -436,20 +436,22 @@ public class ErpServiceImpl implements IErpService { @@ -436,20 +436,22 @@ public class ErpServiceImpl implements IErpService {
436 throw new JeecgBootException("接口地址错误或返回为空"); 436 throw new JeecgBootException("接口地址错误或返回为空");
437 } 437 }
438 Result result = JSON.parseObject(body, Result.class); 438 Result result = JSON.parseObject(body, Result.class);
  439 + ReceiptHeader receiptHeader1 = new ReceiptHeader();
  440 + receiptHeader1.setId(receiptHeader.getId());
439 if (result.getCode() != QuantityConstant.HTTP_OK) { 441 if (result.getCode() != QuantityConstant.HTTP_OK) {
440 - receiptHeader.setBackErrorMsg(result.getMessage());  
441 - receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN_ERROR);  
442 - receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN_ERROR);  
443 - receiptHeaderService.updateById(receiptHeader); 442 + receiptHeader1.setBackErrorMsg(result.getMessage());
  443 + receiptHeader1.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN_ERROR);
  444 + receiptHeader1.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN_ERROR);
  445 + receiptHeaderService.updateById(receiptHeader1);
444 return Result.error(result.getMessage()); 446 return Result.error(result.getMessage());
445 } 447 }
446 - receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);  
447 - receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);  
448 - boolean success = receiptHeaderService.updateById(receiptHeader); 448 + receiptHeader1.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
  449 + receiptHeader1.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
  450 + boolean success = receiptHeaderService.updateById(receiptHeader1);
449 if (!success) { 451 if (!success) {
450 throw new JeecgBootException("回传入库单失败, 更新入库单头失败"); 452 throw new JeecgBootException("回传入库单失败, 更新入库单头失败");
451 } 453 }
452 - if (!receiptHeaderService.delMain(receiptHeader.getId().toString(), QuantityConstant.BACK_DELETE_RECEIPT)) { 454 + if (!receiptHeaderService.delMain(receiptHeader1.getId().toString(), QuantityConstant.BACK_DELETE_RECEIPT)) {
453 throw new JeecgBootException("回传入库单失败, 放进入库历史表单失败"); 455 throw new JeecgBootException("回传入库单失败, 放进入库历史表单失败");
454 } 456 }
455 return Result.ok("回传入库单成功"); 457 return Result.ok("回传入库单成功");
@@ -476,16 +478,22 @@ public class ErpServiceImpl implements IErpService { @@ -476,16 +478,22 @@ public class ErpServiceImpl implements IErpService {
476 throw new JeecgBootException("接口地址错误或返回为空"); 478 throw new JeecgBootException("接口地址错误或返回为空");
477 } 479 }
478 Result result = JSON.parseObject(body, Result.class); 480 Result result = JSON.parseObject(body, Result.class);
  481 + ShipmentHeader shipmentHeader1 = new ShipmentHeader();
  482 + shipmentHeader1.setId(shipmentHeader.getId());
479 if (result.getCode() != QuantityConstant.HTTP_OK) { 483 if (result.getCode() != QuantityConstant.HTTP_OK) {
  484 + shipmentHeader1.setBackErrorMsg(result.getMessage());
  485 + shipmentHeader1.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_RETURN_ERROR);
  486 + shipmentHeader1.setLastStatus(QuantityConstant.SHIPMENT_HEADER_RETURN_ERROR);
  487 + shipmentHeaderService.updateById(shipmentHeader1);
480 return Result.error(result.getMessage()); 488 return Result.error(result.getMessage());
481 } 489 }
482 - shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_RETURN);  
483 - shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_RETURN);  
484 - boolean success = shipmentHeaderService.updateById(shipmentHeader); 490 + shipmentHeader1.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_RETURN);
  491 + shipmentHeader1.setLastStatus(QuantityConstant.SHIPMENT_HEADER_RETURN);
  492 + boolean success = shipmentHeaderService.updateById(shipmentHeader1);
485 if (!success) { 493 if (!success) {
486 throw new JeecgBootException("回传出库单失败, 更新出库单头失败"); 494 throw new JeecgBootException("回传出库单失败, 更新出库单头失败");
487 } 495 }
488 - if (!shipmentHeaderService.delMain(shipmentHeader.getId().toString(), QuantityConstant.BACK_DELETE_RECEIPT)) { 496 + if (!shipmentHeaderService.delMain(shipmentHeader1.getId().toString(), QuantityConstant.BACK_DELETE_RECEIPT)) {
489 throw new JeecgBootException("回传出库单失败, 放进出库历史表单失败"); 497 throw new JeecgBootException("回传出库单失败, 放进出库历史表单失败");
490 } 498 }
491 return Result.ok("回传出库单成功"); 499 return Result.ok("回传出库单成功");
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java
@@ -42,8 +42,8 @@ public class ErpTask implements Job { @@ -42,8 +42,8 @@ public class ErpTask implements Job {
42 @Override 42 @Override
43 public void execute(JobExecutionContext context) throws JobExecutionException { 43 public void execute(JobExecutionContext context) throws JobExecutionException {
44 LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); 44 LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
45 - receiptHeaderLambdaQueryWrapper.eq(ReceiptHeader::getFirstStatus, QuantityConstant.RECEIPT_HEADER_COMPLETED).eq(ReceiptHeader::getLastStatus,  
46 - QuantityConstant.RECEIPT_HEADER_COMPLETED); 45 + receiptHeaderLambdaQueryWrapper.in(ReceiptHeader::getLastStatus, QuantityConstant.RECEIPT_HEADER_COMPLETED, QuantityConstant.RECEIPT_HEADER_RETURN_ERROR)
  46 + .isNotNull(ReceiptHeader::getReferCode);
47 List<ReceiptHeader> receiptHeaderList = receiptHeaderService.list(receiptHeaderLambdaQueryWrapper); 47 List<ReceiptHeader> receiptHeaderList = receiptHeaderService.list(receiptHeaderLambdaQueryWrapper);
48 for (ReceiptHeader receiptHeader : receiptHeaderList) { 48 for (ReceiptHeader receiptHeader : receiptHeaderList) {
49 try { 49 try {
@@ -52,10 +52,9 @@ public class ErpTask implements Job { @@ -52,10 +52,9 @@ public class ErpTask implements Job {
52 e.printStackTrace(); 52 e.printStackTrace();
53 } 53 }
54 } 54 }
55 -  
56 LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); 55 LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
57 - shipmentHeaderLambdaQueryWrapper.eq(ShipmentHeader::getFirstStatus, QuantityConstant.RECEIPT_HEADER_COMPLETED).eq(ShipmentHeader::getLastStatus,  
58 - QuantityConstant.RECEIPT_HEADER_COMPLETED); 56 + shipmentHeaderLambdaQueryWrapper.in(ShipmentHeader::getLastStatus, QuantityConstant.SHIPMENT_HEADER_COMPLETED, QuantityConstant.SHIPMENT_HEADER_RETURN_ERROR)
  57 + .isNotNull(ShipmentHeader::getReferCode);
59 List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(shipmentHeaderLambdaQueryWrapper); 58 List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(shipmentHeaderLambdaQueryWrapper);
60 for (ShipmentHeader shipmentHeader : shipmentHeaderList) { 59 for (ShipmentHeader shipmentHeader : shipmentHeaderList) {
61 try { 60 try {
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentHeader.java
@@ -92,6 +92,10 @@ public class ShipmentHeader implements Serializable { @@ -92,6 +92,10 @@ public class ShipmentHeader implements Serializable {
92 /** 出库口 */ 92 /** 出库口 */
93 @TableField(exist = false) 93 @TableField(exist = false)
94 private String toPort; 94 private String toPort;
  95 + /** 回传失败原因 */
  96 + @Excel(name = "回传失败原因", width = 15)
  97 + @ApiModelProperty(value = "回传失败原因")
  98 + private String backErrorMsg;
95 /** 备用字段1 */ 99 /** 备用字段1 */
96 @Excel(name = "备用字段1", width = 15) 100 @Excel(name = "备用字段1", width = 15)
97 @ApiModelProperty(value = "备用字段1") 101 @ApiModelProperty(value = "备用字段1")
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -1078,6 +1078,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea @@ -1078,6 +1078,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1078 break; 1078 break;
1079 } 1079 }
1080 taskHeaderService.cancelLocationAndContainerStatus(taskHeader); 1080 taskHeaderService.cancelLocationAndContainerStatus(taskHeader);
  1081 + if (!inventoryHeaderService.updateInventoryContainerStatusByContainerCode(taskHeader.getContainerCode(), taskHeader.getWarehouseCode())) {
  1082 + throw new JeecgBootException("取消任务失败, 更新库存明细失败");
  1083 + }
1081 int toWcs = taskHeader.getToWcs(); 1084 int toWcs = taskHeader.getToWcs();
1082 if (toWcs == QuantityConstant.TO_WCS) { 1085 if (toWcs == QuantityConstant.TO_WCS) {
1083 if (taskHeader.getStatus().intValue() > QuantityConstant.TASK_STATUS_BUILD) { 1086 if (taskHeader.getStatus().intValue() > QuantityConstant.TASK_STATUS_BUILD) {
@@ -1087,9 +1090,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea @@ -1087,9 +1090,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1087 } 1090 }
1088 } 1091 }
1089 } 1092 }
1090 - if (!inventoryHeaderService.updateInventoryContainerStatusByContainerCode(taskHeader.getContainerCode(), taskHeader.getWarehouseCode())) {  
1091 - throw new JeecgBootException("取消任务失败, 更新库存明细失败");  
1092 - }  
1093 log.info("完成取消任务" + taskHeader.getId()); 1093 log.info("完成取消任务" + taskHeader.getId());
1094 return result; 1094 return result;
1095 } 1095 }