|
|
@ -46,73 +46,78 @@ public class TaskParamDfratProcess { |
|
|
|
List<DcBusiParamBillSub> dcBusiParamBillSubs = dcBusiParamBillSubService.selectByVo(billSub); |
|
|
|
if (CollectionUtils.isEmpty(dcBusiParamBillSubs)) { |
|
|
|
log.error("单据无数据"); |
|
|
|
return; |
|
|
|
} |
|
|
|
List<String> assetCodeList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getAssetCode).collect(Collectors.toList()); |
|
|
|
List<String> paramCodeList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getParamCode).collect(Collectors.toList()); |
|
|
|
List<String> paramFieldCodeList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getFieldCode).collect(Collectors.toList()); |
|
|
|
List<String> countDateList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getCountDate).collect(Collectors.toList()); |
|
|
|
QueryWrapper<DcBusiParamDraftDay> queryWrapper = new QueryWrapper<>(); |
|
|
|
queryWrapper.in("param_code", paramCodeList); |
|
|
|
queryWrapper.in("asset_code", assetCodeList); |
|
|
|
queryWrapper.in("param_field_code", paramFieldCodeList); |
|
|
|
queryWrapper.in("count_date", countDateList); |
|
|
|
List<DcBusiParamDraftDay> paramDraftDayList = dBusiParamDraftDayService.list(queryWrapper); |
|
|
|
Map<String, DcBusiParamDraftDay> paramDraftDayMap; |
|
|
|
if (CollectionUtils.isEmpty(paramDraftDayList)) { |
|
|
|
log.info("底稿表无数据"); |
|
|
|
paramDraftDayMap = new HashMap<>(); |
|
|
|
} else { |
|
|
|
paramDraftDayMap = paramDraftDayList.stream().collect(Collectors.toMap(gp -> gp.getAssetCode() + ":" + gp.getParamCode() + ":" + gp.getParamFieldCode() + ":" + gp.getCountDate(), gp -> gp)); |
|
|
|
} |
|
|
|
Map<String, List<DcBusiParamBillSub>> paramBillSubMap = dcBusiParamBillSubs.stream().collect(Collectors.groupingBy(gp -> gp.getAssetCode() + ":" + gp.getParamCode() + ":" + gp.getFieldCode() + ":" + gp.getCountDate())); |
|
|
|
List<DcBusiParamDraftDay> insertDataList = new ArrayList<>(); |
|
|
|
List<DcBusiParamDraftDay> updateDataList = new ArrayList<>(); |
|
|
|
paramBillSubMap.forEach((key, value) -> { |
|
|
|
DcBusiParamDraftDay dcBusiParamDraftDay = Optional.ofNullable(paramDraftDayMap.get(key)).orElse(new DcBusiParamDraftDay()); |
|
|
|
if (null == dcBusiParamDraftDay.getId()) { |
|
|
|
insertDataList.add(dcBusiParamDraftDay); |
|
|
|
List<String> assetCodeList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getAssetCode).collect(Collectors.toList()); |
|
|
|
List<String> paramCodeList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getParamCode).collect(Collectors.toList()); |
|
|
|
List<String> paramFieldCodeList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getFieldCode).collect(Collectors.toList()); |
|
|
|
List<String> countDateList = dcBusiParamBillSubs.stream().map(DcBusiParamBillSub::getCountDate).collect(Collectors.toList()); |
|
|
|
QueryWrapper<DcBusiParamDraftDay> queryWrapper = new QueryWrapper<>(); |
|
|
|
queryWrapper.in("param_code", paramCodeList); |
|
|
|
queryWrapper.in("asset_code", assetCodeList); |
|
|
|
queryWrapper.in("param_field_code", paramFieldCodeList); |
|
|
|
queryWrapper.in("count_date", countDateList); |
|
|
|
List<DcBusiParamDraftDay> paramDraftDayList = dBusiParamDraftDayService.list(queryWrapper); |
|
|
|
Map<String, DcBusiParamDraftDay> paramDraftDayMap; |
|
|
|
if (CollectionUtils.isEmpty(paramDraftDayList)) { |
|
|
|
log.info("底稿表无数据,日期为:【{}】", billMasterDao.getBillIncomeDate()); |
|
|
|
paramDraftDayMap = new HashMap<>(); |
|
|
|
} else { |
|
|
|
updateDataList.add(dcBusiParamDraftDay); |
|
|
|
paramDraftDayMap = paramDraftDayList.stream().collect(Collectors.toMap(gp -> gp.getAssetCode() + ":" + gp.getParamCode() + ":" + gp.getParamFieldCode() + ":" + gp.getCountDate(), gp -> gp)); |
|
|
|
} |
|
|
|
List<DcBusiParamBillSub> subs = value.stream().sorted(Comparator.comparing(DcBusiParamBillSub::getCountHour)).collect(Collectors.toList()); |
|
|
|
subs.forEach(val -> { |
|
|
|
Map<String, List<DcBusiParamBillSub>> paramBillSubMap = dcBusiParamBillSubs.stream().collect(Collectors.groupingBy(gp -> gp.getAssetCode() + ":" + gp.getParamCode() + ":" + gp.getFieldCode() + ":" + gp.getCountDate())); |
|
|
|
List<DcBusiParamDraftDay> insertDataList = new ArrayList<>(); |
|
|
|
List<DcBusiParamDraftDay> updateDataList = new ArrayList<>(); |
|
|
|
paramBillSubMap.forEach((key, value) -> { |
|
|
|
DcBusiParamDraftDay dcBusiParamDraftDay = Optional.ofNullable(paramDraftDayMap.get(key)).orElse(new DcBusiParamDraftDay()); |
|
|
|
if (null == dcBusiParamDraftDay.getId()) { |
|
|
|
dcBusiParamDraftDay.setParamFieldCode(val.getFieldCode()); |
|
|
|
dcBusiParamDraftDay.setParamCode(val.getParamCode()); |
|
|
|
dcBusiParamDraftDay.setCountDate(val.getCountDate()); |
|
|
|
dcBusiParamDraftDay.setAssetCode(val.getAssetCode()); |
|
|
|
//------------设置 统计单元的其他信息
|
|
|
|
dcBusiParamDraftDay.setOrganizeId(billMasterDao.getOragnizeId()); |
|
|
|
dcBusiParamDraftDay.setOrganizeName(billMasterDao.getOrganizeName()); |
|
|
|
dcBusiParamDraftDay.setParamName(val.getParamName()); |
|
|
|
dcBusiParamDraftDay.setTargetUint(val.getParamUint()); |
|
|
|
dcBusiParamDraftDay.setAssetName(val.getAssetName()); |
|
|
|
dcBusiParamDraftDay.setCompanyId(billMasterDao.getCompanyId()); |
|
|
|
dcBusiParamDraftDay.setCompanyName(billMasterDao.getCompanyName()); |
|
|
|
dcBusiParamDraftDay.setCreatedBy("task"); |
|
|
|
dcBusiParamDraftDay.setCreatedTime(date); |
|
|
|
insertDataList.add(dcBusiParamDraftDay); |
|
|
|
} else { |
|
|
|
updateDataList.add(dcBusiParamDraftDay); |
|
|
|
} |
|
|
|
dcBusiParamDraftDay.setValForSeq(val.getCountHour(), val.getParamValue()); |
|
|
|
dcBusiParamDraftDay.setUpdatedBy("task"); |
|
|
|
dcBusiParamDraftDay.setUpdatedTime(date); |
|
|
|
List<DcBusiParamBillSub> subs = value.stream().sorted(Comparator.comparing(DcBusiParamBillSub::getCountHour)).collect(Collectors.toList()); |
|
|
|
subs.forEach(val -> { |
|
|
|
if (null == dcBusiParamDraftDay.getId()) { |
|
|
|
dcBusiParamDraftDay.setParamFieldCode(val.getFieldCode()); |
|
|
|
dcBusiParamDraftDay.setParamCode(val.getParamCode()); |
|
|
|
dcBusiParamDraftDay.setCountDate(val.getCountDate()); |
|
|
|
dcBusiParamDraftDay.setAssetCode(val.getAssetCode()); |
|
|
|
//------------设置 统计单元的其他信息
|
|
|
|
dcBusiParamDraftDay.setOrganizeId(billMasterDao.getOragnizeId()); |
|
|
|
dcBusiParamDraftDay.setOrganizeName(billMasterDao.getOrganizeName()); |
|
|
|
dcBusiParamDraftDay.setParamName(val.getParamName()); |
|
|
|
dcBusiParamDraftDay.setTargetUint(val.getParamUint()); |
|
|
|
dcBusiParamDraftDay.setAssetName(val.getAssetName()); |
|
|
|
dcBusiParamDraftDay.setCompanyId(billMasterDao.getCompanyId()); |
|
|
|
dcBusiParamDraftDay.setCompanyName(billMasterDao.getCompanyName()); |
|
|
|
dcBusiParamDraftDay.setCreatedBy("task"); |
|
|
|
dcBusiParamDraftDay.setCreatedTime(date); |
|
|
|
} |
|
|
|
dcBusiParamDraftDay.setValForSeq(val.getCountHour(), val.getParamValue()); |
|
|
|
dcBusiParamDraftDay.setUpdatedBy("task"); |
|
|
|
dcBusiParamDraftDay.setUpdatedTime(date); |
|
|
|
}); |
|
|
|
dcBusiParamDraftDay.calculate(); |
|
|
|
}); |
|
|
|
dcBusiParamDraftDay.calculate(); |
|
|
|
}); |
|
|
|
if (!CollectionUtils.isEmpty(insertDataList)) { |
|
|
|
dBusiParamDraftDayService.saveBatch(insertDataList); |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(updateDataList)) { |
|
|
|
dBusiParamDraftDayService.updateBatchById(updateDataList); |
|
|
|
if (!CollectionUtils.isEmpty(insertDataList)) { |
|
|
|
dBusiParamDraftDayService.saveBatch(insertDataList); |
|
|
|
} |
|
|
|
if (!CollectionUtils.isEmpty(updateDataList)) { |
|
|
|
dBusiParamDraftDayService.updateBatchById(updateDataList); |
|
|
|
} |
|
|
|
} |
|
|
|
billMasterDao.setCheckStatus("1"); |
|
|
|
dcBusiParamBillMasterService.updateById(billMasterDao); |
|
|
|
} |
|
|
|
|
|
|
|
public void doBills() { |
|
|
|
DcBusiParamBillMaster dcBusiParamBillMasterDao = new DcBusiParamBillMaster(); |
|
|
|
dcBusiParamBillMasterDao.setCheckStatus("0"); |
|
|
|
List<DcBusiParamBillMaster> dcBusiParamBillMasterDaos = dcBusiParamBillMasterService.selectDcBusiParamBillMasterDaoList(dcBusiParamBillMasterDao); |
|
|
|
dcBusiParamBillMasterDaos.forEach(item -> { |
|
|
|
log.info("一共有【{}】个单据需要审核", dcBusiParamBillMasterDaos.size()); |
|
|
|
for (int i = 0, len = dcBusiParamBillMasterDaos.size(); i < len; i++) { |
|
|
|
DcBusiParamBillMaster item = dcBusiParamBillMasterDaos.get(i); |
|
|
|
log.info("正在处理日期为:【{}】的单据", item.getBillIncomeDate()); |
|
|
|
doBill(item); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|