Browse Source

计划外入库计划外出库

master
廉洪喜 2 years ago
parent
commit
803abc3807
  1. 105
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java
  2. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailBaseVO.java
  3. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainBaseVO.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainCreateReqVO.java
  5. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainExcelVO.java
  6. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportErrorVO.java
  7. 70
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java
  8. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainUpdateReqVO.java
  9. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailBaseVO.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailUpdateReqVO.java
  12. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainBaseVO.java
  13. 66
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExcelVO.java
  14. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExportReqVO.java
  15. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainImportVO.java
  16. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainUpdateReqVO.java
  17. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java
  18. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java
  19. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestDetailConvert.java
  20. 30
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestMainConvert.java
  21. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestDetailConvert.java
  22. 31
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestMainConvert.java
  23. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java
  24. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java
  25. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java
  26. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java
  27. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java
  28. 77
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java
  29. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java
  30. 298
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java
  31. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java
  32. 65
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java
  33. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java
  34. 290
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java

105
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java

@ -1,12 +1,23 @@
package com.win.module.wms.controller.unplannedissueRequest; package com.win.module.wms.controller.unplannedissueRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
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.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.*; import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestDetailService; import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestDetailService;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -17,6 +28,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*; import javax.validation.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.io.IOException; import java.io.IOException;
@ -31,6 +44,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert; import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert;
import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestMainService; import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 计划外出库申请主") @Tag(name = "管理后台 - 计划外出库申请主")
@RestController @RestController
@ -111,22 +125,59 @@ public class UnplannedissueRequestMainController {
return success(UnplannedissueRequestMainConvert.INSTANCE.convertPage(pageResult)); return success(UnplannedissueRequestMainConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出计划外出库申请主 Excel") @Operation(summary = "导出计划外出库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:export')") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportUnplannedissueRequestMainExcel(@Valid UnplannedissueRequestMainExportReqVO exportReqVO, public void exportUnplannedissueRequestMainExcel(@Valid UnplannedissueRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
List<UnplannedissueRequestMainDO> list = unplannedissueRequestMainService.getUnplannedissueRequestMainList(exportReqVO); List<UnplannedissueRequestMainDO> list = unplannedissueRequestMainService.getUnplannedissueRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<UnplannedissueRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel // 导出 Excel
List<UnplannedissueRequestMainExcelVO> datas = UnplannedissueRequestMainConvert.INSTANCE.convertList02(list); ExcelUtils.write(response, "计划外出库申请主.xls", "计划外出库申请数据", UnplannedissueRequestMainExcelVO.class, resultList,mapDropDown);
for(UnplannedissueRequestMainExcelVO vo : datas) { }
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 @PostMapping("/export-excel-senior")
@Operation(summary = "导出计划外出库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')")
@OperateLog(type = EXPORT)
public void exportUnplannedreceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<UnplannedissueRequestMainDO> list = unplannedissueRequestMainService.getUnplannedissueRequestMainList1(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<UnplannedissueRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "计划外出库申请主.xlsx", "计划外出库申请数据", UnplannedissueRequestMainExcelVO.class, resultList, mapDropDown);
}
private List<UnplannedissueRequestMainExcelVO> getExcelVo(List<UnplannedissueRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(22, fromInventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(28, uom);
List<UnplannedissueRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(UnplannedissueRequestMainDO mainDO : list) {
List<UnplannedissueRequestDetailDO> subList = unplannedissueRequestMainService.selectList(mainDO.getId());
for(UnplannedissueRequestDetailDO detailDO : subList) {
UnplannedissueRequestMainExcelVO vo = UnplannedissueRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
resultList.add(vo);
} }
ExcelUtils.write(response, "计划外出库申请主.xls", "数据", UnplannedissueRequestMainExcelVO.class, datas);
} }
return resultList;
}
@GetMapping("/getUnplannedissueRequestById") @GetMapping("/getUnplannedissueRequestById")
@Operation(summary = "APP获得计划外出库申请主子表明细列表") @Operation(summary = "APP获得计划外出库申请主子表明细列表")
@ -146,4 +197,44 @@ public class UnplannedissueRequestMainController {
return success(result); return success(result);
} }
@GetMapping("/get-import-template")
@Operation(summary = "获得导入采购收货申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<UnplannedissueRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
// 输出
ExcelUtils.write(response, "采购收货申请信息导入模板.xlsx", "采购收货申请信息列表", UnplannedissueRequestMainImportVO.class, list, mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入采购收货申请")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<UnplannedissueRequestMainImportVO> list = ExcelUtils.read(file, UnplannedissueRequestMainImportVO.class);
ConvertUtil<UnplannedissueRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(UnplannedissueRequestMainCreateReqVO.class);
List<UnplannedissueRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<UnplannedissueRequestMainImportErrorVO> errorList = unplannedissueRequestMainService.importUnplannedissueRequestMainList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("采购收货申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailBaseVO.java

@ -57,7 +57,6 @@ public class UnplannedissueRequestDetailBaseVO {
private String remark; private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime; private LocalDateTime createTime;
@ -89,4 +88,7 @@ public class UnplannedissueRequestDetailBaseVO {
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
private String updater; private String updater;
@Schema(description = "master_id", example = "master_id")
private Long masterId;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.unplannedissueRequest.vo; package com.win.module.wms.controller.unplannedissueRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -23,22 +24,19 @@ public class UnplannedissueRequestMainBaseVO {
private Long id; private Long id;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode; private String fromWarehouseCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空") @OnlyOne
private String number; private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
private String businessType; private String businessType;
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime; private LocalDateTime createTime;
@ -71,11 +69,9 @@ public class UnplannedissueRequestMainBaseVO {
private String concurrencyStamp; private String concurrencyStamp;
@Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位类型范围不能为空")
private String fromLocationTypes; private String fromLocationTypes;
@Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库区代码范围不能为空")
private String fromAreaCodes; private String fromAreaCodes;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.unplannedissueRequest.vo; package com.win.module.wms.controller.unplannedissueRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 计划外出库申请主创建 Request VO") @Schema(description = "管理后台 - 计划外出库申请主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class UnplannedissueRequestMainCreateReqVO extends UnplannedissueRequestMainBaseVO { public class UnplannedissueRequestMainCreateReqVO extends UnplannedissueRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<UnplannedissueRequestDetailCreateReqVO> subList;
} }

42
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainExcelVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.unplannedissueRequest.vo; package com.win.module.wms.controller.unplannedissueRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -34,15 +35,18 @@ public class UnplannedissueRequestMainExcelVO {
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 25)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者用户名") @ExcelProperty("创建者用户名")
private String creator; private String creator;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 25)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@ColumnWidth(value = 25)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("部门") @ExcelProperty("部门")
@ -53,13 +57,12 @@ public class UnplannedissueRequestMainExcelVO {
private String status; private String status;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 25)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
private String updater; private String updater;
@ExcelProperty("并发乐观锁")
private String concurrencyStamp;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ -80,4 +83,39 @@ public class UnplannedissueRequestMainExcelVO {
@ExcelProperty("直接生成记录") @ExcelProperty("直接生成记录")
private String directCreateRecord; private String directCreateRecord;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("库存状态")
private String inventoryStatus;
@ExcelProperty("原因")
private String reason;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("计量单位")
private String uom;
} }

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.unplannedissueRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UnplannedissueRequestMainImportErrorVO extends UnplannedissueRequestMainImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

70
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java

@ -0,0 +1,70 @@
package com.win.module.wms.controller.unplannedissueRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
*
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class UnplannedissueRequestMainImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
//主表数据
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("计量单位")
private String uom;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty(value = "原因")
private String reason;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.unplannedissueRequest.vo; package com.win.module.wms.controller.unplannedissueRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 计划外出库申请主更新 Request VO") @Schema(description = "管理后台 - 计划外出库申请主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class UnplannedissueRequestMainUpdateReqVO extends UnplannedissueRequestMainBaseVO { public class UnplannedissueRequestMainUpdateReqVO extends UnplannedissueRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<UnplannedissueRequestDetailUpdateReqVO> subList;
} }

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java

@ -3,16 +3,23 @@ package com.win.module.wms.controller.unplannedreceiptRequest;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.purchasereceiptRequest.PurchasereceiptRequestDetailService;
import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestDetailService; import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestDetailService;
import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestMainService; import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -50,6 +57,7 @@ public class UnplannedreceiptRequestMainController {
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建计划外入库申请主") @Operation(summary = "创建计划外入库申请主")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:create')") @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:create')")
@ -117,17 +125,44 @@ public class UnplannedreceiptRequestMainController {
@Operation(summary = "导出计划外入库申请主 Excel") @Operation(summary = "导出计划外入库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')") @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportUnplannedreceiptRequestMainExcel(@Valid UnplannedreceiptRequestMainExportReqVO exportReqVO, public void exportUnplannedreceiptRequestMainExcel(@Valid UnplannedreceiptRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
List<UnplannedreceiptRequestMainDO> list = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainList(exportReqVO); List<UnplannedreceiptRequestMainDO> list = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<UnplannedreceiptRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "计划外入库申请主.xls", "数据", UnplannedreceiptRequestMainExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出计划外入库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')")
@OperateLog(type = EXPORT)
public void exportUnplannedreceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<UnplannedreceiptRequestMainDO> list = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainList1(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<UnplannedreceiptRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel // 导出 Excel
List<UnplannedreceiptRequestMainExcelVO> datas = UnplannedreceiptRequestMainConvert.INSTANCE.convertList02(list); ExcelUtils.write(response, "计划外入库申请主.xlsx", "计划外入库申请数据", UnplannedreceiptRequestMainExcelVO.class, resultList, mapDropDown);
for(UnplannedreceiptRequestMainExcelVO vo : datas) { }
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 private List<UnplannedreceiptRequestMainExcelVO> getExcelVo(List<UnplannedreceiptRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(26, fromInventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(34, uom);
List<UnplannedreceiptRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(UnplannedreceiptRequestMainDO mainDO : list) {
List<UnplannedreceiptRequestDetailDO> subList = unplannedreceiptRequestDetailService.selectList(mainDO.getId());
for(UnplannedreceiptRequestDetailDO detailDO : subList) {
UnplannedreceiptRequestMainExcelVO vo = UnplannedreceiptRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
resultList.add(vo);
}
} }
ExcelUtils.write(response, "计划外入库申请主.xls", "数据", UnplannedreceiptRequestMainExcelVO.class, datas); return resultList;
} }
@GetMapping("/getUnplannedreceiptRequestById") @GetMapping("/getUnplannedreceiptRequestById")
@ -154,10 +189,10 @@ public class UnplannedreceiptRequestMainController {
// 手动创建导出 demo // 手动创建导出 demo
List<UnplannedreceiptRequestMainImportVO> list = new ArrayList<>(); List<UnplannedreceiptRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
// mapDropDown.put(16, purchaseReturnReason); mapDropDown.put(6, fromInventoryStatus);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom); mapDropDown.put(8, uom);
// 输出 // 输出
ExcelUtils.write(response, "要货计划信息导入模板.xlsx", "要货计划信息列表", UnplannedreceiptRequestMainImportVO.class, list, mapDropDown); ExcelUtils.write(response, "要货计划信息导入模板.xlsx", "要货计划信息列表", UnplannedreceiptRequestMainImportVO.class, list, mapDropDown);
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailBaseVO.java

@ -101,4 +101,7 @@ public class UnplannedreceiptRequestDetailBaseVO {
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
private String updater; private String updater;
@Schema(description = "master_id", example = "master_id")
private Long masterId;
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailUpdateReqVO.java

@ -1,8 +1,12 @@
package com.win.module.wms.controller.unplannedreceiptRequest.vo; package com.win.module.wms.controller.unplannedreceiptRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 计划外入库申请子更新 Request VO") @Schema(description = "管理后台 - 计划外入库申请子更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainBaseVO.java

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

66
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.unplannedreceiptRequest.vo; package com.win.module.wms.controller.unplannedreceiptRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -34,18 +37,22 @@ public class UnplannedreceiptRequestMainExcelVO {
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 25)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者用户名") @ExcelProperty("创建者用户名")
private String creator; private String creator;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 25)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@ColumnWidth(value = 25)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("部门") @ExcelProperty("部门")
@ColumnWidth(value = 25)
private String departmentCode; private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "状态", converter = DictConvert.class)
@ -53,6 +60,7 @@ public class UnplannedreceiptRequestMainExcelVO {
private String status; private String status;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 25)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
@ -77,4 +85,62 @@ public class UnplannedreceiptRequestMainExcelVO {
@ExcelProperty("直接生成记录") @ExcelProperty("直接生成记录")
private String directCreateRecord; private String directCreateRecord;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("替代批次")
private String altBatch;
@ExcelProperty("到货日期")
@ColumnWidth(value = 24)
private LocalDateTime arriveDate;
@ExcelProperty("生产日期")
@ColumnWidth(value = 24)
private LocalDateTime produceDate;
@ExcelProperty("过期日期")
@ColumnWidth(value = 24)
private LocalDateTime expireDate;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty(value = "原因", converter = DictConvert.class)
@DictFormat("unplanned_receipt_reason") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String reason;
@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;
} }

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainExportReqVO.java

@ -1,10 +1,12 @@
package com.win.module.wms.controller.unplannedreceiptRequest.vo; package com.win.module.wms.controller.unplannedreceiptRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*; import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -27,6 +29,7 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;
@Schema(description = "创建者用户名") @Schema(description = "创建者用户名")
@ -34,10 +37,12 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "申请时间") @Schema(description = "申请时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] requestTime; private LocalDateTime[] requestTime;
@Schema(description = "截止时间") @Schema(description = "截止时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] dueTime; private LocalDateTime[] dueTime;
@Schema(description = "部门") @Schema(description = "部门")
@ -48,6 +53,7 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "最后更新时间") @Schema(description = "最后更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] updateTime; private LocalDateTime[] updateTime;
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
@ -71,4 +77,8 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "直接生成记录") @Schema(description = "直接生成记录")
private String directCreateRecord; private String directCreateRecord;
@SubObject
@Schema(description = "子表数据")
private List<UnplannedreceiptRequestDetailCreateReqVO> subList;
} }

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainImportVO.java

@ -1,6 +1,9 @@
package com.win.module.wms.controller.unplannedreceiptRequest.vo; package com.win.module.wms.controller.unplannedreceiptRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -23,29 +26,48 @@ public class UnplannedreceiptRequestMainImportVO {
//主表数据 //主表数据
@ExcelProperty("单据号")
private String number;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
//子表数据 //子表数据
@ExcelProperty("零件号") @ExcelProperty("零件号")
private String itemCode; private String itemCode;
@ExcelProperty("包装号") @ExcelProperty("包装号")
private String packingNumber; private String packingNumber;
@ExcelProperty("器具号") @ExcelProperty("器具号")
private String containerNumber; private String containerNumber;
@ExcelProperty("批次") @ExcelProperty("批次")
private String batch; private String batch;
@ExcelProperty("库存状态")
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus; private String inventoryStatus;
@ExcelProperty("数量") @ExcelProperty("数量")
private BigDecimal qty; private BigDecimal qty;
@ExcelProperty("记录单位")
@ExcelProperty(value = "记录单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom; private String uom;
@ExcelProperty("到货日期") @ExcelProperty("到货日期")
private LocalDateTime arriveDate; private LocalDateTime arriveDate;
@ExcelProperty("生产日期") @ExcelProperty("生产日期")
private LocalDateTime produceDate; private LocalDateTime produceDate;
@ExcelProperty("过期日期") @ExcelProperty("过期日期")
private LocalDateTime expireDate; private LocalDateTime expireDate;
@ExcelProperty("目标库位") @ExcelProperty("目标库位")
private String toLocationCode; private String toLocationCode;
@ExcelProperty("原因") @ExcelProperty("原因")
private String reason; private String reason;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestMainUpdateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.unplannedreceiptRequest.vo; package com.win.module.wms.controller.unplannedreceiptRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 计划外入库申请主更新 Request VO") @Schema(description = "管理后台 - 计划外入库申请主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class UnplannedreceiptRequestMainUpdateReqVO extends UnplannedreceiptRequestMainBaseVO { public class UnplannedreceiptRequestMainUpdateReqVO extends UnplannedreceiptRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<UnplannedreceiptRequestDetailUpdateReqVO> subList;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java

@ -49,6 +49,6 @@ public interface TransferissueRequestDetailConvert {
}) })
TransferissueRequestDetailExcelVO convert(TransferissueRequestMainDO mainDO, TransferissueRequestDetailDO detailDO); TransferissueRequestDetailExcelVO convert(TransferissueRequestMainDO mainDO, TransferissueRequestDetailDO detailDO);
TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainVo, TransferissueRequestDetailCreateReqVO detailVo);
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java

@ -8,6 +8,8 @@ import com.win.module.wms.controller.transferissueRequest.vo.*;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
@ -34,7 +36,9 @@ public interface TransferissueRequestMainConvert {
PageResult<TransferissueRequestMainRespVO> convertPage(PageResult<TransferissueRequestMainDO> page); PageResult<TransferissueRequestMainRespVO> convertPage(PageResult<TransferissueRequestMainDO> page);
List<TransferissueRequestMainExcelVO> convertList02(List<TransferissueRequestMainDO> list); List<TransferissueRequestMainExcelVO> convertList02(List<TransferissueRequestMainDO> list);
@Mappings({
TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainVo, TransferissueRequestDetailDO detailDo); @Mapping(source = "mainDo.number", target = "number")
})
TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainDo, TransferissueRequestDetailDO detailDo);
} }

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestDetailConvert.java

