Compare commits

...
10 Commits
Author SHA1 Message Date
mzaxd 95a6be7098 feat: 新增企标被代替设为废止的功能
- 在 OldSystemController 中添加 esReplaceDataFix 方法,用于执行企标被代替设为废止的操作
- 在 OldSystemService 接口中添加 esReplaceDataFix 方法声明
- 在 OldSystemServiceImpl 中实现 esReplaceDataFix 方法,逻辑为将所有企标中被代替的标准设为废止状态- 从 UpdateStandardStatusJob 中移除了代替标准状态改为废止的逻辑,该功能已由新增的方法覆盖
2024-10-15 16:13:13 +08:00
mzaxd 58beddaf19 feat: 数据处理优化:移除PrcNum为空的复核计划项在EnterpriseStandardRecheckPlanServiceImpl类中,增加了一个步骤来移除PrcNum为空的复核计划项。这确保了处理后的列表中只包含PrcNum非空的有效数据项。 2024-10-15 10:31:17 +08:00
mzaxd 08da7a676a fix: 绑定零部件条款号排序报错 2024-10-11 17:52:49 +08:00
mzaxd 6a0bfd78ee fix: 绑定零部件获取拆分数据 2024-10-11 15:17:45 +08:00
mzaxd ba41f84bfa feat: 企标制修订结束后自动设置标准来源字段 2024-10-10 17:32:22 +08:00
mzaxd 9c73fc93f9 fix: 企标详情标准分解单标识 2024-09-29 16:56:37 +08:00
lijiarao 394b727e96 update 文档拆分的表格识别代码合并丢了,已经处理 2024-09-29 11:35:23 +08:00
mzaxd 3e3fb31e26 feat: 企标稽查稽查报告附件支持预览 2024-09-29 09:18:10 +08:00
mzaxd f442c72311 perf: 企标评审会记录性能优化 2024-09-27 17:14:44 +08:00
mzaxd c2ac5971d7 fix: 评分详情顺序 2024-09-26 17:31:18 +08:00
15 changed files with 91 additions and 42 deletions
@@ -103,6 +103,14 @@ public class ProcessESRevisionEndListener implements ExecutionListener {
variables.put(FieldCommon.AUTH_DEPT, data.getAuthDept());
String standardId = IdWorker.getIdStr();
variables.put(FieldCommon.ID, standardId);
String nameCode = (String) variables.get(FieldCommon.ENTERPRISE_NAME_CODE);
if (StrUtil.isNotBlank(nameCode)) {
if (nameCode.equals("WQ")) {
variables.put(FieldCommon.STANDARD_SOURCE, "2");
} else {
variables.put(FieldCommon.STANDARD_SOURCE, "1");
}
}
// minio上传在线编辑文件
String onEditFile = data.getOnEditFile();
if (StringUtils.isNotBlank(onEditFile)) {
@@ -8,17 +8,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.SendMessageAPI;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.bindPart.docking.DockingService;
import com.jero.modules.bindPart.mapper.LawsBindPartMapper;
import com.jero.modules.bindPart.entity.BindPartStandardVO;
import com.jero.modules.bindPart.entity.LawsBindPart;
import com.jero.modules.bindPart.entity.LawsBindPartDoc;
import com.jero.modules.bindPart.mapper.LawsBindPartMapper;
import com.jero.modules.bindPart.service.ILawsBindPartDocService;
import com.jero.modules.bindPart.service.ILawsBindPartService;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
@@ -42,7 +42,6 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.jero.common.constant.CommonConstant.HAS_SEND;
import static com.jero.modules.bindPart.docking.DockingServiceImpl.BIND_RELATION_CHANGE;
/**
@@ -289,7 +288,8 @@ public class LawsBindPartServiceImpl extends ServiceImpl<LawsBindPartMapper, Law
LambdaQueryWrapper<SarFileSplitInfoEO> sarFileSplitInfoEOLambdaQueryWrapper = new LambdaQueryWrapper<>();
sarFileSplitInfoEOLambdaQueryWrapper.isNotNull(SarFileSplitInfoEO::getStandardId);
sarFileSplitInfoEOLambdaQueryWrapper.in(!standardIdList.isEmpty(), SarFileSplitInfoEO::getStandardId, standardIdList);
sarFileSplitInfoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitStatus, HAS_SEND);
sarFileSplitInfoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitStatus, "2");
sarFileSplitInfoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
// 设置拆分信息id
List<SarFileSplitInfoEO> splitInfoEOList = fileSplitInfoService.list(sarFileSplitInfoEOLambdaQueryWrapper);
Map<String, List<SarFileSplitInfoEO>> map = splitInfoEOList.stream().collect(Collectors.groupingBy(SarFileSplitInfoEO::getStandardId));
@@ -373,6 +373,13 @@ public class LawsBindPartServiceImpl extends ServiceImpl<LawsBindPartMapper, Law
return null;
}
private double parseStringToDouble(String str) {
try {
return Double.parseDouble(str);
} catch (NumberFormatException e) {
return Double.MAX_VALUE; // 确保非数值类型的字符排在最后
}
}
private void sendMessageToBindUser(LawsBindPart lawsBindPart) {
String userId = UserUtils.getUserId();
@@ -384,8 +391,10 @@ public class LawsBindPartServiceImpl extends ServiceImpl<LawsBindPartMapper, Law
} else {
List<String> clauseIdList = Arrays.asList(clauseIds.split(","));
List<LawsDocumentSplit> lawsDocumentSplits = documentSplitMapper.selectBatchIds(clauseIdList);
String clause = lawsDocumentSplits.stream().sorted()
.map(LawsDocumentSplit::getItemNum).collect(Collectors.joining(","));
String clause = lawsDocumentSplits.stream()
.sorted(Comparator.comparing(LawsDocumentSplit::getItemNum, Comparator.comparingDouble(this::parseStringToDouble)))
.map(LawsDocumentSplit::getItemNum)
.collect(Collectors.joining(","));
String msg = "的" + clause + "条款";
sendMap.put("clause", msg);
}
@@ -225,6 +225,8 @@ public class FieldCommon {
public static final String STANDARD_PROPERTY = "standard_property";
// 标准拆分状态
public static final String STANDARD_SPLIT_STATUS = "standard_split_status";
// 标准来源
public static final String STANDARD_SOURCE = "standard_source";
}
@@ -1511,7 +1511,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 标准id
queryWrapper.eq(SarFileSplitInfoEO::getStandardId, id);
// 拆分表发布标识
queryWrapper.isNotNull(SarFileSplitInfoEO::getPublishBeforeId);
queryWrapper.eq(SarFileSplitInfoEO::getSplitStatus, "2");
// 文件字段标识
queryWrapper.eq(SarFileSplitInfoEO::getFileType, FieldCommon.FILE_PUBLISH_OF_ORIGINAL);
List<SarFileSplitInfoEO> sarFileSplitInfoEOList = sarFileSplitInfoService.list(queryWrapper);
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -79,6 +80,7 @@ public class EnterpriseStandardInspectReport implements Serializable {
private String executionStatus;
/**附件*/
@Dict(dictTable = "oss_file", dicCode = "id", dicText = "file_name")
@ApiModelProperty(value = "附件")
private String attachment;
@@ -1,7 +1,5 @@
package com.jero.modules.laws.enterprise.entity.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
@@ -47,6 +45,7 @@ public class EnterpriseStandardReviewMeetingVo {
@ApiModelProperty(value = "评审人")
private String reviewUsers;
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "realname")
@ApiModelProperty(value = "评分人")
private String rateUsers;
@@ -32,10 +32,9 @@
ic.requirement AS standardRequire,
ir.execution_status,
ir.evaluate_score,
o.file_name AS attachment
ir.attachment
FROM
laws_enterprise_standard_inspect_report AS ir
LEFT JOIN oss_file AS o ON o.id = ir.attachment
LEFT JOIN laws_enterprise_standard_inspect_content AS ic ON ir.inspect_content_id = ic.id
WHERE
ir.inspect_id = #{inspectId}
@@ -28,8 +28,8 @@
rmr.review_user AS reviewUsers,
esp.qualityFlag,
(score.avg_score_item1 + score.avg_score_item2 + score.avg_score_item3 +
score.avg_score_item4 + score.avg_score_item5 + score.avg_score_item6) AS avgScore,
GROUP_CONCAT(DISTINCT CONCAT(u.realname, '(', u.username, ')') ORDER BY u.username ASC SEPARATOR ',') AS rateUsers
score.avg_score_item4 + score.avg_score_item5 + score.avg_score_item6) AS avgScore,
GROUP_CONCAT(DISTINCT detail.adjudicator_id ORDER BY detail.adjudicator_id ASC SEPARATOR ',') AS rateUsers
FROM
`laws_enterprise_standard_review_meeting_record` AS rmr
LEFT JOIN
@@ -43,24 +43,23 @@
laws_enterprise_standard_plan AS esp
) AS esp ON esp.id = rmr.plan_id
LEFT JOIN
(
SELECT
d.review_meeting_id,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '1' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item1,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '2' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item2,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '3' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item3,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '4' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item4,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '5' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item5,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '6' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item6
FROM
laws_enterprise_standard_review_meeting_record r
LEFT JOIN
laws_enterprise_standard_rmr_evaluate_detail d ON r.id = d.review_meeting_id
GROUP BY
(
SELECT
d.review_meeting_id,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '1' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item1,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '2' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item2,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '3' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item3,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '4' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item4,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '5' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item5,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '6' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item6
FROM
laws_enterprise_standard_review_meeting_record r
LEFT JOIN
laws_enterprise_standard_rmr_evaluate_detail d ON r.id = d.review_meeting_id
GROUP BY
r.id
) AS score ON score.review_meeting_id = rmr.id
) AS score ON score.review_meeting_id = rmr.id
LEFT JOIN laws_enterprise_standard_rmr_evaluate_detail detail ON detail.review_meeting_id = rmr.id
LEFT JOIN sys_user u ON u.id = detail.adjudicator_id
Where 1 = 1
<!--企标编号判断-->
<if test="param.standardNo != null and param.standardNo != ''">
@@ -90,6 +90,8 @@ public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<Enterp
esRecheck.setPrcNum(one.getPrcNum());
}
});
// 删除PrcNum为空的数据
list.removeIf(esRecheck -> StrUtil.isBlank(esRecheck.getPrcNum()));
return list;
}
@@ -7,21 +7,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardReviewMeetingRecordMapper;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardReviewMeetingRecordMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -57,7 +56,11 @@ public class EnterpriseStandardReviewMeetingRecordServiceImpl extends ServiceImp
@Override
public Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetail(String rmrId) {
List<EnterpriseStandardRmrEvaluateDetail> scoreList = esReviewMeetingMapper.getScoreList(rmrId);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> scoreMap = scoreList.stream().collect(Collectors.groupingBy(EnterpriseStandardRmrEvaluateDetail::getAdjudicatorName));
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> scoreMap = scoreList.stream()
.collect(Collectors.groupingBy(EnterpriseStandardRmrEvaluateDetail::getAdjudicatorName));
scoreMap.replaceAll((k, v) -> scoreMap.get(k).stream()
.sorted(Comparator.comparing(EnterpriseStandardRmrEvaluateDetail::getEvaluateItem))
.collect(Collectors.toList()));
String avgScore = esReviewMeetingMapper.getAvgScore(rmrId);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = new LinkedHashMap<>();
@@ -234,4 +234,12 @@ public class OldSystemController {
@RequestParam(value = "id", required = false) String id) {
return Result.OK(oldSystemDeptRelationService.sendDoneTask(endTime, taskId, id));
}
@GetMapping("/esReplaceDataFix")
@AutoLog(value = "老法规系统-企标被代替的标准设为废止")
@ApiOperation(value="老法规系统-企标被代替的标准设为废止", notes="老法规系统-企标被代替的标准设为废止")
@ApiOperationSupport(order = 100)
public Result<?> esReplaceDataFix() {
return Result.OK(oldSystemService.esReplaceDataFix());
}
}
@@ -125,4 +125,10 @@ public interface OldSystemService {
* @param response
*/
String fbDataFix(HttpServletResponse response);
/**
* 企标被代替的标准设为废止
* @return
*/
String esReplaceDataFix();
}
@@ -4,7 +4,6 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.jero.common.api.CommonAPI;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.enums.YesOrNoEnum;
@@ -12,12 +11,11 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.SysDictItemCore;
import com.jero.common.util.MessageUtils;
import com.jero.common.util.MinioUtil;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.util.ExcelUtils;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel;
import com.jero.modules.laws.oldSystem.entity.OldSystemImportDTO;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
@@ -38,7 +36,6 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.tag.enums.TableNameEnum;
import io.minio.errors.MinioException;
import lombok.Cleanup;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
@@ -46,7 +43,6 @@ import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -55,7 +51,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
@@ -482,6 +477,23 @@ public class OldSystemServiceImpl implements OldSystemService {
return "共新增" + esAdList.size() + "条权限数据";
}
@Override
public String esReplaceDataFix() {
// 获取所有企标数据
LambdaQueryWrapper<LawsReplacedStandard> replacedStandardLambdaQueryWrapper = new LambdaQueryWrapper<>();
replacedStandardLambdaQueryWrapper.eq(LawsReplacedStandard::getType, "1");
List<LawsReplacedStandard> list = lawsReplacedStandardService.list(replacedStandardLambdaQueryWrapper);
List<String> replaceBzList = list.stream().map(LawsReplacedStandard::getReplaced)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toList());
// 将这些标准设为废止状态
LambdaUpdateWrapper<LawsEnterpriseStandard> esLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
esLambdaUpdateWrapper.in(LawsEnterpriseStandard::getStandardNumber, replaceBzList);
esLambdaUpdateWrapper.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue());
esService.update(esLambdaUpdateWrapper);
return "处理完毕,共" + replaceBzList.size() + "条数据";
}
private void oldSysFBDataFileDocPath(List<OldSystemImportDTO> allDatalist, List<OldSystemImportDTO> errImportList) {
List<OldSystemImportDTO> fbDatalist = allDatalist.stream().filter(o -> o.getBzfl().contains("ISO") ||
o.getBzfl().contains("引进") ||
@@ -64,7 +64,6 @@ public class UpdateStandardStatusJob implements Job {
}
}
esService.updateBatchById(needUpdateEsList);
// 代替标准状态改为废止
for (LawsEnterpriseStandard es : needUpdateEsList) {
Map<String, Object> esMap = commonService.getByIdAndModule(es.getId(), TableNameEnum.ENTERPRISE_STANDARDS.getValue(), "2", es.getStandardNumber());
esMap.put(FieldCommon.MODULE, TableNameEnum.ENTERPRISE_STANDARDS.getValue());
@@ -101,7 +100,6 @@ public class UpdateStandardStatusJob implements Job {
}
}
gbService.updateBatchById(needUpdateGbList);
// 代替标准状态改为废止
for (LawsDomesticStandard standard : processReplaceList) {
Map<String, Object> map = commonService.getByIdAndModule(standard.getId(), TableNameEnum.DOMESTIC_REGULATIONS.getValue(), "2", standard.getStandardNumber());
map.put(FieldCommon.MODULE, TableNameEnum.DOMESTIC_REGULATIONS.getValue());
@@ -137,7 +135,6 @@ public class UpdateStandardStatusJob implements Job {
}
}
fbService.updateBatchById(needUpdateFbList);
// 代替标准状态改为废止
for (LawsOverseasStandard standard : processReplaceList) {
Map<String, Object> map = commonService.getByIdAndModule(standard.getId(), TableNameEnum.FOREIGN_REGULATIONS.getValue(), "2", standard.getStandardNumber());
map.put(FieldCommon.MODULE, TableNameEnum.FOREIGN_REGULATIONS.getValue());
@@ -145,6 +145,9 @@ public class ReadWordTable {
return false;
}
if (tcPr.getVMerge().getVal() == null) {
return false;
}
if (tcPr.getVMerge().getVal().toString().equalsIgnoreCase("continue")) {
return true;
}
return false;