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; private java.lang.String sysOrgCode;
/**类别*/ /**类别*/
@Excel(name = "*类别", width = 15) @Excel(name = "类别", width = 15)
@ApiModelProperty(value = "类别") @ApiModelProperty(value = "类别")
private java.lang.String category; private java.lang.String category;
/**检验项目*/ /**检验项目*/
@Excel(name = "*检验项目", width = 15) @Excel(name = "检验项目", width = 15)
@ApiModelProperty(value = "检验项目") @ApiModelProperty(value = "检验项目")
private java.lang.String inspectionItem; private java.lang.String inspectionItem;
/**配置项*/ /**配置项*/
@Excel(name = "*配置项", width = 15) @Excel(name = "配置项", width = 15)
@ApiModelProperty(value = "配置项") @ApiModelProperty(value = "配置项")
private java.lang.String configItem; private java.lang.String configItem;
/**WVTA ID*/ /**WVTA ID*/
@Excel(name = "*WVTA ID", width = 15) @Excel(name = "WVTA ID", width = 15)
@ApiModelProperty(value = "WVTA ID") @ApiModelProperty(value = "WVTA ID")
private java.lang.String wvtaId; private java.lang.String wvtaId;
/**标准编号*/ /**标准编号*/
@Excel(name = "*编号", width = 15) @Excel(name = "编号", width = 15)
@ApiModelProperty(value = "编号") @ApiModelProperty(value = "编号")
private java.lang.String serialNumber; private java.lang.String serialNumber;
/**责任领域*/ /**责任领域*/
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory; private java.lang.String dutyTerritory;
@Excel(name = "*责任领域", width = 15) @Excel(name = "责任领域", width = 15)
@TableField(exist = false) @TableField(exist = false)
// 责任领域名称 // 责任领域名称
private String dutyTerritoryName; private String dutyTerritoryName;
@@ -107,7 +107,7 @@ public class AuthDummyInventoryInfoEO implements Serializable {
@ApiModelProperty(value = "交付物类型") @ApiModelProperty(value = "交付物类型")
private String deliverableType; private String deliverableType;
@TableField(exist = false) @TableField(exist = false)
@Excel(name = "*交付物类型", width = 15) @Excel(name = "交付物类型", width = 15)
// 交付物类型名称 // 交付物类型名称
private String deliverableTypeName; private String deliverableTypeName;
// 交付物类型名称-英文 // 交付物类型名称-英文
@@ -60,27 +60,27 @@ public class AuthDummyInventoryInfoEOEn implements Serializable {
private String sysOrgCode; private String sysOrgCode;
/**类别*/ /**类别*/
@Excel(name = "*Category", width = 15) @Excel(name = "Category", width = 15)
@ApiModelProperty(value = "类别") @ApiModelProperty(value = "类别")
private String category; private String category;
/**检验项目*/ /**检验项目*/
@Excel(name = "*Inspection Items", width = 15) @Excel(name = "Inspection Items", width = 15)
@ApiModelProperty(value = "检验项目") @ApiModelProperty(value = "检验项目")
private String inspectionItem; private String inspectionItem;
/**配置项*/ /**配置项*/
@Excel(name = "*Configuration Item", width = 15) @Excel(name = "Configuration Item", width = 15)
@ApiModelProperty(value = "配置项") @ApiModelProperty(value = "配置项")
private String configItem; private String configItem;
/**WVTA ID*/ /**WVTA ID*/
@Excel(name = "*WVTA ID", width = 15) @Excel(name = "WVTA ID", width = 15)
@ApiModelProperty(value = "WVTA ID") @ApiModelProperty(value = "WVTA ID")
private String wvtaId; private String wvtaId;
/**标准编号*/ /**标准编号*/
@Excel(name = "*Number", width = 15) @Excel(name = "Number", width = 15)
@ApiModelProperty(value = "标准编号") @ApiModelProperty(value = "标准编号")
private String serialNumber; private String serialNumber;
@@ -88,7 +88,7 @@ public class AuthDummyInventoryInfoEOEn implements Serializable {
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private String dutyTerritory; private String dutyTerritory;
@TableField(exist = false) @TableField(exist = false)
@Excel(name = "*Responsible Field", width = 15) @Excel(name = "Responsible Field", width = 15)
// 责任领域名称 // 责任领域名称
private String dutyTerritoryName; private String dutyTerritoryName;
/**责任领域名称-英文**/ /**责任领域名称-英文**/
@@ -100,11 +100,19 @@ public class AuthDummyInventoryInfoEOEn implements Serializable {
@ApiModelProperty(value = "交付物") @ApiModelProperty(value = "交付物")
private String deliverable; private String deliverable;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付物类型*/ /**交付物类型*/
@ApiModelProperty(value = "交付物类型") @ApiModelProperty(value = "交付物类型")
private String deliverableType; private String deliverableType;
@TableField(exist = false) @TableField(exist = false)
@Excel(name = "*Deliverable Type", width = 15) @Excel(name = "Deliverable Type", width = 15)
// 交付物类型名称 // 交付物类型名称
private String deliverableTypeName; 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.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl; import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl;
import com.jero.modules.dummy.util.DeepCopyListUtil; 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.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO; 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.project.enums.ProjectInventoryFieldEnum;
import com.jero.modules.split.common.FileUnZip; import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.system.entity.SysCategory; 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 com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRichTextString; 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.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.*; import java.io.*;
@@ -152,18 +157,371 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
public void editById(AuthDummyInventoryInfoEO authDummyInventoryInfoEO) { public void editById(AuthDummyInventoryInfoEO authDummyInventoryInfoEO) {
Date now = new Date(); Date now = new Date();
authDummyInventoryInfoEO.setUpdateTime(now); authDummyInventoryInfoEO.setUpdateTime(now);
saveOrUpdate(authDummyInventoryInfoEO);
//更新log AuthDummyInventoryInfoEO authDummyInventoryInfoEOcopy = SerializationUtils.clone(authDummyInventoryInfoEO);//复制
//更新log
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername(); String username = sysUser.getUsername();
String serialNumber = authDummyInventoryInfoEO.getSerialNumber(); String serialNumber = authDummyInventoryInfoEO.getSerialNumber();
String contentLog = username+"编辑了清单中的“" + serialNumber + "”:</br>"; String contentLog = username+"编辑了清单中的“" + serialNumber + "”:";
String enContentLog = username+" edited the “" + serialNumber + "” in the list:</br>"; String enContentLog = username+" edited the “" + serialNumber + "” in the list:";
authDummyLogService.updateLog(contentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.CN.getValue()); // authDummyLogService.updateLog(contentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.CN.getValue());
authDummyLogService.updateLog(enContentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.EN.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删除 * 通过id删除
* *
@@ -223,6 +581,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
@Override @Override
public List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) { public List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) {
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap()); QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = this.list(queryWrapper); List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = this.list(queryWrapper);
return authDummyInventoryInfoEOList; return authDummyInventoryInfoEOList;
} }
@@ -515,9 +874,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(CollectionUtils.isNotEmpty(baseList)){ if(CollectionUtils.isNotEmpty(baseList)){
String title = ""; String title = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID,*编号,*责任领域,*交付物类型"; title = "*类别,*检验项目,*配置项,*WVTA ID,*编号,*责任领域,交付物模板,*交付物类型";
}else{ }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("."); int pos = file.getOriginalFilename().lastIndexOf(".");
@@ -635,7 +994,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if (i == 0) { if (i == 0) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellType(HSSFCell.CELL_TYPE_STRING);
headerSb.append(cell.getStringCellValue() + ","); headerSb.append(cell.getStringCellValue() + ",");
if(j == 6){ if(j == 7){
break; break;
} }
} else if(i > 1){ } 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) { if (i > 1) {
dataList.add(rowList); 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"); 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(); workbook.close();
@@ -778,6 +1138,18 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
}else { }else {
if (datas.size() != 0) { if (datas.size() != 0) {
this.saveBatch(datas); 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(); deliverableType = authDummyInventoryInfoEO.getDeliverableTypeNameEn();
} }
//文件
//交付物模板
String deliverableTemplate = authDummyInventoryInfoEO.getDeliverableTemplateName();
//编号必填 //编号必填
flag = must(authDummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "Number"); 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(StringUtils.isNotBlank(category)){
if(category.length() > 300){ if(category.length() > 300){
String message = ""; String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "类别不能超过300个字符, "; message = errorMsg + "类别不能超过300个字符";
}else{ }else{
message = errorMsg + " The Category cannot contain more than 300 characters, "; message = errorMsg + " The Category cannot contain more than 300 characters";
} }
msgList.add(message); msgList.add(message);
} }
} }
//检验项目 //检验项目
if(StringUtils.isNotBlank(inspectionItem)){ if(StringUtils.isNotBlank(inspectionItem)){
if(inspectionItem.length() > 300){ if(inspectionItem.length() > 300){
String message = ""; String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "检验项目不能超过300个字符, "; message = errorMsg + "检验项目不能超过300个字符";
}else{ }else{
message = errorMsg + " The InspectionItem cannot contain more than 300 characters, "; message = errorMsg + " The InspectionItem cannot contain more than 300 characters";
} }
msgList.add(message); msgList.add(message);
} }
} }
//配置项 //配置项
if(StringUtils.isNotBlank(configItem)){ if(StringUtils.isNotBlank(configItem)){
if(configItem.length() > 300){ if(configItem.length() > 300){
String message = ""; String message = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "配置项不能超过300个字符, "; message = errorMsg + "配置项不能超过300个字符";
}else{ }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); msgList.add(message);
} }
@@ -891,6 +1264,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
authDummyInventoryInfoEO.setDutyTerritory(value); authDummyInventoryInfoEO.setDutyTerritory(value);
} }
} }
value = templateTransition(zipEntryName, authDummyInventoryInfoEO, errorMsg, deliverableTemplate,msgList,"交付物模板","Deliverable Template");
if(StringUtils.isNotBlank(value)){
authDummyInventoryInfoEO.setDeliverableTemplate(value);
}
//交付物类型 //交付物类型
if(StringUtils.isNotEmpty(deliverableType)){ if(StringUtils.isNotEmpty(deliverableType)){
value = tree(categoryList,treeNameList, authDummyInventoryInfoEO, errorMsg, deliverableType,msgList,"交付物类型","Deliverable Type","deliverable_template"); value = tree(categoryList,treeNameList, authDummyInventoryInfoEO, errorMsg, deliverableType,msgList,"交付物类型","Deliverable Type","deliverable_template");
@@ -903,6 +1280,46 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
return msgList; 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, private String getTreeId(List<SysCategory> categoryList, AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp,
List<String> treeNameList, String value) { List<String> treeNameList, String value) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@@ -940,9 +1357,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(StringUtils.isNotBlank(sb)){ if(StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1); String substring = sb.substring(0, sb.length() - 1);
if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) { if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) {
errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, "; errorMsg += nameCn + "中的" + substring + "与数据字典不匹配";
} else { } else {
errorMsg += nameEn + " " + substring + " does not match the data dictionary, "; errorMsg += nameEn + " " + substring + " does not match the data dictionary";
} }
msgList.add(errorMsg); msgList.add(errorMsg);
}else{ }else{
@@ -991,9 +1408,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
List<String> finalValueList = valueList; List<String> finalValueList = valueList;
List<String> diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList()); List<String> diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) { if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) {
errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, "; errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配";
} else { } 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); msgList.add(errorMsg);
} }
@@ -1121,6 +1538,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
case "*WVTA ID": return "wvtaId"; case "*WVTA ID": return "wvtaId";
case "*编号" : return "serialNumber"; case "*编号" : return "serialNumber";
case "*责任领域": return "dutyTerritoryName"; case "*责任领域": return "dutyTerritoryName";
case "交付物模板": return "deliverableTemplateName";
case "*交付物类型" : return "deliverableTypeName"; case "*交付物类型" : return "deliverableTypeName";
case "*Category" : return "Category"; case "*Category" : return "Category";
@@ -1129,6 +1547,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
// case "WVTA ID" : return "wvtaId"; // case "WVTA ID" : return "wvtaId";
case "*Number" : return "serialNumber"; case "*Number" : return "serialNumber";
case "*Responsible Field" : return "dutyTerritoryName"; case "*Responsible Field" : return "dutyTerritoryName";
case "Deliverable Template" : return "deliverableTemplateName";
case "*Deliverable Type" : return "deliverableTypeNameEn"; case "*Deliverable Type" : return "deliverableTypeNameEn";
@@ -1212,10 +1631,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
String title = ""; String title = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID," + title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*编号,*责任领域,*交付物类型,"; "*编号,*责任领域,交付物模板,*交付物类型,";
}else{ }else{
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," + 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(",")); List<String> list = Arrays.asList(title.split(","));
int index = 0; int index = 0;
@@ -1242,7 +1661,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
cellStyleTemp.setWrapText(true);//自动换行 cellStyleTemp.setWrapText(true);//自动换行
CellRangeAddress region = 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); sheet.addMergedRegion(region);
String explain= ""; String explain= "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
@@ -59,7 +59,9 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
(String) map.get("dutyTerritory"), (String) map.get("dutyTerritory"),
(String) map.get("lawEngineer"), (String) map.get("lawEngineer"),
(String) map.get("engineeringInterfacePerson"), (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); return Result.OK((String)map.get("cut"),pageList);
} }
/** /**
@@ -86,7 +86,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
private String wvtaId; private String wvtaId;
/**标准编号*/ /**标准编号*/
@Excel(name = "*标准编号", width = 20) @Excel(name = "标准编号", width = 20)
@ApiModelProperty(value = "标准编号") @ApiModelProperty(value = "标准编号")
private String serialNumber; private String serialNumber;
@@ -94,7 +94,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private String dutyTerritory; private String dutyTerritory;
/**责任领域名称**/ /**责任领域名称**/
@Excel(name = "*责任领域", width = 20) @Excel(name = "责任领域", width = 20)
@TableField(exist = false) @TableField(exist = false)
private String dutyTerritoryName; private String dutyTerritoryName;
/**责任领域名称-英文**/ /**责任领域名称-英文**/
@@ -117,6 +117,14 @@ public class ProjectCertificationInventoryEO implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String dutyPersonName; private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "交付物模板", width = 20)
private String deliverableTemplateName;
/**交付物类型*/ /**交付物类型*/
@ApiModelProperty(value = "交付物类型") @ApiModelProperty(value = "交付物类型")
private String deliverableType; private String deliverableType;
@@ -138,14 +146,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
@ApiModelProperty(value = "文档库id") @ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId; private String bussDocumentLibraryId;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "交付物模板", width = 20)
private String deliverableTemplateName;
/**交付结果*/ /**交付结果*/
@Excel(name = "交付结果", width = 20) @Excel(name = "交付结果", width = 20)
@@ -215,7 +216,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String excelName; private String excelName;
// @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd") // @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false) @TableField(exist = false)
private String endTimeStr; private String endTimeStr;
} }
@@ -84,7 +84,7 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
private java.lang.String wvtaId; private java.lang.String wvtaId;
/**标准编号*/ /**标准编号*/
@Excel(name = "*Standard No", width = 20) @Excel(name = "Standard No", width = 20)
@ApiModelProperty(value = "标准编号") @ApiModelProperty(value = "标准编号")
private java.lang.String serialNumber; private java.lang.String serialNumber;
@@ -92,7 +92,7 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory; private java.lang.String dutyTerritory;
/**责任领域名称**/ /**责任领域名称**/
@Excel(name = "*Responsible Field", width = 20) @Excel(name = "Responsible Field", width = 20)
@TableField(exist = false) @TableField(exist = false)
private String dutyTerritoryName; private String dutyTerritoryName;
/**责任领域名称-英文**/ /**责任领域名称-英文**/
@@ -115,6 +115,14 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String dutyPersonName; private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付物类型*/ /**交付物类型*/
@ApiModelProperty(value = "交付物类型") @ApiModelProperty(value = "交付物类型")
private java.lang.String deliverableType; private java.lang.String deliverableType;
@@ -136,14 +144,7 @@ public class ProjectCertificationInventoryEOEn implements Serializable {
@ApiModelProperty(value = "文档库id") @ApiModelProperty(value = "文档库id")
private java.lang.String bussDocumentLibraryId; 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) @Excel(name = "Deliverables Result", width = 20)
@@ -59,22 +59,24 @@ public class ProjectRelatedPersonnel implements Serializable {
/**工程接口人法规工程师设置*/ /**工程接口人法规工程师设置*/
private java.lang.String engineerLawSet; private java.lang.String engineerLawSet;
@TableField(exist = false) @TableField(exist = false)
@Excel(name = "工程接口人-法规工程师设置,Project Interface Person - Regulation Engineer Setting", width = 30,orderNum = "4")
private java.lang.String engineerLawSetName; private java.lang.String engineerLawSetName;
/**工程接口人认证工程师设置*/ /**工程接口人认证工程师设置*/
private java.lang.String engineerAttSet; private java.lang.String engineerAttSet;
@TableField(exist = false) @TableField(exist = false)
@Excel(name = "工程接口人-认证工程师设置,Project Interface Person - Certification Engineer Setting", width = 30,orderNum = "5")
private java.lang.String engineerAttSetName; private java.lang.String engineerAttSetName;
/**认证工程师*/ /**认证工程师*/
private java.lang.String certificationEngineer; private java.lang.String certificationEngineer;
@TableField(exist = false) @TableField(exist = false)
@Excel(name = "认证工程师,Homologation Engineer", width = 15,orderNum = "4") // @Excel(name = "认证工程师,Homologation Engineer", width = 15,orderNum = "4")
private java.lang.String certificationEngineerName; private java.lang.String certificationEngineerName;
@TableField(exist = false) @TableField(exist = false)
private List<String> certificationEngineerNameList; private List<String> certificationEngineerNameList;
/**备注*/ /**备注*/
@Excel(name = "备注,Comments", width = 15,orderNum = "5") @Excel(name = "备注,Comments", width = 15,orderNum = "6")
private java.lang.String remark; private java.lang.String remark;
/**创建人*/ /**创建人*/
@@ -19,7 +19,9 @@ public interface ProjectRelatedPersonnelMapper extends BaseMapper<ProjectRelated
@Param("dutyTerritory") String dutyTerritory, @Param("dutyTerritory") String dutyTerritory,
@Param("lawEngineer") String lawEngineer, @Param("lawEngineer") String lawEngineer,
@Param("engineeringInterfacePerson") String engineeringInterfacePerson, @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); List<ProjectRelatedPersonnel> queryById(@Param("id")String id);
} }
@@ -22,6 +22,8 @@
prp.law_engineer, prp.law_engineer,
prp.engineering_interface_person, prp.engineering_interface_person,
prp.certification_engineer, prp.certification_engineer,
prp.engineer_law_set,
prp.engineer_att_set,
prp.remark, prp.remark,
prp.create_by, prp.create_by,
prp.create_time, prp.create_time,
@@ -51,8 +53,14 @@
<if test="engineeringInterfacePerson != null and engineeringInterfacePerson != ''"> <if test="engineeringInterfacePerson != null and engineeringInterfacePerson != ''">
AND prp.engineering_interface_person like concat(concat('%',#{engineeringInterfacePerson}),'%') AND prp.engineering_interface_person like concat(concat('%',#{engineeringInterfacePerson}),'%')
</if> </if>
<if test="certificationEngineer != null and certificationEngineer != ''"> <!-- <if test="certificationEngineer != null and certificationEngineer != ''">-->
AND prp.certification_engineer like concat(concat('%',#{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> </if>
AND sd.dict_code = #{dictCode} AND sd.dict_code = #{dictCode}
</where> </where>
@@ -67,7 +67,8 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
*/ */
List<ProjectRelatedPersonnel> queryList(); 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); Map<String,Object> queryPersonByProjectId(String projectId, String dutyTerritory);
@@ -1,5 +1,8 @@
package com.jero.modules.project.service.impl; 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 cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; 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.entity.AuthDummyInventoryInfoEO;
import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService; import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService;
import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService; 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.controller.BussDocumentLibraryEOController;
import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper; 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.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.aspectj.util.FileUtil; import org.aspectj.util.FileUtil;
@@ -258,6 +264,46 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
Date now = new Date(); Date now = new Date();
projectCertificationInventoryEO.setUpdateTime(now); projectCertificationInventoryEO.setUpdateTime(now);
saveOrUpdate(projectCertificationInventoryEO); 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<>(); List<ProjectUserPermission> adds = new ArrayList<>();
if (ObjectUtils.isNotEmpty(projectCertificationInventoryEO.getSdt())) { 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<>(); List<String> lawEngineerNameList = new ArrayList<>();
if(projectRelatedPersonnels.size() != 0){ if(projectRelatedPersonnels.size() != 0){
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
@@ -2757,13 +2803,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
public void importData(MultipartFile file, ProjectCertificationInventoryEO projectCertificationInventoryEO) { public void importData(MultipartFile file, ProjectCertificationInventoryEO projectCertificationInventoryEO) {
String title = ""; String title = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
title = title = "*类别,*检验项目,*配置项,*WVTA ID," + title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*标准编号,*责任领域,*工程接口人,*责任人," + "*标准编号,*责任领域,*工程接口人,*责任人," +
"*交付物类型,交付物模板,*截止日期,报告编号,产品型号,生产企业名称"; "交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
}else { }else {
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," + title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," +
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," + "*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("."); 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) { if (i > 1) {
dataList.add(rowList); 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"); 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(); workbook.close();
@@ -3042,6 +3089,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
String value = ""; String value = "";
boolean flag = true; 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); verifySerialNumber(datas,projectCertificationInventoryEOTemp);
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) { for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) {
@@ -3095,159 +3149,69 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//编号必填 //编号必填
// flag = must(projectCertificationInventoryEO, errorMsg, msgList, serialNumber, "编号", "Standard No"); // 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 = ""; String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "报告编号不能超过200个字符, "; message = errorMsg + "类别不能超过300个字符";
}else{ }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); msgList.add(message);
} }
} }
//产品型号 //检验项目
if(StringUtils.isNotBlank(productModel)){ if(StringUtils.isNotBlank(inspectionItem)){
if(productModel.length() > 200){ if(inspectionItem.length() > 300){
String message = ""; String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "产品型号不能超过200个字符, "; message = errorMsg + "检验项目不能超过300个字符";
}else{ }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); msgList.add(message);
} }
} }
//生产企业名称 //配置项
if(StringUtils.isNotBlank(productionEnterpriseName)){ if(StringUtils.isNotBlank(configItem)){
if(productionEnterpriseName.length() > 200){ if(configItem.length() > 300){
String message = ""; String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "生产企业名称不能超过200个字符, "; message = errorMsg + "配置项不能超过300个字符";
}else{ }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); msgList.add(message);
} }
} }
//WVTA ID //WVTA ID
if(StringUtils.isNotBlank(wvtaId)){ if(StringUtils.isNotBlank(wvtaId)){
if(wvtaId.length() > 300){ if(wvtaId.length() > 300){
String message = ""; String message = "";
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){
message = errorMsg + "WVTA ID不能超过300个字符, "; message = errorMsg + "WVTA ID不能超过300个字符";
}else{ }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); 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)){ if(StringUtils.isNotBlank(dutyTerritory)){
value = pullMore(dictItemList, projectCertificationInventoryEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory"); value = pullMore(dictItemList, projectCertificationInventoryEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory");
if(StringUtils.isNotBlank(value)){ if(StringUtils.isNotBlank(value)){
projectCertificationInventoryEO.setDutyTerritory(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); 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>> 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 = ""; 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()); 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)){ if(StringUtils.isNotBlank(dutyPerson)){
nameCn = "责任人"; nameCn = "责任人";
@@ -3275,15 +3231,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//验证人员是否存在 //验证人员是否存在
personDutyPerson(projectCertificationInventoryEO, errorMsg, msgList, dutyPerson, listUserName,nameCn,nameEn); personDutyPerson(projectCertificationInventoryEO, errorMsg, msgList, dutyPerson, listUserName,nameCn,nameEn);
} }
// else {
// String message = ""; //交付物模板
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ value = templateTransition(zipEntryName, projectCertificationInventoryEO, errorMsg, deliverableTemplate,msgList,"交付物模板","Deliverable Template");
// message = errorMsg + "责任人不能为空, "; if(StringUtils.isNotBlank(value)){
// }else{ projectCertificationInventoryEO.setDeliverableTemplate(value);
// message = errorMsg + " The Assignee cannot null, "; }
// }
// msgList.add(message);
// }
//交付物类型 //交付物类型
if(StringUtils.isNotEmpty(deliverableType)){ if(StringUtils.isNotEmpty(deliverableType)){
value = tree(categoryList,treeNameList, projectCertificationInventoryEO, errorMsg, deliverableType,msgList,"交付物类型","Deliverable Type","deliverable_template"); 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); 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(); // SimpleDateFormat sd = new SimpleDateFormat();
// String endTimeStr = sd.format(endTime); // String endTimeStr = sd.format(endTime);
if(StringUtils.isNotBlank(endTime)){
flag = dateVerify(projectCertificationInventoryEO, errorMsg, endTime,msgList,"截止时间","Due Date"); flag = dateVerify(projectCertificationInventoryEO, errorMsg, endTime,msgList,"截止日期","Due Date");
if(flag){ if(flag){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date date = null; Date date = null;
try { try {
date = sd.parse(endTime); if(!endTime.contains("-")){
} catch (ParseException e) { endTime = DateUtils.coverDate(endTime);
e.printStackTrace();
} }
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; return msgList;
@@ -3367,29 +3337,37 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if (!DateUtils.isValidDate(field)) { if (!DateUtils.isValidDate(field)) {
flag = false; flag = false;
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ 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{ }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); msgList.add(errorMsg);
} }else{
Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date now = new Date();
long longnow = now.getTime(); String nowStr = sdf.format(now);
try { // String fieldStr = sdf.format(field);
Date date = sdf.parse(field); Date now1 = null;
long longdate = date.getTime(); Date field1 = null;
if(longnow>longdate){ try {
flag = false; if(!field.contains("-")){
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ field = DateUtils.coverDate(field);
errorMsg += nameCn + "不能导入今天之前的日期, ";
}else{
errorMsg += nameEn + " Cannot import dates before today, ";
} }
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; return flag;
@@ -3474,9 +3452,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if(StringUtils.isNotBlank(sb)){ if(StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1); String substring = sb.substring(0, sb.length() - 1);
if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) { if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) {
errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, "; errorMsg += nameCn + "中的" + substring + "与数据字典不匹配";
} else { } else {
errorMsg += nameEn + " " + substring + " does not match the data dictionary, "; errorMsg += nameEn + " " + substring + " does not match the data dictionary";
} }
msgList.add(errorMsg); msgList.add(errorMsg);
}else{ }else{
@@ -3542,9 +3520,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//单选 //单选
if(regulationOwnerId.contains(",")){ if(regulationOwnerId.contains(",")){
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn + "导入只能填写一个用户名, "; errorMsg += nameCn + "导入只能填写一个用户名";
}else{ }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); msgList.add(errorMsg);
} }
@@ -3563,17 +3541,17 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
} }
if(count == 0){ if(count == 0){
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配, "; errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配";
}else{ }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); msgList.add(errorMsg);
} }
}else{ }else{
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配, "; errorMsg += nameCn+regulationOwnerId+"与相关人员名单中责任领域下的人员不匹配";
}else{ }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); msgList.add(errorMsg);
} }
@@ -3600,9 +3578,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
List<String> finalValueList = valueList; List<String> finalValueList = valueList;
List<String> diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList()); List<String> diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) { if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) {
errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, "; errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配";
} else { } 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); 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"); 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); 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);
} for(int i =0 ;i<dataList.size();i++){
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.TEXT.getValue())){ if(dataList.get(i).getValueType()!=null){
if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){ if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.FILE.getValue())){
fileName = dataList.get(i).getDeliveryResult(); if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){
dataList.get(i).setDeliveryResult(fileName); 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.NA.getValue())){
fileName = ""; }
dataList.get(i).setDeliveryResult(fileName); }else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.TEXT.getValue())){
}else if(dataList.get(i).getValueType().equals(SysCategoryValueTypeEnum.SELECT.getValue())) { if(StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())){
if (StringUtils.isNotEmpty(dataList.get(i).getDeliveryResult())) { fileName = 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); 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 = projectCertificationInventoryEO.getExcelName()+".xlsx";
// String excelName = ""; // String excelName = "";
// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ // if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
@@ -3985,11 +3975,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){
title = "*类别,*检验项目,*配置项,*WVTA ID," + title = "*类别,*检验项目,*配置项,*WVTA ID," +
"*标准编号,*责任领域,*工程接口人,*责任人," + "*标准编号,*责任领域,*工程接口人,*责任人," +
"*交付物类型,交付物模板,*截止日期,报告编号,产品型号,生产企业名称"; "交付物模板,*交付物类型,*截止日期,报告编号,产品型号,生产企业名称";
}else { }else {
title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," + title = "*Category,*Inspection Items,*Configuration Item,*WVTA ID," +
"*Standard No,*Responsible Field,*Eng. Interface,*Assignee," + "*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(",")); List<String> list = Arrays.asList(title.split(","));
@@ -4008,7 +3998,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
nowFile.mkdirs(); nowFile.mkdirs();
HSSFSheet sheet = workbook.createSheet("认证清单导入模板"); HSSFSheet sheet = workbook.createSheet("认证清单导入模板");
sheet.setDefaultColumnWidth(16);//列宽 sheet.setDefaultColumnWidth(16);//列宽
// HSSFCellStyle cellStyle = workbook.createCellStyle();
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat((short) 49);
sheet.setDefaultColumnStyle(10,cellStyle);
// cellStyle.setWrapText(true);//自动换行 // cellStyle.setWrapText(true);//自动换行
// cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 // cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
// cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中 // cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中
@@ -531,55 +531,52 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
allList = allList.stream().distinct().collect(Collectors.toList()); 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); List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList);
//enginnerList为每一条的工程接口人的集合 //enginnerList为每一条的工程接口人的集合
List<String> enginnerList = new ArrayList<>(); List<String> enginnerList = new ArrayList<>();
for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){
enginnerList.add(projectRelatedPersonnel.getEngineeringInterfacePerson());
}
if(projectRelatedPersonnelList.size()>0){ if(projectRelatedPersonnelList.size()>0){
for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){ for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){
if(StringUtils.isEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())){ if(enginnerList.size()<0){
//直接将allList存入到 //直接将allList存入到
String all = String.join(",",allList); String all = String.join(",",allList);
projectRelatedPersonnel.setEngineerLawSet(all); projectRelatedPersonnel.setEngineerLawSet(all);
projectRelatedPersonnelService.editById(projectRelatedPersonnel); // projectRelatedPersonnelService.editById(projectRelatedPersonnel);
}else { }else {
enginnerList.add(projectRelatedPersonnel.getEngineeringInterfacePerson());
enginnerList = enginnerList.stream().distinct().collect(Collectors.toList()); enginnerList = enginnerList.stream().distinct().collect(Collectors.toList());
//比较allList中有而enginnerList中没有的工程接口人 //比较allList中有而enginnerList中没有的工程接口人
boolean flag = false; allList.removeAll(enginnerList);
List<String> resultList = new ArrayList<>(); // if(allList.size()>0){
if(allList.size()>0){ // flag = CollectionUtils.isEqualCollection(allList,enginnerList);
flag = CollectionUtils.isEqualCollection(allList,enginnerList); // if(!flag){
if(!flag){ // //进行遍历两个list,将allList中有的而enginnerList没有的存入到相关人员名单中的法规那里
//进行遍历两个list,将allList中有的而enginnerList没有的存入到相关人员名单中的法规那里 //
// for(String all : allList){
for(String all : allList){ // boolean flag1 = true;
boolean flag1 = true; // for(String enginner : enginnerList){
for(String enginner : enginnerList){ // if(all.equals(enginner)){
if(all.equals(enginner)){ // flag1 = false;
flag1 = false; // break;
break; // }
} // }
} // if(flag1){
if(flag1){ // resultList.add(all);
resultList.add(all); // }
} // }
} // }
} // }
}
//将相关人员名单中没有的resultList添加到相关人员记录表中 //将相关人员名单中没有的resultList添加到相关人员记录表中
String result = String.join(",",resultList); String result = String.join(",",allList);
projectRelatedPersonnel.setEngineerLawSet(result); 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<>(); List<String> lawEngineerNameList = new ArrayList<>();
if(projectRelatedPersonnels.size() != 0){ if(projectRelatedPersonnels.size() != 0){
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
@@ -252,7 +252,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
null, null,
null, null,
null, null,
null); null,null);
if(projectRelatedPersonnelList.size() != 0){ if(projectRelatedPersonnelList.size() != 0){
List<ProjectUserPermission> relatedPersonnelPermissionList = new ArrayList<>(); List<ProjectUserPermission> relatedPersonnelPermissionList = new ArrayList<>();
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) { for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) {
@@ -518,7 +518,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
//编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师 //编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(), 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(); String certificationEngineer = projectLibraryBase.getCertificationEngineer();
//一个都不选的情况下 //一个都不选的情况下
@@ -287,14 +287,17 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
String dutyTerritoryTemp, String dutyTerritoryTemp,
String lawEngineer, String lawEngineer,
String engineeringInterfacePerson, String engineeringInterfacePerson,
String certificationEngineer) { String engineerLawSet,String engineerAttSet){
// String certificationEngineer) {
//查询数据 //查询数据
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId, List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(), DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp, dutyTerritoryTemp,
lawEngineer, lawEngineer,
engineeringInterfacePerson, engineeringInterfacePerson,
certificationEngineer); // certificationEngineer
engineerLawSet,
engineerAttSet);
//查询数据里的责任领域 //查询数据里的责任领域
List<String> dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList()); 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) if(StringUtils.isBlank(dutyTerritoryTemp)
&& StringUtils.isBlank(lawEngineer) && StringUtils.isBlank(lawEngineer)
&& StringUtils.isBlank(engineeringInterfacePerson) && StringUtils.isBlank(engineeringInterfacePerson)
&& StringUtils.isBlank(certificationEngineer)){ // && StringUtils.isBlank(certificationEngineer)
&& StringUtils.isBlank(engineerLawSet)
&& StringUtils.isBlank(engineerLawSet)){
if(result.size() != sysDictItemValueList.size()){ if(result.size() != sysDictItemValueList.size()){
//更新相关人员表里的责任领域数据 //更新相关人员表里的责任领域数据
@@ -320,7 +325,8 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
dutyTerritoryTemp, dutyTerritoryTemp,
lawEngineer, lawEngineer,
engineeringInterfacePerson, engineeringInterfacePerson,
certificationEngineer); engineerLawSet,
engineerAttSet);
} }
} }
disposeData(result); disposeData(result);
@@ -405,7 +411,54 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
projectRelatedPersonnel.setCertificationEngineerName(certificationName.substring(0,certificationName.toString().length()-1)); 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<>(); QueryWrapper<ProjectRelatedPersonnel> wrapper = new QueryWrapper<>();
wrapper.eq("project_id",projectId).in("duty_territory",dutyTerritoryList); wrapper.eq("project_id",projectId).in("duty_territory",dutyTerritoryList);
List<ProjectRelatedPersonnel> projectRelatedPersonnels = baseMapper.selectList(wrapper); List<ProjectRelatedPersonnel> projectRelatedPersonnels = baseMapper.selectList(wrapper);
return projectRelatedPersonnels; return projectRelatedPersonnels;
@@ -589,7 +641,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
records = queryById(id); records = queryById(id);
} }
}else{ }else{
records=queryPageList(projectId,null,null,null,null); records=queryPageList(projectId,null,null,null,null,null);
} }
//id无值,传全部 //id无值,传全部
disposeDutyTerritory(records,cut); disposeDutyTerritory(records,cut);
@@ -744,10 +796,10 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
try { try {
String titleOne = ""; String titleOne = "";
if (CutEnum.CN.getValue().equals(projectRelatedPersonnel.getCut())) { if (CutEnum.CN.getValue().equals(projectRelatedPersonnel.getCut())) {
titleOne = "责任领域,法规工程师,工程接口人,认证工程师,备注"; titleOne = "责任领域,法规工程师,工程接口人,工程接口人-法规工程师设置,工程接口人-认证工程师设置,备注";
fileOriName = "相关人员导入模板.xls"; fileOriName = "相关人员导入模板.xls";
} else { } 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"; fileOriName = "Import template of related personnel.xls";
} }
@@ -764,7 +816,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
sheetName = "Personal List"; sheetName = "Personal List";
} }
HSSFSheet sheet = workbook.createSheet(sheetName); HSSFSheet sheet = workbook.createSheet(sheetName);
sheet.setDefaultColumnWidth(16);//列宽 sheet.setDefaultColumnWidth(20);//列宽
HSSFCellStyle cellStyle = workbook.createCellStyle(); HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setWrapText(true);//自动换行 cellStyle.setWrapText(true);//自动换行
cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
@@ -774,7 +826,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
cellStyleTemp.setWrapText(true);//自动换行 cellStyleTemp.setWrapText(true);//自动换行
int startLine = 0; int startLine = 0;
int endLine = 4; int endLine = 5;
//合并单元格 //合并单元格
CellRangeAddress region1 = CellRangeAddress region1 =
new CellRangeAddress(1, 1, startLine, endLine); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列 new CellRangeAddress(1, 1, startLine, endLine); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
@@ -788,14 +840,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
+ "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是正式数据;\n" + "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是正式数据;\n"
+ "2.填写人员时,必须使用人员账号进行填写;\n" + "2.填写人员时,必须使用人员账号进行填写;\n"
+ "3.填写的人员账号必须与系统中账号保持一致;\n" + "3.填写的人员账号必须与系统中账号保持一致;\n"
+ "4.填写任意一责任领域内工程师人员时,必须填写法规工程师、工程接口人、认证工程师三个字段信息。"; + "4.填写任意一责任领域内工程师人员时,必须填写法规工程师、工程接口人、工程接口人-法规工程师设置、工程接口人-认证工程师设置四个字段信息。";
} else { } else {
explainInfo = explainInfo =
"filling explanation\n" "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" + "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" + "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" + "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); HSSFRichTextString explain = new HSSFRichTextString(explainInfo);