Browse Source

完成检验申请功能。

master
刘忱 2 years ago
parent
commit
d1f117a63c
  1. 5
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 18
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 72
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestDetailController.java
  4. 98
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java
  5. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailBaseVO.java
  6. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailExcelVO.java
  7. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailExportReqVO.java
  8. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailPageReqVO.java
  9. 73
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java
  10. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestDetailController.java
  11. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java
  12. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestDetailConvert.java
  13. 22
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestMainConvert.java
  14. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestDetailDO.java
  15. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectJob/InspectJobMainMapper.java
  16. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestDetailMapper.java
  17. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java
  18. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestDetailService.java
  19. 120
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestDetailServiceImpl.java
  20. 47
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java
  21. 112
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java
  22. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

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

@ -65,9 +65,10 @@ public interface DictTypeConstants {
String CARRIER_TYPE = "carrier_type";//承运商类型
String INVENTORY_STATUS = "inventory_status";//库存状态
String REQUEST_STATUS = "request_status";//请求状态
String PURCHASE_RETURN_REASON = "purchase_return_reason";//原因
String TRANSFER_MODE = "transfer_mode";//运输方式
String FAILED_REASON = "failed_reason";//采购收货不合格原因
String INSPECT_TYPE = "inspect_type";//检验类型
String NEXT_ACTION = "next_action";//下一步检验动作
String SAMPLE_METHOD = "sample_method";//抽检方式
}

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

@ -424,7 +424,11 @@ public interface ErrorCodeConstants {
ErrorCode PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_073_002, "采购收货任务状态错误");
ErrorCode PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_073_003, "采购收货不是新增状态");
ErrorCode PURCHASERECEIPT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_073_004, "采购收货存在采购收货任务单");
ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_073_004, "采购收货状态不支持关闭");
ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_073_005, "采购收货状态不支持关闭");
ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_073_006, "采购收货状态不支持提交");
ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_073_007, "采购收货状态不支持审批同意");
ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_073_008, "采购收货状态不支持处理");
ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_073_009, "采购收货状态不支持审批拒绝");
//采购收货任务子ErrorCode
ErrorCode PURCHASERECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_074_000, "采购收货记录主不存在");
ErrorCode PURCHASERECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_074_001, "采购收货记录子不存在");
@ -445,10 +449,16 @@ public interface ErrorCodeConstants {
//采购退货记录子ErrorCode
ErrorCode PURCHASERETURN_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_077_001, "采购退货记录子不存在");
//检验申请主ErrorCode
ErrorCode INSPECT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_078_000, "检验申请主不存在");
ErrorCode INSPECT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_078_000, "到货检验申请主不存在");
//检验申请子ErrorCode
ErrorCode INSPECT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_078_001, "检验申请子不存在");
ErrorCode INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_078_002, "检验申请导入数据不能为空");
ErrorCode INSPECT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_078_001, "到货检验申请子不存在");
ErrorCode INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_078_002, "到货检验申请导入数据不能为空");
ErrorCode INSPECT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_078_003, "到货检验申请存在采购收货任务单");
ErrorCode INSPECT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_078_004, "到货检验申请状态不支持关闭");
ErrorCode INSPECT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_078_005, "到货检验申请状态不支持提交");
ErrorCode INSPECT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_078_006, "到货检验申请状态不支持审批同意");
ErrorCode INSPECT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_078_007, "到货检验申请状态不支持处理");
ErrorCode INSPECT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_078_008, "到货检验申请状态不支持审批拒绝");
//检验任务主ErrorCode
ErrorCode INSPECT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_079_000, "检验任务主不存在");
//检验任务子ErrorCode

72
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestDetailController.java

