合并分支 'dev_third_stage' 到 'master'

Dev third stage

查看合并请求 laws-nio/laws-weilai!90
This commit is contained in:
肖文钰
2022-07-15 22:08:07 +08:00
28 changed files with 568 additions and 60 deletions
@@ -1,6 +1,8 @@
package com.jero.modules.cert.collect.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
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 io.swagger.annotations.ApiModelProperty;
@@ -119,6 +121,7 @@ public class ParamsCollectManifestBaseEO implements Serializable {
/**工程接口人*/
@Excel(name = "工程接口人", width = 15)
@ApiModelProperty(value = "工程接口人")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String sdt;
/**填写人*/
@@ -1226,8 +1226,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
SysUser sysUser = sysUserService.getById(sdtId);
if (ObjectUtil.isNotEmpty(sysUser)) {
updateEO.setSdt(sysUser.getUsername()); // 设置工程接口人
} else {
updateEO.setSdt(null); // 设置工程接口人
}
} else {
updateEO.setSdt(null); // 设置工程接口人
}
} else {
updateEO.setSdt(null); // 设置工程接口人
}
return updateById(updateEO);
@@ -98,12 +98,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
String nioNumber = paramsInfoEO.getNioNumber();
String paramsTemplateId = paramsInfoEO.getParamsTemplateId();
// 校验nio编号 格式:字母数字横杠(-)
String nioNumberRegex = "^[A-Za-z0-9-]+$";
String nioNumberRegex = "^[A-Za-z0-9-/. ]+$";
if (!nioNumber.matches(nioNumberRegex)) {
if (CutEnum.CN.getValue().equals(paramsInfoEO.getCut())) {
throw new JeroBootException("NIO编号格式错误,仅能为字母,数字,横杠(-)!");
throw new JeroBootException("NIO编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格");
} else {
throw new JeroBootException("NIO number formatting errors, can only letters, numbers, dash (-)!");
throw new JeroBootException("NIO number formatting errors, can only letters,numbers,dash (-),dot (.),left slash,spaces!");
}
}
@@ -176,12 +176,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
String paramsTemplateId = paramsInfoEO.getParamsTemplateId();
// 校验nio编号 格式:字母数字横杠(-)
String nioNumberRegex = "^[A-Za-z0-9-]+$";
String nioNumberRegex = "^[A-Za-z0-9-/. ]+$";
if (!nioNumber.matches(nioNumberRegex)) {
if (CutEnum.CN.getValue().equals(paramsInfoEO.getCut())) {
throw new JeroBootException("NIO编号格式错误,仅能为字母,数字,横杠(-)!");
throw new JeroBootException("NIO编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格");
} else {
throw new JeroBootException("NIO number formatting errors, can only letters, numbers, dash (-)!");
throw new JeroBootException("NIO number formatting errors, can only letters,numbers,dash (-),dot (.),left slash,spaces!");
}
}
@@ -1134,12 +1134,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
countError += (int)resultMap.get("countError");
if (StringUtils.isNotEmpty(dto.getNioNumber())) {
// 校验nio编号 格式:字母数字横杠(-)
String nioNumberRegex = "^[A-Za-z0-9-]+$";
String nioNumberRegex = "^[A-Za-z0-9-/. ]+$";
if (!nioNumber.matches(nioNumberRegex)) {
if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += "NIO编号格式错误,仅能为字母,数字,横杠(-);";
errorMsg += "NIO编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格";
} else {
errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-);";
errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-),dot (.),left slash,spaces;";
}
countError++;
}
@@ -1389,12 +1389,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
countError += (int)resultMap.get("countError");
if (StringUtils.isNotEmpty(ccDto.getNioNumber())) {
// 校验nio编号 格式:字母数字横杠(-)
String nioNumberRegex = "^[A-Za-z0-9-]+$";
String nioNumberRegex = "^[A-Za-z0-9-/. ]+$";
if (!nioNumber.matches(nioNumberRegex)) {
if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += "nio编号格式错误,仅能为字母,数字,横杠(-);";
errorMsg += "nio编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格";
} else {
errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-);";
errorMsg += "NIO number formatting errors, can only letters, numbers, dash (-),dot (.),left slash,spaces;";
}
countError++;
}
@@ -1420,12 +1420,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
countError += (int)resultMap.get("countError");
if (StringUtils.isNotEmpty(ccDto.getParamsNumber())) {
// 校验编号 格式:字母数字横杠(-)
String numberRegex = "^[A-Za-z0-9-]+$";
String numberRegex = "^[A-Za-z0-9-/. ]+$";
if (!paramsNumber.matches(numberRegex)) {
if(CutEnum.CN.getValue().equals(cut)) {
errorMsg += "编号格式错误,仅能为字母,数字,横杠(-);";
errorMsg += "编号格式错误,仅能为字母,数字,横杠(-),小数点(.),左斜杠,空格";
} else {
errorMsg += "Number formatting errors, can only letters, numbers, dash (-);";
errorMsg += "Number formatting errors, can only letters, numbers, dash (-),dot (.),left slash,spaces;";
}
countError++;
}
@@ -159,6 +159,13 @@ public class SyncDataServiceImpl implements ISyncDataService{
//people获取用户信息Map
Map<String, PPEmployee> PPEmployeeMap=new HashMap<String,PPEmployee>();
//此处获取全部pp用户信息
List<SysUser> sysUserList = sysUserService.getPPEmployeeList();
// log.info("查询到的用户信息结果集为:"+JSONObject.toJSONString(userEOList));
for(SysUser user:sysUserList){
localUserMap.put(user.getThirdId(),user);
}
String path = "/people/v1/employee/all-info";
String queryStr = "app_id=" + appId + "&hash_type=sha256&offset=0&limit=100";
String response = getResultDataOfGet(path, queryStr);
@@ -195,13 +202,8 @@ public class SyncDataServiceImpl implements ISyncDataService{
}
// 处理同步过来的数据id不同,username相同的情况 creation_time不能为空
// ppEmployeeList.sort(Comparator.comparing(PPEmployee::getCreation_time).reversed());
ppEmployeeList = ppEmployeeList.stream().distinct().collect(Collectors.toList()); // 去重
//此处获取全部pp用户信息
List<SysUser> sysUserList = sysUserService.getPPEmployeeList();
// log.info("查询到的用户信息结果集为:"+JSONObject.toJSONString(userEOList));
for(SysUser user:sysUserList){
localUserMap.put(user.getThirdId(),user);
}
// log.info("将用户信息集合转换为的用户MAP为:"+JSONObject.toJSONString(localUserMap));
log.info("开始更新数据库信息");
for(PPEmployee ppEmployee:ppEmployeeList){
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.entity.OSSFileForDocumentLibrary;
import com.jero.modules.document.vo.QueryConditionVO;
import com.jero.modules.oss.entity.OSSFile;
import org.springframework.web.multipart.MultipartFile;
@@ -220,4 +221,6 @@ public interface IBussDocumentLibraryEOService extends IService<BussDocumentLibr
void isModifyForOcrAndSplit(Map<String, Object> parameter);
String getTitle(String id,String cut);
String sqlJoint(List<QueryConditionVO> queryConditionVOList);
}
@@ -5813,8 +5813,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//高级搜索条件拼接
private String sqlJoint(List<QueryConditionVO> queryConditionVOList){
@Override
public String sqlJoint(List<QueryConditionVO> queryConditionVOList){
StringBuilder sb = new StringBuilder();
if(queryConditionVOList.size() != 0){
int count =0;
@@ -210,4 +210,12 @@ public class LawsTechnologyEvaluationEOController extends JeroController<LawsTec
List<Map<String,Object>> result = this.lawsTechnologyEvaluationEOService.importItemExcel(file,cut,request);
return Result.OK(result);
}
@ApiOperation(value="根据id查询明细数据", notes="根据id查询明细数据")
@PostMapping(value = "/queryPageDummyById")
@ResponseBody
public Result<?> queryPageDummyById(@RequestBody Map<String,Object> parameter) {
List<Map<String, Object>> result = this.lawsTechnologyEvaluationEOService.queryPageDummyById(parameter);
return Result.OK(result);
}
}
@@ -122,6 +122,8 @@ public class LawsTechnologyEvaluationItemResultEO implements Serializable {
@Excel(name = "评估人id", width = 15)
@ApiModelProperty(value = "评估人id")
private java.lang.String evaluatorId;
@TableField(exist = false)
private java.lang.String evaluatorName;
/**流程实例id*/
@Excel(name = "流程实例id", width = 15)
@@ -86,4 +86,6 @@ public interface ILawsTechnologyEvaluationEOService extends IService<LawsTechnol
void exportItemTemplate(String cut, HttpServletResponse response, HttpServletRequest request);
List<Map<String,Object>> importItemExcel(MultipartFile file, String cut, HttpServletRequest request)throws Exception;
List<Map<String, Object>> queryPageDummyById(Map<String, Object> parameter);
}
@@ -209,7 +209,7 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi
for (int i = 0; i < exportData.size(); i++){
//使用评估人的名字命名sheet页
HSSFSheet sheet = workbook.createSheet(exportData.get(i).getCreateBy() + " " + sheetName);
HSSFSheet sheet = workbook.createSheet(exportData.get(i).getCreateBy() + " " + sheetName + "" + (i + 1));
CellStyle titleCellStyle = workbook.createCellStyle();
titleCellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
@@ -28,12 +28,9 @@ import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -401,6 +398,73 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
return result;
}
@Override
public List<Map<String, Object>> queryPageDummyById(Map<String, Object> parameter) {
String cut = (String) parameter.get("cut");//中英文切换标识
String id = (String) parameter.get("id");
//文档库字段
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
List<String> fileFieldStrList = fieldList.stream()
.filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).map(OnlCgformField::getDbFieldName)
.collect(Collectors.toList());
List<Map<String, Object>> result = this.bussDocumentLibraryEOMapper.queryListByIds(id);
//树形数据字典
List<SysCategory> categoryList = this.sysCategoryService.list();
//过滤出树形字段
List<OnlCgformField> treeFieldList = fieldList.stream()
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//数据字典
List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.selectItemsAll();
//下拉选处理数据字典
for (Map record : result) {
Map<String, Object> record1 = (Map) record;
String technology_territory = (String)record1.get("technology_territory");
List<String> connectIdList = new ArrayList<>();
for (Map.Entry<String, Object> entry : record1.entrySet()) {
//下拉选处理数据字典
this.bussDocumentLibraryEOService.dictItem(sysDictItems, entry, cut, fieldList,null);
this.bussDocumentLibraryEOService.treeDictItem(categoryList, entry, treeFieldList, cut,null);
if(fileFieldStrList.contains(entry.getKey())){
if(entry.getValue()!=null){
connectIdList.add(entry.getValue().toString());
}
}
}
record1.put("technology_territory_id",technology_territory);
if(CollectionUtils.isNotEmpty(connectIdList)){
//根据id查询当前文档库数据是否有拆分数据。
QueryWrapper<SarFileSplitInfoEO> splitInfoEOQueryWrapper = new QueryWrapper<>();
splitInfoEOQueryWrapper.lambda().in(SarFileSplitInfoEO::getConnectId,connectIdList);
List<SarFileSplitInfoEO> sarFileSplitInfoList = new ArrayList<>();
List<SarFileSplitInfoEO> sarFileSplitInfoListTemp = sarFileSplitInfoService.list(splitInfoEOQueryWrapper);
if (CollectionUtils.isNotEmpty(sarFileSplitInfoListTemp)){
sarFileSplitInfoListTemp.forEach(splitInfo -> {
//查询出已回传的数据
String flag = ""; // 1 已回传 0未回传。
if(StringUtils.isNotEmpty(splitInfo.getFileId())){
flag = "1";
sarFileSplitInfoList.add(splitInfo);
}else {
flag = "0";
}
splitInfo.setFlag(flag);
});
record1.put("sarFileSplitInfoList",sarFileSplitInfoList);
}
}
}
return result;
}
private String getTreeName(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList) {
StringBuilder sb = new StringBuilder();
for (String technologyTerritory : technologyTerritoryList) {
@@ -20,7 +20,17 @@ import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.RequestSourceEnum;
import com.jero.modules.split.dto.FileSpiltValTableExportDto;
import com.jero.modules.split.dto.FileSplitValExportDto;
import com.jero.modules.split.dto.FileSplitValImgExportDto;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.page.SarFileSplitItemsEOPage;
import com.jero.modules.split.page.SarFileSplitItemsValEOPage;
import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.ISarFileSplitItemsValEOService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.util.PDFUtils;
import org.apache.commons.collections4.CollectionUtils;
@@ -62,6 +72,12 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
private SysCategoryServiceImpl sysCategoryService;
@Autowired
private IOSSFileService iOSSFileService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private IFileSplitItemsEOService fileSplitItemsEOService;
@Autowired
private ISarFileSplitItemsValEOService sarFileSplitItemsValEOService;
/**
* 保存
@@ -190,6 +206,13 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
@Override
public void disposeData(List<LawsTechnologyEvaluationItemResultEO> datas, String cut) {
if(CollectionUtils.isNotEmpty(datas)){
List<String> evaluatorIdList = datas.stream().map(LawsTechnologyEvaluationItemResultEO::getEvaluatorId).distinct().collect(Collectors.toList());
List<SysUser> sysUserList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(evaluatorIdList)){
sysUserList = this.sysUserService.querySysUserListByIdList(evaluatorIdList);
}
List<SysCategory> categoryList = sysCategoryService.list();
for (LawsTechnologyEvaluationItemResultEO data : datas) {
String evaluationMethods = data.getEvaluationMethods();
@@ -205,6 +228,19 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
String accessoryFileName = accessoryFileList.stream().map(OSSFile::getFileName).collect(Collectors.joining(","));
data.setAccessoryFileName(accessoryFileName);
}
if(StringUtils.isNotEmpty(data.getEvaluatorId())){
if(CollectionUtils.isNotEmpty(sysUserList)){
String evaluatorNames = sysUserList.stream().filter(sysUser -> {
boolean flag = false;
if(StringUtils.equals(sysUser.getId(),data.getEvaluatorId())){
flag = true;
}
return flag;
}).map(SysUser::getUsername).collect(Collectors.joining(","));
data.setEvaluatorName(evaluatorNames);
}
}
}
}
}
@@ -252,7 +288,7 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
//创建表头
String[] titleArr = title.split(",");
for (int i=0; i<=5; i++){
for (int i=0; i<=10; i++){
sheet.setColumnWidth(i,4000);
Cell cell = firstRow.createCell(i);
cell.setCellStyle(titleCellStyle);
@@ -261,12 +297,30 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl
//设置导出数据
if(CollectionUtils.isNotEmpty(exportData)) {
List<FileSpiltValTableExportDto> allTableList = new ArrayList<>(); // 存储表格数据
List<FileSplitValImgExportDto> allImgList = new ArrayList<>(); // 存储文件数据
SarFileSplitItemsEOPage page = new SarFileSplitItemsEOPage();
for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) {
Row dataRow = sheet.createRow(dataIndex + 1);
dataRow.createCell(0).setCellValue(exportData.get(dataIndex).getItemNum());
dataRow.createCell(1).setCellValue(exportData.get(dataIndex).getItemName());
dataRow.createCell(2).setCellValue(exportData.get(dataIndex).getItemContent());
dataRow.createCell(3).setCellValue(exportData.get(dataIndex).getCreateBy());
String itemContent = exportData.get(dataIndex).getItemContent();
if(StringUtils.isNotEmpty(exportData.get(dataIndex).getItemId())){
SarFileSplitItemsValEOPage valEOPage = new SarFileSplitItemsValEOPage();
valEOPage.setItemId(exportData.get(dataIndex).getItemId());
valEOPage.setOrderBy("DISPLAY_SEQ,ID");
List<SarFileSplitItemsValEO> getValList = this.sarFileSplitItemsValEOService.queryByList(valEOPage);
List<FileSplitValExportDto> valContentList = this.fileSplitItemsEOService.combineItemValInfo(getValList,allTableList,allImgList,page); //TODO
if(CollectionUtils.isNotEmpty(valContentList)){
itemContent = valContentList.get(0).getValContent();
}
}
dataRow.createCell(2).setCellValue(itemContent);
dataRow.createCell(3).setCellValue(exportData.get(dataIndex).getEvaluatorName());
dataRow.createCell(4).setCellValue(exportData.get(dataIndex).getEvaluationMethodsName());
dataRow.createCell(5).setCellValue(exportData.get(dataIndex).getTechnicalFileName());
dataRow.createCell(6).setCellValue(exportData.get(dataIndex).getSection());
@@ -0,0 +1,45 @@
package com.jero.modules.project.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.modules.project.service.ILawsComplianceBoardService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@Api(tags="法规符合性看板")
@RestController
@RequestMapping("/project/lawsComplianceBoard")
@Slf4j
public class LawsComplianceBoardController {
@Autowired
private ILawsComplianceBoardService lawsComplianceBoardService;
@AutoLog(value = "项目库-法规符合性看板列表分页查询")
@ApiOperation(value="项目库-法规符合性看板列表分页查询", notes="项目库-法规符合性看板列表分页查询")
@GetMapping(value = "/page")
public JSONObject queryPageList(@RequestParam Map<String,Object> params){
IPage infoPage = this.lawsComplianceBoardService.queryPageList(params);
Result<IPage> ok = Result.OK(infoPage);
JSONObject jsonResult = JSONObject.fromObject(ok);
return jsonResult;
}
@AutoLog(value = "项目库-法规符合性看板-查询符合性结果列表")
@ApiOperation(value="项目库-法规符合性看板-查询符合性结果列表", notes="项目库-法规符合性看板-查询符合性结果列表")
@GetMapping(value = "/queryComplianceResultList")
public Result<?> queryComplianceResultList(@RequestParam Map<String,Object> params){
JSONObject result = this.lawsComplianceBoardService.queryComplianceResultList(params);
return Result.OK(result);
}
}
@@ -0,0 +1,24 @@
package com.jero.modules.project.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface LawsComplianceBoardMapper {
/**
* 查询出 启动过 设计、prehomo、验证符合性、法规技术评估、法规意见收集其中一个流程 的数据
* @param page
* @param params
* @return
*/
IPage queryPageList(IPage page, @Param("params") Map<String, Object> params);
/**
* 项目库-法规符合性看板-查询符合性结果列表
* @param params
* @return
*/
List<Map<String, Object>> queryComplianceResultList(@Param("params") Map<String, Object> params);
}
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.project.mapper.LawsComplianceBoardMapper">
<select id="queryPageList" resultType="hashMap">
SELECT
bdl.id as "id",
bdl.serial_number as "serialNumber",
bdl.title as "title",
bdl.technology_territory as "technologyTerritory",
bdl.state as "state",
bdl.create_time as "createTime"
FROM
buss_document_library bdl
LEFT JOIN project_laws_inventory pli ON ( pli.stand_id = bdl.id )
LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id )
WHERE
(
bdl.id IN ( SELECT DISTINCT stand_id FROM laws_opinion_gather)
OR bdl.id IN ( SELECT DISTINCT stand_id FROM laws_technology_evaluation)
or pti.design_p_id IS NOT NULL
OR pti.prehomo_p_id IS NOT NULL
OR pti.verify_p_id IS NOT NULL
)
${params.condition}
GROUP BY bdl.id
order by bdl.create_time desc
</select>
<select id="queryComplianceResultList" resultType="hashMap">
SELECT
pli.stand_id as "standId",
pli.id as "id",
pli.serial_number as "serialNumber",
pli.title as "title",
pli.project_library_id as "projectLibraryId",
pni.project_name as "projectName",
pyni.year_name as "yearName",
pti.design_status as "designStatus",
pti.design_p_id as "designPId",
pti.prehomo_status as "prehomoStatsu",
pti.prehomo_p_id as "prehomoPId",
pti.verify_status as "verifyStatus",
pti.verify_p_id as "verifyPId",
pli.duty_territory as "dutyTerritory"
FROM
project_laws_inventory pli
LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id )
LEFT JOIN project_library_base plb ON ( plb.id = pli.project_library_id )
LEFT JOIN project_name_info pni ON ( pni.id = plb.project_name_id )
LEFT JOIN project_year_name_info pyni ON ( pyni.id = plb.year_name_id )
WHERE
pli.stand_id = #{params.id}
AND( pti.design_p_id IS NOT NULL OR pti.prehomo_p_id IS NOT NULL OR pti.verify_p_id IS NOT NULL )
<if test="params.dutyTerritory != null params.dutyTerritory != '' ">
and pli.duty_territory like CONCAT(CONCAT('%',#{params.dutyTerritory}),'%')
</if>
<if test="params.projectNameId != null params.projectNameId != '' ">
and pni.id like CONCAT(CONCAT('%',#{params.projectNameId}),'%')
</if>
<if test="params.projectName != null params.projectName != '' ">
and pni.project_name like CONCAT(CONCAT('%',#{params.projectName}),'%')
</if>
</select>
</mapper>
@@ -0,0 +1,18 @@
package com.jero.modules.project.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import net.sf.json.JSONObject;
import java.util.Map;
public interface ILawsComplianceBoardService {
IPage queryPageList(Map<String, Object> params);
/**
* 项目库-法规符合性看板-查询符合性结果列表
* @param params
* @return
*/
JSONObject queryComplianceResultList(Map<String, Object> params);
}
@@ -0,0 +1,201 @@
package com.jero.modules.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.document.enums.FieldTypeEnum;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.document.vo.QueryConditionVO;
import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO;
import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService;
import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO;
import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService;
import com.jero.modules.project.mapper.LawsComplianceBoardMapper;
import com.jero.modules.project.service.ILawsComplianceBoardService;
import com.jero.modules.system.util.StringUtils;
import net.sf.json.JSONObject;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardService {
@Autowired
private LawsComplianceBoardMapper lawsComplianceBoardMapper;
@Autowired
private ILawsOpinionGatherEOService lawsOpinionGatherEOService;
@Autowired
private ILawsTechnologyEvaluationEOService lawsTechnologyEvaluationEOService;
@Autowired
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
@Override
public IPage queryPageList(Map<String, Object> params) {
int pageNo = Integer.parseInt(params.get("pageNo").toString());
int pageSize = Integer.parseInt(params.get("pageSize").toString());
//封装查询条件(包含高级搜索)
String condition = this.getConditionStr(params);
params.put("condition",condition);
IPage page = new Page(pageNo, pageSize);
IPage infoPage = this.lawsComplianceBoardMapper.queryPageList(page, params);
List records = infoPage.getRecords();
this.disposeData(records);
return infoPage;
}
public void disposeData(List datas){
if (CollectionUtils.isNotEmpty(datas)) {
for (Object data : datas) {
Map<String,Object> dataMap = (Map<String, Object>) data;
}
}
}
@Override
public JSONObject queryComplianceResultList(Map<String, Object> params) {
JSONObject result = new JSONObject();
String id = (String) params.get("id");
String cut = (String) params.get("cut");
List<Map<String,Object>> cmplianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params);
result.put("cmplianceResultList",cmplianceResultList);
//查询当前数据是否有法规意见收集流程数据
QueryWrapper<LawsOpinionGatherEO> opinionGatherEOQueryWrapper = new QueryWrapper<>();
opinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getStandId,id);
int opinionGatherCount = this.lawsOpinionGatherEOService.count(opinionGatherEOQueryWrapper);
result.put("opinionGather",opinionGatherCount);
//查询当前数据是否有法规技术评估流程数据
QueryWrapper<LawsTechnologyEvaluationEO> evaluationEOQueryWrapper = new QueryWrapper<>();
evaluationEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getStandId,id);
int evaluationCount = this.lawsTechnologyEvaluationEOService.count(evaluationEOQueryWrapper);
result.put("technologyEvaluation",evaluationCount);
return result;
}
@NotNull
public String getConditionStr(Map<String, Object> parameter) {
String cut = (String) parameter.get("cut");
String flag = String.valueOf(parameter.get("flag"));
//查询条件
StringBuilder conditionSb = new StringBuilder("");
//过滤查询条件字段类型使用
List<Map<String, Object>> mapList = this.bussDocumentLibraryEOService.queryCondition("1", cut, null);
//查询条件处理
for (Map.Entry<String, Object> entry : parameter.entrySet()) {
String key = entry.getKey();
if (!"pageNo".equals(key) && !"pageSize".equals(key)) {
String value = "";
if(ObjectUtils.isNotEmpty(entry.getValue())){
value = StringUtils.valueOf(entry.getValue());
}
if (StringUtils.isNotBlank(value)) {
for (Map<String, Object> map : mapList) {
String fieldName = (String) map.get("db_field_name");//字段
if (key.equals(fieldName)) {
//字段类型(判断是输入框还是下拉,等等)
String fieldType = (String) map.get("field_show_type");//字段类型
if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldType) || FieldTypeEnum.TEXT_NUMBER.getValue().equals(fieldType)) {
//输入框 LIKE CONCAT("%", '/%', "%") ESCAPE '/'
if (value.contains("%")) {
value = value.replace("%", "/%");
}
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
} else if (FieldTypeEnum.PULL_SINGLE.getValue().equals(fieldType)
|| FieldTypeEnum.PULL_MORE.getValue().equals(fieldType)
|| FieldTypeEnum.TREE.getValue().equals(fieldType)) {
StringBuilder valueSb = new StringBuilder();
StringBuilder condition = new StringBuilder();
for (String valueTemp : value.split(",")) {
valueSb.append("'" + valueTemp + "',");
condition.append(" or " + key + " like concat(concat('%','" + valueTemp + "'),'%')");
}
condition.append(")");
String substring = valueSb.substring(0, valueSb.length() - 1);
//下拉单选或下拉多选
conditionSb.append(" and (" + key + " in(" + substring + ")" + condition.toString());
} else if (FieldTypeEnum.DATE_SINGLE.getValue().equals(fieldType)) {
//日期(区分单日期还时间范围)
if (value.contains(",")) {
conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') >= '" + value.split(",")[0] + "'"
+ " and " + "date_format(" + key + ",'%Y-%m-%d') <= '" + value.split(",")[1] + "'");
} else {
conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') = '" + value + "'");
}
} else if (FieldTypeEnum.PERSON.getValue().equals(fieldType)) {
//输入框 LIKE CONCAT("%", '/%', "%") ESCAPE '/'
if (value.contains("%")) {
value = value.replace("%", "/%");
}
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
}
}
}
}
}
}
//处理法规预警模块预警时间查询条件 flag = 0(新车实施日期), flag = 1(在产车实施日期)
String warnTime = (String) parameter.get("WarnTime");
if(StringUtils.isNotBlank(warnTime)){
if("0".equals(flag)){
//日期(区分单日期还时间范围)
if (warnTime.contains(",")) {
conditionSb.append(" and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') >= '" + warnTime.split(",")[0] + "'"
+ " and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') <= '" + warnTime.split(",")[1] + "'");
} else {
conditionSb.append(" and " + "date_format(" + "xin1_che1_xing2_shi2_shi1_ri4_qi1" + ",'%Y-%m-%d') = '" + warnTime + "'");
}
}else{
//日期(区分单日期还时间范围)
if (warnTime.contains(",")) {
conditionSb.append(" and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') >= '" + warnTime.split(",")[0] + "'"
+ " and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') <= '" + warnTime.split(",")[1] + "'");
} else {
conditionSb.append(" and " + "date_format(" + "implement_time" + ",'%Y-%m-%d') = '" + warnTime + "'");
}
}
}
//高级搜索 queryConditionVOList List<QueryConditionVO>
if(ObjectUtils.isNotEmpty(parameter.get("queryConditionVOList"))){
String queryConditionVOListStr = (String) parameter.get("queryConditionVOList");
List<QueryConditionVO> queryConditionVOList = com.alibaba.fastjson.JSONObject.parseArray(queryConditionVOListStr, QueryConditionVO.class);
if(ObjectUtils.isNotEmpty(queryConditionVOList)){
String queryCondition = this.bussDocumentLibraryEOService.sqlJoint(queryConditionVOList);
if(StringUtils.isNotBlank(queryCondition)){
conditionSb.append(" and " + queryCondition);
}
}
}
//处理列表表头排序
/*if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(" order by " + (String) parameter.get("orderByField"));
if ("1".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" asc");//正序
} else if ("2".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" desc");//倒序
}
} else {
conditionSb.append(" order by create_time desc");
}*/
String condition = conditionSb.toString();
return condition;
}
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -785,7 +785,7 @@ module.exports = {
copyParamDetailList: 'Copy Parameter List',
collectionCompletionTime: 'Collection Completion Time',
parameterTemplateName: 'Parameter Template Name',
onlyThree: 'Only letters, numbers and horizontal bars (-) can be entered',
onlyThree: 'Only letters, numbers, dashes (-), and decimal points (.) can be entered. , left slash, space six kinds of content ',
templateName: 'Template Name',
pleaseSelectData: 'Please Select Data',
templateCopy: 'Template Copy',
+1 -1
View File
@@ -800,7 +800,7 @@ module.exports = {
copyParamDetailList: '复制参数清单',
collectionCompletionTime: '收集完成时间',
parameterTemplateName: '参数模板名称',
onlyThree: '只能输入字母数字横杠-种内容',
onlyThree: '只能输入字母数字横杠-小数点.左斜杠空格六种内容',
templateName: '模板名称',
pleaseSelectData: '请选择数据',
templateCopy: '模板复制',
@@ -117,7 +117,7 @@
@cancel="cancel">
<a-form-model
class='tag-module'
ref='ruleForm'
ref='ruleFormOne'
:model='Dateline'
:rules='rules'
:label-col='labelCol'
@@ -136,6 +136,7 @@
<!-- </a-select-option>-->
<!-- </a-select>-->
<j-dict-select-tag class="box-input" v-model="Dateline.queryzr"
@input="handleInput('queryzr')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
@@ -146,7 +147,7 @@
<div class="imports-footer">
<div class="imports-footer-wrap">
<a-button class="imports-btn imports-sub" type="primary" @click="handleSubmitzr">{{$t('preservation')}}
<a-button class="imports-btn imports-sub" :loading="confirmLoading" type="primary" @click="handleSubmitzr">{{$t('preservation')}}
</a-button>
<a-button class="imports-btn" type="primary" @click="cancel">{{$t('cancel')}}</a-button>
</div>
@@ -278,6 +279,7 @@
indeterminate: false,
columns: [],
content: [],
confirmLoading:false,
selectedRowKeys: [],
selectedRowrowValue: [],
dataSource: [],
@@ -348,6 +350,12 @@
return 'rowClassRed'
}
},
handleInput(value) {
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.$refs.ruleFormOne.validateField([value])
})
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.$emit('handlePreservation')
@@ -415,8 +423,9 @@
handleSubmitzr(record) {
let _this = this
let param = { dutyTerritory: this.Dateline.queryzr, ids: this.getquerySdtId,paramsManifestId: this.$route.query.id, }
this.$refs.ruleForm.validate(valid => {
this.$refs.ruleFormOne.validate(valid => {
if (valid) {
this.confirmLoading = true
axios({
url: '/jero-boot/params/collectManifest/updateDutyTerritory',
method: 'post',
@@ -442,8 +451,10 @@
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
this.confirmLoading = false
})
.catch((error) => {
this.confirmLoading = false
console.log(error)
})
}
@@ -494,7 +505,7 @@
},
cancel(){
this.areaVisiblezr = false
this.$refs['ruleForm'].resetFields()
this.$refs['ruleFormOne'].resetFields()
},
// 点击工程接口人的详情人员 有权限
areaOfResponsibility(record) {
@@ -513,7 +524,7 @@
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.getquerySdtId = record.id
this.$refs.ruleForm.clearValidate()
this.$refs.ruleFormOne.clearValidate()
})
},
dataValueTobeinitiated() {
@@ -35,10 +35,10 @@
</div>
<PersonnelSelection class="box-input"
:personneQuery="queryParam"
:query="{db_field_name:'evaluators',db_field_txt:$t('Assessor')}"
:query="{db_field_name:'evaluatorId',db_field_txt:$t('Assessor')}"
:isInput="true"
@change="PersonnelSelectionChange"
v-model="queryParam.evaluatorsName"/>
v-model="queryParam.evaluatorIdName"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -167,7 +167,7 @@
},
{
title: this.$t('Assessor'),
dataIndex: 'Assessor',
dataIndex: 'evaluatorName',
align: 'center',
ellipsis: true,
width: 160
@@ -347,15 +347,15 @@
id: this.formInline.standId
}
this.loading = true
let url = ''
if (this.isTrue) {
url = this.url.addModelListOne
} else {
url = this.url.addModelList
}
postAction(url, query).then((res) => {
// let url = ''
// if (this.isTrue) {
// url = this.url.addModelListOne
// } else {
// url = this.url.addModelList
// }
postAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/queryPageDummyById', query).then((res) => {
if (res.success) {
let content = res.result.records || []
let content = res.result || []
this.selectedRowKeysRecord.push({
standId: content[0].id,
serialNumber: content[0].serial_number,
@@ -275,7 +275,7 @@
}
.title-text {
width: 33px;
width: 73px;
color: #000F16;
display: inline-block;
font-weight: 500;
@@ -382,6 +382,7 @@
id: row.id,
processBackground: row.processBackground,
serialNumber: row.serialNumber,
lawsTechnologyEvaluationId:row.id,
standId: row.standId,
remark:row.remark
}
@@ -376,7 +376,7 @@ export default {
{ required: true, message: this.$t('PleaseEnter')+this.$t('NiONumber'), trigger: 'blur' },
{ min:1, max: 15, message: this.$t('cantExeed')+'15'+this.$t('characters'), trigger: 'blur' },
{
pattern: /^[0-9a-zA-Z-]{1,}$/,
pattern: /^[0-9a-zA-Z-/. ]{1,}$/,
message: this.$t('onlyThree'),
trigger: 'blur'
}
@@ -385,7 +385,7 @@ export default {
// { required: true, message: this.$t('pleaseSelect')+this.$t('certificationCategory'), type: 'array', trigger: 'change' },
],
isMust: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('Required'), trigger: 'change' },
{ required: true, message: this.$t('PleaseEnter')+this.$t('Required'), trigger: 'change' },
],
paramsName: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('ParameterName'), trigger: 'blur' },
@@ -669,7 +669,7 @@ export default {
}
let falg = 1
this.contentList.forEach((item,index) => {
let reg = /^[0-9a-zA-Z-]{1,}$/
let reg = /^[0-9a-zA-Z-/. ]{1,}$/
// 编号的限制
if(item.paramsNumber == '' || item.paramsNumber === undefined) {
this.$message.warning(this.$t('standard')+this.$t('cannotEmpty'))
@@ -170,13 +170,11 @@ export default {
{
title: this.$t('standard'),
align: 'center',
width: '10%',
dataIndex: 'standard'
},
{
title: this.$t('title'),
align: 'center',
width: '10%',
dataIndex: 'title'
},
{
@@ -184,11 +182,11 @@ export default {
align: 'center',
dataIndex: 'status'
},
{
title: this.$t('category'),
align: 'center',
dataIndex: 'category'
},
// {
// title: this.$t('category'),
// align: 'center',
// dataIndex: 'category'
// },
{
title: this.$t('technicalField'),
align: 'center',
+1
View File
@@ -95,6 +95,7 @@ module.exports = {
target: 'http://localhost:8080', //请求本地 jero-boot后台项目
// target: 'http://10.10.10.46:8101', //请求本地 jero-boot后台项目
// target: 'http://10.0.1.25:8080',
// target: 'http://10.0.1.5:8080',
ws: false,
changeOrigin: true
}