库存日志记录
This commit is contained in:
parent
e710a3df1c
commit
1bcd5b8993
|
|
@ -7,6 +7,7 @@ import com.bonus.common.biz.domain.BmStorageLog;
|
|||
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
|
||||
import com.bonus.common.biz.domain.lease.LeaseOutRequestVo;
|
||||
import com.bonus.common.biz.domain.purchase.PurchaseDto;
|
||||
import com.bonus.common.biz.domain.repair.RepairInputDetails;
|
||||
import com.bonus.common.biz.enums.InputOutEnum;
|
||||
import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
|
||||
import com.bonus.common.biz.service.AsyncStoreLogService;
|
||||
|
|
@ -25,7 +26,6 @@ import org.aspectj.lang.annotation.AfterReturning;
|
|||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -172,6 +172,25 @@ public class StoreLogAspect {
|
|||
bmStorageLog.setOutType(InputOutEnum.CODE_DEVICE.getTypeId());
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
//标准箱
|
||||
if (leaseOutDetails.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) {
|
||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||
bmStorageLog.setTaskId(String.valueOf(leaseOutDetails.getParentId()));
|
||||
bmStorageLog.setTypeId(leaseOutDetails.getTypeId());
|
||||
bmStorageLog.setTypeName(leaseOutDetails.getTypeName());
|
||||
bmStorageLog.setManageType(String.valueOf(leaseOutDetails.getManageType()));
|
||||
bmStorageLog.setTypeModelName(leaseOutDetails.getTypeModelName());
|
||||
String maCode = lod.getLeaseOutDetailsList().stream()
|
||||
.map(LeaseOutDetails::getMaCode)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.joining(","));
|
||||
bmStorageLog.setMaCode(maCode);
|
||||
bmStorageLog.setPreStoreNum(leaseOutDetails.getPreStoreNum());
|
||||
bmStorageLog.setOutNum(BigDecimal.valueOf(lod.getLeaseOutDetailsList().size()));
|
||||
bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum()));
|
||||
bmStorageLog.setOutType(InputOutEnum.STANDARD_BOX.getTypeId());
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
}
|
||||
// 新购验收任务
|
||||
if (joinPoint.getArgs()[0] instanceof PurchaseDto) {
|
||||
|
|
@ -203,7 +222,58 @@ public class StoreLogAspect {
|
|||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
//修饰入库库存变化 /repair_input_details/warehouse
|
||||
|
||||
if (joinPoint.getArgs()[0] instanceof RepairInputDetails) {
|
||||
RepairInputDetails repairInputDetails = (RepairInputDetails) joinPoint.getArgs()[0];
|
||||
if (repairInputDetails.getTaskId() != null && repairInputDetails.getTypeId() != null && CollectionUtils.isEmpty(repairInputDetails.getTaskIdList())) {
|
||||
// 内层入库
|
||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||
bmStorageLog.setTaskId(String.valueOf(repairInputDetails.getTaskId()));
|
||||
bmStorageLog.setTypeId(repairInputDetails.getTypeId());
|
||||
bmStorageLog.setPreStoreNum(repairInputDetails.getPreStoreNum());
|
||||
// 编码类型入库
|
||||
if (CollectionUtils.isNotEmpty(repairInputDetails.getMaCodeList())) {
|
||||
bmStorageLog.setManageType(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId()));
|
||||
bmStorageLog.setInNum(BigDecimal.valueOf(repairInputDetails.getMaCodeList().size()));
|
||||
String maCode = repairInputDetails.getMaCodeList().stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(RepairInputDetails::getMaCode)
|
||||
.collect(Collectors.joining(","));
|
||||
bmStorageLog.setMaCode(maCode);
|
||||
bmStorageLog.setInputType(InputOutEnum.CODE_DEVICE.getTypeId());
|
||||
} else {
|
||||
bmStorageLog.setManageType(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId()));
|
||||
bmStorageLog.setInNum(repairInputDetails.getInputNum());
|
||||
bmStorageLog.setInputType(InputOutEnum.NUMBER_DEVICE.getTypeId());
|
||||
}
|
||||
bmStorageLog.setPostStoreNum(repairInputDetails.getPreStoreNum().add(bmStorageLog.getInNum()));
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
// 外层入库
|
||||
} else if (CollectionUtils.isNotEmpty(repairInputDetails.getTaskIdList())) {
|
||||
for (RepairInputDetails inputDetails : repairInputDetails.getDetailsList()) {
|
||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||
bmStorageLog.setTaskId(String.valueOf(inputDetails.getTaskId()));
|
||||
bmStorageLog.setTypeId(inputDetails.getTypeId());
|
||||
bmStorageLog.setPreStoreNum(inputDetails.getPreStoreNum());
|
||||
bmStorageLog.setInNum(inputDetails.getPendingInputNum());
|
||||
// 编码类型入库
|
||||
if (inputDetails.getManageType().equals(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId()))) {
|
||||
bmStorageLog.setManageType(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId()));
|
||||
String maCode = inputDetails.getMaCodeList().stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(RepairInputDetails::getMaCode)
|
||||
.collect(Collectors.joining(","));
|
||||
bmStorageLog.setMaCode(maCode);
|
||||
bmStorageLog.setInputType(InputOutEnum.CODE_DEVICE.getTypeId());
|
||||
// 数量类型入库
|
||||
} else if (inputDetails.getManageType().equals(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId()))) {
|
||||
bmStorageLog.setManageType(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId()));
|
||||
bmStorageLog.setInputType(InputOutEnum.NUMBER_DEVICE.getTypeId());
|
||||
}
|
||||
bmStorageLog.setPostStoreNum(inputDetails.getPreStoreNum().add(bmStorageLog.getInNum()));
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,6 +131,8 @@ public class RepairInputDetails extends BaseEntity {
|
|||
@ApiModelProperty(value = "协议号")
|
||||
private Integer agreementId;
|
||||
|
||||
private String manageType;
|
||||
|
||||
/**
|
||||
* 关键字
|
||||
*/
|
||||
|
|
@ -156,4 +158,7 @@ public class RepairInputDetails extends BaseEntity {
|
|||
@ApiModelProperty(value = "编码列表")
|
||||
private List<RepairInputDetails> maCodeList;
|
||||
|
||||
@ApiModelProperty(value = "详情列表")
|
||||
private List<RepairInputDetails> detailsList;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -194,13 +194,13 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService {
|
|||
if (res == 0) {
|
||||
throw new RuntimeException("出库失败,插入结算记录失败");
|
||||
}
|
||||
if (record.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) {
|
||||
/*if (record.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) {
|
||||
// 6、如果标准箱入库,需要将设备从标准箱移出
|
||||
res = updateBoxBind(record);
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("出库失败,移出设备失败");
|
||||
}
|
||||
}
|
||||
}*/
|
||||
} else {
|
||||
return AjaxResult.error("领料出库失败,机具库存不足");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,4 +115,11 @@ public interface RepairInputDetailsMapper {
|
|||
* @return
|
||||
*/
|
||||
Long selectBackIdByTaskId(Long taskId);
|
||||
|
||||
/**
|
||||
* 根据任务id集合查询维修详情
|
||||
* @param taskIdList
|
||||
* @return
|
||||
*/
|
||||
List<RepairInputDetails> selectRepairDetails(@Param("list") List<Long> taskIdList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,6 +172,14 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService
|
|||
// 内层入库
|
||||
result += processInnerStorage(repairInputDetails);
|
||||
} else if (CollectionUtils.isNotEmpty(repairInputDetails.getTaskIdList())) {
|
||||
// 查询外层任务列表,仅供库存日志使用
|
||||
List<RepairInputDetails> list = repairInputDetailsMapper.selectRepairDetails(repairInputDetails.getTaskIdList());
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
for (RepairInputDetails inputDetails : list) {
|
||||
repairInputDetails.setPreStoreNum(getStorageNum(inputDetails));
|
||||
}
|
||||
}
|
||||
repairInputDetails.setDetailsList(list);
|
||||
// 外层入库
|
||||
result += processOuterStorage(repairInputDetails);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,6 +189,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
rid.task_id = #{taskId}
|
||||
</select>
|
||||
|
||||
<select id="selectRepairDetails" resultType="com.bonus.common.biz.domain.repair.RepairInputDetails">
|
||||
SELECT
|
||||
rd.task_id AS taskId,
|
||||
rd.type_id AS typeId,
|
||||
rd.repair_num AS repairNum,
|
||||
rd.input_num AS inputNum,
|
||||
SUM((
|
||||
IFNULL( rd.repair_num, 0 ) - IFNULL( rd.input_num, 0 ) - IFNULL( rd.reject_num, 0 ))) AS pendingInputNum,
|
||||
rd.reject_num AS rejectNum,
|
||||
mt.manage_type AS manageType,
|
||||
GROUP_CONCAT( mm.ma_code ) AS maCode
|
||||
FROM
|
||||
repair_input_details rd
|
||||
LEFT JOIN ma_type mt ON rd.type_id = mt.type_id
|
||||
AND mt.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
|
||||
AND mt1.del_flag = '0'
|
||||
LEFT JOIN ma_machine mm ON mm.ma_id = rd.ma_id
|
||||
WHERE
|
||||
rd.task_id IN
|
||||
<foreach item="id" collection="list" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
GROUP BY
|
||||
mt.type_id
|
||||
</select>
|
||||
|
||||
<insert id="batchInsertRepairInputDetails" parameterType="com.bonus.common.biz.domain.repair.RepairInputDetails">
|
||||
insert into repair_input_details
|
||||
(task_id, audit_id, repair_id, ma_id, type_id, repair_num, input_num, create_by, create_time,
|
||||
|
|
|
|||
Loading…
Reference in New Issue