diff --git a/maintain-business/src/main/java/com/maintain/business/service/impl/ErpRepairFormProjectDispatchServiceImpl.java b/maintain-business/src/main/java/com/maintain/business/service/impl/ErpRepairFormProjectDispatchServiceImpl.java index 1cf2cdda8b3a206b4eb8fe8d03f99d81921670c1..a1b57fa4c2b07db30845d422c9f634c84db48293 100644 --- a/maintain-business/src/main/java/com/maintain/business/service/impl/ErpRepairFormProjectDispatchServiceImpl.java +++ b/maintain-business/src/main/java/com/maintain/business/service/impl/ErpRepairFormProjectDispatchServiceImpl.java @@ -23,6 +23,7 @@ import com.maintain.business.service.IErpRepairFormProjectDispatchService; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.List; import java.util.Map; import java.util.Collection; @@ -112,10 +113,16 @@ public class ErpRepairFormProjectDispatchServiceImpl implements IErpRepairFormPr @Override public Boolean insertBatchByBo(ErpRepairFormProjectDispatchBatchBo bo) { ErpRepairFormProject formProject = projectMapper.selectById(bo.getProjectId()); + // 删除原有绑定 LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(ErpRepairFormProjectDispatch::getRepairFormProjectId, bo.getProjectId()); + BigDecimal totalActualManHour = baseMapper.selectList(lqw) + .stream() + .map(ErpRepairFormProjectDispatch::getActualManHour).reduce(BigDecimal.ZERO, BigDecimal::add); baseMapper.delete(lqw); + // 汇总原总工时 + // 批量新增派工人员列表 List collect = bo.getDispatchIdList().stream().map(item -> { ErpRepairFormProjectDispatch projectDispatch = new ErpRepairFormProjectDispatch(); @@ -132,7 +139,9 @@ public class ErpRepairFormProjectDispatchServiceImpl implements IErpRepairFormPr projectDispatch.setMaintainUserName(userVo.getName()); projectDispatch.setMaintainJobNumber(userVo.getJobNumber()); projectDispatch.setMaintainUserState(userVo.getState()); - BigDecimal hour = formProject.getStandardManHour().divide(BigDecimal.valueOf(bo.getDispatchIdList().size())); + BigDecimal hour = formProject.getStandardManHour().divide( + BigDecimal.valueOf(bo.getDispatchIdList().size()), 2, RoundingMode.HALF_UP + ); projectDispatch.setDispatchManHour(hour); projectDispatch.setActualManHour(hour); // projectDispatch.setDeductManHour(hour);