Browse Source

报废出库

master
廉洪喜 2 years ago
parent
commit
812d6848f3
  1. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java
  2. 66
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java
  3. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java
  5. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java
  6. 86
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java
  7. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailBaseVO.java
  8. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailPageReqVO.java
  9. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportErrorVO.java
  10. 61
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java
  11. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainBaseVO.java
  12. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainCreateReqVO.java
  13. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainExcelVO.java
  14. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainUpdateReqVO.java
  15. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestMainImportVO.java
  16. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java
  17. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java
  18. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java
  19. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestMainConvert.java
  20. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestDetailConvert.java
  21. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java
  22. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRequest/ScrapRequestDetailDO.java
  23. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java
  24. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestDetailMapper.java
  25. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestMainMapper.java
  26. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailService.java
  27. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailServiceImpl.java
  28. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java
  29. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailService.java
  30. 80
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailServiceImpl.java
  31. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainService.java
  32. 279
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java

@ -10,9 +10,15 @@ 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.inventoryinitRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
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.inventoryinitRequest.InventoryinitRequestDetailService;
import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -43,6 +49,12 @@ public class InventoryinitRequestMainController {
@Resource
private InventoryinitRequestMainService inventoryinitRequestMainService;
@Resource
private InventoryinitRequestDetailService inventoryinitRequestDetailService;
@Resource
private AdminUserApi userApi;
@ -108,21 +120,36 @@ public class InventoryinitRequestMainController {
}
return success(result);
}
@GetMapping("/export-excel")
@PostMapping("/export-excel")
@Operation(summary = "导出库存初始化申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')")
@OperateLog(type = EXPORT)
public void exportInventoryinitRequestMainExcel(@Valid InventoryinitRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
public void exportInventoryinitRequestMainExcel(@Valid InventoryinitRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<InventoryinitRequestMainDO> list = inventoryinitRequestMainService.getInventoryinitRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InventoryinitRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
List<InventoryinitRequestMainExcelVO> datas = InventoryinitRequestMainConvert.INSTANCE.convertList02(list);
for(InventoryinitRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
ExcelUtils.write(response, "库存初始化申请主.xls", "数据", InventoryinitRequestMainExcelVO.class, resultList,mapDropDown);
}
private List<InventoryinitRequestMainExcelVO> getExcelVo(List<InventoryinitRequestMainDO> 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<InventoryinitRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(InventoryinitRequestMainDO mainDO : list) {
List<InventoryinitRequestDetailDO> subList = inventoryinitRequestDetailService.selectList(mainDO.getId());
for(InventoryinitRequestDetailDO detailDO : subList) {
InventoryinitRequestMainExcelVO vo = InventoryinitRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
resultList.add(vo);
}
}
ExcelUtils.write(response, "库存初始化申请主.xls", "数据", InventoryinitRequestMainExcelVO.class, datas);
return resultList;
}
@GetMapping("/get-import-template")

66
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.inventoryinitRequest.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,25 +37,28 @@ public class InventoryinitRequestMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 25)
private LocalDateTime creationTime;
@ExcelProperty("创建者用户名")
private String creator;
@ExcelProperty("申请时间")
@ColumnWidth(value = 25)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 25)
private LocalDateTime dueTime;
@ExcelProperty("部门")
private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty( "状态")
private String status;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 25)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
@ -70,4 +76,60 @@ public class InventoryinitRequestMainExcelVO {
@ExcelProperty("直接生成记录")
private String directCreateRecord;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("替代批次")
private String altBatch;
@ExcelProperty("到货日期")
@ColumnWidth(value = 25)
private LocalDateTime arriveDate;
@ExcelProperty("生产日期")
@ColumnWidth(value = 25)
private LocalDateTime produceDate;
@ExcelProperty("过期日期")
@ColumnWidth(value = 25)
private LocalDateTime expireDate;
@ExcelProperty("到库位代码")
private String toLocationCode;
@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 projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("计量单位")
private String uom;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java

@ -134,9 +134,9 @@ public class ProductscrapRequestMainController {
List<ProductscrapRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(3, inventoryStatus);
mapDropDown.put(5, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(6, uom);
mapDropDown.put(8, uom);
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestImportVO.class, list,mapDropDown);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java

@ -27,7 +27,11 @@ import java.time.LocalDateTime;
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductscrapRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
@ExcelProperty("包装号")

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java

@ -91,6 +91,7 @@ public class ScrapRequestDetailController {
return success(ScrapRequestDetailConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得报废出库申请子分页")
@PreAuthorize("@ss.hasPermission('wms:scrap-request-detail:query')")

86
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java

@ -1,12 +1,16 @@
package com.win.module.wms.controller.scrapRequest;
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.scrapRequest.vo.*;
import com.win.module.wms.convert.scrapRequest.ScrapRequestDetailConvert;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.scrapRequest.ScrapRequestDetailService;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -16,6 +20,8 @@ import io.swagger.v3.oas.annotations.Parameter;
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;
import com.win.framework.common.pojo.PageResult;
@ -24,10 +30,10 @@ import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
import com.win.module.wms.convert.scrapRequest.ScrapRequestMainConvert;
import com.win.module.wms.service.scrapRequest.ScrapRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 报废出库申请主")
@RestController
@ -109,25 +115,93 @@ public class ScrapRequestMainController {
return success(result);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制品报废申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
List<ScrapRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom);
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ScrapRequestImportVO.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:scrap-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<ScrapRequestImportVO> list = ExcelUtils.read(file, ScrapRequestImportVO.class);
ConvertUtil<ScrapRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(ScrapRequestMainCreateReqVO.class);
List<ScrapRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<ScrapRequestImportErrorVO> errorList = scrapRequestMainService.importscrapRequestList(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);
}
@GetMapping("/export-excel")
@Operation(summary = "导出报废出库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:scrap-request-main:export')")
@OperateLog(type = EXPORT)
public void exportScrapRequestMainExcel(@Valid ScrapRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
public void exportScrapRequestMainExcel(@Valid ScrapRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<ScrapRequestMainDO> list = scrapRequestMainService.getScrapRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ScrapRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "报废出库申请主.xls", "数据", ScrapRequestMainExcelVO.class, resultList,mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出报废出库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:scrap-request-main:export')")
@OperateLog(type = EXPORT)
public void exportScrapRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ScrapRequestMainDO> list = scrapRequestMainService.getScrapRequestMainList1(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ScrapRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
List<ScrapRequestMainExcelVO> datas = ScrapRequestMainConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "报废出库申请主.xls", "数据", ScrapRequestMainExcelVO.class, datas);
ExcelUtils.write(response, "计划外入库申请主.xlsx", "计划外入库申请数据", ScrapRequestMainExcelVO.class, resultList, mapDropDown);
}
private List<ScrapRequestMainExcelVO> getExcelVo(List<ScrapRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(30, uom);
List<ScrapRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(ScrapRequestMainDO mainDO : list) {
List<ScrapRequestDetailDO> subList = scrapRequestDetailService.selectList(mainDO.getId());
for(ScrapRequestDetailDO detailDO : subList) {
ScrapRequestMainExcelVO vo = ScrapRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/getScrapRequestById")
@Operation(summary = "APP获得报废出库申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:scrap-request-main:query')")
public CommonResult<ScrapRequestMainRespVO> getScrapRequestById(@RequestParam("id") Long id) {
ScrapRequestMainDO scrapRequestMain = scrapRequestMainService.getScrapRequestMain(id);
ScrapRequestMainRespVO result = ScrapRequestMainConvert.INSTANCE.convert(scrapRequestMain);
if(result==null) {

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestDetailBaseVO.java

@ -83,4 +83,9 @@ public class ScrapRequestDetailBaseVO {
@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/scrapRequest/vo/ScrapRequestDetailPageReqVO.java

@ -76,7 +76,7 @@ public class ScrapRequestDetailPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] updateTime;
@Schema(description = "最后更新者用户名")
private String updater;
@Schema(description = "主表ID")
private String masterId;
}

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportErrorVO.java

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

61
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java

@ -0,0 +1,61 @@
package com.win.module.wms.controller.scrapRequest.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 javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ScrapRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
@ExcelProperty("零件号")
@NotBlank(message = "物品代码不能为空")
private String itemCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "记录单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("来源库位代码")
private String fromLocationCode;
@ExcelProperty(value = "原因")
private String reason;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.scrapRequest.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 ScrapRequestMainBaseVO {
private String fromWarehouseCode;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.scrapRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO;
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 ScrapRequestMainCreateReqVO extends ScrapRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ScrapRequestDetailCreateReqVO> subList;
}

52
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.scrapRequest.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,32 +37,34 @@ public class ScrapRequestMainExcelVO {
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("部门")
private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty("状态")
private String status;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 25)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
private String updater;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty( "从库位类型范围")
private String fromLocationTypes;
@ExcelProperty("从库区代码范围")
@ -77,4 +82,43 @@ public class ScrapRequestMainExcelVO {
@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 projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("计量单位")
private String uom;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.scrapRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO;
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 ScrapRequestMainUpdateReqVO extends ScrapRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ScrapRequestDetailUpdateReqVO> subList;
}

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

@ -64,7 +64,4 @@ public class UnplannedissueRequestMainImportVO {
}

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

@ -121,7 +121,7 @@ public class UnplannedreceiptRequestMainController {
return success(result);
}
@GetMapping("/export-excel")
@PostMapping("/export-excel")
@Operation(summary = "导出计划外入库申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:export')")
@OperateLog(type = EXPORT)

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java

@ -8,8 +8,11 @@ import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@ -44,4 +47,13 @@ public interface InventoryinitRequestMainConvert {
List<InventoryinitRequestMainExcelVO> convertList02(List<InventoryinitRequestMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
InventoryinitRequestMainExcelVO convert(InventoryinitRequestMainDO mainDO, InventoryinitRequestDetailDO detailDO);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java

@ -42,7 +42,9 @@ public interface ProductscrapRequestDetailConvert {
List<ProductscrapRequestDetailDO> convertList03(List<ProductscrapRequestDetailCreateReqVO> list);
List<ProductscrapRequestDetailDO> convertList05(List<ProductscrapRequestDetailUpdateReqVO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number")
})
ProductscrapRequestImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailDO detailVo);
ProductscrapRequestDetailCreateReqVO convert1(ProductscrapRequestDetailDO bean);

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestMainConvert.java

@ -41,9 +41,9 @@ public interface ProductscrapRequestMainConvert {
List<ProductscrapRequestMainExcelVO> convertList02(List<ProductscrapRequestMainDO> list);
/* @Mappings({
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})*/
})
ProductscrapRequestImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailDO detailDo);
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestDetailConvert.java

@ -4,10 +4,12 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExcelVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailRespVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainBaseVO;
import com.win.module.wms.controller.scrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
@ -23,15 +25,20 @@ public interface ScrapRequestDetailConvert {
ScrapRequestDetailConvert INSTANCE = Mappers.getMapper(ScrapRequestDetailConvert.class);
ScrapRequestDetailDO convert(ScrapRequestDetailCreateReqVO bean);
ScrapRequestDetailDO convert(ScrapRequestDetailBaseVO bean);
ScrapRequestDetailDO convert(ScrapRequestDetailUpdateReqVO bean);
ScrapRequestDetailRespVO convert(ScrapRequestDetailDO bean);
List<ScrapRequestDetailDO> convertList05(List<ScrapRequestDetailUpdateReqVO> list);
List<ScrapRequestDetailRespVO> convertList(List<ScrapRequestDetailDO> list);
PageResult<ScrapRequestDetailRespVO> convertPage(PageResult<ScrapRequestDetailDO> page);
List<ScrapRequestDetailDO> convertList03(List<ScrapRequestDetailCreateReqVO> list);
List<ScrapRequestDetailExcelVO> convertList02(List<ScrapRequestDetailDO> list);
}

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java

@ -4,11 +4,19 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExcelVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainRespVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainBaseVO;
import com.win.module.wms.controller.scrapRequest.vo.*;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainCreateReqVO;
import com.win.module.wms.controller.unplannedissueRequest.vo.UnplannedissueRequestMainImportErrorVO;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
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.scrapRequest.ScrapRequestMainDO;
@ -21,6 +29,12 @@ import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
public interface ScrapRequestMainConvert {
ScrapRequestMainConvert INSTANCE = Mappers.getMapper(ScrapRequestMainConvert.class);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
ScrapRequestImportErrorVO convert(ScrapRequestMainCreateReqVO mainVo, ScrapRequestDetailDO detailDo);
ScrapRequestMainDO convert(ScrapRequestMainBaseVO bean);
ScrapRequestMainDO convert(ScrapRequestMainCreateReqVO bean);
@ -34,4 +48,14 @@ public interface ScrapRequestMainConvert {
List<ScrapRequestMainExcelVO> convertList02(List<ScrapRequestMainDO> 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"),
})
ScrapRequestMainExcelVO convert(ScrapRequestMainDO mainDO, ScrapRequestDetailDO detailDO);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRequest/ScrapRequestDetailDO.java

@ -27,6 +27,10 @@ public class ScrapRequestDetailDO extends BaseDO {
*/
@TableId
private Long id;
/**
* 主表ID
*/
private Long masterId;
/**
* 从货主代码
*/
@ -59,10 +63,6 @@ public class ScrapRequestDetailDO extends BaseDO {
* 枚举 {@link TODO scrap_reason 对应的类}
*/
private String reason;
/**
* 主表ID
*/
private Long masterid;
/**
* 单据号
*/

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailExportReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -86,4 +87,9 @@ public interface InventoryinitRequestDetailMapper extends BaseMapperX<Inventoryi
.orderByDesc(InventoryinitRequestDetailDO::getId));
}
default List<InventoryinitRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<InventoryinitRequestDetailDO>()
.eq(InventoryinitRequestDetailDO::getMasterId, masterId));
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExportReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -23,6 +24,7 @@ public interface ScrapRequestDetailMapper extends BaseMapperX<ScrapRequestDetail
default PageResult<ScrapRequestDetailDO> selectPage(ScrapRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ScrapRequestDetailDO>()
.eqIfPresent(ScrapRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode())
.eqIfPresent(ScrapRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ScrapRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ScrapRequestDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ScrapRequestDetailDO::getBatch, reqVO.getBatch())
@ -41,7 +43,6 @@ public interface ScrapRequestDetailMapper extends BaseMapperX<ScrapRequestDetail
.eqIfPresent(ScrapRequestDetailDO::getQty, reqVO.getQty())
.eqIfPresent(ScrapRequestDetailDO::getUom, reqVO.getUom())
.betweenIfPresent(ScrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(ScrapRequestDetailDO::getUpdater, reqVO.getUpdater())
.orderByDesc(ScrapRequestDetailDO::getId));
}
default PageResult<ScrapRequestDetailDO> selectSenior(CustomConditions conditions) {
@ -50,7 +51,7 @@ public interface ScrapRequestDetailMapper extends BaseMapperX<ScrapRequestDetail
default List<ScrapRequestDetailDO> selectList(ScrapRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ScrapRequestDetailDO>()
.eqIfPresent(ScrapRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode())
.eqIfPresent(ScrapRequestDetailDO::getMasterid, reqVO.getMasterId())
.eqIfPresent(ScrapRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ScrapRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ScrapRequestDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ScrapRequestDetailDO::getBatch, reqVO.getBatch())
@ -73,4 +74,9 @@ public interface ScrapRequestDetailMapper extends BaseMapperX<ScrapRequestDetail
.orderByDesc(ScrapRequestDetailDO::getId));
}
default List<ScrapRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<ScrapRequestDetailDO>()
.eq(ScrapRequestDetailDO::getMasterId, masterId));
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRequest/ScrapRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExportReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -68,4 +69,8 @@ public interface ScrapRequestMainMapper extends BaseMapperX<ScrapRequestMainDO>
.orderByDesc(ScrapRequestMainDO::getId));
}
default List<ScrapRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailService.java

@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitReques
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
/**
* 库存初始化申请子 Service 接口
@ -79,4 +80,6 @@ public interface InventoryinitRequestDetailService {
*/
List<InventoryinitRequestDetailDO> getInventoryinitRequestDetailList(InventoryinitRequestDetailExportReqVO exportReqVO);
List<InventoryinitRequestDetailDO> selectList(Long masterId);
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitReques
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailExportReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailPageReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -87,4 +88,9 @@ public class InventoryinitRequestDetailServiceImpl implements InventoryinitReque
return inventoryinitRequestDetailMapper.selectList(exportReqVO);
}
@Override
public List<InventoryinitRequestDetailDO> selectList(Long masterId) {
return inventoryinitRequestDetailMapper.selectList(masterId);
}
}

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java

@ -1,7 +1,6 @@
package com.win.module.wms.service.productscrapRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.util.validation.ValidationUtils;
@ -13,18 +12,7 @@ import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.mysql.productscrapRequest.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
@ -37,35 +25,15 @@ import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetai
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper;
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.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import com.win.module.wms.service.itembasic.ItembasicService.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetailMapper;
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import javax.validation.Validator;
import java.util.ArrayList;
import java.util.Arrays;
@ -258,10 +226,21 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
return productscrapRequestMainMapper.selectList(exportReqVO);
}
private void validatetime(LocalDateTime durtime){
if(durtime.isAfter(LocalDateTime.now())){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
}
private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now());
try{
validatetime(mainDo.getDueTime());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest");
if (requestsettingDO == null) {
message.append("未查找到制品报废申请的相关申请设置");
@ -380,11 +359,11 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PRODUCTSCRAP_REQUEST_NOT_EXISTS);
throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS);
}
List<ProductscrapRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
ProductscrapRequestMainDO mainDo = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateProductscrapRequestMainImport(mainDo, businesstypeDO);
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
@ -404,9 +383,11 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
productscrapRequestMainMapper.insert(mainDo);
for (ProductscrapRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailService.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailPageReqVO
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
/**
* 报废出库申请子 Service 接口
@ -77,4 +78,7 @@ public interface ScrapRequestDetailService {
*/
List<ScrapRequestDetailDO> getScrapRequestDetailList(ScrapRequestDetailExportReqVO exportReqVO);
List<ScrapRequestDetailDO> selectList(Long masterId);
}

