认证-参数清单-变更扩展

This commit is contained in:
liyawei
2022-05-16 18:08:11 +08:00
parent 908ce1c22e
commit 2bab622118
10 changed files with 149 additions and 6 deletions
@@ -7,7 +7,6 @@ import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService;
import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO;
import com.jero.modules.cert.template.entity.ParamsInfoPublishEO;
import com.jero.modules.system.entity.SysUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -151,6 +151,11 @@ public class ParamsCollectManifestEO implements Serializable {
@ApiModelProperty(value = "参数清单id")
private String paramsManifestId;
/**变更标识*/
@Excel(name = "变更标识", width = 15)
@ApiModelProperty(value = "变更标识")
private String changeFlag;
@TableField(exist = false)
private String userTypes;
}
@@ -0,0 +1,35 @@
package com.jero.modules.cert.collect.enums;
/**
* @Author: liyawei
* @Description:
* @Date: Created in 17:49 2022/5/16
*/
public enum CollectManifestChangeFlagEnum {
CHANGE_BEFORE("变更前","0"),
CHANGE_AFTER("变更后","1");
String name;
String value;
CollectManifestChangeFlagEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -26,6 +26,7 @@
<result column="dre" property="dre" />
<result column="deadline" property="deadline" />
<result column="params_manifest_id" property="paramsManifestId" />
<result column="change_flag" property="changeFlag" />
</resultMap>
<sql id="BaseQuerySql">
<where>
@@ -73,7 +74,7 @@
select *
from params_collect_manifest
<include refid="BaseQuerySql"/>
order by create_time asc
order by change_flag desc, create_time asc
</select>
</mapper>
@@ -26,7 +26,7 @@
<result column="dre" property="dre" />
<result column="deadline" property="deadline" />
<result column="params_manifest_id" property="paramsManifestId" />
<result column="is_lock" property="isLock" />
<result column="change_flag" property="changeFlag" />
</resultMap>
<sql id="BaseQuerySql">
<where>
@@ -5,14 +5,18 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.entity.ParamsConfigEO;
import com.jero.modules.cert.collect.entity.ParamsManifestEO;
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.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.IParamsManifestEOService;
import com.jero.modules.cert.collect.service.IParamsManifestHistoryEOService;
import com.jero.modules.cert.collect.vo.ParamsManifestHistoryVO;
@@ -65,6 +69,14 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Autowired
private ParamsConfigEOMapper paramsConfigEOMapper;
@Autowired
private ParamsCollectManifestEOMapper paramsCollectManifestEOMapper;
@Autowired
private IParamsManifestHistoryEOService paramsManifestHistoryEOService;
/**
* 保存
*
@@ -234,7 +246,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
@Autowired
private IParamsManifestHistoryEOService paramsManifestHistoryEOService;
private IParamsConfigDataEOService paramsConfigDataEOService;
/**
* 变更扩展
@@ -248,8 +260,82 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
// 变更扩展时,将历史清单数据 连同历史参数项收集数据 备份到相关历史表中
paramsManifestHistoryEOService.addForChangeExtension(id);
// TODO 将模板最新版本和项目中参数项进行比对
return false;
// 将模板最新版本和项目中参数项进行比对
ParamsManifestEO paramsManifestEO = getById(id);
if (paramsManifestEO.getState().equals(ManifestStateEnum.COLLECTING.getValue())) {
throw new JeroBootException("清单收集中,无法发起变更!");
}
// 查询项目引用的模板是否是最新版本
Integer newestVersion = paramsInfoPublishEOService.getNewestVersionByParamsTemplateId(id);
if (newestVersion == null) {
throw new JeroBootException("查询不到模板最新发布版本!");
}
if (newestVersion == paramsManifestEO.getParamsTemplatePublishVersion()) {
throw new JeroBootException("当前已是模板最新发布版本!");
}
// 查询最新版模板参数项
List<ParamsInfoPublishEO> newParamsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(id, newestVersion);
// 查询项目所有参数项(这时候参数项都收集完了)
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(id);
List<ParamsCollectManifestEO> oldParamsCollectManifestEOList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
// 比较模板参数项 和 项目参数项
// nio编号一样时,比较参数填写规则(控件类型,控件备选值,控件校验)是否一样;nio编号不一样时,不用管,用户自己添加
List<String> nioNumberList = oldParamsCollectManifestEOList.stream().map(ParamsCollectManifestEO::getNioNumber).collect(Collectors.toList());
List<ParamsInfoPublishEO> sameList = newParamsInfoPublishEOList.stream().filter(e->nioNumberList.contains(e.getNioNumber())).collect(Collectors.toList());
List<String> delCollectManifestIdList = new ArrayList<>();
List<ParamsCollectManifestEO> updateCollectManifestEOList = new ArrayList<>();
for (ParamsInfoPublishEO paramsInfoPublishEO : sameList) {
ParamsCollectManifestEO 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();
// 比较参数填写规则
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());
updateCollectManifestEO.setState(CollectManifestStateEnum.WAIT_COLLECT.getValue());
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_AFTER.getValue());
delCollectManifestIdList.add(oldCollectManifestEO.getId());
} else {
// 参数填写规则没有改变,状态变为:变更
updateCollectManifestEO.setId(oldCollectManifestEO.getId());
updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue());
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue());
}
updateCollectManifestEOList.add(updateCollectManifestEO);
}
// 删除参数项配置数据
paramsConfigDataEOService.deleteByParamsCollectManifestIdList(delCollectManifestIdList);
// 更新项目参数项
paramsCollectManifestEOService.updateBatchById(updateCollectManifestEOList);
// 参数清单版本加 1
ParamsManifestEO updateManifestEO = new ParamsManifestEO();
updateManifestEO.setId(id);
updateManifestEO.setVersion(paramsManifestEO.getVersion() + 1);
updateManifestEO.setParamsTemplatePublishVersion(newestVersion);
return updateById(updateManifestEO);
}
@Override
@@ -2,6 +2,7 @@ package com.jero.modules.cert.template.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.cert.template.entity.ParamsInfoPublishEO;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 参数项基本信息表发布版
@@ -11,4 +12,5 @@ import com.jero.modules.cert.template.entity.ParamsInfoPublishEO;
*/
public interface ParamsInfoPublishEOMapper extends BaseMapper<ParamsInfoPublishEO> {
Integer getNewestVersion(@Param("paramsTemplateId") String paramsTemplateId);
}
@@ -23,4 +23,10 @@
<result column="params_template_id" property="paramsTemplateId" />
<result column="version" property="version" />
</resultMap>
<select id="getNewestVersion" resultType="java.lang.Integer" parameterType="java.lang.String">
select max(version)
from params_info_publish
where params_template_id = #{paramsTemplateId}
</select>
</mapper>
@@ -63,4 +63,5 @@ public interface IParamsInfoPublishEOService extends IService<ParamsInfoPublishE
int publishTemplate(String paramsTemplateId);
Integer getNewestVersionByParamsTemplateId(String paramsTemplateId);
}
@@ -27,6 +27,9 @@ import java.util.UUID;
@Service
public class ParamsInfoPublishEOServiceImpl extends ServiceImpl<ParamsInfoPublishEOMapper, ParamsInfoPublishEO> implements IParamsInfoPublishEOService {
@Autowired
private ParamsInfoPublishEOMapper paramsInfoPublishEOMapper;
@Autowired
private IParamsTemplateEOService paramsTemplateEOService;
@Autowired
@@ -167,4 +170,9 @@ public class ParamsInfoPublishEOServiceImpl extends ServiceImpl<ParamsInfoPublis
return newVersion;
}
@Override
public Integer getNewestVersionByParamsTemplateId(String paramsTemplateId) {
return paramsInfoPublishEOMapper.getNewestVersion(paramsTemplateId) ;
}
}