This commit is contained in:
zt
2025-09-08 11:47:14 +08:00
parent 78829ef5e7
commit 998547e63f

View File

@ -64,6 +64,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
private final IBusMaterialsorderService busMaterialsorderService; private final IBusMaterialsorderService busMaterialsorderService;
/** /**
* 查询月度产值计划 * 查询月度产值计划
* *
@ -71,7 +72,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
* @return 月度产值计划 * @return 月度产值计划
*/ */
@Override @Override
public OutMonthPlanVo queryById(Long id){ public OutMonthPlanVo queryById(Long id) {
return baseMapper.selectVoById(id); return baseMapper.selectVoById(id);
} }
@ -149,13 +150,13 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
validEntityBeforeSave(update); validEntityBeforeSave(update);
OutMonthPlan outMonthPlan = baseMapper.selectById(update.getId()); OutMonthPlan outMonthPlan = baseMapper.selectById(update.getId());
String status; String status;
if(bo.getIsDesign()){ if (bo.getIsDesign()) {
status = outMonthPlan.getPlanAuditStatus(); status = outMonthPlan.getPlanAuditStatus();
}else { } else {
status = outMonthPlan.getCompleteAuditStatus(); status = outMonthPlan.getCompleteAuditStatus();
} }
if(Arrays.asList(BusinessStatusEnum.FINISH.getStatus(),BusinessStatusEnum.WAITING.getStatus()).contains(status)){ if (Arrays.asList(BusinessStatusEnum.FINISH.getStatus(), BusinessStatusEnum.WAITING.getStatus()).contains(status)) {
String msg = BusinessStatusEnum.WAITING.getStatus().equals(status) ? "计划正在审核中,请勿修改" : "计划已审核完成,请勿修改"; String msg = BusinessStatusEnum.WAITING.getStatus().equals(status) ? "计划正在审核中,请勿修改" : "计划已审核完成,请勿修改";
throw new ServiceException(msg); throw new ServiceException(msg);
} }
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
@ -164,7 +165,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(OutMonthPlan entity){ private void validEntityBeforeSave(OutMonthPlan entity) {
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
List<OutMonthPlan> outMonthPlans = baseMapper.selectList(Wrappers.<OutMonthPlan>lambdaQuery() List<OutMonthPlan> outMonthPlans = baseMapper.selectList(Wrappers.<OutMonthPlan>lambdaQuery()
.eq(OutMonthPlan::getProjectId, entity.getProjectId()) .eq(OutMonthPlan::getProjectId, entity.getProjectId())
@ -187,7 +188,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
*/ */
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
List<OutMonthPlan> outMonthPlans = baseMapper.selectList(Wrappers.<OutMonthPlan>lambdaQuery().in(OutMonthPlan::getId, ids)); List<OutMonthPlan> outMonthPlans = baseMapper.selectList(Wrappers.<OutMonthPlan>lambdaQuery().in(OutMonthPlan::getId, ids));
@ -230,8 +231,8 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
@Override @Override
public BigDecimal getDesignValueByProjectId(Long projectId,String month,String type) { public BigDecimal getDesignValueByProjectId(Long projectId, String month, String type) {
BigDecimal designValueByProjectId = baseMapper.getDesignValueByProjectId(projectId, month,type); BigDecimal designValueByProjectId = baseMapper.getDesignValueByProjectId(projectId, month, type);
if (designValueByProjectId == null) { if (designValueByProjectId == null) {
designValueByProjectId = BigDecimal.ZERO; designValueByProjectId = BigDecimal.ZERO;
} }
@ -248,7 +249,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
@Override @Override
public List<BusProcurement> purchaseValueA(PurchaseValueAReq req) { public List<BusProcurement> purchaseValueA(PurchaseValueAReq req) {
//1、为1查询出数据存储到数据表,并返回数据 //1、为1查询出数据存储到数据表,并返回数据
if ("1".equals(req.getType())){ if ("1".equals(req.getType())) {
List<BusProcurement> busProcurements = baseMapper.purchaseValueAA(req.getProjectId(), req.getPlanMonth()); List<BusProcurement> busProcurements = baseMapper.purchaseValueAA(req.getProjectId(), req.getPlanMonth());
//查询出现有的数据busProcurements1如果busProcurements的数据已经在busProcurements1中根据名称和规格就修改否则保存 //查询出现有的数据busProcurements1如果busProcurements的数据已经在busProcurements1中根据名称和规格就修改否则保存
List<BusProcurement> busProcurements1 = busProcurementService.list(Wrappers.<BusProcurement>lambdaQuery() List<BusProcurement> busProcurements1 = busProcurementService.list(Wrappers.<BusProcurement>lambdaQuery()
@ -256,7 +257,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
); );
for (BusProcurement busProcurement : busProcurements) { for (BusProcurement busProcurement : busProcurements) {
for (BusProcurement procurement : busProcurements1) { for (BusProcurement procurement : busProcurements1) {
if (busProcurement.getName().equals(procurement.getName()) && busProcurement.getSpecification().equals(procurement.getSpecification())){ if (busProcurement.getName().equals(procurement.getName()) && busProcurement.getSpecification().equals(procurement.getSpecification())) {
busProcurement.setId(procurement.getId()); busProcurement.setId(procurement.getId());
} }
} }
@ -269,13 +270,13 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
// if (!b) { // if (!b) {
// throw new ServiceException("保存失败"); // throw new ServiceException("保存失败");
// } // }
return busProcurementService.list(Wrappers.<BusProcurement>lambdaQuery() return busProcurementService.list(Wrappers.<BusProcurement>lambdaQuery()
.eq(BusProcurement::getProjectId, req.getProjectId()) .eq(BusProcurement::getProjectId, req.getProjectId())
); );
} }
//2、为2查询出数据直接返回 //2、为2查询出数据直接返回
else if ("2".equals(req.getType())){ else if ("2".equals(req.getType())) {
return baseMapper.purchaseValueBB(req.getProjectId(), req.getPlanMonth()); return baseMapper.purchaseValueBB(req.getProjectId(), req.getPlanMonth());
} }
return Collections.emptyList(); return Collections.emptyList();
} }
@ -304,43 +305,59 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
OutMonthPlan outMonthPlan = baseMapper.selectById(Long.valueOf(split[0])); OutMonthPlan outMonthPlan = baseMapper.selectById(Long.valueOf(split[0]));
outMonthPlan.setPlanAuditStatus(processEvent.getStatus()); outMonthPlan.setPlanAuditStatus(processEvent.getStatus());
updateById(outMonthPlan); updateById(outMonthPlan);
if(BusinessStatusEnum.FINISH.getStatus().equals(processEvent.getStatus())){ if (BusinessStatusEnum.FINISH.getStatus().equals(processEvent.getStatus())) {
OutMonthPlanAudit outMonthPlanAudit = getOutMonthPlanAudit(outMonthPlan); OutMonthPlanAudit outMonthPlanAudit = getOutMonthPlanAudit(outMonthPlan);
outMonthPlanAuditService.save(outMonthPlanAudit); outMonthPlanAuditService.saveOrUpdate(outMonthPlanAudit);
} }
} }
private static @NotNull OutMonthPlanAudit getOutMonthPlanAudit(OutMonthPlan outMonthPlan) { private OutMonthPlanAudit getOutMonthPlanAudit(OutMonthPlan outMonthPlan) {
OutMonthPlanAudit outMonthPlanAudit = new OutMonthPlanAudit();
OutMonthPlanAudit one = outMonthPlanAuditService.getOne(Wrappers.lambdaQuery(OutMonthPlanAudit.class)
.eq(OutMonthPlanAudit::getProjectId, outMonthPlan.getProjectId())
.eq(OutMonthPlanAudit::getPlanMonth, outMonthPlan.getPlanMonth())
.eq(OutMonthPlanAudit::getType, outMonthPlan.getType())
.last("limit 1")
);
OutMonthPlanAudit outMonthPlanAudit;
if (one != null) {
outMonthPlanAudit = one;
} else {
outMonthPlanAudit = new OutMonthPlanAudit();
outMonthPlanAudit.setProjectId(outMonthPlan.getProjectId()); outMonthPlanAudit.setProjectId(outMonthPlan.getProjectId());
outMonthPlanAudit.setPlanMonth(outMonthPlan.getPlanMonth()); outMonthPlanAudit.setPlanMonth(outMonthPlan.getPlanMonth());
BigDecimal designValue = BigDecimal.ZERO; outMonthPlanAudit.setType(outMonthPlan.getType());
BigDecimal purchaseValue = BigDecimal.ZERO; }
BigDecimal constructionValue = BigDecimal.ZERO;
if(outMonthPlan.getValueType().equals("1")){ outMonthPlanAudit.setProjectId(outMonthPlan.getProjectId());
outMonthPlanAudit.setDesignValue(outMonthPlan.getPlanValue()); outMonthPlanAudit.setPlanMonth(outMonthPlan.getPlanMonth());
designValue = outMonthPlan.getPlanValue(); outMonthPlanAudit.setType(outMonthPlan.getType());
} BigDecimal designValue = BigDecimal.ZERO;
if(outMonthPlan.getValueType().equals("2")){ BigDecimal purchaseValue = BigDecimal.ZERO;
outMonthPlanAudit.setPurchaseValue(outMonthPlan.getPlanValue()); BigDecimal constructionValue = BigDecimal.ZERO;
purchaseValue = outMonthPlan.getPlanValue(); if (outMonthPlan.getValueType().equals("1")) {
} outMonthPlanAudit.setDesignValue(outMonthPlan.getPlanValue());
if(outMonthPlan.getValueType().equals("3")){ designValue = outMonthPlan.getPlanValue();
outMonthPlanAudit.setConstructionValue(outMonthPlan.getPlanValue()); }
constructionValue = outMonthPlan.getPlanValue(); if (outMonthPlan.getValueType().equals("2")) {
} outMonthPlanAudit.setPurchaseValue(outMonthPlan.getPlanValue());
purchaseValue = outMonthPlan.getPlanValue();
}
if (outMonthPlan.getValueType().equals("3")) {
outMonthPlanAudit.setConstructionValue(outMonthPlan.getPlanValue());
constructionValue = outMonthPlan.getPlanValue();
}
outMonthPlanAudit.setTotalValue(designValue.add(purchaseValue).add(constructionValue)); outMonthPlanAudit.setTotalValue(designValue.add(purchaseValue).add(constructionValue));
return outMonthPlanAudit; return outMonthPlanAudit;
} }
/** /**
* 计算完成值和差异 * 计算完成值和差异
*/ */
public void calculateCompleteValueAndDifference(List<OutMonthPlanVo> outMonthPlans){ public void calculateCompleteValueAndDifference(List<OutMonthPlanVo> outMonthPlans) {
for (OutMonthPlanVo outMonthPlan : outMonthPlans) { for (OutMonthPlanVo outMonthPlan : outMonthPlans) {
//计算日期 //计算日期
@ -351,21 +368,21 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
LocalDate lastDay = parsedDate.with(TemporalAdjusters.lastDayOfMonth()); LocalDate lastDay = parsedDate.with(TemporalAdjusters.lastDayOfMonth());
if("2".equals(outMonthPlan.getValueType())){ //采购产值 if ("2".equals(outMonthPlan.getValueType())) { //采购产值
PurchaseValueAReq purchaseValueAReq = new PurchaseValueAReq(); PurchaseValueAReq purchaseValueAReq = new PurchaseValueAReq();
purchaseValueAReq.setProjectId(outMonthPlan.getProjectId()); purchaseValueAReq.setProjectId(outMonthPlan.getProjectId());
purchaseValueAReq.setType(outMonthPlan.getType()); purchaseValueAReq.setType(outMonthPlan.getType());
purchaseValueAReq.setPlanMonth(outMonthPlan.getPlanMonth()); purchaseValueAReq.setPlanMonth(outMonthPlan.getPlanMonth());
List<BusProcurement> busProcurements =purchaseValueA(purchaseValueAReq); List<BusProcurement> busProcurements = purchaseValueA(purchaseValueAReq);
BigDecimal purchaseValue = BigDecimal.ZERO; BigDecimal purchaseValue = BigDecimal.ZERO;
for (BusProcurement busProcurement : busProcurements) { for (BusProcurement busProcurement : busProcurements) {
if(busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null){ if (busProcurement != null && busProcurement.getAcceptedQuantity() != null && busProcurement.getUnitPrice() != null) {
purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice())); purchaseValue = purchaseValue.add(busProcurement.getAcceptedQuantity().multiply(busProcurement.getUnitPrice()));
} }
} }
outMonthPlan.setCompleteValue(purchaseValue); outMonthPlan.setCompleteValue(purchaseValue);
}else if("3".equals(outMonthPlan.getValueType())){ //施工产值 } else if ("3".equals(outMonthPlan.getValueType())) { //施工产值
//查询项目的审核通过的施工详细表 1.累计完成产值 2.完成产值月合计 3.各周完成产值 //查询项目的审核通过的施工详细表 1.累计完成产值 2.完成产值月合计 3.各周完成产值
List<OutConstructionValue> outConstructionValues = constructionValueService.lambdaQuery() List<OutConstructionValue> outConstructionValues = constructionValueService.lambdaQuery()
.eq(OutConstructionValue::getProjectId, outMonthPlan.getProjectId()) .eq(OutConstructionValue::getProjectId, outMonthPlan.getProjectId())
@ -382,7 +399,7 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
outMonthPlan.setDifferenceValue(outMonthPlan.getPlanValue().subtract(outMonthPlan.getCompleteValue())); outMonthPlan.setDifferenceValue(outMonthPlan.getPlanValue().subtract(outMonthPlan.getCompleteValue()));
} }
} }
} }
/** /**
* 执行任务创建监听 * 执行任务创建监听
@ -417,16 +434,13 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
} }
/**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1'
/** * 示例为了方便则使用startsWith匹配了全部示例key
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) *
* 正常使用只需#processEvent.flowCode=='leave1' * @param processEvent 参数
* 示例为了方便则使用startsWith匹配了全部示例key */
*
* @param processEvent 参数
*/
@EventListener(condition = "#processEvent.flowCode.endsWith('designCompleteValue')") @EventListener(condition = "#processEvent.flowCode.endsWith('designCompleteValue')")
public void processHandler(ProcessEvent processEvent) { public void processHandler(ProcessEvent processEvent) {
log.info("设计完成产值审核任务执行了{}", processEvent.toString()); log.info("设计完成产值审核任务执行了{}", processEvent.toString());