diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java index fca266f32..14c8158b0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsManifestEOController.java @@ -77,7 +77,7 @@ public class ParamsManifestEOController extends JeroController rows = pageList.getRecords(); // // 处理 状态 中英文 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java index fdf54cc72..95387ac70 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestHistoryEOService.java @@ -20,5 +20,8 @@ public interface IParamsManifestHistoryEOService extends IService getHistoryList(String paramsManifestId); + List getHistoryListByProjectId(String getProjectId); + + void deleteAllHistoryVersion(List paramsManifestIdList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index db2c27b3b..678c8d8ed 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -6948,10 +6948,28 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramList = paramsCollectManifestEOMapper.queryByParamManifestId(paramsManifestId); + boolean flag = false; + for (ParamsCollectManifestEO pcm : paramList) { + if(!pcm.getControlType().equals(ControlTypeEnum.Title.getValue()) && !pcm.getState().equals(CollectManifestStateEnum.WAIT_COLLECT.getValue())){ + flag = true; + break; + } + } + if(!flag){ + ParamsManifestEO paramsManifestEO = paramsManifestEOService.queryById(paramsManifestId); // 获取清单信息 + paramsManifestEO.setState(ManifestStateEnum.UNCOLLECTED.getValue()); + paramsManifestEOService.updateById(paramsManifestEO); + } + } + @Override public Result certifiedEngineerUpdateDreBatch(ParamsCollectManifestVO paramsCollectManifestVO) { if (StringUtils.isEmpty(paramsCollectManifestVO.getIds()) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 802c460b7..678150427 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -17,13 +17,10 @@ import com.jero.modules.cert.collect.enums.CollectManifestChangeFlagEnum; import com.jero.modules.cert.collect.enums.CollectManifestStateEnum; import com.jero.modules.cert.collect.enums.ManifestStateEnum; import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper; +import com.jero.modules.cert.collect.mapper.ParamsCollectManifestHistoryEOMapper; import com.jero.modules.cert.collect.mapper.ParamsConfigEOMapper; import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper; -import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; -import com.jero.modules.cert.collect.service.IParamsConfigDataEOService; -import com.jero.modules.cert.collect.service.IParamsConfigEOService; -import com.jero.modules.cert.collect.service.IParamsManifestEOService; -import com.jero.modules.cert.collect.service.IParamsManifestHistoryEOService; +import com.jero.modules.cert.collect.service.*; import com.jero.modules.cert.collect.vo.ParamsManifestHistoryVO; import com.jero.modules.cert.collect.vo.ParamsManifestVO; import com.jero.modules.cert.report.entity.ParamsReportEO; @@ -93,15 +90,24 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl hisList = paramsManifestHistoryEOService.getHistoryList(pm.getId()); - if(CollectionUtils.isNotEmpty(hisList)){ - for (ParamsManifestHistoryEO his : hisList) { - his.setIsHistory("1"); - resList.add(his); - } + } + List hisList = paramsManifestHistoryEOService.getHistoryListByProjectId(paramsManifestEO.getProjectId()); + if(CollectionUtils.isNotEmpty(hisList)){ + for (ParamsManifestHistoryEO his : hisList) { + his.setIsHistory("1"); + resList.add(his); } } + Collections.sort(resList, new Comparator() { + @Override + public int compare(ParamsManifestEO p1, ParamsManifestEO p2) { + if (p1.getTitle().equals(p2.getTitle())) { + return p2.getVersion().compareTo(p1.getVersion()); + } + return p2.getCreateTime().compareTo(p1.getCreateTime()); + } + }); + return resList; } @@ -367,7 +383,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl idList = new ArrayList<>(); idList.add(id); - paramsManifestHistoryEOService.deleteAllHistoryVersion(idList); +// paramsManifestHistoryEOService.deleteAllHistoryVersion(idList); // 添加上报库的项目名称和清单标题 paramsReportEOService.setProjectNameAndTitle(idList); @@ -419,7 +435,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl map = paramsCollectManifestEOService.isCollectFinished(id); Boolean finish = (Boolean) map.get("finish"); if (!finish) { @@ -696,6 +733,187 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl hisList = paramsManifestHistoryEOService.getHistoryList(paramsManifestHistoryEO.getSourceParamsManifestId()); + for (ParamsManifestHistoryEO his : hisList) { + if(his.getVersion()>paramsManifestHistoryEO.getVersion()){ + //只能在最高版本历史版本上发起变更扩展 + if (CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("存在更高版本,无法发起变更!"); + } else { + throw new JeroBootException("Higher version exists, and cannot be initiated change!"); + } + } + } + }else{ + //收集清单中存在数据 + if (CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("存在更高版本,无法发起变更!"); + } else { + throw new JeroBootException("Higher version exists, and cannot be initiated change!"); + } + } + + ParamsTemplateEO paramsTemplateEO = paramsTemplateEOService.queryById(paramsManifestHistoryEO.getParamsTemplateId()); + if(ObjectUtil.isNotEmpty(paramsTemplateEO) && paramsTemplateEO.getStatus() != 1){ + if (CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("参数模版未发布,无法发起变更!"); + } else { + throw new JeroBootException("The parameter template is not published, and cannot be initiated change!"); + } + } + + // 查询项目引用的模板是否是最新版本 + Integer newestVersion = paramsInfoPublishEOService.getNewestVersionByParamsTemplateId(paramsManifestHistoryEO.getParamsTemplateId()); + if (newestVersion == null) { + if (CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("查询不到模板最新发布版本!"); + } else { + throw new JeroBootException("Can not find the latest template!"); + } + } + + // 查询最新版模板参数项 + List newParamsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(paramsManifestHistoryEO.getParamsTemplateId(), newestVersion); + // 查询项目所有参数项(这时候参数项都收集完了) + ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO(); + paramsCollectManifestEO.setParamsManifestId(paramsManifestHistoryEO.getId()); + List oldParamsCollectManifestEOList = paramsCollectManifestHistoryEOMapper.listInfo(paramsCollectManifestEO); + + // 查询上报库的项目所有参数项的配置数据 + ParamsReportEO paramsReportEO = paramsReportEOService.queryByOldParamsManifestId(paramsManifestHistoryEO.getSourceParamsManifestId(), paramsManifestHistoryEO.getVersion()); + List> paramsReportConfigDataList = paramsReportDetailEOService.listInfoForChange(paramsReportEO.getId()); + + // 比较模板参数项 和 项目参数项 + // nio编号一样时,比较参数填写规则(控件类型,控件备选值,控件校验)是否一样;nio编号不一样时,不用管,用户自己添加 + List oldNioNumberList = oldParamsCollectManifestEOList.stream().map(ParamsCollectManifestHistoryEO::getNioNumber).collect(Collectors.toList()); + List sameList = newParamsInfoPublishEOList.stream().filter(e -> oldNioNumberList.contains(e.getNioNumber())).collect(Collectors.toList()); + + List newNioNumberList = sameList.stream().map(ParamsInfoPublishEO::getNioNumber).collect(Collectors.toList()); + List diffList = oldParamsCollectManifestEOList.stream().filter(e -> !newNioNumberList.contains(e.getNioNumber())).collect(Collectors.toList()); + + + List delCollectManifestIdList = new ArrayList<>(); + List updateCollectManifestEOList = new ArrayList<>(); + List updateConfigDataEOList = new ArrayList<>(); + + // 模板里没有,清单里有 + if (CollectionUtil.isNotEmpty(diffList)) { + for (ParamsCollectManifestHistoryEO oldCollectManifestEO : diffList) { + ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO(); + updateCollectManifestEO.setId(oldCollectManifestEO.getId()); + updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue()); + updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项 + updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_AFTER.getValue()); // 因新发布模板中没有该参数项,标记为变更时已删除参数项 + updateCollectManifestEO.setAddFlag(CollectManifestChangeFlagEnum.ADD_BEFORE.getValue()); // 非添加参数项 + updateCollectManifestEO.setParamsManifestId(paramsManifestHistoryEO.getSourceParamsManifestId()); + updateCollectManifestEOList.add(updateCollectManifestEO); + } + } + + // 模板里有,清单里也有 + if (CollectionUtil.isNotEmpty(sameList)) { + for (ParamsInfoPublishEO paramsInfoPublishEO : sameList) { + ParamsCollectManifestHistoryEO oldCollectManifestEO = oldParamsCollectManifestEOList.stream() + .filter(e -> e.getNioNumber().equals(paramsInfoPublishEO.getNioNumber())) + .collect(Collectors.toList()).get(0); + String newControlType = paramsInfoPublishEO.getControlType(); + String newControlVerify = paramsInfoPublishEO.getControlVerify(); + String newControlValues = paramsInfoPublishEO.getControlValues(); + + String oldControlType = oldCollectManifestEO.getControlType(); + String oldControlVerify = oldCollectManifestEO.getControlVerify(); + String oldControlValues = oldCollectManifestEO.getControlValues(); + + ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO(); + BeanUtils.copyProperties(paramsInfoPublishEO, updateCollectManifestEO); + // 比较参数填写规则 + if (!newControlType.equals(oldControlType) + || (newControlVerify != null && !newControlVerify.equals(oldControlVerify)) + || (oldControlVerify != null && !oldControlVerify.equals(newControlVerify)) + || (newControlValues != null && !newControlValues.equals(oldControlValues)) + || (oldControlValues != null && !oldControlValues.equals(newControlValues))) { + + // 参数填写规则改变,删除参数项配置数据,状态变为:待发起收集,拍列表前边 + updateCollectManifestEO.setId(oldCollectManifestEO.getId()); // 为收集参数项id + updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue()); + updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_AFTER.getValue()); // 因新发布模板中该参数项控件变化,标记为变更后参数项 + updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_BEFORE.getValue()); // 标记为变更时未删除参数项 + updateCollectManifestEO.setAddFlag(CollectManifestChangeFlagEnum.ADD_BEFORE.getValue()); // 非添加参数项 +// updateCollectManifestEO.setControlType(newControlType); +// updateCollectManifestEO.setControlVerify(newControlVerify); +// updateCollectManifestEO.setControlValues(newControlValues); + + delCollectManifestIdList.add(oldCollectManifestEO.getId()); + } else { + // 参数填写规则没有改变,状态变为:变更 + updateCollectManifestEO.setId(oldCollectManifestEO.getId()); + updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue()); + updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项 + updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_BEFORE.getValue()); // 标记为变更时未删除参数项 + updateCollectManifestEO.setAddFlag(CollectManifestChangeFlagEnum.ADD_BEFORE.getValue()); // 非添加参数项 + updateCollectManifestEO.setParamsManifestId(paramsManifestHistoryEO.getSourceParamsManifestId()); + + } + // 更新附件模板字段 + if (StringUtils.isNotEmpty(paramsInfoPublishEO.getFileTemplateConnectId())) { + updateCollectManifestEO.setFileTemplateConnectId(paramsInfoPublishEO.getFileTemplateConnectId()); + } + updateCollectManifestEOList.add(updateCollectManifestEO); + } + } + + // 查询配置信息 + List configEOList = new ArrayList<>(); + List configIdList = new ArrayList<>(); + List configList = paramsConfigHistoryEOService.queryList(paramsManifestHistoryEO.getId()); + for (ParamsConfigHistoryEO config : configList) { + ParamsConfigEO newConfig = new ParamsConfigEO(); + BeanUtils.copyProperties(config,newConfig); + newConfig.setParamsManifestId(paramsManifestHistoryEO.getSourceParamsManifestId()); + configEOList.add(newConfig); + configIdList.add(newConfig.getId()); + } + if (CollectionUtil.isNotEmpty(configList)) { + paramsConfigEOService.saveOrUpdateBatch(configEOList); + } + List configDataEOList = new ArrayList<>(); + List paramsConfigDataEOList = paramsConfigDataHistoryEOService.queryListByConfigIdList(configIdList); + for (ParamsConfigDataHistoryEO configData : paramsConfigDataEOList) { + ParamsConfigDataEO newConfigData = new ParamsConfigDataEO(); + BeanUtils.copyProperties(configData,newConfigData); + configDataEOList.add(newConfigData); + } + if (CollectionUtil.isNotEmpty(configDataEOList)) { + paramsConfigDataEOService.saveOrUpdateBatch(configDataEOList); + } + + // 更新项目参数项 + paramsCollectManifestEOService.saveOrUpdateBatch(updateCollectManifestEOList); + + // 参数清单版本加 1 + ParamsManifestEO updateManifestEO = new ParamsManifestEO(); + + updateManifestEO.setId(paramsManifestHistoryEO.getSourceParamsManifestId()); + updateManifestEO.setTitle(paramsManifestHistoryEO.getTitle()); + updateManifestEO.setState(ManifestStateEnum.COLLECTING.getValue()); // 变更扩展后,清单状态为收集中 + updateManifestEO.setVersion(paramsManifestHistoryEO.getVersion() + 1); + updateManifestEO.setProjectId(paramsManifestHistoryEO.getProjectId()); + updateManifestEO.setParamsTemplateId(paramsManifestHistoryEO.getParamsTemplateId()); + updateManifestEO.setParamsTemplatePublishVersion(newestVersion); + updateManifestEO.setParamsTemplateName(paramsManifestHistoryEO.getParamsTemplateName()); + updateManifestEO.setProjectVersion(paramsManifestHistoryEO.getProjectVersion()); + updateManifestEO.setProjectVersionId(paramsManifestHistoryEO.getProjectVersionId()); + updateManifestEO.setReferencesColId(paramsManifestHistoryEO.getReferencesColId()); + updateManifestEO.setReferencesColName(paramsManifestHistoryEO.getReferencesColName()); + return save(updateManifestEO); + } + @Override public List getHistoryVersionList(String paramsManifestId) { return paramsManifestHistoryEOService.getHistoryVersionList(paramsManifestId); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestHistoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestHistoryEOServiceImpl.java index c5e9b2275..e7b1caf95 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestHistoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestHistoryEOServiceImpl.java @@ -133,6 +133,16 @@ public class ParamsManifestHistoryEOServiceImpl extends ServiceImpl getHistoryListByProjectId(String projectId) { + // 历史版本和当前版本通过id进行关联 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ParamsManifestHistoryEO::getProjectId, projectId) + .orderByAsc(ParamsManifestHistoryEO::getVersion); + List list = list(queryWrapper); + return list; + } + @Override public List getHistoryList(String paramsManifestId) { // 历史版本和当前版本通过id进行关联 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java index 47803ba90..0b1f0ae29 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java @@ -285,6 +285,26 @@ public class ParamsInfoEOController extends JeroController withdraw(@RequestParam(name="paramsTemplateId") String paramsTemplateId, + @RequestParam(name="cut") String cut) { + paramsInfoPublishEOService.withdraw(paramsTemplateId, cut); + if (CutEnum.CN.getValue().equals(cut)) { + return Result.OK("撤回成功!"); + } else { + return Result.OK("Withdraw success!"); + } + } + + /** * 模板下载 * @param cut diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java index a0d633a64..c59b80358 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java @@ -89,6 +89,11 @@ public class ParamsTemplateEO implements Serializable { @ApiModelProperty(value = "当前版本") private java.lang.Integer version; + /**发布状态 1:已发布;0:草稿*/ + @Excel(name = "发布状态", width = 15) + @ApiModelProperty(value = "发布状态") + private java.lang.Integer status; + //排序 @TableField(exist = false) private String orderBy; // 顺序 1-升序, 2-降序 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsInfoPublishEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsInfoPublishEOService.java index 3d9873de7..fee22552a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsInfoPublishEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/service/IParamsInfoPublishEOService.java @@ -64,4 +64,6 @@ public interface IParamsInfoPublishEOService extends IService