@ -4,11 +4,16 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailCreateReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExcelVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailRespVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailUpdateReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainImportErrorVO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
@ -22,8 +27,12 @@ public interface UnplannedissueRequestDetailConvert {
UnplannedissueRequestDetailConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestDetailConvert.class); UnplannedissueRequestDetailConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestDetailConvert.class);
UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailBaseVO bean);
UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailCreateReqVO bean); UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailCreateReqVO bean);
List<UnplannedissueRequestDetailDO> convertList05(List<UnplannedissueRequestDetailUpdateReqVO> list);
UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailUpdateReqVO bean); UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailUpdateReqVO bean);
UnplannedissueRequestDetailRespVO convert(UnplannedissueRequestDetailDO bean); UnplannedissueRequestDetailRespVO convert(UnplannedissueRequestDetailDO bean);
@ -32,6 +41,9 @@ public interface UnplannedissueRequestDetailConvert {
PageResult<UnplannedissueRequestDetailRespVO> convertPage(PageResult<UnplannedissueRequestDetailDO> page); PageResult<UnplannedissueRequestDetailRespVO> convertPage(PageResult<UnplannedissueRequestDetailDO> page);
List<UnplannedissueRequestDetailDO> convertList03(List<UnplannedissueRequestDetailCreateReqVO> list);
List<UnplannedissueRequestDetailExcelVO> convertList02(List<UnplannedissueRequestDetailDO> list); List<UnplannedissueRequestDetailExcelVO> convertList02(List<UnplannedissueRequestDetailDO> list);
} }

