From 9ce66d11df8a12989b8ec51b341e37b8b2c314ba Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Thu, 30 Nov 2023 15:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../countJob/vo/CountJobMainExportReqVO.java | 10 +- .../countJob/vo/CountJobMainPageReqVO.java | 11 +- .../vo/CountRecordDetailExportReqVO.java | 11 +- .../vo/CountRecordDetailPageReqVO.java | 14 +- .../CountRequestDetailController.java | 64 ++----- .../vo/CountRequestDetailPageReqVO.java | 13 +- .../dataobject/countJob/CountJobMainDO.java | 18 +- .../wms/dal/mysql/balance/BalanceMapper.java | 12 +- .../mysql/countJob/CountJobDetailMapper.java | 10 +- .../mysql/countJob/CountJobMainMapper.java | 37 +++- .../countRecord/CountRecordDetailMapper.java | 12 +- .../countRecord/CountRecordMainMapper.java | 10 +- .../CountRequestDetailMapper.java | 33 +--- .../countRequest/CountRequestMainMapper.java | 8 + .../CountRequestDetailService.java | 28 +-- .../CountRequestDetailServiceImpl.java | 54 +++--- .../CountRequestMainServiceImpl.java | 176 ++++++++++-------- .../inspectJob/InspectJobMainServiceImpl.java | 2 + .../PurchasereceiptJobMainServiceImpl.java | 1 + ...PurchasereceiptRequestMainServiceImpl.java | 7 +- .../PurchasereturnJobMainServiceImpl.java | 10 +- .../putawayJob/PutawayJobMainServiceImpl.java | 2 + 22 files changed, 289 insertions(+), 254 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainExportReqVO.java index 92946811..0c213aab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainExportReqVO.java @@ -1,12 +1,11 @@ package com.win.module.wms.controller.countJob.vo; -import lombok.*; -import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import com.win.framework.common.pojo.PageParam; -import java.time.LocalDateTime; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 盘点任务主 Excel 导出 Request VO,参数和 CountJobMainPageReqVO 是一致的") @@ -131,4 +130,7 @@ public class CountJobMainExportReqVO { @Schema(description = "允许修改箱码") private String allowModifyPackingNumber; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainPageReqVO.java index cc9cad98..32846ed2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainPageReqVO.java @@ -1,10 +1,12 @@ package com.win.module.wms.controller.countJob.vo; -import lombok.*; -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.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -133,4 +135,7 @@ public class CountJobMainPageReqVO extends PageParam { @Schema(description = "允许修改箱码") private String allowModifyPackingNumber; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailExportReqVO.java index 678221ce..de2a6fe4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailExportReqVO.java @@ -1,13 +1,11 @@ package com.win.module.wms.controller.countRecord.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; @@ -98,4 +96,7 @@ public class CountRecordDetailExportReqVO { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailPageReqVO.java index 8bf319ab..d00482bf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailPageReqVO.java @@ -1,12 +1,13 @@ package com.win.module.wms.controller.countRecord.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; @@ -100,4 +101,7 @@ public class CountRecordDetailPageReqVO extends PageParam { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/CountRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/CountRequestDetailController.java index b2319385..3e009bcc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/CountRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/CountRequestDetailController.java @@ -1,36 +1,29 @@ package com.win.module.wms.controller.countRequest; +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 com.win.module.wms.controller.countRequest.vo.*; -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.countRequest.vo.CountRequestDetailCreateReqVO; +import com.win.module.wms.controller.countRequest.vo.CountRequestDetailPageReqVO; +import com.win.module.wms.controller.countRequest.vo.CountRequestDetailRespVO; +import com.win.module.wms.controller.countRequest.vo.CountRequestDetailUpdateReqVO; +import com.win.module.wms.convert.countRequest.CountRequestDetailConvert; +import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; +import com.win.module.wms.service.countRequest.CountRequestDetailService; 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.countRequest.vo.*; -import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; -import com.win.module.wms.convert.countRequest.CountRequestDetailConvert; -import com.win.module.wms.service.countRequest.CountRequestDetailService; - @Tag(name = "管理后台 - 盘点申请子") @RestController @RequestMapping("/wms/count-request-detail") @@ -77,15 +70,6 @@ public class CountRequestDetailController { return success(CountRequestDetailConvert.INSTANCE.convert(countRequestDetail)); } - @GetMapping("/list") - @Operation(summary = "获得盘点申请子列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:count-request-detail:query')") - public CommonResult> getCountRequestDetailList(@RequestParam("ids") Collection ids) { - List list = countRequestDetailService.getCountRequestDetailList(ids); - return success(CountRequestDetailConvert.INSTANCE.convertList(list)); - } - @GetMapping("/page") @Operation(summary = "获得盘点申请子分页") @PreAuthorize("@ss.hasPermission('wms:count-request-detail:query')") @@ -106,21 +90,5 @@ public class CountRequestDetailController { } return success(result); } - @GetMapping("/export-excel") - @Operation(summary = "导出盘点申请子 Excel") - @PreAuthorize("@ss.hasPermission('wms:count-request-detail:export')") - @OperateLog(type = EXPORT) - public void exportCountRequestDetailExcel(@Valid CountRequestDetailExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { - List list = countRequestDetailService.getCountRequestDetailList(exportReqVO); - // 导出 Excel - List datas = CountRequestDetailConvert.INSTANCE.convertList02(list); - for(CountRequestDetailExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "盘点申请子.xls", "数据", CountRequestDetailExcelVO.class, datas); - } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/vo/CountRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/vo/CountRequestDetailPageReqVO.java index 242dd6f1..5cd4377c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/vo/CountRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/vo/CountRequestDetailPageReqVO.java @@ -1,12 +1,13 @@ package com.win.module.wms.controller.countRequest.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; @@ -79,5 +80,7 @@ public class CountRequestDetailPageReqVO extends PageParam { @Schema(description = "从器具号") private String containerNumber; + @Schema(description = "主表ID") + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countJob/CountJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countJob/CountJobMainDO.java index 9545abb7..789e7b43 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countJob/CountJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countJob/CountJobMainDO.java @@ -1,16 +1,12 @@ package com.win.module.wms.dal.dataobject.countJob; +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.time.LocalDateTime; -import java.time.LocalDateTime; -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; /** * 盘点任务主 DO @@ -206,4 +202,8 @@ public class CountJobMainDO extends BaseDO { */ private String allowModifyPackingNumber; + /** + * 主表ID + */ + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java index 8b1de205..f73d2063 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java @@ -60,16 +60,20 @@ public interface BalanceMapper extends BaseMapperX { balanceDO.setQty(balanceDO.getQty().add(qtyNew)); //计算单价和金额 balanceDO.setAmount(balanceDO.getAmount().add(amountNew)); - balanceDO.setSinglePrice(balanceDO.getAmount().divide(balanceDO.getQty(), 2, RoundingMode.HALF_UP)); + if(balanceDO.getQty().compareTo(BigDecimal.ZERO) == 0) { + balanceDO.setSinglePrice(BigDecimal.ZERO); + } else { + balanceDO.setSinglePrice(balanceDO.getAmount().divide(balanceDO.getQty(), 2, RoundingMode.HALF_UP)); + } result = this.updateById(balanceDO); } - if(balanceDO.getQty().compareTo(BigDecimal.ZERO) == 0) {// 此处增加判断是否允许零库存 - JSONObject jsonObject = new JSONObject(ruleRespVO.getCondition()); + if(BigDecimal.ZERO.compareTo(balanceDO.getQty()) == 0) {// 此处增加判断是否允许零库存 + JSONObject jsonObject = new JSONObject(ruleRespVO.getConfiguration()); if(!"TRUE".equals(jsonObject.getStr("EnableKeepZero"))) { this.deleteById(balanceDO.getId()); } } else if(balanceDO.getQty().compareTo(BigDecimal.ZERO) < 0) {// 此处增加判断是否允许负库存 - JSONObject jsonObject = new JSONObject(ruleRespVO.getCondition()); + JSONObject jsonObject = new JSONObject(ruleRespVO.getConfiguration()); if(!"TRUE".equals(jsonObject.getStr("EnableNegative"))) { throw new ServiceException(LOCATION_DISABLE_NEGATIVE); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobDetailMapper.java index bcc19c4c..086d4e0a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobDetailMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.countJob; -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.countJob.vo.CountJobDetailExportReqVO; import com.win.module.wms.controller.countJob.vo.CountJobDetailPageReqVO; import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点任务子 Mapper * @@ -67,4 +67,8 @@ public interface CountJobDetailMapper extends BaseMapperX { .orderByDesc(CountJobDetailDO::getId)); } + default List selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java index c7cd66f3..e96f8c3e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java @@ -1,18 +1,19 @@ package com.win.module.wms.dal.mysql.countJob; -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.countJob.vo.CountJobMainExportReqVO; import com.win.module.wms.controller.countJob.vo.CountJobMainPageReqVO; import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO; -import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; +import java.util.Collection; +import java.util.List; + /** * 盘点任务主 Mapper * @@ -23,6 +24,7 @@ public interface CountJobMainMapper extends BaseMapperX { default PageResult selectPage(CountJobMainPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(CountJobMainDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CountJobMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CountJobMainDO::getPlanNumber, reqVO.getPlanNumber()) .eqIfPresent(CountJobMainDO::getStage, reqVO.getStage()) @@ -62,11 +64,20 @@ public interface CountJobMainMapper extends BaseMapperX { .eqIfPresent(CountJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) .orderByDesc(CountJobMainDO::getId)); } + default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } + + default Long selectByRequestNumber(String requestNumber) { + return selectCount(new LambdaQueryWrapperX() + .eq(CountJobMainDO::getRequestNumber, requestNumber) + .ne(CountJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } + default List selectList(CountJobMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eq(CountJobMainDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CountJobMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CountJobMainDO::getPlanNumber, reqVO.getPlanNumber()) .eqIfPresent(CountJobMainDO::getStage, reqVO.getStage()) @@ -107,6 +118,11 @@ public interface CountJobMainMapper extends BaseMapperX { .orderByDesc(CountJobMainDO::getId)); } + default List selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(CountJobMainDO::getMasterId, masterId)); + } + /** *根据类型数组查询任务数量 * @param types @@ -118,4 +134,17 @@ public interface CountJobMainMapper extends BaseMapperX { } + /** + * 根据类型数和申请单号组查询任务数量 + * @param types + * @param requestNumber + * @return + */ + default Long selectListCount(Collection types, String requestNumber) { + return selectCount(new LambdaQueryWrapperX() + .in(CountJobMainDO::getStatus, types) + .eq(CountJobMainDO::getRequestNumber, requestNumber)); + + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordDetailMapper.java index 49b94f71..576e7893 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordDetailMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.countRecord; -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.countRecord.vo.CountRecordDetailExportReqVO; import com.win.module.wms.controller.countRecord.vo.CountRecordDetailPageReqVO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点记录子 Mapper * @@ -22,6 +22,7 @@ public interface CountRecordDetailMapper extends BaseMapperX selectPage(CountRecordDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(CountRecordDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CountRecordDetailDO::getCountDetailNumber, reqVO.getCountDetailNumber()) .eqIfPresent(CountRecordDetailDO::getOwnerCode, reqVO.getOwnerCode()) .eqIfPresent(CountRecordDetailDO::getPackingNumber, reqVO.getPackingNumber()) @@ -86,4 +87,9 @@ public interface CountRecordDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(CountRecordDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordMainMapper.java index 65ae4a0a..8c45df77 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordMainMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.countRecord; -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.countRecord.vo.CountRecordMainExportReqVO; import com.win.module.wms.controller.countRecord.vo.CountRecordMainPageReqVO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点记录主 Mapper * @@ -72,4 +72,8 @@ public interface CountRecordMainMapper extends BaseMapperX { .orderByDesc(CountRecordMainDO::getId)); } + default List selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestDetailMapper.java index 916cfae4..f1e60168 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestDetailMapper.java @@ -1,17 +1,16 @@ package com.win.module.wms.dal.mysql.countRequest; -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.countRequest.vo.CountRequestDetailExportReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestDetailPageReqVO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点申请子 Mapper * @@ -22,6 +21,7 @@ public interface CountRequestDetailMapper extends BaseMapperX selectPage(CountRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(CountRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CountRequestDetailDO::getCountDetailNumber, reqVO.getCountDetailNumber()) .eqIfPresent(CountRequestDetailDO::getOwnerCode, reqVO.getOwnerCode()) .eqIfPresent(CountRequestDetailDO::getBatch, reqVO.getBatch()) @@ -47,29 +47,10 @@ public interface CountRequestDetailMapper extends BaseMapperX selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } - default List selectList(CountRequestDetailExportReqVO reqVO) { + + default List selectList(Long masterId) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(CountRequestDetailDO::getCountDetailNumber, reqVO.getCountDetailNumber()) - .eqIfPresent(CountRequestDetailDO::getOwnerCode, reqVO.getOwnerCode()) - .eqIfPresent(CountRequestDetailDO::getBatch, reqVO.getBatch()) - .eqIfPresent(CountRequestDetailDO::getLocationCode, reqVO.getLocationCode()) - .eqIfPresent(CountRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) - .eqIfPresent(CountRequestDetailDO::getNumber, reqVO.getNumber()) - .eqIfPresent(CountRequestDetailDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(CountRequestDetailDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(CountRequestDetailDO::getCreator, reqVO.getCreator()) - .likeIfPresent(CountRequestDetailDO::getItemName, reqVO.getItemName()) - .eqIfPresent(CountRequestDetailDO::getItemDesc1, reqVO.getItemDesc1()) - .eqIfPresent(CountRequestDetailDO::getItemDesc2, reqVO.getItemDesc2()) - .eqIfPresent(CountRequestDetailDO::getProjectCode, reqVO.getProjectCode()) - .eqIfPresent(CountRequestDetailDO::getQty, reqVO.getQty()) - .eqIfPresent(CountRequestDetailDO::getUom, reqVO.getUom()) - .betweenIfPresent(CountRequestDetailDO::getUpdateTime, reqVO.getUpdateTime()) - .eqIfPresent(CountRequestDetailDO::getUpdater, reqVO.getUpdater()) - .eqIfPresent(CountRequestDetailDO::getItemCode, reqVO.getItemCode()) - .eqIfPresent(CountRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) - .eqIfPresent(CountRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) - .orderByDesc(CountRequestDetailDO::getId)); + .eq(CountRequestDetailDO::getMasterId, masterId)); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java index cdb83782..1589ff87 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java @@ -55,6 +55,10 @@ public interface CountRequestMainMapper extends BaseMapperX .ne(CountRequestMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); } + default CountRequestMainDO selectByNumber(String number) { + return selectOne(CountRequestMainDO::getNumber, number); + } + default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } @@ -82,4 +86,8 @@ public interface CountRequestMainMapper extends BaseMapperX .orderByDesc(CountRequestMainDO::getId)); } + default List selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailService.java index 8b43051b..f777a3ac 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.countRequest; -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.countRequest.vo.CountRequestDetailCreateReqVO; -import com.win.module.wms.controller.countRequest.vo.CountRequestDetailExportReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestDetailPageReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; /** * 盘点申请子 Service 接口 @@ -31,14 +29,14 @@ public interface CountRequestDetailService { * * @param updateReqVO 更新信息 */ - void updateCountRequestDetail(@Valid CountRequestDetailUpdateReqVO updateReqVO); + int updateCountRequestDetail(@Valid CountRequestDetailUpdateReqVO updateReqVO); /** * 删除盘点申请子 * * @param id 编号 */ - void deleteCountRequestDetail(Long id); + int deleteCountRequestDetail(Long id); /** * 获得盘点申请子 @@ -48,14 +46,6 @@ public interface CountRequestDetailService { */ CountRequestDetailDO getCountRequestDetail(Long id); - /** - * 获得盘点申请子列表 - * - * @param ids 编号 - * @return 盘点申请子列表 - */ - List getCountRequestDetailList(Collection ids); - /** * 获得盘点申请子分页 * @@ -71,12 +61,4 @@ public interface CountRequestDetailService { */ PageResult getCountRequestDetailSenior(CustomConditions conditions); - /** - * 获得盘点申请子列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 盘点申请子列表 - */ - List getCountRequestDetailList(CountRequestDetailExportReqVO exportReqVO); - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailServiceImpl.java index 9a8081f3..3bbbeb93 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestDetailServiceImpl.java @@ -1,24 +1,22 @@ package com.win.module.wms.service.countRequest; 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.countRequest.vo.CountRequestDetailCreateReqVO; -import com.win.module.wms.controller.countRequest.vo.CountRequestDetailExportReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestDetailPageReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestDetailUpdateReqVO; +import com.win.module.wms.convert.countRequest.CountRequestDetailConvert; +import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; +import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper; 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.countRequest.CountRequestDetailDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.countRequest.CountRequestDetailConvert; -import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper; +import javax.annotation.Resource; 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.COUNT_REQUEST_DETAIL_NOT_EXISTS; /** * 盘点申请子 Service 实现类 @@ -31,37 +29,44 @@ public class CountRequestDetailServiceImpl implements CountRequestDetailService @Resource private CountRequestDetailMapper countRequestDetailMapper; + @Resource + private TrendsApi trendsApi; @Override public Long createCountRequestDetail(CountRequestDetailCreateReqVO createReqVO) { // 插入 - CountRequestDetailDO countRequestDetail = CountRequestDetailConvert.INSTANCE.convert(createReqVO); - countRequestDetailMapper.insert(countRequestDetail); + CountRequestDetailDO countRequestDetailDO = CountRequestDetailConvert.INSTANCE.convert(createReqVO); + countRequestDetailMapper.insert(countRequestDetailDO); + trendsApi.createTrends(countRequestDetailDO.getId(), "countRequestDetail", "增加了盘点申请子表", TrendsTypeEnum.CREATE); // 返回 - return countRequestDetail.getId(); + return countRequestDetailDO.getId(); } @Override - public void updateCountRequestDetail(CountRequestDetailUpdateReqVO updateReqVO) { + public int updateCountRequestDetail(CountRequestDetailUpdateReqVO updateReqVO) { // 校验存在 validateCountRequestDetailExists(updateReqVO.getId()); // 更新 CountRequestDetailDO updateObj = CountRequestDetailConvert.INSTANCE.convert(updateReqVO); - countRequestDetailMapper.updateById(updateObj); + trendsApi.createTrends(updateObj.getId(), "countRequestDetail", updateObj.toString(), TrendsTypeEnum.UPDATE); + return countRequestDetailMapper.updateById(updateObj); } @Override - public void deleteCountRequestDetail(Long id) { + public int deleteCountRequestDetail(Long id) { // 校验存在 - validateCountRequestDetailExists(id); + CountRequestDetailDO countRequestDetailDO = validateCountRequestDetailExists(id); + trendsApi.createTrends(id, "countRequestDetail", countRequestDetailDO.toString(), TrendsTypeEnum.DELETE); // 删除 - countRequestDetailMapper.deleteById(id); + return countRequestDetailMapper.deleteById(id); } - private void validateCountRequestDetailExists(Long id) { - if (countRequestDetailMapper.selectById(id) == null) { + private CountRequestDetailDO validateCountRequestDetailExists(Long id) { + CountRequestDetailDO countRequestDetailDO = countRequestDetailMapper.selectById(id); + if (countRequestDetailDO == null) { throw exception(COUNT_REQUEST_DETAIL_NOT_EXISTS); } + return countRequestDetailDO; } @Override @@ -69,10 +74,6 @@ public class CountRequestDetailServiceImpl implements CountRequestDetailService return countRequestDetailMapper.selectById(id); } - @Override - public List getCountRequestDetailList(Collection ids) { - return countRequestDetailMapper.selectBatchIds(ids); - } @Override public PageResult getCountRequestDetailSenior(CustomConditions conditions) { return countRequestDetailMapper.selectSenior(conditions); @@ -82,9 +83,4 @@ public class CountRequestDetailServiceImpl implements CountRequestDetailService return countRequestDetailMapper.selectPage(pageReqVO); } - @Override - public List getCountRequestDetailList(CountRequestDetailExportReqVO exportReqVO) { - return countRequestDetailMapper.selectList(exportReqVO); - } - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java index 758a051d..3c637718 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java @@ -4,7 +4,8 @@ import cn.hutool.core.collection.CollUtil; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.countRequest.vo.*; import com.win.module.wms.convert.countRequest.CountRequestDetailConvert; import com.win.module.wms.convert.countRequest.CountRequestMainConvert; @@ -13,13 +14,15 @@ import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; -import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper; import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; -import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.countPlan.CountPlanMainService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; @@ -31,6 +34,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Objects; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.module.wms.enums.ErrorCodeConstants.COUNT_REQUEST_MAIN_NOT_EXISTS; @@ -60,6 +64,10 @@ public class CountRequestMainServiceImpl implements CountRequestMainService { private LocationService locationService; @Resource private CountPlanMainService countPlanMainService; + @Resource + private RequestsettingService requestsettingService; + @Resource + private SerialNumberApi serialNumberApi; @Override public Long createCountRequestMain(CountRequestMainCreateReqVO createReqVO) { @@ -124,89 +132,48 @@ public class CountRequestMainServiceImpl implements CountRequestMainService { } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { + CountRequestMainDO mainDO = CountRequestMainConvert.INSTANCE.convert(createReqVO); // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList - String messageMain = ""; //主表的验证 - + String messageMain = validateCountRequestMainImport(mainDO); //子表的验证 List subList = createReqVO.getSubList(); List subDOList = CountRequestDetailConvert.INSTANCE.convertList03(subList); - for (CountRequestDetailDO purchasePlanDetailDO : subDOList) { - String messageDetail = ""; - //校验库位基础信息 - try { - LocationDO locationDO = locationService.selectLocation(purchasePlanDetailDO.getLocationCode()); - } catch (ServiceException ex) { - messageMain += ex.getMessage() + ","; - } - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(purchasePlanDetailDO.getItemCode()); - if (itembasicDO.getUom() != purchasePlanDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchasePlanDetailDO.getUom() + ","; - } else { - purchasePlanDetailDO.setItemDesc1(itembasicDO.getDesc1()); - purchasePlanDetailDO.setItemDesc2(itembasicDO.getDesc2()); - purchasePlanDetailDO.setItemName(itembasicDO.getName()); - purchasePlanDetailDO.setProjectCode(itembasicDO.getProject()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - // 校验业务类型 - try { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CountRequest"); - jobUtils.ifInToLocationType(purchasePlanDetailDO.getLocationCode(), businesstypeDO); - jobUtils.ifOutInventoryStatuses(purchasePlanDetailDO.getInventoryStatus(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - // 校验盘点计划 - try { - CountPlanDetailDO countPlanDetailDO = countPlanMainService.selectCountPlanExist(createReqVO.getPlanNumber()); - if (countPlanDetailDO != null) { -// createReqVO.setWarehouseCode(countPlanDetailDO.get) - } else { - messageDetail += "盘点计划" + createReqVO.getPlanNumber() + "无效" + ","; - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - CountRequestDetailCreateReqVO purchasePlanDetailCreateReqVO = CountRequestDetailConvert.INSTANCE.convert1(purchasePlanDetailDO); - CountRequestMainImportErrorVO importVO = CountRequestDetailConvert.INSTANCE.convert(createReqVO, purchasePlanDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { + for (CountRequestDetailDO countRequestDetailDO : subDOList) { + String messageDetail = validateCountRequestDetailImport(countRequestDetailDO); + //主子表有错误时写入excel + if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { + CountRequestDetailCreateReqVO purchasePlanDetailCreateReqVO = CountRequestDetailConvert.INSTANCE.convert1(countRequestDetailDO); + CountRequestMainImportErrorVO importVO = CountRequestDetailConvert.INSTANCE.convert(createReqVO, purchasePlanDetailCreateReqVO); importVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); errorList.add(importVO); - } else { - purchasePlanDetailDO.setNumber(createReqVO.getNumber()); } } - + //没有错误数据 if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - CountRequestMainDO existPurchaseclaimRequestMainDO = countRequestMainMapper.selectByPlanNumber(createReqVO.getPlanNumber()); - if (existPurchaseclaimRequestMainDO == null && mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePlan"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - CountRequestMainDO createObj =CountRequestMainConvert.INSTANCE.convert(createReqVO); - countRequestMainMapper.insert(createObj); - countRequestDetailMapper.insertBatch(subDOList); - } else if (existPurchaseclaimRequestMainDO != null && mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - CountRequestMainDO createObj = CountRequestMainConvert.INSTANCE.convert(createReqVO); - countRequestMainMapper.updateById(createObj); - countRequestDetailMapper.updateBatch(subDOList); + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDO.setNumber(number); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CountRequest"); + mainDO.setBusinessType(businesstypeDO.getCode()); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CountRequest"); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + countRequestMainMapper.insert(mainDO); + for (CountRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + } + countRequestDetailMapper.insertBatch(subDOList); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); } } }); @@ -216,5 +183,66 @@ public class CountRequestMainServiceImpl implements CountRequestMainService { } return errorList; } + /** + * 生成盘点任务,不要改动事务传播方式,否则会有事务问题 + * @param mainDO 采购收货主 + * @param detailDOList 采购收货子 + */ + private void generateJob(CountRequestMainDO mainDO, List detailDOList) { + + } + /** + * 校验导入,并赋值一些参数,未完全实现 + * @param mainDo + * @return + */ + private String validateCountRequestMainImport(CountRequestMainDO mainDo) { + StringBuilder message = new StringBuilder(); + try { + CountPlanDetailDO countPlanDetailDO = countPlanMainService.selectCountPlanExist(mainDo.getPlanNumber()); + //mainDo.setWarehouseCode(countPlanDetailDO.getW) + } catch (ServiceException e) { + message.append(e.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验导入,并赋值一些参数,未完全实现 + * @param detailDO + * @return + */ + private String validateCountRequestDetailImport(CountRequestDetailDO detailDO) { + StringBuilder message = new StringBuilder(); + //校验库位基础信息 + try { + locationService.selectLocation(detailDO.getLocationCode()); + } catch (ServiceException e) { + message.append(e.getMessage()).append(","); + } + // 校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (!Objects.equals(itembasicDO.getUom(), detailDO.getUom())) { + message.append("计量单位").append("错误,应该是").append(","); + } else { + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setItemName(itembasicDO.getName()); + detailDO.setProjectCode(itembasicDO.getProject()); + } + } catch (ServiceException e) { + message.append(e.getMessage()).append(","); + } + // 校验业务类型 + try { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CountRequest"); + jobUtils.ifInToLocationType(detailDO.getLocationCode(), businesstypeDO); + jobUtils.ifOutInventoryStatuses(detailDO.getInventoryStatus(), businesstypeDO); + } catch (ServiceException e) { + message.append(e.getMessage()).append(","); + } + return message.toString(); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java index e7500bad..78e9972d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java @@ -244,6 +244,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVOIn.setInventoryStatus(inspectJobDetailUpdateReqVO.getToInventoryStatus()); transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setWarehouseCode(inspectJobMainUpdateReqVO.getWarehouseCode()); transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); @@ -281,6 +282,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { transactionCreateReqVOOut.setLocationCode(inspectJobDetailUpdateReqVO.getFromLocationCode()); transactionCreateReqVOOut.setBatch(inspectRecordMainDO.getBatch()); transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setWarehouseCode(inspectJobMainUpdateReqVO.getWarehouseCode()); transactionCreateReqVOOut.setRecordNumber(number); //出库数量为子表数量,不管合格不合格都要出掉 transactionCreateReqVOOut.setQty(inspectJobDetailUpdateReqVO.getQty()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java index 9bd09a4d..0969d659 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java @@ -327,6 +327,7 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain transactionCreateReqVO.setPackingNumber(purchasereceiptJobDetailDO.getPackingNumber()); transactionCreateReqVO.setWorker(purchasereceiptJobMainDO.getCompleteUserId()); transactionCreateReqVO.setBatch(purchasereceiptJobDetailDO.getBatch()); + transactionCreateReqVO.setWarehouseCode(purchasereceiptJobMainUpdateReqVO.getToWarehouseCode()); transactionCreateReqVO.setRecordNumber(number); transactionCreateReqVO.setId(null); transactionCreateReqVOList.add(transactionCreateReqVO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index 4316894b..eb3620fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -216,8 +216,6 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq String messageMain = this.validatePurchasereceiptRequestMainImport(mainDO); List subList = createReqVO.getSubList(); List subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(subList); - // 是否有错误数据 - boolean flag = true; for (PurchasereceiptRequestDetailDO detailDO : subDOList) { String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO); if(!messageMain.isEmpty() || !messageDetail.isEmpty()) { @@ -226,11 +224,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq messageMain = messageMain + messageDetail; importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); errorList.add(importErrorVO); - flag = false; } } //写入数据 - if(flag) { + if (errorList.isEmpty()) { //申请单目前只做新增 //PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectBySupplierCode(mainDo.getSupplierCode()); //if(existPurchasereceiptRequestMainDO == null && mode != 3) {//新增 @@ -251,11 +248,11 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); } + purchasereceiptRequestDetailMapper.insertBatch(subDOList); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateJob(mainDO, subDOList); } - purchasereceiptRequestDetailMapper.insertBatch(subDOList); //} else if(existPurchasereceiptRequestMainDO != null && existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode()) && mode != 2) {//修改 //BeanUtils.copyProperties(existPurchasereceiptRequestMainDO, mainDO); //purchasereceiptRequestMainMapper.updateById(mainDo); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java index a3f58530..0ec2c969 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java @@ -270,7 +270,7 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVOOut); //增加业务类型 - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReurnJob"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest"); transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); TransactiontypeDO transactionTypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVOOut.setInventoryAction(transactionTypeDOOut.getInventoryAction()); @@ -286,6 +286,10 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe transactionCreateReqVOOut.setRecordNumber(number); transactionCreateReqVOOut.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty()); transactionCreateReqVOOut.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getInventoryStatus()); + transactionCreateReqVOOut.setWarehouseCode(purchasereturnJobMainUpdateReqVO.getFromWarehouseCode()); + transactionCreateReqVOOut.setBatch(purchasereturnRecordDetailDO.getFromBatch()); + transactionCreateReqVOOut.setWorker(purchasereturnJobMainDO.getCompleteUserId()); + transactionCreateReqVOOut.setPackingNumber(purchasereturnRecordDetailDO.getFromPackingNumber()); transactionCreateReqVOOut.setId(null); transactionCreateReqVOList.add(transactionCreateReqVOOut); //判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务 @@ -307,6 +311,10 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe transactionCreateReqVOIn.setRecordNumber(number); transactionCreateReqVOIn.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty()); transactionCreateReqVOIn.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getToInventoryStatus()); + transactionCreateReqVOIn.setWarehouseCode(purchasereturnJobMainUpdateReqVO.getToWarehouseCode()); + transactionCreateReqVOOut.setBatch(purchasereturnJobDetailUpdateReqVO.getToBatch()); + transactionCreateReqVOOut.setWorker(purchasereturnJobMainDO.getCompleteUserId()); + transactionCreateReqVOOut.setPackingNumber(purchasereturnRecordDetailDO.getFromPackingNumber()); transactionCreateReqVOIn.setId(null); transactionCreateReqVOList.add(transactionCreateReqVOIn); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayJob/PutawayJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayJob/PutawayJobMainServiceImpl.java index 69b77a71..1d7b8dc4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayJob/PutawayJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayJob/PutawayJobMainServiceImpl.java @@ -229,6 +229,7 @@ public class PutawayJobMainServiceImpl implements PutawayJobMainService { transactionCreateReqVOIn.setArriveDate(putawayJobDetailUpdateReqVO.getArriveDate()); transactionCreateReqVOIn.setProduceDate(putawayJobDetailUpdateReqVO.getProduceDate()); transactionCreateReqVOIn.setExpireDate(putawayJobDetailUpdateReqVO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(putawayJobMainUpdateReqVO.getToWarehouseCode()); transactionCreateReqVOIn.setRecordNumber(number); transactionCreateReqVOIn.setId(null); //待确定库存事务信息 @@ -252,6 +253,7 @@ public class PutawayJobMainServiceImpl implements PutawayJobMainService { transactionCreateReqVOOut.setArriveDate(putawayJobDetailUpdateReqVO.getArriveDate()); transactionCreateReqVOOut.setProduceDate(putawayJobDetailUpdateReqVO.getProduceDate()); transactionCreateReqVOOut.setExpireDate(putawayJobDetailUpdateReqVO.getExpireDate()); + transactionCreateReqVOOut.setWarehouseCode(putawayJobMainUpdateReqVO.getFromWarehouseCode()); transactionCreateReqVOOut.setId(null); //待确定库存事务信息 transactionCreateReqVOList.add(transactionCreateReqVOOut);