市场清单中更新log相关修改

This commit is contained in:
cuijiaming
2023-04-02 06:10:05 +08:00
parent 2154f13373
commit 1ed7d9f684
@@ -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;
@@ -153,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删除
*
@@ -224,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;
}
@@ -780,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());
}
}
}