30
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueRequest/UnplannedissueRequestMainConvert.java

@ -4,11 +4,15 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExcelVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainBaseVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainRespVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
@ -22,16 +26,34 @@ public interface UnplannedissueRequestMainConvert {
UnplannedissueRequestMainConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestMainConvert.class); UnplannedissueRequestMainConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestMainConvert.class);
UnplannedissueRequestMainDO convert(UnplannedissueRequestMainBaseVO bean);
UnplannedissueRequestMainDO convert(UnplannedissueRequestMainCreateReqVO bean); UnplannedissueRequestMainDO convert(UnplannedissueRequestMainCreateReqVO bean);
UnplannedissueRequestMainDO convert(UnplannedissueRequestMainUpdateReqVO bean); UnplannedissueRequestMainDO convert(UnplannedissueRequestMainUpdateReqVO bean);
UnplannedissueRequestMainRespVO convert(UnplannedissueRequestMainDO bean); UnplannedissueRequestMainRespVO convert(UnplannedissueRequestMainDO bean);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
UnplannedissueRequestMainImportErrorVO convert(UnplannedissueRequestMainCreateReqVO mainVo, UnplannedissueRequestDetailDO detailDo);
List<UnplannedissueRequestMainRespVO> convertList(List<UnplannedissueRequestMainDO> list); List<UnplannedissueRequestMainRespVO> convertList(List<UnplannedissueRequestMainDO> list);
PageResult<UnplannedissueRequestMainRespVO> convertPage(PageResult<UnplannedissueRequestMainDO> page); PageResult<UnplannedissueRequestMainRespVO> convertPage(PageResult<UnplannedissueRequestMainDO> page);
List<UnplannedissueRequestMainExcelVO> convertList02(List<UnplannedissueRequestMainDO> list); List<UnplannedissueRequestMainExcelVO> convertList02(List<UnplannedissueRequestMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
UnplannedissueRequestMainExcelVO convert(UnplannedissueRequestMainDO mainDO, UnplannedissueRequestDetailDO detailDO);
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestDetailConvert.java

@ -1,7 +1,9 @@
package com.win.module.wms.convert.unplannedreceiptRequest; package com.win.module.wms.convert.unplannedreceiptRequest;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@ -23,6 +25,10 @@ public interface UnplannedreceiptRequestDetailConvert {
UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailCreateReqVO bean); UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailCreateReqVO bean);
UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailBaseVO bean);
List<UnplannedreceiptRequestDetailDO> convertList05(List<UnplannedreceiptRequestDetailUpdateReqVO> list);
UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailUpdateReqVO bean); UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailUpdateReqVO bean);
UnplannedreceiptRequestDetailRespVO convert(UnplannedreceiptRequestDetailDO bean); UnplannedreceiptRequestDetailRespVO convert(UnplannedreceiptRequestDetailDO bean);
@ -47,6 +53,6 @@ public interface UnplannedreceiptRequestDetailConvert {
}) })
UnplannedreceiptRequestDetailExcelVO convert(UnplannedreceiptRequestMainDO mainDO, UnplannedreceiptRequestDetailDO detailDO); UnplannedreceiptRequestDetailExcelVO convert(UnplannedreceiptRequestMainDO mainDO, UnplannedreceiptRequestDetailDO detailDO);
UnplannedreceiptRequestMainImportErrorVO convert(UnplannedreceiptRequestMainCreateReqVO mainVo, UnplannedreceiptRequestDetailCreateReqVO detailVo);
} }

