Browse Source

成品发货申请/任务/记录 模块代码

master
chenfang 2 years ago
parent
commit
174d13f34a
  1. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 4
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailBaseVO.java
  4. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailPageReqVO.java
  5. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainBaseVO.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainBaseVO.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java
  8. 99
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/DeliverJobMainController.java
  9. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobDetailBaseVO.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobDetailPageReqVO.java
  11. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobDetailUpdateReqVO.java
  12. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainBaseVO.java
  13. 78
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainExcelVO.java
  14. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainUpdateReqVO.java
  15. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java
  16. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java
  17. 109
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java
  18. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/vo/DeliverRecordMainBaseVO.java
  19. 115
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/vo/DeliverRecordMainExcelVO.java
  20. 69
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/DeliverRequestMainController.java
  21. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestDetailBaseVO.java
  22. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestDetailPageReqVO.java
  23. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportVO.java
  24. 68
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainExcelVO.java
  25. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectout/vo/ExpectoutBaseVO.java
  26. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRecord/CustomerreturnRecordMainConvert.java
  27. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverJob/DeliverJobDetailConvert.java
  28. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverJob/DeliverJobMainConvert.java
  29. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRecord/DeliverRecordMainConvert.java
  30. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java
  31. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java
  32. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java
  33. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnJob/CustomerreturnJobDetailMapper.java
  34. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobDetailMapper.java
  35. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobMainMapper.java
  36. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRecord/DeliverRecordDetailMapper.java
  37. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestDetailMapper.java
  38. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java
  39. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java
  40. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobDetailService.java
  41. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobDetailServiceImpl.java
  42. 28
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java
  43. 233
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java
  44. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java
  45. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordDetailService.java
  46. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordDetailServiceImpl.java
  47. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestDetailService.java
  48. 85
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestDetailServiceImpl.java
  49. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainService.java
  50. 540
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java

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

@ -79,4 +79,6 @@ public interface DictTypeConstants {
String INSPECT_RESULT = "inspect_result";//检验结果
String COUNT_DIMENSION = "count_dimension"; // 盘点范围类型
String COUNT_TYPE = "count_type";
String JOB_STATUS = "job_status";//任务状态
String JOB_STAGE_STATUS = "job_stage_status";//任务阶段状态
}

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

@ -749,6 +749,7 @@ public interface ErrorCodeConstants {
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 DELIVER_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_119_007, "发货申请状态不支持重新添加");
//发货任务ErrorCode
ErrorCode DELIVER_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_120_000, "发货任务主不存在{}");
@ -775,14 +776,13 @@ public interface ErrorCodeConstants {
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_CANNOT_RE_ADD = 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
ErrorCode CUSTOMERRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_125_000, "客户退货任务主不存在");

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

@ -90,7 +90,7 @@ public class CustomerreturnJobDetailBaseVO {
@Schema(description = "到器具号")
private String toContainerNumber;
@Schema(description = "到批次")
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "到库存状态")

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailPageReqVO.java

