Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

This commit is contained in:
高嵩
2023-04-02 14:36:34 +08:00
14 changed files with 909 additions and 422 deletions
@@ -63,34 +63,34 @@ public class AuthDummyInventoryInfoEO implements Serializable {
private java.lang.String sysOrgCode;
/**类别*/
@Excel(name = "*类别", width = 15)
@Excel(name = "类别", width = 15)
@ApiModelProperty(value = "类别")
private java.lang.String category;
/**检验项目*/
@Excel(name = "*检验项目", width = 15)
@Excel(name = "检验项目", width = 15)
@ApiModelProperty(value = "检验项目")
private java.lang.String inspectionItem;
/**配置项*/
@Excel(name = "*配置项", width = 15)
@Excel(name = "配置项", width = 15)
@ApiModelProperty(value = "配置项")
private java.lang.String configItem;
/**WVTA ID*/
@Excel(name = "*WVTA ID", width = 15)
@Excel(name = "WVTA ID", width = 15)
@ApiModelProperty(value = "WVTA ID")
private java.lang.String wvtaId;
/**标准编号*/
@Excel(name = "*编号", width = 15)
@Excel(name = "编号", width = 15)
@ApiModelProperty(value = "编号")
private java.lang.String serialNumber;
/**责任领域*/
@ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory;
@Excel(name = "*责任领域", width = 15)
@Excel(name = "责任领域", width = 15)
@TableField(exist = false)
// 责任领域名称
private String dutyTerritoryName;
@@ -107,7 +107,7 @@ public class AuthDummyInventoryInfoEO implements Serializable {
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
@TableField(exist = false)
@Excel(name = "*交付物类型", width = 15)
@Excel(name = "交付物类型", width = 15)
// 交付物类型名称
private String deliverableTypeName;
// 交付物类型名称-英文
@@ -60,27 +60,27 @@ public class AuthDummyInventoryInfoEOEn implements Serializable {
private String sysOrgCode;
/**类别*/
@Excel(name = "*Category", width = 15)
@Excel(name = "Category", width = 15)
@ApiModelProperty(value = "类别")
private String category;
/**检验项目*/
@Excel(name = "*Inspection Items", width = 15)
@Excel(name = "Inspection Items", width = 15)
@ApiModelProperty(value = "检验项目")
private String inspectionItem;
/**配置项*/
@Excel(name = "*Configuration Item", width = 15)
@Excel(name = "Configuration Item", width = 15)
@ApiModelProperty(value = "配置项")
private String configItem;
/**WVTA ID*/
@Excel(name = "*WVTA ID", width = 15)
@Excel(name = "WVTA ID", width = 15)
@ApiModelProperty(value = "WVTA ID")
private String wvtaId;
/**标准编号*/
@Excel(name = "*Number", width = 15)
@Excel(name = "Number", width = 15)
@ApiModelProperty(value = "标准编号")
private String serialNumber;
@@ -88,7 +88,7 @@ public class AuthDummyInventoryInfoEOEn implements Serializable {
@ApiModelProperty(value = "责任领域")
private String dutyTerritory;
@TableField(exist = false)
@Excel(name = "*Responsible Field", width = 15)
@Excel(name = "Responsible Field", width = 15)
// 责任领域名称
private String dutyTerritoryName;
/**责任领域名称-英文**/
@@ -100,11 +100,19 @@ public class AuthDummyInventoryInfoEOEn implements Serializable {
@ApiModelProperty(value = "交付物")
private String deliverable;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
@TableField(exist = false)
@Excel(name = "*Deliverable Type", width = 15)
@Excel(name = "Deliverable Type", width = 15)
// 交付物类型名称
private String deliverableTypeName;
// 交付物类型名称-英文
@@ -27,9 +27,11 @@ import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl;
import com.jero.modules.dummy.util.DeepCopyListUtil;
import com.jero.modules.dummy.util.ListDiff;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.system.entity.SysCategory;
@@ -41,7 +43,9 @@ import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import lombok.SneakyThrows;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
@@ -62,6 +66,7 @@ import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import java.io.*;
@@ -152,18 +157,371 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
public void editById(AuthDummyInventoryInfoEO authDummyInventoryInfoEO) {
Date now = new Date();
authDummyInventoryInfoEO.setUpdateTime(now);
saveOrUpdate(authDummyInventoryInfoEO);
//更新log
AuthDummyInventoryInfoEO authDummyInventoryInfoEOcopy = SerializationUtils.clone(authDummyInventoryInfoEO);//复制
//更新log
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername();
String serialNumber = authDummyInventoryInfoEO.getSerialNumber();
String contentLog = username+"编辑了清单中的“" + serialNumber + "”:</br>";
String enContentLog = username+" edited the “" + serialNumber + "” in the list:</br>";
authDummyLogService.updateLog(contentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.CN.getValue());
authDummyLogService.updateLog(enContentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.EN.getValue());
String contentLog = username+"编辑了清单中的“" + serialNumber + "”:";
String enContentLog = username+" edited the “" + serialNumber + "” in the list:";
// authDummyLogService.updateLog(contentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.CN.getValue());
// authDummyLogService.updateLog(enContentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.EN.getValue());
List<AuthDummyInventoryInfoEO> infoEOList = new ArrayList<>();
infoEOList.add(authDummyInventoryInfoEO);
List<AuthDummyInventoryInfoEO> infoEOListCopy = new ArrayList<>();
infoEOListCopy.add(authDummyInventoryInfoEOcopy);
//查询数据库里原来的数据
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = new QueryWrapper<>();
List<AuthDummyInventoryInfoEO> dataList = list(queryWrapper.eq("id", authDummyInventoryInfoEO.getId()));
List<AuthDummyInventoryInfoEO> dataListCopy = DeepCopyListUtil.depCopy(dataList);
saveOrUpdate(authDummyInventoryInfoEO);
//翻译-中文
translateData(infoEOList);
translateData(dataList);
//翻译-英文
translateDataToEn(infoEOListCopy);
translateDataToEn(dataListCopy);
//比对不同字段
Map<String, String> infoDiff = ListDiff.compareObject(dataList.get(0),authDummyInventoryInfoEO);
Map<String, String> infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),authDummyInventoryInfoEO);
//设置更新log
setContentLog(infoDiff,contentLog,infoDiffEn,enContentLog,authDummyInventoryInfoEO.getAuthDummyInventoryBaseId());
}
private void setContentLog(Map<String, String> infoDiff, String contentLog, Map<String, String> infoDiffEn, String enContentLog,
String authDummyInventoryBaseId) {
//设置维护清单的修改消息
if(MapUtils.isNotEmpty(infoDiff)){
//类别
if (StringUtils.isNotBlank(infoDiff.get("category"))) {
List<String> list = Arrays.asList(infoDiff.get("category").split(","));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"类别" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("category"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("category").split(","));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"Category" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
//检验项目
if (StringUtils.isNotBlank(infoDiff.get("inspectionItem"))) {
List<String> list = Arrays.asList(infoDiff.get("inspectionItem").split(","));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"检验项目" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("inspectionItem"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("inspectionItem").split(","));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"Inspection Items" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
//配置项
if (StringUtils.isNotBlank(infoDiff.get("configItem"))) {
List<String> list = Arrays.asList(infoDiff.get("configItem").split(","));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"配置项" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("configItem"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("configItem").split(","));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"Configuration Item" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
//WVTA ID
if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) {
List<String> list = Arrays.asList(infoDiff.get("wvtaId").split(","));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"WVTA ID" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("wvtaId"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("wvtaId").split(","));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"WVTA ID" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
//责任领域
if (StringUtils.isNotBlank(infoDiff.get("dutyTerritory"))) {
List<String> list = Arrays.asList(infoDiff.get("dutyTerritory").split("\\|"));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"责任领域" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("dutyTerritory"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("dutyTerritory").split("\\|"));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"Responsible Field" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
//交付物类型
if (StringUtils.isNotBlank(infoDiff.get("deliverableTypeName"))) {
List<String> list = Arrays.asList(infoDiff.get("deliverableTypeName").split("\\|"));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"交付物类型" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("deliverableTypeNameEn"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("deliverableTypeNameEn").split("\\|"));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"Deliverable Type" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
//交付物模板
if (StringUtils.isNotBlank(infoDiff.get("deliverableTemplateName"))) {
List<String> list = Arrays.asList(infoDiff.get("deliverableTemplateName").split("\\|"));
if(list.size() > 1){
String infoDiffOld = list.get(0);
String infoDiffNew = list.get(1);
contentLog += "'"+"交付物模板" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "</br>";
}
if(StringUtils.isNotBlank(infoDiffEn.get("deliverableTemplateName"))){
List<String> listEn = Arrays.asList(infoDiffEn.get("deliverableTemplateName").split("\\|"));
if(listEn.size() > 1){
String infoDiffOldEn = listEn.get(0);
String infoDiffNewEn = listEn.get(1);
enContentLog += "'"+"Deliverable Template" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "</br>";
}
}
}
contentLog = contentLog.substring(0, contentLog.length()-1);
enContentLog =enContentLog.substring(0, enContentLog.length()-1);
authDummyLogService.updateLog(contentLog, authDummyInventoryBaseId,CutEnum.CN.getValue());
authDummyLogService.updateLog(enContentLog, authDummyInventoryBaseId,CutEnum.EN.getValue());
}
}
private void translateDataToEn(List<AuthDummyInventoryInfoEO> infoEOListCopy) {
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : infoEOListCopy) {
//类别
if(StringUtils.isBlank(authDummyInventoryInfoEO.getCategory())){
authDummyInventoryInfoEO.setCategory("null");
}
//检验项目
if(StringUtils.isBlank(authDummyInventoryInfoEO.getInspectionItem())){
authDummyInventoryInfoEO.setInspectionItem("null");
}
//配置项
if(StringUtils.isBlank(authDummyInventoryInfoEO.getConfigItem())){
authDummyInventoryInfoEO.setConfigItem("null");
}
//WVTA ID
if (StringUtils.isBlank(authDummyInventoryInfoEO.getWvtaId())) {
authDummyInventoryInfoEO.setWvtaId("null");
}
//责任领域
if (StringUtils.isNotBlank(authDummyInventoryInfoEO.getDutyTerritory())) {
List<SysDictItem> dutyTerritory = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue());
List<String> dutyTerritoryList = Arrays.asList(authDummyInventoryInfoEO.getDutyTerritory().split(","));
StringBuilder dutyTerritoryBuilder = new StringBuilder();
for (String midDutyTerritory : dutyTerritoryList) {
String dutyTerritoryName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getItemText()).collect(Collectors.joining(","));
dutyTerritoryBuilder.append(dutyTerritoryName).append(",");
}
authDummyInventoryInfoEO.setDutyTerritory(dutyTerritoryBuilder.substring(0, dutyTerritoryBuilder.toString().length() - 1));
} else {
authDummyInventoryInfoEO.setDutyTerritory("null");
}
//交付物类型
Set<String> deliverableTypeSet = new HashSet<>();
List<String> deliverableTypeIdList= new ArrayList<>();
if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())){
deliverableTypeIdList = Arrays.asList(authDummyInventoryInfoEO.getDeliverableType().split(","));
deliverableTypeSet.addAll(deliverableTypeIdList);
}
//树形结构
List<SysCategory> deliverableTypeList = new ArrayList<>();
if (deliverableTypeSet.size() != 0) {
LambdaQueryWrapper<SysCategory> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SysCategory::getId, deliverableTypeSet);
deliverableTypeList = sysCategoryService.list(wrapper);
}
if (deliverableTypeList.size() != 0 && StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())) {
StringBuilder deliverableBuilder = new StringBuilder();
for(String id : deliverableTypeIdList){
List<SysCategory> designList = deliverableTypeList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList());
if (designList.size() != 0) {
deliverableBuilder.append(designList.get(0).getName() + ",");
}
}
String designName = null;
if (StringUtils.isNotBlank(deliverableBuilder)) {
designName = deliverableBuilder.substring(0, deliverableBuilder.length() - 1);
}
authDummyInventoryInfoEO.setDeliverableTypeName(designName);
} else {
authDummyInventoryInfoEO.setDeliverableTypeName("null");
}
//文件
List<String> deliverableList = new ArrayList<>();
//交付物模板
if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){
deliverableList.addAll(Arrays.asList(authDummyInventoryInfoEO.getDeliverableTemplate().split(",")));
}else {
authDummyInventoryInfoEO.setDeliverableTemplateName("null");
}
List<OSSFile> fileInfos = new ArrayList<>();
if(deliverableList.size() != 0){
fileInfos = iOSSFileService.getFileInfos(org.apache.commons.lang3.StringUtils.join(deliverableList, ","));
}
//交付物类型模板
if(fileInfos.size() != 0){
if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){
String fileName = getFileName(authDummyInventoryInfoEO, fileInfos,authDummyInventoryInfoEO.getDeliverableTemplate());
if(org.apache.commons.lang3.StringUtils.isNotBlank(fileName)){
authDummyInventoryInfoEO.setDeliverableTemplateName(fileName);
}
}
}
}
}
private void translateData(List<AuthDummyInventoryInfoEO> infoEOList) {
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : infoEOList) {
//类别
if(StringUtils.isBlank(authDummyInventoryInfoEO.getCategory())){
authDummyInventoryInfoEO.setCategory("");
}
//检验项目
if(StringUtils.isBlank(authDummyInventoryInfoEO.getInspectionItem())){
authDummyInventoryInfoEO.setInspectionItem("");
}
//配置项
if(StringUtils.isBlank(authDummyInventoryInfoEO.getConfigItem())){
authDummyInventoryInfoEO.setConfigItem("");
}
//WVTA ID
if (StringUtils.isBlank(authDummyInventoryInfoEO.getWvtaId())) {
authDummyInventoryInfoEO.setWvtaId("");
}
//责任领域
if (StringUtils.isNotBlank(authDummyInventoryInfoEO.getDutyTerritory())) {
List<SysDictItem> dutyTerritory = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue());
List<String> dutyTerritoryList = Arrays.asList(authDummyInventoryInfoEO.getDutyTerritory().split(","));
StringBuilder dutyTerritoryBuilder = new StringBuilder();
for (String midDutyTerritory : dutyTerritoryList) {
String dutyTerritoryName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getItemText()).collect(Collectors.joining(","));
dutyTerritoryBuilder.append(dutyTerritoryName).append(",");
}
authDummyInventoryInfoEO.setDutyTerritory(dutyTerritoryBuilder.substring(0, dutyTerritoryBuilder.toString().length() - 1));
} else {
authDummyInventoryInfoEO.setDutyTerritory("");
}
//交付物类型
Set<String> deliverableTypeSet = new HashSet<>();
List<String> deliverableTypeIdList= new ArrayList<>();
if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())){
deliverableTypeIdList = Arrays.asList(authDummyInventoryInfoEO.getDeliverableType().split(","));
deliverableTypeSet.addAll(deliverableTypeIdList);
}
//树形结构
List<SysCategory> deliverableTypeList = new ArrayList<>();
if (deliverableTypeSet.size() != 0) {
LambdaQueryWrapper<SysCategory> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SysCategory::getId, deliverableTypeSet);
deliverableTypeList = sysCategoryService.list(wrapper);
}
if (deliverableTypeList.size() != 0 && StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())) {
StringBuilder deliverableBuilder = new StringBuilder();
for(String id : deliverableTypeIdList){
List<SysCategory> designList = deliverableTypeList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList());
if (designList.size() != 0) {
deliverableBuilder.append(designList.get(0).getName() + ",");
}
}
String designName = null;
if (StringUtils.isNotBlank(deliverableBuilder)) {
designName = deliverableBuilder.substring(0, deliverableBuilder.length() - 1);
}
authDummyInventoryInfoEO.setDeliverableTypeName(designName);
} else {
authDummyInventoryInfoEO.setDeliverableTypeName("");
}
//文件
List<String> deliverableList = new ArrayList<>();
//交付物模板
if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){
deliverableList.addAll(Arrays.asList(authDummyInventoryInfoEO.getDeliverableTemplate().split(",")));
}else {
authDummyInventoryInfoEO.setDeliverableTemplateName("");
}
List<OSSFile> fileInfos = new ArrayList<>();
if(deliverableList.size() != 0){
fileInfos = iOSSFileService.getFileInfos(org.apache.commons.lang3.StringUtils.join(deliverableList, ","));
}
//交付物类型模板
if(fileInfos.size() != 0){
if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){
String fileName = getFileName(authDummyInventoryInfoEO, fileInfos,authDummyInventoryInfoEO.getDeliverableTemplate());
if(org.apache.commons.lang3.StringUtils.isNotBlank(fileName)){
authDummyInventoryInfoEO.setDeliverableTemplateName(fileName);
}
}
}
}
}
private String getFileName(AuthDummyInventoryInfoEO authDummyInventoryInfoEO, List<OSSFile> fileInfos, String deliverableTemplate) {
StringBuilder sb = new StringBuilder();
for (String s : deliverableTemplate.split(",")) {
List<OSSFile> collect = fileInfos.stream().filter(e -> s.equals(e.getId())).collect(Collectors.toList());
if(collect.size() != 0){
sb.append(collect.get(0).getFileName() + ",");
}
}
String sbStr = "";
if(org.apache.commons.lang3.StringUtils.isNotBlank(sb)){
sbStr = sb.substring(0, sb.length() - 1);
}
return sbStr;
}
/**
* 通过id删除
*
@@ -223,6 +581,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
@Override
public List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) {
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = this.list(queryWrapper);
return authDummyInventoryInfoEOList;
}
@@ -515,9 +874,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(CollectionUtils.isNotEmpty(baseList)){
String title = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID,*编号,*责任领域,*交付物类型";
title = "*类别,*检验项目,*配置项,*WVTA ID,*编号,*责任领域,交付物模板,*交付物类型";
}else{
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID,*Number,*Responsible Field,*Deliverable Type";
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID,*Number,*Responsible Field,Deliverable Template,*Deliverable Type";
}
int pos = file.getOriginalFilename().lastIndexOf(".");
@@ -635,7 +994,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if (i == 0) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
headerSb.append(cell.getStringCellValue() + ",");
if(j == 6){
if(j == 7){
break;
}
} else if(i > 1){
@@ -659,43 +1018,6 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
}
}
}
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
for(int k = 0 ;k<rowList.size();k++){
if("".equals(rowList.get("category")) ||
"".equals(rowList.get("inspectionItem")) ||
"".equals(rowList.get("configItem")) ||
"".equals(rowList.get("wvtaId")) ||
"".equals(rowList.get("serialNumber")) ||
"".equals(rowList.get("dutyTerritoryName")) ||
"".equals(rowList.get("deliverableTypeName")) ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}else {
for(int k = 0 ;k<rowList.size();k++){
if("".equals(rowList.get("category")) ||
"".equals(rowList.get("inspectionItem")) ||
"".equals(rowList.get("configItem")) ||
"".equals(rowList.get("wvtaId")) ||
"".equals(rowList.get("serialNumber")) ||
"".equals(rowList.get("dutyTerritoryName")) ||
"".equals(rowList.get("deliverableTypeNameEn")) ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}
if (i > 1) {
dataList.add(rowList);
}
@@ -736,6 +1058,44 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
throw new JeroBootException("The data fails to be read. Import data strictly according to the template file");
}
}
//必填项校验 *类别,*检验项目,*配置项,*WVTA ID,*编号,*责任领域,*交付物类型";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
for(int k = 0 ; k <datas.size(); k++){
if((datas.get(k).getCategory() == null) ||
datas.get(k).getInspectionItem() == null ||
datas.get(k).getConfigItem() == null ||
datas.get(k).getWvtaId() == null ||
datas.get(k).getSerialNumber() == null ||
datas.get(k).getDutyTerritoryName() == null ||
datas.get(k).getDeliverableTypeName() == null ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}else {
for(int k = 0 ; k <datas.size(); k++){
if((datas.get(k).getCategory() == null) ||
datas.get(k).getInspectionItem() == null ||
datas.get(k).getConfigItem() == null ||
datas.get(k).getWvtaId() == null ||
datas.get(k).getSerialNumber() == null ||
datas.get(k).getDutyTerritoryName() == null ||
datas.get(k).getDeliverableTypeNameEn() == null ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}
}
}
workbook.close();
@@ -778,6 +1138,18 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
}else {
if (datas.size() != 0) {
this.saveBatch(datas);
//更新log
StringBuilder serialNumberBuilder = new StringBuilder();
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : datas){
serialNumberBuilder.append(authDummyInventoryInfoEO.getSerialNumber()).append(",");
}
String serialNumber = serialNumberBuilder.substring(0, serialNumberBuilder.length() - 1);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername();
String contentLog = username+"向清单中导入了“"+serialNumber+"";
String enContentLog = username+" imported “"+serialNumber+"” into the list.";
authDummyLogService.updateLog(contentLog, datas.get(0).getAuthDummyInventoryBaseId(),CutEnum.CN.getValue());
authDummyLogService.updateLog(enContentLog, datas.get(0).getAuthDummyInventoryBaseId(),CutEnum.EN.getValue());
}
}
}
@@ -829,57 +1201,58 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
deliverableType = authDummyInventoryInfoEO.getDeliverableTypeNameEn();
}
//文件
//交付物模板
String deliverableTemplate = authDummyInventoryInfoEO.getDeliverableTemplateName();
//编号必填
flag = must(authDummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "Number");
//WVTA ID
if(StringUtils.isNotBlank(wvtaId)){
if(wvtaId.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "WVTA ID不能超过300个字符, ";
}else{
message = errorMsg + " The WVTA ID cannot contain more than 300 characters, ";
}
msgList.add(message);
}
}
//类别
if(StringUtils.isNotBlank(category)){
if(category.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "类别不能超过300个字符, ";
message = errorMsg + "类别不能超过300个字符";
}else{
message = errorMsg + " The Category cannot contain more than 300 characters, ";
message = errorMsg + " The Category cannot contain more than 300 characters";
}
msgList.add(message);
}
}
//检验项目
if(StringUtils.isNotBlank(inspectionItem)){
if(inspectionItem.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "检验项目不能超过300个字符, ";
message = errorMsg + "检验项目不能超过300个字符";
}else{
message = errorMsg + " The InspectionItem cannot contain more than 300 characters, ";
message = errorMsg + " The InspectionItem cannot contain more than 300 characters";
}
msgList.add(message);
}
}
//配置项
if(StringUtils.isNotBlank(configItem)){
if(configItem.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "配置项不能超过300个字符, ";
message = errorMsg + "配置项不能超过300个字符";
}else{
message = errorMsg + " The ConfigItem cannot contain more than 300 characters, ";
message = errorMsg + " The ConfigItem cannot contain more than 300 characters";
}
msgList.add(message);
}
}
//WVTA ID
if(StringUtils.isNotBlank(wvtaId)){
if(wvtaId.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "WVTA ID不能超过300个字符";
}else{
message = errorMsg + " The WVTA ID cannot contain more than 300 characters";
}
msgList.add(message);
}
@@ -891,6 +1264,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
authDummyInventoryInfoEO.setDutyTerritory(value);
}
}
value = templateTransition(zipEntryName, authDummyInventoryInfoEO, errorMsg, deliverableTemplate,msgList,"交付物模板","Deliverable Template");
if(StringUtils.isNotBlank(value)){
authDummyInventoryInfoEO.setDeliverableTemplate(value);
}
//交付物类型
if(StringUtils.isNotEmpty(deliverableType)){
value = tree(categoryList,treeNameList, authDummyInventoryInfoEO, errorMsg, deliverableType,msgList,"交付物类型","Deliverable Type","deliverable_template");
@@ -903,6 +1280,46 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
return msgList;
}
private String templateTransition(String zipEntryName, AuthDummyInventoryInfoEO authDummyInventoryInfoEO,
String errorMsg, String deliverableTemplate,
List<String> msgList, String nameCn, String nameEn) {
String value = "";
if (StringUtils.isNotBlank(deliverableTemplate)) {
StringBuilder sb = new StringBuilder();
for (String fileName : deliverableTemplate.split(",")) {
List<File> nowFileList = new ArrayList<>();
nowFileList = FileUnZip.readFileByFilename(zipEntryName, fileName,authDummyInventoryInfoEO.getCut(),errorMsg,msgList,nameCn,nameEn);
if (nowFileList.size() == 0) {
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
// errorMsg += "压缩包中没有" + fileName + "文件; ";
// }else{
// errorMsg += " Not in the zip package" + fileName + "file; ";
// }
// msgList.add(errorMsg);
} else {
try {
FileInputStream input = new FileInputStream(nowFileList.get(0));
MultipartFile multipartFile =
new MockMultipartFile(nowFileList.get(0).getName(), nowFileList.get(0).getName(), "text/plain", input);
//文件存入文件表
OSSFile ossFile = iOSSFileService.uploadLocalOfCos(multipartFile, "", null,null);
if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(ossFile)) {
sb.append(ossFile.getId() + ",");
}
} catch (IOException e) {
log.error("市场认证清单导入"+e.getMessage());
}
}
}
if (StringUtils.isNotBlank(sb)) {
value = sb.substring(0, sb.length() - 1);
}
}
return value;
}
private String getTreeId(List<SysCategory> categoryList, AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp,
List<String> treeNameList, String value) {
StringBuilder sb = new StringBuilder();
@@ -940,9 +1357,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1);
if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) {
errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, ";
errorMsg += nameCn + "中的" + substring + "与数据字典不匹配";
} else {
errorMsg += nameEn + " " + substring + " does not match the data dictionary, ";
errorMsg += nameEn + " " + substring + " does not match the data dictionary";
}
msgList.add(errorMsg);
}else{
@@ -991,9 +1408,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
List<String> finalValueList = valueList;
List<String> diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) {
errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, ";
errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配";
} else {
errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary, ";
errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary";
}
msgList.add(errorMsg);
}
@@ -1121,6 +1538,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
case "*WVTA ID": return "wvtaId";
case "*编号" : return "serialNumber";
case "*责任领域": return "dutyTerritoryName";
case "交付物模板": return "deliverableTemplateName";
case "*交付物类型" : return "deliverableTypeName";
case "*Category" : return "Category";
@@ -1129,6 +1547,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
// case "WVTA ID" : return "wvtaId";
case "*Number" : return "serialNumber";
case "*Responsible Field" : return "dutyTerritoryName";
case "Deliverable Template" : return "deliverableTemplateName";
case "*Deliverable Type" : return "deliverableTypeNameEn";
@@ -1212,10 +1631,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
String title = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*编号,*责任领域,*交付物类型,";
"*编号,*责任领域,交付物模板,*交付物类型,";
}else{
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," +
"*Number,*Responsible Field,*Deliverable Type,";
"*Number,*Responsible Field,Deliverable Template,*Deliverable Type,";
}
List<String> list = Arrays.asList(title.split(","));
int index = 0;
@@ -1242,7 +1661,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
cellStyleTemp.setWrapText(true);//自动换行
CellRangeAddress region =
new CellRangeAddress(1, 1, 0, 6); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
new CellRangeAddress(1, 1, 0, 7); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
sheet.addMergedRegion(region);
String explain= "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
@@ -59,7 +59,9 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
(String) map.get("dutyTerritory"),
(String) map.get("lawEngineer"),
(String) map.get("engineeringInterfacePerson"),
(String) map.get("certificationEngineer"));
(String) map.get("engineerLawSet"),
(String) map.get("engineerAttSet"));
// (String) map.get("certificationEngineer"));
return Result.OK((String)map.get("cut"),pageList);
}
/**
@@ -86,7 +86,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
private String wvtaId;
/**标准编号*/
@Excel(name = "*标准编号", width = 20)
@Excel(name = "标准编号", width = 20)
@ApiModelProperty(value = "标准编号")
private String serialNumber;
@@ -94,7 +94,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
@ApiModelProperty(value = "责任领域")
private String dutyTerritory;
/**责任领域名称**/
@Excel(name = "*责任领域", width = 20)
@Excel(name = "责任领域", width = 20)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@@ -117,6 +117,14 @@ public class ProjectCertificationInventoryEO implements Serializable {
@TableField(exist = false)
private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "交付物模板", width = 20)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
@@ -138,14 +146,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
@ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "交付物模板", width = 20)
private String deliverableTemplateName;
/**交付结果*/
@Excel(name = "交付结果", width = 20)
@@ -215,7 +216,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
@TableField(exist = false)
private String excelName;
// @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false)
private String endTimeStr;
}
@@ -84,7 +84,7 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
private java.lang.String wvtaId;
/**标准编号*/
@Excel(name = "*Standard No", width = 20)
@Excel(name = "Standard No", width = 20)
@ApiModelProperty(value = "标准编号")
private java.lang.String serialNumber;
@@ -92,7 +92,7 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
@ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory;
/**责任领域名称**/
@Excel(name = "*Responsible Field", width = 20)
@Excel(name = "Responsible Field", width = 20)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@@ -115,6 +115,14 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
@TableField(exist = false)
private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private java.lang.String deliverableType;
@@ -136,14 +144,7 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
@ApiModelProperty(value = "文档库id")
private java.lang.String bussDocumentLibraryId;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付结果*/
@Excel(name = "Deliverables Result", width = 20)
@@ -59,22 +59,24 @@ public class ProjectRelatedPersonnel implements Serializable {
/**工程接口人法规工程师设置*/
private java.lang.String engineerLawSet;
@TableField(exist = false)
@Excel(name = "工程接口人-法规工程师设置,Project Interface Person - Regulation Engineer Setting", width = 30,orderNum = "4")
private java.lang.String engineerLawSetName;
/**工程接口人认证工程师设置*/
private java.lang.String engineerAttSet;
@TableField(exist = false)
@Excel(name = "工程接口人-认证工程师设置,Project Interface Person - Certification Engineer Setting", width = 30,orderNum = "5")
private java.lang.String engineerAttSetName;
/**认证工程师*/
private java.lang.String certificationEngineer;
@TableField(exist = false)
@Excel(name = "认证工程师,Homologation Engineer", width = 15,orderNum = "4")
// @Excel(name = "认证工程师,Homologation Engineer", width = 15,orderNum = "4")
private java.lang.String certificationEngineerName;
@TableField(exist = false)
private List<String> certificationEngineerNameList;
/**备注*/
@Excel(name = "备注,Comments", width = 15,orderNum = "5")
@Excel(name = "备注,Comments", width = 15,orderNum = "6")
private java.lang.String remark;
/**创建人*/
@@ -19,7 +19,9 @@ public interface ProjectRelatedPersonnelMapper extends BaseMapper<ProjectRelated
@Param("dutyTerritory") String dutyTerritory,
@Param("lawEngineer") String lawEngineer,
@Param("engineeringInterfacePerson") String engineeringInterfacePerson,
@Param("certificationEngineer") String certificationEngineer);
// @Param("certificationEngineer") String certificationEngineer
@Param("engineerLawSet") String engineerLawSet,
@Param("engineerAttSet") String engineerAttSet);
List<ProjectRelatedPersonnel> queryById(@Param("id")String id);
}
@@ -22,6 +22,8 @@
prp.law_engineer,
prp.engineering_interface_person,
prp.certification_engineer,
prp.engineer_law_set,
prp.engineer_att_set,
prp.remark,
prp.create_by,
prp.create_time,
@@ -51,8 +53,14 @@
<if test="engineeringInterfacePerson != null and engineeringInterfacePerson != ''">
AND prp.engineering_interface_person like concat(concat('%',#{engineeringInterfacePerson}),'%')
</if>
<if test="certificationEngineer != null and certificationEngineer != ''">
AND prp.certification_engineer like concat(concat('%',#{certificationEngineer}),'%')
<!-- <if test="certificationEngineer != null and certificationEngineer != ''">-->
<!-- AND prp.certification_engineer like concat(concat('%',#{certificationEngineer}),'%')-->
<!-- </if>-->
<if test="engineerLawSet != null and engineerLawSet != ''">
AND prp.engineer_law_set like concat(concat('%',#{engineerLawSet}),'%')
</if>
<if test="engineerAttSet != null and engineerAttSet != ''">
AND prp.engineer_att_set like concat(concat('%',#{engineerAttSet}),'%')
</if>
AND sd.dict_code = #{dictCode}
</where>
@@ -67,7 +67,8 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
*/
List<ProjectRelatedPersonnel> queryList();
List<ProjectRelatedPersonnel> queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String certificationEngineer);
// List<ProjectRelatedPersonnel> queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String certificationEngineer);
List<ProjectRelatedPersonnel> queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String engineerLawSet,String engineerAttSet);
Map<String,Object> queryPersonByProjectId(String projectId, String dutyTerritory);
@@ -1,5 +1,8 @@
package com.jero.modules.project.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@@ -20,6 +23,8 @@ import com.jero.common.util.oss.CosBootUtil;
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService;
import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService;
import com.jero.modules.cert.template.vo.ParamsInfoCnImport;
import com.jero.modules.cert.template.vo.ParamsInfoEnImport;
import com.jero.modules.document.controller.BussDocumentLibraryEOController;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
@@ -61,6 +66,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.aspectj.util.FileUtil;
@@ -258,6 +264,46 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
Date now = new Date();
projectCertificationInventoryEO.setUpdateTime(now);
saveOrUpdate(projectCertificationInventoryEO);
// //获取责任人的所有用户
// List<SysUser> listUserName = new ArrayList<>();
// listUserName = sysUserMapper.getListUserName();
// listUserName = listUserName.stream().distinct().collect(Collectors.toList());
//获取当前的责任人
String dutyPerson = projectCertificationInventoryEO.getDutyPerson();
//获取当前的责任领域
List<String> dutyTerritoryList = new ArrayList<>();
dutyTerritoryList = Arrays.asList(projectCertificationInventoryEO.getDutyTerritory().split(","));
dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList());
//获取当前的projectId
String projectId = projectCertificationInventoryEO.getProjectLibraryId();
//根据责任领域个projectId去查相关人员名单
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectId, dutyTerritoryList);
//根据相关人员名单获取的工程接口人
List<String> enginnerList = new ArrayList<>();
for(ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList){
enginnerList.add(relatedPersonnel.getEngineeringInterfacePerson());
}
for(ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList){
//如果工程接口人不为空的话
if(enginnerList.size()>0){
//判断哪个不存在 再去去存入
if(!enginnerList.contains(dutyPerson)){
relatedPersonnel.setEngineerAttSet(dutyPerson);
// projectRelatedPersonnelService.editById(relatedPersonnel);
}
}else {
//工程接口人为空的话,直接将责任设置到认证工程师下
relatedPersonnel.setEngineerAttSet(dutyPerson);
// projectRelatedPersonnelService.editById(relatedPersonnel);
}
}
this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList);
//设置权限 先删后加
List<ProjectUserPermission> adds = new ArrayList<>();
if (ObjectUtils.isNotEmpty(projectCertificationInventoryEO.getSdt())) {
@@ -1028,7 +1074,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
// 法规
//相关人员名单中取法规工程师
List<ProjectRelatedPersonnel> projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null);
List<ProjectRelatedPersonnel> projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null,null);
List<String> lawEngineerNameList = new ArrayList<>();
if(projectRelatedPersonnels.size() != 0){
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
@@ -2757,13 +2803,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
public void importData(MultipartFile file, ProjectCertificationInventoryEO projectCertificationInventoryEO) {
String title = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
title = title = "*类别,*检验项目,*配置项,*WVTA ID," +
title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*标准编号,*责任领域,*工程接口人,*责任人," +
"*交付物类型,交付物模板,*截止日期,报告编号,产品型号,生产企业名称";
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
}else {
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," +
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
"*Deliverable Type,Deliverable Template,*Due Date,Report No,Product Model,Name Of Manufacturer";
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer";
}
int pos = file.getOriginalFilename().lastIndexOf(".");
@@ -2903,49 +2949,6 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
}
}
}
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
for(int k = 0 ;k<rowList.size();k++){
if("".equals(rowList.get("category")) ||
"".equals(rowList.get("inspectionItem")) ||
"".equals(rowList.get("configItem")) ||
"".equals(rowList.get("wvtaId")) ||
"".equals(rowList.get("serialNumber")) ||
"".equals(rowList.get("dutyTerritoryName")) ||
"".equals(rowList.get("sdtName")) ||
"".equals(rowList.get("dutyPersonName")) ||
"".equals(rowList.get("deliverableTypeName")) ||
"".equals(rowList.get("endTimeStr")) ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}else {
for(int k = 0 ;k<rowList.size();k++){
if("".equals(rowList.get("category")) ||
"".equals(rowList.get("inspectionItem")) ||
"".equals(rowList.get("configItem")) ||
"".equals(rowList.get("wvtaId")) ||
"".equals(rowList.get("serialNumber")) ||
"".equals(rowList.get("dutyTerritoryName")) ||
"".equals(rowList.get("sdtName")) ||
"".equals(rowList.get("dutyPersonName")) ||
"".equals(rowList.get("deliverableTypeNameEn")) ||
"".equals(rowList.get("endTimeStr")) ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}
if (i > 1) {
dataList.add(rowList);
}
@@ -2987,6 +2990,50 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
throw new JeroBootException("The data fails to be read. Import data strictly according to the template file");
}
}
//必填项校验
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
for(int k = 0 ; k <datas.size(); k++){
if((datas.get(k).getCategory() == null) ||
datas.get(k).getInspectionItem() == null ||
datas.get(k).getConfigItem() == null ||
datas.get(k).getWvtaId() == null ||
datas.get(k).getSerialNumber() == null ||
datas.get(k).getDutyTerritoryName() == null ||
datas.get(k).getSdtName() == null ||
datas.get(k).getDutyPersonName() == null ||
datas.get(k).getDeliverableTypeName() == null ||
datas.get(k).getEndTimeStr() == null ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}else {
for(int k = 0 ; k <datas.size(); k++){
if((datas.get(k).getCategory() == null) ||
datas.get(k).getInspectionItem() == null ||
datas.get(k).getConfigItem() == null ||
datas.get(k).getWvtaId() == null ||
datas.get(k).getSerialNumber() == null ||
datas.get(k).getDutyTerritoryName() == null ||
datas.get(k).getSdtName() == null ||
datas.get(k).getDutyPersonName() == null ||
datas.get(k).getDeliverableTypeNameEn() == null ||
datas.get(k).getEndTimeStr() == null ){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
throw new JeroBootException("请填写必填字段内容,带*的为必填");
}else{
throw new JeroBootException("Please fill in the required fields marked with *");
}
}
}
}
}
}
workbook.close();
@@ -3042,6 +3089,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
String value = "";
boolean flag = true;
// List<SysUser> listUserName = new ArrayList<>();
// listUserName = sysUserMapper.getListUserName();
// listUserName = listUserName.stream().distinct().collect(Collectors.toList());
List<String> userNameList = datas.stream().map(ProjectCertificationInventoryEO::getDutyPersonName).distinct().collect(Collectors.toList());
List<SysUser> listUserName = this.sysUserService.querySysUserByUserNameList(userNameList);
//编号验证
verifySerialNumber(datas,projectCertificationInventoryEOTemp);
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) {
@@ -3095,159 +3149,69 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//编号必填
// flag = must(projectCertificationInventoryEO, errorMsg, msgList, serialNumber, "编号", "Standard No");
//报告编号
if(StringUtils.isNotBlank(reportNumber)){
if(reportNumber.length() > 200){
//类别
if(StringUtils.isNotBlank(category)){
if(category.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "报告编号不能超过200个字符, ";
message = errorMsg + "类别不能超过300个字符";
}else{
message = errorMsg + " The Report No cannot contain more than 200 characters, ";
message = errorMsg + " The Category cannot contain more than 300 characters";
}
msgList.add(message);
}
}
//产品型号
if(StringUtils.isNotBlank(productModel)){
if(productModel.length() > 200){
//检验项目
if(StringUtils.isNotBlank(inspectionItem)){
if(inspectionItem.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "产品型号不能超过200个字符, ";
message = errorMsg + "检验项目不能超过300个字符";
}else{
message = errorMsg + " The Product Model cannot contain more than 200 characters, ";
message = errorMsg + " The InspectionItem cannot contain more than 300 characters";
}
msgList.add(message);
}
}
//生产企业名称
if(StringUtils.isNotBlank(productionEnterpriseName)){
if(productionEnterpriseName.length() > 200){
//配置项
if(StringUtils.isNotBlank(configItem)){
if(configItem.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "生产企业名称不能超过200个字符, ";
message = errorMsg + "配置项不能超过300个字符";
}else{
message = errorMsg + " The Name Of Manufacturer cannot contain more than 200 characters, ";
message = errorMsg + " The ConfigItem cannot contain more than 300 characters";
}
msgList.add(message);
}
}
//WVTA ID
if(StringUtils.isNotBlank(wvtaId)){
if(wvtaId.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "WVTA ID不能超过300个字符, ";
message = errorMsg + "WVTA ID不能超过300个字符";
}else{
message = errorMsg + " The WVTA ID cannot contain more than 300 characters, ";
message = errorMsg + " The WVTA ID cannot contain more than 300 characters";
}
msgList.add(message);
}
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "WVTA ID不能为空, ";
// }else{
// message = errorMsg + " The WVTA ID cannot null, ";
// }
// msgList.add(message);
// }
//类别
if(StringUtils.isNotBlank(category)){
if(category.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "类别不能超过300个字符, ";
}else{
message = errorMsg + " The Category cannot contain more than 300 characters, ";
}
msgList.add(message);
}
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "类别不能为空, ";
// }else{
// message = errorMsg + " The Category cannot null, ";
// }
// msgList.add(message);
// }
//检验项目
if(StringUtils.isNotBlank(inspectionItem)){
if(inspectionItem.length() > 100){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "检验项目不能超过300个字符, ";
}else{
message = errorMsg + " The InspectionItem cannot contain more than 300 characters, ";
}
msgList.add(message);
}
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "检验项目不能为空, ";
// }else{
// message = errorMsg + " The InspectionItem cannot null, ";
// }
// msgList.add(message);
// }
//配置项
if(StringUtils.isNotBlank(configItem)){
if(configItem.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "配置项不能超过100个字符, ";
}else{
message = errorMsg + " The ConfigItem cannot contain more than 300 characters, ";
}
msgList.add(message);
}
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "配置项不能为空, ";
// }else{
// message = errorMsg + " The ConfigItem cannot null, ";
// }
// msgList.add(message);
// }
//责任领域
if(StringUtils.isNotBlank(dutyTerritory)){
value = pullMore(dictItemList, projectCertificationInventoryEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory");
if(StringUtils.isNotBlank(value)){
projectCertificationInventoryEO.setDutyTerritory(value);
}
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "责任领域不能为空, ";
// }else{
// message = errorMsg + " The Responsible Field cannot null, ";
// }
// msgList.add(message);
// }
//工程接口人(责任领域下的工程接口人)
Map<String, Object> objectMap = iProjectRelatedPersonnelService.queryPersonByProjectId(projectCertificationInventoryEOTemp.getProjectLibraryId(), value);
//工程接口人
List<Map<String, String>> mapPersonList = (List<Map<String, String>>) objectMap.get("engineeringInterfacePersonList");
//所有人
// List<Map<String, String>> allPersonList = (List<Map<String, String>>) objectMap.get("allPersonList");
List<SysUser> listUserName = new ArrayList<>();
listUserName = sysUserMapper.getListUserName();
listUserName = listUserName.stream().distinct().collect(Collectors.toList());
String nameCn = "";
@@ -3259,15 +3223,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//验证人员是否存在
personnelVerify(projectCertificationInventoryEO, errorMsg, msgList, sdt, mapPersonList,nameCn,nameEn, com.jero.modules.project.enums.ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue());
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "工程接口人不能为空, ";
// }else{
// message = errorMsg + " The Eng. Interface cannot null, ";
// }
// msgList.add(message);
// }
//责任人
if(StringUtils.isNotBlank(dutyPerson)){
nameCn = "责任人";
@@ -3275,15 +3231,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//验证人员是否存在
personDutyPerson(projectCertificationInventoryEO, errorMsg, msgList, dutyPerson, listUserName,nameCn,nameEn);
}
// else {
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "责任人不能为空, ";
// }else{
// message = errorMsg + " The Assignee cannot null, ";
// }
// msgList.add(message);
// }
//交付物模板
value = templateTransition(zipEntryName, projectCertificationInventoryEO, errorMsg, deliverableTemplate,msgList,"交付物模板","Deliverable Template");
if(StringUtils.isNotBlank(value)){
projectCertificationInventoryEO.setDeliverableTemplate(value);
}
//交付物类型
if(StringUtils.isNotEmpty(deliverableType)){
value = tree(categoryList,treeNameList, projectCertificationInventoryEO, errorMsg, deliverableType,msgList,"交付物类型","Deliverable Type","deliverable_template");
@@ -3292,46 +3246,62 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
projectCertificationInventoryEO.setDeliverableType(treeId);
}
}
// else{
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "交付物类型不能为空, ";
// }else{
// message = errorMsg + " The Deliverable Type cannot null, ";
// }
// msgList.add(message);
// }
//交付物模板
value = templateTransition(zipEntryName, projectCertificationInventoryEO, errorMsg, deliverableTemplate,msgList,"交付物模板","Deliverable Template");
if(StringUtils.isNotBlank(value)){
projectCertificationInventoryEO.setDeliverableTemplate(value);
}
//截止时间
// SimpleDateFormat sd = new SimpleDateFormat();
// String endTimeStr = sd.format(endTime);
if(StringUtils.isNotBlank(endTime)){
flag = dateVerify(projectCertificationInventoryEO, errorMsg, endTime,msgList,"截止时间","Due Date");
if(flag){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sd.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
flag = dateVerify(projectCertificationInventoryEO, errorMsg, endTime,msgList,"截止日期","Due Date");
if(flag){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
if(!endTime.contains("-")){
endTime = DateUtils.coverDate(endTime);
}
projectCertificationInventoryEO.setEndTime(date);
date = sd.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}
projectCertificationInventoryEO.setEndTime(date);
}
//报告编号
if(StringUtils.isNotBlank(reportNumber)){
if(reportNumber.length() > 200){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "报告编号不能超过200个字符";
}else{
message = errorMsg + " The Report No cannot contain more than 200 characters";
}
msgList.add(message);
}
}
//产品型号
if(StringUtils.isNotBlank(productModel)){
if(productModel.length() > 200){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "产品型号不能超过200个字符";
}else{
message = errorMsg + " The Product Model cannot contain more than 200 characters";
}
msgList.add(message);
}
}
//生产企业名称
if(StringUtils.isNotBlank(productionEnterpriseName)){
if(productionEnterpriseName.length() > 200){
String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "生产企业名称不能超过200个字符";
}else{
message = errorMsg + " The Name Of Manufacturer cannot contain more than 200 characters";
}
msgList.add(message);
}
}
// else{
// String message = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
// message = errorMsg + "截止时间不能为空, ";
// }else{
// message = errorMsg + " The Due Date Type cannot null, ";
// }
// msgList.add(message);
// }
}
return msgList;
@@ -3367,29 +3337,37 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if (!DateUtils.isValidDate(field)) {
flag = false;
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn + "格式不正确, 正确格式如:yyyy/m/d、yyyy-MM-dd、yyyy年MM月dd日, ";
errorMsg += nameCn + "格式不正确, 正确格式如:yyyy/m/d、yyyy-MM-dd、yyyy年MM月dd日";
}else{
errorMsg += nameEn + " Incorrect format correct format is:yyyy/m/d、yyyy-MM-dd、yyyy年MM月dd日, ";
errorMsg += nameEn + " Incorrect format correct format is:yyyy/m/d、yyyy-MM-dd、yyyy年MM月dd日";
}
msgList.add(errorMsg);
}
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
long longnow = now.getTime();
try {
Date date = sdf.parse(field);
long longdate = date.getTime();
if(longnow>longdate){
flag = false;
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn + "不能导入今天之前的日期, ";
}else{
errorMsg += nameEn + " Cannot import dates before today, ";
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date now = new Date();
String nowStr = sdf.format(now);
// String fieldStr = sdf.format(field);
Date now1 = null;
Date field1 = null;
try {
if(!field.contains("-")){
field = DateUtils.coverDate(field);
}
msgList.add(errorMsg);
now1 = sdf.parse(nowStr);
field1 = sdf.parse(field);
long day = now1.getTime()-field1.getTime();
if(day>0){
flag = false;
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn + "不能导入今天之前的日期";
}else{
errorMsg += nameEn + " Cannot import dates before today";
}
msgList.add(errorMsg);
}
} catch (ParseException e) {
e.printStackTrace();
}
} catch (ParseException e) {
e.printStackTrace();
}
}
return flag;
@@ -3474,9 +3452,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if(StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1);
if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) {
errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, ";
errorMsg += nameCn + "中的" + substring + "与数据字典不匹配";
} else {
errorMsg += nameEn + " " + substring + " does not match the data dictionary, ";
errorMsg += nameEn + " " + substring + " does not match the data dictionary";
}
msgList.add(errorMsg);
}else{
@@ -3542,9 +3520,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//单选
if(regulationOwnerId.contains(",")){
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn + "导入只能填写一个用户名, ";
errorMsg += nameCn + "导入只能填写一个用户名";
}else{
errorMsg += "Only one user name can be entered for"+ nameEn +"import, ";
errorMsg += "Only one user name can be entered for"+ nameEn +"import";
}
msgList.add(errorMsg);
}
@@ -3563,17 +3541,17 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
}
if(count == 0){
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配, ";
errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配";
}else{
errorMsg += nameEn+regulationOwnerId+"does not match a person under the Responsible Field in the relevant person list, ";
errorMsg += nameEn+regulationOwnerId+"does not match a person under the Responsible Field in the relevant person list";
}
msgList.add(errorMsg);
}
}else{
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配, ";
errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配";
}else{
errorMsg += nameEn+regulationOwnerId+"does not match a person under the Responsible Field in the relevant person list, ";
errorMsg += nameEn+regulationOwnerId+"does not match a person under the Responsible Field in the relevant person list";
}
msgList.add(errorMsg);
}
@@ -3600,9 +3578,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
List<String> finalValueList = valueList;
List<String> diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) {
errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, ";
errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配";
} else {
errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary, ";
errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary";
}
msgList.add(errorMsg);
}
@@ -3651,13 +3629,14 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the project laws and cannot be added");
}
}
}else{
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) {
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
.filter(e -> e.getSerialNumber().equals(projectCertificationInventoryEO.getSerialNumber())).collect(Collectors.toList());
projectCertificationInventoryEO.setBussDocumentLibraryId(collect.get(0).getId());
}
}
// else{
// for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) {
// List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
// .filter(e -> e.getSerialNumber().equals(projectCertificationInventoryEO.getSerialNumber())).collect(Collectors.toList());
// projectCertificationInventoryEO.setBussDocumentLibraryId(collect.get(0).getId());
// }
// }
}
}
@@ -3706,29 +3685,40 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//文件
exportFile(dataList,fileInfos);
for(int i =0 ;i<dataList.size();i++){
if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.FILE.getValue())){
if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){
fileName = ossFileService.getFileInfos(dataList.get(i).getDeliveryResult()).stream().map(OSSFile::getFileName).distinct().collect(Collectors.joining(","));
dataList.get(i).setDeliveryResult(fileName);
}
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.TEXT.getValue())){
if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){
fileName = dataList.get(i).getDeliveryResult();
dataList.get(i).setDeliveryResult(fileName);
}
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.NA.getValue())){
fileName = "";
dataList.get(i).setDeliveryResult(fileName);
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.SELECT.getValue())) {
if (StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())) {
fileName = dataList.get(i).getDeliveryResult();
for(int i =0 ;i<dataList.size();i++){
if(dataList.get(i).getValueType()!=null){
if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.FILE.getValue())){
if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){
fileName = ossFileService.getFileInfos(dataList.get(i).getDeliveryResult()).stream().map(OSSFile::getFileName).distinct().collect(Collectors.joining(","));
dataList.get(i).setDeliveryResult(fileName);
}
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.TEXT.getValue())){
if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){
fileName = dataList.get(i).getDeliveryResult();
dataList.get(i).setDeliveryResult(fileName);
}
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.NA.getValue())){
fileName = "";
dataList.get(i).setDeliveryResult(fileName);
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.SELECT.getValue())) {
if (StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())) {
fileName = dataList.get(i).getDeliveryResult();
if(fileName.equals("1")){
fileName = "";
}else if(fileName.equals("2")){
fileName = "";
}
dataList.get(i).setDeliveryResult(fileName);
}
}
}
}
String excelName = projectCertificationInventoryEO.getExcelName()+".xlsx";
// String excelName = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
@@ -3985,11 +3975,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*标准编号,*责任领域,*工程接口人,*责任人," +
"*交付物类型,交付物模板,*截止日期,报告编号,产品型号,生产企业名称";
"交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
}else {
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," +
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," +
"*Deliverable Type,Deliverable Template,*Due Date,Report No,Product Model,Name Of Manufacturer";
"Deliverable Template,*Deliverable Type,*Due Date,Report No,Product Model,Name Of Manufacturer";
}
List<String> list = Arrays.asList(title.split(","));
@@ -4008,7 +3998,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
nowFile.mkdirs();
HSSFSheet sheet = workbook.createSheet("认证清单导入模板");
sheet.setDefaultColumnWidth(16);//列宽
// HSSFCellStyle cellStyle = workbook.createCellStyle();
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat((short) 49);
sheet.setDefaultColumnStyle(10,cellStyle);
// cellStyle.setWrapText(true);//自动换行
// cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
// cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中
@@ -531,55 +531,52 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
allList = allList.stream().distinct().collect(Collectors.toList());
// List<String> engineeringInterfacePersonList = new ArrayList<>();
// engineeringInterfacePersonList = Arrays.asList(projectLawsInventoryEO.getEngineeringInterfacePerson().split(","));
// engineeringInterfacePersonList = engineeringInterfacePersonList.stream().distinct().collect(Collectors.toList());
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList);
//enginnerList为每一条的工程接口人的集合
List<String> enginnerList = new ArrayList<>();
for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){
enginnerList.add(projectRelatedPersonnel.getEngineeringInterfacePerson());
}
if(projectRelatedPersonnelList.size()>0){
for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){
if(StringUtils.isEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())){
if(enginnerList.size()<0){
//直接将allList存入到
String all = String.join(",",allList);
projectRelatedPersonnel.setEngineerLawSet(all);
projectRelatedPersonnelService.editById(projectRelatedPersonnel);
// projectRelatedPersonnelService.editById(projectRelatedPersonnel);
}else {
enginnerList.add(projectRelatedPersonnel.getEngineeringInterfacePerson());
enginnerList = enginnerList.stream().distinct().collect(Collectors.toList());
//比较allList中有而enginnerList中没有的工程接口人
boolean flag = false;
List<String> resultList = new ArrayList<>();
if(allList.size()>0){
flag = CollectionUtils.isEqualCollection(allList,enginnerList);
if(!flag){
//进行遍历两个list将allList中有的而enginnerList没有的存入到相关人员名单中的法规那里
for(String all : allList){
boolean flag1 = true;
for(String enginner : enginnerList){
if(all.equals(enginner)){
flag1 = false;
break;
}
}
if(flag1){
resultList.add(all);
}
}
}
}
allList.removeAll(enginnerList);
// if(allList.size()>0){
// flag = CollectionUtils.isEqualCollection(allList,enginnerList);
// if(!flag){
// //进行遍历两个list将allList中有的而enginnerList没有的存入到相关人员名单中的法规那里
//
// for(String all : allList){
// boolean flag1 = true;
// for(String enginner : enginnerList){
// if(all.equals(enginner)){
// flag1 = false;
// break;
// }
// }
// if(flag1){
// resultList.add(all);
// }
// }
// }
// }
//将相关人员名单中没有的resultList添加到相关人员记录表中
String result = String.join(",",resultList);
String result = String.join(",",allList);
projectRelatedPersonnel.setEngineerLawSet(result);
projectRelatedPersonnelService.editById(projectRelatedPersonnel);
// projectRelatedPersonnelService.editById(projectRelatedPersonnel);
}
}
}
this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList);
//翻译-中文
@@ -10199,7 +10196,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
}
//相关人员名单中取法规工程师
List<ProjectRelatedPersonnel> projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null);
List<ProjectRelatedPersonnel> projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null,null);
List<String> lawEngineerNameList = new ArrayList<>();
if(projectRelatedPersonnels.size() != 0){
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
@@ -252,7 +252,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
null,
null,
null,
null);
null,null);
if(projectRelatedPersonnelList.size() != 0){
List<ProjectUserPermission> relatedPersonnelPermissionList = new ArrayList<>();
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) {
@@ -518,7 +518,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
//编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(),
DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null);
DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null,null);
//项目的认证工程师
String certificationEngineer = projectLibraryBase.getCertificationEngineer();
//一个都不选的情况下
@@ -287,14 +287,17 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
String dutyTerritoryTemp,
String lawEngineer,
String engineeringInterfacePerson,
String certificationEngineer) {
String engineerLawSet,String engineerAttSet){
// String certificationEngineer) {
//查询数据
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
certificationEngineer);
// certificationEngineer
engineerLawSet,
engineerAttSet);
//查询数据里的责任领域
List<String> dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList());
//查标签内容里的责任领域数据
@@ -303,7 +306,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
if(StringUtils.isBlank(dutyTerritoryTemp)
&& StringUtils.isBlank(lawEngineer)
&& StringUtils.isBlank(engineeringInterfacePerson)
&& StringUtils.isBlank(certificationEngineer)){
// && StringUtils.isBlank(certificationEngineer)
&& StringUtils.isBlank(engineerLawSet)
&& StringUtils.isBlank(engineerLawSet)){
if(result.size() != sysDictItemValueList.size()){
//更新相关人员表里的责任领域数据
@@ -320,7 +325,8 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
certificationEngineer);
engineerLawSet,
engineerAttSet);
}
}
disposeData(result);
@@ -405,7 +411,54 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
projectRelatedPersonnel.setCertificationEngineerName(certificationName.substring(0,certificationName.toString().length()-1));
}
}
//法规工程师设置
List<SysUser> engineerLawSetUsers = new ArrayList<>();
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineerLawSet())){
List<String> engineerLawSetIdList = Arrays.asList(projectRelatedPersonnel.getEngineerLawSet().split(","));
if (CollectionUtils.isNotEmpty(engineerLawSetIdList)) {
engineerLawSetIdList=engineerLawSetIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", engineerLawSetIdList);
engineerLawSetUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(engineerLawSetUsers)) {
String engineerAttSetId = projectRelatedPersonnel.getEngineerAttSet();
String engineerLawSetName = null;
StringBuilder lawSetName = new StringBuilder();
for (String data : engineerLawSetIdList) {
if (StringUtils.isNotEmpty(engineerAttSetId)) {
engineerLawSetName = engineerLawSetUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
lawSetName.append(engineerLawSetName).append(",");
}
projectRelatedPersonnel.setEngineerLawSetName(lawSetName.substring(0,lawSetName.toString().length()-1));
}
}
//认证工程师设置
List<SysUser> engineerAttSetUsers = new ArrayList<>();
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineerAttSet())){
List<String> engineerAttSetIdList = Arrays.asList(projectRelatedPersonnel.getEngineerAttSet().split(","));
if (CollectionUtils.isNotEmpty(engineerAttSetIdList)) {
engineerAttSetIdList=engineerAttSetIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", engineerAttSetIdList);
engineerAttSetUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(engineerAttSetUsers)) {
String engineerAttSetId = projectRelatedPersonnel.getEngineerAttSet();
String engineerAttSetName = null;
StringBuilder AttSetName = new StringBuilder();
for (String data : engineerAttSetIdList) {
if (StringUtils.isNotEmpty(engineerAttSetId)) {
engineerAttSetName = engineerAttSetUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
AttSetName.append(engineerAttSetName).append(",");
}
projectRelatedPersonnel.setEngineerAttSetName(AttSetName.substring(0,AttSetName.toString().length()-1));
}
}
}
}
@@ -564,7 +617,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
QueryWrapper<ProjectRelatedPersonnel> wrapper = new QueryWrapper<>();
wrapper.eq("project_id",projectId).in("duty_territory",dutyTerritoryList);
List<ProjectRelatedPersonnel> projectRelatedPersonnels = baseMapper.selectList(wrapper);
return projectRelatedPersonnels;
@@ -589,7 +641,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
records = queryById(id);
}
}else{
records=queryPageList(projectId,null,null,null,null);
records=queryPageList(projectId,null,null,null,null,null);
}
//id无值,传全部
disposeDutyTerritory(records,cut);
@@ -744,10 +796,10 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
try {
String titleOne = "";
if (CutEnum.CN.getValue().equals(projectRelatedPersonnel.getCut())) {
titleOne = "责任领域,法规工程师,工程接口人,认证工程师,备注";
titleOne = "责任领域,法规工程师,工程接口人,工程接口人-法规工程师设置,工程接口人-认证工程师设置,备注";
fileOriName = "相关人员导入模板.xls";
} else {
titleOne = "Responsible Field,Regulation Engineer,Engineering Interface,Homologation Engineer,Comments";
titleOne = "Responsible Field,Regulation Engineer,Engineering Interface,Project Interface Person - Regulation Engineer Setting,Project Interface Person - Certification Engineer Setting,Comments";
fileOriName = "Import template of related personnel.xls";
}
@@ -764,7 +816,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
sheetName = "Personal List";
}
HSSFSheet sheet = workbook.createSheet(sheetName);
sheet.setDefaultColumnWidth(16);//列宽
sheet.setDefaultColumnWidth(20);//列宽
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setWrapText(true);//自动换行
cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
@@ -774,7 +826,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
cellStyleTemp.setWrapText(true);//自动换行
int startLine = 0;
int endLine = 4;
int endLine = 5;
//合并单元格
CellRangeAddress region1 =
new CellRangeAddress(1, 1, startLine, endLine); //参数1起始行 参数2终止行 参数3起始列 参数4终止列
@@ -788,14 +840,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
+ "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是正式数据;\n"
+ "2.填写人员时,必须使用人员账号进行填写;\n"
+ "3.填写的人员账号必须与系统中账号保持一致;\n"
+ "4.填写任意一责任领域内工程师人员时,必须填写法规工程师、工程接口人、认证工程师个字段信息。";
+ "4.填写任意一责任领域内工程师人员时,必须填写法规工程师、工程接口人、工程接口人-法规工程师设置、工程接口人-认证工程师设置四个字段信息。";
} else {
explainInfo =
"filling explanation\n"
+ "1. Import data from the third line, the first line is header, the second line is description, and the third line is official data;\n"
+ "2. When filling in personnel, personnel account must be used to fill in;\n"
+ "3. The personnel account number filled in must be consistent with the account number in the system;\n"
+ "4. When filling in the engineers in any responsibility field, you must fill in the information of three fields: legal engineer, engineering interface person and certified engineer.";
+ "4. When filling in the engineers in any responsibility field, you must fill in the information of three fields: legal engineer, engineering interface person ,Project Interface Person - Regulation Engineer Setting and Project Interface Person - Certification Engineer Setting.";
}
HSSFRichTextString explain = new HSSFRichTextString(explainInfo);