31
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptRequest/UnplannedreceiptRequestMainConvert.java

@ -4,11 +4,19 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainCreateReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainRespVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
@ -24,6 +32,8 @@ public interface UnplannedreceiptRequestMainConvert {
UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainCreateReqVO bean); UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainCreateReqVO bean);
UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainBaseVO bean);
UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainUpdateReqVO bean); UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainUpdateReqVO bean);
UnplannedreceiptRequestMainRespVO convert(UnplannedreceiptRequestMainDO bean); UnplannedreceiptRequestMainRespVO convert(UnplannedreceiptRequestMainDO bean);
@ -33,5 +43,18 @@ public interface UnplannedreceiptRequestMainConvert {
PageResult<UnplannedreceiptRequestMainRespVO> convertPage(PageResult<UnplannedreceiptRequestMainDO> page); PageResult<UnplannedreceiptRequestMainRespVO> convertPage(PageResult<UnplannedreceiptRequestMainDO> page);
List<UnplannedreceiptRequestMainExcelVO> convertList02(List<UnplannedreceiptRequestMainDO> list); List<UnplannedreceiptRequestMainExcelVO> convertList02(List<UnplannedreceiptRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
UnplannedreceiptRequestMainImportErrorVO convert(UnplannedreceiptRequestMainCreateReqVO mainVo, UnplannedreceiptRequestDetailDO detailDo);
@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"),
})
UnplannedreceiptRequestMainExcelVO convert(UnplannedreceiptRequestMainDO mainDO,UnplannedreceiptRequestDetailDO detailDO);
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExportReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExportReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailPageReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -75,4 +76,9 @@ public interface UnplannedissueRequestDetailMapper extends BaseMapperX<Unplanned
.orderByDesc(UnplannedissueRequestDetailDO::getId)); .orderByDesc(UnplannedissueRequestDetailDO::getId));
} }
default List<UnplannedissueRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<UnplannedissueRequestDetailDO>()
.eq(UnplannedissueRequestDetailDO::getMasterId, masterId));
}
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -72,4 +73,9 @@ public interface UnplannedissueRequestMainMapper extends BaseMapperX<Unplannedis
.orderByDesc(UnplannedissueRequestMainDO::getId)); .orderByDesc(UnplannedissueRequestMainDO::getId));
} }
default List<UnplannedissueRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -81,4 +82,9 @@ public interface UnplannedreceiptRequestDetailMapper extends BaseMapperX<Unplann
.orderByDesc(UnplannedreceiptRequestDetailDO::getId)); .orderByDesc(UnplannedreceiptRequestDetailDO::getId));
} }
default List<UnplannedreceiptRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<UnplannedreceiptRequestDetailDO>()
.eq(UnplannedreceiptRequestDetailDO::getMasterId, masterId));
}
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExportReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExportReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainPageReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -70,4 +71,8 @@ public interface UnplannedreceiptRequestMainMapper extends BaseMapperX<Unplanned
.orderByDesc(UnplannedreceiptRequestMainDO::getId)); .orderByDesc(UnplannedreceiptRequestMainDO::getId));
} }
default List<UnplannedreceiptRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java

