diff --git a/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java b/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java index 43ba8e4..49e74da 100644 --- a/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java +++ b/yudao-module-product/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/harvestbatch/HarvestBatchServiceImpl.java @@ -1437,69 +1437,69 @@ public class HarvestBatchServiceImpl implements HarvestBatchService { }).collect(Collectors.toList());// 数据库中已有的环节ID集合 //******************** 农事计划/作业相关参数 ********************/ - List willUpdatePlanIds = new ArrayList<>(); - List willUpdateJobIds = new ArrayList<>(); - Map reqPlanMap = new HashMap<>(); - Map reqJobMap = new HashMap<>(); - Map willUpdatePlanMap = new HashMap<>(); - Map willUpdateJobMap = new HashMap<>(); - Map planRemarksMap = new HashMap<>(); - Map> jobMap = new HashMap<>(); - List planIds = new ArrayList<>(); - saveReqVO.getFarmingPlans().forEach(plan -> { - if(plan.getId() != null) { - willUpdatePlanIds.add(plan.getId()); - willUpdatePlanMap.put(plan.getId(), plan); - } - if(plan.getOperateObjId() != null) { - reqPlanMap.put(plan.getOperateObjId(), plan); - planIds.add(plan.getOperateObjId()); - plan.getOperateDetails().forEach(detail -> { - if(detail.getTitle().equals("说明")) { - planRemarksMap.put(plan.getOperateObjId(), detail.getContent()); - } - }); - } - if(plan.getFarmingJobs() != null) { - plan.getFarmingJobs().forEach(job -> { - if (job.getOperateType() == null) { - throw ServiceExceptionUtil.exception(ErrorCodeConstants.JOB_OPERATE_TYPE_CAN_NOT_BE_NULL); - } - if (job.getId() != null) { - willUpdateJobIds.add(job.getId()); - willUpdateJobMap.put(job.getId(), job); - } - if (job.getOperateObjId() != null) { - reqJobMap.put(job.getOperateType() + "" + job.getOperateObjId(), job); - Map jobItemMap = jobMap.get(job.getOperateType() + "" + job.getOperateObjId()); - if (jobItemMap == null) { - jobItemMap = new HashMap<>(); - } - - Map finalJobItemMap = jobItemMap; - job.getOperateDetails().forEach(detail -> { - if(detail.getTitle().equals("任务类型")) { - finalJobItemMap.put("jobType", detail.getContent()); - } - if(detail.getTitle().equals("投入品名称")) { - finalJobItemMap.put("inputsName", detail.getContent()); - } - if(detail.getTitle().equals("作业日期")) { - finalJobItemMap.put("jobDate", detail.getContent()); - } - if(detail.getTitle().equals("作业员工")) { - finalJobItemMap.put("jobWorker", detail.getContent()); - } - if(detail.getTitle().equals("说明")) { - finalJobItemMap.put("remarks", detail.getContent()); - } - }); - - jobMap.put(job.getOperateType() + "" + job.getOperateObjId(), finalJobItemMap); - } - }); - } - }); +// List willUpdatePlanIds = new ArrayList<>(); +// List willUpdateJobIds = new ArrayList<>(); +// Map reqPlanMap = new HashMap<>(); +// Map reqJobMap = new HashMap<>(); +// Map willUpdatePlanMap = new HashMap<>(); +// Map willUpdateJobMap = new HashMap<>(); +// Map planRemarksMap = new HashMap<>(); +// Map> jobMap = new HashMap<>(); +// List planIds = new ArrayList<>(); +// saveReqVO.getFarmingPlans().forEach(plan -> { +// if(plan.getId() != null) { +// willUpdatePlanIds.add(plan.getId()); +// willUpdatePlanMap.put(plan.getId(), plan); +// } +// if(plan.getOperateObjId() != null) { +// reqPlanMap.put(plan.getOperateObjId(), plan); +// planIds.add(plan.getOperateObjId()); +// plan.getOperateDetails().forEach(detail -> { +// if(detail.getTitle().equals("说明")) { +// planRemarksMap.put(plan.getOperateObjId(), detail.getContent()); +// } +// }); +// } +// if(plan.getFarmingJobs() != null) { +// plan.getFarmingJobs().forEach(job -> { +// if (job.getOperateType() == null) { +// throw ServiceExceptionUtil.exception(ErrorCodeConstants.JOB_OPERATE_TYPE_CAN_NOT_BE_NULL); +// } +// if (job.getId() != null) { +// willUpdateJobIds.add(job.getId()); +// willUpdateJobMap.put(job.getId(), job); +// } +// if (job.getOperateObjId() != null) { +// reqJobMap.put(job.getOperateType() + "" + job.getOperateObjId(), job); +// Map jobItemMap = jobMap.get(job.getOperateType() + "" + job.getOperateObjId()); +// if (jobItemMap == null) { +// jobItemMap = new HashMap<>(); +// } +// +// Map finalJobItemMap = jobItemMap; +// job.getOperateDetails().forEach(detail -> { +// if(detail.getTitle().equals("任务类型")) { +// finalJobItemMap.put("jobType", detail.getContent()); +// } +// if(detail.getTitle().equals("投入品名称")) { +// finalJobItemMap.put("inputsName", detail.getContent()); +// } +// if(detail.getTitle().equals("作业日期")) { +// finalJobItemMap.put("jobDate", detail.getContent()); +// } +// if(detail.getTitle().equals("作业员工")) { +// finalJobItemMap.put("jobWorker", detail.getContent()); +// } +// if(detail.getTitle().equals("说明")) { +// finalJobItemMap.put("remarks", detail.getContent()); +// } +// }); +// +// jobMap.put(job.getOperateType() + "" + job.getOperateObjId(), finalJobItemMap); +// } +// }); +// } +// }); //******************** 检验检疫相关参数 ********************/ Map> inspectionDetailIdsDBMap = new HashMap<>();// 数据库中已有的操作ID集合, 以map存储 @@ -1793,114 +1793,114 @@ public class HarvestBatchServiceImpl implements HarvestBatchService { //********************************* 更新农事作业 **************************************// // 每次重新选择地块计划之后,旧的都会进行删除操作 // 只要没传id 都当做新增 - if(willUpdatePlanIds.isEmpty()) { - // 新增 - // 获取种植计划以及种植作业相关数据 - // 这里直接使用页面调用的获取接口, 由于页面无法进行过多的变更,故这里的数据为了保证准确性(不被串改),无法修改的字段直接用该接口的数据, 如果没传,就按默认。 - List plantDBs = landPlanService.getLandPlanForFarmingConfig(configRespVO.getGoodsId(), planIds, null, BlockStateEnum.ACTIVATION.getBlockState()); - plantDBs.forEach(plantConfig -> { - BlockCertificateCreateReqDTO createPlant = new BlockCertificateCreateReqDTO(); - BeanUtil.copyProperties(plantConfig, createPlant); - this.setBlockCertificate(createPlant, OperateTypeEnum.PLAN.getType(), OperateTypeEnum.PLAN.getName(), harvestBatch, plantConfig); - // createPlant.setRemarks(reqPlanMap.get(plantConfig.getOperateObjId()).getRemarks());// 修改remark字段 - // 循环找到说明字段,并进行修改 - plantConfig.getOperateDetails().forEach(detail -> { - if(detail.getTitle().equals("说明")) { - detail.setContent(planRemarksMap.get(plantConfig.getOperateObjId())); - } - }); - // 修改是否展示 - createPlant.setScanShow(reqPlanMap.get(plantConfig.getOperateObjId()).getScanShow()); - // 修改环节名称 - createPlant.setLinkName(reqPlanMap.get(plantConfig.getOperateObjId()).getLinkName()); - createPlant.setLanguageTypeId(saveReqVO.getLanguageTypeId()); - - createBlockCertificates.add(createPlant); - // 循环农事作业 - plantConfig.getFarmingJobs().forEach(job -> { - BlockCertificateCreateReqDTO createJob = new BlockCertificateCreateReqDTO(); - BeanUtil.copyProperties(job, createJob); - Map jobItemMap = jobMap.get(job.getOperateType() + "" + job.getOperateObjId()); - // 找到备注字段,并设置值 - job.getOperateDetails().forEach(detail -> { - if(detail.getTitle().equals("任务类型")) { - detail.setContent(jobItemMap.get("jobType")); - } - if(detail.getTitle().equals("投入品名称")) { - detail.setContent(jobItemMap.get("inputsName")); - } - if(detail.getTitle().equals("作业日期")) { - detail.setContent(jobItemMap.get("jobDate")); - } - if(detail.getTitle().equals("作业员工")) { - detail.setContent(jobItemMap.get("jobWorker")); - } - if(detail.getTitle().equals("说明")) { - detail.setContent(jobItemMap.get("remarks")); - } - }); - - this.setBlockCertificate(createJob, OperateTypeEnum.JOB.getType(), OperateTypeEnum.JOB.getName(), harvestBatch, job); - // createJob.setRemarks(reqJobMap.get(job.getOperateObjId()).getRemarks());// 修改remark字段 - - createJob.setScanShow(reqJobMap.get(job.getOperateType() + "" + job.getOperateObjId()).getScanShow());// 修改扫码展示 - createJob.setParentOperateId(createPlant.getChainOperateId());// 设置该字段与农事计划作绑定 - createJob.setLanguageTypeId(saveReqVO.getLanguageTypeId()); - - createBlockCertificates.add(createJob); - }); - }); - - // 删除所有旧的数据 - configRespVO.getFarmingPlans().forEach(plant -> { - plant.getFarmingJobs().forEach(job -> deleteCertificateIds.add(job.getId())); - deleteCertificateIds.add(plant.getId()); - }); - } else { - // 编辑 - // 此时不会做新增操作 - configRespVO.getFarmingPlans().forEach(plant -> { - if(willUpdatePlanIds.contains(plant.getId())) { - // 只更新已存在的,其他无视 - FarmingPlantSaveReqVO plantReq = willUpdatePlanMap.get(plant.getId()); - BlockCertificateUpdateReqDTO updatePlant = new BlockCertificateUpdateReqDTO(); - BeanUtil.copyProperties(plant, updatePlant); - - updatePlant.setScanShow(plantReq.getScanShow()); - // updatePlant.setChainState(updateReqVO.getChainState()); - updatePlant.setLinkName(reqPlanMap.get(plant.getOperateObjId()).getLinkName()); - List details = new ArrayList<>(); - // 找到备注, 更新备注 - this.setPlanRemarks(plant.getOperateDetails(), details, planRemarksMap.get(plant.getOperateObjId())); - updatePlant.setDetails(details); - - plant.getFarmingJobs().forEach(job -> { - // 页面如果不传 - if(willUpdateJobIds.contains(job.getId())) { - // 只更新已存在的,其他无视 - BlockCertificateSaveReqVO jobReq = willUpdateJobMap.get(job.getId()); - BlockCertificateUpdateReqDTO updateJob = new BlockCertificateUpdateReqDTO(); - BeanUtil.copyProperties(job, updateJob); - List jobDetails = new ArrayList<>(); - // 找到备注, 更新备注 - this.setFarmingRemarks(job.getOperateDetails(), jobDetails, jobMap.get(job.getOperateType() + "" + job.getOperateObjId())); - updateJob.setDetails(jobDetails); - updateJob.setScanShow(jobReq.getScanShow()); - updateJob.setChainState(updatePlant.getChainState()); - - updateBlockCertificates.add(updateJob); - } else { - // 如果未上链, 则可进行删除操作( 这里也去掉限制 2023.06.25 - deleteCertificateIds.add(job.getId()); - } - }); - updateBlockCertificates.add(updatePlant); - } else { - deleteCertificateIds.add(plant.getId()); - plant.getFarmingJobs().forEach(job -> deleteCertificateIds.add(job.getId())); - } - }); - } +// if(willUpdatePlanIds.isEmpty()) { +// // 新增 +// // 获取种植计划以及种植作业相关数据 +// // 这里直接使用页面调用的获取接口, 由于页面无法进行过多的变更,故这里的数据为了保证准确性(不被串改),无法修改的字段直接用该接口的数据, 如果没传,就按默认。 +// List plantDBs = landPlanService.getLandPlanForFarmingConfig(configRespVO.getGoodsId(), planIds, null, BlockStateEnum.ACTIVATION.getBlockState()); +// plantDBs.forEach(plantConfig -> { +// BlockCertificateCreateReqDTO createPlant = new BlockCertificateCreateReqDTO(); +// BeanUtil.copyProperties(plantConfig, createPlant); +// this.setBlockCertificate(createPlant, OperateTypeEnum.PLAN.getType(), OperateTypeEnum.PLAN.getName(), harvestBatch, plantConfig); +// // createPlant.setRemarks(reqPlanMap.get(plantConfig.getOperateObjId()).getRemarks());// 修改remark字段 +// // 循环找到说明字段,并进行修改 +// plantConfig.getOperateDetails().forEach(detail -> { +// if(detail.getTitle().equals("说明")) { +// detail.setContent(planRemarksMap.get(plantConfig.getOperateObjId())); +// } +// }); +// // 修改是否展示 +// createPlant.setScanShow(reqPlanMap.get(plantConfig.getOperateObjId()).getScanShow()); +// // 修改环节名称 +// createPlant.setLinkName(reqPlanMap.get(plantConfig.getOperateObjId()).getLinkName()); +// createPlant.setLanguageTypeId(saveReqVO.getLanguageTypeId()); +// +// createBlockCertificates.add(createPlant); +// // 循环农事作业 +// plantConfig.getFarmingJobs().forEach(job -> { +// BlockCertificateCreateReqDTO createJob = new BlockCertificateCreateReqDTO(); +// BeanUtil.copyProperties(job, createJob); +// Map jobItemMap = jobMap.get(job.getOperateType() + "" + job.getOperateObjId()); +// // 找到备注字段,并设置值 +// job.getOperateDetails().forEach(detail -> { +// if(detail.getTitle().equals("任务类型")) { +// detail.setContent(jobItemMap.get("jobType")); +// } +// if(detail.getTitle().equals("投入品名称")) { +// detail.setContent(jobItemMap.get("inputsName")); +// } +// if(detail.getTitle().equals("作业日期")) { +// detail.setContent(jobItemMap.get("jobDate")); +// } +// if(detail.getTitle().equals("作业员工")) { +// detail.setContent(jobItemMap.get("jobWorker")); +// } +// if(detail.getTitle().equals("说明")) { +// detail.setContent(jobItemMap.get("remarks")); +// } +// }); +// +// this.setBlockCertificate(createJob, OperateTypeEnum.JOB.getType(), OperateTypeEnum.JOB.getName(), harvestBatch, job); +// // createJob.setRemarks(reqJobMap.get(job.getOperateObjId()).getRemarks());// 修改remark字段 +// +// createJob.setScanShow(reqJobMap.get(job.getOperateType() + "" + job.getOperateObjId()).getScanShow());// 修改扫码展示 +// createJob.setParentOperateId(createPlant.getChainOperateId());// 设置该字段与农事计划作绑定 +// createJob.setLanguageTypeId(saveReqVO.getLanguageTypeId()); +// +// createBlockCertificates.add(createJob); +// }); +// }); +// +// // 删除所有旧的数据 +// configRespVO.getFarmingPlans().forEach(plant -> { +// plant.getFarmingJobs().forEach(job -> deleteCertificateIds.add(job.getId())); +// deleteCertificateIds.add(plant.getId()); +// }); +// } else { +// // 编辑 +// // 此时不会做新增操作 +// configRespVO.getFarmingPlans().forEach(plant -> { +// if(willUpdatePlanIds.contains(plant.getId())) { +// // 只更新已存在的,其他无视 +// FarmingPlantSaveReqVO plantReq = willUpdatePlanMap.get(plant.getId()); +// BlockCertificateUpdateReqDTO updatePlant = new BlockCertificateUpdateReqDTO(); +// BeanUtil.copyProperties(plant, updatePlant); +// +// updatePlant.setScanShow(plantReq.getScanShow()); +// // updatePlant.setChainState(updateReqVO.getChainState()); +// updatePlant.setLinkName(reqPlanMap.get(plant.getOperateObjId()).getLinkName()); +// List details = new ArrayList<>(); +// // 找到备注, 更新备注 +// this.setPlanRemarks(plant.getOperateDetails(), details, planRemarksMap.get(plant.getOperateObjId())); +// updatePlant.setDetails(details); +// +// plant.getFarmingJobs().forEach(job -> { +// // 页面如果不传 +// if(willUpdateJobIds.contains(job.getId())) { +// // 只更新已存在的,其他无视 +// BlockCertificateSaveReqVO jobReq = willUpdateJobMap.get(job.getId()); +// BlockCertificateUpdateReqDTO updateJob = new BlockCertificateUpdateReqDTO(); +// BeanUtil.copyProperties(job, updateJob); +// List jobDetails = new ArrayList<>(); +// // 找到备注, 更新备注 +// this.setFarmingRemarks(job.getOperateDetails(), jobDetails, jobMap.get(job.getOperateType() + "" + job.getOperateObjId())); +// updateJob.setDetails(jobDetails); +// updateJob.setScanShow(jobReq.getScanShow()); +// updateJob.setChainState(updatePlant.getChainState()); +// +// updateBlockCertificates.add(updateJob); +// } else { +// // 如果未上链, 则可进行删除操作( 这里也去掉限制 2023.06.25 +// deleteCertificateIds.add(job.getId()); +// } +// }); +// updateBlockCertificates.add(updatePlant); +// } else { +// deleteCertificateIds.add(plant.getId()); +// plant.getFarmingJobs().forEach(job -> deleteCertificateIds.add(job.getId())); +// } +// }); +// } //********************************* 更新检验检疫 **************************************// if(saveReqVO.getInspections() != null && !saveReqVO.getInspections().isEmpty()) {