@ -1,35 +1,29 @@
package com.win.module.wms.controller.inspectRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailPageReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailRespVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailUpdateReqVO;
import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.service.inspectRequest.InspectRequestDetailService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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 javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import javax.annotation.Resource;
import javax.validation.Valid;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert;
import com.win.module.wms.service.inspectRequest.InspectRequestDetailService;
@Tag(name = "管理后台 - 检验申请子")
@RestController
@RequestMapping("/wms/inspect-request-detail")
@ -53,8 +47,8 @@ public class InspectRequestDetailController {
@Operation(summary = "更新检验申请子")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-detail:update')")
public CommonResult<Boolean> updateInspectRequestDetail(@Valid @RequestBody InspectRequestDetailUpdateReqVO updateReqVO) {
inspectRequestDetailService.updateInspectRequestDetail(updateReqVO);
return success(true);
int result = inspectRequestDetailService.updateInspectRequestDetail(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@ -62,8 +56,8 @@ public class InspectRequestDetailController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-detail:delete')")
public CommonResult<Boolean> deleteInspectRequestDetail(@RequestParam("id") Long id) {
inspectRequestDetailService.deleteInspectRequestDetail(id);
return success(true);
int result = inspectRequestDetailService.deleteInspectRequestDetail(id);
return success(result > 0);
}
@GetMapping("/get")
@ -75,15 +69,6 @@ public class InspectRequestDetailController {
return success(InspectRequestDetailConvert.INSTANCE.convert(inspectRequestDetail));
}
@GetMapping("/list")
@Operation(summary = "获得检验申请子列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-detail:query')")
public CommonResult<List<InspectRequestDetailRespVO>> getInspectRequestDetailList(@RequestParam("ids") Collection<Long> ids) {
List<InspectRequestDetailDO> list = inspectRequestDetailService.getInspectRequestDetailList(ids);
return success(InspectRequestDetailConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得检验申请子分页")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-detail:query')")
@ -106,21 +91,4 @@ public class InspectRequestDetailController {
return success(result);
}
@GetMapping("/export-excel")
@Operation(summary = "导出检验申请子 Excel")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-detail:export')")
@OperateLog(type = EXPORT)
public void exportInspectRequestDetailExcel(@Valid InspectRequestDetailExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<InspectRequestDetailDO> list = inspectRequestDetailService.getInspectRequestDetailList(exportReqVO);
// 导出 Excel
List<InspectRequestDetailExcelVO> datas = InspectRequestDetailConvert.INSTANCE.convertList02(list);
for(InspectRequestDetailExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "检验申请子.xls", "数据", InspectRequestDetailExcelVO.class, datas);
}
}

98
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java

@ -11,8 +11,10 @@ import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inspectRequest.InspectRequestDetailService;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -43,6 +45,8 @@ public class InspectRequestMainController {
@Resource
private InspectRequestMainService inspectRequestMainService;
@Resource
private InspectRequestDetailService inspectRequestDetailService;
@Resource
private AdminUserApi userApi;
@PostMapping("/create")
@ -107,21 +111,57 @@ public class InspectRequestMainController {
}
return success(result);
}
@GetMapping("/export-excel")
@Operation(summary = "导出检验申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:export')")
@OperateLog(type = EXPORT)
public void exportInspectRequestMainExcel(@Valid InspectRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
public void exportInspectRequestMainExcel(@Valid InspectRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<InspectRequestMainDO> list = inspectRequestMainService.getInspectRequestMainList(exportReqVO);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InspectRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "到货检验申请主.xls", "检验申请信息列表", InspectRequestMainExcelVO.class, resultList, mapDropDown);
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出检验申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:export')")
@OperateLog(type = EXPORT)
public void exportInspectRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<InspectRequestMainDO> list = inspectRequestMainService.getInspectRequestMainList(conditions);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InspectRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "到货检验申请主.xls", "检验申请信息列表", InspectRequestMainExcelVO.class, resultList, mapDropDown);
}
private List<InspectRequestMainExcelVO> getExcelVo(List<InspectRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(6, locationType);
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(11, requestStatus);
String[] inspectType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INSPECT_TYPE);
mapDropDown.put(15, inspectType);
String[] nextAction = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.NEXT_ACTION);
mapDropDown.put(16, nextAction);
String[] sampleMethod = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.SAMPLE_METHOD);
mapDropDown.put(17, sampleMethod);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(18, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(28, inventoryStatus);
// 导出 Excel
List<InspectRequestMainExcelVO> datas = InspectRequestMainConvert.INSTANCE.convertList02(list);
for(InspectRequestMainExcelVO vo : datas) {
List<InspectRequestMainExcelVO> resultList = new ArrayList<>();
for(InspectRequestMainDO mainDO : list) {
List<InspectRequestDetailDO> subList = inspectRequestDetailService.selectList(mainDO.getId());
for(InspectRequestDetailDO detailDO : subList) {
InspectRequestMainExcelVO vo = InspectRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
resultList.add(vo);
}
}
ExcelUtils.write(response, "检验申请主.xls", "数据", InspectRequestMainExcelVO.class, datas);
return resultList;
}
@GetMapping("/get-import-template")
@ -158,9 +198,55 @@ public class InspectRequestMainController {
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);
String url = ExcelUtils.writeLocalFile("到货检验申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
@PutMapping("/close")
@Operation(summary = "关闭到货检验申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:close')")
public CommonResult<Boolean> closeInspectRequestMain(@RequestParam("id") Long id) {
Integer count = inspectRequestMainService.closeInspectRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交到货检验申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:submit')")
public CommonResult<Boolean> submitInspectRequestMain(@RequestParam("id") Long id) {
Integer count = inspectRequestMainService.submitInspectRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过到货检验申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:agree')")
public CommonResult<Boolean> agreeInspectRequestMain(@RequestParam("id") Long id) {
Integer count = inspectRequestMainService.agreeInspectRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "执行到货检验申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:handle')")
public CommonResult<Boolean> handleInspectRequestMain(@RequestParam("id") Long id) {
Integer count = inspectRequestMainService.handleInspectRequestMain(id);
return success(count > 0);
}
@PutMapping("/abort")
@Operation(summary = "审批拒绝到货检验申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:abort')")
public CommonResult<Boolean> abortInspectRequestMain(@RequestParam("id") Long id) {
Integer count = inspectRequestMainService.abortInspectRequestMain(id);
return success(count > 0);
}
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailBaseVO.java

@ -1,13 +1,13 @@
package com.win.module.wms.controller.inspectRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import javax.validation.constraints.*;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
@ -20,6 +20,10 @@ public class InspectRequestDetailBaseVO {
@Schema(description = "id", example = "id")
private Long id;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
private String number;
@Schema(description = "包装号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "包装号不能为空")
private String packingNumber;
@ -27,6 +31,9 @@ public class InspectRequestDetailBaseVO {
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "主表ID")
private Long masterId;
@Schema(description = "库存状态")
private String inventoryStatus;

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailExcelVO.java

@ -1,15 +1,13 @@
package com.win.module.wms.controller.inspectRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@ -20,12 +18,18 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class InspectRequestDetailExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("主表ID")
private Long masterId;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailExportReqVO.java

@ -1,13 +1,11 @@
package com.win.module.wms.controller.inspectRequest.vo;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -15,12 +13,18 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@Data
public class InspectRequestDetailExportReqVO {
@Schema(description = "单据号")
private String number;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "主表ID")
private Long masterId;
@Schema(description = "库存状态")
private String inventoryStatus;

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestDetailPageReqVO.java

@ -1,12 +1,13 @@
package com.win.module.wms.controller.inspectRequest.vo;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -17,12 +18,18 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@ToString(callSuper = true)
public class InspectRequestDetailPageReqVO extends PageParam {
@Schema(description = "单据号")
private String number;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "主表ID")
private Long masterId;
@Schema(description = "库存状态")
private String inventoryStatus;

73
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java

@ -1,8 +1,10 @@
package com.win.module.wms.controller.inspectRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.Data;
import java.math.BigDecimal;
@ -36,18 +38,12 @@ public class InspectRequestMainExcelVO {
private String fromAreaCodes;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String fromLocationTypes;
@ExcelProperty("备注")
private String remark;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
private String creator;
@ExcelProperty("申请时间")
private LocalDateTime requestTime;
@ -58,15 +54,9 @@ public class InspectRequestMainExcelVO {
private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.REQUEST_STATUS)
private String status;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
private String updater;
@ExcelProperty("订单号")
private String poNumber;
@ -76,23 +66,20 @@ public class InspectRequestMainExcelVO {
@ExcelProperty("批次")
private String batch;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty(value = "检验类型", converter = DictConvert.class)
@DictFormat("inspect_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.INSPECT_TYPE)
private String inspectType;
@ExcelProperty(value = "下一步检验动作", converter = DictConvert.class)
@DictFormat("next_action") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.NEXT_ACTION)
private String nextAction;
@ExcelProperty(value = "抽检方式", converter = DictConvert.class)
@DictFormat("sample_method") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.SAMPLE_METHOD)
private String sampleMethod;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("收货数量")
@ -116,4 +103,48 @@ public class InspectRequestMainExcelVO {
@ExcelProperty("直接生成记录")
private String directCreateRecord;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("创建时间")
@ColumnWidth(value = 16)
private LocalDateTime createTime;
@ExcelProperty("创建者ID")
private String creator;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
private String updater;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestDetailController.java

@ -61,8 +61,8 @@ public class PurchasereceiptRequestDetailController {
@Operation(summary = "更新采购收货申请子")
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-detail:update')")
public CommonResult<Boolean> updatePurchasereceiptRequestDetail(@Valid @RequestBody PurchasereceiptRequestDetailUpdateReqVO updateReqVO) {
purchasereceiptRequestDetailService.updatePurchasereceiptRequestDetail(updateReqVO);
return success(true);
int result = purchasereceiptRequestDetailService.updatePurchasereceiptRequestDetail(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@ -70,8 +70,8 @@ public class PurchasereceiptRequestDetailController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-detail:delete')")
public CommonResult<Boolean> deletePurchasereceiptRequestDetail(@RequestParam("id") Long id) {
purchasereceiptRequestDetailService.deletePurchasereceiptRequestDetail(id);
return success(true);
int result = purchasereceiptRequestDetailService.deletePurchasereceiptRequestDetail(id);
return success(result > 0);
}
@GetMapping("/get")

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java

@ -161,11 +161,14 @@ public class PurchasereceiptRequestMainController {
List<PurchasereceiptRequestDetailDO> subList = purchasereceiptRequestDetailService.selectList(mainDO.getId());
for(PurchasereceiptRequestDetailDO detailDO : subList) {
PurchasereceiptRequestMainExcelVO vo = PurchasereceiptRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入采购收货申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestDetailConvert.java

@ -1,16 +1,15 @@
package com.win.module.wms.convert.inspectRequest;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import java.util.List;
/**
* 检验申请子 Convert
@ -40,6 +39,7 @@ public interface InspectRequestDetailConvert {
List<InspectRequestDetailDO> convertList05(List<InspectRequestDetailUpdateReqVO> subList);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),

22
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestMainConvert.java

@ -1,13 +1,15 @@
package com.win.module.wms.convert.inspectRequest;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import java.util.List;
/**
* 检验申请主 Convert
@ -32,4 +34,16 @@ public interface InspectRequestMainConvert {
List<InspectRequestMainExcelVO> convertList02(List<InspectRequestMainDO> list);
InspectRequestMainDO convert(InspectRequestMainBaseVO baseVO);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.uom", target = "uom"),
@Mapping(source = "detailDO.itemCode", target = "itemCode"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
InspectRequestMainExcelVO convert(InspectRequestMainDO mainDO, InspectRequestDetailDO detailDO);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestDetailDO.java

@ -1,11 +1,12 @@
package com.win.module.wms.dal.dataobject.inspectRequest;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
/**
* 检验申请子 DO
@ -26,6 +27,10 @@ public class InspectRequestDetailDO extends BaseDO {
*/
@TableId
private Long id;
/**
* 单据号
*/
private String number;
/**
* 包装号
*/

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectJob/InspectJobMainMapper.java

@ -1,19 +1,20 @@
package com.win.module.wms.dal.mysql.inspectJob;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inspectJob.vo.InspectJobMainExportReqVO;
import com.win.module.wms.controller.inspectJob.vo.InspectJobMainPageReqVO;
import com.win.module.wms.controller.inspectJob.vo.InspectJobMainRespVO;
import com.win.module.wms.dal.dataobject.inspectJob.InspectJobMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
import java.util.Collection;
import java.util.List;
/**
* 检验任务主 Mapper
*
@ -78,6 +79,12 @@ public interface InspectJobMainMapper extends BaseMapperX<InspectJobMainDO> {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
default Long selectByRequestNumber(String requestNumber) {
return selectCount(new LambdaQueryWrapperX<InspectJobMainDO>()
.eq(InspectJobMainDO::getRequestNumber, requestNumber)
.ne(InspectJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
default List<InspectJobMainDO> selectList(InspectJobMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InspectJobMainDO>()
.eqIfPresent(InspectJobMainDO::getRequestNumber, reqVO.getRequestNumber())

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestDetailMapper.java

@ -1,17 +1,17 @@
package com.win.module.wms.dal.mysql.inspectRequest;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailExportReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 检验申请子 Mapper
*
@ -60,4 +60,9 @@ public interface InspectRequestDetailMapper extends BaseMapperX<InspectRequestDe
.orderByDesc(InspectRequestDetailDO::getId));
}
default List<InspectRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<InspectRequestDetailDO>()
.eq(InspectRequestDetailDO::getMasterId, masterId));
}
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java

@ -1,18 +1,17 @@
package com.win.module.wms.dal.mysql.inspectRequest;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainExportReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 检验申请主 Mapper
*
@ -98,4 +97,9 @@ public interface InspectRequestMainMapper extends BaseMapperX<InspectRequestMain
default InspectRequestMainDO selectPurchaseReceiptNumber(String purchaseReceiptRecordNumber) {
return selectOne(InspectRequestMainDO::getPurchaseReceiptRecordNumber, purchaseReceiptRecordNumber);
}
default List<InspectRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
}

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestDetailService.java

@ -1,15 +1,14 @@
package com.win.module.wms.service.inspectRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailExportReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailPageReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.framework.common.pojo.PageResult;
import javax.validation.Valid;
import java.util.List;
/**
* 检验申请子 Service 接口
@ -31,14 +30,14 @@ public interface InspectRequestDetailService {
*
* @param updateReqVO 更新信息
*/
void updateInspectRequestDetail(@Valid InspectRequestDetailUpdateReqVO updateReqVO);
int updateInspectRequestDetail(@Valid InspectRequestDetailUpdateReqVO updateReqVO);
/**
* 删除检验申请子
*
* @param id 编号
*/
void deleteInspectRequestDetail(Long id);
int deleteInspectRequestDetail(Long id);
/**
* 获得检验申请子
@ -51,10 +50,10 @@ public interface InspectRequestDetailService {
/**
* 获得检验申请子列表
*
* @param ids 编号
* @param masterId 父id
* @return 检验申请子列表
*/
List<InspectRequestDetailDO> getInspectRequestDetailList(Collection<Long> ids);
List<InspectRequestDetailDO> selectList(Long masterId);
/**
* 获得检验申请子分页
@ -72,13 +71,4 @@ public interface InspectRequestDetailService {
*/
PageResult<InspectRequestDetailDO> getInspectRequestDetailSenior(CustomConditions conditions);
/**
* 获得检验申请子列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 检验申请子列表
*/
List<InspectRequestDetailDO> getInspectRequestDetailList(InspectRequestDetailExportReqVO exportReqVO);
}

120
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestDetailServiceImpl.java

@ -1,24 +1,34 @@
package com.win.module.wms.service.inspectRequest;
import cn.hutool.core.exceptions.UtilException;
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.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailExportReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailPageReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailUpdateReqVO;
import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_DETAIL_NOT_EXISTS;
/**
* 检验申请子 Service 实现类
@ -31,37 +41,57 @@ public class InspectRequestDetailServiceImpl implements InspectRequestDetailServ
@Resource
private InspectRequestDetailMapper inspectRequestDetailMapper;
@Resource
private InspectRequestMainMapper inspectRequestMainMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private DictDataApi dictDataApi;
@Resource
private JobUtils jobUtils;
@Resource
private LocationService locationService;
@Resource
private TrendsApi trendsApi;
@Override
public Long createInspectRequestDetail(InspectRequestDetailCreateReqVO createReqVO) {
// 插入
InspectRequestDetailDO inspectRequestDetail = InspectRequestDetailConvert.INSTANCE.convert(createReqVO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
InspectRequestMainDO mainDO = inspectRequestMainMapper.selectById(createReqVO.getMasterId());
this.validatorDetail(inspectRequestDetail, mainDO, businesstypeDO);
inspectRequestDetailMapper.insert(inspectRequestDetail);
trendsApi.createTrends(inspectRequestDetail.getId(), "inspectRequestDetail", "增加了到货检验子表", TrendsTypeEnum.CREATE);
// 返回
return inspectRequestDetail.getId();
}
@Override
public void updateInspectRequestDetail(InspectRequestDetailUpdateReqVO updateReqVO) {
public int updateInspectRequestDetail(InspectRequestDetailUpdateReqVO updateReqVO) {
// 校验存在
validateInspectRequestDetailExists(updateReqVO.getId());
// 更新
InspectRequestDetailDO updateObj = InspectRequestDetailConvert.INSTANCE.convert(updateReqVO);
inspectRequestDetailMapper.updateById(updateObj);
trendsApi.createTrends(updateObj.getId(), "inspectRequestDetail", updateObj.toString(), TrendsTypeEnum.UPDATE);
return inspectRequestDetailMapper.updateById(updateObj);
}
@Override
public void deleteInspectRequestDetail(Long id) {
public int deleteInspectRequestDetail(Long id) {
// 校验存在
validateInspectRequestDetailExists(id);
InspectRequestDetailDO inspectRequestDetailDO = validateInspectRequestDetailExists(id);
trendsApi.createTrends(id, "purchasereceiptRequestDetail", inspectRequestDetailDO.toString(), TrendsTypeEnum.DELETE);
// 删除
inspectRequestDetailMapper.deleteById(id);
return inspectRequestDetailMapper.deleteById(id);
}
private void validateInspectRequestDetailExists(Long id) {
if (inspectRequestDetailMapper.selectById(id) == null) {
private InspectRequestDetailDO validateInspectRequestDetailExists(Long id) {
InspectRequestDetailDO inspectRequestDetailDO = inspectRequestDetailMapper.selectById(id);
if (inspectRequestDetailDO == null) {
throw exception(INSPECT_REQUEST_DETAIL_NOT_EXISTS);
}
return inspectRequestDetailDO;
}
@Override
@ -70,8 +100,8 @@ public class InspectRequestDetailServiceImpl implements InspectRequestDetailServ
}
@Override
public List<InspectRequestDetailDO> getInspectRequestDetailList(Collection<Long> ids) {
return inspectRequestDetailMapper.selectBatchIds(ids);
public List<InspectRequestDetailDO> selectList(Long masterId) {
return inspectRequestDetailMapper.selectList(masterId);
}
@Override
@ -84,9 +114,55 @@ public class InspectRequestDetailServiceImpl implements InspectRequestDetailServ
return inspectRequestDetailMapper.selectSenior(conditions);
}
@Override
public List<InspectRequestDetailDO> getInspectRequestDetailList(InspectRequestDetailExportReqVO exportReqVO) {
return inspectRequestDetailMapper.selectList(exportReqVO);
//校验子表公共方法(适用于新增/修改)
private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO 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);
validatorLocation(detailDo.getFromLocationCode());
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO);
validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus());
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
//判断导入单位是否正确
private void ifUomSuccess(String itemUom, String uom) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom);
if (dictDataRespDTO != null) {
if (!itemUom.equals(dictDataRespDTO.getLabel())) {
throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom);
}
}
}
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) {
jobUtils.ifInType(itemType, businesstypeDO);
}
private void validatorLocation(String fromLocationCode) {
locationService.selectLocation(fromLocationCode);
}
private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) {
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO);
}
private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO);
}
private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(inventoryStatu);
jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus);
}
}

47
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java

@ -80,6 +80,14 @@ public interface InspectRequestMainService {
*/
List<InspectRequestMainDO> getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO);
/**
* 获得采购收货申请主列表, 用于 Excel 导出
*
* @param conditions 查询条件
* @return 采购收货申请主列表
*/
List<InspectRequestMainDO> getInspectRequestMainList(CustomConditions conditions);
/**
* @author chenfang
* @param datas 主子表数据
@ -104,4 +112,43 @@ public interface InspectRequestMainService {
* @return
*/
BigDecimal selectInspectType(BigDecimal sampleQty, HashMap<String, String> ruleAll);
/**
* 关闭到货检验申请主
*
* @param id 到货检验申请主ID
* @return 更新数量
*/
Integer closeInspectRequestMain(Long id);
/**
* 提交到货检验申请主
*
* @param id 到货检验申请主ID
* @return 更新数量
*/
Integer submitInspectRequestMain(Long id);
/**
* 审批通过到货检验申请主
*
* @param id 到货检验申请主ID
* @return 更新数量
*/
Integer agreeInspectRequestMain(Long id);
/**
* 处理到货检验申请主
* @param id
* @return
*/
Integer handleInspectRequestMain(Long id);
/**
* 审批拒绝到货检验申请主
*
* @param id 到货检验申请主ID
* @return 更新数量
*/
Integer abortInspectRequestMain(Long id);
}

112
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java

@ -6,6 +6,7 @@ import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils;
@ -25,6 +26,7 @@ import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
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.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.inspectJob.InspectJobMainMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
@ -49,8 +51,7 @@ import java.util.HashMap;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 检验申请主 Service 实现类
@ -66,6 +67,8 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
@Resource
private InspectRequestDetailMapper inspectRequestDetailMapper;
@Resource
private InspectJobMainMapper inspectJobMainMapper;
@Resource
private PurchasereceiptRecordMainService purchasereceiptRecordMainService;
@Resource
private SerialNumberApi serialNumberApi;
@ -104,6 +107,10 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode());
inspectRequestMainMapper.insert(mainDO);
for (InspectRequestDetailDO detailDO : subDOList) {
detailDO.setNumber(number);
detailDO.setMasterId(mainDO.getId());
}
inspectRequestDetailMapper.insertBatch(subDOList);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
@ -159,6 +166,11 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
return inspectRequestMainMapper.selectList(exportReqVO);
}
@Override
public List<InspectRequestMainDO> getInspectRequestMainList(CustomConditions conditions) {
return inspectRequestMainMapper.selectSeniorList(conditions);
}
@Override
@Transactional
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
@ -207,6 +219,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
inspectRequestMainMapper.insert(mainDO);
for(InspectRequestDetailDO inspectRequestDetailDO : subDOList) {
inspectRequestDetailDO.setMasterId(mainDO.getId());
inspectRequestDetailDO.setNumber(number);
}
inspectRequestDetailMapper.insertBatch(subDOList);
} else if (existInspectRequestMainDO != null && mode != 2) {
@ -222,6 +235,94 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
return errorList;
}
@Override
@Transactional
public Integer closeInspectRequestMain(Long id) {
// 校验存在存在下级单据
InspectRequestMainDO mainDO = validateInspectRequestMainExists(id);
Long count = inspectJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(INSPECT_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(INSPECT_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "inspectRequest", "关闭了到货校验申请", TrendsTypeEnum.UPDATE);
return inspectRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer submitInspectRequestMain(Long id) {
InspectRequestMainDO mainDO = validateInspectRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(INSPECT_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, inspectRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "inspectRequest", "提交了到货校验申请", TrendsTypeEnum.UPDATE);
return inspectRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer agreeInspectRequestMain(Long id) {
// 校验存在
InspectRequestMainDO mainDO = validateInspectRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(INSPECT_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, inspectRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "inspectRequest", "审批同意了到货校验申请", TrendsTypeEnum.UPDATE);
return inspectRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer handleInspectRequestMain(Long id) {
// 校验存在
InspectRequestMainDO mainDO = validateInspectRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(INSPECT_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateJob(mainDO, inspectRequestDetailMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "inspectRequest", "执行了到货校验申请", TrendsTypeEnum.UPDATE);
return inspectRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer abortInspectRequestMain(Long id) {
// 校验存在
InspectRequestMainDO mainDO = validateInspectRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reject();
if(!flag) {
throw new ServiceException(INSPECT_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "inspectRequest", "审批拒绝了到货校验申请", TrendsTypeEnum.UPDATE);
return inspectRequestMainMapper.updateById(mainDO);
}
/**
* 生成收货检验任务不要改动事务传播方式否则会有事务问题
* @param mainDO 收货检验主
@ -331,10 +432,12 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
mainDO.setSampleQty(selectInspectType(mainDO.getReceiveQty(), rule));
}
private void validateInspectRequestMainExists(Long id) {
if (inspectRequestMainMapper.selectById(id) == null) {
private InspectRequestMainDO validateInspectRequestMainExists(Long id) {
InspectRequestMainDO mainDO = inspectRequestMainMapper.selectById(id);
if (mainDO == null) {
throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS);
}
return mainDO;
}
//校验主表公共方法(适用于新增/修改)
@ -356,6 +459,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
//校验子表公共方法(适用于新增/修改)
private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setNumber(mainDo.getNumber());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -323,7 +323,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE);
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
@ -342,7 +342,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE);
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
@ -361,7 +361,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE);
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
@ -378,7 +378,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reject();
if(!flag) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE);
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "purchasereceiptRequest", "审批拒绝了采购收货申请", TrendsTypeEnum.UPDATE);

Loading…
Cancel
Save