Browse Source

Merge remote-tracking branch 'origin/master'

master
陈薪名 2 years ago
parent
commit
b82fcd4b48
  1. 1
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 38
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 108
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/CustomerreceiptRequestMainController.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainCreateReqVO.java
  5. 85
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainExcelVO.java
  6. 35
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/CustomerreturnJobMainController.java
  7. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailBaseVO.java
  8. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainUpdateReqVO.java
  9. 116
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailBaseVO.java
  11. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailExcelVO.java
  12. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailExportReqVO.java
  13. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailPageReqVO.java
  14. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainBaseVO.java
  15. 106
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java
  16. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java
  17. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java
  18. 115
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailPageReqVO.java
  20. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java
  21. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java
  22. 87
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExcelVO.java
  23. 30
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java
  24. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingBaseVO.java
  25. 88
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingImportErrorVO.java
  26. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingImportExcelVO.java
  27. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanDetailBaseVO.java
  28. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreceiptRequest/CustomerreceiptRequestDetailConvert.java
  29. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreceiptRequest/CustomerreceiptRequestMainConvert.java
  30. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobDetailConvert.java
  31. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobMainConvert.java
  32. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRecord/CustomerreturnRecordMainConvert.java
  33. 31
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestMainConvert.java
  34. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itempackaging/ItempackagingConvert.java
  35. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java
  36. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRecord/CustomerreturnRecordDetailDO.java
  37. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRecord/CustomerreturnRecordMainDO.java
  38. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java
  39. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java
  40. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerdock/CustomerdockMapper.java
  41. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreceiptRequest/CustomerreceiptRequestDetailMapper.java
  42. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnJob/CustomerreturnJobDetailMapper.java
  43. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnJob/CustomerreturnJobMainMapper.java
  44. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordDetailMapper.java
  45. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java
  46. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java
  47. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java
  48. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/businesstype/BusinesstypeServiceImpl.java
  49. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockService.java
  50. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockServiceImpl.java
  51. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestDetailService.java
  52. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestDetailServiceImpl.java
  53. 45
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainService.java
  54. 242
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java
  55. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobDetailService.java
  56. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobDetailServiceImpl.java
  57. 28
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainService.java
  58. 232
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java
  59. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordDetailService.java
  60. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordDetailServiceImpl.java
  61. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestDetailService.java
  62. 157
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestDetailServiceImpl.java
  63. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java
  64. 758
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java
  65. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/documentsetting/DocumentsettingServiceImpl.java
  66. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java
  67. 113
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java
  68. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java
  69. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanDetailServiceImpl.java
  70. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java
  71. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

1
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java

@ -50,6 +50,7 @@ public interface DictTypeConstants {
String WORKSHOP_TYPE = "workshop_type";//车间类型
String PRODUCTION_LINE_TYPE = "production_line_type";//生产线类型
String VEHICLE_PLATE_NUMBER = "vehicle_plate_number";//生产线类型
String WORK_STATION_TYPE = "work_station_type";//工位类型

38
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -446,6 +446,14 @@ public interface ErrorCodeConstants {
ErrorCode PURCHASERETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_075_001, "采购退货申请子不存在");
ErrorCode PURCHASERETURN_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_075_002, "采购退货申请导入数据不能为空");
ErrorCode PURCHASERETURN_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_075_003, "采购退货不是新增状态");
ErrorCode PURCHASERETURN_REQUEST_JOB_EXISTS = new ErrorCode(1_000_075_004, "采购退货存在采购退货任务单");
ErrorCode PURCHASERETURN_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_075_005, "采购退货状态不支持关闭");
ErrorCode PURCHASERETURN_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_075_006, "采购退货状态不支持提交");
ErrorCode PURCHASERETURN_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_075_007, "采购退货状态不支持审批同意");
ErrorCode PURCHASERETURN_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_075_008, "采购退货状态不支持处理");
ErrorCode PURCHASERETURN_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_075_009, "采购退货状态不支持审批拒绝");
ErrorCode PURCHASERETURN_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_075_010, "采购退货状态不支持重新添加");
//采购退货任务主ErrorCode
ErrorCode PURCHASERETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_076_000, "采购退货任务主不存在");
//采购退货任务子ErrorCode
@ -716,10 +724,9 @@ public interface ErrorCodeConstants {
ErrorCode OFFLINESETTLEMENT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_116_000, "下线结算记录主不存在");
ErrorCode OFFLINESETTLEMENT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_116_001, "下线结算记录子不存在");
//销售订单ErrorCode
ErrorCode SALE_MAIN_NOT_EXISTS = new ErrorCode(1_000_117_000, "销售订单不存在");
ErrorCode SALE_MAIN_NOT_EXISTS = new ErrorCode(1_000_117_000, "销售订单不存在");
ErrorCode SALE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_117_001, "销售订单子不存在");
//发货计划ErrorCode
//发货计划导入不能为空
ErrorCode DELIVERPLAN_MAIN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_020_015, "导入发货计划不能为空");
ErrorCode DELIVER_PLAN_MAIN_NOT_EXISTS = new ErrorCode(1_000_118_000, "发货计划主不存在");
ErrorCode DELIVER_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_118_001, "发货计划子不存在");
@ -736,26 +743,47 @@ public interface ErrorCodeConstants {
ErrorCode DELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请主不存在");
ErrorCode DELIVER_REQUEST_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请不存在");
ErrorCode DELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_119_001, "发货申请子不存在");
ErrorCode DELIVER_REQUEST_JOB_EXISTS = new ErrorCode(1_000_119_002, "发货申请存在采购收货任务单");
ErrorCode DELIVER_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_119_003, "发货申请状态不支持关闭");
ErrorCode DELIVER_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_119_004, "发货申请状态不支持提交");
ErrorCode DELIVER_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_119_005, "发货申请状态不支持审批同意");
ErrorCode DELIVER_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_119_006, "发货申请状态不支持处理");
ErrorCode DELIVER_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_119_007, "发货申请状态不支持审批拒绝");
//发货任务ErrorCode
ErrorCode DELIVER_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_120_000, "发货任务主不存在{}");
ErrorCode DELIVER_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_120_001, "发货任务子不存在");
ErrorCode DELIVER_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_120_003, "发货任务状态错误");
//发货记录ErrorCode
ErrorCode DELIVER_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_121_000, "发货记录主不存在");
ErrorCode DELIVER_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_121_001, "发货记录子不存在");
ErrorCode DELIVER_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_121_001, "发货记录不存在");
ErrorCode DELIVER_RECORD_DETAIL_EXCEPTION = new ErrorCode(1_000_121_002, "发货记录问题:【{}】");
ErrorCode DELIVER_ORDER_DETAIL_EXCEPTION = new ErrorCode(1_000_121_003, "发货订单问题:【{}】");
//客户收货申请ErrorCode
ErrorCode CUSTOMERRECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_122_000, "客户收货申请主不存在");
ErrorCode CUSTOMERRECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_122_001, "客户收货申请主不存在");
ErrorCode CUSTOMERRECEIPT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_122_002, "客户收货申请不支持重新添加");
ErrorCode CUSTOMERRECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_122_003, "客户收货申请不支持关闭");
ErrorCode CUSTOMERRECEIPT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_122_004, "客户收货申请不支持提交");
ErrorCode CUSTOMERRECEIPT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_122_005, "客户收货申请不支持审批同意");
ErrorCode CUSTOMERRECEIPT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_122_006, "客户收货申请不支持执行");
ErrorCode CUSTOMERRECEIPT_REQUEST_CANNOT_REFUSED = new ErrorCode(1_000_122_007, "客户收货申请不支持审批驳回");
//客户收货记录ErrorCode
ErrorCode CUSTOMERRECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_123_000, "客户收货记录主不存在");
ErrorCode CUSTOMERRECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_123_001, "客户收货记录子不存在");
//客户退货申请ErrorCode
ErrorCode CUSTOMERRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请主不存在");
ErrorCode CUSTOMERRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请不存在");
ErrorCode CUSTOMERRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_124_001, "客户退货申请子不存在");
ErrorCode CUSTOMERRETURN_REQUEST_NOT_EXISTS = new ErrorCode(1_000_124_002, "客户退货申请不存在");
ErrorCode CUSTOMERRETURN_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_124_003, "客户退货不是新增状态");
ErrorCode CUSTOMERRETURN_REQUEST_JOB_EXISTS = new ErrorCode(1_000_124_004, "客户退货存在采购收货任务单");
ErrorCode CUSTOMERRETURN_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_124_005, "客户退货状态不支持关闭");
ErrorCode CUSTOMERRETURN_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_124_006, "客户退货状态不支持提交");
ErrorCode CUSTOMERRETURN_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_124_007, "客户退货状态不支持审批同意");
ErrorCode CUSTOMERRETURN_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_124_008, "客户退货状态不支持处理");
ErrorCode CUSTOMERRETURN_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_124_009, "客户退货状态不支持审批拒绝");
ErrorCode CUSTOMERRETURN_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_124_010, "客户退货状态不支持重新添加");
ErrorCode CUSTOMERRETURN_REQUEST_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请不存在");
//客户退货任务ErrorCode
ErrorCode CUSTOMERRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_125_000, "客户退货任务主不存在");
ErrorCode CUSTOMERRETURN_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_125_001, "客户退货任务子不存在");

108
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/CustomerreceiptRequestMainController.java

@ -1,9 +1,13 @@
package com.win.module.wms.controller.customerreceiptRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.customerreceiptRequest.vo.*;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.customerreceiptRequest.CustomerreceiptRequestDetailService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -26,7 +30,6 @@ import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.customerreceiptRequest.vo.*;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestMainDO;
import com.win.module.wms.convert.customerreceiptRequest.CustomerreceiptRequestMainConvert;
import com.win.module.wms.service.customerreceiptRequest.CustomerreceiptRequestMainService;
@ -42,6 +45,8 @@ public class CustomerreceiptRequestMainController {
@Resource
private AdminUserApi userApi;
@Resource
private CustomerreceiptRequestDetailService customerreceiptRequestDetailService;
@PostMapping("/create")
@Operation(summary = "创建客户收货申请主")
@ -113,13 +118,102 @@ public class CustomerreceiptRequestMainController {
HttpServletResponse response) throws IOException {
List<CustomerreceiptRequestMainDO> list = customerreceiptRequestMainService.getCustomerreceiptRequestMainList(exportReqVO);
// 导出 Excel
List<CustomerreceiptRequestMainExcelVO> datas = CustomerreceiptRequestMainConvert.INSTANCE.convertList02(list);
for(CustomerreceiptRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<CustomerreceiptRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "客户收货申请.xls", "数据", CustomerreceiptRequestMainExcelVO.class, resultList,mapDropDown);
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出客户收货申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:export')")
@OperateLog(type = EXPORT)
public void exportCustomerreceiptRequestMainSeniorExcel(@Valid CustomerreceiptRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<CustomerreceiptRequestMainDO> list = customerreceiptRequestMainService.getCustomerreceiptRequestMainList(exportReqVO);
// 导出 Excel
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<CustomerreceiptRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "客户收货申请.xls", "数据", CustomerreceiptRequestMainExcelVO.class, resultList,mapDropDown);
}
private List<CustomerreceiptRequestMainExcelVO> getExcelVo(List<CustomerreceiptRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(6, transferMode);
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(17, requestStatus);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(20, locationType);
mapDropDown.put(21, locationType);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(27, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(39, uom);
List<CustomerreceiptRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(CustomerreceiptRequestMainDO mainDO : list) {
List<CustomerreceiptRequestDetailDO> subList = customerreceiptRequestDetailService.selectList(mainDO.getId());
for(CustomerreceiptRequestDetailDO detailDO : subList) {
CustomerreceiptRequestMainExcelVO vo = CustomerreceiptRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(vo.getCreatorDetail())).getNickname());
vo.setUpdaterDetail(userApi.getUser(Long.valueOf(vo.getUpdaterDetail())).getNickname());
resultList.add(vo);
}
}
ExcelUtils.write(response, "客户收货申请主.xls", "数据", CustomerreceiptRequestMainExcelVO.class, datas);
return resultList;
}
@PutMapping("/close")
@Operation(summary = "关闭客户收货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:close')")
public CommonResult<Boolean> closeCustomerreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = customerreceiptRequestMainService.closeCustomerreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加客户收货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:reAdd')")
public CommonResult<Boolean> openCustomerreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = customerreceiptRequestMainService.reAddCustomerreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交客户收货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:submit')")
public CommonResult<Boolean> submitCustomerreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = customerreceiptRequestMainService.submitCustomerreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过客户收货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:agree')")
public CommonResult<Boolean> agreeCustomerreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = customerreceiptRequestMainService.agreeCustomerreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理客户收货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:handle')")
public CommonResult<Boolean> handleCustomerreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = customerreceiptRequestMainService.handleCustomerreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "审批驳回客户收货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreceipt-request-main:refused')")
public CommonResult<Boolean> refusedCustomerreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = customerreceiptRequestMainService.refusedCustomerreceiptRequestMain(id);
return success(count > 0);
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainCreateReqVO.java

@ -1,12 +1,20 @@
package com.win.module.wms.controller.customerreceiptRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 客户收货申请主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CustomerreceiptRequestMainCreateReqVO extends CustomerreceiptRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<@Valid CustomerreceiptRequestDetailCreateReqVO> subList;
}

85
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainExcelVO.java

