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