新购入库库存变化记录

This commit is contained in:
mashuai 2024-12-11 16:49:38 +08:00
parent 7fc237a04a
commit c1c8b2bb91
12 changed files with 87 additions and 88 deletions

View File

@ -1,10 +1,12 @@
package com.bonus.common.biz.aspect; package com.bonus.common.biz.aspect;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.annotation.StoreLog; import com.bonus.common.biz.annotation.StoreLog;
import com.bonus.common.biz.domain.BmStorageLog; import com.bonus.common.biz.domain.BmStorageLog;
import com.bonus.common.biz.domain.lease.LeaseOutDetails; import com.bonus.common.biz.domain.lease.LeaseOutDetails;
import com.bonus.common.biz.domain.lease.LeaseOutRequestVo; import com.bonus.common.biz.domain.lease.LeaseOutRequestVo;
import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.common.biz.service.AsyncStoreLogService; import com.bonus.common.biz.service.AsyncStoreLogService;
import com.bonus.common.biz.utils.HttpResult; import com.bonus.common.biz.utils.HttpResult;
import com.bonus.common.core.constant.SecurityConstants; import com.bonus.common.core.constant.SecurityConstants;
@ -135,86 +137,35 @@ public class StoreLogAspect {
BmStorageLog bmStorageLog = new BmStorageLog(); BmStorageLog bmStorageLog = new BmStorageLog();
bmStorageLog.setTaskId(String.valueOf(leaseOutDetails.getParentId())); bmStorageLog.setTaskId(String.valueOf(leaseOutDetails.getParentId()));
bmStorageLog.setTypeId(leaseOutDetails.getTypeId()); bmStorageLog.setTypeId(leaseOutDetails.getTypeId());
bmStorageLog.setTypeName(leaseOutDetails.getTypeName()); bmStorageLog.setTypeName(leaseOutDetails.getTypeModelName());
bmStorageLog.setManageType(String.valueOf(leaseOutDetails.getManageType())); bmStorageLog.setManageType(String.valueOf(leaseOutDetails.getManageType()));
bmStorageLog.setTypeModelName(leaseOutDetails.getTypeModelName()); bmStorageLog.setTypeModelName(leaseOutDetails.getTypeName());
bmStorageLog.setPreStoreNum(leaseOutDetails.getPreStoreNum()); bmStorageLog.setPreStoreNum(leaseOutDetails.getPreStoreNum());
bmStorageLog.setOutNum(Objects.isNull(leaseOutDetails.getInputNum()) ? BigDecimal.ZERO : leaseOutDetails.getInputNum()); bmStorageLog.setOutNum(Objects.isNull(leaseOutDetails.getInputNum()) ? BigDecimal.ZERO : leaseOutDetails.getInputNum());
bmStorageLog.setPostStoreNum(leaseOutDetails.getPostStoreNum()); bmStorageLog.setPostStoreNum(leaseOutDetails.getPostStoreNum());
bmStorageLogList.add(bmStorageLog); bmStorageLogList.add(bmStorageLog);
} }
} }
// // 盘点入库操作 // 新购验收任务 PurchaseMacodeInfoController.modifyManageStatus
// if (joinPoint.getArgs()[0] instanceof SavePutInfoDto) { if (joinPoint.getArgs()[0] instanceof PurchaseDto) {
// SavePutInfoDto savePutInfoDto = (SavePutInfoDto) joinPoint.getArgs()[0]; PurchaseDto purchaseDto = (PurchaseDto) joinPoint.getArgs()[0];
// for (MachIneDto machineDto : savePutInfoDto.getMachIneDtoList()) { BmStorageLog bmStorageLog = new BmStorageLog();
// BmStorageLog bmStorageLog = new BmStorageLog(); // 公共部分
// bmStorageLog.setTypeId(Integer.parseInt(machineDto.getTypeId())); bmStorageLog.setTypeId(Long.valueOf(purchaseDto.getTypeId()));
// bmStorageLog.setTypeName(machineDto.getMaCode()); bmStorageLog.setTypeName(purchaseDto.getTypeName());
// bmStorageLog.setPreStoreNum(Objects.isNull(machineDto.getNum()) ? 0 : machineDto.getNum().intValue()); bmStorageLog.setTypeModelName(purchaseDto.getTypeModelName());
// bmStorageLog.setInNum(Objects.isNull(machineDto.getPutInStoreNum()) ? 0 : machineDto.getPutInStoreNum().intValue()); bmStorageLog.setManageType(String.valueOf(purchaseDto.getManageType()));
// bmStorageLog.setPostStoreNum(bmStorageLog.getPreStoreNum() + bmStorageLog.getInNum()); bmStorageLog.setPostStoreNum(purchaseDto.getPostStoreNum());
// bmStorageLogList.add(bmStorageLog); bmStorageLog.setPreStoreNum(purchaseDto.getPreStoreNum());
// } bmStorageLog.setTaskId(String.valueOf(purchaseDto.getTaskId()));
// } // 根据 InPutList 设置 InNum
// // 新购验收任务 PurchaseMacodeInfoController.modifyManageStatus if (CollectionUtils.isNotEmpty(purchaseDto.getInPutList())) {
// if (joinPoint.getArgs()[0] instanceof MaInputVO) { bmStorageLog.setInNum(BigDecimal.valueOf(purchaseDto.getInPutList().size()));
// MaInputVO maInputVO = (MaInputVO) joinPoint.getArgs()[0]; } else {
// for (MaInputRecord maInputRecord : maInputVO.getInputRecordList()) { bmStorageLog.setInNum(purchaseDto.getInputNum());
// BmStorageLog bmStorageLog = new BmStorageLog(); }
// bmStorageLog.setTypeId(Objects.isNull(maInputRecord.getTypeId()) ? 0 : maInputRecord.getTypeId().intValue()); bmStorageLogList.add(bmStorageLog);
// bmStorageLog.setTypeName(maInputRecord.getMaCode()); }
// bmStorageLog.setPostStoreNum(Objects.isNull(maInputRecord.getNum()) ? 0: maInputRecord.getNum().intValue());
// bmStorageLog.setInNum(Objects.isNull(maInputRecord.getInputNum()) ? 0: maInputRecord.getInputNum().intValue());
// bmStorageLog.setPreStoreNum(bmStorageLog.getPostStoreNum() - bmStorageLog.getInNum());
// bmStorageLog.setTaskId(String.valueOf(maInputRecord.getTaskId()));
// bmStorageLogList.add(bmStorageLog);
// }
// }
// // 领料出库
// if (joinPoint.getArgs()[0] instanceof List &&
// ((List) joinPoint.getArgs()[0]).stream().noneMatch((o -> !(o instanceof LeaseOutDetails)))) {
// List<LeaseOutDetails> leaseOutDetails = (List<LeaseOutDetails>)joinPoint.getArgs()[0];
// for (LeaseOutDetails lod : leaseOutDetails) {
// BmStorageLog bmStorageLog = new BmStorageLog();
// bmStorageLog.setTaskId(String.valueOf(lod.getTaskId()));
// bmStorageLog.setTypeId(lod.getTypeId());
// bmStorageLog.setTypeName(lod.getMaCode());
// bmStorageLog.setPreStoreNum(lod.getPreStoreNum());
// bmStorageLog.setOutNum(Objects.isNull(lod.getInputNum()) ? 0 : lod.getInputNum().intValue());
// bmStorageLog.setPostStoreNum(lod.getPostStoreNum());
// bmStorageLogList.add(bmStorageLog);
// }
// }
// if (joinPoint.getArgs()[0] instanceof LeaseOutDetails) {
// LeaseOutDetails lod = (LeaseOutDetails)joinPoint.getArgs()[0];
// BmStorageLog bmStorageLog = new BmStorageLog();
// bmStorageLog.setTaskId(String.valueOf(lod.getTaskId()));
// bmStorageLog.setTypeId(lod.getTypeId());
// bmStorageLog.setTypeName(lod.getMaCode());
// bmStorageLog.setPreStoreNum(lod.getPreStoreNum());
// bmStorageLog.setOutNum(Objects.isNull(lod.getInputNum()) ? 0 : lod.getInputNum().intValue());
// bmStorageLog.setPostStoreNum(lod.getPostStoreNum());
// bmStorageLogList.add(bmStorageLog);
// }
// // 退料接收-完成退料
// if (joinPoint.getArgs()[0] instanceof BackApplyInfo) {
// BackApplyInfo bai = (BackApplyInfo)joinPoint.getArgs()[0];
// BmStorageLog bmStorageLog = new BmStorageLog();
// bmStorageLog.setTaskId(String.valueOf(bai.getTaskId()));
// bmStorageLog.setTypeId(Integer.parseInt(bai.getTypeId()));
// bmStorageLog.setTypeName(bai.getMaCode());
// bmStorageLog.setPreStoreNum(bai.getNum());
// bmStorageLog.setBackNum(bai.getBackNum());
// bmStorageLog.setPassNum(bai.getPassNum());
// bmStorageLog.setMaintenanceNum(bai.getMaintenanceNum());
// bmStorageLog.setScrapNum(bai.getScrapNum());
// bmStorageLog.setPostStoreNum(bai.getPostStoreNum());
// bmStorageLogList.add(bmStorageLog);
// }
// } else {
// log.warn("没有获取到请求参数{},或请求方式不是POST、PUT请求:{}", joinPoint.getSignature(), requestMethod);
// }
} }
} }
} }

