Commit 9dbecb73 authored by 陈晓晋's avatar 陈晓晋

Merge branch 'xjchen' into 'develop'

评估模型导入20230810

See merge request !29
parents 1e8e3391 ac41b480
package com.censoft.censoftrongtong.controller;
import com.censoft.censoftrongtong.domain.EvaluationModelInfo;
import com.censoft.censoftrongtong.domain.dto.EvaluationFactorItemsDto;
import com.censoft.censoftrongtong.service.IEvaluationModelInfoService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
......@@ -11,6 +12,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -96,5 +98,33 @@ public class EvaluationModelInfoController extends BaseController
return toAjax(evaluationModelInfoService.deleteEvaluationModelInfoByIds(ids));
}
/**
* 评估模型信息导入
* @param file
* @param updateSupport
* @return
* @throws Exception
*/
@Log(title = "评估信息导入", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('system/evaluation:factor:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<EvaluationFactorItemsDto> util = new ExcelUtil<EvaluationFactorItemsDto>(EvaluationFactorItemsDto.class);
List<EvaluationFactorItemsDto> factorItemsDtoList= util.importExcel(file.getInputStream());
String operName = getUsername();
String message = evaluationModelInfoService.importUser(factorItemsDtoList, updateSupport, operName);
return success(message);
}
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response)
{
ExcelUtil<EvaluationFactorItemsDto> util = new ExcelUtil<EvaluationFactorItemsDto>(EvaluationFactorItemsDto.class);
util.importTemplateExcel(response, "评估因素数据");
}
}
......@@ -84,6 +84,12 @@ public class RiskPlanAppController extends BaseController {
@Resource
private IRiskAssessmentMatrixLevelService riskAssessmentMatrixLevelService;
@Resource
private IEvaluationModelInfoService evaluationModelInfoService;
@Resource
private IEvaluationFactorItemsService evaluationFactorItemsService;
/**
* 服务器地址
......@@ -775,4 +781,60 @@ public class RiskPlanAppController extends BaseController {
return toAjax(result);
}
/**
* 根据人机料法环获取
* @param factorNames 影响因素
* @return
*/
@GetMapping("/evaluation/getFactorListByType")
public R<List<FactorListDto>> getFactorListByType(String factorNames) {
/**
* 解决思路
* 1.获取影响因素
* 2.根据影响因素获取印象因子
* 3.获取影响因子选项
*/
List<FactorListDto> list_rs=new ArrayList<>();
List<FactorItemListDto> list_items=new ArrayList<>();
FactorListDto factorListDto = new FactorListDto();
FactorItemListDto factorItemListDto=new FactorItemListDto();
if(factorNames != null && !factorNames.trim().equals("")){
List<String> list_factors=Arrays.asList(factorNames.split(","));
for (int i = 0; i < list_factors.size(); i++) {
factorListDto=new FactorListDto();
list_items=new ArrayList<>();
String factorName=list_factors.get(i);
QueryWrapper<EvaluationModelInfo> queryModel=new QueryWrapper<>();
queryModel.lambda().eq(EvaluationModelInfo ::getInfluenceFactor,factorName);
List<EvaluationModelInfo> list_models=evaluationModelInfoService.list(queryModel);
if (list_models.size()>0) {
for (EvaluationModelInfo modelInfo : list_models) {
factorItemListDto=new FactorItemListDto();
QueryWrapper<EvaluationFactorItems> queryItem = new QueryWrapper<>();
queryItem.lambda().eq(EvaluationFactorItems ::getFactorId,modelInfo.getId() );
List<EvaluationFactorItems> itemsList=evaluationFactorItemsService.list(queryItem);
factorItemListDto.setFactorSubName(modelInfo.getInfluenceSubFactor());
factorItemListDto.setRemark(modelInfo.getRemark());
factorItemListDto.setFactorItemsList(itemsList);
list_items.add(factorItemListDto);
}
}
factorListDto.setFactorName(factorName);
factorListDto.setFactorList(list_items);
factorListDto.setFactorAmount(list_items.size());
list_rs.add(factorListDto);
}
}
return R.ok(list_rs);
}
}
package com.censoft.censoftrongtong.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntityClean;
import lombok.Data;
......@@ -17,6 +20,8 @@ public class EvaluationFactorItems extends BaseEntityClean
private static final long serialVersionUID = 1L;
/** 主键 */
@JsonFormat(shape = JsonFormat.Shape.STRING)
@TableId(type = IdType.AUTO)
private Long id;
/** 影响因子id */
......@@ -33,7 +38,7 @@ public class EvaluationFactorItems extends BaseEntityClean
/** 指标分值 */
@Excel(name = "指标分值")
private Long indicatorScore;
private Integer indicatorScore;
/** 是否重大影响(0:一般,1:重大) */
@Excel(name = "是否重大影响(0:一般,1:重大)")
......@@ -41,7 +46,7 @@ public class EvaluationFactorItems extends BaseEntityClean
/** 排序 */
@Excel(name = "排序")
private Long sortNum;
private Integer sortNum;
/** 删除标志(0代表存在 1代表删除) */
private String delFlag;
......
package com.censoft.censoftrongtong.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntityClean;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import lombok.Data;
/**
* 评估模型信息对象 evaluation_model_info
......@@ -11,11 +13,14 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @author xjchen
* @date 2023-08-08
*/
@Data
public class EvaluationModelInfo extends BaseEntityClean
{
private static final long serialVersionUID = 1L;
/** 主键 */
@JsonFormat(shape = JsonFormat.Shape.STRING)
@TableId(type = IdType.AUTO)
private Long id;
/** 影响因素 */
......@@ -28,70 +33,10 @@ public class EvaluationModelInfo extends BaseEntityClean
/** 排序 */
@Excel(name = "排序")
private Long sortNum;
private Integer sortNum;
/** 删除标志(0代表存在 1代表删除) */
private String delFlag;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setInfluenceFactor(String influenceFactor)
{
this.influenceFactor = influenceFactor;
}
public String getInfluenceFactor()
{
return influenceFactor;
}
public void setInfluenceSubFactor(String influenceSubFactor)
{
this.influenceSubFactor = influenceSubFactor;
}
public String getInfluenceSubFactor()
{
return influenceSubFactor;
}
public void setSortNum(Long sortNum)
{
this.sortNum = sortNum;
}
public Long getSortNum()
{
return sortNum;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
{
return delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("influenceFactor", getInfluenceFactor())
.append("influenceSubFactor", getInfluenceSubFactor())
.append("sortNum", getSortNum())
.append("delFlag", getDelFlag())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}
......@@ -4,11 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
/**
* 现有风险清单库对象 risk_plan_existing_list
......@@ -153,6 +150,11 @@ public class RiskPlanExistingList extends BaseEntity {
*/
@TableField("del_flag")
private String delFlag;
/**
* 评估选项ids
*/
@TableField("evaluation_item_ids")
private String evaluationItemIds;
/**
* 楼栋ID
......
package com.censoft.censoftrongtong.domain.dto;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
/**
* 评估选项管理对象 evaluation_factor_items
*
* @author xjchen
* @date 2023-08-08
*/
@Data
public class EvaluationFactorItemsDto
{
/** 影响因素 */
@Excel(name = "影响因素")
private String influenceFactor;
/** 影响因子 */
@Excel(name = "影响因子")
private String influenceSubFactor;
/** 指标项一 */
@Excel(name = "指标项一")
private String indicatorItem1;
/** 指标项二 */
@Excel(name = "指标项二")
private String indicatorItem2;
/** 指标项三 */
@Excel(name = "指标项三")
private String indicatorItem3;
/** 指标项四 */
@Excel(name = "指标项四")
private String indicatorItem4;
/** 是否重大影响(0:一般,1:重大) */
@Excel(name = "是否重大影响(0:一般,1:重大)")
private String isImportant;
/** 备注 */
@Excel(name = "备注")
private String remark;
}
package com.censoft.censoftrongtong.domain.dto;
import com.censoft.censoftrongtong.domain.EvaluationFactorItems;
import lombok.Data;
import java.util.List;
@Data
public class FactorItemListDto {
/**
* 影响因子名称
*/
private String factorSubName;
/**
* 影响因素列表
*/
List<EvaluationFactorItems> factorItemsList;
/**
* 影响因子备注
*/
private String remark;
}
package com.censoft.censoftrongtong.domain.dto;
import lombok.Data;
import java.util.List;
@Data
public class FactorListDto {
/**
* 影响因素
*/
private String factorName;
/**
* 影响因素列表
*/
List<FactorItemListDto> factorList;
/**
* 项目
*/
private Integer factorAmount;
}
package com.censoft.censoftrongtong.service;
import com.censoft.censoftrongtong.domain.EvaluationModelInfo;
import com.censoft.censoftrongtong.domain.dto.EvaluationFactorItemsDto;
import com.github.yulichang.base.MPJBaseService;
import java.util.List;
......@@ -59,4 +60,14 @@ public interface IEvaluationModelInfoService extends MPJBaseService<EvaluationM
* @return 结果
*/
public int deleteEvaluationModelInfoById(Long id);
/**
* 导入评估数据
*
* @param factorItemsDtoList 因素数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return 结果
*/
public String importUser(List<EvaluationFactorItemsDto> factorItemsDtoList, Boolean isUpdateSupport, String operName);
}
package com.censoft.censoftrongtong.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.censoft.censoftrongtong.domain.EvaluationFactorItems;
import com.censoft.censoftrongtong.domain.EvaluationModelInfo;
import com.censoft.censoftrongtong.domain.dto.EvaluationFactorItemsDto;
import com.censoft.censoftrongtong.mapper.EvaluationFactorItemsMapper;
import com.censoft.censoftrongtong.mapper.EvaluationModelInfoMapper;
import com.censoft.censoftrongtong.service.IEvaluationModelInfoService;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.validation.Validator;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
......@@ -24,6 +34,14 @@ public class EvaluationModelInfoServiceImpl extends MPJBaseServiceImpl<Evaluatio
@Autowired
private EvaluationModelInfoMapper evaluationModelInfoMapper;
@Autowired
private EvaluationFactorItemsMapper evaluationFactorItemsMapper;
@Autowired
protected Validator validator;
/**
* 查询评估模型信息
*
......@@ -99,4 +117,116 @@ public class EvaluationModelInfoServiceImpl extends MPJBaseServiceImpl<Evaluatio
{
return evaluationModelInfoMapper.deleteEvaluationModelInfoById(id);
}
/**
* 导入因素数据
*
* @param factorItemListDtoList 因素数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return 结果
*/
@Override
public String importUser(List<EvaluationFactorItemsDto> factorItemListDtoList, Boolean isUpdateSupport, String operName)
{
if (StringUtils.isNull(factorItemListDtoList) || factorItemListDtoList.size() == 0)
{
throw new ServiceException("导入评估数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
int k=0;
for (EvaluationFactorItemsDto factorItemsDto : factorItemListDtoList)
{
try
{
// 验证是否存在这个因素
QueryWrapper<EvaluationModelInfo> quModel = new QueryWrapper<>();
quModel.lambda().eq(EvaluationModelInfo::getInfluenceFactor,factorItemsDto.getInfluenceFactor()).eq(EvaluationModelInfo::getInfluenceSubFactor,factorItemsDto.getInfluenceSubFactor());
EvaluationModelInfo modelInfo = evaluationModelInfoMapper.selectOne(quModel);
if (StringUtils.isNull(modelInfo))
{
//BeanValidators.validateWithException(validator, factorItemsDto);
EvaluationModelInfo evaluationModelInfo=new EvaluationModelInfo();
BeanUtils.copyProperties(factorItemsDto,evaluationModelInfo);
evaluationModelInfo.setCreateTime(new Date());
evaluationModelInfo.setCreateBy(operName);
evaluationModelInfo.setSortNum(++k);
evaluationModelInfo.setDelFlag("0");
int rs=evaluationModelInfoMapper.insert(evaluationModelInfo);//插入因素
if (rs>0) {//插入选项
String [] indicatorBelongArr={"指标项一","指标项二","指标项三","指标项四"};
List<String> list_items=new ArrayList<>();
list_items.add(StringUtils.isNotEmpty(factorItemsDto.getIndicatorItem1())?factorItemsDto.getIndicatorItem1():"");
list_items.add(StringUtils.isNotEmpty(factorItemsDto.getIndicatorItem2())?factorItemsDto.getIndicatorItem2():"");
list_items.add(StringUtils.isNotEmpty(factorItemsDto.getIndicatorItem3())?factorItemsDto.getIndicatorItem3():"");
list_items.add(StringUtils.isNotEmpty(factorItemsDto.getIndicatorItem4())?factorItemsDto.getIndicatorItem4():"");
for (int i = 0; i < list_items.size(); i++) {
String itemStr=list_items.get(i);
if (itemStr==null||itemStr.equals("")) {
continue;
}
EvaluationFactorItems evaluationFactorItems=new EvaluationFactorItems();
evaluationFactorItems.setIndicatorBelong(indicatorBelongArr[i]);
evaluationFactorItems.setIndicatorItem(itemStr);
evaluationFactorItems.setIndicatorScore(i+1);
evaluationFactorItems.setSortNum(i+1);
evaluationFactorItems.setDelFlag("0");
evaluationFactorItems.setCreateBy(operName);
evaluationFactorItems.setCreateTime(new Date());
evaluationFactorItems.setFactorId(evaluationModelInfo.getId());
if(factorItemsDto.getIsImportant().equals("1")&&i==list_items.size()-1){
evaluationFactorItems.setIsImportant("1");
}else {
evaluationFactorItems.setIsImportant("0");
}
evaluationFactorItemsMapper.insert(evaluationFactorItems);
}
}
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + factorItemsDto.getInfluenceFactor() + " 导入成功");
}
else if (isUpdateSupport)
{
//BeanValidators.validateWithException(validator, user);
//checkUserAllowed(u);
//checkUserDataScope(u.getUserId());
//user.setUserId(u.getUserId());
//user.setUpdateBy(operName);
//userMapper.updateUser(user);
//successNum++;
//successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
}
else
{
failureNum++;
failureMsg.append("<br/>" + failureNum + "、账号 " + factorItemsDto.getInfluenceFactor() + " 已存在");
}
}
catch (Exception e)
{
failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + factorItemsDto.getInfluenceFactor() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
if (failureNum > 0)
{
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
else
{
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
}
......@@ -32,10 +32,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="evaluationItemIds" column="evaluation_item_ids" />
</resultMap>
<sql id="selectRiskPlanExistingListVo">
select id, user_id, inherent_id, plan_id, room_id, name, factor, type, level, presence_location, picture_file_ids, measures_project, measures_project_file_ids, measures_administration, measures_dept_name, measures_user_name, measures_user_phone, measures_administration_file_ids, measures_emergency, measures_emergency_file_ids, reference_basis, del_flag, create_by, create_time, update_by, update_time, remark from risk_plan_existing_list
select id, user_id, inherent_id, plan_id, room_id, name, factor, type, level, presence_location, picture_file_ids, measures_project, measures_project_file_ids, measures_administration, measures_dept_name, measures_user_name, measures_user_phone, measures_administration_file_ids, measures_emergency, measures_emergency_file_ids, reference_basis, del_flag, create_by, create_time, update_by, update_time, remark,evaluationItemIds from risk_plan_existing_list
</sql>
<select id="selectRiskPlanExistingListList" parameterType="com.censoft.censoftrongtong.domain.RiskPlanExistingList" resultMap="RiskPlanExistingListResult">
......@@ -72,7 +73,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
rpil.create_time,
rpil.update_by,
rpil.update_time,
rpil.remark
rpil.remark,
rpil.evaluation_item_ids
FROM
risk_plan_existing_list rpil
LEFT JOIN ledger_room lr ON lr.id = rpil.room_id
......@@ -139,6 +141,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="evaluationItemIds != null">evaluation_item_ids,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
......@@ -167,6 +170,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="evaluationItemIds != null">#{evaluationItemIds},</if>
</trim>
</insert>
......@@ -199,6 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="evaluationItemIds != null">evaluation_item_ids = #{evaluationItemIds},</if>
</trim>
where id = #{id}
</update>
......@@ -245,7 +250,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
rpil.measures_emergency AS measuresEmergency,
rpil.measures_emergency_file_ids AS measuresEmergencyFileIds,
rpil.reference_basis AS referenceBasis,
rpil.create_time
rpil.create_time,
rpil.evaluation_item_ids
FROM
risk_plan_existing_list rpil
LEFT JOIN sys_user su ON su.user_id = rpil.user_id
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment