Browse Source

新增/修改/导入的校验方法

master
chenfang 2 years ago
parent
commit
72ff4b29a5
  1. 3
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java
  3. 58
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java
  4. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java
  5. 45
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java
  7. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java
  8. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java
  9. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java
  10. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java
  11. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java
  12. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java
  13. 81
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java
  14. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java
  15. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java
  16. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java
  17. 53
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java
  18. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java
  19. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java
  20. 63
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java
  21. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java
  22. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java
  23. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java
  24. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java
  25. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java
  26. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java
  27. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java
  28. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java
  29. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java
  30. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java
  31. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java
  32. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java
  33. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java
  34. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java
  35. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java
  36. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java
  37. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java
  38. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java
  39. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestDetailMapper.java
  40. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java
  41. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java
  42. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  43. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java
  44. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java
  45. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java
  46. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java
  47. 88
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java
  48. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java
  49. 314
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java
  50. 56
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  51. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java
  52. 363
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java
  53. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java
  54. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java
  55. 345
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java
  56. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java
  57. 301
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java
  58. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java
  59. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java

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

@ -62,6 +62,7 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTIONLINEITEM_PRODUCT_LINE_COED_NOT_EXISTS = new ErrorCode(1_000_024_003, "产线代码不存在");
ErrorCode PRODUCTIONLINEITEM_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_024_004, "物品代码不存在");
ErrorCode PRODUCTIONLINEITEM_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_024_005, "是否可用不存在");
ErrorCode PRODUCTIONLINEITEM_NOT_EXIST = new ErrorCode(1_000_024_006, "生产线物料关系不存在【{}】");
//采购价格单ErrorCode
ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_000_025_000, "供应商不存在");
ErrorCode SUPPLIER_NOT_EXISTSNO = new ErrorCode(1_000_025_001, "代码已存在");
@ -200,6 +201,7 @@ public interface ErrorCodeConstants {
ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_NOT_EXISTS = new ErrorCode(1_000_040_005, "生产线代码不存在");
ErrorCode WORKSTATION_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_040_006, "导入工序不能为空");
ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_AND_WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_007, "生产线代码与工位不匹配");
ErrorCode WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_008, "车间,生产线代码与工位不匹配【{}】");
//工序ErrorCode
ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_000_041_000, "工序不存在");
ErrorCode PROCESS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_041_001, "导入工序数据不能为空");
@ -554,6 +556,7 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_097_000, "生产退料申请主不存在");
//生产退料申请子ErrorCode
ErrorCode PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_097_001, "生产退料申请子不存在");
ErrorCode PRODUCTIONRETURN_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_097_002, "导入生产退料申请不能为空");
//生产退料申请主ErrorCode
ErrorCode PRODUCTIONRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_098_000, "生产退料任务主不存在");
//生产退料任务子ErrorCode

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java

@ -10,6 +10,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -43,15 +44,15 @@ public class ProductionreturnRequestDetailController {
@PostMapping("/create")
@Operation(summary = "创建生产退料申请子")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:create')")
public CommonResult<Long> createProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailCreateReqVO createReqVO) {
return success(productionreturnRequestDetailService.createProductionreturnRequestDetail(createReqVO));
public CommonResult<Long> createProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailCreateReqVO createReqVO, @RequestBody RequestsettingDO requestsettingDO) {
return success(productionreturnRequestDetailService.createProductionreturnRequestDetail(createReqVO,requestsettingDO));
}
@PutMapping("/update")
@Operation(summary = "更新生产退料申请子")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:update')")
public CommonResult<Boolean> updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO) {
productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO);
public CommonResult<Boolean> updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO, @RequestBody RequestsettingDO requestsettingDO) {
productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO,requestsettingDO);
return success(true);
}

58
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java

@ -3,6 +3,8 @@ package com.win.module.wms.controller.productionreturnRequest;
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;
@ -10,21 +12,28 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
@ -38,7 +47,6 @@ public class ProductionreturnRequestMainController {
@Resource
private ProductionreturnRequestMainService productionreturnRequestMainService;
@Resource
private ProductionreturnRequestDetailService productionreturnRequestDetailService;
@ -48,15 +56,15 @@ public class ProductionreturnRequestMainController {
@PostMapping("/create")
@Operation(summary = "创建生产退料申请主")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:create')")
public CommonResult<Long> createProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainCreateReqVO createReqVO) {
return success(productionreturnRequestMainService.createProductionreturnRequestMain(createReqVO));
public CommonResult<Long> createProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainCreateReqVO createReqVO,@RequestBody BusinesstypeDO businesstypeDO,@RequestBody RequestsettingDO requestsettingDO) {
return success(productionreturnRequestMainService.createProductionreturnRequestMain(createReqVO,businesstypeDO,requestsettingDO));
}
@PutMapping("/update")
@Operation(summary = "更新生产退料申请主")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:update')")
public CommonResult<Boolean> updateProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainUpdateReqVO updateReqVO) {
productionreturnRequestMainService.updateProductionreturnRequestMain(updateReqVO);
public CommonResult<Boolean> updateProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainUpdateReqVO updateReqVO,@RequestBody BusinesstypeDO businesstypeDO,@RequestBody RequestsettingDO requestsettingDO) {
productionreturnRequestMainService.updateProductionreturnRequestMain(updateReqVO,businesstypeDO,requestsettingDO);
return success(true);
}
@ -144,4 +152,44 @@ public class ProductionreturnRequestMainController {
return success(result);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入生产退料申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductionreturnRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
// 输出
ExcelUtils.write(response, "生产退料信息导入模板.xlsx", "生产退料申请信息列表", ProductionreturnRequestImportVO.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:productionreturn-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,
@RequestParam(value = "businesstypeDO")BusinesstypeDO businesstypeDO,
@RequestParam(value = "requestsettingDO")RequestsettingDO requestsettingDO) throws Exception {
List<ProductionreturnRequestImportVO> list = ExcelUtils.read(file, ProductionreturnRequestImportVO.class);
ConvertUtil<ProductionreturnRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(ProductionreturnRequestMainCreateReqVO.class);
List<ProductionreturnRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<ProductionreturnRequestImportErrorVO> errorList = productionreturnRequestMainService.importProductionreturnRequestList(createReqVOList, mode, updatePart,businesstypeDO,requestsettingDO);
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);
}
}

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.productionreturnRequest.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 ProductionreturnRequestImportErrorVO extends ProductionreturnRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

45
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java