@ -94,7 +94,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){
validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO); validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO);
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode());
transferissueRequestMainDO.setNumber(number); transferissueRequestMainDO.setNumber(number);
transferissueRequestMainMapper.insert(transferissueRequestMainDO); transferissueRequestMainMapper.insert(transferissueRequestMainDO);
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){
@ -127,7 +127,12 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
TransferissueRequestMainDO transferissueRequestMainDO = TransferissueRequestMainConvert.INSTANCE.convert(baseVO); TransferissueRequestMainDO transferissueRequestMainDO = TransferissueRequestMainConvert.INSTANCE.convert(baseVO);
transferissueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1")); RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(transferissueRequestMainDO.getAutoCommit(), transferissueRequestMainDO.getAutoAgree(), transferissueRequestMainDO.getAutoExecute());
transferissueRequestMainDO.setStatus(requestStatusState.getState().getCode());
transferissueRequestMainDO.setRequestTime(LocalDateTime.now());
transferissueRequestMainDO.setCreateTime(LocalDateTime.now());
validordurtime(transferissueRequestMainDO.getDueTime());
transferissueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); transferissueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
transferissueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); transferissueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
transferissueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); transferissueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());

77
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java

@ -1,10 +1,22 @@
package com.win.module.wms.service.unplannedissueRequest; package com.win.module.wms.service.unplannedissueRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailCreateReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExportReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailPageReqVO; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailUpdateReqVO; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert;
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.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -32,13 +44,64 @@ public class UnplannedissueRequestDetailServiceImpl implements UnplannedissueReq
@Resource @Resource
private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper; private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private ItembasicService itembasicService;
@Resource
private TrendsApi trendsApi;
@Resource
private LocationService locationService;
@Override @Override
public Long createUnplannedissueRequestDetail(UnplannedissueRequestDetailCreateReqVO createReqVO) { public Long createUnplannedissueRequestDetail(UnplannedissueRequestDetailCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
// 插入 // 插入
UnplannedissueRequestDetailDO unplannedissueRequestDetail = UnplannedissueRequestDetailConvert.INSTANCE.convert(createReqVO); UnplannedissueRequestDetailDO unplannedissueRequestDetail =validatorToCreate(createReqVO,requestsettingDO);
unplannedissueRequestDetailMapper.insert(unplannedissueRequestDetail);
// 返回 trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE);
return unplannedissueRequestDetail.getId(); return unplannedissueRequestDetail.getId();
}
private UnplannedissueRequestDetailDO validatorToCreate(UnplannedissueRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest");
UnplannedissueRequestDetailDO unplannedissueRequestDetailDO = validateDetailMethod(createReqVO,businesstypeDO,requestsettingDO);
unplannedissueRequestDetailDO.setMasterId(createReqVO.getMasterId());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode());
unplannedissueRequestDetailDO.setNumber(number);
unplannedissueRequestDetailMapper.insert(unplannedissueRequestDetailDO);
return unplannedissueRequestDetailDO;
}
private UnplannedissueRequestDetailDO validateDetailMethod(UnplannedissueRequestDetailBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
UnplannedissueRequestDetailDO detailDo = UnplannedissueRequestDetailConvert.INSTANCE.convert(baseVO);
validatorLocation(detailDo.getFromLocationCode());
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
detailDo.setUom(itembasicDO.getUom());
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO );
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO );
String INVENTORY = detailDo.getInventoryStatus();
String[] inventory = INVENTORY.split(",");
List<String> inventorystatus = Arrays.asList(inventory);
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus);
return detailDo;
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
} }
@Override @Override

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java

@ -5,12 +5,14 @@ import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
/** /**
* 计划外出库申请主 Service 接口 * 计划外出库申请主 Service 接口
@ -88,4 +90,10 @@ public interface UnplannedissueRequestMainService {
*/ */
public DictDataRespDTO selectLabelExist(String ptype, String plabel); public DictDataRespDTO selectLabelExist(String ptype, String plabel);
List<UnplannedissueRequestDetailDO> selectList(Long masterId);
List<UnplannedissueRequestMainImportErrorVO> importUnplannedissueRequestMainList(List<UnplannedissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
List<UnplannedissueRequestMainDO> getUnplannedissueRequestMainList1(CustomConditions conditions);
} }

298
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java