80
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestDetailServiceImpl.java

@ -1,10 +1,21 @@
package com.win.module.wms.service.scrapRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExportReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailPageReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailUpdateReqVO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.scrapRequest.vo.*;
import com.win.module.wms.convert.scrapRequest.ScrapRequestMainConvert;
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.scrapRequest.ScrapRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
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;
@ -28,15 +39,64 @@ public class ScrapRequestDetailServiceImpl implements ScrapRequestDetailService
@Resource
private ScrapRequestDetailMapper scrapRequestDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private LocationService locationService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private ItembasicService itembasicService;
@Override
public Long createScrapRequestDetail(ScrapRequestDetailCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest");
// 插入
ScrapRequestDetailDO scrapRequestDetail = ScrapRequestDetailConvert.INSTANCE.convert(createReqVO);
scrapRequestDetailMapper.insert(scrapRequestDetail);
// 返回
ScrapRequestDetailDO scrapRequestDetail = validatorToCreate(createReqVO,requestsettingDO);
return scrapRequestDetail.getId();
}
private ScrapRequestDetailDO validatorToCreate(ScrapRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest");
ScrapRequestDetailDO scrapRequestDetailDO = validateDetailMethod(createReqVO, businesstypeDO, requestsettingDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_REQUEST.getCode());
scrapRequestDetailDO.setNumber(number);
scrapRequestDetailDO.setMasterId(createReqVO.getMasterId());
scrapRequestDetailMapper.insert(scrapRequestDetailDO);
return scrapRequestDetailDO;
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
}
private ScrapRequestDetailDO validateDetailMethod(ScrapRequestDetailBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
ScrapRequestDetailDO detailDo = ScrapRequestDetailConvert.INSTANCE.convert(baseVO);
ItembasicDO itembasic = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasic.getDesc1());
detailDo.setItemDesc2(itembasic.getDesc2());
detailDo.setItemName(itembasic.getName());
detailDo.setProjectCode(itembasic.getProject());
LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode());
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
detailDo.setInventoryStatus("SCRAP");
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;
}
@Override
public void updateScrapRequestDetail(ScrapRequestDetailUpdateReqVO updateReqVO) {
// 校验存在
@ -85,4 +145,10 @@ public class ScrapRequestDetailServiceImpl implements ScrapRequestDetailService
return scrapRequestDetailMapper.selectList(exportReqVO);
}
@Override
public List<ScrapRequestDetailDO> selectList(Long masterId) {
return scrapRequestDetailMapper.selectList(masterId);
}
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainService.java

