diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index ae4a8dae..f1c1acd9 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -383,6 +383,8 @@ public interface ErrorCodeConstants { ErrorCode PURCHASECLAIM_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_065_000, "采购索赔记录主不存在"); //采购索赔记录子ErrorCode ErrorCode PURCHASECLAIM_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_065_001, "采购索赔记录子不存在"); + //采购索赔导入不能为空 + ErrorCode PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_020_015, "导入采购索赔不能为空"); //供应商发票申请主ErrorCode ErrorCode SUPPLIERINVOICE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_066_000, "供应商发票申请主不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java new file mode 100644 index 00000000..5f9a8cea --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java @@ -0,0 +1,87 @@ +package com.win.module.wms.controller.purchaseclaimRequest; + +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.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailPageReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailRespVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailUpdateReqVO; +import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; +import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; +import com.win.module.wms.service.purchaseclaimRequest.PurchaseclaimRequestDetailService; +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.annotation.Resource; +import javax.validation.Valid; + +import static com.win.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 采购索赔申请子") +@RestController +@RequestMapping("/wms/purchaseclaim-request-detail") +@Validated +public class PurchaseclaimRequestDetailController { + + @Resource + private PurchaseclaimRequestDetailService purchaseclaimRequestDetailService; + + @Resource + private AdminUserApi userApi; + + @PostMapping("/create") + @Operation(summary = "创建采购索赔申请子") + @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:create')") + public CommonResult createPurchaseclaimRequestDetail(@Valid @RequestBody PurchaseclaimRequestDetailCreateReqVO createReqVO) { + return success(purchaseclaimRequestDetailService.createPurchaseclaimRequestDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新采购索赔申请子") + @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:update')") + public CommonResult updatePurchaseclaimRequestDetail(@Valid @RequestBody PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { + purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除采购索赔申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:delete')") + public CommonResult deletePurchaseclaimRequestDetail(@RequestParam("id") Long id) { + purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得采购索赔申请子") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:query')") + public CommonResult getPurchaseclaimRequestDetail(@RequestParam("id") Long id) { + PurchaseclaimRequestDetailDO purchaseclaimRequestDetail = purchaseclaimRequestDetailService.getPurchaseclaimRequestDetail(id); + return success(PurchaseclaimRequestDetailConvert.INSTANCE.convert(purchaseclaimRequestDetail)); + } + + @GetMapping("/page") + @Operation(summary = "获得采购索赔申请子分页") + @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:query')") + public CommonResult> getPurchaseclaimRequestDetailPage(@Valid PurchaseclaimRequestDetailPageReqVO pageVO) { + PageResult pageResult = purchaseclaimRequestDetailService.getPurchaseclaimRequestDetailPage(pageVO); + return success(PurchaseclaimRequestDetailConvert.INSTANCE.convertPage(pageResult)); + } + + @PostMapping("/senior") + @Operation(summary = "高级搜索获得采购索赔申请主分页") + @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:query')") + public CommonResult> getPurchaseclaimRequestDetailSenior(@Valid @RequestBody CustomConditions conditions) { + PageResult pageResult = purchaseclaimRequestDetailService.getPurchaseclaimRequestDetailSenior(conditions); + return success(PurchaseclaimRequestDetailConvert.INSTANCE.convertPage(pageResult)); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java index 866fec6a..1daefb7b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java @@ -25,7 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.util.Collection; +import java.util.ArrayList; import java.util.List; import static com.win.framework.common.pojo.CommonResult.success; @@ -71,24 +71,12 @@ public class PurchaseclaimRequestMainController { } @GetMapping("/get") - @Operation(summary = "获得采购索赔申请主") + @Operation(summary = "获得采购索赔申请主带子") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:query')") public CommonResult getPurchaseclaimRequestMain(@RequestParam("id") Long id) { PurchaseclaimRequestMainDO purchaseclaimRequestMain = purchaseclaimRequestMainService.getPurchaseclaimRequestMain(id); - PurchaseclaimRequestMainRespVO vo = PurchaseclaimRequestMainConvert.INSTANCE.convert(purchaseclaimRequestMain); - List subList = purchaseclaimRequestDetailService.getPurchaseclaimRequestDetailList(vo.getId()); - vo.setSubList(PurchaseclaimRequestDetailConvert.INSTANCE.convertList(subList)); - return success(vo); - } - - @GetMapping("/list") - @Operation(summary = "获得采购索赔申请主列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:query')") - public CommonResult> getPurchaseclaimRequestMainList(@RequestParam("ids") Collection ids) { - List list = purchaseclaimRequestMainService.getPurchaseclaimRequestMainList(ids); - return success(PurchaseclaimRequestMainConvert.INSTANCE.convertList(list)); + return success(PurchaseclaimRequestMainConvert.INSTANCE.convert(purchaseclaimRequestMain)); } @GetMapping("/page") @@ -117,17 +105,19 @@ public class PurchaseclaimRequestMainController { @Operation(summary = "导出采购索赔申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:export')") @OperateLog(type = EXPORT) - public void exportPurchaseclaimRequestMainExcel(@Valid PurchaseclaimRequestMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportPurchaseclaimRequestMainExcel(@Valid PurchaseclaimRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = purchaseclaimRequestMainService.getPurchaseclaimRequestMainList(exportReqVO); - // 导出 Excel - List datas = PurchaseclaimRequestMainConvert.INSTANCE.convertList02(list); - for(PurchaseclaimRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + //组装vo + List resultList = new ArrayList<>(); + for(PurchaseclaimRequestMainDO mainDO : list) { + List subList = purchaseclaimRequestDetailService.getPurchaseclaimRequestDetailList(mainDO.getId()); + for(PurchaseclaimRequestDetailDO detailDO : subList) { + PurchaseclaimRequestDetailExcelVO vo = PurchaseclaimRequestDetailConvert.INSTANCE.convert(mainDO, detailDO); + resultList.add(vo); + } } - ExcelUtils.write(response, "采购索赔申请主.xls", "数据", PurchaseclaimRequestMainExcelVO.class, datas); + // 导出 Excel + ExcelUtils.write(response, "采购索赔申请主.xls", "数据", PurchaseclaimRequestDetailExcelVO.class, resultList); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailExcelVO.java index 6733536d..d9a5f073 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailExcelVO.java @@ -1,17 +1,12 @@ package com.win.module.wms.controller.purchaseclaimRequest.vo; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.time.LocalDateTime; - import com.alibaba.excel.annotation.ExcelProperty; 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; /** @@ -22,6 +17,61 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class PurchaseclaimRequestDetailExcelVO { + @ExcelProperty("发货单号") + private String asnNumber; + + @ExcelProperty("要货计划单号") + private String ppNumber; + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("业务类型") + private String businessType; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("创建者用户名") + private String creator; + + @ExcelProperty("申请时间") + private LocalDateTime requestTime; + + @ExcelProperty("截止时间") + private LocalDateTime dueTime; + + @ExcelProperty("部门") + private String departmentCode; + + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String status; + + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者用户名") + private String updater; + + @ExcelProperty("自动提交") + private String autoCommit; + + @ExcelProperty("自动通过") + private String autoAgree; + + @ExcelProperty("自动执行") + private String autoExecute; + + @ExcelProperty("直接生成记录") + private String directCreateRecord; + @ExcelProperty("批次") private String batch; @@ -44,21 +94,9 @@ public class PurchaseclaimRequestDetailExcelVO { @ExcelProperty("金额") private BigDecimal amount; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("物品代码") private String itemCode; - @ExcelProperty("备注") - private String remark; - - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @ExcelProperty("创建者用户名") - private String creator; - @ExcelProperty("物品名称") private String itemName; @@ -78,10 +116,4 @@ public class PurchaseclaimRequestDetailExcelVO { @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String uom; - @ExcelProperty("最后更新时间") - private LocalDateTime updateTime; - - @ExcelProperty("最后更新者用户名") - private String updater; - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestMainRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestMainRespVO.java index a892f902..aef5b2a7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestMainRespVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestMainRespVO.java @@ -5,15 +5,10 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.util.List; - @Schema(description = "管理后台 - 采购索赔申请主 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchaseclaimRequestMainRespVO extends PurchaseclaimRequestMainBaseVO { - @Schema(description = "子表数据") - private List subList; - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java index 038be08a..828f59b3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java @@ -1,12 +1,12 @@ package com.win.module.wms.convert.purchaseclaimRequest; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailExcelVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailRespVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailUpdateReqVO; +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; @@ -37,4 +37,13 @@ public interface PurchaseclaimRequestDetailConvert { List convertList04(List 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"), + }) + PurchaseclaimRequestDetailExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestDetailMapper.java index 5668fa7b..e54408f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestDetailMapper.java @@ -1,7 +1,12 @@ package com.win.module.wms.dal.mysql.purchaseclaimRequest; +import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.query.QueryWrapperX; +import com.win.framework.mybatis.core.util.QueryWrapperUtils; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailPageReqVO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -15,6 +20,35 @@ import java.util.List; @Mapper public interface PurchaseclaimRequestDetailMapper extends BaseMapperX { + default PageResult selectPage(PurchaseclaimRequestDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PurchaseclaimRequestDetailDO::getBatch, reqVO.getBatch()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getAltBatch, reqVO.getAltBatch()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getPoNumber, reqVO.getPoNumber()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getPoLine, reqVO.getPoLine()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getReason, reqVO.getReason()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getSinglePrice, reqVO.getSinglePrice()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getAmount, reqVO.getAmount()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getItemCode, reqVO.getItemCode()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(PurchaseclaimRequestDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getCreator, reqVO.getCreator()) + .likeIfPresent(PurchaseclaimRequestDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getQty, reqVO.getQty()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getUom, reqVO.getUom()) + .betweenIfPresent(PurchaseclaimRequestDetailDO::getUpdateTime, reqVO.getUpdateTime()) + .eqIfPresent(PurchaseclaimRequestDetailDO::getUpdater, reqVO.getUpdater()) + .orderByDesc(PurchaseclaimRequestDetailDO::getId)); + } + + default PageResult selectSenior(CustomConditions conditions) { + return selectPage(conditions, QueryWrapperUtils.structure(conditions)); + } + default List selectList(Long masterId) { return selectList(new QueryWrapperX().eq("master_id", masterId)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java index ce41bab6..085f0d5b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java @@ -1,9 +1,14 @@ package com.win.module.wms.service.purchaseclaimRequest; +import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailPageReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; +import javax.validation.Valid; import java.util.List; - /** * 采购索赔申请子 Service 接口 * @@ -12,11 +17,57 @@ import java.util.List; public interface PurchaseclaimRequestDetailService { /** - * 获得采购索赔申请子列表, + * 创建采购索赔申请子 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailCreateReqVO createReqVO); + + /** + * 更新采购索赔申请子 + * + * @param updateReqVO 更新信息 + */ + void updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO); + + /** + * 删除采购索赔申请子 + * + * @param id 编号 + */ + void deletePurchaseclaimRequestDetail(Long id); + + /** + * 获得采购索赔申请子列表 * * @param masterId 主表id * @return 采购索赔申请子列表 */ List getPurchaseclaimRequestDetailList(Long masterId); + /** + * 获得采购索赔申请子 + * + * @param id 编号 + * @return 采购索赔申请子 + */ + PurchaseclaimRequestDetailDO getPurchaseclaimRequestDetail(Long id); + + /** + * 获得采购索赔申请子分页 + * + * @param pageReqVO 分页查询 + * @return 采购索赔申请子分页 + */ + PageResult getPurchaseclaimRequestDetailPage(PurchaseclaimRequestDetailPageReqVO pageReqVO); + + /** + * 获得用高级搜索户分页列表 + * + * @param conditions 分页、排序和自定义条件 + * @return 分页列表 + */ + PageResult getPurchaseclaimRequestDetailSenior(CustomConditions conditions); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java index 07bdc592..6325459e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java @@ -1,5 +1,11 @@ package com.win.module.wms.service.purchaseclaimRequest; +import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailPageReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailUpdateReqVO; +import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestDetailMapper; import org.springframework.stereotype.Service; @@ -8,6 +14,9 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.List; +import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_DETAIL_NOT_EXISTS; + /** * 采购索赔申请子 Service 实现类 * @@ -20,9 +29,56 @@ public class PurchaseclaimRequestDetailServiceImpl implements PurchaseclaimReque @Resource private PurchaseclaimRequestDetailMapper purchaseclaimRequestDetailMapper; + @Override + public Long createPurchaseclaimRequestDetail(PurchaseclaimRequestDetailCreateReqVO createReqVO) { + // 插入 + PurchaseclaimRequestDetailDO purchaseclaimRequestDetail = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO); + purchaseclaimRequestDetailMapper.insert(purchaseclaimRequestDetail); + // 返回 + return purchaseclaimRequestDetail.getId(); + } + + @Override + public void updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { + // 校验存在 + validatePurchaseclaimRequestDetailExists(updateReqVO.getId()); + // 更新 + PurchaseclaimRequestDetailDO updateObj = PurchaseclaimRequestDetailConvert.INSTANCE.convert(updateReqVO); + purchaseclaimRequestDetailMapper.updateById(updateObj); + } + + @Override + public void deletePurchaseclaimRequestDetail(Long id) { + // 校验存在 + validatePurchaseclaimRequestDetailExists(id); + // 删除 + purchaseclaimRequestDetailMapper.deleteById(id); + } + @Override public List getPurchaseclaimRequestDetailList(Long masterId) { return purchaseclaimRequestDetailMapper.selectList(masterId); } + private void validatePurchaseclaimRequestDetailExists(Long id) { + if (purchaseclaimRequestDetailMapper.selectById(id) == null) { + throw exception(PURCHASECLAIM_REQUEST_DETAIL_NOT_EXISTS); + } + } + + @Override + public PurchaseclaimRequestDetailDO getPurchaseclaimRequestDetail(Long id) { + return purchaseclaimRequestDetailMapper.selectById(id); + } + + @Override + public PageResult getPurchaseclaimRequestDetailPage(PurchaseclaimRequestDetailPageReqVO pageReqVO) { + return purchaseclaimRequestDetailMapper.selectPage(pageReqVO); + } + + @Override + public PageResult getPurchaseclaimRequestDetailSenior(CustomConditions conditions) { + return purchaseclaimRequestDetailMapper.selectSenior(conditions); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java index 72d41e4c..c5ccbf83 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java @@ -2,6 +2,7 @@ package com.win.module.wms.service.purchaseclaimRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainPageReqVO; @@ -81,4 +82,13 @@ public interface PurchaseclaimRequestMainService { */ List getPurchaseclaimRequestMainList(PurchaseclaimRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index 9bf689fe..57a5c226 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -1,9 +1,11 @@ package com.win.module.wms.service.purchaseclaimRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo; import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert; @@ -16,12 +18,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_MAIN_NOT_EXISTS; /** @@ -70,18 +70,6 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest // 更新主表 PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO); purchaseclaimRequestMainMapper.updateById(updateObj); - List subList = updateReqVO.getSubList(); - List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList04(subList); - // 先删除子表数据 - Map map = new HashMap<>(); - map.put("master_id", updateObj.getId()); - purchaseclaimRequestDetailMapper.deleteByMap(map); - // 新增子表数据 - for (PurchaseclaimRequestDetailDO detailDO : subDOList) { - detailDO.setMasterId(updateReqVO.getId()); - detailDO.setNumber(updateReqVO.getNumber()); - } - purchaseclaimRequestDetailMapper.insertBatch(subDOList); } @Override @@ -128,4 +116,23 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest return purchaseclaimRequestMainMapper.selectList(exportReqVO); } + public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); + } + datas.forEach(createReqVO -> { + PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); + purchaseclaimRequestMainMapper.updateById(updateObj); + List subList = createReqVO.getSubList(); + List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (PurchaseclaimRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(createReqVO.getId()); + detailDO.setNumber(createReqVO.getNumber()); + } + purchaseclaimRequestDetailMapper.insertBatch(subDOList); + }); + return new ArrayList<>(); + } + }