@ -0,0 +1,45 @@
package com.win.module.wms.controller.productionreturnRequest.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;
/**
* 生产退料申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductionreturnRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("车间代码")
private String workshopCode;
@ExcelProperty("生产线代码")
private String productionLineCode;
@ExcelProperty("工位代码")
private String workStationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productionreturnRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -34,6 +35,7 @@ public class ProductionreturnRequestMainBaseVO {
@Schema(description = "从库区代码范围")
private String fromAreaCodes;
@OnlyOne
@Schema(description = "单据号")
private String number;

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java

@ -1,12 +1,21 @@
package com.win.module.wms.controller.productionreturnRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO;
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 ProductionreturnRequestMainCreateReqVO extends ProductionreturnRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ProductionreturnRequestDetailCreateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java

@ -66,7 +66,7 @@ public class PurchaseclaimRequestMainController {
@Operation(summary = "更新采购索赔申请主")
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')")
public CommonResult<Boolean> updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
Integer result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO);
Long result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO);
return success(result > 0);
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java

@ -58,6 +58,7 @@ public class PurchasereceiptRequestMainBaseVO {
@Schema(description = "到月台代码")
private String toDockCode;
@OnlyOne
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
private String number;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java

@ -23,6 +23,8 @@ import java.time.LocalDateTime;
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PurchasereceiptRequestMainImportVO {
@ExcelProperty("单据号")
private String number;
//主表数据
@ExcelProperty("供应商代码")
private String supplierCode;

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java

@ -1,9 +1,13 @@
package com.win.module.wms.controller.purchasereturnRequest;
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.purchasereturnRequest.vo.*;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestDetailService;
@ -17,6 +21,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;
@ -32,6 +38,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestMainConvert;
import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 采购退货申请主")
@RestController
@ -128,6 +135,49 @@ public class PurchasereturnRequestMainController {
ExcelUtils.write(response, "采购退货申请主.xls", "数据", PurchasereturnRequestMainExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入采购退货信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<PurchasereturnRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(11, inventoryStatus);
String[] reason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
mapDropDown.put(13, reason);
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
mapDropDown.put(15, transferMode);
// 输出
ExcelUtils.write(response, "采购退货信息导入模板.xlsx", "采购退货信息列表", PurchasereturnRequestImportVO.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:purchasereturn-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<PurchasereturnRequestImportVO> list = ExcelUtils.read(file, PurchasereturnRequestImportVO.class);
ConvertUtil<PurchasereturnRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(PurchasereturnRequestMainCreateReqVO.class);
List<PurchasereturnRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<PurchasereturnRequestImportErrorVO> errorList = purchasereturnRequestMainService.importPurchasereturnRequestList(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("/getPurchasereturnRequestById")
@Operation(summary = "APP获得采购退货申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.purchasereturnRequest.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 PurchasereturnRequestImportErrorVO extends PurchasereturnRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

81
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java

@ -0,0 +1,81 @@
package com.win.module.wms.controller.purchasereturnRequest.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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 供应商发票申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PurchasereturnRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("采购收货记录单号")
private String purchaseReceiptRecordNumber;
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("订单号")
private String poNumber;
@ExcelProperty("订单行")
private String poLine;
@ExcelProperty("物品代码")
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(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("来源库位")
private String fromLocationCode;
@ExcelProperty(value = "原因", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PURCHASE_RETURN_REASON)
private String reason;
@ExcelProperty("承运商")
private String carrierCode;
@ExcelProperty(value = "运输方式", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRANSFER_MODE)
private String transferMode;
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java

@ -1,11 +1,8 @@
package com.win.module.wms.controller.purchasereturnRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
@ -44,12 +41,12 @@ public class PurchasereturnRequestMainBaseVO {
private String vehiclePlateNumber;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode;
@Schema(description = "到仓库代码")
private String toWarehouseCode;
@OnlyOne
@Schema(description = "单据号")
private String number;

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java

@ -1,12 +1,19 @@
package com.win.module.wms.controller.purchasereturnRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
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 PurchasereturnRequestMainCreateReqVO extends PurchasereturnRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PurchasereturnRequestDetailCreateReqVO> subList;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.purchasereturnRequest.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 PurchasereturnRequestMainUpdateReqVO extends PurchasereturnRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PurchasereturnRequestDetailUpdateReqVO> subList;
}

53
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java

@ -1,9 +1,13 @@
package com.win.module.wms.controller.putawayRequest;
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.putawayRequest.vo.*;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
import com.win.module.wms.service.putawayRequest.PutawayRequestDetailService;
@ -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;
@ -27,6 +33,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
import com.win.module.wms.convert.putawayRequest.PutawayRequestMainConvert;
import com.win.module.wms.service.putawayRequest.PutawayRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 上架申请主")
@RestController
@ -118,7 +125,26 @@ public class PutawayRequestMainController {
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "上架申请主.xls", "数据", PutawayRequestMainExcelVO.class, datas);
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
ExcelUtils.write(response, "上架申请主.xls", "数据", PutawayRequestMainExcelVO.class, datas,mapDropDown);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入上架申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<PutawayRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
// 输出
ExcelUtils.write(response, "上架申请信息导入模板.xlsx", "上架申请信息列表", PutawayRequestImportVO.class, list, mapDropDown);
}
@GetMapping("/getPutawayRequestById")
@ -139,4 +165,29 @@ public class PutawayRequestMainController {
return success(result);
}
@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:putaway-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<PutawayRequestImportVO> list = ExcelUtils.read(file, PutawayRequestImportVO.class);
ConvertUtil<PutawayRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(PutawayRequestMainCreateReqVO.class);
List<PutawayRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<PutawayRequestImportErrorVO> errorList = putawayRequestMainService.importPutawayRequestList(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);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java

@ -92,4 +92,6 @@ public class PutawayRequestDetailBaseVO {
@Schema(description = "到货主代码")
private String toOwnerCode;
@Schema(description = "主表id")
private Long masterId;
}

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.putawayRequest.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 PutawayRequestImportErrorVO extends PutawayRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

63
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java

@ -0,0 +1,63 @@
package com.win.module.wms.controller.putawayRequest.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;
/**
* 上架申请 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PutawayRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("订单号")
private String poNumber;
@ExcelProperty("订单行")
private String poLine;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("来源库位")
private String fromLocationCode;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.putawayRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -37,6 +38,7 @@ public class PutawayRequestMainBaseVO {
@Schema(description = "从库区代码范围")
private String fromAreaCodes;
@OnlyOne
@Schema(description = "单据号")
private String number;
@ -101,8 +103,4 @@ public class PutawayRequestMainBaseVO {
@NotNull(message = "直接生成记录不能为空")
private String directCreateRecord;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java

@ -1,12 +1,19 @@
package com.win.module.wms.controller.putawayRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
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 PutawayRequestMainCreateReqVO extends PutawayRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PutawayRequestDetailCreateReqVO> subList;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.putawayRequest.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 PutawayRequestMainUpdateReqVO extends PutawayRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PutawayRequestDetailUpdateReqVO> subList;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java

@ -32,9 +32,11 @@ public interface IssueRequestDetailConvert {
PageResult<IssueRequestDetailRespVO> convertPage(PageResult<IssueRequestDetailDO> page);
List<IssueRequestDetailExcelVO> convertList02(List<IssueRequestDetailDO> list);
IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO);
List<IssueRequestDetailExcelVO> convertList02(List<IssueRequestDetailDO> list);
List<IssueRequestDetailDO> convertList03(List<IssueRequestDetailCreateReqVO> list);
List<IssueRequestDetailDO> convertList04(List<IssueRequestDetailUpdateReqVO> list);
List<IssueRequestDetailDO> convertList05(List<IssueRequestDetailUpdateReqVO> list);
@ -53,6 +55,4 @@ public interface IssueRequestDetailConvert {
@Mapping(source = "mainVo.number", target = "number"),
})
IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo);
IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO);
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java

@ -1,19 +1,15 @@
package com.win.module.wms.convert.issueRequest;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import java.util.List;
/**
* 发料申请主 Convert

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java

@ -34,4 +34,5 @@ public interface ProductionreturnRequestDetailConvert {
List<ProductionreturnRequestDetailExcelVO> convertList02(List<ProductionreturnRequestDetailDO> list);
List<ProductionreturnRequestDetailDO> convertList03(List<ProductionreturnRequestDetailCreateReqVO> subList);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExcelVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainRespVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
@ -22,9 +22,7 @@ public interface ProductionreturnRequestMainConvert {
ProductionreturnRequestMainConvert INSTANCE = Mappers.getMapper(ProductionreturnRequestMainConvert.class);
ProductionreturnRequestMainDO convert(ProductionreturnRequestMainCreateReqVO bean);
ProductionreturnRequestMainDO convert(ProductionreturnRequestMainUpdateReqVO bean);
ProductionreturnRequestMainDO convert(ProductionreturnRequestMainBaseVO baseVO);
ProductionreturnRequestMainRespVO convert(ProductionreturnRequestMainDO bean);
@ -33,5 +31,8 @@ public interface ProductionreturnRequestMainConvert {
PageResult<ProductionreturnRequestMainRespVO> convertPage(PageResult<ProductionreturnRequestMainDO> page);
List<ProductionreturnRequestMainExcelVO> convertList02(List<ProductionreturnRequestMainDO> list);
@Mappings({
@Mapping(source = "createReqVO.number", target = "number"),
})
ProductionreturnRequestImportErrorVO convert(ProductionreturnRequestMainCreateReqVO createReqVO, ProductionreturnRequestDetailDO detailDO);
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java

@ -2,8 +2,11 @@ package com.win.module.wms.convert.purchaseclaimRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@ -39,6 +42,8 @@ public interface PurchaseclaimRequestDetailConvert {
List<PurchaseclaimRequestDetailDO> convertList04(List<PurchaseclaimRequestDetailUpdateReqVO> list);
List<PurchaseclaimRequestDetailDO> convertList05(List<PurchaseclaimRequestDetailUpdateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@ -52,5 +57,5 @@ public interface PurchaseclaimRequestDetailConvert {
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailCreateReqVO detailVo);
PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailDO detailDo);
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java

@ -1,10 +1,12 @@
package com.win.module.wms.convert.purchaseclaimRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
@ -31,4 +33,20 @@ public interface PurchaseclaimRequestMainConvert {
List<PurchaseclaimRequestMainExcelVO> convertList02(List<PurchaseclaimRequestMainDO> list);
PurchaseclaimRequestMainDO convert(PurchaseclaimRequestMainBaseVO baseVO);
@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"),
})
PurchaseclaimRequestMainExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailDO detailDo);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java

@ -46,7 +46,9 @@ public interface PurchasereceiptRequestDetailConvert {
@Mapping(source = "mainDO.updater", target = "updater"),
})
PurchasereceiptRequestDetailExcelVO convert(PurchasereceiptRequestMainDO mainDO, PurchasereceiptRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailCreateReqVO detailVo);
}

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

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

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java

@ -4,11 +4,13 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailExcelVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailRespVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailUpdateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
@ -28,10 +30,32 @@ public interface PurchasereturnRequestDetailConvert {
PurchasereturnRequestDetailRespVO convert(PurchasereturnRequestDetailDO bean);
PurchasereturnRequestDetailCreateReqVO convert1(PurchasereturnRequestDetailDO bean);
List<PurchasereturnRequestDetailRespVO> convertList(List<PurchasereturnRequestDetailDO> list);
PageResult<PurchasereturnRequestDetailRespVO> convertPage(PageResult<PurchasereturnRequestDetailDO> page);
List<PurchasereturnRequestDetailExcelVO> convertList02(List<PurchasereturnRequestDetailDO> list);
List<PurchasereturnRequestDetailDO> convertList03(List<PurchasereturnRequestDetailCreateReqVO> list);
List<PurchasereturnRequestDetailDO> convertList04(List<PurchasereturnRequestDetailUpdateReqVO> list);
List<PurchasereturnRequestDetailDO> convertList05(List<PurchasereturnRequestDetailUpdateReqVO> subList);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
PurchasereturnRequestDetailExcelVO convert(PurchasereturnRequestMainDO mainDO, PurchasereturnRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailCreateReqVO detailVo);
}

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java

@ -4,11 +4,14 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExcelVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainRespVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
@ -33,5 +36,10 @@ public interface PurchasereturnRequestMainConvert {
PageResult<PurchasereturnRequestMainRespVO> convertPage(PageResult<PurchasereturnRequestMainDO> page);
List<PurchasereturnRequestMainExcelVO> convertList02(List<PurchasereturnRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailDO detailDo);
PurchasereturnRequestMainDO convert(PurchasereturnRequestMainBaseVO baseVO);
}

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailExcelVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailRespVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
@ -28,10 +28,31 @@ public interface PutawayRequestDetailConvert {
PutawayRequestDetailRespVO convert(PutawayRequestDetailDO bean);
PutawayRequestDetailCreateReqVO convert1(PutawayRequestDetailDO detailDO);
List<PutawayRequestDetailRespVO> convertList(List<PutawayRequestDetailDO> list);
PageResult<PutawayRequestDetailRespVO> convertPage(PageResult<PutawayRequestDetailDO> page);
List<PutawayRequestDetailExcelVO> convertList02(List<PutawayRequestDetailDO> list);
List<PutawayRequestDetailDO> convertList03(List<PutawayRequestDetailCreateReqVO> list);
List<PutawayRequestDetailDO> convertList04(List<PutawayRequestDetailUpdateReqVO> 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"),
})
PutawayRequestDetailExcelVO convert(PutawayRequestMainDO mainDO, PutawayRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PutawayRequestImportErrorVO convert(PutawayRequestMainCreateReqVO mainVo, PutawayRequestDetailCreateReqVO detailVo);
List<PutawayRequestDetailDO> convertList05(List<PutawayRequestDetailUpdateReqVO> subList);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExcelVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainRespVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
@ -34,4 +34,9 @@ public interface PutawayRequestMainConvert {
List<PutawayRequestMainExcelVO> convertList02(List<PutawayRequestMainDO> list);
PutawayRequestMainDO convert(PutawayRequestMainBaseVO baseVO);
@Mappings({
@Mapping(source = "createReqVO.number", target = "number"),
})
PutawayRequestImportErrorVO convert(PutawayRequestMainCreateReqVO createReqVO, PutawayRequestDetailDO detailDO);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java

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

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java

@ -53,7 +53,6 @@ public interface ProductionreturnRequestDetailMapper extends BaseMapperX<Product
default List<ProductionreturnRequestDetailDO> selectList(ProductionreturnRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductionreturnRequestDetailDO>()
.eqIfPresent(ProductionreturnRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductionreturnRequestDetailDO::getProductionLineCode, reqVO.getProductionLineCode())
.eqIfPresent(ProductionreturnRequestDetailDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductionreturnRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus())

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java

@ -76,4 +76,7 @@ public interface ProductionreturnRequestMainMapper extends BaseMapperX<Productio
.orderByDesc(ProductionreturnRequestMainDO::getId));
}
default ProductionreturnRequestMainDO selectByNumber(String number){
return selectOne(ProductionreturnRequestMainDO::getNumber,number);
}
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestDetailMapper.java

@ -53,7 +53,6 @@ public interface ProductputawayRequestDetailMapper extends BaseMapperX<Productpu
default List<ProductputawayRequestDetailDO> selectList(ProductputawayRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductputawayRequestDetailDO>()
.eqIfPresent(ProductputawayRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductputawayRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ProductputawayRequestDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ProductputawayRequestDetailDO::getBatch, reqVO.getBatch())

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
@ -57,6 +58,11 @@ public interface PurchasereturnRequestMainMapper extends BaseMapperX<Purchaseret
default PageResult<PurchasereturnRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
default PurchasereturnRequestMainDO selectRecordNumberAndSupplierCode(String purchaseReceiptRecordNumber, String supplierCode) {
return selectOne(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, purchaseReceiptRecordNumber,PurchasereturnRequestMainDO::getSupplierCode,supplierCode);
}
default List<PurchasereturnRequestMainDO> selectList(PurchasereturnRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PurchasereturnRequestMainDO>()
.eqIfPresent(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, reqVO.getPurchaseReceiptRecordNumber())

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java

@ -92,4 +92,7 @@ public interface PutawayRequestMainMapper extends BaseMapperX<PutawayRequestMain
.orderByDesc(PutawayRequestMainDO::getId));
}
default PutawayRequestMainDO selectSupplierCode(String supplierCode){
return selectOne(PutawayRequestMainDO::getSupplierCode,supplierCode);
};
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java

@ -341,16 +341,13 @@ public class ItembasicServiceImpl implements ItembasicService {
public ItembasicDO selectItembasic(String code) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",code);
queryWrapper.eq("available","TRUE");
queryWrapper.eq("status","ENABLE");
ItembasicDO itembasicDO = itembasicMapper.selectOne(queryWrapper);
if(itembasicDO != null){
if("ENABLE".equals(itembasicDO.getStatus())){
return itembasicDO;
}else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
return itembasicDO;
}else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java

@ -201,8 +201,9 @@ public class ProductionlineServiceImpl implements ProductionlineService {
public ProductionlineDO productionLineCodeExist(String pproductionLineCode){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",pproductionLineCode);
queryWrapper.eq("available","TRUE");
ProductionlineDO productionlineDO = productionlineMapper.selectOne(queryWrapper);
if(productionlineDO != null && "TRUE".equals(productionlineDO.getAvailable())){
if(productionlineDO != null){
return productionlineDO;
}else {
throw exception(PRODUCTIONLINE_NOT_EXISTS);

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java

@ -79,7 +79,7 @@ public interface ProductionlineitemService {
* @param pitemCode 物品代码
* @return 生产线物料关系
*/
public List<ProductionlineitemDO> productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode);
public ProductionlineitemDO productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode);
/**
* 获得用高级搜索户分页列表

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java

@ -169,21 +169,17 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
}
//零件生产线关系有效
@Override
public List<ProductionlineitemDO> productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) {
public ProductionlineitemDO productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("production_line_code",pproductionLineCode);
queryWrapper.eq("item_code",pitemCode);
List<ProductionlineitemDO> productionlineitemDO = productionlineitemMapper.selectList(queryWrapper);
queryWrapper.eq("available","TRUE");
ProductionlineitemDO productionlineitemDO = productionlineitemMapper.selectOne(queryWrapper);
if( productionlineitemDO != null){
for (ProductionlineitemDO aDo : productionlineitemDO) {
if("TRUE".equals(aDo.getAvailable())){
return productionlineitemDO;
}
}
return productionlineitemDO;
}else {
throw new UtilException( "生产线" + pproductionLineCode + "与零件" + pitemCode + "关系无效");
throw exception(PRODUCTIONLINEITEM_NOT_EXIST, "生产线" + pproductionLineCode + "与零件" + pitemCode + "关系无效");
}
return productionlineitemDO;
}
@Override

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java

@ -2,11 +2,9 @@ package com.win.module.wms.service.productionreturnRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import javax.validation.Valid;
import java.util.Collection;
@ -25,14 +23,14 @@ public interface ProductionreturnRequestDetailService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailCreateReqVO createReqVO);
Long createProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO);
/**
* 更新生产退料申请子
*
* @param updateReqVO 更新信息
*/
void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO);
void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO);
/**
* 删除生产退料申请子

88
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java

@ -2,22 +2,36 @@ package com.win.module.wms.service.productionreturnRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailUpdateReqVO;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
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.ITEMBASIC_CODE_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS;
/**
@ -31,22 +45,39 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur
@Resource
private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper;
@Resource
private ProductionreturnRequestMainService productionreturnRequestMainService;
@Resource
private ItembasicService itembasicService;
@Resource
private ProductionlineService productionlineService;
@Resource
private ProductionlineitemService productionlineitemService;
@Resource
private WorkstationService workstationService;
@Resource
private JobUtils jobUtils;
@Resource
private TrendsApi trendsApi;
@Override
public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO) {
public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
// 插入
ProductionreturnRequestDetailDO productionreturnRequestDetail = ProductionreturnRequestDetailConvert.INSTANCE.convert(createReqVO);
productionreturnRequestDetailMapper.insert(productionreturnRequestDetail);
trendsApi.createTrends(productionreturnRequestDetail.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.CREATE);
// 返回
return productionreturnRequestDetail.getId();
}
@Override
public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO) {
public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
// 校验存在
validateProductionreturnRequestDetailExists(updateReqVO.getId());
// 更新
ProductionreturnRequestMainDO productionreturnRequestMainToNumber = productionreturnRequestMainService.getProductionreturnRequestMainToNumber(updateReqVO.getNumber());
ProductionreturnRequestDetailDO updateObj = ProductionreturnRequestDetailConvert.INSTANCE.convert(updateReqVO);
validatorDetailMethod(updateObj,productionreturnRequestMainToNumber);
trendsApi.createTrends(updateObj.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.UPDATE);
productionreturnRequestDetailMapper.updateById(updateObj);
}
@ -88,4 +119,53 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur
public PageResult<ProductionreturnRequestDetailDO> getProductionreturnRequestDetailSenior(CustomConditions conditions) {
return productionreturnRequestDetailMapper.selectSenior(conditions);
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
ProductionlineDO productionlineDO = validatorProductionline(detailDo.getProductionLineCode());
detailDo.setFromLocationCode(productionlineDO.getRawLocationCode());
this.validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode());
WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode());
if(workstationDO != null){
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private ProductionlineDO validatorProductionline(String pproductionLineCode){
return productionlineService.productionLineCodeExist(pproductionLineCode);
}
private void validatorProductionlineitem(String productionLineCode,String itemCode) {
productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode);
}
private WorkstationDO validatorWorkStation(String workshopCode,String productionLineCode,String workStationCode){
if(workStationCode != ""){
return workstationService.selectWorkstationExist(workshopCode, productionLineCode, workStationCode);
}else {
return null;
}
}
private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List<String> inventoryStatus){
jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus);
}
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java

@ -2,11 +2,10 @@ package com.win.module.wms.service.productionreturnRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import javax.validation.Valid;
import java.util.Collection;
@ -25,14 +24,14 @@ public interface ProductionreturnRequestMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createProductionreturnRequestMain(@Valid ProductionreturnRequestMainCreateReqVO createReqVO);
Long createProductionreturnRequestMain(@Valid ProductionreturnRequestMainCreateReqVO createReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO);
/**
* 更新生产退料申请主
*
* @param updateReqVO 更新信息
*/
void updateProductionreturnRequestMain(@Valid ProductionreturnRequestMainUpdateReqVO updateReqVO);
void updateProductionreturnRequestMain(@Valid ProductionreturnRequestMainUpdateReqVO updateReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO);
/**
* 删除生产退料申请主
@ -48,6 +47,7 @@ public interface ProductionreturnRequestMainService {
* @return 生产退料申请主
*/
ProductionreturnRequestMainDO getProductionreturnRequestMain(Long id);
ProductionreturnRequestMainDO getProductionreturnRequestMainToNumber(String number);
/**
* 获得生产退料申请主列表
@ -80,4 +80,6 @@ public interface ProductionreturnRequestMainService {
* @return 分页列表
*/
PageResult<ProductionreturnRequestMainDO> getProductionreturnRequestMainSenior(CustomConditions conditions);
List<ProductionreturnRequestImportErrorVO> importProductionreturnRequestList(List<ProductionreturnRequestMainCreateReqVO> createReqVOList, Integer mode, Boolean updatePart, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO);
}

314
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java

@ -1,24 +1,54 @@
package com.win.module.wms.service.productionreturnRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO;
import com.win.framework.common.util.validation.ValidationUtils;
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.productionreturnRequest.vo.*;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
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.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper;
import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.validation.Validator;
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.PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 生产退料申请主 Service 实现类
@ -31,26 +61,58 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
@Resource
private ProductionreturnRequestMainMapper productionreturnRequestMainMapper;
@Resource
private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private WorkshopService workshopService;
@Resource
private ProductionlineService productionlineService;
@Resource
private ProductionlineitemService productionlineitemService;
@Resource
private WorkstationService workstationService;
@Resource
private JobUtils jobUtils;
@Resource
private Validator validator;
@Resource
private RequestsettingService requestsettingService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private TrendsApi trendsApi;
@Override
public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO) {
@Transactional
public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
// 插入
ProductionreturnRequestMainDO productionreturnRequestMain = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO);
productionreturnRequestMainMapper.insert(productionreturnRequestMain);
ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorToCreate(createReqVO, businesstypeDO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), requestsettingDO.getCode(), "增加了生产退料申请", TrendsTypeEnum.CREATE);
// 返回
return productionreturnRequestMain.getId();
return createReqVO.getId();
}
@Override
public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO) {
@Transactional
public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
// 校验存在
validateProductionreturnRequestMainExists(updateReqVO.getId());
ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.UPDATE);
// 更新
ProductionreturnRequestMainDO updateObj = ProductionreturnRequestMainConvert.INSTANCE.convert(updateReqVO);
productionreturnRequestMainMapper.updateById(updateObj);
}
@Override
@Transactional
public void deleteProductionreturnRequestMain(Long id) {
// 校验存在
validateProductionreturnRequestMainExists(id);
@ -69,6 +131,11 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
return productionreturnRequestMainMapper.selectById(id);
}
@Override
public ProductionreturnRequestMainDO getProductionreturnRequestMainToNumber(String number) {
return productionreturnRequestMainMapper.selectByNumber(number);
}
@Override
public List<ProductionreturnRequestMainDO> getProductionreturnRequestMainList(Collection<Long> ids) {
return productionreturnRequestMainMapper.selectBatchIds(ids);
@ -88,4 +155,227 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
public PageResult<ProductionreturnRequestMainDO> getProductionreturnRequestMainSenior(CustomConditions conditions) {
return productionreturnRequestMainMapper.selectSenior(conditions);
}
@Override
public List<ProductionreturnRequestImportErrorVO> importProductionreturnRequestList(List<ProductionreturnRequestMainCreateReqVO> createReqVOList
, Integer mode, Boolean updatePart,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
if (CollUtil.isEmpty(createReqVOList)) {
throw exception(PRODUCTIONRETURN_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<ProductionreturnRequestImportErrorVO> errorList = new ArrayList<>();
createReqVOList.forEach(createReqVO -> {
ProductionreturnRequestMainDO mainDo = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorProductionreturnRequestMainImport(mainDo,businesstypeDO,requestsettingDO);
List<ProductionreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductionreturnRequestDetailDO> subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorProductionreturnRequestDetailImport(detailDO, mainDo,businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
ProductionreturnRequestImportErrorVO importErrorVO = ProductionreturnRequestMainConvert.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.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now());
productionreturnRequestMainMapper.insert(mainDo);
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
productionreturnRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
// 新增校验
private ProductionreturnRequestMainDO validatorToCreate(ProductionreturnRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
ProductionreturnRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<ProductionreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductionreturnRequestDetailDO> subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList);
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
productionreturnRequestMainMapper.insert(mainDo);
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(mainDo.getNumber());
}
productionreturnRequestDetailMapper.insertBatch(subDOList);
return mainDo;
}
//校验主表公共方法(适用于新增/修改)
private ProductionreturnRequestMainDO validatorMainMethod(ProductionreturnRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){
ProductionreturnRequestMainDO mainDo = ProductionreturnRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo,ProductionreturnRequestMainDO mainDo) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
validatorProductionline(detailDo.getProductionLineCode());
ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode());
detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode());
WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode());
if(workstationDO != null){
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorProductionreturnRequestMainImport(ProductionreturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
StringBuilder message = new StringBuilder();
try {
validatorWorkshop(mainDo.getWorkshopCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorProductionreturnRequestDetailImport(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
this.validatorProductionline(detailDo.getProductionLineCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode());
detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode());
if(workstationDO != null){
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), null, null, detailDo.getFromLocationCode(), inventoryStatus);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private WorkshopDO validatorWorkshop(String workshopCode){
return workshopService.selectWorkshopExist(workshopCode);
}
private void validatorProductionline(String pproductionLineCode){
productionlineService.productionLineCodeExist(pproductionLineCode);
}
private ProductionlineitemDO validatorProductionlineitem(String productionLineCode,String itemCode) {
return productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode);
}
private WorkstationDO validatorWorkStation(String workshopCode,String productionLineCode,String workStationCode){
if(workStationCode != ""){
return workstationService.selectWorkstationExist(workshopCode, productionLineCode, workStationCode);
}else {
return null;
}
}
private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List<String> inventoryStatus){
jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus);
}
}