@ -4,12 +4,12 @@ import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExportReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainPageReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
/**
* 报废出库申请主 Service 接口
@ -81,4 +81,9 @@ public interface ScrapRequestMainService {
*/
List<ScrapRequestMainDO> getScrapRequestMainList(ScrapRequestMainExportReqVO exportReqVO);
public List<ScrapRequestImportErrorVO> importscrapRequestList(List<ScrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
List<ScrapRequestMainDO> getScrapRequestMainList1(CustomConditions conditions);
}

279
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java

@ -1,14 +1,38 @@
package com.win.module.wms.service.scrapRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainExportReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainPageReqVO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainUpdateReqVO;
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.productscrapRequest.vo.*;
import com.win.module.wms.controller.scrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.convert.scrapRequest.ScrapRequestDetailConvert;
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.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.dal.mysql.scrapRequest.ScrapRequestDetailMapper;
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.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
@ -32,22 +56,127 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
@Resource
private ScrapRequestMainMapper scrapRequestMainMapper;
@Resource
private ScrapRequestDetailMapper scrapRequestDetailMapper;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private LocationService locationService;
@Resource
private JobUtils jobUtils;
@Resource
private ItembasicService itembasicService;
@Resource
private TrendsApi trendsApi;
@Resource
private RequestsettingService requestsettingService;
@Override
public Long createScrapRequestMain(ScrapRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest");
// 插入
ScrapRequestMainDO scrapRequestMain = ScrapRequestMainConvert.INSTANCE.convert(createReqVO);
scrapRequestMainMapper.insert(scrapRequestMain);
// 返回
ScrapRequestMainDO scrapRequestMain = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(scrapRequestMain.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "ScrapRequest", "增加了报废出库申请", TrendsTypeEnum.CREATE);
return scrapRequestMain.getId();
}
private ScrapRequestMainDO validatorToCreate(ScrapRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest");
ScrapRequestMainDO scrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO);
List<ScrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ScrapRequestDetailDO> subDOList = ScrapRequestDetailConvert.INSTANCE.convertList03(subList);
for (ScrapRequestDetailDO scrapRequestDetailDO : subDOList) {
validateDetailMethod(scrapRequestDetailDO, businesstypeDO, scrapRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
scrapRequestMainDO.setNumber(number);
scrapRequestMainMapper.insert(scrapRequestMainDO);
for(ScrapRequestDetailDO detailDo : subDOList){
detailDo.setMasterId(scrapRequestMainDO.getId());
detailDo.setNumber(scrapRequestMainDO.getNumber());
}
scrapRequestDetailMapper.insertBatch(subDOList);
return scrapRequestMainDO;
}
private void validateDetailMethod(ScrapRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, ScrapRequestMainDO mainDo) {
ItembasicDO itembasic = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasic.getDesc1());
detailDo.setItemDesc2(itembasic.getDesc2());
detailDo.setItemName(itembasic.getName());
detailDo.setProjectCode(itembasic.getProject());
LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode());
mainDo.setFromAreaCodes(locationDO.getAreaCode());
mainDo.setFromLocationTypes(locationDO.getCode());
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
detailDo.setInventoryStatus("SCRAP");
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 ScrapRequestMainDO validateMainMethod(ScrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
ScrapRequestMainDO mainDo = ScrapRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setRequestTime(LocalDateTime.now());
validatetime(mainDo.getDueTime());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes());
return mainDo;
}
private ScrapRequestMainDO validatorToUpdate(ScrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest");
ScrapRequestMainDO scrapRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<ScrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<ScrapRequestDetailDO> subDOList = ScrapRequestDetailConvert.INSTANCE.convertList05(subList);
for (ScrapRequestDetailDO scrapRequestDetailDO : subDOList) {
validateDetailMethod(scrapRequestDetailDO, businesstypeDO, scrapRequestMainDO);
}
scrapRequestDetailMapper.updateBatch(subDOList);
}
scrapRequestMainMapper.updateById(scrapRequestMainDO);
return scrapRequestMainDO;
}
@Override
public void updateScrapRequestMain(ScrapRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest");
// 校验存在
validateScrapRequestMainExists(updateReqVO.getId());
// 更新
ScrapRequestMainDO updateObj = ScrapRequestMainConvert.INSTANCE.convert(updateReqVO);
scrapRequestMainMapper.updateById(updateObj);
ScrapRequestMainDO scrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(scrapRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "ScrapRequest", "增加了报废出库申请", TrendsTypeEnum.CREATE);
}
@Override
public PageResult<ScrapRequestMainDO> getScrapRequestMainSenior(CustomConditions conditions) {
@ -81,10 +210,142 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
public PageResult<ScrapRequestMainDO> getScrapRequestMainPage(ScrapRequestMainPageReqVO pageReqVO) {
return scrapRequestMainMapper.selectPage(pageReqVO);
}
private void validatetime(LocalDateTime durtime){
if(LocalDateTime.now().isAfter(durtime)){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
}
@Override
public List<ScrapRequestMainDO> getScrapRequestMainList(ScrapRequestMainExportReqVO exportReqVO) {
return scrapRequestMainMapper.selectList(exportReqVO);
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
private String validateScrapRequestMainImport(ScrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
mainDo.setRequestTime(LocalDateTime.now());
try{
validatetime(mainDo.getDueTime());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapRequest");
if (requestsettingDO == null) {
message.append("未查找到制品报废申请的相关申请设置");
} else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
if (businesstypeDO == null) {
message.append("根据单据设置未查找到制品报废申请申请的相关业务类型");
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes());
}
return message.toString();
}
private String validateScrapvRequestDetailImport(ScrapRequestDetailDO detailDo, ScrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try{
ItembasicDO itembasic = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasic.getDesc1());
detailDo.setItemDesc2(itembasic.getDesc2());
detailDo.setItemName(itembasic.getName());
detailDo.setProjectCode(itembasic.getProject());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode());
mainDo.setFromAreaCodes(locationDO.getAreaCode());
mainDo.setFromLocationTypes(locationDO.getCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
detailDo.setInventoryStatus("SCRAP");
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();
}
public List<ScrapRequestImportErrorVO> importscrapRequestList(List<ScrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){
if (CollUtil.isEmpty(datas)) {
throw exception(SCRAP_REQUEST_MAIN_NOT_EXISTS);
}
List<ScrapRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapRequest");
ScrapRequestMainDO mainDo = ScrapRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateScrapRequestMainImport(mainDo, businesstypeDO);
List<ScrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ScrapRequestDetailDO> subDOList = ScrapRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (ScrapRequestDetailDO detailDO : subDOList) {
String messageDetail = validateScrapvRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) ||!"".equals(messageDetail) ) {
ScrapRequestImportErrorVO importErrorVO = ScrapRequestMainConvert.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.SCRAP_REQUEST.getCode());
mainDo.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
scrapRequestMainMapper.insert(mainDo);
for (ScrapRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
scrapRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
public List<ScrapRequestMainDO> getScrapRequestMainList1(CustomConditions conditions) {
return scrapRequestMainMapper.selectSeniorList(conditions);
}
}

Loading…
Cancel
Save