Compare commits
2 Commits
9eec0bb05e
...
33543e5330
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33543e5330 | ||
|
|
6a3d585802 |
@@ -37,7 +37,7 @@ import com.zt.plat.module.qms.resource.material.service.MaterialInventoryCheckSe
|
|||||||
|
|
||||||
@Tag(name = "管理后台 - 库存盘点")
|
@Tag(name = "管理后台 - 库存盘点")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/qms/material-inventory-check")
|
@RequestMapping("/qms/resource/material-inventory-check")
|
||||||
@Validated
|
@Validated
|
||||||
@FileUploadController(source = "qms.materialinventorycheck")
|
@FileUploadController(source = "qms.materialinventorycheck")
|
||||||
public class MaterialInventoryCheckController extends AbstractFileUploadController implements BusinessControllerMarker{
|
public class MaterialInventoryCheckController extends AbstractFileUploadController implements BusinessControllerMarker{
|
||||||
@@ -115,4 +115,21 @@ public class MaterialInventoryCheckController extends AbstractFileUploadControll
|
|||||||
BeanUtils.toBean(list, MaterialInventoryCheckRespVO.class));
|
BeanUtils.toBean(list, MaterialInventoryCheckRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/create-form")
|
||||||
|
@Operation(summary = "创建库存盘点")
|
||||||
|
public CommonResult<MaterialInventoryCheckRespVO> 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<MaterialInventoryCheckRespVO> getMaterialInventoryCheckForm(@RequestParam("id") Long id) {
|
||||||
|
|
||||||
|
return success(materialInventoryCheckService.getMaterialInventoryCheckForm(id));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -119,8 +119,9 @@ public class MaterialInventoryInboundController extends AbstractFileUploadContro
|
|||||||
|
|
||||||
@PostMapping("/multi-put")
|
@PostMapping("/multi-put")
|
||||||
@Operation(summary = "批量上架")
|
@Operation(summary = "批量上架")
|
||||||
public CommonResult<PageResult<MaterialInventoryInboundRespVO>> createMaterialInventoryInboundMulti(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) {
|
public CommonResult<Boolean> createMaterialInventoryInboundMulti(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||||
return success(materialInventoryInboundService.multiCreateMaterialInventoryInbound(createReqVO));
|
materialInventoryInboundService.multiCreateMaterialInventoryInbound(createReqVO);
|
||||||
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("single-put")
|
@PostMapping("single-put")
|
||||||
|
|||||||
@@ -115,4 +115,10 @@ public class MaterialInventoryInboundDetailController extends AbstractFileUpload
|
|||||||
BeanUtils.toBean(list, MaterialInventoryInboundDetailRespVO.class));
|
BeanUtils.toBean(list, MaterialInventoryInboundDetailRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page-list")
|
||||||
|
@Operation(summary = "获得入库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等分页")
|
||||||
|
public CommonResult<PageResult<MaterialInventoryInboundDetailRespVO>> getMaterialInventoryInboundDetailPageList(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO) {
|
||||||
|
PageResult<MaterialInventoryInboundDetailRespVO> pageResult = materialInventoryInboundDetailService.getMaterialInventoryInboundDetailPageList(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, MaterialInventoryInboundDetailRespVO.class));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -79,7 +79,7 @@ public class MaterialInfomationPageReqVO extends PageParam {
|
|||||||
List<Long> productIds;
|
List<Long> productIds;
|
||||||
|
|
||||||
@Schema(description = "入库id")
|
@Schema(description = "入库id")
|
||||||
private long inventoryInboundId;
|
private Long inventoryInboundId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -36,4 +36,7 @@ public class MaterialInventoryCheckBatchSaveReqVO {
|
|||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "盘点明细")
|
||||||
|
private List<MaterialInventoryCheckDetailSaveReqVO> detailList;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -54,4 +54,6 @@ public class MaterialInventoryCheckPageReqVO extends PageParam {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] createTime;
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
}
|
}
|
||||||
@@ -68,4 +68,7 @@ public class MaterialInventoryCheckRespVO {
|
|||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@Schema(description = "盘点项")
|
||||||
|
@ExcelProperty("盘点项")
|
||||||
|
private List<MaterialInventoryCheckBatchRespVO> batchList;
|
||||||
}
|
}
|
||||||
@@ -50,4 +50,7 @@ public class MaterialInventoryCheckSaveReqVO {
|
|||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "盘点项")
|
||||||
|
private List<MaterialInventoryCheckBatchSaveReqVO> batchList;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -50,4 +50,7 @@ public class MaterialInventoryInboundDetailPageReqVO extends PageParam {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] createTime;
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
@Schema(description = "物料大类Id")
|
||||||
|
private Long productId;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -63,4 +63,6 @@ public class MaterialInventoryInboundDetailRespVO {
|
|||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private Long productId;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ public class MaterialBatchAssignDO extends BusinessBaseDO {
|
|||||||
* 产品id
|
* 产品id
|
||||||
*/
|
*/
|
||||||
@TableField("PDT_ID")
|
@TableField("PDT_ID")
|
||||||
private String productId;
|
private Long productId;
|
||||||
/**
|
/**
|
||||||
* 库房ID
|
* 库房ID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -44,7 +44,10 @@ public interface MaterialInfomationMapper extends BaseMapperX<MaterialInfomation
|
|||||||
default PageResult<MaterialInfomationDO> selectAll(MaterialInfomationPageReqVO reqVO) {
|
default PageResult<MaterialInfomationDO> selectAll(MaterialInfomationPageReqVO reqVO) {
|
||||||
reqVO.setPageSize(-1);
|
reqVO.setPageSize(-1);
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialInfomationDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialInfomationDO>()
|
||||||
.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()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
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.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.dal.dataobject.MaterialInventoryInboundDetailDO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailPageReqVO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等 Mapper
|
* 入库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等 Mapper
|
||||||
*
|
*
|
||||||
@@ -32,4 +41,13 @@ public interface MaterialInventoryInboundDetailMapper extends BaseMapperX<Materi
|
|||||||
.orderByDesc(MaterialInventoryInboundDetailDO::getId));
|
.orderByDesc(MaterialInventoryInboundDetailDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default PageResult<MaterialInventoryInboundDetailRespVO> selectPageList(MaterialInventoryInboundDetailPageReqVO reqVO) {
|
||||||
|
return selectJoinPage(reqVO, MaterialInventoryInboundDetailRespVO.class, new MPJLambdaWrapperX<MaterialInventoryInboundDetailDO>()
|
||||||
|
.selectAll(MaterialInventoryInboundDetailDO.class)
|
||||||
|
.selectAs(MaterialInfomationDO::getProductId, MaterialInventoryInboundDetailRespVO::getProductId)
|
||||||
|
.leftJoin(MaterialInfomationDO.class, MaterialInfomationDO::getId, MaterialInventoryInboundDetailDO::getMaterialInfomationId)
|
||||||
|
.eqIfPresent(MaterialInfomationDO::getProductId, reqVO.getProductId())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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.MaterialBatchAssignPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignRespVO;
|
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.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 jakarta.validation.Valid;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@@ -34,6 +37,9 @@ public class MaterialBatchAssignServiceImpl implements MaterialBatchAssignServic
|
|||||||
@Resource
|
@Resource
|
||||||
private MaterialBatchAssignMapper materialBatchAssignMapper;
|
private MaterialBatchAssignMapper materialBatchAssignMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MaterialInfomationMapper materialInfomationMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MaterialBatchAssignRespVO createMaterialBatchAssign(MaterialBatchAssignSaveReqVO createReqVO) {
|
public MaterialBatchAssignRespVO createMaterialBatchAssign(MaterialBatchAssignSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@@ -93,7 +99,26 @@ public class MaterialBatchAssignServiceImpl implements MaterialBatchAssignServic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<MaterialBatchAssignDO> getMaterialBatchAssignPage(MaterialBatchAssignPageReqVO pageReqVO) {
|
public PageResult<MaterialBatchAssignDO> getMaterialBatchAssignPage(MaterialBatchAssignPageReqVO pageReqVO) {
|
||||||
return materialBatchAssignMapper.selectPage(pageReqVO);
|
PageResult<MaterialBatchAssignDO> pageResult = materialBatchAssignMapper.selectPage(pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** 统计批次剩余量需要除去已上架(存在实例)的部分 */
|
||||||
|
pageResult.getList().forEach(item -> {
|
||||||
|
MaterialInfomationPageReqVO infomationPageReqVO = new MaterialInfomationPageReqVO();
|
||||||
|
infomationPageReqVO.setBatchId(item.getId());
|
||||||
|
infomationPageReqVO.setProductId(item.getProductId());
|
||||||
|
infomationPageReqVO.setUsageStatus("0");
|
||||||
|
PageResult<MaterialInfomationDO> 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,4 +61,20 @@ public interface MaterialInventoryCheckService {
|
|||||||
*/
|
*/
|
||||||
PageResult<MaterialInventoryCheckDO> getMaterialInventoryCheckPage(MaterialInventoryCheckPageReqVO pageReqVO);
|
PageResult<MaterialInventoryCheckDO> getMaterialInventoryCheckPage(MaterialInventoryCheckPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建库存盘点表单
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
MaterialInventoryCheckRespVO createMaterialInventoryCheckForm(@Valid MaterialInventoryCheckSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得库存盘点表单
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 库存盘点
|
||||||
|
*/
|
||||||
|
MaterialInventoryCheckRespVO getMaterialInventoryCheckForm(Long id);
|
||||||
}
|
}
|
||||||
@@ -1,14 +1,24 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.service;
|
package com.zt.plat.module.qms.resource.material.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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.MaterialInventoryCheckPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckRespVO;
|
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.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 org.springframework.stereotype.Service;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.*;
|
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.module.qms.resource.material.dal.dataobject.MaterialInventoryCheckDO;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
@@ -32,6 +42,16 @@ public class MaterialInventoryCheckServiceImpl implements MaterialInventoryCheck
|
|||||||
@Resource
|
@Resource
|
||||||
private MaterialInventoryCheckMapper materialInventoryCheckMapper;
|
private MaterialInventoryCheckMapper materialInventoryCheckMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MaterialInventoryCheckBatchMapper materialInventoryCheckBatchMapper;//盘点项目
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MaterialInventoryCheckDetailMapper materialInventoryCheckDetailMapper;//盘点明细
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MaterialInfomationMapper materialInfomationMapper;//物料实例
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MaterialInventoryCheckRespVO createMaterialInventoryCheck(MaterialInventoryCheckSaveReqVO createReqVO) {
|
public MaterialInventoryCheckRespVO createMaterialInventoryCheck(MaterialInventoryCheckSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@@ -59,12 +79,12 @@ public class MaterialInventoryCheckServiceImpl implements MaterialInventoryCheck
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteMaterialInventoryCheckListByIds(List<Long> ids) {
|
public void deleteMaterialInventoryCheckListByIds(List<Long> ids) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateMaterialInventoryCheckExists(ids);
|
validateMaterialInventoryCheckExists(ids);
|
||||||
// 删除
|
// 删除
|
||||||
materialInventoryCheckMapper.deleteByIds(ids);
|
materialInventoryCheckMapper.deleteByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateMaterialInventoryCheckExists(List<Long> ids) {
|
private void validateMaterialInventoryCheckExists(List<Long> ids) {
|
||||||
List<MaterialInventoryCheckDO> list = materialInventoryCheckMapper.selectByIds(ids);
|
List<MaterialInventoryCheckDO> list = materialInventoryCheckMapper.selectByIds(ids);
|
||||||
@@ -89,4 +109,75 @@ public class MaterialInventoryCheckServiceImpl implements MaterialInventoryCheck
|
|||||||
return materialInventoryCheckMapper.selectPage(pageReqVO);
|
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<MaterialInventoryCheckBatchSaveReqVO> batchList = createReqVO.getBatchList();
|
||||||
|
List<MaterialInventoryCheckBatchRespVO> 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<MaterialInfomationDO> 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<MaterialInventoryCheckBatchDO> BatchDOList= materialInventoryCheckBatchMapper.selectList(new LambdaQueryWrapperX<MaterialInventoryCheckBatchDO>()
|
||||||
|
.eq(MaterialInventoryCheckBatchDO::getCheckId, micDo.getId()));
|
||||||
|
|
||||||
|
MaterialInventoryCheckRespVO resultVo =BeanUtils.toBean(micDo, MaterialInventoryCheckRespVO.class);
|
||||||
|
resultVo.setBatchList(BeanUtils.toBean(BatchDOList, MaterialInventoryCheckBatchRespVO.class));
|
||||||
|
return resultVo;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -61,4 +61,9 @@ public interface MaterialInventoryInboundDetailService {
|
|||||||
*/
|
*/
|
||||||
PageResult<MaterialInventoryInboundDetailDO> getMaterialInventoryInboundDetailPage(MaterialInventoryInboundDetailPageReqVO pageReqVO);
|
PageResult<MaterialInventoryInboundDetailDO> getMaterialInventoryInboundDetailPage(MaterialInventoryInboundDetailPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PageResult<MaterialInventoryInboundDetailRespVO> getMaterialInventoryInboundDetailPageList(MaterialInventoryInboundDetailPageReqVO pageReqVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -89,4 +89,8 @@ public class MaterialInventoryInboundDetailServiceImpl implements MaterialInvent
|
|||||||
return materialInventoryInboundDetailMapper.selectPage(pageReqVO);
|
return materialInventoryInboundDetailMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<MaterialInventoryInboundDetailRespVO> getMaterialInventoryInboundDetailPageList(MaterialInventoryInboundDetailPageReqVO pageReqVO) {
|
||||||
|
return materialInventoryInboundDetailMapper.selectPageList(pageReqVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@ public interface MaterialInventoryInboundService {
|
|||||||
* @param createReqVO
|
* @param createReqVO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PageResult<MaterialInventoryInboundRespVO>multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO);
|
void multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单个入库/上架
|
* 单个入库/上架
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public PageResult<MaterialInventoryInboundRespVO> multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
public void multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||||
MaterialInventoryInboundDetailSaveReqVO detail = createReqVO.getDetail();
|
MaterialInventoryInboundDetailSaveReqVO detail = createReqVO.getDetail();
|
||||||
|
|
||||||
//判断输入数量是否大于批次剩余数据
|
//判断输入数量是否大于批次剩余数据
|
||||||
@@ -121,10 +121,11 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb
|
|||||||
List<MaterialInfomationDO> MaterialInfomationDO = new ArrayList<MaterialInfomationDO>();
|
List<MaterialInfomationDO> MaterialInfomationDO = new ArrayList<MaterialInfomationDO>();
|
||||||
for (int i = 0; i < detail.getQuantity(); i++) {
|
for (int i = 0; i < detail.getQuantity(); i++) {
|
||||||
MaterialInfomationDO materialInfomation = new MaterialInfomationDO();
|
MaterialInfomationDO materialInfomation = new MaterialInfomationDO();
|
||||||
materialInfomation.setBatchId(detail.getBatchAssignId());
|
materialInfomation.setBatchId(detail.getBatchAssignId());//分发批次ID
|
||||||
materialInfomation.setLocationId(detail.getLocationId());
|
materialInfomation.setLocationId(detail.getLocationId());//货位Id
|
||||||
materialInfomation.setInventoryInboundId(materialInventoryInbound.getId());
|
materialInfomation.setInventoryInboundId(materialInventoryInbound.getId());//入库ID,批量入库的,所以为同一ID,主要是验收申请入库时不一样
|
||||||
materialInfomation.setProductId(detail.getProductId());
|
materialInfomation.setProductId(detail.getProductId());//分类ID
|
||||||
|
materialInfomation.setPublishStatus("1");//批量入库默认上架
|
||||||
MaterialInfomationDO.add(materialInfomation);
|
MaterialInfomationDO.add(materialInfomation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,8 +143,6 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb
|
|||||||
detailDO.setInboundWay("批量入库");
|
detailDO.setInboundWay("批量入库");
|
||||||
materialInventoryInboundDetailMapper.insert(detailDO);
|
materialInventoryInboundDetailMapper.insert(detailDO);
|
||||||
});
|
});
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -178,6 +177,10 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb
|
|||||||
}
|
}
|
||||||
|
|
||||||
MaterialBatchAssignDO materialBatchAssignDO = materialBatchAssignMapper.selectById(detail.getBatchAssignId());
|
MaterialBatchAssignDO materialBatchAssignDO = materialBatchAssignMapper.selectById(detail.getBatchAssignId());
|
||||||
|
if (materialBatchAssignDO==null){
|
||||||
|
throw exception(new ErrorCode(1_032_150_000, "批次信息错误-"+detail.getBatchAssignId()));
|
||||||
|
}
|
||||||
|
|
||||||
//判断输入数量是否大于批次剩余数据
|
//判断输入数量是否大于批次剩余数据
|
||||||
if (materialBatchAssignDO.getInboundQuantity() < detail.getQuantity()) {
|
if (materialBatchAssignDO.getInboundQuantity() < detail.getQuantity()) {
|
||||||
throw exception(new ErrorCode(1_032_150_000, "批次剩余量不足"));
|
throw exception(new ErrorCode(1_032_150_000, "批次剩余量不足"));
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
PDT.CNL_FLG,
|
PDT.CNL_FLG,
|
||||||
PDT.SYS_DEPT_CD,
|
PDT.SYS_DEPT_CD,
|
||||||
PDT.RMK,
|
PDT.RMK,
|
||||||
ASN_SUM.INB_QTY_SUM AS INB_QTY
|
COALESCE(ASN_SUM.INB_QTY_SUM, 0) AS INB_QTY
|
||||||
FROM
|
FROM
|
||||||
T_MTRL_PDT PDT
|
T_MTRL_PDT PDT
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
|
|||||||
Reference in New Issue
Block a user