@ -1,16 +1,47 @@
package com.win.module.wms.service.unplannedissueRequest; package com.win.module.wms.service.unplannedissueRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions; 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.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExportReqVO; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainPageReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
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.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.dal.mysql.unplannedissueRequest.UnplannedissueRequestDetailMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
@ -33,25 +64,129 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque
@Resource @Resource
private UnplannedissueRequestMainMapper unplannedissueRequestMainMapper; private UnplannedissueRequestMainMapper unplannedissueRequestMainMapper;
@Resource
private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper;
@Resource @Resource
private DictDataApi dictDataApi; private DictDataApi dictDataApi;
@Resource
private LocationService locationService;
@Resource
private RequestsettingService requestsettingService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private ItembasicService itembasicService;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Override @Override
public Long createUnplannedissueRequestMain(UnplannedissueRequestMainCreateReqVO createReqVO) { public Long createUnplannedissueRequestMain(UnplannedissueRequestMainCreateReqVO createReqVO) {
// 插入 RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
UnplannedissueRequestMainDO unplannedissueRequestMain = UnplannedissueRequestMainConvert.INSTANCE.convert(createReqVO); UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
unplannedissueRequestMainMapper.insert(unplannedissueRequestMain); //调用自动执行方法
// 返回 if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) {
return unplannedissueRequestMain.getId();
}
trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE);
return unplannedissueRequestMainDO.getId();
}
private UnplannedissueRequestMainDO validatorToCreate(UnplannedissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest");
UnplannedissueRequestMainDO unplannedissueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<UnplannedissueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<UnplannedissueRequestDetailDO> subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList03(subList);
for (UnplannedissueRequestDetailDO unplannedissueRequestDetailDO : subDOList) {
validateDetailMethod(unplannedissueRequestDetailDO, businesstypeDO,unplannedissueRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_DELIVER_REQUEST.getCode());
unplannedissueRequestMainDO.setNumber(number);
unplannedissueRequestMainMapper.insert(unplannedissueRequestMainDO);
for(UnplannedissueRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){
unplannedreceiptRequestDetailDO.setMasterId(unplannedissueRequestMainDO.getId());
unplannedreceiptRequestDetailDO.setNumber(unplannedissueRequestMainDO.getNumber());
}
unplannedissueRequestDetailMapper.insertBatch(subDOList);
return unplannedissueRequestMainDO;
}
private void validateDetailMethod(UnplannedissueRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedissueRequestMainDO mainDo) {
detailDo.setCreateTime(LocalDateTime.now());
LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode());
mainDo.setFromAreaCodes(locationDO.getAreaCode());
mainDo.setFromLocationTypes(locationDO.getCode());
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
detailDo.setUom(itembasicDO.getUom());
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO );
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO );
String INVENTORY = detailDo.getInventoryStatus();
String[] inventory = INVENTORY.split(",");
List<String> inventorystatus = Arrays.asList(inventory);
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus);
for(BalanceDO balance: balanceDO){
mainDo.setFromWarehouseCode(balance.getWarehouseCode());
}
}
private UnplannedissueRequestMainDO validateMainMethod(UnplannedissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
UnplannedissueRequestMainDO mainDo = UnplannedissueRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setRequestTime(LocalDateTime.now());
mainDo.setCreateTime(LocalDateTime.now());
validordurtime(mainDo.getDueTime());
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo;
} }
@Override @Override
public void updateUnplannedissueRequestMain(UnplannedissueRequestMainUpdateReqVO updateReqVO) { public void updateUnplannedissueRequestMain(UnplannedissueRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
// 校验存在 // 校验存在
validateUnplannedissueRequestMainExists(updateReqVO.getId()); validateUnplannedissueRequestMainExists(updateReqVO.getId());
// 更新 // 更新
UnplannedissueRequestMainDO updateObj = UnplannedissueRequestMainConvert.INSTANCE.convert(updateReqVO); UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
unplannedissueRequestMainMapper.updateById(updateObj); if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE);
}
private UnplannedissueRequestMainDO validatorToUpdate(UnplannedissueRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest");
UnplannedissueRequestMainDO unplannedissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<UnplannedissueRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<UnplannedissueRequestDetailDO> subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList05(subList);
for (UnplannedissueRequestDetailDO unplannedissueRequestDetailDO : subDOList) {
validateDetailMethod(unplannedissueRequestDetailDO, businesstypeDO, unplannedissueRequestMainDO);
}
unplannedissueRequestDetailMapper.updateBatch(subDOList);
}
unplannedissueRequestMainMapper.updateById(unplannedissueRequestMainDO);
return unplannedissueRequestMainDO;
} }
@Override @Override
public PageResult<UnplannedissueRequestMainDO> getUnplannedissueRequestMainSenior(CustomConditions conditions) { public PageResult<UnplannedissueRequestMainDO> getUnplannedissueRequestMainSenior(CustomConditions conditions) {
return unplannedissueRequestMainMapper.selectSenior(conditions); return unplannedissueRequestMainMapper.selectSenior(conditions);
@ -95,4 +230,145 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictTypeAndLabel(ptype, plabel); DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictTypeAndLabel(ptype, plabel);
return dictDataRespDTO; return dictDataRespDTO;
} }
@Override
public List<UnplannedissueRequestMainDO> getUnplannedissueRequestMainList1(CustomConditions conditions) {
return unplannedissueRequestMainMapper.selectSeniorList(conditions);
}
private String validateUnplannedissueRequestMainImport(UnplannedissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
mainDo.setRequestTime(LocalDateTime.now());
mainDo.setCreateTime(LocalDateTime.now());
try {
validordurtime(mainDo.getDueTime());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
if (businesstypeDO != null) {
mainDo.setBusinessType(businesstypeDO.getCode());
} try{
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
}
private void validordurtime(LocalDateTime durtime){
if(!durtime.isAfter(LocalDateTime.now())){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
}
private String validateUnplannedissueRequestDetailImport(UnplannedissueRequestDetailDO detailDo, BusinesstypeDO businesstypeDO ,UnplannedissueRequestMainDO mainDo ){
StringBuilder message = new StringBuilder();
detailDo.setCreateTime(LocalDateTime.now());
try{
LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode());
mainDo.setFromAreaCodes(locationDO.getAreaCode());
mainDo.setFromLocationTypes(locationDO.getCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
detailDo.setUom(itembasicDO.getUom());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO );
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO );
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
String INVENTORY = detailDo.getInventoryStatus();
String[] inventory = INVENTORY.split(",");
List<String> inventorystatus = Arrays.asList(inventory);
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus);
for(BalanceDO balance: balanceDO){
mainDo.setFromWarehouseCode(balance.getWarehouseCode());
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
@Override
@Transactional
public List<UnplannedissueRequestMainImportErrorVO> importUnplannedissueRequestMainList(List<UnplannedissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(UNPLANNEDISSUE_REQUEST_MAIN_NOT_EXISTS);
}
List<UnplannedissueRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest");
UnplannedissueRequestMainDO mainDo = UnplannedissueRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = this.validateUnplannedissueRequestMainImport(mainDo, businesstypeDO);
List<UnplannedissueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<UnplannedissueRequestDetailDO> subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (UnplannedissueRequestDetailDO detailDO : subDOList) {
String messageDetail = this.validateUnplannedissueRequestDetailImport(detailDO,businesstypeDO,mainDo);
if(!messageMain.isEmpty() || !messageDetail.isEmpty()) {
UnplannedissueRequestMainImportErrorVO importErrorVO = UnplannedissueRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode());
mainDo.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
unplannedissueRequestMainMapper.insert(mainDo);
for (UnplannedissueRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
unplannedissueRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
@Override
public List<UnplannedissueRequestDetailDO> selectList(Long masterId) {
return unplannedissueRequestDetailMapper.selectList(masterId);
}
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedreceiptRequest.vo.Unplannedreceipt
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
@ -79,4 +80,6 @@ public interface UnplannedreceiptRequestDetailService {
*/ */
List<UnplannedreceiptRequestDetailDO> getUnplannedreceiptRequestDetailList(UnplannedreceiptRequestDetailExportReqVO exportReqVO); List<UnplannedreceiptRequestDetailDO> getUnplannedreceiptRequestDetailList(UnplannedreceiptRequestDetailExportReqVO exportReqVO);
List<UnplannedreceiptRequestDetailDO> selectList(Long masterId);
} }

65
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java

@ -1,14 +1,24 @@
package com.win.module.wms.service.unplannedreceiptRequest; package com.win.module.wms.service.unplannedreceiptRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailPageReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
@ -32,15 +42,50 @@ public class UnplannedreceiptRequestDetailServiceImpl implements Unplannedreceip
@Resource @Resource
private UnplannedreceiptRequestDetailMapper unplannedreceiptRequestDetailMapper; private UnplannedreceiptRequestDetailMapper unplannedreceiptRequestDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Resource
private TrendsApi trendsApi;
@Override @Override
public Long createUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailCreateReqVO createReqVO) { public Long createUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
// 插入 // 插入
UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetail = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(createReqVO); UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetail = validatorToCreate(createReqVO,requestsettingDO);
unplannedreceiptRequestDetailMapper.insert(unplannedreceiptRequestDetail);
// 返回
return unplannedreceiptRequestDetail.getId(); return unplannedreceiptRequestDetail.getId();
} }
private UnplannedreceiptRequestDetailDO validatorToCreate(UnplannedreceiptRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest");
UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO = validateDetailMethod(createReqVO,businesstypeDO);
unplannedreceiptRequestDetailMapper.insert(unplannedreceiptRequestDetailDO);
return unplannedreceiptRequestDetailDO;
}
private UnplannedreceiptRequestDetailDO validateDetailMethod(UnplannedreceiptRequestDetailBaseVO unplannedreceiptRequestDetailBaseVO, BusinesstypeDO businesstypeDO) {
UnplannedreceiptRequestDetailDO detailDo = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(unplannedreceiptRequestDetailBaseVO);
detailDo.setMasterId(unplannedreceiptRequestDetailBaseVO.getMasterId());
detailDo.setCreateTime(LocalDateTime.now());
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
detailDo.setUom(itembasicDO.getUom());
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
return detailDo;
}
@Override @Override
public void updateUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailUpdateReqVO updateReqVO) { public void updateUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
@ -89,4 +134,10 @@ public class UnplannedreceiptRequestDetailServiceImpl implements Unplannedreceip
return unplannedreceiptRequestDetailMapper.selectList(exportReqVO); return unplannedreceiptRequestDetailMapper.selectList(exportReqVO);
} }
@Override
public List<UnplannedreceiptRequestDetailDO> selectList(Long masterId) {
return unplannedreceiptRequestDetailMapper.selectList(masterId);
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java

@ -3,6 +3,7 @@ package com.win.module.wms.service.unplannedreceiptRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import javax.validation.Valid; import javax.validation.Valid;
@ -89,4 +90,7 @@ public interface UnplannedreceiptRequestMainService {
*/ */
public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart); public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
List<UnplannedreceiptRequestMainDO> getUnplannedreceiptRequestMainList1(CustomConditions conditions);
} }