@ -2,6 +2,8 @@ package com.win.module.wms.controller.customerreceiptRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@ -21,6 +23,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class CustomerreceiptRequestMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("发货记录单号")
private String deliverRequestNumber;
@ -40,8 +45,7 @@ public class CustomerreceiptRequestMainExcelVO {
@DictFormat("transfer_mode") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String transferMode;
@ExcelProperty(value = "车牌号", converter = DictConvert.class)
@DictFormat("vehicle_plate_number") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
@ExcelProperty("从仓库代码")
@ -50,9 +54,6 @@ public class CustomerreceiptRequestMainExcelVO {
@ExcelProperty("到仓库代码")
private String toWarehouseCode;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
private String businessType;
@ -98,16 +99,74 @@ public class CustomerreceiptRequestMainExcelVO {
@ExcelProperty("到库区代码范围")
private String toAreaCodes;
@ExcelProperty("自动提交")
private String autoCommit;
//子表
// @ExcelProperty("销售订单号")
// private String soNumber;
//
// @ExcelProperty("销售订单行")
// private String soLine;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者用户名")
private String creatorDetail;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTimeDetail;
@ExcelProperty("最后更新者用户名")
private String updaterDetail;
@ExcelProperty("自动通过")
private String autoAgree;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("自动执行")
private String autoExecute;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("直接生成记录")
private String directCreateRecord;
}

35
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/CustomerreturnJobMainController.java

@ -163,4 +163,39 @@ public class CustomerreturnJobMainController {
return success(countByStatus);
}
@PutMapping("/accept")
@Operation(summary = "承接客户退货任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:accept')")
public CommonResult<Boolean> acceptCustomerreturnJobMain(@RequestParam("id") Long id) {
Integer count = customerreturnJobMainService.acceptCustomerreturnJobMain(id);
return success(count > 0);
}
@PutMapping("/abandon")
@Operation(summary = "取消承接客户退货任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:abandon')")
public CommonResult<Boolean> abandonCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnJobMainService.abandonCustomerreturnJobMain(id);
return success(count > 0);
}
@PutMapping("/close")
@Operation(summary = "关闭客户退货任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:close')")
public CommonResult<Boolean> closeCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnJobMainService.closeCustomerreturnJobMain(id);
return success(count > 0);
}
@PutMapping("/execute")
@Operation(summary = "执行客户退货任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:execute')")
public CommonResult<Boolean> closeCustomerreturnRequestMain(@Valid @RequestBody CustomerreturnJobMainUpdateReqVO updateReqVO) {
Integer count = customerreturnJobMainService.executeCustomerreturnJobMain(updateReqVO);
return success(count > 0);
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailBaseVO.java

@ -81,4 +81,19 @@ public class CustomerreturnJobDetailBaseVO {
@Schema(description = "创建者Id")
private String creator;
@Schema(description = "实际数量")
private BigDecimal handleQty;
@Schema(description = "到包装号")
private String toPackingNumber;
@Schema(description = "到器具号")
private String toContainerNumber;
@Schema(description = "到际批次")
private String toBatch;
@Schema(description = "到库存状态")
private String toInventoryStatus;
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainUpdateReqVO.java

@ -3,10 +3,15 @@ package com.win.module.wms.controller.customerreturnJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 客户退货任务主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CustomerreturnJobMainUpdateReqVO extends CustomerreturnJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid CustomerreturnJobDetailUpdateReqVO> subList;
}

116
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java

@ -1,9 +1,18 @@
package com.win.module.wms.controller.customerreturnRecord;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainExcelVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainExcelVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainExportReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.*;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordMainConvert;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.customerreturnRecord.CustomerreturnRecordDetailService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -25,10 +34,6 @@ import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.customerreturnRecord.vo.*;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordMainConvert;
import com.win.module.wms.service.customerreturnRecord.CustomerreturnRecordMainService;
@Tag(name = "管理后台 - 客户退货记录主")
@ -41,31 +46,34 @@ public class CustomerreturnRecordMainController {
private CustomerreturnRecordMainService customerreturnRecordMainService;
@Resource
private AdminUserApi userApi;
private CustomerreturnRecordDetailService customerreturnRecordDetailService;
@PostMapping("/create")
@Operation(summary = "创建客户退货记录主")
@PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:create')")
public CommonResult<Long> createCustomerreturnRecordMain(@Valid @RequestBody CustomerreturnRecordMainCreateReqVO createReqVO) {
return success(customerreturnRecordMainService.createCustomerreturnRecordMain(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新客户退货记录主")
@PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:update')")
public CommonResult<Boolean> updateCustomerreturnRecordMain(@Valid @RequestBody CustomerreturnRecordMainUpdateReqVO updateReqVO) {
customerreturnRecordMainService.updateCustomerreturnRecordMain(updateReqVO);
return success(true);
}
@Resource
private AdminUserApi userApi;
@DeleteMapping("/delete")
@Operation(summary = "删除客户退货记录主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:delete')")
public CommonResult<Boolean> deleteCustomerreturnRecordMain(@RequestParam("id") Long id) {
customerreturnRecordMainService.deleteCustomerreturnRecordMain(id);
return success(true);
}
// @PostMapping("/create")
// @Operation(summary = "创建客户退货记录主")
// @PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:create')")
// public CommonResult<Long> createCustomerreturnRecordMain(@Valid @RequestBody CustomerreturnRecordMainCreateReqVO createReqVO) {
// return success(customerreturnRecordMainService.createCustomerreturnRecordMain(createReqVO));
// }
//
// @PutMapping("/update")
// @Operation(summary = "更新客户退货记录主")
// @PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:update')")
// public CommonResult<Boolean> updateCustomerreturnRecordMain(@Valid @RequestBody CustomerreturnRecordMainUpdateReqVO updateReqVO) {
// customerreturnRecordMainService.updateCustomerreturnRecordMain(updateReqVO);
// return success(true);
// }
//
// @DeleteMapping("/delete")
// @Operation(summary = "删除客户退货记录主")
// @Parameter(name = "id", description = "编号", required = true)
// @PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:delete')")
// public CommonResult<Boolean> deleteCustomerreturnRecordMain(@RequestParam("id") Long id) {
// customerreturnRecordMainService.deleteCustomerreturnRecordMain(id);
// return success(true);
// }
@GetMapping("/get")
@Operation(summary = "获得客户退货记录主")
@ -94,7 +102,7 @@ public class CustomerreturnRecordMainController {
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得客户退货记录主分页")
@PreAuthorize("@ss.hasPermission('wms:accountcalendar:query')")
@PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:query')")
public CommonResult<PageResult<CustomerreturnRecordMainRespVO>> getCustomerreturnRecordMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<CustomerreturnRecordMainDO> pageResult = customerreturnRecordMainService.getCustomerreturnRecordMainSenior(conditions);
PageResult<CustomerreturnRecordMainRespVO> result = CustomerreturnRecordMainConvert.INSTANCE.convertPage(pageResult);
@ -113,13 +121,51 @@ public class CustomerreturnRecordMainController {
HttpServletResponse response) throws IOException {
List<CustomerreturnRecordMainDO> list = customerreturnRecordMainService.getCustomerreturnRecordMainList(exportReqVO);
// 导出 Excel
List<CustomerreturnRecordMainExcelVO> datas = CustomerreturnRecordMainConvert.INSTANCE.convertList02(list);
for(CustomerreturnRecordMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "客户退货记录主.xls", "数据", CustomerreturnRecordMainExcelVO.class, datas);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<CustomerreturnRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "客户退货记录主.xls", "数据", CustomerreturnRecordMainExcelVO.class, resultList,mapDropDown);
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出客户收货记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:export')")
@OperateLog(type = EXPORT)
public void exportCustomerreturnRecordMainSeniorExcel(@Valid CustomerreturnRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<CustomerreturnRecordMainDO> list = customerreturnRecordMainService.getCustomerreturnRecordMainList(exportReqVO);
// 导出 Excel
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<CustomerreturnRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "客户收货申请.xls", "数据", CustomerreturnRecordMainExcelVO.class, resultList,mapDropDown);
}
private List<CustomerreturnRecordMainExcelVO> getExcelVo(List<CustomerreturnRecordMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(6, transferMode);
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(17, requestStatus);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(24, locationType);
mapDropDown.put(25, locationType);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(28, available);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(33, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(55, uom);
String[] interfaceTypeDetail = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE);
mapDropDown.put(56, interfaceTypeDetail);
List<CustomerreturnRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(CustomerreturnRecordMainDO mainDO : list) {
List<CustomerreturnRecordDetailDO> subList = customerreturnRecordDetailService.selectList(mainDO.getId());
for(CustomerreturnRecordDetailDO detailDO : subList) {
CustomerreturnRecordMainExcelVO vo = CustomerreturnRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(vo.getCreatorDetail())).getNickname());
resultList.add(vo);
}
}
return resultList;
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailBaseVO.java

@ -124,4 +124,7 @@ public class CustomerreturnRecordDetailBaseVO {
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "主表id")
private String masterId;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailExcelVO.java

@ -123,4 +123,7 @@ public class CustomerreturnRecordDetailExcelVO {
@ExcelProperty("到批次")
private String toBatch;
@ExcelProperty("主表id")
private String masterId;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailExportReqVO.java

@ -115,4 +115,6 @@ public class CustomerreturnRecordDetailExportReqVO {
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "主表ID")
private String masterId;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordDetailPageReqVO.java

@ -117,4 +117,7 @@ public class CustomerreturnRecordDetailPageReqVO extends PageParam {
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "主表ID")
private String masterId;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainBaseVO.java

@ -97,8 +97,8 @@ public class CustomerreturnRecordMainBaseVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@Schema(description = "创建者Id")
private String creatorId;
@Schema(description = "创建者")
private String creator;
@Schema(description = "代码")
private String code;

106
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java

@ -2,6 +2,8 @@ package com.win.module.wms.controller.customerreturnRecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@ -22,7 +24,6 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class CustomerreturnRecordMainExcelVO {
@ExcelProperty("任务单号")
private String jobNumber;
@ -45,8 +46,7 @@ public class CustomerreturnRecordMainExcelVO {
@DictFormat("transfer_mode") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String transferMode;
@ExcelProperty(value = "车牌号", converter = DictConvert.class)
@DictFormat("vehicle_plate_number") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
@ExcelProperty("从仓库代码")
@ -93,7 +93,7 @@ public class CustomerreturnRecordMainExcelVO {
private LocalDateTime createTime;
@ExcelProperty("创建者Id")
private String creatorId;
private String creator;
@ExcelProperty("代码")
private String code;
@ -112,15 +112,107 @@ public class CustomerreturnRecordMainExcelVO {
@ExcelProperty("到月台代码")
private String toDockCode;
@ExcelProperty("是否可用")
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String available;
@ExcelProperty("从库区代码范围")
private String fromAreaCodes;
//子表
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private String soLine;
@ExcelProperty("创建者ID")
private String creator;
@ExcelProperty("从批次")
private String fromBatch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("从器具号")
private String fromContainerNumber;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("从库位组代码")
private String fromLocationGroupCode;
@ExcelProperty("从库区代码")
private String fromAreaCode;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("到器具号")
private String toContainerNumber;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("到库位组代码")
private String toLocationGroupCode;
@ExcelProperty("到库区代码")
private String toAreaCode;
@ExcelProperty("单价")
private BigDecimal singlePrice;
@ExcelProperty("金额")
private BigDecimal amount;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者Id")
private String creatorDetail;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceTypeDetail;
@ExcelProperty("任务明细ID")
private String jobDetailId;
@ExcelProperty("从包装号")
private String fromPackingNumber;
@ExcelProperty("到包装号")
private String toPackingNumber;
@ExcelProperty("到批次")
private String toBatch;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java

@ -85,8 +85,8 @@ public class CustomerreturnRecordMainExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "创建者Id")
private String creatorId;
@Schema(description = "创建者")
private String creator;
@Schema(description = "代码")
private String code;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java

@ -87,8 +87,8 @@ public class CustomerreturnRecordMainPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "创建者Id")
private String creatorId;
@Schema(description = "创建者")
private String creator;
@Schema(description = "代码")
private String code;

115
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java

@ -126,37 +126,67 @@ public class CustomerreturnRequestMainController {
HttpServletResponse response) throws IOException {
List<CustomerreturnRequestMainDO> list = customerreturnRequestMainService.getCustomerreturnRequestMainList(exportReqVO);
// 导出 Excel
List<CustomerreturnRequestMainExcelVO> datas = CustomerreturnRequestMainConvert.INSTANCE.convertList02(list);
for(CustomerreturnRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<CustomerreturnRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "客户退货申请主.xls", "数据", CustomerreturnRequestMainExcelVO.class, resultList,mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出发货计划主 Excel")
@PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:export')")
@OperateLog(type = EXPORT)
public void exportPurchasereceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<CustomerreturnRequestMainDO> list = customerreturnRequestMainService.getCustomerreturnRequestMainList(conditions);
// 导出 Excel
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<CustomerreturnRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "客户退货申请主.xls", "数据", CustomerreturnRequestMainExcelVO.class, resultList,mapDropDown);
}
private List<CustomerreturnRequestMainExcelVO> getExcelVo(List<CustomerreturnRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(7, transferMode);
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(16, requestStatus);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(20, locationType);
mapDropDown.put(23, locationType);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(29, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(41, uom);
List<CustomerreturnRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(CustomerreturnRequestMainDO mainDO : list) {
List<CustomerreturnRequestDetailDO> subList = customerreturnRequestDetailService.selectList(mainDO.getId());
for(CustomerreturnRequestDetailDO detailDO : subList) {
CustomerreturnRequestMainExcelVO vo = CustomerreturnRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
resultList.add(vo);
}
}
ExcelUtils.write(response, "客户退货申请主.xls", "数据", CustomerreturnRequestMainExcelVO.class, datas);
return resultList;
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制客户退货信息模板")
@Operation(summary = "获得导入客户退货申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CustomerreturnRequestImportVO> list = Arrays.asList(
);
List<CustomerreturnRequestImportVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(3, transferMode);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(13, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(12, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(13, inventoryStatus);
// 输出
ExcelUtils.write(response, "客户退货申请信息导入模板.xls", "客户退货申请信息列表", CustomerreturnRequestImportVO.class, list,mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入采购索赔基本信息")
@Operation(summary = "导入客户退货申请基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@ -174,7 +204,7 @@ public class CustomerreturnRequestMainController {
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
String url = ExcelUtils.writeLocalFile("客户退货申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
@ -197,4 +227,57 @@ public class CustomerreturnRequestMainController {
return success(result);
}
@PutMapping("/close")
@Operation(summary = "关闭客户退货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:close')")
public CommonResult<Boolean> closeCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnRequestMainService.closeCustomerreturnRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加客户退货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:reAdd')")
public CommonResult<Boolean> openCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnRequestMainService.reAddCustomerreturnRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交客户退货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:submit')")
public CommonResult<Boolean> submitCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnRequestMainService.submitCustomerreturnRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过客户退货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:agree')")
public CommonResult<Boolean> agreeCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnRequestMainService.agreeCustomerreturnRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理客户退货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:handle')")
public CommonResult<Boolean> handleCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnRequestMainService.handleCustomerreturnRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "审批拒绝客户退货申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:refused')")
public CommonResult<Boolean> abortCustomerreturnRequestMain(@RequestParam("id") Long id) {
Integer count = customerreturnRequestMainService.refusedCustomerreturnRequestMain(id);
return success(count > 0);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailPageReqVO.java

@ -88,4 +88,6 @@ public class CustomerreturnRequestDetailPageReqVO extends PageParam {
@Schema(description = "到库位代码")
private String toLocationCode;
@Schema(description = "主表ID")
private Long masterId;
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java

@ -17,13 +17,14 @@ import java.math.BigDecimal;
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class CustomerreturnRequestImportVO {
//主表字段
@ExcelProperty("发货记录单号")
private String deliverRecordNumber;
//主表字段
@ExcelProperty("单据号")
private String number;
@ExcelProperty("发货记录单号")
private String deliverRecordNumber;
@ExcelProperty("承运商")
private String carrierCode;
@ -33,6 +34,7 @@ public class CustomerreturnRequestImportVO {
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
//子表字段
@ExcelProperty("销售订单号")
private String soNumber;
@ -63,11 +65,10 @@ public class CustomerreturnRequestImportVO {
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
@ExcelProperty("来源库位")
private String fromLocationCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java

@ -44,18 +44,15 @@ public class CustomerreturnRequestMainBaseVO {
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@OnlyOne
@NotBlank(message = "单据号不能为空")
private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "业务类型不能为空")
private String businessType;
@Schema(description = "备注")
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ -87,22 +84,18 @@ public class CustomerreturnRequestMainBaseVO {
private String fromWarehouseCode;
@Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "从库位类型范围不能为空")
private String fromLocationTypes;
@Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "从库区代码范围不能为空")
private String fromAreaCodes;
@Schema(description = "到仓库代码")
private String toWarehouseCode;
@Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "到库位类型范围不能为空")
private String toLocationTypes;
@Schema(description = "到库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "到库区代码范围不能为空")
private String toAreaCodes;
@Schema(description = "到月台代码")

87
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.customerreturnRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@ -21,6 +24,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class CustomerreturnRequestMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号")
private String requestNumber;
@ -43,13 +49,9 @@ public class CustomerreturnRequestMainExcelVO {
@DictFormat("transfer_mode") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String transferMode;
@ExcelProperty(value = "车牌号", converter = DictConvert.class)
@DictFormat("vehicle_plate_number") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
private String businessType;
@ -57,15 +59,18 @@ public class CustomerreturnRequestMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 21)
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
private String creator;
@ExcelProperty("申请时间")
@ColumnWidth(value = 21)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 21)
private LocalDateTime dueTime;
@ExcelProperty("部门")
@ -76,6 +81,7 @@ public class CustomerreturnRequestMainExcelVO {
private String status;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 21)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
@ -116,4 +122,75 @@ public class CustomerreturnRequestMainExcelVO {
@ExcelProperty("直接生成记录")
private String directCreateRecord;
//子表
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private String soLine;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
@ColumnWidth(value = 21)
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者用户名")
private String creatorDetail;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 21)
private LocalDateTime updateTimeDetail;
@ExcelProperty("最后更新者用户名")
private String updaterDetail;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
}

30
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java

@ -8,12 +8,8 @@ import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO;
import com.win.module.wms.controller.itembasic.vo.ItembasicRespVO;
import com.win.module.wms.controller.itempackaging.vo.*;
import com.win.module.wms.convert.itembasic.ItembasicConvert;
import com.win.module.wms.convert.itempackaging.ItempackagingConvert;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.itempackaging.ItempackagingService;
@ -173,17 +169,17 @@ public class ItempackagingController {
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(1, uom);
String[] description = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(2, description);;
mapDropDown.put(2, description);
String[] altPackUnit1 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(5, altPackUnit1);;
mapDropDown.put(4, altPackUnit1);
String[] altPackUnit2 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, altPackUnit2);;
mapDropDown.put(6, altPackUnit2);
String[] altPackUnit3 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(9, altPackUnit3);;
mapDropDown.put(8, altPackUnit3);
String[] altPackUnit4 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(11, altPackUnit4);;
mapDropDown.put(10, altPackUnit4);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(13, available);;
mapDropDown.put(12, available);
// 输出
ExcelUtils.write(response, "物品包装信息导入模板.xls", "物品包装信息列表", ItempackagingImportExcelVO.class, list,mapDropDown);
}
@ -196,16 +192,18 @@ public class ItempackagingController {
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:itempackaging:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ItempackagingImportExcelVO> list = ExcelUtils.read(file, ItempackagingImportExcelVO.class);
List<ItempackagingImportExcelVO> errorList = itempackagingService.itempackagingimportDocumentList(list, mode, updatePart);
List<ItempackagingImportErrorVO> errorList = itempackagingService.itempackagingimportDocumentList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("物品包装信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}
return success(returnMap);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.itempackaging.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -18,6 +19,7 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
public class ItempackagingBaseVO {
@Schema(description = "id", example = "id")
@OnlyOne
private Long id;
@Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED)

88
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingImportErrorVO.java

@ -0,0 +1,88 @@
package com.win.module.wms.controller.itempackaging.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@Builder
@ToString(callSuper = true)
public class ItempackagingImportErrorVO {
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty(value = "包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String stdPackUnit;
@ExcelProperty("包装数量")
private BigDecimal stdPackQty;
@ExcelProperty(value = "替代包装单位1", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit1;
@ExcelProperty("替代包装量1")
private BigDecimal altPackQty1;
@ExcelProperty(value = "替代包装单位2", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit2;
@ExcelProperty("替代包装量2")
private BigDecimal altPackQty2;
@ExcelProperty(value = "替代包装单位3", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit3;
@ExcelProperty("替代包装量3")
private BigDecimal altPackQty3;
@ExcelProperty(value = "替代包装单位4", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit4;
@ExcelProperty("替代包装量4")
private BigDecimal altPackQty4;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingImportExcelVO.java

@ -35,33 +35,33 @@ public class ItempackagingImportExcelVO {
@ExcelProperty("包装数量")
private BigDecimal stdPackQty;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@ExcelProperty(value = "替代包装单位1", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit1;
@ExcelProperty("替代包装量")
private String altPackQty1;
@ExcelProperty("替代包装量1")
private BigDecimal altPackQty1;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@ExcelProperty(value = "替代包装单位2", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit2;
@ExcelProperty("替代包装量")
private String altPackQty2;
@ExcelProperty("替代包装量2")
private BigDecimal altPackQty2;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@ExcelProperty(value = "替代包装单位3", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit3;
@ExcelProperty("替代包装量")
private String altPackQty3;
@ExcelProperty("替代包装量3")
private BigDecimal altPackQty3;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@ExcelProperty(value = "替代包装单位4", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit4;
@ExcelProperty("替代包装量")
private String altPackQty4;
@ExcelProperty("替代包装量4")
private BigDecimal altPackQty4;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanDetailBaseVO.java

@ -40,7 +40,6 @@ public class PurchasePlanDetailBaseVO {
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreceiptRequest/CustomerreceiptRequestDetailConvert.java

@ -34,4 +34,5 @@ public interface CustomerreceiptRequestDetailConvert {
List<CustomerreceiptRequestDetailExcelVO> convertList02(List<CustomerreceiptRequestDetailDO> list);
List<CustomerreceiptRequestDetailDO> convertList03(List<CustomerreceiptRequestDetailCreateReqVO> subList);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreceiptRequest/CustomerreceiptRequestMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRe
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainExcelVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainRespVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestMainDO;
@ -34,4 +37,18 @@ public interface CustomerreceiptRequestMainConvert {
List<CustomerreceiptRequestMainExcelVO> convertList02(List<CustomerreceiptRequestMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
@Mapping(source = "detailDO.remark", target = "remarkDetail"),
@Mapping(source = "detailDO.createTime", target = "createTimeDetail"),
@Mapping(source = "detailDO.creator", target = "creatorDetail"),
@Mapping(source = "detailDO.updateTime", target = "updateTimeDetail"),
@Mapping(source = "detailDO.updater", target = "updaterDetail"),
})
CustomerreceiptRequestMainExcelVO convert(CustomerreceiptRequestMainDO mainDO, CustomerreceiptRequestDetailDO detailDO);
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobDetailConvert.java

@ -8,6 +8,8 @@ import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetai
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailExcelVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailRespVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO;
@ -34,4 +36,5 @@ public interface CustomerreturnJobDetailConvert {
List<CustomerreturnJobDetailExcelVO> convertList02(List<CustomerreturnJobDetailDO> list);
CustomerreturnJobDetailDO convert(CustomerreturnRequestDetailDO customerreturnRequestDetailDO);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobMainConvert.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainC
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainExcelVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainRespVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
@ -34,4 +35,5 @@ public interface CustomerreturnJobMainConvert {
List<CustomerreturnJobMainExcelVO> convertList02(List<CustomerreturnJobMainDO> list);
CustomerreturnJobMainDO convert(CustomerreturnRequestMainDO mainDO);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRecord/CustomerreturnRecordMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecor
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainExcelVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainRespVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO;
@ -33,5 +36,17 @@ public interface CustomerreturnRecordMainConvert {
PageResult<CustomerreturnRecordMainRespVO> convertPage(PageResult<CustomerreturnRecordMainDO> page);
List<CustomerreturnRecordMainExcelVO> convertList02(List<CustomerreturnRecordMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.interfaceType", target = "interfaceType"),
@Mapping(source = "detailDO.remark", target = "remarkDetail"),
@Mapping(source = "detailDO.createTime", target = "createTimeDetail"),
@Mapping(source = "detailDO.creator", target = "creatorDetail"),
@Mapping(source = "detailDO.interfaceType", target = "interfaceTypeDetail"),
@Mapping(source = "detailDO.code", target = "code"),
})
CustomerreturnRecordMainExcelVO convert(CustomerreturnRecordMainDO mainDO, CustomerreturnRecordDetailDO detailDO);
}

31
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestMainConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExcelVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainRespVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainUpdateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
@ -32,6 +32,27 @@ public interface CustomerreturnRequestMainConvert {
PageResult<CustomerreturnRequestMainRespVO> convertPage(PageResult<CustomerreturnRequestMainDO> page);
List<CustomerreturnRequestMainExcelVO> convertList02(List<CustomerreturnRequestMainDO> list);
List<CustomerreturnRequestMainExcelVO> convertList02(List<CustomerreturnRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
CustomerreturnRequestImportErrorVO convert(CustomerreturnRequestMainCreateReqVO mainVo, CustomerreturnRequestDetailDO detailDO);
List<CustomerreturnRequestDetailDO> convertList03(List<CustomerreturnRequestDetailCreateReqVO> subList);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
@Mapping(source = "detailDO.remark", target = "remarkDetail"),
@Mapping(source = "detailDO.createTime", target = "createTimeDetail"),
@Mapping(source = "detailDO.creator", target = "creatorDetail"),
@Mapping(source = "detailDO.updateTime", target = "updateTimeDetail"),
@Mapping(source = "detailDO.updater", target = "updaterDetail"),
})
CustomerreturnRequestMainExcelVO convert(CustomerreturnRequestMainDO mainDO, CustomerreturnRequestDetailDO detailDO);
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itempackaging/ItempackagingConvert.java

@ -2,8 +2,15 @@ package com.win.module.wms.convert.itempackaging;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itempackaging.vo.*;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
@ -31,4 +38,7 @@ public interface ItempackagingConvert {
List<ItempackagingExcelVO> convertList02(List<ItempackagingDO> list);
ItempackagingDO convert(ItempackagingImportExcelVO itempackaging);
ItempackagingImportErrorVO convert2(ItempackagingImportExcelVO bean);
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java

@ -32,6 +32,7 @@ public interface PurchasereceiptRequestMainConvert {
PageResult<PurchasereceiptRequestMainRespVO> convertPage(PageResult<PurchasereceiptRequestMainDO> page);
List<PurchasereceiptRequestMainExcelVO> convertList02(List<PurchasereceiptRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRecord/CustomerreturnRecordDetailDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.customerreturnRecord;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRecord/CustomerreturnRecordMainDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.customerreturnRecord;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -134,7 +135,7 @@ public class CustomerreturnRecordMainDO extends BaseDO {
/**
* 创建者Id
*/
private String creatorId;
private String creator;
/**
* 扩展属性
*/

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java

@ -1,10 +1,8 @@
package com.win.module.wms.dal.dataobject.customerreturnRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java

@ -48,7 +48,10 @@ public interface BalanceMapper extends BaseMapperX<BalanceDO> {
result = this.insert(balanceDO);
} else {//存在只更新数量
BigDecimal qtyNew = reqVO.getQty();
BigDecimal amountNew = reqVO.getAmount();
BigDecimal amountNew = BigDecimal.ZERO;
if(reqVO.getAmount() != null){
amountNew = reqVO.getAmount();
}
//出库变负数
if (InventoryActionEnum.OUT.equals(inventoryAction)) {
qtyNew = BigDecimal.ZERO.subtract(qtyNew);

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerdock/CustomerdockMapper.java

@ -70,4 +70,8 @@ public interface CustomerdockMapper extends BaseMapperX<CustomerdockDO> {
default List<CustomerdockDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
default CustomerdockDO selectByCustomerCode(String customerCode,String customerDockCode){
return selectOne(CustomerdockDO::getCustomerCode,customerCode,CustomerdockDO::getCode,customerDockCode);
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreceiptRequest/CustomerreceiptRequestDetailMapper.java

@ -78,4 +78,9 @@ public interface CustomerreceiptRequestDetailMapper extends BaseMapperX<Customer
.orderByDesc(CustomerreceiptRequestDetailDO::getId));
}
default List<CustomerreceiptRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<CustomerreceiptRequestDetailDO>()
.eq(CustomerreceiptRequestDetailDO::getMasterId, masterId));
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnJob/CustomerreturnJobDetailMapper.java

@ -73,4 +73,8 @@ public interface CustomerreturnJobDetailMapper extends BaseMapperX<Customerretur
.orderByDesc(CustomerreturnJobDetailDO::getId));
}
default List<CustomerreturnJobDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<CustomerreturnJobDetailDO>()
.eq(CustomerreturnJobDetailDO::getMasterId, masterId));
}
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnJob/CustomerreturnJobMainMapper.java

@ -10,7 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainExportReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
/**
@ -134,4 +134,22 @@ public interface CustomerreturnJobMainMapper extends BaseMapperX<CustomerreturnJ
}
default Long selectByRequestNumber(String number) {
return selectCount(new LambdaQueryWrapperX<CustomerreturnJobMainDO>()
.eq(CustomerreturnJobMainDO::getRequestNumber, number)
.ne(CustomerreturnJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
/**
* 根据类型数和申请单号组查询任务数量
* @param types
* @param requestNumber
* @return
*/
default Long selectListCount(Collection<String> types, String requestNumber) {
return selectCount(new LambdaQueryWrapperX<CustomerreturnJobMainDO>()
.in(CustomerreturnJobMainDO::getStatus, types)
.eq(CustomerreturnJobMainDO::getRequestNumber, requestNumber));
}
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordDetailMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordDetailExportReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO;
import org.apache.ibatis.annotations.Mapper;
@ -55,6 +56,7 @@ public interface CustomerreturnRecordDetailMapper extends BaseMapperX<Customerre
.eqIfPresent(CustomerreturnRecordDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber())
.eqIfPresent(CustomerreturnRecordDetailDO::getToPackingNumber, reqVO.getToPackingNumber())
.eqIfPresent(CustomerreturnRecordDetailDO::getToBatch, reqVO.getToBatch())
.eqIfPresent(CustomerreturnRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(CustomerreturnRecordDetailDO::getId));
}
default PageResult<CustomerreturnRecordDetailDO> selectSenior(CustomConditions conditions) {
@ -95,7 +97,12 @@ public interface CustomerreturnRecordDetailMapper extends BaseMapperX<Customerre
.eqIfPresent(CustomerreturnRecordDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber())
.eqIfPresent(CustomerreturnRecordDetailDO::getToPackingNumber, reqVO.getToPackingNumber())
.eqIfPresent(CustomerreturnRecordDetailDO::getToBatch, reqVO.getToBatch())
.eqIfPresent(CustomerreturnRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(CustomerreturnRecordDetailDO::getId));
}
default List<CustomerreturnRecordDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<CustomerreturnRecordDetailDO>()
.eq(CustomerreturnRecordDetailDO::getMasterId, masterId));
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java

@ -44,7 +44,7 @@ public interface CustomerreturnRecordMainMapper extends BaseMapperX<Customerretu
.eqIfPresent(CustomerreturnRecordMainDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(CustomerreturnRecordMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(CustomerreturnRecordMainDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(CustomerreturnRecordMainDO::getCreatorId, reqVO.getCreatorId())
.eqIfPresent(CustomerreturnRecordMainDO::getCreator, reqVO.getCreator())
.eqIfPresent(CustomerreturnRecordMainDO::getCode, reqVO.getCode())
.eqIfPresent(CustomerreturnRecordMainDO::getFromLocationTypes, reqVO.getFromLocationTypes())
.eqIfPresent(CustomerreturnRecordMainDO::getToLocationTypes, reqVO.getToLocationTypes())
@ -81,7 +81,7 @@ public interface CustomerreturnRecordMainMapper extends BaseMapperX<Customerretu
.eqIfPresent(CustomerreturnRecordMainDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(CustomerreturnRecordMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(CustomerreturnRecordMainDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(CustomerreturnRecordMainDO::getCreatorId, reqVO.getCreatorId())
.eqIfPresent(CustomerreturnRecordMainDO::getCreator, reqVO.getCreator())
.eqIfPresent(CustomerreturnRecordMainDO::getCode, reqVO.getCode())
.eqIfPresent(CustomerreturnRecordMainDO::getFromLocationTypes, reqVO.getFromLocationTypes())
.eqIfPresent(CustomerreturnRecordMainDO::getToLocationTypes, reqVO.getToLocationTypes())

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailExportReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -22,6 +23,7 @@ public interface CustomerreturnRequestDetailMapper extends BaseMapperX<Customerr
default PageResult<CustomerreturnRequestDetailDO> selectPage(CustomerreturnRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CustomerreturnRequestDetailDO>()
.eq(CustomerreturnRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(CustomerreturnRequestDetailDO::getSoNumber, reqVO.getSoNumber())
.eqIfPresent(CustomerreturnRequestDetailDO::getSoLine, reqVO.getSoLine())
.eqIfPresent(CustomerreturnRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
@ -77,5 +79,8 @@ public interface CustomerreturnRequestDetailMapper extends BaseMapperX<Customerr
.eqIfPresent(CustomerreturnRequestDetailDO::getToLocationCode, reqVO.getToLocationCode())
.orderByDesc(CustomerreturnRequestDetailDO::getId));
}
default List<CustomerreturnRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<CustomerreturnRequestDetailDO>()
.eq(CustomerreturnRequestDetailDO::getMasterId, masterId));
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java

@ -11,6 +11,7 @@ import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequ
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -95,4 +96,11 @@ public interface CustomerreturnRequestMainMapper extends BaseMapperX<Customerret
.orderByDesc(CustomerreturnRequestMainDO::getId));
}
default List<CustomerreturnRequestMainDO> selectSeniorList(CustomConditions conditions){
return selectList(QueryWrapperUtils.structure(conditions));
}
default CustomerreturnRequestMainDO selectByNumber(String number) {
return selectOne(CustomerreturnRequestMainDO::getNumber, number);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/businesstype/BusinesstypeServiceImpl.java

@ -265,8 +265,9 @@ public class BusinesstypeServiceImpl implements BusinesstypeService {
public BusinesstypeDO selectBusinesstypeExist(String pcode){
QueryWrapper<BusinesstypeDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",pcode);
queryWrapper.eq("available","TRUE");
BusinesstypeDO businesstypeDO = businesstypeMapper.selectOne(queryWrapper);
if(businesstypeDO != null && "TRUE".equals(businesstypeDO.getAvailable())){
if(businesstypeDO != null){
return businesstypeDO;
}else {
throw exception(BUSINESSTYPE_NOT_EXISTS);

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockService.java

@ -46,6 +46,14 @@ public interface CustomerdockService {
*/
CustomerdockDO getCustomerdock(Long id);
/**
* 获得客户月台
*
* @param id 编号
* @return 客户月台
*/
CustomerdockDO getCustomerdockByCustomerCode(String customerCode,String customerDockCode);
/**
* 获得客户月台列表
*

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockServiceImpl.java

@ -76,6 +76,10 @@ public class CustomerdockServiceImpl implements CustomerdockService {
public CustomerdockDO getCustomerdock(Long id) {
return customerdockMapper.selectById(id);
}
@Override
public CustomerdockDO getCustomerdockByCustomerCode(String customerCode,String customerDockCode){
return customerdockMapper.selectByCustomerCode(customerCode,customerDockCode);
}
@Override
public List<CustomerdockDO> getCustomerdockList(CustomConditions conditions) {
@ -215,8 +219,9 @@ public class CustomerdockServiceImpl implements CustomerdockService {
public CustomerdockDO CustomerExist(String code) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",code);
queryWrapper.eq("available","TRUE");
CustomerdockDO customerdockDO =customerdockMapper.selectOne(queryWrapper);
if(customerdockDO != null&& "TRUE".equals(customerdockDO.getAvailable())){
if(customerdockDO != null){
return customerdockDO;
}else {
throw exception(CUSTOMERDOCK_NOT_EXISTS);

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestDetailService.java

@ -79,4 +79,11 @@ public interface CustomerreceiptRequestDetailService {
*/
List<CustomerreceiptRequestDetailDO> getCustomerreceiptRequestDetailList(CustomerreceiptRequestDetailExportReqVO exportReqVO);
/**
* 根据主表id查询
*
* @param masterId 主表id
* @return
*/
List<CustomerreceiptRequestDetailDO> selectList(Long masterId);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestDetailServiceImpl.java

@ -87,4 +87,8 @@ public class CustomerreceiptRequestDetailServiceImpl implements CustomerreceiptR
return customerreceiptRequestDetailMapper.selectList(exportReqVO);
}
@Override
public List<CustomerreceiptRequestDetailDO> selectList(Long masterId) {
return customerreceiptRequestDetailMapper.selectList(masterId);
}
}

45
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainService.java

@ -79,4 +79,49 @@ public interface CustomerreceiptRequestMainService {
*/
List<CustomerreceiptRequestMainDO> getCustomerreceiptRequestMainList(CustomerreceiptRequestMainExportReqVO exportReqVO);
/**
* 关闭客户收货申请主
*
* @param id 客户收货申请主ID
* @return 更新数量
*/
Integer closeCustomerreceiptRequestMain(Long id);
/**
* 重新添加客户收货申请主
*
* @param id 客户收货申请主ID
* @return 更新数量
*/
Integer reAddCustomerreceiptRequestMain(Long id);
/**
* 提交客户收货申请主
*
* @param id 客户收货申请主ID
* @return 更新数量
*/
Integer submitCustomerreceiptRequestMain(Long id);
/**
* 审批通过客户收货申请主
*
* @param id 客户收货申请主ID
* @return 更新数量
*/
Integer agreeCustomerreceiptRequestMain(Long id);
/**
* 处理客户收货申请主
* @param id
* @return
*/
Integer handleCustomerreceiptRequestMain(Long id);
/**
* 审批驳回客户收货申请主
*
* @param id 客户收货申请主ID
* @return 更新数量
*/
Integer refusedCustomerreceiptRequestMain(Long id);
}

242
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java

@ -1,17 +1,43 @@
package com.win.module.wms.service.customerreceiptRequest;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainExportReqVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainPageReqVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainUpdateReqVO;
import com.win.module.wms.controller.customerreceiptRecord.vo.CustomerreceiptRecordDetailCreateReqVO;
import com.win.module.wms.controller.customerreceiptRecord.vo.CustomerreceiptRecordMainCreateReqVO;
import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordDetailConvert;
import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordMainConvert;
import com.win.module.wms.convert.customerreceiptRequest.CustomerreceiptRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.customerreceiptRecord.CustomerreceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.customerreceiptRecord.CustomerreceiptRecordMainMapper;
import com.win.module.wms.dal.mysql.customerreceiptRequest.CustomerreceiptRequestDetailMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.customerreceiptRequest.CustomerreceiptRequestMainConvert;
@ -19,6 +45,7 @@ import com.win.module.wms.dal.mysql.customerreceiptRequest.CustomerreceiptReques
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.ErrorCodeConstants.CUSTOMERRECEIPT_REQUEST_CANNOT_SUBMIT;
/**
* 客户收货申请主 Service 实现类
@ -32,11 +59,59 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq
@Resource
private CustomerreceiptRequestMainMapper customerreceiptRequestMainMapper;
@Resource
private CustomerreceiptRequestDetailMapper customerreceiptRequestDetailMapper;
@Resource
private CustomerreceiptRecordMainMapper customerreceiptRecordMainMapper;
@Resource
private CustomerreceiptRecordDetailMapper customerreceiptRecordDetailMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private RequestsettingService requestsettingService;
@Override
public Long createCustomerreceiptRequestMain(CustomerreceiptRequestMainCreateReqVO createReqVO) {
// 插入
CustomerreceiptRequestMainDO customerreceiptRequestMain = CustomerreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
List<CustomerreceiptRequestDetailDO> subDOList = CustomerreceiptRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_RECEIPT_REQUEST.getCode());
customerreceiptRequestMain.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerreceiptRequest");
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
customerreceiptRequestMain.setStatus(requestStatusState.getState().getCode());
customerreceiptRequestMain.setAutoCommit(requestsettingDO.getAutoCommit());
customerreceiptRequestMain.setAutoAgree(requestsettingDO.getAutoAgree());
customerreceiptRequestMain.setAutoExecute(requestsettingDO.getAutoExecute());
customerreceiptRequestMain.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreceiptRequest");
customerreceiptRequestMain.setBusinessType(businesstypeDO.getCode());
customerreceiptRequestMain.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
customerreceiptRequestMain.setToLocationTypes(businesstypeDO.getInLocationTypes());
customerreceiptRequestMain.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
customerreceiptRequestMain.setToAreaCodes(businesstypeDO.getInAreaCodes());
customerreceiptRequestMain.setRequestTime(LocalDateTime.now());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(customerreceiptRequestMain.getStatus())) {
this.generateRecord(customerreceiptRequestMain,subDOList);
}
customerreceiptRequestMainMapper.insert(customerreceiptRequestMain);
for (CustomerreceiptRequestDetailDO customerreceiptRequestDetailDO : subDOList) {
customerreceiptRequestDetailDO.setMasterId(customerreceiptRequestMain.getId());
customerreceiptRequestDetailDO.setNumber(number);
}
trendsApi.createTrends(requestsettingDO.getId(), "CustomerreceiptRequest", "增加了客户收货申请", TrendsTypeEnum.CREATE);
// 返回
return customerreceiptRequestMain.getId();
}
@ -48,6 +123,7 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq
// 更新
CustomerreceiptRequestMainDO updateObj = CustomerreceiptRequestMainConvert.INSTANCE.convert(updateReqVO);
customerreceiptRequestMainMapper.updateById(updateObj);
trendsApi.createTrends(updateReqVO.getId(), "CustomerreceiptRequest", "修改了客户收货申请", TrendsTypeEnum.UPDATE);
}
@Override
@ -58,9 +134,12 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq
customerreceiptRequestMainMapper.deleteById(id);
}
private void validateCustomerreceiptRequestMainExists(Long id) {
if (customerreceiptRequestMainMapper.selectById(id) == null) {
private CustomerreceiptRequestMainDO validateCustomerreceiptRequestMainExists(Long id) {
CustomerreceiptRequestMainDO customerreceiptRequestMainDO = customerreceiptRequestMainMapper.selectById(id);
if (customerreceiptRequestMainDO == null) {
throw exception(CUSTOMERRECEIPT_REQUEST_MAIN_NOT_EXISTS);
} else {
return customerreceiptRequestMainDO;
}
}
@ -73,10 +152,12 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq
public List<CustomerreceiptRequestMainDO> getCustomerreceiptRequestMainList(Collection<Long> ids) {
return customerreceiptRequestMainMapper.selectBatchIds(ids);
}
@Override
public PageResult<CustomerreceiptRequestMainDO> getCustomerreceiptRequestMainSenior(CustomConditions conditions) {
return customerreceiptRequestMainMapper.selectSenior(conditions);
}
@Override
public PageResult<CustomerreceiptRequestMainDO> getCustomerreceiptRequestMainPage(CustomerreceiptRequestMainPageReqVO pageReqVO) {
return customerreceiptRequestMainMapper.selectPage(pageReqVO);
@ -87,4 +168,159 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq
return customerreceiptRequestMainMapper.selectList(exportReqVO);
}
/**
* 关闭客户收货申请
* @param id 客户收货申请主ID
* @return
*/
@Override
@Transactional
public Integer closeCustomerreceiptRequestMain(Long id) {
// 校验存在存在下级单据
CustomerreceiptRequestMainDO mainDO = validateCustomerreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if (!flag) {
throw new ServiceException(CUSTOMERRECEIPT_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "CustomerreceiptRequest", "关闭了客户收货申请", TrendsTypeEnum.UPDATE);
return customerreceiptRequestMainMapper.updateById(mainDO);
}
/**
* 打开客户收货申请
* @param id 客户收货申请主ID
* @return
*/
@Override
@Transactional
public Integer reAddCustomerreceiptRequestMain(Long id) {
// 校验存在存在下级单据
CustomerreceiptRequestMainDO mainDO = validateCustomerreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if (!flag) {
throw new ServiceException(CUSTOMERRECEIPT_REQUEST_CANNOT_RE_ADD);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "CustomerreceiptRequest", "打开了客户收货申请", TrendsTypeEnum.UPDATE);
return customerreceiptRequestMainMapper.updateById(mainDO);
}
/**
* 提交客户收货申请
* @param id 客户收货申请主ID
* @return
*/
@Override
@Transactional
public Integer submitCustomerreceiptRequestMain(Long id) {
CustomerreceiptRequestMainDO mainDO = validateCustomerreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if (!flag) {
throw new ServiceException(CUSTOMERRECEIPT_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateRecord(mainDO, customerreceiptRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "CustomerreceiptRequest", "提交了客户收货申请", TrendsTypeEnum.UPDATE);
return customerreceiptRequestMainMapper.updateById(mainDO);
}
/**
* 审批同意客户收货申请
* @param id 客户收货申请主ID
* @return
*/
@Override
@Transactional
public Integer agreeCustomerreceiptRequestMain(Long id) {
// 校验存在
CustomerreceiptRequestMainDO mainDO = validateCustomerreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if (!flag) {
throw new ServiceException(CUSTOMERRECEIPT_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateRecord(mainDO, customerreceiptRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "CustomerreceiptRequest", "审批同意了客户收货申请", TrendsTypeEnum.UPDATE);
return customerreceiptRequestMainMapper.updateById(mainDO);
}
/**
* 执行客户收货申请
* @param id 客户收货申请主ID
* @return
*/
@Override
@Transactional
public Integer handleCustomerreceiptRequestMain(Long id) {
// 校验存在
CustomerreceiptRequestMainDO mainDO = validateCustomerreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if (!flag) {
throw new ServiceException(CUSTOMERRECEIPT_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateRecord(mainDO, customerreceiptRequestDetailMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "CustomerreceiptRequest", "执行了客户收货申请", TrendsTypeEnum.UPDATE);
return customerreceiptRequestMainMapper.updateById(mainDO);
}
/**
* 审批驳回客户收货申请
* @param id 客户收货申请主ID
* @return
*/
@Override
@Transactional
public Integer refusedCustomerreceiptRequestMain(Long id) {
// 校验存在
CustomerreceiptRequestMainDO mainDO = validateCustomerreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if (!flag) {
throw new ServiceException(CUSTOMERRECEIPT_REQUEST_CANNOT_REFUSED);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "CustomerreceiptRequest", "审批驳回了客户收货申请", TrendsTypeEnum.UPDATE);
return customerreceiptRequestMainMapper.updateById(mainDO);
}
/**
* 生成客户收货记录不要改动事务传播方式否则会有事务问题
*
* @param mainDO 客户收货主
* @param detailDOList 客户收货子
*/
private void generateRecord(CustomerreceiptRequestMainDO mainDO, List<CustomerreceiptRequestDetailDO> detailDOList) {
if ("TRUE".equals(mainDO.getDirectCreateRecord())) {
CustomerreceiptRecordMainCreateReqVO customerreceiptRecordMainCreateReqVO = new CustomerreceiptRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, customerreceiptRecordMainCreateReqVO);
customerreceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_RECEIPT_REQUEST.getCode());
customerreceiptRecordMainCreateReqVO.setNumber(number);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreceiptRecord");
customerreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
customerreceiptRecordMainMapper.insert(CustomerreceiptRecordMainConvert.INSTANCE.convert(customerreceiptRecordMainCreateReqVO));
for (CustomerreceiptRequestDetailDO customerreceiptRequestDetailDO : detailDOList) {
CustomerreceiptRecordDetailCreateReqVO customerreceiptRecordDetailCreateReqVO = new CustomerreceiptRecordDetailCreateReqVO();
BeanUtils.copyProperties(customerreceiptRequestDetailDO, customerreceiptRecordDetailCreateReqVO);
customerreceiptRecordDetailCreateReqVO.setNumber(number);
customerreceiptRecordDetailMapper.insert(CustomerreceiptRecordDetailConvert.INSTANCE.convert(customerreceiptRecordDetailCreateReqVO));
trendsApi.createTrends(mainDO.getId(), "CustomerreceiptRecord", "客户收货申请生成客户收货记录", TrendsTypeEnum.CREATE);
}
}
}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobDetailService.java

@ -79,4 +79,10 @@ public interface CustomerreturnJobDetailService {
*/
List<CustomerreturnJobDetailDO> getCustomerreturnJobDetailList(CustomerreturnJobDetailExportReqVO exportReqVO);
/**
* 获得客户退货任务子列表,
* @param masterId
* @return
*/
List<CustomerreturnJobDetailDO> selectList(Long masterId);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetai
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailExportReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailPageReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -87,4 +88,8 @@ public class CustomerreturnJobDetailServiceImpl implements CustomerreturnJobDeta
return customerreturnJobDetailMapper.selectList(exportReqVO);
}
@Override
public List<CustomerreturnJobDetailDO> selectList(Long masterId) {
return customerreturnJobDetailMapper.selectList(masterId);
}
}

28
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainService.java

@ -114,4 +114,32 @@ public interface CustomerreturnJobMainService {
* @return
*/
Map<String,Integer> getCountByStatus(@Nullable Collection<String> types);
/**
* 承接任务
* @param id
* @return
*/
Integer acceptCustomerreturnJobMain(Long id);
/**
* 取消承接任务
* @param id
* @return
*/
Integer abandonCustomerreturnJobMain(Long id);
/**
* 关闭任务
* @param id
* @return
*/
Integer closeCustomerreturnJobMain(Long id);
/**
* 执行任务
* @param customerreturnJobMainUpdateReqVO
* @return
*/
Integer executeCustomerreturnJobMain(CustomerreturnJobMainUpdateReqVO customerreturnJobMainUpdateReqVO);
}

232
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java

@ -1,19 +1,55 @@
package com.win.module.wms.service.customerreturnJob;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainCreateReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainExportReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainPageReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainUpdateReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailUpdateReqVO;
import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordDetailMapper;
import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordMainMapper;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.expectout.ExpectoutService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.purchase.PurchaseMainService;
import com.win.module.wms.service.sale.SaleMainService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Valid;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
@ -23,6 +59,7 @@ import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobMainConvert
import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -36,11 +73,33 @@ public class CustomerreturnJobMainServiceImpl implements CustomerreturnJobMainSe
@Resource
private CustomerreturnJobMainMapper customerreturnJobMainMapper;
@Resource
private PurchaseMainService purchaseMainService;
@Resource
private SaleMainService saleMainService;
@Resource
private ExpectoutService expectoutService;
@Resource
private TransactionService transactionService;
@Resource
private LocationService locationService;
@Resource
private AdminUserApi userApi;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private CustomerreturnJobDetailService customerreturnJobDetailService;
@Resource
private CustomerreturnRecordMainMapper customerreturnRecordMainMapper;
@Resource
private CustomerreturnRecordDetailMapper customerreturnRecordDetailMapper;
@Resource
private CustomerreturnRequestMainMapper customerreturnRequestMainMapper;
@Override
public Long createCustomerreturnJobMain(CustomerreturnJobMainCreateReqVO createReqVO) {
// 插入
@ -67,10 +126,12 @@ public class CustomerreturnJobMainServiceImpl implements CustomerreturnJobMainSe
customerreturnJobMainMapper.deleteById(id);
}
private void validateCustomerreturnJobMainExists(Long id) {
if (customerreturnJobMainMapper.selectById(id) == null) {
private CustomerreturnJobMainDO validateCustomerreturnJobMainExists(Long id) {
CustomerreturnJobMainDO customerreturnJobMainDO = customerreturnJobMainMapper.selectById(id);
if (customerreturnJobMainDO == null) {
throw exception(CUSTOMERRETURN_JOB_MAIN_NOT_EXISTS);
}
return customerreturnJobMainDO;
}
@Override
@ -95,7 +156,7 @@ public class CustomerreturnJobMainServiceImpl implements CustomerreturnJobMainSe
public List<CustomerreturnJobMainDO> getCustomerreturnJobMainList(CustomerreturnJobMainExportReqVO exportReqVO) {
return customerreturnJobMainMapper.selectList(exportReqVO);
}
//校验采购订单明细
//校验客户订单明细
@Override
public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode,String poLine) {
PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode,poLine);
@ -127,4 +188,167 @@ public class CustomerreturnJobMainServiceImpl implements CustomerreturnJobMainSe
map.put("count", l.intValue());
return map;
}
@Override
@Transactional
public Integer acceptCustomerreturnJobMain(Long id) {
CustomerreturnJobMainDO customerreturnJobMainDO = this.validateCustomerreturnJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(customerreturnJobMainDO.getStatus());
if(!jobStatusState.accept()) {
throw exception(CUSTOMERRETURN_JOB_MAIN_STATUS_ERROR);
}
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
customerreturnJobMainDO.setStatus(jobStatusState.getState().getCode());
customerreturnJobMainDO.setAcceptUserId(String.valueOf(userId));
customerreturnJobMainDO.setAcceptUserName(userRespDTO.getNickname());
customerreturnJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "customerreturnJob", "承接了客户退货任务", TrendsTypeEnum.UPDATE);
return customerreturnJobMainMapper.updateById(customerreturnJobMainDO);
}
@Override
@Transactional
public Integer abandonCustomerreturnJobMain(Long id) {
CustomerreturnJobMainDO customerreturnJobMainDO = this.validateCustomerreturnJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(customerreturnJobMainDO.getStatus());
if(!jobStatusState.cancelAccept()) {
throw exception(CUSTOMERRETURN_JOB_MAIN_STATUS_ERROR);
}
customerreturnJobMainDO.setStatus(jobStatusState.getState().getCode());
customerreturnJobMainDO.setAcceptUserId(null);
customerreturnJobMainDO.setAcceptUserName(null);
customerreturnJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "customerreturnJob", "取消了客户退货任务", TrendsTypeEnum.UPDATE);
return customerreturnJobMainMapper.updateById(customerreturnJobMainDO);
}
@Override
@Transactional
public Integer closeCustomerreturnJobMain(Long id) {
CustomerreturnJobMainDO customerreturnJobMainDO = this.validateCustomerreturnJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(customerreturnJobMainDO.getStatus());
if(!jobStatusState.close()) {
throw exception(CUSTOMERRETURN_JOB_MAIN_STATUS_ERROR);
}
customerreturnJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "customerreturnJob", "关闭了客户退货任务", TrendsTypeEnum.UPDATE);
return customerreturnJobMainMapper.updateById(customerreturnJobMainDO);
}
@Override
@Transactional
public Integer executeCustomerreturnJobMain(CustomerreturnJobMainUpdateReqVO customerreturnJobMainUpdateReqVO) {
//查询数据
CustomerreturnJobMainDO customerreturnJobMainDO = this.validateCustomerreturnJobMainExists(customerreturnJobMainUpdateReqVO.getId());
List<CustomerreturnJobDetailDO> subList = customerreturnJobDetailService.selectList(customerreturnJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(customerreturnJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
customerreturnJobMainDO.setStatus(jobStatusState.getState().getCode());
customerreturnJobMainDO.setCompleteTime(LocalDateTime.now());
customerreturnJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
customerreturnJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
int result = customerreturnJobMainMapper.updateById(customerreturnJobMainDO);
//创建客户收货记录主表
CustomerreturnRecordMainDO customerreturnRecordMainDO = new CustomerreturnRecordMainDO();
BeanUtils.copyProperties(customerreturnJobMainDO, customerreturnRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_JOB.getCode());
customerreturnRecordMainDO.setNumber(number);
customerreturnRecordMainDO.setJobNumber(customerreturnJobMainDO.getNumber());
customerreturnRecordMainDO.setId(null);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectJob");
customerreturnRecordMainDO.setBusinessType(businesstypeDO.getCode());
customerreturnRecordMainMapper.insert(customerreturnRecordMainDO);
List<CustomerreturnJobDetailUpdateReqVO> customerreturnJobDetailUpdateReqVOList = customerreturnJobMainUpdateReqVO.getSubList();
//退货记录子
List<CustomerreturnRecordDetailDO> customerreturnRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(CustomerreturnJobDetailDO customerreturnJobDetailDO : subList) {
CustomerreturnJobDetailUpdateReqVO customerreturnJobDetailUpdateReqVOTemp = null;
for (CustomerreturnJobDetailUpdateReqVO customerreturnJobDetailUpdateReqVO : customerreturnJobDetailUpdateReqVOList) {
if (customerreturnJobDetailDO.getId().equals(customerreturnJobDetailUpdateReqVO.getId())) {
customerreturnJobDetailUpdateReqVOTemp = customerreturnJobDetailUpdateReqVO;
break;
}
}
CustomerreturnRecordDetailDO customerreturnRecordDetailDO = new CustomerreturnRecordDetailDO();
BeanUtils.copyProperties(customerreturnJobDetailDO, customerreturnRecordDetailDO);
customerreturnRecordDetailDO.setMasterId(customerreturnRecordMainDO.getId().toString());
customerreturnRecordDetailDO.setNumber(number);
customerreturnRecordDetailDO.setJobDetailId(String.valueOf(customerreturnJobDetailDO.getId()));
customerreturnRecordDetailDO.setFromBatch(customerreturnJobDetailDO.getBatch());
customerreturnRecordDetailDO.setToBatch(customerreturnJobDetailUpdateReqVOTemp.getToBatch());
customerreturnRecordDetailDO.setFromPackingNumber(customerreturnJobDetailDO.getPackingNumber());
customerreturnRecordDetailDO.setToPackingNumber(customerreturnJobDetailUpdateReqVOTemp.getToPackingNumber());
customerreturnRecordDetailDO.setFromContainerNumber(customerreturnJobDetailDO.getContainerNumber());
customerreturnRecordDetailDO.setToContainerNumber(customerreturnJobDetailUpdateReqVOTemp.getToContainerNumber());
customerreturnRecordDetailDO.setFromLocationCode(customerreturnJobDetailDO.getFromLocationCode());
LocationDO FromLocationDO = locationService.selectLocation(customerreturnJobDetailDO.getFromLocationCode());
if(FromLocationDO != null){
customerreturnRecordDetailDO.setFromAreaCode(FromLocationDO.getAreaCode());
customerreturnRecordDetailDO.setFromLocationGroupCode(FromLocationDO.getLocationGroupCode());
}
customerreturnRecordDetailDO.setToLocationCode(customerreturnJobDetailUpdateReqVOTemp.getToLocationCode());
LocationDO toLocationDO = locationService.selectLocation(customerreturnJobDetailDO.getToLocationCode());
if(toLocationDO != null){
customerreturnRecordDetailDO.setToAreaCode(FromLocationDO.getAreaCode());
customerreturnRecordDetailDO.setToLocationGroupCode(FromLocationDO.getLocationGroupCode());
}
customerreturnRecordDetailDO.setInventoryStatus(customerreturnJobDetailUpdateReqVOTemp.getToInventoryStatus());
customerreturnRecordDetailDO.setQty(customerreturnJobDetailUpdateReqVOTemp.getHandleQty());
customerreturnRecordDetailDO.setId(null);
customerreturnRecordDetailDO.setCreator(null);
customerreturnRecordDetailDO.setCreateTime(null);
customerreturnRecordDetailDO.setUpdater(null);
customerreturnRecordDetailDO.setUpdateTime(null);
customerreturnRecordDetailDOList.add(customerreturnRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(customerreturnRecordDetailDO, transactionCreateReqVO);
//增加业务类型
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(customerreturnRecordMainDO.getBusinessType());
transactionCreateReqVO.setLocationCode(customerreturnJobDetailDO.getFromLocationCode());
transactionCreateReqVO.setOwnerCode(customerreturnRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setBatch(customerreturnRecordDetailDO.getFromBatch());
transactionCreateReqVO.setPackingNumber(customerreturnRecordDetailDO.getFromPackingNumber());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVO);
}
customerreturnRecordDetailMapper.insertBatch(customerreturnRecordDetailDOList);
List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = customerreturnJobMainMapper.selectListCount(typeList, customerreturnJobMainDO.getRequestNumber());
CustomerreturnRequestMainDO customerreturnRequestMainDO = customerreturnRequestMainMapper.selectByNumber(customerreturnJobMainDO.getRequestNumber());
//申请单下所有任务全部完成
if(count == 0) {
customerreturnRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
customerreturnRequestMainMapper.updateById(customerreturnRequestMainDO);
} else if(customerreturnRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
customerreturnRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
customerreturnRequestMainMapper.updateById(customerreturnRequestMainDO);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计出
expectoutService.deleteExpectoutByJobNumber(customerreturnJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(customerreturnJobMainDO.getId(), "customerreturnJob", "执行了客户退货任务", TrendsTypeEnum.UPDATE);
return result;
}
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordDetailService.java

@ -79,4 +79,5 @@ public interface CustomerreturnRecordDetailService {
*/
List<CustomerreturnRecordDetailDO> getCustomerreturnRecordDetailList(CustomerreturnRecordDetailExportReqVO exportReqVO);
List<CustomerreturnRecordDetailDO> selectList(Long masterId);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecor
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordDetailExportReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordDetailPageReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreceiptRequest.CustomerreceiptRequestDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -87,4 +88,8 @@ public class CustomerreturnRecordDetailServiceImpl implements CustomerreturnReco
return customerreturnRecordDetailMapper.selectList(exportReqVO);
}
@Override
public List<CustomerreturnRecordDetailDO> selectList(Long masterId) {
return customerreturnRecordDetailMapper.selectList(masterId);
}
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestDetailService.java

@ -79,4 +79,5 @@ public interface CustomerreturnRequestDetailService {
*/
List<CustomerreturnRequestDetailDO> getCustomerreturnRequestDetailList(CustomerreturnRequestDetailExportReqVO exportReqVO);
List<CustomerreturnRequestDetailDO> selectList(Long id);
}

157
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestDetailServiceImpl.java

@ -1,14 +1,28 @@
package com.win.module.wms.service.customerreturnRequest;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailExportReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailPageReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper;
import com.win.module.wms.service.deliverRecord.DeliverRecordMainService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.util.*;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
@ -31,12 +45,24 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq
@Resource
private CustomerreturnRequestDetailMapper customerreturnRequestDetailMapper;
@Resource
private CustomerreturnRequestMainMapper customerreturnRequestMainMapper;
@Resource
private DeliverRecordMainService deliverRecordMainService;
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Resource
private TrendsApi trendsApi;
@Override
public Long createCustomerreturnRequestDetail(CustomerreturnRequestDetailCreateReqVO createReqVO) {
// 插入
CustomerreturnRequestDetailDO customerreturnRequestDetail = CustomerreturnRequestDetailConvert.INSTANCE.convert(createReqVO);
validateCustomerreturnRequestDetailCreate(customerreturnRequestMainMapper.selectById(customerreturnRequestDetail.getId()),customerreturnRequestDetail);
customerreturnRequestDetailMapper.insert(customerreturnRequestDetail);
trendsApi.createTrends(customerreturnRequestDetail.getId(), "CustomerreturnRequestDetail", "新增了客户退货申请", TrendsTypeEnum.CREATE);
// 返回
return customerreturnRequestDetail.getId();
}
@ -47,7 +73,10 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq
validateCustomerreturnRequestDetailExists(updateReqVO.getId());
// 更新
CustomerreturnRequestDetailDO updateObj = CustomerreturnRequestDetailConvert.INSTANCE.convert(updateReqVO);
validateCustomerreturnRequestDetailCreate(customerreturnRequestMainMapper.selectById(updateObj.getId()),updateObj);
customerreturnRequestDetailMapper.updateById(updateObj);
trendsApi.createTrends(updateObj.getId(), "CustomerreturnRequestDetail", "修改了客户退货申请", TrendsTypeEnum.UPDATE);
}
@Override
@ -87,4 +116,130 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq
return customerreturnRequestDetailMapper.selectList(exportReqVO);
}
@Override
public List<CustomerreturnRequestDetailDO> selectList(Long masterId) {
return customerreturnRequestDetailMapper.selectList(masterId);
}
/**
* 新增子表校验
* @param detailDo
* @return
*/
private void validateCustomerreturnRequestDetailCreate(CustomerreturnRequestMainDO mainDo, CustomerreturnRequestDetailDO detailDo) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreturnRequest");
//校验成品发货记录子表并赋值
validateDeliverRecordDetail(mainDo,detailDo);
//校验物品基础信息并赋值
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
if ( !detailDo.getUom().equals(itembasicDO.getUom())) {
//注意转换字段数值
throw exception(UOM_EXCEPTION,"计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",");
}
//校验来源库位
if(!"".equals(detailDo.getFromLocationCode())){
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
}
//校验到库位
validatorIfInFromLocationType(detailDo.getToLocationCode(),businesstypeDO);
//校验库存状态
validatorIfInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO);
//校验库存余额
validatorBalance(detailDo);
}
/**
* 校验成品发货记录子表并赋值
* @param mainDo
* @param detailDO
*/
private void validateDeliverRecordDetail(CustomerreturnRequestMainDO mainDo,CustomerreturnRequestDetailDO detailDO){
List<DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber());
if(deliverRecordDetailDO != null && deliverRecordDetailDO.size() != 0){
for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) {
if (
// deliver.getSoNumber().equals(detailDO.getSoNumber()) &&
// deliver.getSoLine().equals(detailDO.getSoLine()) &&
deliver.getItemCode().equals(detailDO.getItemCode()) &&
deliver.getBatch().equals(detailDO.getBatch()) &&
deliver.getPackingNumber().equals(detailDO.getPackingNumber()))
{
detailDO.setQty(deliver.getQty());
detailDO.setUom(deliver.getUom());
} else {
throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单"
+ mainDo.getDeliverRecordNumber() + "中");
// throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"销售订单号" + detailDO.getSoNumber() + "销售订单行" + detailDO.getSoLine()
// + "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单"
// + createReqVO.getDeliverRecordNumber() + "中");
}
}
}
else {
throw exception(DELIVER_RECORD_DETAIL_NOT_EXISTS);
}
}
/**
* 校验物品基础信息并赋值
* @param itemCode
*/
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
/**
* 校验出库库位类型是否一致
* @param fromLocationCode
* @param businesstypeDO
*/
private void validatorIfInToLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInToLocationType(fromLocationCode, businesstypeDO);
}
/**
* 校验出库库位类型是否一致
* @param toLocationCode
* @param businesstypeDO
*/
private void validatorIfInFromLocationType(String toLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInFromLocationType(toLocationCode, businesstypeDO);
}
/**
* 校验库存状态是否一致
* @param inventoryStatus
* @param businesstypeDO
*/
private Boolean validatorIfInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) {
return jobUtils.ifInInventoryStatuses(inventoryStatus, businesstypeDO);
}
/**
* 校验库存余额
* @param
*/
private void validatorBalance(CustomerreturnRequestDetailDO detailDO) {
ArrayList<String> list = new ArrayList<>();
list.add(detailDO.getInventoryStatus());
if("CUST".equals(detailDO.getFromLocationCode())){
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(),detailDO.getPackingNumber()
,detailDO.getBatch(),detailDO.getFromLocationCode(),list);
isqty(detailDO.getQty(), balance.get(0).getQty());
}
}
/**
* 校验库存数量
* @param qty1
* @param qty2
* @return
*/
private String isqty(BigDecimal qty1, BigDecimal qty2) {
if (qty1.compareTo(qty2) < 0) {
return "ture";
} else {
throw new UtilException("上架数量" + qty2 + "不能大于库存数量" + qty1);
}
}
}

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java

@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveReques
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO;
/**
* 客户退货申请主 Service 接口
@ -56,6 +57,13 @@ public interface CustomerreturnRequestMainService {
*/
List<CustomerreturnRequestMainDO> getCustomerreturnRequestMainList(Collection<Long> ids);
/**
* 获得客户退货申请主列表
*
* @param ids 编号
* @return 客户退货申请主列表
*/
List<CustomerreturnRequestMainDO> getCustomerreturnRequestMainList(CustomConditions conditions);
/**
* 获得客户退货申请主分页
*
@ -81,4 +89,50 @@ public interface CustomerreturnRequestMainService {
public List<CustomerreturnRequestImportErrorVO> importCustomerreturnMainList(List<CustomerreturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 关闭退货申请主
*
* @param id 退货申请主ID
* @return 更新数量
*/
Integer closeCustomerreturnRequestMain(Long id);
/**
* 重新添加退货申请主
*
* @param id 退货申请主ID
* @return 更新数量
*/
Integer reAddCustomerreturnRequestMain(Long id);
/**
* 提交退货申请主
*
* @param id 退货申请主ID
* @return 更新数量
*/
Integer submitCustomerreturnRequestMain(Long id);
/**
* 审批通过退货申请主
*
* @param id 退货申请主ID
* @return 更新数量
*/
Integer agreeCustomerreturnRequestMain(Long id);
/**
* 处理退货申请主
* @param id
* @return
*/
Integer handleCustomerreturnRequestMain(Long id);
/**
* 审批拒绝退货申请主
*
* @param id 退货申请主ID
* @return 更新数量
*/
Integer refusedCustomerreturnRequestMain(Long id);
}

758
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java

@ -2,37 +2,59 @@ package com.win.module.wms.service.customerreturnRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.web.core.util.WebFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordDetailCreateReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobDetailConvert;
import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobMainConvert;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordDetailConvert;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordMainConvert;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobDetailMapper;
import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobMainMapper;
import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordDetailMapper;
import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.customerdock.CustomerdockService;
import com.win.module.wms.service.deliverRecord.*;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestDetailMapper;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.jobsetting.JobsettingService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.*;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.util.*;
import com.win.module.wms.service.location.*;
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
import com.win.module.wms.service.purchasereceiptRecord.*;
import com.win.module.wms.service.itembasic.*;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
@ -42,6 +64,7 @@ import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestMainConvert;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
@ -60,9 +83,18 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
@Resource
private CustomerreturnRequestDetailMapper customerreturnRequestDetailMapper;
@Resource
private CustomerreturnJobMainMapper customerreturnJobMainMapper;
@Resource
private CustomerreturnJobDetailMapper customerreturnJobDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private RecordsettingService recordsettingService;
@Resource
private DeliverRecordMainService deliverRecordMainService;
@ -71,7 +103,6 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@ -83,13 +114,55 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
@Resource
private Validator validator;
@Resource
private ExpectinService expectinService;
@Resource
private TrendsApi trendsApi;
@Resource
private CustomerreturnRecordMainMapper customerreturnRecordMainMapper;
@Resource
private CustomerreturnRecordDetailMapper customerreturnRecordDetailMapper;
@Resource
private AdminUserApi userApi;
@Resource
private JobsettingService jobsettingService;
@Resource
private CustomerdockService customerdockService;
@Override
public Long createCustomerreturnRequestMain(CustomerreturnRequestMainCreateReqVO createReqVO) {
// 插入
CustomerreturnRequestMainDO customerreturnRequestMain = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO);
customerreturnRequestMainMapper.insert(customerreturnRequestMain);
CustomerreturnRequestMainDO mainDO = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO);
this.validateCustomerreturnRequestMainCreate(mainDO);
List<CustomerreturnRequestDetailDO> subDOList = CustomerreturnRequestMainConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (CustomerreturnRequestDetailDO detailDO : subDOList) {
this.validateCustomerreturnRequestDetailCreate(mainDO,detailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_REQUEST.getCode());
mainDO.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDO.getAutoCommit(), mainDO.getAutoAgree(), mainDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList);
}
customerreturnRequestMainMapper.insert(mainDO);
for (CustomerreturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
}
customerreturnRequestDetailMapper.insertBatch(subDOList);
trendsApi.createTrends(mainDO.getId(), "CustomerreturnRequestMain", "增加了客户退货申请", TrendsTypeEnum.CREATE);
// 返回
return customerreturnRequestMain.getId();
return mainDO.getId();
}
@Override
@ -98,7 +171,13 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
validateCustomerreturnRequestMainExists(updateReqVO.getId());
// 更新
CustomerreturnRequestMainDO updateObj = CustomerreturnRequestMainConvert.INSTANCE.convert(updateReqVO);
this.validateCustomerreturnRequestMainCreate(updateObj);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(updateObj.getStatus())) {
this.generateJob(updateObj, customerreturnRequestDetailMapper.selectList(updateReqVO.getId()));
}
customerreturnRequestMainMapper.updateById(updateObj);
trendsApi.createTrends(updateObj.getId(), "CustomerreturnRequestMain", "修改了客户退货申请", TrendsTypeEnum.UPDATE);
}
@Override
@ -109,12 +188,6 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
customerreturnRequestMainMapper.deleteById(id);
}
private void validateCustomerreturnRequestMainExists(Long id) {
if (customerreturnRequestMainMapper.selectById(id) == null) {
throw exception(CUSTOMERRETURN_REQUEST_MAIN_NOT_EXISTS);
}
}
@Override
public CustomerreturnRequestMainDO getCustomerreturnRequestMain(Long id) {
return customerreturnRequestMainMapper.selectById(id);
@ -125,203 +198,528 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
return customerreturnRequestMainMapper.selectBatchIds(ids);
}
@Override
public List<CustomerreturnRequestMainDO> getCustomerreturnRequestMainList(CustomConditions conditions) {
return customerreturnRequestMainMapper.selectSeniorList(conditions);
}
@Override
public PageResult<CustomerreturnRequestMainDO> getCustomerreturnRequestMainPage(CustomerreturnRequestMainPageReqVO pageReqVO) {
return customerreturnRequestMainMapper.selectPage(pageReqVO);
}
@Override
public PageResult<CustomerreturnRequestMainDO> getCustomerreturnRequestMainSenior(CustomConditions conditions) {
return customerreturnRequestMainMapper.selectSenior(conditions);
}
@Override
public List<CustomerreturnRequestMainDO> getCustomerreturnRequestMainList(CustomerreturnRequestMainExportReqVO exportReqVO) {
return customerreturnRequestMainMapper.selectList(exportReqVO);
}
private void validatePurchaseclaimRequestMainExists(Long id) {
private CustomerreturnRequestMainDO validateCustomerreturnRequestMainExists(Long id) {
CustomerreturnRequestMainDO customerRequestMainDO = customerreturnRequestMainMapper.selectById(id);
if (customerRequestMainDO == null) {
return;
}else {
throw exception(CUSTOMERRETURN_REQUEST_NOT_EXISTS);
}
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
throw new UtilException("上架数量"+qty2+ "不能大于库存数量"+ qty1);
return customerRequestMainDO;
}
}
@Override
@Transactional
public List<CustomerreturnRequestImportErrorVO> importCustomerreturnMainList(List<CustomerreturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
public List<CustomerreturnRequestImportErrorVO> importCustomerreturnMainList(List<CustomerreturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(CUSTOMERRETURN_REQUEST_NOT_EXISTS);
throw exception(CUSTOMERRETURN_REQUEST_MAIN_NOT_EXISTS);
}
List< CustomerreturnRequestImportErrorVO> errorList = new ArrayList<>();
List<CustomerreturnRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
BusinesstypeDO businesstypeDO = null;
//主表校验方法
try {
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(createReqVO.getDeliverRecordNumber());
createReqVO.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber());
createReqVO.setCustomerCode(deliverRecordMainDO.getCustomerCode());
createReqVO.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode());
createReqVO.setCreateTime(LocalDateTime.now());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
CustomerreturnRequestMainDO mainDo = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateCustomerreturnRequestMainImport(mainDo);
List<CustomerreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<CustomerreturnRequestDetailDO> subDOList = CustomerreturnRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (CustomerreturnRequestDetailDO detailDO : subDOList) {
String messageDetail = validateCustomerreturnRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (messageMain.isEmpty() || messageDetail.isEmpty()) {
CustomerreturnRequestImportErrorVO importErrorVO = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if (flag) {
mainDo.setStatus(PlanStatusEnum.NEW.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_REQUEST.getCode());
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(mainDo.getDeliverRecordNumber());
if(deliverRecordMainDO != null){
mainDo.setFromWarehouseCode(deliverRecordMainDO.getToWarehouseCode());
mainDo.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode());
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
mainDo.setRequestTime(LocalDateTime.now());
mainDo.setNumber(number);
customerreturnRequestMainMapper.insert(mainDo);
for (CustomerreturnRequestDetailDO detailDO : subDOList) {
detailDO.setNumber(mainDo.getNumber());
detailDO.setMasterId(mainDo.getId());
}
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
customerreturnRequestDetailMapper.insertBatch(subDOList);
}
try{
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes());
createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes());
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
});
return errorList;
}
private void generateJob(CustomerreturnRequestMainDO mainDO, List<CustomerreturnRequestDetailDO> detailDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
CustomerreturnRecordMainCreateReqVO customerreturnRecordMainCreateReqVO = new CustomerreturnRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, customerreturnRecordMainCreateReqVO);
//记录主表数据 同名属性同名赋值
customerreturnRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
customerreturnRecordMainCreateReqVO.setId(null);
customerreturnRecordMainCreateReqVO.setCreator(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
customerreturnRecordMainCreateReqVO.setCreateTime(null);
customerreturnRecordMainCreateReqVO.setActiveDate(LocalDateTime.now());
customerreturnRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_RECORD.getCode());
customerreturnRecordMainCreateReqVO.setNumber(number);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRecord");
customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
customerreturnRecordMainMapper.insert(CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO));
for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
//记录子表数据 同名属性同名赋值
CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO();
BeanUtils.copyProperties(customerreturnRequestDetailDO, customerreturnRecordDetailCreateReqVO);
customerreturnRecordDetailCreateReqVO.setFromBatch(customerreturnRequestDetailDO.getBatch());
customerreturnRecordDetailCreateReqVO.setMasterId(customerreturnRequestDetailDO.getId().toString());
customerreturnRecordDetailCreateReqVO.setId(null);
customerreturnRecordDetailCreateReqVO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
customerreturnRecordDetailCreateReqVO.setCreateTime(null);
customerreturnRecordDetailMapper.insert(CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO));
}
return;
}
//生成客户退货任务
CustomerreturnJobMainDO customerreturnJobMainDO = CustomerreturnJobMainConvert.INSTANCE.convert(mainDO);
//任务主表数据 同名属性同名赋值
BeanUtils.copyProperties(mainDO, customerreturnJobMainDO);
customerreturnJobMainDO.setRequestNumber(mainDO.getNumber());
customerreturnJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_JOB.getCode());
customerreturnJobMainDO.setNumber(number);
customerreturnJobMainDO.setId(null);
customerreturnJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
customerreturnJobMainDO.setCreateTime(null);
customerreturnJobMainDO.setUpdater(null);
customerreturnJobMainDO.setUpdateTime(null);
// 获取任务单据设置
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("CustomerRejectJob");
customerreturnJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
customerreturnJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
customerreturnJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());
customerreturnJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty());
customerreturnJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty());
customerreturnJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus());
customerreturnJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning());
customerreturnJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
customerreturnJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
customerreturnJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectJob");
customerreturnJobMainDO.setBusinessType(businesstypeDO.getCode());
customerreturnJobMainMapper.insert(customerreturnJobMainDO);
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<CustomerreturnJobDetailDO> customerreturnJobDetailDOList = new ArrayList<>();
for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
//任务子表数据 同名属性同名赋值
CustomerreturnJobDetailDO customerreturnJobDetailDO = CustomerreturnJobDetailConvert.INSTANCE.convert(customerreturnRequestDetailDO);
BeanUtils.copyProperties(customerreturnRequestDetailDO, customerreturnJobDetailDO);
customerreturnJobDetailDO.setOwnerCode(customerreturnRequestDetailDO.getFromOwnerCode());
customerreturnJobDetailDO.setId(null);
customerreturnJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
customerreturnJobDetailDO.setCreateTime(null);
customerreturnJobDetailDO.setUpdater(null);
customerreturnJobDetailDO.setUpdateTime(null);
customerreturnJobDetailDO.setMasterId(customerreturnJobMainDO.getId());
customerreturnJobDetailDOList.add(customerreturnJobDetailDO);
//预计入
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(customerreturnJobDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number);
expectinCreateReqVO.setBusinessType(customerreturnJobMainDO.getBusinessType());
expectinCreateReqVO.setLocationCode(customerreturnJobDetailDO.getFromLocationCode());
expectinCreateReqVO.setOwnerCode(customerreturnJobDetailDO.getOwnerCode());
expectinCreateReqVO.setQty(customerreturnJobDetailDO.getQty());
expectinCreateReqVOList.add(expectinCreateReqVO);
}
customerreturnJobDetailMapper.insertBatch(customerreturnJobDetailDOList);
//增加预计入
expectinService.createExpectin(expectinCreateReqVOList);
trendsApi.createTrends(customerreturnJobMainDO.getId(), "CustomerRejectJob", "客户退货申请生成客户退货任务", TrendsTypeEnum.CREATE);
}
/**
* 主表校验导入并赋值一些参数
* @param mainDo
* @return
*/
private String validateCustomerreturnRequestMainImport(CustomerreturnRequestMainDO mainDo) {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
//主表的验证
//校验客户代码
try {
CustomerreturnRequestMainDO customerreturnRequestMainDO = this.validateDeliverRecord(mainDo);
mainDo.setDeliverPlanNumber(customerreturnRequestMainDO.getDeliverPlanNumber());
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
//校验业务类型相关属性
try {
validateRequestsettingAndBusinesstype(mainDo);
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
return messageMain;
}
/**
* 子表校验导入并赋值一些参数
* @param detailDo
* @return
*/
private String validateCustomerreturnRequestDetailImport(CustomerreturnRequestDetailDO detailDo, CustomerreturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
String messageDetail = "";
// 校验物品基础信息
try {
validateDeliverRecordDetail(mainDo,detailDo);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
if ( !detailDo.getUom().equals(itembasicDO.getUom())) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",";
}
try {
ValidationUtils.validate(validator, createReqVO);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
try {
if(!"".equals(detailDo.getFromLocationCode())){
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode());
createReqVO.setNumber(number);
List<CustomerreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<CustomerreturnRequestDetailDO> subDOList = CustomerreturnRequestDetailConvert.INSTANCE.convertList03(subList);
for(CustomerreturnRequestDetailDO detailDO : subDOList ){
String messageDetail = "";
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
//子表校验方法
try {
List <DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(createReqVO.getDeliverRecordNumber());
try{
for( DeliverRecordDetailDO deliver : deliverRecordDetailDO){
if(deliver.getSoNumber().equals(detailDO.getSoNumber())&&
deliver.getSoLine().equals(detailDO.getSoLine())
&&deliver.getItemCode().equals(detailDO.getItemCode())&&
deliver.getBatch().equals(detailDO.getBatch())&&
deliver.getPackingNumber().equals(detailDO.getPackingNumber())){
detailDO.setQty(deliver.getQty());
detailDO.setUom(deliver.getUom());
}
else{
throw new UtilException("销售订单号"+detailDO.getSoNumber()+"销售订单行"+detailDO.getSoLine()
+"物料代码"+detailDO.getItemCode()+"批次"+detailDO.getBatch()+"箱码"+detailDO.getPackingNumber()+"不在发货记录单"
+createReqVO.getDeliverRecordNumber()+"中");
}
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setItemName(itembasicDO.getName());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
locationService.selectLocation(detailDO.getFromLocationCode());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
if(!detailDO.getFromLocationCode().isEmpty()){
jobUtils.ifInToLocationType(detailDO.getFromLocationCode(),businesstypeDO);
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
jobUtils.ifInFromLocationType(detailDO.getToLocationCode(),businesstypeDO);
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
jobUtils.ifInInventoryStatuses(detailDO.getInventoryStatus(),businesstypeDO);
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
if("客户寄售库".equals(detailDO.getFromLocationCode())){
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDO.getInventoryStatus());
String value = dictDataRespDTO.getValue();
String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray);
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(),detailDO.getPackingNumber(),detailDO.getBatch(),
detailDO.getFromLocationCode(),business);
try{
BalanceDO blance1 = balance.get(0);
isqty(detailDO.getQty(),blance1.getQty());
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
CustomerreturnRequestDetailCreateReqVO customerreturnRequestDetailCreateReqVO = CustomerreturnRequestDetailConvert.INSTANCE.convert1(detailDO);
CustomerreturnRequestImportErrorVO importVO = CustomerreturnRequestDetailConvert.INSTANCE.convert(createReqVO, customerreturnRequestDetailCreateReqVO);
if(!messageMain.equals("") || !messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
}
}
CustomerreturnRequestMainDO createObj = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO);
if (errorList.isEmpty()) {
CustomerreturnRequestMainDO existCustomerreturnRequestMainDO = customerreturnRequestMainMapper.selectByDeliverrecordnumberAndSupplierCode(createReqVO.getDeliverRecordNumber());
if (existCustomerreturnRequestMainDO == null && mode != 3) {
customerreturnRequestMainMapper.insert(createObj);
customerreturnRequestDetailMapper.insertBatch(subDOList);
}
else if (existCustomerreturnRequestMainDO == null && mode != 2) {
customerreturnRequestMainMapper.updateById(createObj);
customerreturnRequestDetailMapper.updateBatch(subDOList);
}
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
try {
validatorIfInFromLocationType(detailDo.getToLocationCode(),businesstypeDO);
} catch (ServiceException ex) {
messageDetail += "从" + ex.getMessage() + ",";
}
try {
validatorIfInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO);
} catch (ServiceException ex) {
messageDetail += "到" + ex.getMessage() + ",";
}
try {
validatorBalance(detailDo);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
messageDetail+= ex.getMessage() + (",");
}
return messageDetail;
}
@Override
@Transactional
public Integer closeCustomerreturnRequestMain(Long id) {
// 校验存在存在下级单据
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
Long count = customerreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "CustomerRejectRequest", "关闭了客户退货申请", TrendsTypeEnum.UPDATE);
return customerreturnRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer reAddCustomerreturnRequestMain(Long id) {
// 校验存在存在下级单据
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
Long count = customerreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_RE_ADD);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "CustomerRejectRequest", "打开了客户退货申请", TrendsTypeEnum.UPDATE);
return customerreturnRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer submitCustomerreturnRequestMain(Long id) {
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "CustomerRejectRequest", "提交了客户退货申请", TrendsTypeEnum.UPDATE);
return customerreturnRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer agreeCustomerreturnRequestMain(Long id) {
// 校验存在
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "CustomerRejectRequest", "审批同意了客户退货申请", TrendsTypeEnum.UPDATE);
return customerreturnRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer handleCustomerreturnRequestMain(Long id) {
// 校验存在
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "CustomerRejectRequest", "执行了客户退货申请", TrendsTypeEnum.UPDATE);
return customerreturnRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer refusedCustomerreturnRequestMain(Long id) {
// 校验存在
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "CustomerRejectRequest", "审批拒绝了客户退货申请", TrendsTypeEnum.UPDATE);
return customerreturnRequestMainMapper.updateById(mainDO);
}
/**
* 新增主表校验
* @param mainDo
* @return
*/
private void validateCustomerreturnRequestMainCreate(CustomerreturnRequestMainDO mainDo) {
//校验发货记录并赋值
CustomerreturnRequestMainDO customerreturnRequestMainDO = this.validateDeliverRecord(mainDo);
mainDo.setDeliverPlanNumber(customerreturnRequestMainDO.getDeliverPlanNumber());
//校验业务类型和申请设置并赋值
validateRequestsettingAndBusinesstype(mainDo);
}
/**
* 新增子表校验
* @param detailDo
* @return
*/
private void validateCustomerreturnRequestDetailCreate(CustomerreturnRequestMainDO mainDo, CustomerreturnRequestDetailDO detailDo) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
//校验成品发货记录子表并赋值
validateDeliverRecordDetail(mainDo,detailDo);
//校验物品基础信息并赋值
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
if(detailDo.getUom() != null){
if (!detailDo.getUom().equals(itembasicDO.getUom())) {
//注意转换字段数值
throw exception(UOM_EXCEPTION,"计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",");
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
//校验来源库位
if(!"".equals(detailDo.getFromLocationCode())){
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
}
//校验到库位
// customerdockService.
validatorIfInFromLocationType(detailDo.getToLocationCode(),businesstypeDO);
//校验库存状态
validatorIfInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO);
//校验库存余额
validatorBalance(detailDo);
}
/**
* 校验发货记录并赋值
* @param mainDo
*/
private CustomerreturnRequestMainDO validateDeliverRecord(CustomerreturnRequestMainDO mainDo) {
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(mainDo.getDeliverRecordNumber());
mainDo.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber());
mainDo.setCustomerCode(deliverRecordMainDO.getCustomerCode());
mainDo.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode());
return mainDo;
}
/**
* 校验业务类型和申请设置并赋值
* @param mainDo
*/
private void validateRequestsettingAndBusinesstype(CustomerreturnRequestMainDO mainDo){
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest");
if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
if(businesstypeDO != null){
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
}
/**
* 校验成品发货记录子表并赋值
* @param mainDo
* @param detailDO
*/
private void validateDeliverRecordDetail(CustomerreturnRequestMainDO mainDo,CustomerreturnRequestDetailDO detailDO){
List<DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber());
if(deliverRecordDetailDO != null && deliverRecordDetailDO.size() != 0){
for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) {
if (
// deliver.getSoNumber().equals(detailDO.getSoNumber()) &&
// deliver.getSoLine().equals(detailDO.getSoLine()) &&
deliver.getItemCode().equals(detailDO.getItemCode()) &&
deliver.getBatch().equals(detailDO.getBatch()) &&
deliver.getPackingNumber().equals(detailDO.getPackingNumber()))
{
detailDO.setQty(deliver.getQty());
detailDO.setUom(deliver.getUom());
} else {
throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单"
+ mainDo.getDeliverRecordNumber() + "中");
// throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"销售订单号" + detailDO.getSoNumber() + "销售订单行" + detailDO.getSoLine()
// + "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单"
// + createReqVO.getDeliverRecordNumber() + "中");
}
}
}
else {
throw exception(DELIVER_RECORD_DETAIL_NOT_EXISTS);
}
}
/**
* 校验物品基础信息并赋值
* @param itemCode
*/
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
/**
* 校验出库库位类型是否一致
* @param fromLocationCode
* @param businesstypeDO
*/
private void validatorIfInToLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInToLocationType(fromLocationCode, businesstypeDO);
}
/**
* 校验出库库位类型是否一致
* @param toLocationCode
* @param businesstypeDO
*/
private void validatorIfInFromLocationType(String toLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInFromLocationType(toLocationCode, businesstypeDO);
}
/**
* 校验库存状态是否一致
* @param inventoryStatus
* @param businesstypeDO
*/
private Boolean validatorIfInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) {
return jobUtils.ifInInventoryStatuses(inventoryStatus, businesstypeDO);
}
/**
* 校验库存余额
* @param
*/
private void validatorBalance(CustomerreturnRequestDetailDO detailDO) {
ArrayList<String> list = new ArrayList<>();
list.add(detailDO.getInventoryStatus());
if("CUST".equals(detailDO.getFromLocationCode())){
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(),detailDO.getPackingNumber()
,detailDO.getBatch(),detailDO.getFromLocationCode(),list);
isqty(detailDO.getQty(), balance.get(0).getQty());
}
}
private String isqty(BigDecimal qty1, BigDecimal qty2) {
if (qty1.compareTo(qty2) < 0) {
return "ture";
} else {
throw new UtilException("上架数量" + qty2 + "不能大于库存数量" + qty1);
}
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/documentsetting/DocumentsettingServiceImpl.java

@ -289,8 +289,9 @@ public class DocumentsettingServiceImpl implements DocumentsettingService {
public DocumentsettingDO selectDocumentsettingExist(String pcode){
QueryWrapper<DocumentsettingDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",pcode);
queryWrapper.eq("available","TRUE");
DocumentsettingDO documentsettingDO = documentsettingMapper.selectOne(queryWrapper);
if(documentsettingDO != null && "TRUE".equals(documentsettingDO.getAvailable())){
if(documentsettingDO != null){
return documentsettingDO;
}else {
throw exception(DOCUMENTSETTING_NOT_EXISTS);

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java

@ -78,7 +78,7 @@ public interface ItempackagingService {
*/
List<ItempackagingDO> getItempackagingList(ItempackagingExportReqVO exportReqVO);
List<ItempackagingImportExcelVO> itempackagingimportDocumentList(List<ItempackagingImportExcelVO> itempackagings, Integer mode, Boolean updatePart);
List<ItempackagingImportErrorVO> itempackagingimportDocumentList(List<ItempackagingImportExcelVO> list , Integer mode, Boolean updatePart);
/**
* BQ----QIP

113
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java

@ -13,13 +13,11 @@ import com.win.module.wms.convert.itempackaging.ItempackagingConvert;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.mysql.itempackaging.ItempackagingMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -88,69 +86,65 @@ public class ItempackagingServiceImpl implements ItempackagingService {
public PageResult<ItempackagingDO> getItempackagingSenior(CustomConditions conditions) {
return itempackagingMapper.selectSenior(conditions);
}
private String validateItempackagingImport(ItempackagingDO itempackagingDO) {
StringBuilder message = new StringBuilder();
try {
validateItempackagingExists(null);
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateItemCodeExists(null,itempackagingDO.getItemCode());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateUomExists(itempackagingDO.getUom());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateStdPackUnitExists(itempackagingDO.getStdPackUnit());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateStdPackQtyExists(itempackagingDO.getStdPackQty());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateAvailableExists(itempackagingDO.getAvailable());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
@Override
public List<ItempackagingImportExcelVO> itempackagingimportDocumentList(List<ItempackagingImportExcelVO> itempackagings, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(itempackagings)) {
public List<ItempackagingImportErrorVO> itempackagingimportDocumentList(List<ItempackagingImportExcelVO> datas, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(ITEMPACKAGING_IMPORT_LIST_IS_EMPTY);
}
List<ItempackagingImportExcelVO> errorList = new ArrayList<>();
itempackagings.forEach(itempackaging -> {
String massage = "";
// 校验,判断是否有不符合的原因
if(mode != null){
try {
validateItempackagingExists(null);
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateItemCodeExists(null,itempackaging.getItemCode());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateUomExists(itempackaging.getUom());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateStdPackUnitExists(itempackaging.getStdPackUnit());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateStdPackQtyExists(itempackaging.getStdPackQty());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateAvailableExists(itempackaging.getAvailable());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
}
if(StrUtil.isNotEmpty(massage)){
massage.substring(0,massage.length()-1);
errorList.add(itempackaging);
List<ItempackagingImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
ItempackagingDO itempackagingDO = ItempackagingConvert.INSTANCE.convert(createReqVO);
String message = this.validateItempackagingImport(itempackagingDO);
// 是否有错误数据
boolean flag = true;
if(!message.isEmpty()){
ItempackagingImportErrorVO importErrorVO = ItempackagingConvert.INSTANCE.convert2(createReqVO);
importErrorVO.setImportStatus("失败");
importErrorVO.setImportRemark(message.substring(0, message.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
if(errorList == null){
// 判断如果不存在,在进行插入
ItempackagingDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
itempackagingMapper.insert(ItempackagingConvert.INSTANCE.convert(itempackaging));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ItempackagingDO itempackagingMapperDO = ItempackagingConvert.INSTANCE.convert(itempackaging);
itempackagingMapperDO.setId(existConfigurationSetting.getId());
itempackagingMapper.updateById(itempackagingMapperDO);
}
//写入数据
if(flag) {
itempackagingMapper.insert(itempackagingDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
return errorList;
}
private void validateItempackagingForCreateOrUpdate(Long id, String itemCode, String uom, String stdPackUnit, BigDecimal stdPackQty, String available) {
@ -220,6 +214,7 @@ public class ItempackagingServiceImpl implements ItempackagingService {
throw exception(ITEMPACKAGING_AVAILABLE_NOT_EXISTS);
}
}
@Override
public ItempackagingDO selectItemPackagingExist(String pitemCode){
QueryWrapper queryWrapper = new QueryWrapper();

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java

@ -290,11 +290,12 @@ public class LocationServiceImpl implements LocationService {
public LocationDO selectLocation(String pcode) {
QueryWrapper<LocationDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",pcode);
queryWrapper.eq("available","TRUE");
LocationDO locationDO = locationMapper.selectOne(queryWrapper);
if(locationDO != null && "TRUE".equals(locationDO.getAvailable())){
return locationDO;
} else {
if(locationDO == null){
throw exception(LOCATION_NOT_EXISTS);
} else {
return locationDO;
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanDetailServiceImpl.java

@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO;
@ -36,6 +37,7 @@ public class PurchasePlanDetailServiceImpl implements PurchasePlanDetailService
public Long createPurchasePlanDetail(PurchasePlanDetailCreateReqVO createReqVO) {
// 插入
PurchasePlanDetailDO purchasePlanDetail = PurchasePlanDetailConvert.INSTANCE.convert(createReqVO);
purchasePlanDetail.setCreateTime(LocalDateTime.now());
purchasePlanDetailMapper.insert(purchasePlanDetail);
// 返回
return purchasePlanDetail.getId();

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

@ -35,6 +35,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@ -70,6 +71,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
public Long createPurchasePlanMain(PurchasePlanMainCreateReqVO createReqVO) {
// 插入
PurchasePlanMainDO purchasePlanMain = PurchasePlanMainConvert.INSTANCE.convert(createReqVO);
purchasePlanMain.setCreateTime(LocalDateTime.now());
purchasePlanMainMapper.insert(purchasePlanMain);
// 返回
return purchasePlanMain.getId();

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

@ -232,12 +232,12 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id);
Long count = purchasereturnJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS);
throw new ServiceException(PURCHASERETURN_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE);
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "purchasereturnRequest", "关闭了采购收货申请", TrendsTypeEnum.UPDATE);
@ -251,12 +251,12 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id);
Long count = purchasereturnJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS);
throw new ServiceException(PURCHASERETURN_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_RE_ADD);
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_RE_ADD);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "purchasereturnRequest", "打开了采购收货申请", TrendsTypeEnum.UPDATE);
@ -270,7 +270,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_SUBMIT);
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
@ -289,7 +289,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_AGREE);
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
@ -308,7 +308,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_HANDLE);
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
@ -325,7 +325,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_ABORT);
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "purchasereturnRequest", "审批拒绝了采购收货申请", TrendsTypeEnum.UPDATE);

Loading…
Cancel
Save