@ -78,4 +78,7 @@ public class CustomerreturnJobDetailPageReqVO extends PageParam {
@Schema(description = "创建者Id")
private String creator;
@Schema(description = "主表Id")
private String masterId;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.customerreturnJob.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -113,6 +114,7 @@ public class CustomerreturnJobMainBaseVO {
private String toLocationTypes;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

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

@ -1,5 +1,6 @@
package com.win.module.wms.controller.customerreturnRecord.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -85,6 +86,7 @@ public class CustomerreturnRecordMainBaseVO {
private String interfaceType;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

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

@ -205,7 +205,7 @@ public class CustomerreturnRecordMainExcelVO {
private String interfaceTypeDetail;
@ExcelProperty("任务明细ID")
private String jobDetailId;
private String jobDetailIdDetail;
@ExcelProperty("从包装号")
private String fromPackingNumber;

99
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/DeliverJobMainController.java

@ -1,10 +1,12 @@
package com.win.module.wms.controller.deliverJob;
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.convert.deliverJob.DeliverJobDetailConvert;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.deliverJob.DeliverJobDetailService;
import jodd.util.StringUtil;
import org.springframework.web.bind.annotation.*;
@ -119,13 +121,63 @@ public class DeliverJobMainController {
HttpServletResponse response) throws IOException {
List<DeliverJobMainDO> list = deliverJobMainService.getDeliverJobMainList(exportReqVO);
// 导出 Excel
List<DeliverJobMainExcelVO> datas = DeliverJobMainConvert.INSTANCE.convertList02(list);
for(DeliverJobMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "发货任务.xls", "数据", DeliverJobMainExcelVO.class, resultList,mapDropDown);
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出客户收货记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:deliver-record-main:export')")
@OperateLog(type = EXPORT)
public void exportDeliverJobMainSeniorExcel(@Valid DeliverJobMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<DeliverJobMainDO> list = deliverJobMainService.getDeliverJobMainList(exportReqVO);
// 导出 Excel
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "发货任务.xls", "数据", DeliverJobMainExcelVO.class, resultList,mapDropDown);
}
private List<DeliverJobMainExcelVO> getExcelVo(List<DeliverJobMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(8, transferMode);
String[] jobStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.JOB_STATUS);
mapDropDown.put(14, jobStatus);
String[] jobStageStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.JOB_STAGE_STATUS);
mapDropDown.put(18, jobStageStatus);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(26, locationType);
mapDropDown.put(27, locationType);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(35, trueFalse);
mapDropDown.put(36, trueFalse);
mapDropDown.put(37, trueFalse);
mapDropDown.put(38, trueFalse);
mapDropDown.put(39, trueFalse);
mapDropDown.put(40, trueFalse);
mapDropDown.put(41, trueFalse);
mapDropDown.put(42, trueFalse);
mapDropDown.put(43, trueFalse);
mapDropDown.put(44, trueFalse);
mapDropDown.put(45, trueFalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(50, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(61, uom);
List<DeliverJobMainExcelVO> resultList = new ArrayList<>();
// 导出
for(DeliverJobMainDO mainDO : list) {
List<DeliverJobDetailDO> subList = deliverJobDetailService.selectList(mainDO.getId());
for(DeliverJobDetailDO detailDO : subList) {
DeliverJobMainExcelVO vo = DeliverJobMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(vo.getCreatorDetail())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
resultList.add(vo);
}
}
ExcelUtils.write(response, "发货任务主.xls", "数据", DeliverJobMainExcelVO.class, datas);
return resultList;
}
@GetMapping("/getDeliverJobById")
@ -161,4 +213,39 @@ public class DeliverJobMainController {
return success(countByStatus);
}
@PutMapping("/accept")
@Operation(summary = "承接客户退货任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:deliver-job-main:accept')")
public CommonResult<Boolean> acceptDeliverJobMain(@RequestParam("id") Long id) {
Integer count = deliverJobMainService.acceptDeliverJobMain(id);
return success(count > 0);
}
@PutMapping("/abandon")
@Operation(summary = "取消承接客户退货任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:deliver-job-main:abandon')")
public CommonResult<Boolean> abandonDeliverJobMain(@RequestParam("id") Long id) {
Integer count = deliverJobMainService.abandonDeliverJobMain(id);
return success(count > 0);
}
@PutMapping("/close")
@Operation(summary = "关闭客户退货任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:deliver-job-main:close')")
public CommonResult<Boolean> closeDeliverJobMain(@RequestParam("id") Long id) {
Integer count = deliverJobMainService.closeDeliverJobMain(id);
return success(count > 0);
}
@PutMapping("/execute")
@Operation(summary = "执行客户退货任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:deliver-job-main:execute')")
public CommonResult<Boolean> executeDeliverJobMain(@Valid @RequestBody DeliverJobMainUpdateReqVO updateReqVO) {
Integer count = deliverJobMainService.executeDeliverJobMain(updateReqVO);
return success(count > 0);
}
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobDetailBaseVO.java

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

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobDetailPageReqVO.java

@ -77,4 +77,7 @@ public class DeliverJobDetailPageReqVO extends PageParam {
@Schema(description = "创建者Id")
private String creator;
@Schema(description = "主表id")
private String masterId;
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobDetailUpdateReqVO.java

@ -3,10 +3,15 @@ package com.win.module.wms.controller.deliverJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
import java.util.Map;
@Schema(description = "管理后台 - 发货任务子更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DeliverJobDetailUpdateReqVO extends DeliverJobDetailBaseVO {
@Schema(description = "子表记录数据")
private List<Map<String,Object>> recordLst;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.deliverJob.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ -107,6 +108,7 @@ public class DeliverJobMainBaseVO {
private String toLocationTypes;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

78
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainExcelVO.java

@ -1,7 +1,9 @@
package com.win.module.wms.controller.deliverJob.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
@ -17,6 +19,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class DeliverJobMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号")
private String requestNumber;
@ -42,8 +47,7 @@ public class DeliverJobMainExcelVO {
@DictFormat("transfer_mode") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String transferMode;
@ExcelProperty(value = "车牌号", converter = DictConvert.class)
@DictFormat("vehicle_plate_number") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
@ExcelProperty("从仓库代码")
@ -53,9 +57,11 @@ public class DeliverJobMainExcelVO {
private String toWarehouseCode;
@ExcelProperty("申请时间")
@ColumnWidth(value = 22)
private LocalDateTime requestTime;
@ExcelProperty("要求截止时间")
@ColumnWidth(value = 22)
private LocalDateTime requestDueTime;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@ -63,9 +69,11 @@ public class DeliverJobMainExcelVO {
private String status;
@ExcelProperty("过期时间")
@ColumnWidth(value = 22)
private LocalDateTime expiredTime;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 22)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者Id")
@ -88,12 +96,14 @@ public class DeliverJobMainExcelVO {
private String acceptUserId;
@ExcelProperty("承接时间")
@ColumnWidth(value = 22)
private LocalDateTime acceptTime;
@ExcelProperty("完成人用户ID")
private String completeUserId;
@ExcelProperty("完成时间")
@ColumnWidth(value = 22)
private LocalDateTime completeTime;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@ -104,9 +114,6 @@ public class DeliverJobMainExcelVO {
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String toLocationTypes;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
private String businessType;
@ -114,6 +121,7 @@ public class DeliverJobMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTime;
@ExcelProperty("创建者id")
@ -161,4 +169,64 @@ public class DeliverJobMainExcelVO {
@ExcelProperty("允许修改箱码")
private String allowModifyPackingNumber;
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private String soLine;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty("货主代码")
private String ownerCode;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@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 String remarkDetail;
@ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者Id")
private String creatorDetail;
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainUpdateReqVO.java

@ -3,10 +3,15 @@ package com.win.module.wms.controller.deliverJob.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 DeliverJobMainUpdateReqVO extends DeliverJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid DeliverJobDetailUpdateReqVO> subList;
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java

@ -152,6 +152,12 @@ public class DeliverPlanMainController {
@PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:query')")
public CommonResult<PageResult<DeliverPlanMainRespVO>> getDeliverPlanMainPage(@Valid DeliverPlanMainPageReqVO pageVO) {
PageResult<DeliverPlanMainDO> pageResult = deliverPlanMainService.getDeliverPlanMainPage(pageVO);
PageResult<DeliverPlanMainRespVO> result = DeliverPlanMainConvert.INSTANCE.convertPage(pageResult);
for(DeliverPlanMainRespVO vo : result.getList()) {
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
}
return success(DeliverPlanMainConvert.INSTANCE.convertPage(pageResult));
}
@PostMapping("/senior")
@ -161,7 +167,6 @@ public class DeliverPlanMainController {
PageResult<DeliverPlanMainDO> pageResult = deliverPlanMainService.getDeliverPlanMainSenior(conditions);
PageResult<DeliverPlanMainRespVO> result = DeliverPlanMainConvert.INSTANCE.convertPage(pageResult);
for(DeliverPlanMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
@ -176,14 +181,8 @@ public class DeliverPlanMainController {
HttpServletResponse response) throws IOException {
List<DeliverPlanMainDO> list = deliverPlanMainService.getDeliverPlanMainList(exportReqVO);
// 导出 Excel
List<DeliverPlanMainExcelVO> datas = DeliverPlanMainConvert.INSTANCE.convertList02(list);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverPlanMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
for(DeliverPlanMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "发货计划主.xls", "数据", DeliverPlanMainExcelVO.class, resultList,mapDropDown);
}
@ -197,7 +196,7 @@ public class DeliverPlanMainController {
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverPlanMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "采购收货申请.xlsx", "数据", DeliverPlanMainExcelVO.class, resultList, mapDropDown);
ExcelUtils.write(response, "采购收货申请.xlsx", "数据", DeliverPlanMainExcelVO.class, resultList, mapDropDown);
}
private List<DeliverPlanMainExcelVO> getExcelVo(List<DeliverPlanMainDO> list, Map<Integer, String[]> mapDropDown) {
@ -214,8 +213,8 @@ public class DeliverPlanMainController {
List<DeliverPlanDetailDO> subList = deliverPlanDetailService.selectListByID(mainDO.getId());
for(DeliverPlanDetailDO detailDO : subList) {
DeliverPlanMainExcelVO vo = DeliverPlanMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
resultList.add(vo);
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java

@ -1,6 +1,7 @@
package com.win.module.wms.controller.deliverPlan.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;
@ -10,6 +11,7 @@ import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@ -33,10 +35,12 @@ public class DeliverPlanMainImportVO {
private String planDate;
@ExcelProperty("开始日期")
private String beginTime;
@ColumnWidth(value = 21)
private LocalDateTime beginTime;
@ExcelProperty("结束日期")
private String endTime;
@ColumnWidth(value = 21)
private LocalDateTime endTime;
//子表数据
@ExcelProperty("销售订单号")

109
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java

@ -1,9 +1,17 @@
package com.win.module.wms.controller.deliverRecord;
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.deliverRecord.vo.DeliverRecordMainExcelVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReqVO;
import com.win.module.wms.controller.deliverRecord.vo.*;
import com.win.module.wms.convert.deliverRecord.DeliverRecordMainConvert;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.deliverRecord.DeliverRecordDetailService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -26,8 +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.dal.dataobject.deliverRecord.DeliverRecordMainDO;
import com.win.module.wms.convert.deliverRecord.DeliverRecordMainConvert;
import com.win.module.wms.service.deliverRecord.DeliverRecordMainService;
@Tag(name = "管理后台 - 发货记录主")
@ -38,33 +44,35 @@ public class DeliverRecordMainController {
@Resource
private DeliverRecordMainService deliverRecordMainService;
@Resource
private DeliverRecordDetailService deliverRecordDetailService;
@Resource
private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建发货记录主")
@PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')")
public CommonResult<Long> createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) {
return success(deliverRecordMainService.createDeliverRecordMain(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新发货记录主")
@PreAuthorize("@ss.hasPermission('wms:deliver-record-main:update')")
public CommonResult<Boolean> updateDeliverRecordMain(@Valid @RequestBody DeliverRecordMainUpdateReqVO updateReqVO) {
deliverRecordMainService.updateDeliverRecordMain(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除发货记录主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:deliver-record-main:delete')")
public CommonResult<Boolean> deleteDeliverRecordMain(@RequestParam("id") Long id) {
deliverRecordMainService.deleteDeliverRecordMain(id);
return success(true);
}
// @PostMapping("/create")
// @Operation(summary = "创建发货记录主")
// @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')")
// public CommonResult<Long> createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) {
// return success(deliverRecordMainService.createDeliverRecordMain(createReqVO));
// }
//
// @PutMapping("/update")
// @Operation(summary = "更新发货记录主")
// @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:update')")
// public CommonResult<Boolean> updateDeliverRecordMain(@Valid @RequestBody DeliverRecordMainUpdateReqVO updateReqVO) {
// deliverRecordMainService.updateDeliverRecordMain(updateReqVO);
// return success(true);
// }
//
// @DeleteMapping("/delete")
// @Operation(summary = "删除发货记录主")
// @Parameter(name = "id", description = "编号", required = true)
// @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:delete')")
// public CommonResult<Boolean> deleteDeliverRecordMain(@RequestParam("id") Long id) {
// deliverRecordMainService.deleteDeliverRecordMain(id);
// return success(true);
// }
@GetMapping("/get")
@Operation(summary = "获得发货记录主")
@ -113,13 +121,50 @@ public class DeliverRecordMainController {
HttpServletResponse response) throws IOException {
List<DeliverRecordMainDO> list = deliverRecordMainService.getDeliverRecordMainList(exportReqVO);
// 导出 Excel
List<DeliverRecordMainExcelVO> datas = DeliverRecordMainConvert.INSTANCE.convertList02(list);
for(DeliverRecordMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "发货记录主.xls", "数据", DeliverRecordMainExcelVO.class, datas);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "发货记录.xls", "数据", DeliverRecordMainExcelVO.class, resultList,mapDropDown);
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出客户收货记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:deliver-record-main:export')")
@OperateLog(type = EXPORT)
public void exportDeliverRecordMainSeniorExcel(@Valid DeliverRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<DeliverRecordMainDO> list = deliverRecordMainService.getDeliverRecordMainList(exportReqVO);
// 导出 Excel
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "发货记录.xls", "数据", DeliverRecordMainExcelVO.class, resultList,mapDropDown);
}
private List<DeliverRecordMainExcelVO> getExcelVo(List<DeliverRecordMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(8, transferMode);
String[] interfaceTypeDetail = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE);
mapDropDown.put(19, interfaceTypeDetail);
mapDropDown.put(59, interfaceTypeDetail);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(25, locationType);
mapDropDown.put(27, locationType);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(30, available);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(35, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(57, uom);
List<DeliverRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(DeliverRecordMainDO mainDO : list) {
List<DeliverRecordDetailDO> subList = deliverRecordDetailService.selectList(mainDO.getId());
for(DeliverRecordDetailDO detailDO : subList) {
DeliverRecordMainExcelVO vo = DeliverRecordMainConvert.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;
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/vo/DeliverRecordMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.deliverRecord.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -85,6 +86,7 @@ public class DeliverRecordMainBaseVO {
private String interfaceType;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

115
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/vo/DeliverRecordMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.deliverRecord.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;
@ -22,6 +25,10 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class DeliverRecordMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号")
private String requestNumber;
@ -47,8 +54,7 @@ public class DeliverRecordMainExcelVO {
@DictFormat("transfer_mode") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String transferMode;
@ExcelProperty(value = "车牌号", converter = DictConvert.class)
@DictFormat("vehicle_plate_number") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
@ExcelProperty("从仓库代码")
@ -64,15 +70,19 @@ public class DeliverRecordMainExcelVO {
private String inTransactionType;
@ExcelProperty("执行时间")
@ColumnWidth(value = 22)
private LocalDateTime executeTime;
@ExcelProperty("生效日期")
@ColumnWidth(value = 22)
private LocalDateTime activeDate;
@ExcelProperty("申请时间")
@ColumnWidth(value = 22)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 22)
private LocalDateTime dueTime;
@ExcelProperty("部门")
@ -82,9 +92,6 @@ public class DeliverRecordMainExcelVO {
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceType;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
private String businessType;
@ -92,6 +99,7 @@ public class DeliverRecordMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTime;
@ExcelProperty("创建者Id")
@ -117,7 +125,102 @@ public class DeliverRecordMainExcelVO {
@ExcelProperty("从月台代码")
private String fromDockCode;
@ExcelProperty("是否可用")
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String available;
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private String soLine;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("批次")
private String batch;
@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("创建时间")
@ColumnWidth(value = 22)
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("代码")
private String codeDetail;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceTypeDetail;
@ExcelProperty("任务明细ID")
private String jobDetailId;
}

69
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/DeliverRequestMainController.java

@ -5,7 +5,12 @@ import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainExcelVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.deliverPlan.DeliverPlanMainConvert;
import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert;
import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO;
import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.deliverRequest.DeliverRequestDetailService;
@ -126,13 +131,22 @@ public class DeliverRequestMainController {
HttpServletResponse response) throws IOException {
List<DeliverRequestMainDO> list = deliverRequestMainService.getDeliverRequestMainList(exportReqVO);
// 导出 Excel
List<DeliverRequestMainExcelVO> datas = DeliverRequestMainConvert.INSTANCE.convertList02(list);
for(DeliverRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "发货申请主.xls", "数据", DeliverRequestMainExcelVO.class, datas);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "发货申请.xls", "数据", DeliverRequestMainExcelVO.class, resultList,mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出发货计划主 Excel")
@PreAuthorize("@ss.hasPermission('wms:deliver-request-main:export')")
@OperateLog(type = EXPORT)
public void exportPurchasereceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<DeliverRequestMainDO> list = deliverRequestMainService.getDeliverPlanMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<DeliverRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "发货申请.xlsx", "数据", DeliverRequestMainExcelVO.class, resultList, mapDropDown);
}
@GetMapping("/getDeliverRequestById")
@ -160,7 +174,7 @@ public class DeliverRequestMainController {
List<DeliverRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom);
mapDropDown.put(6, uom);
// 输出
ExcelUtils.write(response, "发货申请导入模板.xlsx", "发料申请信息列表", DeliverRequestImportVO.class, list, mapDropDown);
}
@ -188,4 +202,43 @@ public class DeliverRequestMainController {
}
return success(returnMap);
}
private List<DeliverRequestMainExcelVO> getExcelVo(List<DeliverRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(5, transferMode);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(9, locationType);
mapDropDown.put(22, locationType);
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(19, requestStatus);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(32, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(43, uom);
List<DeliverRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(DeliverRequestMainDO mainDO : list) {
List<DeliverRequestDetailDO> subList = deliverRequestDetailService.selectListByID(mainDO.getId());
for(DeliverRequestDetailDO detailDO : subList) {
DeliverRequestMainExcelVO vo = DeliverRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/page111")
public HashMap<String, String> demo(){
String batch = "BatchType\":\"1\", \"BatchFormat\":\"yyyyMMdd\", \"BatchDirection\":\"0\"";
HashMap<String, String> batchRuleMap = new HashMap<>();
String result = batch.replace("\"", "");
String[] split = result.split(",");
for (String s : split) {
String[] split1 = s.split(":");
batchRuleMap.put(split1[0],split1[1]);
}
return batchRuleMap;
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestDetailBaseVO.java

@ -2,11 +2,8 @@ package com.win.module.wms.controller.deliverRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestDetailPageReqVO.java

@ -85,4 +85,7 @@ public class DeliverRequestDetailPageReqVO extends PageParam {
@Schema(description = "从货主代码")
private String fromOwnerCode;
@Schema(description = "主表id")
private String masterId;
}

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportVO.java

@ -1,10 +1,13 @@
package com.win.module.wms.controller.deliverRequest.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 java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -29,17 +32,19 @@ public class DeliverRequestImportVO {
@ExcelProperty("客户")
private String customerCode;
@ExcelProperty("计划日期")
private String planDate;
@ExcelProperty("截止时间")
@ColumnWidth(value = 21)
private LocalDateTime dueTime;
@ExcelProperty("发货计划单号")
private String deliverPlanNumber;
//子表数据
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private BigDecimal soLine;
// @ExcelProperty("销售订单号")
// private String soNumber;
//
// @ExcelProperty("销售订单行")
// private BigDecimal soLine;
@ExcelProperty("物品代码")
private String itemCode;
@ -51,5 +56,6 @@ public class DeliverRequestImportVO {
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("客户月台")
private String customerDockCode;
}

68
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainExcelVO.java

@ -2,6 +2,8 @@ package com.win.module.wms.controller.deliverRequest.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;
@ -113,4 +115,70 @@ public class DeliverRequestMainExcelVO {
@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 toOwnerCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
@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 itemCode;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectout/vo/ExpectoutBaseVO.java

@ -25,7 +25,6 @@ public class ExpectoutBaseVO {
private String businessType;
@Schema(description = "包装号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "包装号不能为空")
private String packingNumber;
@Schema(description = "物料代码", requiredMode = Schema.RequiredMode.REQUIRED)

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

@ -46,7 +46,8 @@ public interface CustomerreturnRecordMainConvert {
@Mapping(source = "detailDO.createTime", target = "createTimeDetail"),
@Mapping(source = "detailDO.creator", target = "creatorDetail"),
@Mapping(source = "detailDO.interfaceType", target = "interfaceTypeDetail"),
@Mapping(source = "detailDO.code", target = "code"),
@Mapping(source = "mainDO.code", target = "code"),
@Mapping(source = "detailDO.jobDetailId", target = "jobDetailIdDetail"),
})
CustomerreturnRecordMainExcelVO convert(CustomerreturnRecordMainDO mainDO, CustomerreturnRecordDetailDO detailDO);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverJob/DeliverJobDetailConvert.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailCreateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailExcelVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailRespVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
@ -34,4 +35,5 @@ public interface DeliverJobDetailConvert {
List<DeliverJobDetailExcelVO> convertList02(List<DeliverJobDetailDO> list);
DeliverJobDetailDO convert(DeliverRequestDetailDO deliverRequestDetailDO);
}

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverJob/DeliverJobMainConvert.java

@ -8,7 +8,11 @@ import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainCreateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainExcelVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainRespVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO;
@ -34,4 +38,18 @@ public interface DeliverJobMainConvert {
List<DeliverJobMainExcelVO> convertList02(List<DeliverJobMainDO> list);
DeliverJobMainDO convert(DeliverRequestMainDO mainDO);
@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"),
})
DeliverJobMainExcelVO convert(DeliverJobMainDO mainDO, DeliverJobDetailDO detailDO);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRecord/DeliverRecordMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainCreateReq
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExcelVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainRespVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
@ -34,4 +37,18 @@ public interface DeliverRecordMainConvert {
List<DeliverRecordMainExcelVO> convertList02(List<DeliverRecordMainDO> 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"),
@Mapping(source = "detailDO.available", target = "available"),
})
DeliverRecordMainExcelVO convert(DeliverRecordMainDO mainDO, DeliverRecordDetailDO detailDO);
}

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java

@ -41,8 +41,22 @@ public interface DeliverRequestMainConvert {
DeliverRequestMainDO convert(DeliverRequestMainBaseVO bean);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
@Mapping(source = "mainDO.number", target = "number"),
@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 = "mainDO.remark", target = "remark"),
@Mapping(source = "detailDo.createTime", target = "createTimeDetail"),
@Mapping(source = "detailDo.creator", target = "creatorDetail"),
@Mapping(source = "detailDo.updateTime", target = "updateTimeDetail"),
@Mapping(source = "detailDo.updater", target = "updaterDetail"),
@Mapping(source = "detailDo.remark", target = "remarkDetail"),
})
DeliverRequestImportErrorVO convert(DeliverRequestMainCreateReqVO mainVo, DeliverRequestDetailDO detailDo);
DeliverRequestMainExcelVO convert(DeliverRequestMainDO mainDO, DeliverRequestDetailDO detailDo);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
})
DeliverRequestImportErrorVO convert(DeliverRequestMainCreateReqVO mainDO, DeliverRequestDetailDO detailDo);
}

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.deliverRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -33,7 +34,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/**
* 销售订单号
*/
@NotBlank
// @NotBlank
private String soNumber;
/**
* 销售订单行
@ -42,7 +43,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/**
* 包装号
*/
@NotBlank
private String packingNumber;
/**
* 器具号
@ -51,14 +52,14 @@ public class DeliverRequestDetailDO extends BaseDO {
/**
* 批次
*/
@NotBlank
private String batch;
/**
* 库存状态
*
* 枚举 {@link TODO inventory_status 对应的类}
*/
@NotBlank
private String inventoryStatus;
/**
* 到货主代码
@ -67,6 +68,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/**
* 到库位代码
*/
@NotBlank
private String toLocationCode;
/**
* 主表ID
@ -84,6 +86,10 @@ public class DeliverRequestDetailDO extends BaseDO {
* 地点ID
*/
private Long siteId;
/**
* 物品代码
*/
private String itemCode;
/**
* 物品名称
*/
@ -114,10 +120,6 @@ public class DeliverRequestDetailDO extends BaseDO {
* 并发乐观锁
*/
private String concurrencyStamp;
/**
* 物品代码
*/
private String itemCode;
/**
* 从货主代码
*/

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.deliverRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
@ -42,6 +43,7 @@ public class DeliverRequestMainDO extends BaseDO {
/**
* 客户月台代码
*/
@NotBlank
private String customerDockCode;
/**
* 承运商
@ -62,7 +64,7 @@ public class DeliverRequestMainDO extends BaseDO {
/**
* 从仓库代码
*/
@NotBlank
private String fromWarehouseCode;
/**
* 到仓库代码
@ -142,6 +144,7 @@ public class DeliverRequestMainDO extends BaseDO {
/**
* 到库区范围
*/
@NotBlank
private String toAreaCodes;
/**
* 从月台代码
@ -154,22 +157,18 @@ public class DeliverRequestMainDO extends BaseDO {
/**
* 自动提交
*/
@NotBlank
private String autoCommit;
/**
* 自动通过
*/
@NotBlank
private String autoAgree;
/**
* 自动执行
*/
@NotBlank
private String autoExecute;
/**
* 直接生成记录
*/
@NotBlank
private String directCreateRecord;
}

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

@ -22,6 +22,7 @@ public interface CustomerreturnJobDetailMapper extends BaseMapperX<Customerretur
default PageResult<CustomerreturnJobDetailDO> selectPage(CustomerreturnJobDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CustomerreturnJobDetailDO>()
.eq(CustomerreturnJobDetailDO::getMasterId,reqVO.getMasterId())
.eqIfPresent(CustomerreturnJobDetailDO::getSoNumber, reqVO.getSoNumber())
.eqIfPresent(CustomerreturnJobDetailDO::getSoLine, reqVO.getSoLine())
.eqIfPresent(CustomerreturnJobDetailDO::getPackingNumber, reqVO.getPackingNumber())

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobDetailMapper.java

@ -22,6 +22,7 @@ public interface DeliverJobDetailMapper extends BaseMapperX<DeliverJobDetailDO>
default PageResult<DeliverJobDetailDO> selectPage(DeliverJobDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DeliverJobDetailDO>()
.eq(DeliverJobDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(DeliverJobDetailDO::getSoNumber, reqVO.getSoNumber())
.eqIfPresent(DeliverJobDetailDO::getSoLine, reqVO.getSoLine())
.eqIfPresent(DeliverJobDetailDO::getPackingNumber, reqVO.getPackingNumber())
@ -73,4 +74,8 @@ public interface DeliverJobDetailMapper extends BaseMapperX<DeliverJobDetailDO>
.orderByDesc(DeliverJobDetailDO::getId));
}
default List<DeliverJobDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<DeliverJobDetailDO>()
.eq(DeliverJobDetailDO::getMasterId,masterId));
}
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobMainMapper.java

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

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRecord/DeliverRecordDetailMapper.java

@ -94,4 +94,8 @@ public interface DeliverRecordDetailMapper extends BaseMapperX<DeliverRecordDeta
.orderByDesc(DeliverRecordDetailDO::getId));
}
default List<DeliverRecordDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<DeliverRecordDetailDO>()
.eq(DeliverRecordDetailDO::getMasterId, masterId));
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestDetailMapper.java

@ -22,6 +22,7 @@ public interface DeliverRequestDetailMapper extends BaseMapperX<DeliverRequestDe
default PageResult<DeliverRequestDetailDO> selectPage(DeliverRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DeliverRequestDetailDO>()
.eq(DeliverRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(DeliverRequestDetailDO::getSoNumber, reqVO.getSoNumber())
.eqIfPresent(DeliverRequestDetailDO::getSoLine, reqVO.getSoLine())
.eqIfPresent(DeliverRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
@ -53,6 +54,7 @@ public interface DeliverRequestDetailMapper extends BaseMapperX<DeliverRequestDe
default List<DeliverRequestDetailDO> selectList(DeliverRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<DeliverRequestDetailDO>()
.eq(DeliverRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(DeliverRequestDetailDO::getSoNumber, reqVO.getSoNumber())
.eqIfPresent(DeliverRequestDetailDO::getSoLine, reqVO.getSoLine())
.eqIfPresent(DeliverRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
@ -78,4 +80,7 @@ public interface DeliverRequestDetailMapper extends BaseMapperX<DeliverRequestDe
.orderByDesc(DeliverRequestDetailDO::getId));
}
default List<DeliverRequestDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<DeliverRequestDetailDO>().eq(DeliverRequestDetailDO::getMasterId,masterId));
}
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java

@ -10,8 +10,6 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExportReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
@ -104,4 +102,11 @@ public interface DeliverRequestMainMapper extends BaseMapperX<DeliverRequestMain
return selectOne(DeliverRequestMainDO::getCustomerCode, customer);
}
default List<DeliverRequestMainDO> selectSeniorList(CustomConditions conditions){
return selectList(QueryWrapperUtils.structure(conditions));
}
default DeliverRequestMainDO selectByNumber(String number) {
return selectOne(DeliverRequestMainDO::getNumber, number);
}
}

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

@ -5,7 +5,6 @@ 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.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;
@ -278,6 +277,9 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
private void generateJob(CustomerreturnRequestMainDO mainDO, List<CustomerreturnRequestDetailDO> detailDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
//如果直接生成记录 修改申请状态为已完成
mainDO.setStatus("8");
customerreturnRequestMainMapper.updateById(mainDO);
CustomerreturnRecordMainCreateReqVO customerreturnRecordMainCreateReqVO = new CustomerreturnRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, customerreturnRecordMainCreateReqVO);
//记录主表数据 同名属性同名赋值
@ -349,7 +351,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
customerreturnJobDetailDO.setUpdateTime(null);
customerreturnJobDetailDO.setMasterId(customerreturnJobMainDO.getId());
customerreturnJobDetailDOList.add(customerreturnJobDetailDO);
//预计
//预计
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(customerreturnJobDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number);

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobDetailService.java

@ -79,4 +79,5 @@ public interface DeliverJobDetailService {
*/
List<DeliverJobDetailDO> getDeliverJobDetailList(DeliverJobDetailExportReqVO exportReqVO);
List<DeliverJobDetailDO> selectList(Long masterId);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailCreateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailExportReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailPageReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -87,4 +88,8 @@ public class DeliverJobDetailServiceImpl implements DeliverJobDetailService {
return deliverJobDetailMapper.selectList(exportReqVO);
}
@Override
public List<DeliverJobDetailDO> selectList(Long masterId) {
return deliverJobDetailMapper.selectList(masterId);
}
}

28
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java

@ -116,4 +116,32 @@ public interface DeliverJobMainService {
* @return
*/
Map<String,Integer> getCountByStatus(@Nullable Collection<String> types);
/**
* 关闭
* @param id
* @return
*/
public Integer closeDeliverJobMain(Long id);
/**
* 承接
* @param id
* @return
*/
public Integer acceptDeliverJobMain(Long id);
/**
* 取消
* @param id
* @return
*/
public Integer abandonDeliverJobMain(Long id);
/**
* 执行
* @param updateReqVO
* @return
*/
public Integer executeDeliverJobMain(DeliverJobMainUpdateReqVO updateReqVO);
}

233
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java

@ -1,28 +1,61 @@
package com.win.module.wms.service.deliverJob;
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.deliverJob.vo.DeliverJobDetailUpdateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainUpdateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainCreateReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainExportReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainPageReqVO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainUpdateReqVO;
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.deliverJob.DeliverJobDetailDO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO;
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.deliverRequest.DeliverRequestMainDO;
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.sale.SaleDetailDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordDetailMapper;
import com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordMainMapper;
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestMainMapper;
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.deliverJob.DeliverJobDetailService;
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 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.deliverJob.DeliverJobMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.deliverJob.DeliverJobMainConvert;
import com.win.module.wms.dal.mysql.deliverJob.DeliverJobMainMapper;
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.*;
/**
@ -42,6 +75,29 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService {
@Resource
private SaleMainService saleMainService;
@Resource
private AdminUserApi userApi;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private DeliverJobDetailService deliverJobDetailService;
@Resource
private DeliverRecordMainMapper deliverRecordMainMapper;
@Resource
private DeliverRecordDetailMapper deliverRecordDetailMapper;
@Resource
private DeliverRequestMainMapper deliverRequestMainMapper;
@Resource
private ExpectoutService expectoutService;
@Resource
private TransactionService transactionService;
@Resource
private LocationService locationService;
@Override
public Long createDeliverJobMain(DeliverJobMainCreateReqVO createReqVO) {
// 插入
@ -68,10 +124,12 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService {
deliverJobMainMapper.deleteById(id);
}
private void validateDeliverJobMainExists(Long id) {
if (deliverJobMainMapper.selectById(id) == null) {
private DeliverJobMainDO validateDeliverJobMainExists(Long id) {
DeliverJobMainDO deliverJobMainDO = deliverJobMainMapper.selectById(id);
if (deliverJobMainDO == null) {
throw exception(DELIVER_JOB_MAIN_NOT_EXISTS);
}
return deliverJobMainDO;
}
@Override
@ -129,4 +187,171 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService {
map.put("count", l.intValue());
return map;
}
@Override
@Transactional
public Integer acceptDeliverJobMain(Long id) {
DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(deliverJobMainDO.getStatus());
if(!jobStatusState.accept()) {
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
}
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
deliverJobMainDO.setStatus(jobStatusState.getState().getCode());
deliverJobMainDO.setAcceptUserId(String.valueOf(userId));
deliverJobMainDO.setAcceptUserName(userRespDTO.getNickname());
deliverJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "deliverJob", "承接了发货任务", TrendsTypeEnum.UPDATE);
return deliverJobMainMapper.updateById(deliverJobMainDO);
}
@Override
@Transactional
public Integer abandonDeliverJobMain(Long id) {
DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(deliverJobMainDO.getStatus());
if(!jobStatusState.cancelAccept()) {
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
}
deliverJobMainDO.setStatus(jobStatusState.getState().getCode());
deliverJobMainDO.setAcceptUserId(null);
deliverJobMainDO.setAcceptUserName(null);
deliverJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "deliverJob", "取消了发货任务", TrendsTypeEnum.UPDATE);
return deliverJobMainMapper.updateById(deliverJobMainDO);
}
@Override
@Transactional
public Integer closeDeliverJobMain(Long id) {
DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(deliverJobMainDO.getStatus());
if(!jobStatusState.close()) {
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
}
deliverJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "deliverJob", "关闭了发货任务", TrendsTypeEnum.UPDATE);
return deliverJobMainMapper.updateById(deliverJobMainDO);
}
@Override
@Transactional
public Integer executeDeliverJobMain(DeliverJobMainUpdateReqVO deliverJobMainUpdateReqVO) {
//查询数据
DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(deliverJobMainUpdateReqVO.getId());
List<DeliverJobDetailDO> subList = deliverJobDetailService.selectList(deliverJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(deliverJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
throw new ServiceException(DELIVER_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
deliverJobMainDO.setStatus(jobStatusState.getState().getCode());
deliverJobMainDO.setCompleteTime(LocalDateTime.now());
deliverJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
deliverJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
int result = deliverJobMainMapper.updateById(deliverJobMainDO);
//创建客户收货记录主表
DeliverRecordMainDO deliverRecordMainDO = new DeliverRecordMainDO();
BeanUtils.copyProperties(deliverJobMainDO, deliverRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_JOB.getCode());
deliverRecordMainDO.setNumber(number);
deliverRecordMainDO.setJobNumber(deliverJobMainDO.getNumber());
deliverRecordMainDO.setId(null);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverJob");
deliverRecordMainDO.setBusinessType(businesstypeDO.getCode());
deliverRecordMainMapper.insert(deliverRecordMainDO);
List<DeliverJobDetailUpdateReqVO> deliverJobDetailUpdateReqVOList = deliverJobMainUpdateReqVO.getSubList();
//退货记录子
List<DeliverRecordDetailDO> deliverRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
subList.forEach(subListItem -> {
// DeliverJobDetailUpdateReqVO DetailUpdateItem = null;
// for (DeliverJobDetailUpdateReqVO deliverJobDetailUpdateReqVO : deliverJobDetailUpdateReqVOList) {
// if (deliverJobDetailDO.getId().equals(deliverJobDetailUpdateReqVO.getId())) {
// DetailUpdateItem = deliverJobDetailUpdateReqVO;
// break;
// }
// }
deliverJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> {
// 匹配任务子表与参数中子表
if (DetailUpdateItem.getId().equals(subListItem.getId())) {
List<Map<String,Object>> recordLst = DetailUpdateItem.getRecordLst();
recordLst.forEach(recordLstItem -> {
DeliverRecordDetailDO deliverRecordDetailDO = new DeliverRecordDetailDO();
BeanUtils.copyProperties(DetailUpdateItem, deliverRecordDetailDO);
deliverRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString());
deliverRecordDetailDO.setId(null);
deliverRecordDetailDO.setCreator(null);
deliverRecordDetailDO.setCreateTime(null);
deliverRecordDetailDO.setUpdater(null);
deliverRecordDetailDO.setUpdateTime(null);
deliverRecordDetailDO.setNumber(number);
deliverRecordDetailDO.setMasterId(deliverRecordMainDO.getId().toString());
// 根据recordLst 进行赋值子表部分数据
deliverRecordDetailDO.setQty(new BigDecimal(recordLstItem.get("handleQty").toString()));
deliverRecordDetailDO.setPackingNumber(recordLstItem.get("toPackingNumber").toString());
deliverRecordDetailDO.setToContainerNumber(recordLstItem.get("toContainerNumber").toString());
deliverRecordDetailDO.setBatch(recordLstItem.get("toBatch").toString());
deliverRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode").toString());
deliverRecordDetailDO.setInventoryStatus(recordLstItem.get("toInventoryStatus").toString());
deliverRecordDetailDO.setToContainerNumber(DetailUpdateItem.getToContainerNumber());
// 根据 to库位 查询 库位组 库区
LocationDO locationDO = locationService.selectLocation(recordLstItem.get("toLocationCode").toString());
deliverRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode());
deliverRecordDetailDO.setToAreaCode(locationDO.getAreaCode());
// 根据 from库位 查询 库位组 库区
LocationDO locationDOFrom = locationService.selectLocation(subListItem.getFromLocationCode());
deliverRecordDetailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode());
deliverRecordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode());
deliverRecordDetailDOList.add(deliverRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(deliverRecordDetailDO, transactionCreateReqVO);
//增加业务类型
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(deliverRecordMainDO.getBusinessType());
transactionCreateReqVO.setLocationCode(deliverRecordDetailDO.getFromLocationCode());
transactionCreateReqVO.setOwnerCode(deliverRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setBatch(deliverRecordDetailDO.getBatch());
transactionCreateReqVO.setPackingNumber(deliverRecordDetailDO.getPackingNumber());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVOList.add(transactionCreateReqVO);
});
}
});
});
deliverRecordDetailMapper.insertBatch(deliverRecordDetailDOList);
List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = deliverJobMainMapper.selectListCount(typeList, deliverJobMainDO.getRequestNumber());
DeliverRequestMainDO deliverRequestMainDO = deliverRequestMainMapper.selectByNumber(deliverJobMainDO.getRequestNumber());
//申请单下所有任务全部完成
if(count == 0) {
deliverRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
deliverRequestMainMapper.updateById(deliverRequestMainDO);
} else if(deliverRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
deliverRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
deliverRequestMainMapper.updateById(deliverRequestMainDO);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计出
expectoutService.deleteExpectoutByJobNumber(deliverJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(deliverJobMainDO.getId(), "deliverJob", "执行了发货任务", TrendsTypeEnum.UPDATE);
return result;
}
}

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java

@ -5,6 +5,7 @@ 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.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
@ -38,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
@ -85,9 +87,11 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
private RequestsettingService requestsettingService;
@Resource
private DictDataApi dictDataApi;
@Resource
private Validator validator;
@Override
@Transactional
public Long createDeliverPlanMain(DeliverPlanMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverPlan");
DeliverPlanMainDO deliverPlanMainDO = validatorToCreate(createReqVO);
@ -142,10 +146,26 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
detailDOQueryWrapper.eq("itembasic",pitemCode);
detailDOQueryWrapper.eq("available","TRUE");
deliverPlanDetailDO = deliverPlanDetailMapper.selectOne(detailDOQueryWrapper);
// 如果已发货数量=计划数量,更新计划明细状态为(开放 => 关闭)
deliverPlanDetailDO.setShippedQty(pshippedQty);
if(deliverPlanDetailDO.getPlanQty() == deliverPlanDetailDO.getShippedQty()){
deliverPlanDetailDO.setAvailable("FALSE");
}
// 如果全部明细状态为(关闭),更新计划状态为(已接受 => 完成)
QueryWrapper<DeliverPlanDetailDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("master_id",deliverPlanMainDO.getId());
List<DeliverPlanDetailDO> deliverPlanDetailDOS = deliverPlanDetailMapper.selectList(queryWrapper);
int size = deliverPlanDetailDOS.size();
int count = 0 ;
for (DeliverPlanDetailDO planDetailDO : deliverPlanDetailDOS) {
if("FALSE".equals(planDetailDO.getAvailable())){
count++;
}
}
if(count == size){
deliverPlanMainDO.setStatus("7");
deliverPlanMainMapper.updateById(deliverPlanMainDO);
}
}
ifDetailAllFinish(deliverPlanMainDO);
}
@ -311,6 +331,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
}
@Override
@Transactional
public List<DeliverPlanMainImportErrorVO> importDeliverPlanMainList(List<DeliverPlanMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(DELIVERPLAN_MAIN_IMPORT_LIST_IS_EMPTY);
@ -326,7 +347,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
boolean flag = true;
for (DeliverPlanDetailDO detailDO : subDOList) {
String messageDetail = validateDeliverPlanDetailImport(detailDO, mainDo, businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
DeliverPlanMainImportErrorVO importErrorVO = DeliverPlanMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
@ -341,7 +362,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
if (businesstypeDO != null) {
mainDo.setBusinessType(businesstypeDO.getCode());
}
String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_PLAN.getCode());
mainDo.setNumber(number);
deliverPlanMainMapper.insert(mainDo);
for (DeliverPlanDetailDO detailDO : subDOList) {
@ -382,6 +403,11 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
return messageMain;
}
@ -409,6 +435,11 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService {
// } catch (ServiceException ex) {
// messageDetail += ex.getMessage() + ",";
// }
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
return messageDetail;
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordDetailService.java

@ -80,4 +80,5 @@ public interface DeliverRecordDetailService {
*/
List<DeliverRecordDetailDO> getDeliverRecordDetailList(DeliverRecordDetailExportReqVO exportReqVO);
List<DeliverRecordDetailDO> selectList(Long masterId);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordDetailCreateR
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordDetailExportReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordDetailPageReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -88,4 +89,8 @@ public class DeliverRecordDetailServiceImpl implements DeliverRecordDetailServic
return deliverRecordDetailMapper.selectList(exportReqVO);
}
@Override
public List<DeliverRecordDetailDO> selectList(Long masterId) {
return deliverRecordDetailMapper.selectList(masterId);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestDetailService.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailCreat
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailExportReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailPageReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
import com.win.framework.common.pojo.PageResult;
@ -81,4 +82,5 @@ public interface DeliverRequestDetailService {
*/
List<DeliverRequestDetailDO> getDeliverRequestDetailList(DeliverRequestDetailExportReqVO exportReqVO);
List<DeliverRequestDetailDO> selectListByID(Long id);
}

85
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestDetailServiceImpl.java

@ -1,14 +1,21 @@
package com.win.module.wms.service.deliverRequest;
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.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailCreateReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailExportReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailPageReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.service.itembasic.ItembasicService;
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.deliverRequest.DeliverRequestDetailDO;
@ -31,12 +38,21 @@ public class DeliverRequestDetailServiceImpl implements DeliverRequestDetailServ
@Resource
private DeliverRequestDetailMapper deliverRequestDetailMapper;
@Resource
private DictDataApi dictDataApi;
@Resource
private ItembasicService itembasicService;
@Resource
private TrendsApi trendsApi;
@Override
public Long createDeliverRequestDetail(DeliverRequestDetailCreateReqVO createReqVO) {
// 插入
DeliverRequestDetailDO deliverRequestDetail = DeliverRequestDetailConvert.INSTANCE.convert(createReqVO);
validateDetailMethod(deliverRequestDetail);
deliverRequestDetailMapper.insert(deliverRequestDetail);
trendsApi.createTrends(deliverRequestDetail.getId(), "deliverRequestDetail", "增加了发货申请子表", TrendsTypeEnum.CREATE);
// 返回
return deliverRequestDetail.getId();
}
@ -48,20 +64,25 @@ public class DeliverRequestDetailServiceImpl implements DeliverRequestDetailServ
// 更新
DeliverRequestDetailDO updateObj = DeliverRequestDetailConvert.INSTANCE.convert(updateReqVO);
deliverRequestDetailMapper.updateById(updateObj);
trendsApi.createTrends(updateObj.getId(), "deliverRequestDetail", "修改了发货申请子表", TrendsTypeEnum.UPDATE);
}
@Override
public void deleteDeliverRequestDetail(Long id) {
// 校验存在
validateDeliverRequestDetailExists(id);
DeliverRequestDetailDO deliverRequestDetailDO = validateDeliverRequestDetailExists(id);
trendsApi.createTrends(deliverRequestDetailDO.getId(), "deliverRequestDetail", "删除了发货申请子表", TrendsTypeEnum.DELETE);
// 删除
deliverRequestDetailMapper.deleteById(id);
}
private void validateDeliverRequestDetailExists(Long id) {
if (deliverRequestDetailMapper.selectById(id) == null) {
private DeliverRequestDetailDO validateDeliverRequestDetailExists(Long id) {
DeliverRequestDetailDO deliverRequestDetailDO = deliverRequestDetailMapper.selectById(id);
if (deliverRequestDetailDO == null) {
throw exception(DELIVER_REQUEST_DETAIL_NOT_EXISTS);
}
return deliverRequestDetailDO;
}
@Override
@ -89,4 +110,62 @@ public class DeliverRequestDetailServiceImpl implements DeliverRequestDetailServ
return deliverRequestDetailMapper.selectList(exportReqVO);
}
@Override
public List<DeliverRequestDetailDO> selectListByID(Long masterId){
return deliverRequestDetailMapper.selectList(masterId);
}
private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) {
ItembasicDO itembasicDO = validatorItem(deliverRequestDetailDO);
deliverRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
deliverRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
deliverRequestDetailDO.setItemName(itembasicDO.getName());
deliverRequestDetailDO.setProjectCode(itembasicDO.getProject());
Isuom(itembasicDO.getUom(),deliverRequestDetailDO.getUom());
// SaleDetailDO saleDetailDO =validatorSale(deliverRequestDetailDO.getSoNumber(),deliverRequestDetailDO.getSoLine(),deliverRequestDetailDO.getItemCode());
// if(saleDetailDO!=null) {
// Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode());
// }
return deliverRequestDetailDO;
}
/**
* 校验物品信息并赋值
* @param detailDo
* @return
*/
private ItembasicDO validatorItem(DeliverRequestDetailDO detailDo) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemName(itembasicDO.getName());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setProjectCode(itembasicDO.getProject());
return itembasicDO;
}
public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2);
String value2 = dictDataRespDTO1.getLabel();
if(value2.equals(value)){
return "ture";
}else {
throw exception(UOM_ERROR, value2);
}
}
public String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty, String sonumber, String soline, String itemcode) {
BigDecimal resultqty = orderqty.subtract(shippedqty);
if( resultqty.compareTo(detailqty)>0 )
return "TURE";
else{
throw exception(QTY_ERROR, detailqty,sonumber,soline,itemcode,resultqty);
}
}
// private SaleDetailDO validatorSale(String SoNumber,String SoLine,String ItemCode ){
// SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(SoNumber,SoLine,ItemCode );
// return saleDetailDO;
// }
}

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainService.java

@ -7,6 +7,7 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.deliverRequest.vo.*;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.framework.common.pojo.PageResult;
@ -81,6 +82,21 @@ public interface DeliverRequestMainService {
List<DeliverRequestMainDO> getDeliverRequestMainList(DeliverRequestMainExportReqVO exportReqVO);
/**
* 获得发货计划主列表, 用于 Excel 导出
*
* @param conditions 查询条件
* @return 发货计划主列表
*/
List<DeliverRequestMainDO> getDeliverPlanMainList(CustomConditions conditions);
public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
public Integer closeDeliverRequestMain(Long id);
public Integer reAddDeliverRequestMain(Long id);
public Integer submitDeliverRequestMain(Long id);
public Integer agreeDeliverRequestMain(Long id);
public Integer handleDeliverRequestMain(Long id);
public Integer abortDeliverRequestMain(Long id);
}

540
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java

@ -1,8 +1,7 @@
package com.win.module.wms.service.deliverRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.exception.ErrorCode;
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;
@ -11,36 +10,51 @@ 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.deliverRequest.vo.*;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.convert.deliverJob.DeliverJobDetailConvert;
import com.win.module.wms.convert.deliverJob.DeliverJobMainConvert;
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.customerdock.CustomerdockDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import com.win.module.wms.dal.mysql.balance.BalanceMapper;
import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobDetailMapper;
import com.win.module.wms.dal.mysql.deliverJob.DeliverJobDetailMapper;
import com.win.module.wms.dal.mysql.deliverJob.DeliverJobMainMapper;
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper;
import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.customer.*;
import com.win.module.wms.service.customerdock.*;
import com.win.module.wms.service.expectout.ExpectoutService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.jobsetting.JobsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Validator;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.deliverRequest.DeliverRequestMainConvert;
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestMainMapper;
@ -61,7 +75,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
private DeliverRequestMainMapper deliverRequestMainMapper;
@Resource
private DeliverRequestDetailMapper deliverRequestDetailMapper;
private DeliverRequestDetailMapper deliverRequestDetailMapper;
@Resource
private DeliverJobMainMapper deliverJobMainMapper;
@Resource
private JobUtils jobUtils;
@Resource
@ -69,6 +86,9 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private Validator validator;
@ -80,109 +100,69 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
@Resource
private CustomerService customerService;
@Resource
private CustomerdockService customerdockService;
@Resource
private CustomerreturnJobDetailMapper customerreturnJobDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private ExpectoutService expectoutService;
@Resource
private DeliverJobMainService deliverJobMainService;
@Resource
private DeliverJobDetailMapper deliverJobDetailMapper;
@Resource
private RuleService ruleService;
@Resource
private JobsettingService jobsettingService;
@Resource
private BalanceMapper balanceMapper;
@Resource
private ExpectoutMapper expectoutMapper;
@Override
@Transactional
public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) {
// 插入
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest");
DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,businesstypeDO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) {
generateJob(deliverRequestMain,deliverRequestDetailMapper.selectList(deliverRequestMain.getId()));
}
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE);
return deliverRequestMain.getId();
}
private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) {
validateDetailMethod(deliverRequestDetailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
deliverRequestMainDO.setNumber(number);
deliverRequestMainMapper.insert(deliverRequestMainDO);
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) {
deliverRequestDetailDO.setMasterId(deliverRequestMainDO.getId());
deliverRequestDetailDO.setNumber(deliverRequestMainDO.getNumber());
}
deliverRequestDetailMapper.insertBatch(subDOList);
return deliverRequestMainDO;
}
private DeliverRequestMainDO validateMainMethod(DeliverRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
DeliverRequestMainDO deliverRequestMainDO = DeliverRequestMainConvert.INSTANCE.convert(baseVO);
deliverRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
deliverRequestMainDO.setRequestTime(LocalDateTime.now());
requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
deliverRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
deliverRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
deliverRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
deliverRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest");
deliverRequestMainDO.setBusinessType(businesstypeDO.getCode());
deliverRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
deliverRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
return deliverRequestMainDO;
}
private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) {
ItembasicDO itembasicDO = validatoritemcode(deliverRequestDetailDO.getItemCode());
deliverRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
deliverRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
deliverRequestDetailDO.setItemName(itembasicDO.getName());
deliverRequestDetailDO.setProjectCode(itembasicDO.getProject());
Isuom(itembasicDO.getUom(),deliverRequestDetailDO.getUom());
SaleDetailDO saleDetailDO =validatorSale(deliverRequestDetailDO.getSoNumber(),deliverRequestDetailDO.getSoLine(),deliverRequestDetailDO.getItemCode());
if(saleDetailDO!=null) {
Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode());
}
return deliverRequestDetailDO;
}
@Override
@Transactional
public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest");
// 校验存在
validateDeliverRequestMainExists(updateReqVO.getId());
// 更新
DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE);
}
private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<DeliverRequestDetailCreateReqVO> subList = updateReqVO.getSubList();
if(subList!=null){
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) {
validateDetailMethod(issueRequestDetailDO);
deliverRequestDetailMapper.updateBatch(subDOList);
}
}
deliverRequestMainMapper.updateById(deliverRequestMainDO);
return deliverRequestMainDO;
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMainDO.getStatus())) {
generateJob(deliverRequestMainDO,deliverRequestDetailMapper.selectList(deliverRequestMainDO.getId()));
}
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "修改了制品上架申请", TrendsTypeEnum.UPDATE);
}
@Override
@Transactional
public void deleteDeliverRequestMain(Long id) {
// 校验存在
validateDeliverRequestMainExists(id);
@ -190,10 +170,12 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
deliverRequestMainMapper.deleteById(id);
}
private void validateDeliverRequestMainExists(Long id) {
if (deliverRequestMainMapper.selectById(id) == null) {
private DeliverRequestMainDO validateDeliverRequestMainExists(Long id) {
DeliverRequestMainDO deliverRequestMainDO = deliverRequestMainMapper.selectById(id);
if (deliverRequestMainDO == null) {
throw exception(DELIVER_REQUEST_MAIN_NOT_EXISTS);
}
return deliverRequestMainDO;
}
@Override
@ -220,30 +202,225 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
public List<DeliverRequestMainDO> getDeliverRequestMainList(DeliverRequestMainExportReqVO exportReqVO) {
return deliverRequestMainMapper.selectList(exportReqVO);
}
public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2);
String value2 = dictDataRespDTO1.getLabel();
if(value2.equals(value)){
return "ture";
}else {
throw exception(UOM_ERROR, value2);
@Override
public List<DeliverRequestMainDO> getDeliverPlanMainList(CustomConditions conditions) {
return deliverRequestMainMapper.selectSeniorList(conditions);
}
// @Override
@Override
public Integer closeDeliverRequestMain(Long id) {
// 校验存在存在下级单据
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id);
Long count = deliverJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(DELIVER_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "deliverRequest", "关闭了发货申请", TrendsTypeEnum.UPDATE);
return deliverRequestMainMapper.updateById(mainDO);
}
public String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty,String sonumber,String soline,String itemcode) {
BigDecimal resultqty = orderqty.subtract(shippedqty);
if( resultqty.compareTo(detailqty)>0 )
return "TURE";
else{
throw exception(QTY_ERROR, detailqty,sonumber,soline,itemcode,resultqty);
@Override
@Transactional
public Integer reAddDeliverRequestMain(Long id) {
// 校验存在存在下级单据
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id);
Long count = deliverJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(DELIVER_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_RE_ADD);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "deliverRequest", "打开了发货申请", TrendsTypeEnum.UPDATE);
return deliverRequestMainMapper.updateById(mainDO);
}
// @Override
@Transactional
@Override
public Integer submitDeliverRequestMain(Long id) {
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, deliverRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "deliverRequest", "提交了发货申请", TrendsTypeEnum.UPDATE);
return deliverRequestMainMapper.updateById(mainDO);
}
// @Override
@Transactional
@Override
public Integer agreeDeliverRequestMain(Long id) {
// 校验存在
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, deliverRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "deliverRequest", "审批同意了发货申请", TrendsTypeEnum.UPDATE);
return deliverRequestMainMapper.updateById(mainDO);
}
// @Override
@Transactional
@Override
public Integer handleDeliverRequestMain(Long id) {
// 校验存在
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateJob(mainDO, deliverRequestDetailMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "deliverRequest", "执行了发货申请", TrendsTypeEnum.UPDATE);
return deliverRequestMainMapper.updateById(mainDO);
}
// @Override
@Transactional
@Override
public Integer abortDeliverRequestMain(Long id) {
// 校验存在
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "deliverRequest", "审批拒绝了发货申请", TrendsTypeEnum.UPDATE);
return deliverRequestMainMapper.updateById(mainDO);
}
/**
* 生成采购收货任务不要改动事务传播方式否则会有事务问题
* @param mainDO 采购收货主
* @param detailDOList 采购收货子
*/
private void generateJob(DeliverRequestMainDO mainDO, List<DeliverRequestDetailDO> detailDOList) {
DeliverJobMainDO deliverJobMainDO = DeliverJobMainConvert.INSTANCE.convert(mainDO);
BeanUtils.copyProperties(mainDO, deliverJobMainDO);
deliverJobMainDO.setRequestNumber(mainDO.getNumber());
deliverJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_JOB.getCode());
deliverJobMainDO.setNumber(number);
deliverJobMainDO.setId(null);
deliverJobMainDO.setRequestTime(mainDO.getRequestTime());
deliverJobMainDO.setRequestDueTime(mainDO.getDueTime());
deliverJobMainDO.setCreator(null);
deliverJobMainDO.setCreateTime(null);
deliverJobMainDO.setUpdater(null);
deliverJobMainDO.setUpdateTime(null);
// 获取任务单据设置
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("DeliverJob");
deliverJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
deliverJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
deliverJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());
deliverJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty());
deliverJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty());
deliverJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus());
deliverJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning());
deliverJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
deliverJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
deliverJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverJob");
deliverJobMainDO.setBusinessType(businesstypeDO.getCode());
deliverJobMainMapper.insert(deliverJobMainDO);
List<ExpectoutCreateReqVO> expectpoutCreateReqVOList = new ArrayList<>();
List<DeliverJobDetailDO> deliverJobDetailDOList = new ArrayList<>();
detailDOList.forEach(item -> {
// 根据批次策略/下架策略 返回 库存余额DO
List<BalanceDO> balanceDOListJob = jobUtils.getBalanceByBatchOffShelf(item.getItemCode(),"OK",item.getProjectCode(),item.getQty());
// 根据 查询出所需数据 解析成 任务子表数据
balanceDOListJob.forEach(balanceDOItem -> {
DeliverJobDetailDO deliverJobDetailDo = new DeliverJobDetailDO();
BeanUtils.copyProperties(item, deliverJobDetailDo);
deliverJobDetailDo.setId(null);
deliverJobDetailDo.setCreateTime(null);
deliverJobDetailDo.setCreator(null);
deliverJobDetailDo.setUpdateTime(null);
deliverJobDetailDo.setUpdater(null);
deliverJobDetailDo.setProjectCode(item.getProjectCode());
deliverJobDetailDo.setPackingNumber(balanceDOItem.getPackingNumber());
deliverJobDetailDo.setContainerNumber(balanceDOItem.getContainerNumber());
deliverJobDetailDo.setBatch(balanceDOItem.getBatch());
deliverJobDetailDo.setFromLocationCode(balanceDOItem.getLocationCode());
deliverJobDetailDo.setToLocationCode(item.getToLocationCode());
deliverJobDetailDo.setItemCode(item.getItemCode());
deliverJobDetailDo.setItemName(item.getItemName());
deliverJobDetailDo.setItemDesc1(item.getItemDesc1());
deliverJobDetailDo.setItemDesc2(item.getItemDesc2());
deliverJobDetailDo.setProjectCode(item.getProjectCode());
deliverJobDetailDo.setQty(item.getQty());
deliverJobDetailDo.setUom(item.getUom());
deliverJobDetailDo.setNumber(deliverJobMainDO.getNumber());
deliverJobDetailDo.setMasterId(deliverJobMainDO.getId());
deliverJobDetailDo.setInventoryStatus(item.getInventoryStatus());
deliverJobDetailDOList.add(deliverJobDetailDo);
//预计出
ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO();
BeanUtils.copyProperties(deliverJobDetailDo, expectoutCreateReqVO);
expectoutCreateReqVO.setJobNumber(number);
expectoutCreateReqVO.setBusinessType(deliverJobMainDO.getBusinessType());
expectoutCreateReqVO.setLocationCode(deliverJobDetailDo.getFromLocationCode());
expectoutCreateReqVO.setBatch(deliverJobDetailDo.getBatch());
expectoutCreateReqVO.setOwnerCode(deliverJobDetailDo.getOwnerCode());
expectoutCreateReqVO.setQty(deliverJobDetailDo.getQty());
expectoutCreateReqVO.setInventoryStatus("OK");
expectpoutCreateReqVOList.add(expectoutCreateReqVO);
});
});
deliverJobDetailMapper.insertBatch(deliverJobDetailDOList);
//增加预计入
expectoutService.createExpectout(expectpoutCreateReqVOList);
trendsApi.createTrends(deliverJobMainDO.getId(), "DeliverJob", "成品发货申请生成成品发货任务", TrendsTypeEnum.CREATE);
}
private String validateDeliverRequestMainImport(DeliverRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now());
try{
validatorcustomercode(mainDo.getCustomerCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
CustomerdockDO customerdockDO = validatorcustomerDockCode(mainDo.getCustomerCode(),mainDo.getCustomerDockCode());
if(customerdockDO == null){
message.append("未查找到客户" + mainDo.getCustomerCode() + "与" + "客户月台" + mainDo.getCustomerDockCode() + "相关的数据");
}else {
mainDo.setToWarehouseCode(customerdockDO.getWarehouseCode());
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
if (requestsettingDO == null) {
message.append("未查找到发料申请的相关申请设置");
@ -252,8 +429,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
}
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest");
if(businesstypeDO == null){
message.append("根据单据设置未查找到发料申请的相关业务类型");
}else {
@ -270,26 +449,9 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
}
return message.toString();
}
private void validatorcustomercode(String code){
customerService.selectCustomerExist(code);
}
private ItembasicDO validatoritemcode(String code){
ItembasicDO itembasicDO = itembasicService.selectItembasic(code);
return itembasicDO;
}
private SaleDetailDO validatorSale(String SoNumber,String SoLine,String ItemCode ){
SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(SoNumber,SoLine,ItemCode );
return saleDetailDO;
}
private String validateIssueRequestDetailImport(DeliverRequestDetailDO detailDo, DeliverRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
private String validateIssueRequestDetailImport(DeliverRequestDetailDO detailDo) {
StringBuilder message = new StringBuilder();
try{
validatorcustomercode(mainDo.getCustomerCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ItembasicDO itembasicDO = validatoritemcode(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
@ -304,18 +466,19 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
SaleDetailDO saleDetailDO =validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode());
if(saleDetailDO!=null) {
try {
Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
}
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
//TODO 暂时滞后 等待销售订单开发后再启动
// try{
// SaleDetailDO saleDetailDO = validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode());
// if(saleDetailDO!=null) {
// try {
// Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode());
// } catch (Exception ex) {
// message.append(ex.getMessage()).append(",");
// }
// }
// }catch (Exception ex) {
// message.append(ex.getMessage()).append(",");
// }
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
@ -324,9 +487,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
return message.toString();
}
@Override
@Transactional
public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){
@ -335,7 +495,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
}
List<DeliverRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest");
DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO);
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList();
@ -343,7 +503,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
// 是否有错误数据
boolean flag = true;
for (DeliverRequestDetailDO detailDO : subDOList) {
String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO);
String messageDetail = validateIssueRequestDetailImport(detailDO);
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
@ -357,7 +517,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1"));
deliverRequestMainMapper.insert(mainDo);
for (DeliverRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
@ -369,4 +529,100 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
return errorList;
}
private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) {
validateDetailMethod(deliverRequestDetailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_REQUEST.getCode());
deliverRequestMainDO.setNumber(number);
deliverRequestMainDO.setRequestTime(LocalDateTime.now());
deliverRequestMainMapper.insert(deliverRequestMainDO);
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) {
deliverRequestDetailDO.setMasterId(deliverRequestMainDO.getId());
deliverRequestDetailDO.setNumber(deliverRequestMainDO.getNumber());
}
deliverRequestDetailMapper.insertBatch(subDOList);
return deliverRequestMainDO;
}
private DeliverRequestMainDO validateMainMethod(DeliverRequestMainBaseVO baseVO ,BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
DeliverRequestMainDO deliverRequestMainDO = DeliverRequestMainConvert.INSTANCE.convert(baseVO);
validatorcustomercode(deliverRequestMainDO.getCustomerCode());
CustomerdockDO customerdockDO = validatorcustomerDockCode(deliverRequestMainDO.getCustomerCode(),deliverRequestMainDO.getCustomerDockCode());
if(customerdockDO == null){
deliverRequestMainDO.setToWarehouseCode(null);
}else {
deliverRequestMainDO.setToWarehouseCode(customerdockDO.getWarehouseCode());
}
deliverRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
deliverRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
deliverRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
deliverRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(deliverRequestMainDO.getAutoCommit(), deliverRequestMainDO.getAutoAgree(), deliverRequestMainDO.getAutoExecute());
deliverRequestMainDO.setStatus(requestStatusState.getState().getCode());
deliverRequestMainDO.setBusinessType(businesstypeDO.getCode());
deliverRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
deliverRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
return deliverRequestMainDO;
}
private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) {
ItembasicDO itembasicDO = validatoritemcode(deliverRequestDetailDO.getItemCode());
deliverRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
deliverRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
deliverRequestDetailDO.setItemName(itembasicDO.getName());
deliverRequestDetailDO.setProjectCode(itembasicDO.getProject());
Isuom(itembasicDO.getUom(),deliverRequestDetailDO.getUom());
SaleDetailDO saleDetailDO =validatorSale(deliverRequestDetailDO.getSoNumber(),deliverRequestDetailDO.getSoLine(),deliverRequestDetailDO.getItemCode());
//TODO 后续销售订单开发后再解除注释
// if(saleDetailDO!=null) {
// Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode());
// }
return deliverRequestDetailDO;
}
private void validatorcustomercode(String code){
customerService.selectCustomerExist(code);
}
private CustomerdockDO validatorcustomerDockCode(String customerCode,String customerDockCode){
return customerdockService.getCustomerdockByCustomerCode(customerCode,customerDockCode);
}
private ItembasicDO validatoritemcode(String code){
ItembasicDO itembasicDO = itembasicService.selectItembasic(code);
return itembasicDO;
}
private SaleDetailDO validatorSale(String SoNumber,String SoLine,String ItemCode ){
SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(SoNumber,SoLine,ItemCode );
return saleDetailDO;
}
private String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2);
String value2 = dictDataRespDTO1.getLabel();
if(value2.equals(value)){
return "ture";
}else {
throw exception(UOM_ERROR, value2);
}
}
//TODO 后续销售订单开发后再解除注释
// private String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty, String sonumber, String soline, String itemcode) {
// BigDecimal resultqty = orderqty.subtract(shippedqty);
// if(resultqty.compareTo(detailqty) > 0)
// return "TURE";
// else{
// throw exception(QTY_ERROR, detailqty,sonumber,soline,itemcode,resultqty);
// }
// }
}

Loading…
Cancel
Save