56
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java

@ -326,7 +326,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
}
List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber,
String batch , String fromLocationCode , List<String> business){
String batch , String fromLocationCode , List<String> business){
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber,
batch,fromLocationCode, business);
return balanceDO;
@ -390,37 +390,37 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
throw exception(PRODUCTPUTAWAY_REQUEST_NOT_EXISTS);
}
List<ProductputawayImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
ProductputawayRequestMainDO mainDo = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateProductputawayRequestMainImport(mainDo, businesstypeDO);
List<ProductputawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList03(subList);
boolean flag = true;
for (ProductputawayRequestDetailDO detailDO : subDOList) {
String messageDetail = validateProductputawayRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) ||!"".equals(messageDetail) ) {
ProductputawayImportErrorVO importErrorVO = ProductputawayRequestMainConvert.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);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
productputawayRequestMainMapper.insert(mainDo);
for (ProductputawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
productputawayRequestDetailMapper.insertBatch(subDOList);
}
});
boolean flag = true;
for (ProductputawayRequestDetailDO detailDO : subDOList) {
String messageDetail = validateProductputawayRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) ||!"".equals(messageDetail) ) {
ProductputawayImportErrorVO importErrorVO = ProductputawayRequestMainConvert.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);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
productputawayRequestMainMapper.insert(mainDo);
for (ProductputawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
productputawayRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java

@ -29,7 +29,7 @@ public interface PurchaseclaimRequestMainService {
*
* @param updateReqVO 更新信息
*/
Integer updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO);
Long updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO);
/**
* 删除采购索赔申请主

363
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

@ -1,14 +1,16 @@
package com.win.module.wms.service.purchaseclaimRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.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.purchaseclaimRequest.vo.*;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
@ -17,9 +19,11 @@ import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO;
import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestDetailMapper;
import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.purchase.PurchaseMainService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
@ -28,7 +32,6 @@ import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMai
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
@ -76,42 +79,42 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
private JobUtils jobUtils;
@Resource
private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override
@Transactional
public Long createPurchaseclaimRequestMain(PurchaseclaimRequestMainCreateReqVO createReqVO) {
// 插入主表
PurchaseclaimRequestMainDO purchaseclaimRequestMain = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
purchaseclaimRequestMain.setNumber(number);
purchaseclaimRequestMainMapper.insert(purchaseclaimRequestMain);
// 插入子表
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(purchaseclaimRequestMain.getId());
detailDO.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
}
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
// 返回
return purchaseclaimRequestMain.getId();
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
return purchaseclaimRequestMainDO.getId();
}
@Override
@Transactional
public Integer updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
public Long updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
// 校验存在,如子表需要也再此校验
validatePurchaseclaimRequestMainExists(updateReqVO.getId());
validatorPurchaseclaimRequestMainExists(updateReqVO.getId());
// 更新主表
PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO);
return purchaseclaimRequestMainMapper.updateById(updateObj);
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
return purchaseclaimRequestMainDO.getId();
}
@Override
@Transactional
public Integer deletePurchaseclaimRequestMain(Long id) {
// 校验存在
validatePurchaseclaimRequestMainExists(id);
validatorPurchaseclaimRequestMainExists(id);
// 删除子表数据
Map<String, Object> map = new HashMap<>();
map.put("master_id", id);
@ -120,11 +123,9 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return purchaseclaimRequestMainMapper.deleteById(id);
}
private void validatePurchaseclaimRequestMainExists(Long id) {
private void validatorPurchaseclaimRequestMainExists(Long id) {
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectById(id);
if (purchaseclaimRequestMainDO == null) {
return;
}else {
throw exception(PURCHASECLAIM_REQUEST_MAIN_EXISTS);
}
}
@ -154,143 +155,207 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return purchaseclaimRequestMainMapper.selectList(exportReqVO);
}
private void selectUomExist(String itemUom,String uom) {
if(itemUom.equals(uom)){
return;
}else {
throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) {
if(shippedQty.add(qty).compareTo(orderQty) > 0){
throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
}
}
@Override
@Transactional
public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PurchaseclaimRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
//主表校验方法
if(mode != null){
try {
validatePurchaseclaimRequestMainExists(null);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
supplierService.selectSupplier(createReqVO.getSupplierCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPurchaseclaimRequestMainImport(mainDo, businesstypeDO);
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorPurchaseclaimRequestDetailImport(detailDO, mainDo);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
PurchaseclaimRequestImportErrorVO importErrorVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
purchaseclaimRequestMainMapper.insert(mainDo);
for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
String messageDetail = "";
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
//子表校验方法
try {
supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(createReqVO.getSupplierCode(),
detailDO.getNumber(), detailDO.getItemCode(), detailDO.getPoNumber(), detailDO.getPoLine());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setProjectCode(itembasicDO.getProject());
try {
selectUomExist(itembasicDO.getUom(), detailDO.getUom());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(detailDO.getNumber(), createReqVO.getSupplierCode()
, detailDO.getItemCode(), detailDO.getPoLine());
try {
ifPlanQtyBigThanOrderQty(detailDO.getPoLine(), purchaseDetailDO.getShippedQty(), detailDO.getQty(), purchaseDetailDO.getOrderQty());
}catch (Exception ex){
messageDetail += ex.getMessage() + ",";
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
ValidationUtils.validate(validator,createReqVO);
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO);
PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if(!messageMain.equals("") || !messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_REQUEST.getCode());
createReqVO.setNumber(number);
}
}
if(errorList.isEmpty()){
// 判断如果不存在,在进行插入
PurchaseclaimRequestMainDO existPurchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectByAsnNumberAndSupplierCode(createReqVO.getAsnNumber(), createReqVO.getSupplierCode());
if(existPurchaseclaimRequestMainDO == null && mode != 3){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest");
if(businesstypeDO != null){
createReqVO.setBusinessType(businesstypeDO.getCode());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.insert(createObj);
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
}
else if(existPurchaseclaimRequestMainDO != null && mode != 2){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest");
if(businesstypeDO != null){
createReqVO.setBusinessType(businesstypeDO.getCode());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.updateById(createObj);
purchaseclaimRequestDetailMapper.updateBatch(subDOList);
}
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
}
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validatorSupplier(String SupplierCode){
supplierService.selectSupplier(SupplierCode);
}
private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode,String poLine){
return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine);
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void selectUomExist(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine){
return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode,pasnNumber,pitemCode,ppoNumber,ppoLine);
}
private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) {
if(shippedQty.add(qty).compareTo(orderQty) > 0){
throw exception(QTY_EXCEPTION,"订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
}
}
//新增校验
private PurchaseclaimRequestMainDO validatorToCreate(PurchaseclaimRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
purchaseclaimRequestMainDO.setNumber(number);
purchaseclaimRequestMainMapper.insert(purchaseclaimRequestMainDO);
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//修改校验
private PurchaseclaimRequestMainDO validatorToUpdate(PurchaseclaimRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<PurchaseclaimRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList05(subList);
for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO);
}
purchaseclaimRequestMainMapper.updateById(purchaseclaimRequestMainDO);
purchaseclaimRequestDetailMapper.updateBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//校验主表公共方法(适用于新增/修改)
private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(baseVO);
this.validatorSupplier(mainDo.getSupplierCode());
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseclaimRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo,PurchaseclaimRequestMainDO mainDo) {
validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), mainDo.getAsnNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine());
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
this.selectUomExist(itembasicDO.getUom(), detailDo.getUom());
PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty());
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPurchaseclaimRequestMainImport(PurchaseclaimRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
this.validatorSupplier(mainDo.getSupplierCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
if (requestsettingDO == null) {
message.append("未查找到采购索赔申请的相关申请设置");
} else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseclaimRequest");
if (businesstypeDO == null) {
message.append("根据单据设置未查找到采购索赔申请的相关业务类型");
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPurchaseclaimRequestDetailImport(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
if(!"".equals(mainDo.getAsnNumber())){
validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), detailDo.getNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine());
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
try {
this.selectUomExist(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
try {
ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty());
}catch (Exception ex){
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java

@ -102,8 +102,10 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco
public PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode,String pNumber,String ppoLine,String pitemCode){
QueryWrapper queryWrapperMain = new QueryWrapper();
queryWrapperMain.eq("number",pNumber);
queryWrapperMain.eq("supplier_code",psupplierCode);
queryWrapperMain.eq("available","TRUE");
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapperMain);
if(purchasereceiptRecordMainDO != null && "TRUE".equals(purchasereceiptRecordMainDO.getAvailable()) && purchasereceiptRecordMainDO.getSupplierCode().equals(psupplierCode)){
if(purchasereceiptRecordMainDO != null){
QueryWrapper queryWrapperDetail = new QueryWrapper();
queryWrapperDetail.eq("po_number",ppoNumber);
queryWrapperDetail.eq("po_line",ppoLine);

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java

@ -4,10 +4,7 @@ import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import com.win.framework.common.pojo.PageResult;
@ -77,5 +74,14 @@ public interface PurchasereturnRequestMainService {
* @return 采购退货申请主列表
*/
List<PurchasereturnRequestMainDO> getPurchasereturnRequestMainList(PurchasereturnRequestMainExportReqVO exportReqVO);
/**
* 批量导入采购退货申请主信息
*
* @param datas 导入采购索赔申请主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<PurchasereturnRequestImportErrorVO> importPurchasereturnRequestList(List<PurchasereturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

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

@ -1,14 +1,41 @@
package com.win.module.wms.service.purchasereturnRequest;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO;
import com.win.framework.common.util.validation.ValidationUtils;
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.dict.DictDataApi;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert;
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.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper;
import com.win.module.wms.dal.mysql.purchasereturnRequest.PurchasereturnRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService;
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 javax.validation.Validator;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
@ -32,22 +59,62 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
@Resource
private PurchasereturnRequestMainMapper purchasereturnRequestMainMapper;
@Resource
private PurchasereturnRequestDetailMapper purchasereturnRequestDetailMapper;
@Resource
private Validator validator;
@Resource
private ItembasicService itembasicService;
@Resource
private DictDataApi dictDataApi;
@Resource
private JobUtils jobUtils;
@Resource
private PurchasereceiptRecordMainService purchasereceiptRecordMainService;
@Resource
private PurchasereceiptRecordMainMapper purchasereceiptRecordMainMapper;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Resource
private LocationService locationService;
@Resource
private TrendsApi trendsApi;
@Override
public Long createPurchasereturnRequestMain(PurchasereturnRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
// 插入
PurchasereturnRequestMainDO purchasereturnRequestMain = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO);
purchasereturnRequestMainMapper.insert(purchasereturnRequestMain);
PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE);
// 返回
return purchasereturnRequestMain.getId();
}
@Override
public void updatePurchasereturnRequestMain(PurchasereturnRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
// 校验存在
validatePurchasereturnRequestMainExists(updateReqVO.getId());
// 更新
PurchasereturnRequestMainDO updateObj = PurchasereturnRequestMainConvert.INSTANCE.convert(updateReqVO);
purchasereturnRequestMainMapper.updateById(updateObj);
// 更新主表
PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE);
}
@Override
public PageResult<PurchasereturnRequestMainDO> getPurchasereturnRequestMainSenior(CustomConditions conditions) {
@ -87,4 +154,266 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
return purchasereturnRequestMainMapper.selectList(exportReqVO);
}
@Override
public List<PurchasereturnRequestImportErrorVO> importPurchasereturnRequestList(List<PurchasereturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASERETURN_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PurchasereturnRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPurchasereturnRequestMainImport(mainDo);
List<PurchasereturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (PurchasereturnRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorPurchasereturnRequestDetailImport(detailDO, mainDo,businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
PurchasereturnRequestImportErrorVO importErrorVO = PurchasereturnRequestMainConvert.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.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setPpNumber(purchasereceiptRecordMainDO.getPpNumber());
mainDo.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber());
mainDo.setRequestTime(LocalDateTime.now());
purchasereturnRequestMainMapper.insert(mainDo);
for (PurchasereturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
detailDO.setToLocationCode("PUR_INTRANSIT");
}
purchasereturnRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private void ifdetailQtyBigThanQty(BigDecimal detailQty, BigDecimal qty) {
if(detailQty.compareTo(qty) > 0){
throw exception(QTY_EXCEPTION,"退货数量"+ qty + "不能大于于收货数量" + detailQty);
}
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void validatorIfInType(String itemType,BusinesstypeDO businesstypeDO){
jobUtils.ifInType(itemType, businesstypeDO);
}
private void validatorIfInToLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){
jobUtils.ifInToLocationType(fromLocationCode, businesstypeDO);
}
private void validatorLocation(String fromLocationCode){
locationService.selectLocation(fromLocationCode);
}
private void requestsettingAndBusinesstypeSet(PurchasereturnRequestMainDO mainDo) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
private BigDecimal validatorBalance(PurchasereturnRequestDetailDO detailDo,PurchasereturnRequestMainDO mainDO){
ArrayList inventoryStatus = new ArrayList();
inventoryStatus.add(detailDo.getInventoryStatus());
BigDecimal bigDecimal = new BigDecimal(0);
List<BalanceDO> banlance = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
if(banlance != null) {
for (BalanceDO balanceDO : banlance) {
bigDecimal = bigDecimal.add(balanceDO.getQty());
mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
}
}
return bigDecimal;
}
// 新增校验
private PurchasereturnRequestMainDO validatorToCreate(PurchasereturnRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorMainMethod(createReqVO,purchasereceiptRecordMainDO);
//子表校验
List<PurchasereturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : subDOList) {
validatorDetailMethod(purchasereturnRequestDetailDO,purchasereturnRequestMainDO,purchasereceiptRecordMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
purchasereturnRequestMainDO.setNumber(number);
purchasereturnRequestMainDO.setPpNumber(purchasereceiptRecordMainDO.getPpNumber());
purchasereturnRequestMainDO.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber());
purchasereturnRequestMainDO.setRequestTime(LocalDateTime.now());
purchasereturnRequestMainMapper.insert(purchasereturnRequestMainDO);
purchasereturnRequestDetailMapper.insertBatch(subDOList);
return purchasereturnRequestMainDO;
}
//修改校验
private PurchasereturnRequestMainDO validatorToUpdate(PurchasereturnRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
PurchasereturnRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,purchasereceiptRecordMainDO);
//子表校验
List<PurchasereturnRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList05(subList);
for (PurchasereturnRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO,purchasereceiptRecordMainDO);
}
purchasereturnRequestMainMapper.updateById(purchaseclaimRequestMainDO);
purchasereturnRequestDetailMapper.updateBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//校验主表公共方法(适用于新增/修改)
private PurchasereturnRequestMainDO validatorMainMethod(PurchasereturnRequestMainBaseVO baseVO,PurchasereceiptRecordMainDO purchasereceiptRecordMainDO){
PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(baseVO);
requestsettingAndBusinesstypeSet(mainDo);
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchasereturnRequestDetailDO detailDo,PurchasereturnRequestMainDO mainDo,PurchasereceiptRecordMainDO purchasereceiptRecordMainDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
validatorLocation(detailDo.getFromLocationCode());
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("id", purchasereceiptRecordDetailDO.getMasterId());
purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapper);
ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty());
BigDecimal bigDecimal = validatorBalance(detailDo,mainDo);
ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal);
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPurchasereturnRequestMainImport(PurchasereturnRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
if (requestsettingDO == null) {
message.append("未查找到采购退货申请的相关申请设置");
}
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest");
if (businesstypeDO == null) {
message.append("根据单据设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPurchasereturnRequestDetailImport(PurchasereturnRequestDetailDO detailDo, PurchasereturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
this.validatorIfInType(itembasicDO.getType(), businesstypeDO);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
validatorLocation(detailDo.getFromLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("id", purchasereceiptRecordDetailDO.getMasterId());
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapper);
try {
ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
BigDecimal bigDecimal = validatorBalance(detailDo,mainDo);
try{
ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java

@ -2,10 +2,7 @@ package com.win.module.wms.service.putawayRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExportReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainPageReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
import com.win.framework.common.pojo.PageResult;
@ -78,4 +75,6 @@ public interface PutawayRequestMainService {
*/
List<PutawayRequestMainDO> getPutawayRequestMainList(PutawayRequestMainExportReqVO exportReqVO);
public List<PutawayRequestImportErrorVO> importPutawayRequestList(List<PutawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

301
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java

@ -1,14 +1,38 @@
package com.win.module.wms.service.putawayRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExportReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainPageReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO;
import com.win.framework.common.util.validation.ValidationUtils;
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.putawayRequest.vo.*;
import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert;
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.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.putawayRequest.PutawayRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.customer.CustomerService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.purchase.PurchaseMainService;
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 javax.validation.Validator;
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.putawayRequest.PutawayRequestMainDO;
@ -31,26 +55,60 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService
@Resource
private PutawayRequestMainMapper putawayRequestMainMapper;
@Resource
private PutawayRequestDetailMapper putawayRequestDetailMapper;
@Resource
private Validator validator;
@Resource
private ItembasicService itembasicService;
@Resource
private PurchaseMainService purchaseMainService;
@Resource
private LocationService locationService;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Resource
private CustomerService customerService;
@Resource
private TrendsApi trendsApi;
//TODO 主表从仓库代码,到仓库代码暂未赋值
@Override
@Transactional
public Long createPutawayRequestMain(PutawayRequestMainCreateReqVO createReqVO) {
// 插入
PutawayRequestMainDO putawayRequestMain = PutawayRequestMainConvert.INSTANCE.convert(createReqVO);
putawayRequestMainMapper.insert(putawayRequestMain);
// 返回
return putawayRequestMain.getId();
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest");
PutawayRequestMainDO putawayRequestMainDO = validatorToCreate(createReqVO, businesstypeDO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(putawayRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PutawayRequest", "增加了上架申请", TrendsTypeEnum.CREATE);
return putawayRequestMainDO.getId();
}
@Override
@Transactional
public void updatePutawayRequestMain(PutawayRequestMainUpdateReqVO updateReqVO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest");
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest");
// 校验存在
validatePutawayRequestMainExists(updateReqVO.getId());
// 更新
PutawayRequestMainDO updateObj = PutawayRequestMainConvert.INSTANCE.convert(updateReqVO);
putawayRequestMainMapper.updateById(updateObj);
PutawayRequestMainDO putawayRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO,requestsettingDO);
if(putawayRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode())) {
throw exception(PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW);
}
trendsApi.createTrends(updateReqVO.getId(), "PutawayRequestMain", putawayRequestMainDO.toString(), TrendsTypeEnum.UPDATE);
putawayRequestMainMapper.updateById(putawayRequestMainDO);
}
@Override
@Transactional
public void deletePutawayRequestMain(Long id) {
// 校验存在
validatePutawayRequestMainExists(id);
@ -88,4 +146,225 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService
return putawayRequestMainMapper.selectList(exportReqVO);
}
@Override
@Transactional
public List<PutawayRequestImportErrorVO> importPutawayRequestList(List<PutawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PUTAWAY_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PutawayRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest");
PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPutawayRequestMainImport(mainDo,businesstypeDO);
List<PutawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PutawayRequestDetailDO> subDOList = PutawayRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (PutawayRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorPutawayRequestDetailImport(detailDO, mainDo,businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
PutawayRequestImportErrorVO importErrorVO = PutawayRequestMainConvert.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.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now());
putawayRequestMainMapper.insert(mainDo);
for (PutawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
putawayRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
// 新增校验
private PutawayRequestMainDO validatorToCreate(PutawayRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
PutawayRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<PutawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PutawayRequestDetailDO> subDOList = PutawayRequestDetailConvert.INSTANCE.convertList03(subList);
for (PutawayRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo,businesstypeDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
putawayRequestMainMapper.insert(mainDo);
for (PutawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
putawayRequestDetailMapper.insertBatch(subDOList);
return mainDo;
}
//校验主表公共方法(适用于新增/修改)
private PutawayRequestMainDO validatorMainMethod(PutawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){
PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PutawayRequestDetailDO detailDo,PutawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.validatorPurchaseDetailDo(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
validatorLocation(detailDo.getFromLocationCode());
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPutawayRequestMainImport(PutawayRequestMainDO mainDo,BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest");
if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPutawayRequestDetailImport(PutawayRequestDetailDO detailDo, PutawayRequestMainDO mainDo,BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorIfInType(itembasicDO.getType(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
this.validatorPurchaseDetailDo(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorLocation(detailDo.getFromLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode, String poLine){
return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine);
}
private LocationDO validatorLocation(String fromLocationCode){
return locationService.selectLocation(fromLocationCode);
}
private void validatorIfInType(String type, BusinesstypeDO businesstypeDO){
jobUtils.ifInType(type, businesstypeDO);
}
private void validatorIfOutInventoryStatuses(String inventoryStatus,BusinesstypeDO businesstypeDO){
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO);
}
private void validatorIfInToLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){
jobUtils.ifInType(fromLocationCode, businesstypeDO);
}
private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String fromLocationCode,List<String> inventoryStatus){
jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber,batch,fromLocationCode,inventoryStatus);
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java

@ -11,8 +11,6 @@ import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.workshop.vo.*;
import com.win.module.wms.convert.workshop.WorkshopConvert;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
import com.win.module.wms.dal.mysql.workshop.WorkshopMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@ -188,8 +186,9 @@ public class WorkshopServiceImpl implements WorkshopService {
public WorkshopDO selectWorkshopExist(String pcode){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",pcode);
queryWrapper.eq("available","TRUE");
WorkshopDO workshopDO = workshopMapper.selectOne(queryWrapper);
if(workshopDO != null && "TRUE".equals(workshopDO.getAvailable())){
if(workshopDO != null){
return workshopDO;
}else {
throw exception(WORKSHOP_NOT_EXISTS);

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java

@ -218,11 +218,12 @@ public class WorkstationServiceImpl implements WorkstationService {
queryWrapperWorkstation.eq("code",pcode);
queryWrapperWorkstation.eq("workshop_code",pworkshopCode);
queryWrapperWorkstation.eq("production_line_code",pproductionLineCode);
queryWrapperWorkstation.eq("available","TRUE");
WorkstationDO workstationDO = workstationMapper.selectOne(queryWrapperWorkstation);
if(workstationDO != null && "TRUE".equals(workstationDO.getAvailable())){
if(workstationDO != null){
return workstationDO;
}else {
throw new UtilException( "车间" + pworkshopCode + "生产线" + pproductionLineCode + "工位" + pcode + "无效");
throw exception(WORKSTATION_RELATION_ERROR, "车间" + pworkshopCode + "生产线" + pproductionLineCode + "工位" + pcode + "无效");
}
}
@Override
@ -230,8 +231,9 @@ public class WorkstationServiceImpl implements WorkstationService {
QueryWrapper queryWrapperWorkstation = new QueryWrapper();
queryWrapperWorkstation.eq("code",pcode);
queryWrapperWorkstation.eq("pruction_line_code",pructionLineCode);
queryWrapperWorkstation.eq("available","TRUE");
WorkstationDO workstationDO = workstationMapper.selectOne(queryWrapperWorkstation);
if(workstationDO != null && "TRUE".equals(workstationDO.getAvailable())){
if(workstationDO != null){
return true;
}else {
throw exception(WORKSTATION_PRODUECTION_LINE_CODE_AND_WORKSTATION_RELATION_ERROR);

Loading…
Cancel
Save