Browse Source

Merge remote-tracking branch 'origin/master'

master
陈薪名 2 years ago
parent
commit
767525a0cb
  1. 107
      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. 59
      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. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java
  24. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java
  25. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestMainMapper.java
  26. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestDetailMapper.java
  27. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRequest/UnplannedreceiptRequestMainMapper.java
  28. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java
  29. 77
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestDetailServiceImpl.java
  30. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java
  31. 298
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java
  32. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailService.java
  33. 65
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestDetailServiceImpl.java
  34. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java
  35. 296
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java

107
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;
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.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.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
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.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 io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -17,6 +28,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
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.convert.unplannedissueRequest.UnplannedissueRequestMainConvert;
import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 计划外出库申请主")
@RestController
@ -111,23 +125,60 @@ public class UnplannedissueRequestMainController {
return success(UnplannedissueRequestMainConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出计划外出库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:export')")
@OperateLog(type = EXPORT)
public void exportUnplannedissueRequestMainExcel(@Valid UnplannedissueRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
public void exportUnplannedissueRequestMainExcel(@Valid UnplannedissueRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<UnplannedissueRequestMainDO> list = unplannedissueRequestMainService.getUnplannedissueRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<UnplannedissueRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
List<UnplannedissueRequestMainExcelVO> datas = UnplannedissueRequestMainConvert.INSTANCE.convertList02(list);
for(UnplannedissueRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
ExcelUtils.write(response, "计划外出库申请主.xls", "计划外出库申请数据", UnplannedissueRequestMainExcelVO.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<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());
resultList.add(vo);
}
}
ExcelUtils.write(response, "计划外出库申请主.xls", "数据", UnplannedissueRequestMainExcelVO.class, datas);
return resultList;
}
@GetMapping("/getUnplannedissueRequestById")
@Operation(summary = "APP获得计划外出库申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -146,4 +197,44 @@ public class UnplannedissueRequestMainController {
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;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ -89,4 +88,7 @@ public class UnplannedissueRequestDetailBaseVO {
@Schema(description = "最后更新者用户名")
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;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -23,22 +24,19 @@ public class UnplannedissueRequestMainBaseVO {
private Long id;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
@OnlyOne
private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
private String businessType;
@Schema(description = "备注")
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ -71,11 +69,9 @@ public class UnplannedissueRequestMainBaseVO {
private String concurrencyStamp;
@Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位类型范围不能为空")
private String fromLocationTypes;
@Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库区代码范围不能为空")
private String fromAreaCodes;
@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;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 计划外出库申请主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
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;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -34,15 +35,18 @@ public class UnplannedissueRequestMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 25)
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
private String creator;
@ExcelProperty("申请时间")
@ColumnWidth(value = 25)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 25)
private LocalDateTime dueTime;
@ExcelProperty("部门")
@ -53,13 +57,12 @@ public class UnplannedissueRequestMainExcelVO {
private String status;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 25)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
private String updater;
@ExcelProperty("并发乐观锁")
private String concurrencyStamp;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ -80,4 +83,39 @@ public class UnplannedissueRequestMainExcelVO {
@ExcelProperty("直接生成记录")
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;
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 lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 计划外出库申请主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UnplannedissueRequestMainUpdateReqVO extends UnplannedissueRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<UnplannedissueRequestDetailUpdateReqVO> subList;
}

59
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.CustomConditions;
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.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO;
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.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.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.UnplannedreceiptRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
@ -50,6 +57,7 @@ public class UnplannedreceiptRequestMainController {
@Resource
private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建计划外入库申请主")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:create')")
@ -117,17 +125,44 @@ public class UnplannedreceiptRequestMainController {
@Operation(summary = "导出计划外入库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')")
@OperateLog(type = EXPORT)
public void exportUnplannedreceiptRequestMainExcel(@Valid UnplannedreceiptRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
public void exportUnplannedreceiptRequestMainExcel(@Valid UnplannedreceiptRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
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
List<UnplannedreceiptRequestMainExcelVO> datas = UnplannedreceiptRequestMainConvert.INSTANCE.convertList02(list);
for(UnplannedreceiptRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
ExcelUtils.write(response, "计划外入库申请主.xlsx", "计划外入库申请数据", UnplannedreceiptRequestMainExcelVO.class, resultList, mapDropDown);
}
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());
resultList.add(vo);
}
}
ExcelUtils.write(response, "计划外入库申请主.xls", "数据", UnplannedreceiptRequestMainExcelVO.class, datas);
return resultList;
}
@GetMapping("/getUnplannedreceiptRequestById")
@ -154,10 +189,10 @@ public class UnplannedreceiptRequestMainController {
// 手动创建导出 demo
List<UnplannedreceiptRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
// mapDropDown.put(16, purchaseReturnReason);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom);
String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(6, fromInventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(8, uom);
// 输出
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 = "最后更新者用户名")
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;
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 lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 计划外入库申请子更新 Request VO")
@Data
@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;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -26,6 +27,7 @@ public class UnplannedreceiptRequestMainBaseVO {
private String toWarehouseCode;
@Schema(description = "单据号")
@OnlyOne
private String number;
@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;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@ -34,18 +37,22 @@ public class UnplannedreceiptRequestMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 25)
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
private String creator;
@ExcelProperty("申请时间")
@ColumnWidth(value = 25)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 25)
private LocalDateTime dueTime;
@ExcelProperty("部门")
@ColumnWidth(value = 25)
private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@ -53,6 +60,7 @@ public class UnplannedreceiptRequestMainExcelVO {
private String status;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 25)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
@ -77,4 +85,62 @@ public class UnplannedreceiptRequestMainExcelVO {
@ExcelProperty("直接生成记录")
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;
import com.alibaba.excel.annotation.write.style.ColumnWidth;;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
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 = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] createTime;
@Schema(description = "创建者用户名")
@ -34,10 +37,12 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "申请时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] requestTime;
@Schema(description = "截止时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] dueTime;
@Schema(description = "部门")
@ -48,6 +53,7 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "最后更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ColumnWidth(value = 24)
private LocalDateTime[] updateTime;
@Schema(description = "最后更新者用户名")
@ -71,4 +77,8 @@ public class UnplannedreceiptRequestMainExportReqVO {
@Schema(description = "直接生成记录")
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;
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;
@ -23,29 +26,48 @@ public class UnplannedreceiptRequestMainImportVO {
//主表数据
@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("库存状态")
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("记录单位")
@ExcelProperty(value = "记录单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("到货日期")
private LocalDateTime arriveDate;
@ExcelProperty("生产日期")
private LocalDateTime produceDate;
@ExcelProperty("过期日期")
private LocalDateTime expireDate;
@ExcelProperty("目标库位")
private String toLocationCode;
@ExcelProperty("原因")
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;
import com.win.framework.excel.core.annotations.SubObject;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 计划外入库申请主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
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);
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.transferissueRequest.TransferissueRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
@ -34,7 +36,9 @@ public interface TransferissueRequestMainConvert {
PageResult<TransferissueRequestMainRespVO> convertPage(PageResult<TransferissueRequestMainDO> page);
List<TransferissueRequestMainExcelVO> convertList02(List<TransferissueRequestMainDO> list);
TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainVo, TransferissueRequestDetailDO detailDo);
@Mappings({
@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.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailCreateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailExcelVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailRespVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailUpdateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailUpdateReqVO;
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.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
@ -22,8 +27,12 @@ public interface UnplannedissueRequestDetailConvert {
UnplannedissueRequestDetailConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestDetailConvert.class);
UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailBaseVO bean);
UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailCreateReqVO bean);
List<UnplannedissueRequestDetailDO> convertList05(List<UnplannedissueRequestDetailUpdateReqVO> list);
UnplannedissueRequestDetailDO convert(UnplannedissueRequestDetailUpdateReqVO bean);
UnplannedissueRequestDetailRespVO convert(UnplannedissueRequestDetailDO bean);
@ -32,6 +41,9 @@ public interface UnplannedissueRequestDetailConvert {
PageResult<UnplannedissueRequestDetailRespVO> convertPage(PageResult<UnplannedissueRequestDetailDO> page);
List<UnplannedissueRequestDetailDO> convertList03(List<UnplannedissueRequestDetailCreateReqVO> 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.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainExcelVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainRespVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainUpdateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainBaseVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
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.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
@ -22,16 +26,34 @@ public interface UnplannedissueRequestMainConvert {
UnplannedissueRequestMainConvert INSTANCE = Mappers.getMapper(UnplannedissueRequestMainConvert.class);
UnplannedissueRequestMainDO convert(UnplannedissueRequestMainBaseVO bean);
UnplannedissueRequestMainDO convert(UnplannedissueRequestMainCreateReqVO bean);
UnplannedissueRequestMainDO convert(UnplannedissueRequestMainUpdateReqVO bean);
UnplannedissueRequestMainRespVO convert(UnplannedissueRequestMainDO bean);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
UnplannedissueRequestMainImportErrorVO convert(UnplannedissueRequestMainCreateReqVO mainVo, UnplannedissueRequestDetailDO detailDo);
List<UnplannedissueRequestMainRespVO> convertList(List<UnplannedissueRequestMainDO> list);
PageResult<UnplannedissueRequestMainRespVO> convertPage(PageResult<UnplannedissueRequestMainDO> page);
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;
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.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.mapstruct.Mapper;
@ -23,6 +25,10 @@ public interface UnplannedreceiptRequestDetailConvert {
UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailCreateReqVO bean);
UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailBaseVO bean);
List<UnplannedreceiptRequestDetailDO> convertList05(List<UnplannedreceiptRequestDetailUpdateReqVO> list);
UnplannedreceiptRequestDetailDO convert(UnplannedreceiptRequestDetailUpdateReqVO bean);
UnplannedreceiptRequestDetailRespVO convert(UnplannedreceiptRequestDetailDO bean);
@ -47,6 +53,6 @@ public interface UnplannedreceiptRequestDetailConvert {
})
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.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainRespVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainUpdateReqVO;
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.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.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
@ -24,6 +32,8 @@ public interface UnplannedreceiptRequestMainConvert {
UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainCreateReqVO bean);
UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainBaseVO bean);
UnplannedreceiptRequestMainDO convert(UnplannedreceiptRequestMainUpdateReqVO bean);
UnplannedreceiptRequestMainRespVO convert(UnplannedreceiptRequestMainDO bean);
@ -33,5 +43,18 @@ public interface UnplannedreceiptRequestMainConvert {
PageResult<UnplannedreceiptRequestMainRespVO> convertPage(PageResult<UnplannedreceiptRequestMainDO> page);
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);
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java

@ -9,6 +9,7 @@ import com.win.module.wms.controller.bom.vo.BomExportReqVO;
import com.win.module.wms.controller.bom.vo.BomPageReqVO;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -22,7 +23,7 @@ import java.util.List;
public interface BomMapper extends BaseMapperX<BomDO> {
default BomDO selectByProductItemCode(String productItemCode){
return selectOne(BomDO::getExtraProperties, productItemCode);
return selectOne(BomDO::getProductItemCode, productItemCode);
}
default PageResult<BomDO> selectPage(BomPageReqVO reqVO) {

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.UnplannedissueRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -75,4 +76,9 @@ public interface UnplannedissueRequestDetailMapper extends BaseMapperX<Unplanned
.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.UnplannedissueRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -72,4 +73,9 @@ public interface UnplannedissueRequestMainMapper extends BaseMapperX<Unplannedis
.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.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailExportReqVO;
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 org.apache.ibatis.annotations.Mapper;
@ -81,4 +82,9 @@ public interface UnplannedreceiptRequestDetailMapper extends BaseMapperX<Unplann
.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.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExportReqVO;
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 org.apache.ibatis.annotations.Mapper;
@ -70,4 +71,8 @@ public interface UnplannedreceiptRequestMainMapper extends BaseMapperX<Unplanned
.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){
validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode());
transferissueRequestMainDO.setNumber(number);
transferissueRequestMainMapper.insert(transferissueRequestMainDO);
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){
@ -127,7 +127,12 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
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.setAutoCommit(requestsettingDO.getAutoCommit());
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;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestDetailCreateReqVO;
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.UnplannedissueRequestDetailUpdateReqVO;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.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 javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -32,13 +44,64 @@ public class UnplannedissueRequestDetailServiceImpl implements UnplannedissueReq
@Resource
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
public Long createUnplannedissueRequestDetail(UnplannedissueRequestDetailCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
// 插入
UnplannedissueRequestDetailDO unplannedissueRequestDetail = UnplannedissueRequestDetailConvert.INSTANCE.convert(createReqVO);
unplannedissueRequestDetailMapper.insert(unplannedissueRequestDetail);
// 返回
UnplannedissueRequestDetailDO unplannedissueRequestDetail =validatorToCreate(createReqVO,requestsettingDO);
trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE);
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

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.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO;
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.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.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
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 接口
@ -88,4 +90,10 @@ public interface UnplannedissueRequestMainService {
*/
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;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO;
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.UnplannedissueRequestMainUpdateReqVO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO;
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 javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO;
@ -33,25 +64,129 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque
@Resource
private UnplannedissueRequestMainMapper unplannedissueRequestMainMapper;
@Resource
private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper;
@Resource
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
public Long createUnplannedissueRequestMain(UnplannedissueRequestMainCreateReqVO createReqVO) {
// 插入
UnplannedissueRequestMainDO unplannedissueRequestMain = UnplannedissueRequestMainConvert.INSTANCE.convert(createReqVO);
unplannedissueRequestMainMapper.insert(unplannedissueRequestMain);
// 返回
return unplannedissueRequestMain.getId();
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) {
}
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
public void updateUnplannedissueRequestMain(UnplannedissueRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
// 校验存在
validateUnplannedissueRequestMainExists(updateReqVO.getId());
// 更新
UnplannedissueRequestMainDO updateObj = UnplannedissueRequestMainConvert.INSTANCE.convert(updateReqVO);
unplannedissueRequestMainMapper.updateById(updateObj);
UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
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
public PageResult<UnplannedissueRequestMainDO> getUnplannedissueRequestMainSenior(CustomConditions conditions) {
return unplannedissueRequestMainMapper.selectSenior(conditions);
@ -95,4 +230,145 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictTypeAndLabel(ptype, plabel);
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.UnplannedreceiptRequestDetailPageReqVO;
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.framework.common.pojo.PageResult;
@ -79,4 +80,6 @@ public interface UnplannedreceiptRequestDetailService {
*/
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;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestDetailCreateReqVO;
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.UnplannedreceiptRequestDetailUpdateReqVO;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*;
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 javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
@ -32,15 +42,50 @@ public class UnplannedreceiptRequestDetailServiceImpl implements Unplannedreceip
@Resource
private UnplannedreceiptRequestDetailMapper unplannedreceiptRequestDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Resource
private TrendsApi trendsApi;
@Override
public Long createUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
// 插入
UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetail = UnplannedreceiptRequestDetailConvert.INSTANCE.convert(createReqVO);
unplannedreceiptRequestDetailMapper.insert(unplannedreceiptRequestDetail);
// 返回
UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetail = validatorToCreate(createReqVO,requestsettingDO);
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
public void updateUnplannedreceiptRequestDetail(UnplannedreceiptRequestDetailUpdateReqVO updateReqVO) {
// 校验存在
@ -89,4 +134,10 @@ public class UnplannedreceiptRequestDetailServiceImpl implements Unplannedreceip
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.PageResult;
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 javax.validation.Valid;
@ -89,4 +90,7 @@ public interface UnplannedreceiptRequestMainService {
*/
public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
List<UnplannedreceiptRequestMainDO> getUnplannedreceiptRequestMainList1(CustomConditions conditions);
}

296
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.PageResult;
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.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.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.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.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.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.UnplannedreceiptRequestMainDO;
import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestDetailMapper;
import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestMainMapper;
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.itembasic.ItembasicService;
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 javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
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.UNPLANNEDRECEIPT_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 计划外入库申请主 Service 实现类
@ -68,24 +85,95 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override
public Long createUnplannedreceiptRequestMain(UnplannedreceiptRequestMainCreateReqVO createReqVO) {
// 插入
UnplannedreceiptRequestMainDO unplannedreceiptRequestMain = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMain);
// 返回
return unplannedreceiptRequestMain.getId();
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) {
}
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
public void updateUnplannedreceiptRequestMain(UnplannedreceiptRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest");
// 校验存在
validateUnplannedreceiptRequestMainExists(updateReqVO.getId());
// 更新
UnplannedreceiptRequestMainDO updateObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(updateReqVO);
unplannedreceiptRequestMainMapper.updateById(updateObj);
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
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
@ -127,111 +215,119 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR
return unplannedreceiptRequestMainMapper.selectList(exportReqVO);
}
private void validordurtime(LocalDateTime durtime){
if(!durtime.isAfter(LocalDateTime.now())){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
}
private String validateUnplannedreceiptRequestMainImport(UnplannedreceiptRequestMainDO 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("UnplannedReceiptRequest");
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 String validateUnplannedreceiptRequestDetailImport(UnplannedreceiptRequestDetailDO detailDo, UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
detailDo.setCreateTime(LocalDateTime.now());
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
try{
validatorLocation(detailDo.getToLocationCode());
}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.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();
}
public List<UnplannedreceiptRequestMainDO> getUnplannedreceiptRequestMainList1(CustomConditions conditions) {
return unplannedreceiptRequestMainMapper.selectSeniorList(conditions);
}
public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<UnplannedreceiptRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
//主表的验证
//子表的验证
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest");
UnplannedreceiptRequestMainDO mainDo = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
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 = "";
// 校验物品基础信息
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchasePlanDetailDO.getItemCode());
if (itembasicDO.getUom() != purchasePlanDetailDO.getUom()) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchasePlanDetailDO.getUom() + ",";
} else {
purchasePlanDetailDO.setItemDesc1(itembasicDO.getDesc1());
purchasePlanDetailDO.setItemDesc2(itembasicDO.getDesc2());
purchasePlanDetailDO.setItemName(itembasicDO.getName());
purchasePlanDetailDO.setProjectCode(itembasicDO.getProject());
}
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
//校验库位基础信息
try {
LocationDO locationDO = locationService.selectLocation(purchasePlanDetailDO.getToLocationCode());
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
// 校验业务类型
try {
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("UnplannedReceipt");
jobUtils.ifInToLocationType(purchasePlanDetailDO.getToLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(purchasePlanDetailDO.getInventoryStatus(), businesstypeDO);
} 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("失败");
String messageDetail = validateUnplannedreceiptRequestDetailImport(purchasePlanDetailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) || !"".equals(messageDetail)) {
UnplannedreceiptRequestMainImportErrorVO importErrorVO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO, purchasePlanDetailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
purchasePlanDetailDO.setNumber(createReqVO.getNumber());
purchasePlanDetailDO.setMasterId(createReqVO.getId());
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
if (errorList.isEmpty()) {
// 判断如果不存在,在进行插入
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());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
UnplannedreceiptRequestMainDO createObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
unplannedreceiptRequestMainMapper.insert(createObj);
unplannedreceiptRequestDetailMapper.insertBatch(subDOList);
} else if (mode != 2) {
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());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
UnplannedreceiptRequestMainDO createObj = UnplannedreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
unplannedreceiptRequestMainMapper.updateById(createObj);
unplannedreceiptRequestDetailMapper.updateBatch(subDOList);
//写入数据
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());
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;
}

Loading…
Cancel
Save