290
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java

@ -5,20 +5,37 @@ import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
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.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestDetailMapper;
import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestMainMapper; import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.businesstype.BusinesstypeService;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.location.LocationService;
@ -31,13 +48,13 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.ErrorCodeConstants.UNPLANNEDRECEIPT_REQUEST_MAIN_NOT_EXISTS;
/** /**
* 计划外入库申请主 Service 实现类 * 计划外入库申请主 Service 实现类
@ -68,24 +85,95 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override @Override
public Long createUnplannedreceiptRequestMain(UnplannedreceiptRequestMainCreateReqVO createReqVO) { public Long createUnplannedreceiptRequestMain(UnplannedreceiptRequestMainCreateReqVO createReqVO) {
// 插入 RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
UnplannedreceiptRequestMainDO unplannedreceiptRequestMain = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMain); //调用自动执行方法
// 返回 if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) {
return unplannedreceiptRequestMain.getId();
}
trendsApi.createTrends(requestsettingDO.getId(), "UnplannedReceiptRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE);
return unplannedreceiptRequestMainDO.getId();
}
private UnplannedreceiptRequestMainDO validatorToCreate(UnplannedreceiptRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest");
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<UnplannedreceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<UnplannedreceiptRequestDetailDO> subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList03(subList);
for (UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : subDOList) {
validateDetailMethod(unplannedreceiptRequestDetailDO, businesstypeDO,unplannedreceiptRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode());
unplannedreceiptRequestMainDO.setNumber(number);
unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMainDO);
for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){
unplannedreceiptRequestDetailDO.setMasterId(unplannedreceiptRequestMainDO.getId());
unplannedreceiptRequestDetailDO.setNumber(unplannedreceiptRequestMainDO.getNumber());
}
unplannedreceiptRequestDetailMapper.insertBatch(subDOList);
return unplannedreceiptRequestMainDO;
}
private void validateDetailMethod(UnplannedreceiptRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO) {
detailDo.setCreateTime(LocalDateTime.now());
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
detailDo.setUom(itembasicDO.getUom());
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}
private UnplannedreceiptRequestMainDO validateMainMethod(UnplannedreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(baseVO);
unplannedreceiptRequestMainDO.setRequestTime(LocalDateTime.now());
unplannedreceiptRequestMainDO.setCreateTime(LocalDateTime.now());
validordurtime(unplannedreceiptRequestMainDO.getDueTime());
unplannedreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode());
unplannedreceiptRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
unplannedreceiptRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
unplannedreceiptRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
unplannedreceiptRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return unplannedreceiptRequestMainDO;
} }
@Override @Override
public void updateUnplannedreceiptRequestMain(UnplannedreceiptRequestMainUpdateReqVO updateReqVO) { public void updateUnplannedreceiptRequestMain(UnplannedreceiptRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
// 校验存在 // 校验存在
validateUnplannedreceiptRequestMainExists(updateReqVO.getId()); validateUnplannedreceiptRequestMainExists(updateReqVO.getId());
// 更新 // 更新
UnplannedreceiptRequestMainDO updateObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(updateReqVO); UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
unplannedreceiptRequestMainMapper.updateById(updateObj); if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE);
}
private UnplannedreceiptRequestMainDO validatorToUpdate(UnplannedreceiptRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest");
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<UnplannedreceiptRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<UnplannedreceiptRequestDetailDO> subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList05(subList);
for (UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : subDOList) {
validateDetailMethod(unplannedreceiptRequestDetailDO, businesstypeDO, unplannedreceiptRequestMainDO);
}
unplannedreceiptRequestDetailMapper.updateBatch(subDOList);
}
unplannedreceiptRequestMainMapper.updateById(unplannedreceiptRequestMainDO);
return unplannedreceiptRequestMainDO;
} }
@Override @Override
@ -127,111 +215,119 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR
return unplannedreceiptRequestMainMapper.selectList(exportReqVO); return unplannedreceiptRequestMainMapper.selectList(exportReqVO);
} }
public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { private void validordurtime(LocalDateTime durtime){
if (CollUtil.isEmpty(datas)) { if(!durtime.isAfter(LocalDateTime.now())){
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
} }
List<UnplannedreceiptRequestMainImportErrorVO> errorList = new ArrayList<>(); }
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList private LocationDO validatorLocation(String Location){
String messageMain = ""; return locationService.selectLocation(Location);
//主表的验证 }
//子表的验证
List<UnplannedreceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList(); private String validateUnplannedreceiptRequestMainImport(UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
List<UnplannedreceiptRequestDetailDO> subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList03(subList); StringBuilder message = new StringBuilder();
for (UnplannedreceiptRequestDetailDO purchasePlanDetailDO : subDOList) { mainDo.setRequestTime(LocalDateTime.now());
String messageDetail = ""; mainDo.setCreateTime(LocalDateTime.now());
// 校验物品基础信息
try { try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchasePlanDetailDO.getItemCode()); validordurtime(mainDo.getDueTime());
if (itembasicDO.getUom() != purchasePlanDetailDO.getUom()) { } catch (Exception ex) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchasePlanDetailDO.getUom() + ","; message.append(ex.getMessage()).append(",");
} else { }
purchasePlanDetailDO.setItemDesc1(itembasicDO.getDesc1()); if (businesstypeDO != null) {
purchasePlanDetailDO.setItemDesc2(itembasicDO.getDesc2()); mainDo.setBusinessType(businesstypeDO.getCode());
purchasePlanDetailDO.setItemName(itembasicDO.getName()); }
purchasePlanDetailDO.setProjectCode(itembasicDO.getProject());
}
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
//校验库位基础信息
try{ try{
LocationDO locationDO = locationService.selectLocation(purchasePlanDetailDO.getToLocationCode()); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
} catch (ServiceException ex) { if (requestsettingDO != null) {
messageMain += ex.getMessage() + ","; mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
} }
// 校验业务类型 private String validateUnplannedreceiptRequestDetailImport(UnplannedreceiptRequestDetailDO detailDo, UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
detailDo.setCreateTime(LocalDateTime.now());
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
try{ try{
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("UnplannedReceipt"); validatorLocation(detailDo.getToLocationCode());
jobUtils.ifInToLocationType(purchasePlanDetailDO.getToLocationCode(), businesstypeDO); }catch (Exception ex) {
jobUtils.ifOutInventoryStatuses(purchasePlanDetailDO.getInventoryStatus(), businesstypeDO); message.append(ex.getMessage()).append(",");
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
UnplannedreceiptRequestDetailCreateReqVO purchasePlanDetailCreateReqVO = UnplannedreceiptRequestDetailConvert.INSTANCE.convert1(purchasePlanDetailDO);
UnplannedreceiptRequestMainImportErrorVO importVO = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(createReqVO, purchasePlanDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
purchasePlanDetailDO.setNumber(createReqVO.getNumber());
purchasePlanDetailDO.setMasterId(createReqVO.getId());
} }
try{
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
detailDo.setUom(itembasicDO.getUom());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO);
}catch(Exception ex){
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}catch(Exception ex){
message.append(ex.getMessage()).append(",");
}
return message.toString();
} }
if (errorList.isEmpty()) { public List<UnplannedreceiptRequestMainDO> getUnplannedreceiptRequestMainList1(CustomConditions conditions) {
// 判断如果不存在,在进行插入 return unplannedreceiptRequestMainMapper.selectSeniorList(conditions);
if (mode != 3) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest");
if (businesstypeDO != null) {
createReqVO.setBusinessType(businesstypeDO.getCode());
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_REQUEST.getCode());
createReqVO.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); if (CollUtil.isEmpty(datas)) {
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
} }
UnplannedreceiptRequestMainDO createObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); List<UnplannedreceiptRequestMainImportErrorVO> errorList = new ArrayList<>();
unplannedreceiptRequestMainMapper.insert(createObj); datas.forEach(createReqVO -> {
unplannedreceiptRequestDetailMapper.insertBatch(subDOList);
} else if (mode != 2) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest");
if (businesstypeDO != null) { UnplannedreceiptRequestMainDO mainDo = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
createReqVO.setBusinessType(businesstypeDO.getCode()); String messageMain = validateUnplannedreceiptRequestMainImport(mainDo, businesstypeDO);
List<UnplannedreceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<UnplannedreceiptRequestDetailDO> subDOList = UnplannedreceiptRequestDetailConvert.INSTANCE.convertList03(subList);
boolean flag = true;
for (UnplannedreceiptRequestDetailDO purchasePlanDetailDO : subDOList) {
String messageDetail = validateUnplannedreceiptRequestDetailImport(purchasePlanDetailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) || !"".equals(messageDetail)) {
UnplannedreceiptRequestMainImportErrorVO importErrorVO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO, purchasePlanDetailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_REQUEST.getCode());
createReqVO.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
UnplannedreceiptRequestMainDO createObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO); //写入数据
unplannedreceiptRequestMainMapper.updateById(createObj); if (flag) {
unplannedreceiptRequestDetailMapper.updateBatch(subDOList); String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode());
mainDo.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
unplannedreceiptRequestMainMapper.insert(mainDo);
for (UnplannedreceiptRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
} }
unplannedreceiptRequestDetailMapper.insertBatch(subDOList);
} }
}); });
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList; return errorList;
} }

Loading…
Cancel
Save