diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckController.java index f4e1a56..0e46412 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckController.java @@ -37,7 +37,7 @@ import com.zt.plat.module.qms.resource.material.service.MaterialInventoryCheckSe @Tag(name = "管理后台 - 库存盘点") @RestController -@RequestMapping("/qms/material-inventory-check") +@RequestMapping("/qms/resource/material-inventory-check") @Validated @FileUploadController(source = "qms.materialinventorycheck") public class MaterialInventoryCheckController extends AbstractFileUploadController implements BusinessControllerMarker{ @@ -115,4 +115,21 @@ public class MaterialInventoryCheckController extends AbstractFileUploadControll BeanUtils.toBean(list, MaterialInventoryCheckRespVO.class)); } + + @PostMapping("/create-form") + @Operation(summary = "创建库存盘点") + public CommonResult createMaterialInventoryCheckForm(@Valid @RequestBody MaterialInventoryCheckSaveReqVO createReqVO) { + + + return success(materialInventoryCheckService.createMaterialInventoryCheckForm(createReqVO)); + } + + @GetMapping("/get-form") + @Operation(summary = "获得库存盘点") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('qms:material-inventory-check:query')") + public CommonResult getMaterialInventoryCheckForm(@RequestParam("id") Long id) { + + return success(materialInventoryCheckService.getMaterialInventoryCheckForm(id)); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundController.java index 0b1bcb4..c564f06 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundController.java @@ -119,8 +119,9 @@ public class MaterialInventoryInboundController extends AbstractFileUploadContro @PostMapping("/multi-put") @Operation(summary = "批量上架") - public CommonResult> createMaterialInventoryInboundMulti(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) { - return success(materialInventoryInboundService.multiCreateMaterialInventoryInbound(createReqVO)); + public CommonResult createMaterialInventoryInboundMulti(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) { + materialInventoryInboundService.multiCreateMaterialInventoryInbound(createReqVO); + return success(true); } @PostMapping("single-put") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundDetailController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundDetailController.java index 1a793ad..d110a8a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundDetailController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryInboundDetailController.java @@ -115,4 +115,10 @@ public class MaterialInventoryInboundDetailController extends AbstractFileUpload BeanUtils.toBean(list, MaterialInventoryInboundDetailRespVO.class)); } + @GetMapping("/page-list") + @Operation(summary = "获得入库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等分页") + public CommonResult> getMaterialInventoryInboundDetailPageList(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO) { + PageResult pageResult = materialInventoryInboundDetailService.getMaterialInventoryInboundDetailPageList(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialInventoryInboundDetailRespVO.class)); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInfomationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInfomationPageReqVO.java index 59572af..adbfb68 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInfomationPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInfomationPageReqVO.java @@ -79,7 +79,7 @@ public class MaterialInfomationPageReqVO extends PageParam { List productIds; @Schema(description = "入库id") - private long inventoryInboundId; + private Long inventoryInboundId; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckBatchSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckBatchSaveReqVO.java index c646848..0c5abc9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckBatchSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckBatchSaveReqVO.java @@ -36,4 +36,7 @@ public class MaterialInventoryCheckBatchSaveReqVO { @Schema(description = "备注") private String remark; + @Schema(description = "盘点明细") + private List detailList; + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckPageReqVO.java index 7ec62f8..679b429 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckPageReqVO.java @@ -54,4 +54,6 @@ public class MaterialInventoryCheckPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "主键") + private Long id; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckRespVO.java index 309bd88..2e1821d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckRespVO.java @@ -68,4 +68,7 @@ public class MaterialInventoryCheckRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "盘点项") + @ExcelProperty("盘点项") + private List batchList; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckSaveReqVO.java index 4f9fe0e..4e794ab 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryCheckSaveReqVO.java @@ -50,4 +50,7 @@ public class MaterialInventoryCheckSaveReqVO { @Schema(description = "备注") private String remark; + @Schema(description = "盘点项") + private List batchList; + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailPageReqVO.java index b3333b4..1360453 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailPageReqVO.java @@ -50,4 +50,7 @@ public class MaterialInventoryInboundDetailPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "物料大类Id") + private Long productId; + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailRespVO.java index 8d08ada..654a410 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialInventoryInboundDetailRespVO.java @@ -63,4 +63,6 @@ public class MaterialInventoryInboundDetailRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + private Long productId; + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialBatchAssignDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialBatchAssignDO.java index 037fc4a..0cf96fc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialBatchAssignDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialBatchAssignDO.java @@ -37,7 +37,7 @@ public class MaterialBatchAssignDO extends BusinessBaseDO { * 产品id */ @TableField("PDT_ID") - private String productId; + private Long productId; /** * 库房ID */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java index 708f3a4..24ae0b3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java @@ -44,7 +44,10 @@ public interface MaterialInfomationMapper extends BaseMapperX selectAll(MaterialInfomationPageReqVO reqVO) { reqVO.setPageSize(-1); return selectPage(reqVO, new LambdaQueryWrapperX() - .eq(MaterialInfomationDO::getInventoryInboundId, reqVO.getInventoryInboundId() + .eqIfPresent(MaterialInfomationDO::getProductId, reqVO.getProductId()) + .eqIfPresent(MaterialInfomationDO::getBatchId, reqVO.getBatchId()) + .eqIfPresent(MaterialInfomationDO::getUsageStatus, reqVO.getUsageStatus()) + .eqIfPresent(MaterialInfomationDO::getInventoryInboundId, reqVO.getInventoryInboundId() ) ); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java index f5dac08..97a94ef 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java @@ -3,10 +3,19 @@ package com.zt.plat.module.qms.resource.material.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectAndParameterRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectDataExtendRespVO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO; +import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailRespVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDetailDO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailPageReqVO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 入库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等 Mapper * @@ -32,4 +41,13 @@ public interface MaterialInventoryInboundDetailMapper extends BaseMapperX selectPageList(MaterialInventoryInboundDetailPageReqVO reqVO) { + return selectJoinPage(reqVO, MaterialInventoryInboundDetailRespVO.class, new MPJLambdaWrapperX() + .selectAll(MaterialInventoryInboundDetailDO.class) + .selectAs(MaterialInfomationDO::getProductId, MaterialInventoryInboundDetailRespVO::getProductId) + .leftJoin(MaterialInfomationDO.class, MaterialInfomationDO::getId, MaterialInventoryInboundDetailDO::getMaterialInfomationId) + .eqIfPresent(MaterialInfomationDO::getProductId, reqVO.getProductId()) + ); + } + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialBatchAssignServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialBatchAssignServiceImpl.java index 4fc9446..758ef44 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialBatchAssignServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialBatchAssignServiceImpl.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignSaveReqVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO; +import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInfomationMapper; import jakarta.validation.Valid; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; @@ -34,6 +37,9 @@ public class MaterialBatchAssignServiceImpl implements MaterialBatchAssignServic @Resource private MaterialBatchAssignMapper materialBatchAssignMapper; + @Resource + private MaterialInfomationMapper materialInfomationMapper; + @Override public MaterialBatchAssignRespVO createMaterialBatchAssign(MaterialBatchAssignSaveReqVO createReqVO) { // 插入 @@ -93,7 +99,26 @@ public class MaterialBatchAssignServiceImpl implements MaterialBatchAssignServic @Override public PageResult getMaterialBatchAssignPage(MaterialBatchAssignPageReqVO pageReqVO) { - return materialBatchAssignMapper.selectPage(pageReqVO); + PageResult pageResult = materialBatchAssignMapper.selectPage(pageReqVO); + + + + /** 统计批次剩余量需要除去已上架(存在实例)的部分 */ + pageResult.getList().forEach(item -> { + MaterialInfomationPageReqVO infomationPageReqVO = new MaterialInfomationPageReqVO(); + infomationPageReqVO.setBatchId(item.getId()); + infomationPageReqVO.setProductId(item.getProductId()); + infomationPageReqVO.setUsageStatus("0"); + PageResult materialInfomationDOPageResult = materialInfomationMapper.selectAll(infomationPageReqVO); + Long totalCount = materialInfomationDOPageResult.getTotalCount(); +// item.setInboundQuantity(item.getInboundQuantity()-totalCount); + // 方案2: 添加边界检查,防止负数 + long calculatedQuantity = item.getInboundQuantity() - totalCount; + item.setInboundQuantity(Math.max(0L, calculatedQuantity)); + }); + + + return pageResult; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckService.java index 5a55f11..f1b88cb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckService.java @@ -61,4 +61,20 @@ public interface MaterialInventoryCheckService { */ PageResult getMaterialInventoryCheckPage(MaterialInventoryCheckPageReqVO pageReqVO); + + /** + * 创建库存盘点表单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + MaterialInventoryCheckRespVO createMaterialInventoryCheckForm(@Valid MaterialInventoryCheckSaveReqVO createReqVO); + + /** + * 获得库存盘点表单 + * + * @param id 编号 + * @return 库存盘点 + */ + MaterialInventoryCheckRespVO getMaterialInventoryCheckForm(Long id); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckServiceImpl.java index caec56e..7b2d646 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryCheckServiceImpl.java @@ -1,14 +1,24 @@ package com.zt.plat.module.qms.resource.material.service; import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckSaveReqVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryCheckBatchDO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryCheckDetailDO; +import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInfomationMapper; +import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInventoryCheckBatchMapper; +import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInventoryCheckDetailMapper; +import jakarta.validation.Valid; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; + import com.zt.plat.module.qms.resource.material.controller.vo.*; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryCheckDO; import com.zt.plat.framework.common.pojo.PageResult; @@ -32,6 +42,16 @@ public class MaterialInventoryCheckServiceImpl implements MaterialInventoryCheck @Resource private MaterialInventoryCheckMapper materialInventoryCheckMapper; + @Resource + private MaterialInventoryCheckBatchMapper materialInventoryCheckBatchMapper;//盘点项目 + + @Resource + private MaterialInventoryCheckDetailMapper materialInventoryCheckDetailMapper;//盘点明细 + + + @Resource + private MaterialInfomationMapper materialInfomationMapper;//物料实例 + @Override public MaterialInventoryCheckRespVO createMaterialInventoryCheck(MaterialInventoryCheckSaveReqVO createReqVO) { // 插入 @@ -59,12 +79,12 @@ public class MaterialInventoryCheckServiceImpl implements MaterialInventoryCheck } @Override - public void deleteMaterialInventoryCheckListByIds(List ids) { + public void deleteMaterialInventoryCheckListByIds(List ids) { // 校验存在 validateMaterialInventoryCheckExists(ids); // 删除 materialInventoryCheckMapper.deleteByIds(ids); - } + } private void validateMaterialInventoryCheckExists(List ids) { List list = materialInventoryCheckMapper.selectByIds(ids); @@ -89,4 +109,75 @@ public class MaterialInventoryCheckServiceImpl implements MaterialInventoryCheck return materialInventoryCheckMapper.selectPage(pageReqVO); } + @Override + @Transactional(rollbackFor = Exception.class) + public MaterialInventoryCheckRespVO createMaterialInventoryCheckForm(@Valid MaterialInventoryCheckSaveReqVO createReqVO) { + // 校验 batchList 不为空 + if (CollUtil.isEmpty(createReqVO.getBatchList())) { + throw exception(MATERIAL_INVENTORY_CHECK_NOT_EXISTS); + } + + /** 插入库存盘点数据 */ + MaterialInventoryCheckDO materialInventoryCheck = BeanUtils.toBean(createReqVO, MaterialInventoryCheckDO.class); + materialInventoryCheckMapper.insert(materialInventoryCheck); + + MaterialInventoryCheckRespVO resultVo = BeanUtils.toBean(materialInventoryCheck, MaterialInventoryCheckRespVO.class); + + // 获取生成的ID作为父ID + Long parentId = materialInventoryCheck.getId(); + + + /** 插入库存盘点项目数据 */ + List batchList = createReqVO.getBatchList(); + List BatchRespVOList = new ArrayList<>(); + for (MaterialInventoryCheckBatchSaveReqVO batchItem : batchList) { + batchItem.setCheckId(parentId); + // 插入 + MaterialInventoryCheckBatchDO materialInventoryCheckBatch = BeanUtils.toBean(batchItem, MaterialInventoryCheckBatchDO.class); + materialInventoryCheckBatchMapper.insert(materialInventoryCheckBatch); + BatchRespVOList.add(BeanUtils.toBean(materialInventoryCheckBatch, MaterialInventoryCheckBatchRespVO.class)); + } + + /** 根据盘点数据自动填入盘点明细 */ + for (MaterialInventoryCheckBatchRespVO materialInventoryCheckBatchRespVO : BatchRespVOList) { + MaterialInfomationPageReqVO reqVO = new MaterialInfomationPageReqVO(); + reqVO.setProductId(materialInventoryCheckBatchRespVO.getCheckProductId()); + + PageResult materialInfomationDOPageResult = materialInfomationMapper.selectAll(reqVO); + + materialInventoryCheckBatchRespVO.setExpected(String.valueOf(materialInfomationDOPageResult.getList().size()));//以实例数量为应盘数量 + + materialInfomationDOPageResult.getList().forEach(materialInfomationDO -> { + // 插入 + MaterialInventoryCheckDetailDO materialInventoryCheckDetail = new MaterialInventoryCheckDetailDO(); + materialInventoryCheckDetail.setCheckBatchId(materialInventoryCheckBatchRespVO.getId());//盘点项目ID + materialInventoryCheckDetail.setInfomationId(materialInfomationDO.getId());//物料实例ID + materialInventoryCheckDetail.setStatus("0");//待盘点状态 + materialInventoryCheckDetailMapper.insert(materialInventoryCheckDetail); + }); + + } + + + resultVo.setBatchList(BatchRespVOList); + // 返回结果 + return resultVo; + + } + + + @Override + public MaterialInventoryCheckRespVO getMaterialInventoryCheckForm(Long id) { + MaterialInventoryCheckDO micDo = materialInventoryCheckMapper.selectById(id); + if (micDo == null) { + throw exception(MATERIAL_INVENTORY_CHECK_NOT_EXISTS); + } + List BatchDOList= materialInventoryCheckBatchMapper.selectList(new LambdaQueryWrapperX() + .eq(MaterialInventoryCheckBatchDO::getCheckId, micDo.getId())); + + MaterialInventoryCheckRespVO resultVo =BeanUtils.toBean(micDo, MaterialInventoryCheckRespVO.class); + resultVo.setBatchList(BeanUtils.toBean(BatchDOList, MaterialInventoryCheckBatchRespVO.class)); + return resultVo; + } + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailService.java index 1747cb9..551af01 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailService.java @@ -61,4 +61,9 @@ public interface MaterialInventoryInboundDetailService { */ PageResult getMaterialInventoryInboundDetailPage(MaterialInventoryInboundDetailPageReqVO pageReqVO); + + + + PageResult getMaterialInventoryInboundDetailPageList(MaterialInventoryInboundDetailPageReqVO pageReqVO); + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailServiceImpl.java index eabb649..bce83ee 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundDetailServiceImpl.java @@ -89,4 +89,8 @@ public class MaterialInventoryInboundDetailServiceImpl implements MaterialInvent return materialInventoryInboundDetailMapper.selectPage(pageReqVO); } + @Override + public PageResult getMaterialInventoryInboundDetailPageList(MaterialInventoryInboundDetailPageReqVO pageReqVO) { + return materialInventoryInboundDetailMapper.selectPageList(pageReqVO); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundService.java index 7f0e67b..249e7dc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundService.java @@ -67,7 +67,7 @@ public interface MaterialInventoryInboundService { * @param createReqVO * @return */ - PageResultmultiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO); + void multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO); /** * 单个入库/上架 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundServiceImpl.java index 3daa1ec..5024f5e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInventoryInboundServiceImpl.java @@ -106,7 +106,7 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb @Override @Transactional(rollbackFor = Exception.class) - public PageResult multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) { + public void multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) { MaterialInventoryInboundDetailSaveReqVO detail = createReqVO.getDetail(); //判断输入数量是否大于批次剩余数据 @@ -121,10 +121,11 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb List MaterialInfomationDO = new ArrayList(); for (int i = 0; i < detail.getQuantity(); i++) { MaterialInfomationDO materialInfomation = new MaterialInfomationDO(); - materialInfomation.setBatchId(detail.getBatchAssignId()); - materialInfomation.setLocationId(detail.getLocationId()); - materialInfomation.setInventoryInboundId(materialInventoryInbound.getId()); - materialInfomation.setProductId(detail.getProductId()); + materialInfomation.setBatchId(detail.getBatchAssignId());//分发批次ID + materialInfomation.setLocationId(detail.getLocationId());//货位Id + materialInfomation.setInventoryInboundId(materialInventoryInbound.getId());//入库ID,批量入库的,所以为同一ID,主要是验收申请入库时不一样 + materialInfomation.setProductId(detail.getProductId());//分类ID + materialInfomation.setPublishStatus("1");//批量入库默认上架 MaterialInfomationDO.add(materialInfomation); } @@ -142,8 +143,6 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb detailDO.setInboundWay("批量入库"); materialInventoryInboundDetailMapper.insert(detailDO); }); - - return null; } @Override @@ -178,6 +177,10 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb } MaterialBatchAssignDO materialBatchAssignDO = materialBatchAssignMapper.selectById(detail.getBatchAssignId()); + if (materialBatchAssignDO==null){ + throw exception(new ErrorCode(1_032_150_000, "批次信息错误-"+detail.getBatchAssignId())); + } + //判断输入数量是否大于批次剩余数据 if (materialBatchAssignDO.getInboundQuantity() < detail.getQuantity()) { throw exception(new ErrorCode(1_032_150_000, "批次剩余量不足")); diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryMapper.xml index f145d6f..e1be1da 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryMapper.xml @@ -79,7 +79,7 @@ PDT.CNL_FLG, PDT.SYS_DEPT_CD, PDT.RMK, - ASN_SUM.INB_QTY_SUM AS INB_QTY + COALESCE(ASN_SUM.INB_QTY_SUM, 0) AS INB_QTY FROM T_MTRL_PDT PDT LEFT JOIN (