View File

@ -79,9 +79,9 @@ public class LeaseOutDetails extends BaseEntity {
/** 操作后库存 */ /** 操作后库存 */
private BigDecimal postStoreNum; private BigDecimal postStoreNum;
/** 类型名称 */ /** 规格型号 */
private String typeName; private String typeName;
/** 规格型号 */ /** 类型名称 */
private String typeModelName; private String typeModelName;
} }

View File

@ -1,4 +1,4 @@
package com.bonus.material.purchase.domain.dto; package com.bonus.common.biz.domain.purchase;
import com.bonus.common.core.annotation.Excel; import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -7,6 +7,7 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -32,7 +33,7 @@ public class PurchaseDto {
private Integer supplierId; private Integer supplierId;
@ApiModelProperty(value="入库数量") @ApiModelProperty(value="入库数量")
private Integer inputNum; private BigDecimal inputNum;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
private String startTime; private String startTime;
@ -97,6 +98,9 @@ public class PurchaseDto {
@ApiModelProperty(value = "验收结论") @ApiModelProperty(value = "验收结论")
private String checkResult; private String checkResult;
@ApiModelProperty(value = "出库类型 0编码出库 1数量出库 2成套出库")
private String manageType;
private String createBy; private String createBy;
private Date createTime; private Date createTime;
@ -104,4 +108,16 @@ public class PurchaseDto {
private String updateBy; private String updateBy;
private Date updateTime; private Date updateTime;
/** 操作前库存 */
private BigDecimal preStoreNum;
/** 操作后库存 */
private BigDecimal postStoreNum;
/** 类型名称 */
private String typeName;
/** 规格型号 */
private String typeModelName;
} }

View File

@ -8,7 +8,7 @@ import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.common.annotation.PreventRepeatSubmit;
import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.service.IPurchaseBindService; import com.bonus.material.purchase.service.IPurchaseBindService;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;

View File

@ -8,7 +8,7 @@ import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.common.annotation.PreventRepeatSubmit;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.service.IPurchaseStorageService; import com.bonus.material.purchase.service.IPurchaseStorageService;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;

View File

@ -1,7 +1,7 @@
package com.bonus.material.purchase.mapper; package com.bonus.material.purchase.mapper;
import com.bonus.material.purchase.domain.PurchaseCheckDetails; import com.bonus.material.purchase.domain.PurchaseCheckDetails;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;

View File

@ -1,6 +1,6 @@
package com.bonus.material.purchase.mapper; package com.bonus.material.purchase.mapper;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;

View File

@ -1,7 +1,7 @@
package com.bonus.material.purchase.service; package com.bonus.material.purchase.service;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;

View File

@ -1,7 +1,7 @@
package com.bonus.material.purchase.service; package com.bonus.material.purchase.service;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import java.util.List; import java.util.List;

View File

@ -11,7 +11,7 @@ import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.config.RemoteConfig;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.mapper.PurchaseBindMapper;
import com.bonus.material.purchase.service.IPurchaseBindService; import com.bonus.material.purchase.service.IPurchaseBindService;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;

View File

@ -1,20 +1,24 @@
package com.bonus.material.purchase.service.impl; package com.bonus.material.purchase.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum; import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum; import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.lease.mapper.LeaseOutDetailsMapper;
import com.bonus.material.ma.domain.Type;
import com.bonus.material.ma.mapper.MachineMapper; import com.bonus.material.ma.mapper.MachineMapper;
import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.config.RemoteConfig;
import com.bonus.material.purchase.domain.PurchaseCheckDetails; import com.bonus.material.purchase.domain.PurchaseCheckDetails;
import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.mapper.PurchaseBindMapper;
import com.bonus.material.purchase.mapper.PurchaseStorageMapper; import com.bonus.material.purchase.mapper.PurchaseStorageMapper;
import com.bonus.material.purchase.service.IPurchaseStorageService; import com.bonus.material.purchase.service.IPurchaseStorageService;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.task.mapper.TmTaskMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -36,7 +40,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
private PurchaseStorageMapper purchaseStorageMapper; private PurchaseStorageMapper purchaseStorageMapper;
@Resource @Resource
private MachineMapper machineMapper; private LeaseOutDetailsMapper leaseOutDetailsMapper;
@Resource @Resource
private PurchaseBindMapper purchaseBindMapper; private PurchaseBindMapper purchaseBindMapper;
@ -206,10 +210,14 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
int result = 0; int result = 0;
try { try {
//判断为数量还是编码入库 //判断为数量还是编码入库
purchaseDto.setPreStoreNum(getStorageNum(purchaseDto));
if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) { if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) {
//数量入库 //数量入库
List<PurchaseVo> details = purchaseBindMapper.getDetails(purchaseDto); List<PurchaseVo> details = purchaseBindMapper.getDetails(purchaseDto);
if (CollectionUtils.isNotEmpty(details)) {
purchaseDto.setInputNum(details.get(0).getCheckNum());
result += updatePurchaseInfoAndDetails(details.get(0), Integer.parseInt(purchaseDto.getPurchaseId())); result += updatePurchaseInfoAndDetails(details.get(0), Integer.parseInt(purchaseDto.getPurchaseId()));
}
} else { } else {
//编码入库 //编码入库
List<PurchaseVo> purchaseVoList = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto); List<PurchaseVo> purchaseVoList = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto);
@ -235,6 +243,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
} }
List<PurchaseVo> statusList = purchaseStorageMapper.select(purchaseDto.getTaskId()); List<PurchaseVo> statusList = purchaseStorageMapper.select(purchaseDto.getTaskId());
result += updateTaskStatus(statusList); result += updateTaskStatus(statusList);
purchaseDto.setPostStoreNum(getStorageNum(purchaseDto));
if (result > 0) { if (result > 0) {
return AjaxResult.success("入库成功"); return AjaxResult.success("入库成功");
} }
@ -244,6 +253,29 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
} }
/**
* 获取库存数量
* @param record
* @return
*/
private BigDecimal getStorageNum(PurchaseDto record) {
if (StringUtils.isNull(record)) {
return BigDecimal.ZERO;
}
//判断(ma_type 设备规格表)中的库存够不够出库的
LeaseOutDetails leaseOutDetails = new LeaseOutDetails();
leaseOutDetails.setTypeId(Long.valueOf(record.getTypeId()));
Type maType = leaseOutDetailsMapper.selectByTypeId(leaseOutDetails);
if (maType != null) {
if ("1".equals(maType.getManageType())) {
return maType.getStorageNum();
} else {
return BigDecimal.valueOf(leaseOutDetailsMapper.getCountOfCodeMachine(leaseOutDetails));
}
}
return BigDecimal.ZERO;
}
/** /**
* 更新采购单和采购明细 * 更新采购单和采购明细
* @param detail * @param detail

View File

@ -256,7 +256,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
qr_code DESC qr_code DESC
</select> </select>
<select id="selectByCode" resultType="com.bonus.material.purchase.domain.dto.PurchaseDto"> <select id="selectByCode" resultType="com.bonus.common.biz.domain.purchase.PurchaseDto">
SELECT SELECT
task_id as taskId, task_id as taskId,
type_id as typeId, type_id as typeId,