diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java new file mode 100644 index 000000000..d88e237f3 --- /dev/null +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestBaseEO.java @@ -0,0 +1,140 @@ +package com.jero.modules.cert.collect.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 15:15 2022/5/27 + */ +@Data +public class ParamsCollectManifestBaseEO implements Serializable { + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + + /**nio编号*/ + @Excel(name = "nio编号", width = 15) + @ApiModelProperty(value = "nio编号") + private String nioNumber; + + /**是否必填*/ + @Excel(name = "是否必填", width = 15) + @ApiModelProperty(value = "是否必填") + private String isMust; + + /**参数名称*/ + @Excel(name = "参数名称", width = 15) + @ApiModelProperty(value = "参数名称") + private String paramsName; + + /**技术领域*/ + @Excel(name = "技术领域", width = 15) + @ApiModelProperty(value = "技术领域") + private String technologyTerritory; + + /**参数批次*/ + @Excel(name = "参数批次", width = 15) + @ApiModelProperty(value = "参数批次") + private String paramsBatch; + + /**责任领域*/ + @Excel(name = "责任领域", width = 15) + @ApiModelProperty(value = "责任领域") + private String dutyTerritory; + + /**参数说明*/ + @Excel(name = "参数说明", width = 15) + @ApiModelProperty(value = "参数说明") + private String description; + + /**认证类别*/ + @Excel(name = "认证类别", width = 15) + @ApiModelProperty(value = "认证类别") + private String certCategory; + + /**控件类型*/ + @Excel(name = "控件类型", width = 15) + @ApiModelProperty(value = "控件类型") + private String controlType; + + /**控件备选值*/ + @Excel(name = "控件备选值", width = 15) + @ApiModelProperty(value = "控件备选值") + private String controlValues; + + /**控件校验*/ + @Excel(name = "控件校验", width = 15) + @ApiModelProperty(value = "控件校验") + private String controlVerify; + + /**附件模板*/ + @Excel(name = "附件模板", width = 15) + @ApiModelProperty(value = "附件模板") + private String fileTemplate; + + /**参数模板id*/ + @Excel(name = "参数模板id", width = 15) + @ApiModelProperty(value = "参数模板id") + private String paramsTemplateId; + + /**状态*/ + @Excel(name = "状态", width = 15) + @ApiModelProperty(value = "状态") + private String state; + + /**工程接口人*/ + @Excel(name = "工程接口人", width = 15) + @ApiModelProperty(value = "工程接口人") + private String sdt; + + /**填写人*/ + @Excel(name = "填写人", width = 15) + @ApiModelProperty(value = "填写人") + private String dre; + + /**截止时间*/ + @Excel(name = "截止时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "截止时间") + private java.util.Date deadline; + + /**参数清单id*/ + @Excel(name = "参数清单id", width = 15) + @ApiModelProperty(value = "参数清单id") + private String paramsManifestId; +} diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java index 7c70544d3..915bfebcf 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestEO.java @@ -27,130 +27,9 @@ import java.io.Serializable; @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @ApiModel(value="params_collect_manifest对象", description="参数收集清单") -public class ParamsCollectManifestEO implements Serializable { +public class ParamsCollectManifestEO extends ParamsCollectManifestBaseEO implements Serializable { // private static final long serialVersionUID = 1L; - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) - @ApiModelProperty(value = "主键") - private String id; - - /**创建人*/ - @ApiModelProperty(value = "创建人") - private String createBy; - - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建日期") - private java.util.Date createTime; - - /**更新人*/ - @ApiModelProperty(value = "更新人") - private String updateBy; - - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "更新日期") - private java.util.Date updateTime; - - /**所属部门*/ - @ApiModelProperty(value = "所属部门") - private String sysOrgCode; - - /**nio编号*/ - @Excel(name = "nio编号", width = 15) - @ApiModelProperty(value = "nio编号") - private String nioNumber; - - /**是否必填*/ - @Excel(name = "是否必填", width = 15) - @ApiModelProperty(value = "是否必填") - private String isMust; - - /**参数名称*/ - @Excel(name = "参数名称", width = 15) - @ApiModelProperty(value = "参数名称") - private String paramsName; - - /**技术领域*/ - @Excel(name = "技术领域", width = 15) - @ApiModelProperty(value = "技术领域") - private String technologyTerritory; - - /**参数批次*/ - @Excel(name = "参数批次", width = 15) - @ApiModelProperty(value = "参数批次") - private String paramsBatch; - - /**责任领域*/ - @Excel(name = "责任领域", width = 15) - @ApiModelProperty(value = "责任领域") - private String dutyTerritory; - - /**参数说明*/ - @Excel(name = "参数说明", width = 15) - @ApiModelProperty(value = "参数说明") - private String description; - - /**认证类别*/ - @Excel(name = "认证类别", width = 15) - @ApiModelProperty(value = "认证类别") - private String certCategory; - - /**控件类型*/ - @Excel(name = "控件类型", width = 15) - @ApiModelProperty(value = "控件类型") - private String controlType; - - /**控件备选值*/ - @Excel(name = "控件备选值", width = 15) - @ApiModelProperty(value = "控件备选值") - private String controlValues; - - /**控件校验*/ - @Excel(name = "控件校验", width = 15) - @ApiModelProperty(value = "控件校验") - private String controlVerify; - - /**附件模板*/ - @Excel(name = "附件模板", width = 15) - @ApiModelProperty(value = "附件模板") - private String fileTemplate; - - /**参数模板id*/ - @Excel(name = "参数模板id", width = 15) - @ApiModelProperty(value = "参数模板id") - private String paramsTemplateId; - - /**状态*/ - @Excel(name = "状态", width = 15) - @ApiModelProperty(value = "状态") - private String state; - - /**工程接口人*/ - @Excel(name = "工程接口人", width = 15) - @ApiModelProperty(value = "工程接口人") - private String sdt; - - /**填写人*/ - @Excel(name = "填写人", width = 15) - @ApiModelProperty(value = "填写人") - private String dre; - - /**截止时间*/ - @Excel(name = "截止时间", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") - @ApiModelProperty(value = "截止时间") - private java.util.Date deadline; - - /**参数清单id*/ - @Excel(name = "参数清单id", width = 15) - @ApiModelProperty(value = "参数清单id") - private String paramsManifestId; - /**变更标识*/ @Excel(name = "变更标识", width = 15) @ApiModelProperty(value = "变更标识") diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestHistoryEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestHistoryEO.java index f2916a620..b84bf7069 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestHistoryEO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/entity/ParamsCollectManifestHistoryEO.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; @@ -20,6 +21,6 @@ import java.io.Serializable; @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @ApiModel(value="params_collect_manifest_history对象", description="参数项收集清单历史版本") -public class ParamsCollectManifestHistoryEO extends ParamsCollectManifestEO implements Serializable { +public class ParamsCollectManifestHistoryEO extends ParamsCollectManifestBaseEO implements Serializable { } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index e18b16f02..cc2e8edd3 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; import com.jero.common.constant.CommonConstant; import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.MessageTypeEnum; @@ -1165,27 +1166,84 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl findAllFieldsOfSelfAndSuperClass(Class clazz) { + Field[] fields = null; + List fieldList = Lists.newArrayList(); + while (true) { + if (clazz == null) { + break; + } else { + fields = clazz.getDeclaredFields(); + for (int i = 0; i < fields.length; i++) { + fieldList.add(fields[i]); + } + clazz = clazz.getSuperclass(); + } + } + return fieldList; + } + + /** + * 将对象转Map + * @param obj 待转对象 + * @return + */ + private Map objectToMap(Object obj) { + + Map map = new HashMap<>(); + // 获取f对象对应类中的所有属性域 + List list = findAllFieldsOfSelfAndSuperClass(obj.getClass()); + for (Field field : list) { + + String varName = field.getName(); + try { + // 获取原来的访问控制权限 + boolean accessFlag = field.isAccessible(); + // 修改访问控制权限 + field.setAccessible(true); + // 获取在对象f中属性fields[i]对应的对象中的变量 + Object o = field.get(obj); + if (o != null) + map.put(varName, o); + // 恢复访问控制权限 + field.setAccessible(accessFlag); + } catch (IllegalArgumentException ex) { + ex.printStackTrace(); + } catch (IllegalAccessException ex) { + ex.printStackTrace(); + } + } + return map; + + } + /** * 实体对象转成Map * @param obj 实体对象 * @return */ - private Map objectToMap(Object obj) { - Map map = new HashMap<>(); - if (obj == null) { - return map; - } - Class clazz = obj.getClass(); - Field[] fields = clazz.getDeclaredFields(); - try { - for (Field field : fields) { - field.setAccessible(true); - map.put(field.getName(), field.get(obj)); - } - } catch (Exception e) { - e.printStackTrace(); - } - return map; - } +// private Map objectToMap(Object obj) { +// Map map = new HashMap<>(); +// if (obj == null) { +// return map; +// } +// Class clazz = obj.getClass(); +// Field[] fields = clazz.getDeclaredFields(); +// try { +// for (Field field : fields) { +// field.setAccessible(true); +// map.put(field.getName(), field.get(obj)); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return map; +// } } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java index 521705105..05f0af194 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestHistoryEOServiceImpl.java @@ -3,6 +3,7 @@ package com.jero.modules.cert.collect.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; @@ -145,7 +146,7 @@ public class ParamsCollectManifestHistoryEOServiceImpl extends ServiceImpl getConfigDataVOList(String controlType, ParamsConfigDataEO paramsConfigDataEO, ParamsCollectManifestEO paramsCollectManifestEO) { + private List getConfigDataVOList(String controlType, ParamsConfigDataEO paramsConfigDataEO, ParamsCollectManifestHistoryEO paramsCollectManifestEO) { List paramsConfigDataVOList = new ArrayList<>(); if (ControlTypeEnum.TEXT.getValue().equals(controlType)) { @@ -382,26 +383,83 @@ public class ParamsCollectManifestHistoryEOServiceImpl extends ServiceImpl findAllFieldsOfSelfAndSuperClass(Class clazz) { + Field[] fields = null; + List fieldList = Lists.newArrayList(); + while (true) { + if (clazz == null) { + break; + } else { + fields = clazz.getDeclaredFields(); + for (int i = 0; i < fields.length; i++) { + fieldList.add(fields[i]); + } + clazz = clazz.getSuperclass(); + } + } + return fieldList; + } + + /** + * 将对象转Map + * @param obj 待转对象 + * @return + */ + private Map objectToMap(Object obj) { + + Map map = new HashMap<>(); + // 获取f对象对应类中的所有属性域 + List list = findAllFieldsOfSelfAndSuperClass(obj.getClass()); + for (Field field : list) { + + String varName = field.getName(); + try { + // 获取原来的访问控制权限 + boolean accessFlag = field.isAccessible(); + // 修改访问控制权限 + field.setAccessible(true); + // 获取在对象f中属性fields[i]对应的对象中的变量 + Object o = field.get(obj); + if (o != null) + map.put(varName, o); + // 恢复访问控制权限 + field.setAccessible(accessFlag); + } catch (IllegalArgumentException ex) { + ex.printStackTrace(); + } catch (IllegalAccessException ex) { + ex.printStackTrace(); + } + } + return map; + + } + /** * 实体对象转成Map * @param obj 实体对象 * @return */ - private Map objectToMap(Object obj) { - Map map = new HashMap<>(); - if (obj == null) { - return map; - } - Class clazz = obj.getClass(); - Field[] fields = clazz.getDeclaredFields(); - try { - for (Field field : fields) { - field.setAccessible(true); - map.put(field.getName(), field.get(obj)); - } - } catch (Exception e) { - e.printStackTrace(); - } - return map; - } +// private Map objectToMap(Object obj) { +// Map map = new HashMap<>(); +// if (obj == null) { +// return map; +// } +// Class clazz = obj.getClass(); +// Field[] fields = clazz.getDeclaredFields(); +// try { +// for (Field field : fields) { +// field.setAccessible(true); +// map.put(field.getName(), field.get(obj)); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return map; +// } } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ParamsReportDetailEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ParamsReportDetailEO.java index 5b73e83fb..4cf48e223 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ParamsReportDetailEO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ParamsReportDetailEO.java @@ -2,6 +2,7 @@ package com.jero.modules.cert.report.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestBaseEO; import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -25,7 +26,7 @@ import java.io.Serializable; @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @ApiModel(value="params_report_detail对象", description="上报库参数项") -public class ParamsReportDetailEO extends ParamsCollectManifestEO implements Serializable { +public class ParamsReportDetailEO extends ParamsCollectManifestBaseEO implements Serializable { // private static final long serialVersionUID = 1L; /**同步时间*/ diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java index 93f7fae89..b9b2d1e7e 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java @@ -3,6 +3,7 @@ package com.jero.modules.cert.report.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; import com.jero.common.constant.enums.CutEnum; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; @@ -148,7 +149,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl getConfigDataVOList(String controlType, ParamsConfigDataEO paramsConfigDataEO, ParamsCollectManifestEO paramsCollectManifestEO) { + private List getConfigDataVOList(String controlType, ParamsConfigDataEO paramsConfigDataEO, ParamsReportDetailEO paramsCollectManifestEO) { List paramsConfigDataVOList = new ArrayList<>(); if (ControlTypeEnum.TEXT.getValue().equals(controlType)) { @@ -385,26 +386,83 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl findAllFieldsOfSelfAndSuperClass(Class clazz) { + Field[] fields = null; + List fieldList = Lists.newArrayList(); + while (true) { + if (clazz == null) { + break; + } else { + fields = clazz.getDeclaredFields(); + for (int i = 0; i < fields.length; i++) { + fieldList.add(fields[i]); + } + clazz = clazz.getSuperclass(); + } + } + return fieldList; + } + + /** + * 将对象转Map + * @param obj 待转对象 + * @return + */ + private Map objectToMap(Object obj) { + + Map map = new HashMap<>(); + // 获取f对象对应类中的所有属性域 + List list = findAllFieldsOfSelfAndSuperClass(obj.getClass()); + for (Field field : list) { + + String varName = field.getName(); + try { + // 获取原来的访问控制权限 + boolean accessFlag = field.isAccessible(); + // 修改访问控制权限 + field.setAccessible(true); + // 获取在对象f中属性fields[i]对应的对象中的变量 + Object o = field.get(obj); + if (o != null) + map.put(varName, o); + // 恢复访问控制权限 + field.setAccessible(accessFlag); + } catch (IllegalArgumentException ex) { + ex.printStackTrace(); + } catch (IllegalAccessException ex) { + ex.printStackTrace(); + } + } + return map; + + } + /** * 实体对象转成Map * @param obj 实体对象 * @return */ - private Map objectToMap(Object obj) { - Map map = new HashMap<>(); - if (obj == null) { - return map; - } - Class clazz = obj.getClass(); - Field[] fields = clazz.getDeclaredFields(); - try { - for (Field field : fields) { - field.setAccessible(true); - map.put(field.getName(), field.get(obj)); - } - } catch (Exception e) { - e.printStackTrace(); - } - return map; - } +// private Map objectToMap(Object obj) { +// Map map = new HashMap<>(); +// if (obj == null) { +// return map; +// } +// Class clazz = obj.getClass(); +// Field[] fields = clazz.getDeclaredFields(); +// try { +// for (Field field : fields) { +// field.setAccessible(true); +// map.put(field.getName(), field.get(obj)); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return map; +// } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SyncDataController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SyncDataController.java new file mode 100644 index 000000000..0dda76aec --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SyncDataController.java @@ -0,0 +1,40 @@ +package com.jero.modules.system.controller; + +import com.jero.common.api.vo.Result; +import com.jero.modules.system.service.ISyncDataService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 15:50 2022/5/24 + */ +@RestController +@RequestMapping("/sys/people") +@Api(tags="people同步") +@Slf4j +public class SyncDataController { + @Autowired + private ISyncDataService syncDataService; + + @ApiOperation(value = "通过people同步部门信息") + @GetMapping("/syncDepartInfo") + public Result syncDepartInfo() throws Exception { + syncDataService.synchronPPDepartInfo(); + return Result.OK("开始同步部门信息"); + } + + + @ApiOperation(value = "通过people同步用户信息") + @GetMapping("/syncUserInfo") + public Result syncUserInfo() throws Exception { + syncDataService.synchronPPUserInfo(); + return Result.OK("开始同步用户信息"); + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java index 177cc374b..3ccccf316 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysCategoryController.java @@ -579,7 +579,16 @@ public class SysCategoryController { */ @GetMapping("/getSysCategoryTree") public Result getSysCategoryTree() { - return Result.OK(sysCategoryService.getSysCategoryTree()); + return Result.OK(sysCategoryService.getSysCategoryTree(null)); + } + /** + * 只查询交付物类型的树形数据字典 + * @return + */ + @GetMapping("/getDeliverableTree") + public Result getDeliverableTree() { + String flag = "deliverable_template"; + return Result.OK(sysCategoryService.getSysCategoryTree(flag)); } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/OtSyncInfoEO.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/OtSyncInfoEO.java new file mode 100644 index 000000000..fc5cdb49d --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/OtSyncInfoEO.java @@ -0,0 +1,83 @@ +package com.jero.modules.system.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 同步时间记录表 + * @Author: jero-boot + * @Date: 2022-05-25 + * @Version: V1.0 + */ +@Data +@TableName("ot_sync_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="ot_sync_info对象", description="同步时间记录表") +public class OtSyncInfoEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + + /**同步时间*/ + @Excel(name = "同步时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "同步时间") + private java.util.Date syncTime; + + /**上次同步时间*/ + @Excel(name = "上次同步时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "上次同步时间") + private java.util.Date lastSyncTime; + + /**同步类型*/ + @Excel(name = "同步类型", width = 15) + @ApiModelProperty(value = "同步类型") + private String syncType; + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java index c1e1e4b59..7f0ff581e 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPDepartment.java @@ -9,10 +9,10 @@ import lombok.Data; */ @Data public class PPDepartment { - private String ref_id; //部门ID ----id + private String ref_id; //部门ID ----id, org_code(因为org_code不能为空) private String name_en; //部门英文名 ----depart_name_en private String name_cn; //部门中文名 ----depart_name - private String code; //部门code ----org_code + private String code; //部门code ----depart_order private String manager_id; //部门负责人员工号 private String manager_wk_uid; //部门负责人域账号 private String hr_partner; //部门 HRBP(多个会用";"隔开) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPEmployee.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPEmployee.java index f76e8e2d0..54538a10a 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPEmployee.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/PPEmployee.java @@ -11,14 +11,15 @@ import java.util.Date; */ @Data public class PPEmployee { + // people_info private String data_difference; //数据来源[WORKDAY,XPT,NIOCAPITAL] private String employee_difference; // 员工来源[CN, EU_US,EU] - private String employee_id; // 员工编号(员工唯一标识) - private String worker_user_id; //WD帐号创建SSO账号 / AD账户 - private String user_name; // WD同步到people的域帐号 - private String foreign_employee_id; // 兼职公司对应的员工编号 + private String employee_id; // 员工编号(员工唯一标识) ----workNo + private String worker_user_id; //WD帐号创建SSO账号 / AD账户 ----thirdId + private String user_name; // WD同步到people的域帐号 ----username +// private String foreign_employee_id; // 兼职公司对应的员工编号 private String name; // 全名 - private String formatted_name; // 全名-拼音及中文 + private String formatted_name; // 全名-拼音及中文 ----realname private String preferred_first_name; // 首选-名 private String preferred_last_name; // 首选-姓 private String first_name; //法定-名-拼音 @@ -28,13 +29,13 @@ public class PPEmployee { private String name_in_local_script; // 法定-姓名-中文 private String first_name_in_local_script; // 名-中文 private String last_name_in_local_script; // 姓-中文 - private String delete_flag; // 删除标记[1:存在;0:删除] + private String delete_flag; // 删除标记[1:存在;0:删除] ----delFlag private String delete_time; // 删除时间 private String delay_flag; // 延期标记(0:延期,1:未延期,2:未操作) private String delay_time; // 延期时间 - private String employee_status; // 员工状态[Active,Terminated] + private String employee_status; // 员工状态[Active,Terminated] ----statue private String outsourcing_type; // 外包形式 - private String worker_type; // 员工种类 Employee,Contingent Worker + private String worker_type; // 员工种类 Employee,Contingent Worker ----workerType private String hire_date; // 员工入职日期 private String original_hire_date; // 员工原始入职日期 private String rehire; // 重新雇用[1:是;0:否] @@ -53,8 +54,23 @@ public class PPEmployee { private String domain; // 账号所属域 private String ad_failed; // 创建ad失败原账号 private String have_employees; // 是否有下属员工 - private String id; // id - private Date creation_time; // 创建时间 - private Date update_time; // 修改时间 + private String id; // id ----id + private Date creation_time; // 创建时间 ----createTime + private Date update_time; // 修改时间 ----updateTime + + // people_job_info 多个 取第一个 + private String job_code; + private String job_title; + private String supervisory_organization_ref_id; // 部门id + + + // people_contact_email 多个 取第一个WORK邮箱 + private String email_type; // HOME/WORK + private String email_address; + + // people_contact_phone 多个 取第一个Mobile的WORK电话 + private String phone_type; // HOME/WORK + private String phone_device_type; // Mobile/Landline + private String formatted_phone_number; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java index ce1f0c578..e36617f10 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java @@ -164,6 +164,7 @@ public class SysUser implements Serializable { private String clientId; private String thirdId;//用户域账号 + private String thirdType;//用户数据来源 @Excel(name = "员工类型", width = 15, dicCode = "worker_type") @Dict(dicCode = "worker_type") @@ -182,4 +183,8 @@ public class SysUser implements Serializable { @TableField(exist = false) private String cut; //中英文切换标识 + + //新添加的字段 + private String jobCode; + private String jobTitle; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/OtSyncInfoEOMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/OtSyncInfoEOMapper.java new file mode 100644 index 000000000..f4c567432 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/OtSyncInfoEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.system.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.system.entity.OtSyncInfoEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 同步时间记录表 + * @Author: jero-boot + * @Date: 2022-05-25 + * @Version: V1.0 + */ +public interface OtSyncInfoEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysCategoryMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysCategoryMapper.java index f84049e32..d39cbd7c1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysCategoryMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysCategoryMapper.java @@ -41,5 +41,7 @@ public interface SysCategoryMapper extends BaseMapper { public String getFieldInfo(@Param("fieldName") String fieldName); + public String getDictId(@Param("dicCode") String dicCode); + List queryByTreeDicCode( @Param("dicCode") String dicCode); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/OtSyncInfoEOMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/OtSyncInfoEOMapper.xml new file mode 100644 index 000000000..9909fb30f --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/OtSyncInfoEOMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml index e14cd1bf6..147a6b2b0 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysCategoryMapper.xml @@ -18,7 +18,7 @@ + + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml index 6dd95fb32..0b562ba18 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml @@ -166,6 +166,6 @@ - order by d.order_num desc + order by d.order_num diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IOtSyncInfoEOService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IOtSyncInfoEOService.java new file mode 100644 index 000000000..ad64702d6 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/IOtSyncInfoEOService.java @@ -0,0 +1,63 @@ +package com.jero.modules.system.service; + +import com.jero.modules.system.entity.OtSyncInfoEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 同步时间记录表 + * @Author: jero-boot + * @Date: 2022-05-25 + * @Version: V1.0 + */ +public interface IOtSyncInfoEOService extends IService { + + /** + * 保存 + * + * @param otSyncInfoEO + * @return + */ + void add(OtSyncInfoEO otSyncInfoEO); + + /** + * 更新 + * + * @param otSyncInfoEO + * @return + */ + void editById(OtSyncInfoEO otSyncInfoEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + OtSyncInfoEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + OtSyncInfoEO getLastSyncInfo(String syncType); +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISyncDataService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISyncDataService.java index 93d7bac1e..c02eaca9e 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISyncDataService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISyncDataService.java @@ -13,6 +13,12 @@ import java.security.NoSuchAlgorithmException; * @Date: Created in 15:37 2022/2/28 */ public interface ISyncDataService { + + void synchronPPDepartInfo() throws Exception; + + void synchronPPUserInfo() throws Exception; + + void syncDepartInfo() throws IOException, NoSuchAlgorithmException, InvalidKeyException; int insertDepartFromTree(PPOrganization root, int i); @@ -22,6 +28,4 @@ public interface ISyncDataService { void syncDepartRoleInfo() throws IOException, NoSuchAlgorithmException, InvalidKeyException; void syncDepartRoleUserInfo() throws IOException, NoSuchAlgorithmException, InvalidKeyException; - - String getResultDataOfGet(String uri, String queryString) throws IOException, NoSuchAlgorithmException, InvalidKeyException; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java index 1cb646f44..827bdc465 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysCategoryService.java @@ -67,7 +67,7 @@ public interface ISysCategoryService extends IService { * 获取树形结构 * @return */ - List getSysCategoryTree(); + List getSysCategoryTree(String flag); /** * 获取树形结构,中英文可切换 diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java index 39b72e4e7..667744bd1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDepartService.java @@ -140,8 +140,24 @@ public interface ISysDepartService extends IService{ */ void updateAllParentId(); + /** + * 获取从people同步过来的部门列表 + * @return + */ List getPPDepartList(); + + /** + * 添加从people同步过来的部门 + * @param ppDepartment + * @return + */ SysDepart addPPDepart(PPDepartment ppDepartment); - void updatePPDepart(PPDepartment ppDepartment); + + /** + * 修改从people同步过来的部门 + * @param sysDepart + * @param ppDepartment + */ + void updatePPDepart(SysDepart sysDepart, PPDepartment ppDepartment); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 6603a5aa5..b1bc67a27 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.common.system.vo.SysUserCacheInfo; +import com.jero.modules.system.entity.PPEmployee; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.model.DepartIdModel; import com.jero.modules.system.model.SysUserSysDepartModel; @@ -254,4 +255,11 @@ public interface ISysUserService extends IService { * 根据用户名usernameList查询id */ List queryUserIdListByNameList(List usernameList); + + List getPPEmployeeList(); + + SysUser addPPUserInfo(PPEmployee ppEmployee); + + void updatePPUserInfo(SysUser sysUser, PPEmployee ppEmployee); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/OtSyncInfoEOServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/OtSyncInfoEOServiceImpl.java new file mode 100644 index 000000000..62f9244d0 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/OtSyncInfoEOServiceImpl.java @@ -0,0 +1,107 @@ +package com.jero.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.system.entity.OtSyncInfoEO; +import com.jero.modules.system.mapper.OtSyncInfoEOMapper; +import com.jero.modules.system.service.IOtSyncInfoEOService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 同步时间记录表 + * @Author: jero-boot + * @Date: 2022-05-25 + * @Version: V1.0 + */ +@Service +public class OtSyncInfoEOServiceImpl extends ServiceImpl implements IOtSyncInfoEOService { + + /** + * 保存 + * + * @param otSyncInfoEO + * @return + */ + @Override + public void add(OtSyncInfoEO otSyncInfoEO) { + Date now = new Date(); + otSyncInfoEO.setCreateTime(now); + otSyncInfoEO.setUpdateTime(now); + save(otSyncInfoEO); + } + + /** + * 更新 + * + * @param otSyncInfoEO + * @return + */ + @Override + public void editById(OtSyncInfoEO otSyncInfoEO) { + Date now = new Date(); + otSyncInfoEO.setUpdateTime(now); + saveOrUpdate(otSyncInfoEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public OtSyncInfoEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + /** + * 获取上一次同步的信息 + * @param syncType + * @return + */ + public OtSyncInfoEO getLastSyncInfo(String syncType){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.eq(OtSyncInfoEO::getSyncType, syncType) + .orderByDesc(OtSyncInfoEO::getSyncTime); + List syncInfoEOList = list(queryWrapper); + if(syncInfoEOList!=null && !syncInfoEOList.isEmpty()){ + return syncInfoEOList.get(0); + }else{ + return null; + } + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SyncDataServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SyncDataServiceImpl.java index 570c34db2..aa96f5627 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SyncDataServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SyncDataServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.modules.system.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jero.common.constant.CommonConstant; @@ -8,6 +9,7 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.PasswordUtil; import com.jero.common.util.oConvertUtils; import com.jero.modules.system.entity.*; +import com.jero.modules.system.enums.PPSyncEnum; import com.jero.modules.system.service.*; import com.jero.modules.system.util.HmacSignUtil; import com.jero.modules.system.util.HttpRequestUtil; @@ -16,15 +18,15 @@ import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -54,12 +56,283 @@ public class SyncDataServiceImpl implements ISyncDataService{ private ISysDepartRoleService sysDepartRoleService; @Autowired private ISysDepartRoleUserService sysDepartRoleUserService; + @Autowired + private IOtSyncInfoEOService otSyncInfoEOService; + + /** + * 同步部门信息 + * @throws Exception + */ + @Async + @Transactional(readOnly = false, rollbackFor = Exception.class) + public void synchronPPDepartInfo() throws Exception { + Date nowTime = new Date(); + // 本地组织机构MAP + Map localDepartMap = new HashMap(); + // 获取上次同步状态 + OtSyncInfoEO lastSyncInfo = otSyncInfoEOService.getLastSyncInfo(PPSyncEnum.PP_DEPART.getValue()); + //首先获取系统内的所有PP组织机构 + List sysDepartList = sysDepartService.getPPDepartList(); + //将List转化成Map结构 + if (sysDepartList != null && !sysDepartList.isEmpty()) { + for (SysDepart eo : sysDepartList) { + localDepartMap.put(eo.getId(), eo); + } + } + // 取PP数据 + String path = "/people/v1/base/department/list"; + String queryStr = "app_id=" + appId +"&hash_type=sha256&offset=0&limit=100"; + String response = getResultDataOfGet(path, queryStr); + JSONObject myJson = JSONObject.parseObject(response); + log.debug(myJson.toJSONString()); + if (!myJson.get("result_code").toString().equals("success")) { + log.error("请求出现异常:" + myJson.get("message") + " " + myJson); + } else { + log.debug("打印输出本次同步信息返回结果:" + myJson.get("data").toString()); + JSONObject resultJson = (JSONObject) myJson.get("data"); + List ppDepartList = JSONObject.parseArray(resultJson.get("list").toString(), PPDepartment.class); + //获取总记录数 + int total = (int) resultJson.get("amount"); + if (total > 100) { + int pageSum = total / 100; // 总页数 + if ((total % 100) > 0) { + pageSum += 1; + } + //循环查询统一认证系统所有账户信息(从第二页开始) + for (int page = 1; page < pageSum; page++) { + path = "/people/v1/base/department/list"; + queryStr = "app_id=" + appId +"&hash_type=sha256&limit=100&offset=" + (page*100); + response = getResultDataOfGet(path, queryStr); + myJson = JSONObject.parseObject(response.toString()); + resultJson = (JSONObject) myJson.get("data"); + log.debug("打印输出本次同步信息返回结果:" + myJson.get("data").toString()); + List currentPPDepartList = JSONObject.parseArray(resultJson.get("list").toString(), PPDepartment.class); + ppDepartList.addAll(currentPPDepartList); + } + } + + //开始循环遍历数据 + /*** + * 判断PP数据是否存在,不存在:插入,存在:更新 + */ + if (ppDepartList != null && !ppDepartList.isEmpty()) { + for (PPDepartment ppDepart : ppDepartList) { + try { + // 判断当前SSO组织机构是否在本地存在 不存在先将数据添加到数据中 + if (!localDepartMap.containsKey(ppDepart.getRef_id())) { + if (StringUtils.isNotBlank(ppDepart.getRef_id())) { // 排除ref_id为空的情况 + SysDepart sysDepart = sysDepartService.addPPDepart(ppDepart); + localDepartMap.put(ppDepart.getRef_id(), sysDepart); + } + } else { + SysDepart sysDepart = localDepartMap.get(ppDepart.getRef_id()); + sysDepartService.updatePPDepart(sysDepart, ppDepart); + } + }catch (Exception e){ + log.error("同步部门数据出现异常,异常信息为:"+e.getMessage(), e); + continue; + } + } + } + //记录同步规则 + // 写入本次同步记录 + OtSyncInfoEO syncInfoEO = new OtSyncInfoEO(); + syncInfoEO.setSyncTime(nowTime); + syncInfoEO.setSyncType(PPSyncEnum.PP_DEPART.getValue()); + syncInfoEO.setLastSyncTime(lastSyncInfo != null ? lastSyncInfo.getSyncTime() : null); + otSyncInfoEOService.save(syncInfoEO); + } + + } + + /** + * 同步用户信息 + * @throws Exception + */ + @Async + @Transactional(readOnly = false, rollbackFor = Exception.class) + public void synchronPPUserInfo() throws Exception { +// 获取当前时间 + Date nowTime = new Date(); +// 获取上次更新时间 + OtSyncInfoEO lastSyncInfo = otSyncInfoEOService.getLastSyncInfo(PPSyncEnum.PP_USER.getValue()); + //本地用户信息Map + Map localUserMap=new HashMap(); + //people获取用户信息Map + Map PPEmployeeMap=new HashMap(); + + String path = "/people/v1/employee/all-info"; + String queryStr = "app_id=" + appId + "&hash_type=sha256&offset=0&limit=100"; + String response = getResultDataOfGet(path, queryStr); + JSONObject myJson = JSONObject.parseObject(response); + log.debug(myJson.toJSONString()); + if(!myJson.get("result_code").toString().equals("success")){ + log.error("请求出现异常:"+myJson.get("message")+" "+myJson); + }else{ + log.debug("打印输出本次同步信息返回结果:"+myJson.get("data").toString()); + JSONObject resultJson = (JSONObject) myJson.get("data"); + //将第一页的账户信息转换为本地dto集合 + List userList = JSONObject.parseArray(resultJson.get("list").toString(), JSONObject.class); + List ppEmployeeList = getPPEmployeeList(userList); + + //获取总记录数 + int total = (int) resultJson.get("amount"); + if(total > 100){ + int pageSum = total / 100; // 总页数 + if((total % 100) > 0){ + pageSum += 1; + } + //循环查询统一认证系统所有账户信息(从第二页开始) + for(int page = 1; page < pageSum; page++){ + path = "/people/v1/employee/all-info"; + queryStr = "app_id=" + appId + "&hash_type=sha256&limit=100&offset=" + (page*100); + response = getResultDataOfGet(path, queryStr); + myJson = JSONObject.parseObject(response); + log.debug("打印输出本次同步信息返回结果:"+myJson.get("data").toString()); + resultJson = (JSONObject) myJson.get("data"); + userList = JSONObject.parseArray(resultJson.get("list").toString(), JSONObject.class); + List currentPPEmployeeList = getPPEmployeeList(userList); + ppEmployeeList.addAll(currentPPEmployeeList); + } + } + + //此处获取全部pp用户信息 + List sysUserList = sysUserService.getPPEmployeeList(); +// log.info("查询到的用户信息结果集为:"+JSONObject.toJSONString(userEOList)); + for(SysUser user:sysUserList){ + localUserMap.put(user.getId(),user); + } +// log.info("将用户信息集合转换为的用户MAP为:"+JSONObject.toJSONString(localUserMap)); + log.info("开始更新数据库信息"); + for(PPEmployee ppEmployee:ppEmployeeList){ + try { + PPEmployeeMap.put(ppEmployee.getId(), ppEmployee); + //1.判断当前账号是否已添加到用户中 + if (!localUserMap.containsKey(ppEmployee.getId())) { + //删除数据库中与该账户相同的数据 + if(StringUtils.isNotBlank(ppEmployee.getId())) { + sysUserService.removeById(ppEmployee.getId()); + log.info("需要新增的用户信息为:" + JSONObject.toJSONString(ppEmployee)); + SysUser newUser = sysUserService.addPPUserInfo(ppEmployee); + localUserMap.put(ppEmployee.getId(), newUser); + } + + } else { + SysUser userEO = localUserMap.get(ppEmployee.getId()); + log.info("需要更新的用户信息为:" + JSONObject.toJSONString(userEO) + " " + JSONObject.toJSONString(ppEmployee)); + if(userEO != null) { + sysUserService.updatePPUserInfo(userEO, ppEmployee); + } + + } + }catch (Exception e){ + e.printStackTrace(); + log.error("同步用户数据出现异常,异常信息为:"+e.getMessage(), e); + } + } + log.info("更新数据结束"); + // 写入本次同步记录 + OtSyncInfoEO syncInfoEO = new OtSyncInfoEO(); + syncInfoEO.setSyncTime(nowTime); + syncInfoEO.setSyncType(PPSyncEnum.PP_USER.getValue()); + syncInfoEO.setLastSyncTime(lastSyncInfo != null ? lastSyncInfo.getSyncTime() : null); + try { + otSyncInfoEOService.save(syncInfoEO); + }catch (Exception e){ + e.printStackTrace(); + log.error("出现异常,异常信息为:"+e.getMessage(), e); + } + log.info("写入同步记录结束"); + } + } + + + private static List getPPEmployeeList(List userList) { + List ppEmployeeList = new ArrayList<>(); + for (JSONObject user : userList) { + PPEmployee userMainInfo = JSONObject.parseObject(user.get("people_info").toString(), PPEmployee.class); + + List userJobInfoList = JSONObject.parseArray(user.get("people_job_info").toString(), PPEmployee.class); + if (CollectionUtil.isNotEmpty(userJobInfoList)) { + userMainInfo.setJob_code(userJobInfoList.get(0).getJob_code()); + userMainInfo.setJob_title(userJobInfoList.get(0).getJob_title()); + userMainInfo.setSupervisory_organization_ref_id(userJobInfoList.get(0).getSupervisory_organization_ref_id()); + } + List userEmailInfoList = JSONObject.parseArray(user.get("people_contact_email").toString(), PPEmployee.class); + if (CollectionUtil.isNotEmpty(userEmailInfoList)) { + PPEmployee userEmailInfo = userEmailInfoList.stream().filter(e->"WORK".equals(e.getEmail_type())).collect(Collectors.toList()).get(0); + if (ObjectUtil.isNotEmpty(userEmailInfo)) { + userMainInfo.setEmail_address(userEmailInfo.getEmail_address()); + } + } + List userPhoneInfoList = JSONObject.parseArray(user.get("people_contact_phone").toString(), PPEmployee.class); + if (CollectionUtil.isNotEmpty(userPhoneInfoList)) { + PPEmployee userPhoneInfo = userPhoneInfoList.stream().filter(e->"WORK".equals(e.getPhone_type()) && "Mobile".equals(e.getPhone_device_type())).collect(Collectors.toList()).get(0); + if (ObjectUtil.isNotEmpty(userPhoneInfo)) { + userMainInfo.setFormatted_phone_number(userPhoneInfo.getFormatted_phone_number()); + } + } + + ppEmployeeList.add(userMainInfo); + } + return ppEmployeeList; + } + + /** + * 发送请求,获取同步数据 + * @param uri + * @param queryString + * @return + * @throws IOException + * @throws NoSuchAlgorithmException + * @throws InvalidKeyException + */ + private String getResultDataOfGet(String uri, String queryString) throws IOException, NoSuchAlgorithmException, InvalidKeyException { + // 获取签名 + String method ="GET"; + String path = uri; + String queryStr = queryString; + Map header = new HashMap<>(); + String timestamp = HmacSignUtil.getSecondTimestamp(new Date()); + queryStr += "×tamp=" + timestamp; + String sign = HmacSignUtil.getSign(secret,method,path,queryStr,header); + String url = host; + url += path + "?"; + url += queryStr; + url += "&sign=" + sign; + Map headerMap = new HashMap<>(); + String response = HttpRequestUtil.getResponseOfGET(url, headerMap); + JSONObject myJson = JSONObject.parseObject(response); + + return myJson.toJSONString(); +// log.debug(myJson.toJSONString()); +// if(!myJson.get("result_code").toString().equals("success")) { +// log.error("请求出现异常:" + myJson.get("result_code") + " " + myJson); +// } +// log.debug("打印输出本次同步信息返回结果:"+myJson.get("data").toString()); +// return myJson.get("data").toString(); + } public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException { + String path = "/people/v1/employee/all-info"; +// String path = "/people/v1/base/department/list"; +// String queryStr = "app_id=100679&hash_type=sha256&employee_id=10438,22705,27785,28617,28617,45143"; +// String queryStr = "app_id=100679&hash_type=sha256&worker_user_id=ning.chen,shanshan.su,frank.qiang,huaming.liu,charles.wang,songran.liu"; + String queryStr = "app_id=100679&hash_type=sha256&worker_user_id=abin.ban1"; + + String response = getResultDataOfGetTest(path, queryStr); +// JSONObject myJson = JSONObject.parseObject(response); +// JSONObject resultJson = (JSONObject) myJson.get("data"); + //将第一页的账户信息转换为本地dto集合 +// List userList = JSONObject.parseArray(resultJson.get("list").toString(), JSONObject.class); +// List ppEmployeeList = getPPEmployeeList(userList); + System.out.println("ok"); } + + /** * 同步组织信息 * @throws IOException @@ -70,7 +343,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ //查询所有组织列表,children为空 String path = "/people/v1/organization/list"; String queryStr = "app_id=100679&hash_type=sha256"; - String resultData = getResultDataOfGet(path, queryStr); + String resultData = getResultDataOfGetTest(path, queryStr); //JSON转实体类 List organizationList = JSONArray.parseArray(resultData, PPOrganization.class); log.info("需要同步的组织数据总数:" + organizationList.size()); @@ -146,7 +419,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ //查询所有角色列表,非树状,children为空 String path = "/people/v1/position/list"; String queryStr = "app_id=100679&hash_type=sha256"; - String resultData = getResultDataOfGet(path, queryStr); + String resultData = getResultDataOfGetTest(path, queryStr); //JSON转实体类 List positionList = JSONArray.parseArray(resultData, PPPosition.class); List positionCodeList = positionList.stream().map(PPPosition :: getCode).collect(Collectors.toList()); @@ -155,7 +428,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ log.info("需要同步的岗位数据总数:" + positionList.size()); for(String code : positionCodeList){ String queryStrDetail = positionDetailQueryStr + code; - String result = getResultDataOfGet(positionDetailPath, queryStrDetail); + String result = getResultDataOfGetTest(positionDetailPath, queryStrDetail); PPPosition position = JSONObject.parseObject(result, PPPosition.class); SysRole sysRole = new SysRole(); sysRole.setId(position.getId()); @@ -181,7 +454,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ public void syncDepartRoleInfo() throws IOException, NoSuchAlgorithmException, InvalidKeyException { String path = "/people/v1/organization-position/all"; String queryStr = "app_id=100679&hash_type=sha256"; - String resultData = getResultDataOfGet(path, queryStr); + String resultData = getResultDataOfGetTest(path, queryStr); //JSON转实体类 List organizationPositionList = JSONArray.parseArray(resultData, PPOrganizationPosition.class); log.info("需要同步的组织岗位关系数据总数:" + organizationPositionList.size()); @@ -211,7 +484,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ //查询所有人员组织岗位 String path = "/people/v1/employee/organization-position/list"; String queryStr = "app_id=100679&hash_type=sha256"; - String resultData = getResultDataOfGet(path, queryStr); + String resultData = getResultDataOfGetTest(path, queryStr); //JSON转实体类 List orgPosEmployeeList = JSONArray.parseArray(resultData, PPOrgPosEmployee.class); log.info("需要同步的组织岗位人员关系数据总数:" + orgPosEmployeeList.size()); @@ -220,7 +493,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ for(PPOrgPosEmployee ope : orgPosEmployeeList){ //查询人员详情 String queryStrDetail = employeeDetailQueryStr + ope.getEmployee_id(); - String result = getResultDataOfGet(employeeDetailPath, queryStrDetail); + String result = getResultDataOfGetTest(employeeDetailPath, queryStrDetail); //JSON转实体类 PPEmployee employee = JSONObject.parseObject(result, PPEmployee.class); //判断用户信息是否已添加,人员-组织岗位关系为多对多 @@ -273,7 +546,7 @@ public class SyncDataServiceImpl implements ISyncDataService{ * @throws NoSuchAlgorithmException * @throws InvalidKeyException */ - public String getResultDataOfGet(String uri, String queryString) throws IOException, NoSuchAlgorithmException, InvalidKeyException { + public static String getResultDataOfGetTest(String uri, String queryString) throws IOException, NoSuchAlgorithmException, InvalidKeyException { String appId = "100679"; // String appSecret = "CDf2D9404C6ac1B0f7c3e3845ae0282a"; String appSecret = "7C3F03170E3ea489df04Ce8DEC7Df4f7"; @@ -290,15 +563,17 @@ public class SyncDataServiceImpl implements ISyncDataService{ url += path + "?"; url += queryStr; url += "&sign=" + sign; + System.out.println(url); Map headerMap = new HashMap<>(); String response = HttpRequestUtil.getResponseOfGET(url, headerMap); JSONObject myJson = JSONObject.parseObject(response); - log.debug(myJson.toJSONString()); - if(!myJson.get("result_code").toString().equals("success")) { - log.error("请求出现异常:" + myJson.get("result_code") + " " + myJson); - } - log.debug("打印输出本次同步信息返回结果:"+myJson.get("data").toString()); - return myJson.get("data").toString(); + return myJson.toJSONString(); +// log.debug(myJson.toJSONString()); +// if(!myJson.get("result_code").toString().equals("success")) { +// log.error("请求出现异常:" + myJson.get("result_code") + " " + myJson); +// } +// log.debug("打印输出本次同步信息返回结果:"+myJson.get("data").toString()); +// return myJson.get("data").toString(); } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java index f66abd579..c30c1abb2 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysCategoryServiceImpl.java @@ -264,10 +264,15 @@ public class SysCategoryServiceImpl extends ServiceImpl getSysCategoryTree() { + public List getSysCategoryTree(String flag) { try { //只查询技术领域的technology_territory - String dictId = sysCategoryMapper.getFieldInfo("technology_territory"); + String dictId = ""; + if("deliverable_template".equals(flag)){ + dictId = sysCategoryMapper.getDictId("deliverable_template"); + }else{ + dictId = sysCategoryMapper.getFieldInfo("technology_territory"); + } List list = new ArrayList<>(); if(StringUtils.isNotBlank(dictId)){ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -319,6 +324,11 @@ public class SysCategoryServiceImpl extends ServiceImpl 0) {//有重复展示顺序的,后面的号全+1 @@ -328,16 +338,23 @@ public class SysCategoryServiceImpl extends ServiceImpl geOrderNumList = list(orderNumQueryWrapper); //判断相邻的序号,去掉不邻的 for (int i = 0; i < geOrderNumList.size(); i++) { - if (geOrderNumList.size() == 1) { + if (geOrderNumList.size() == 1 || (geOrderNumList.size()==2 && geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() == 1)) { break; } else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); - break; + if(geOrderNumList.size()!=(i+1)) { + break; + } } } @@ -353,35 +370,49 @@ public class SysCategoryServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("sys_dict_id",sysCategory.getSysDictId()) + queryWrapper.eq("sys_dict_id", sysCategory.getSysDictId()) .eq("del_flag", CommonConstant.DEL_FLAG_0) .orderByAsc("sort_order"); - Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysCategory.getId())) - .map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0); - queryWrapper.eq("sort_order", inputOrderNum); - Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper); - if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 - //设置排序 - QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); - orderNumQueryWrapper.ge("sort_order", inputOrderNum) - .eq("sys_dict_id",sysCategory.getSysDictId()) - .eq("del_flag", CommonConstant.DEL_FLAG_0) - .orderByAsc("sort_order"); - List geOrderNumList = list(orderNumQueryWrapper); - - //判断相邻的序号,去掉不邻的 - for (int i = 0; i < geOrderNumList.size(); i++) { - if (geOrderNumList.size() == 1) { - break; - } else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { - int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); - geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); - break; + if (StringUtils.isNotBlank(sysCategory.getPid())) { + queryWrapper.eq("pid", sysCategory.getPid()); + } else { + queryWrapper.eq("pid", 0); + } + if (list(queryWrapper).size() > 0) { + Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysCategory.getId())) + .map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0); + queryWrapper.eq("sort_order", inputOrderNum); + Integer orderNumCount = sysCategoryMapper.selectCount(queryWrapper); + if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 + //设置排序 + QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); + orderNumQueryWrapper.ge("sort_order", inputOrderNum) + .eq("sys_dict_id", sysCategory.getSysDictId()) + .eq("del_flag", CommonConstant.DEL_FLAG_0) + .orderByAsc("sort_order"); + if (StringUtils.isNotBlank(sysCategory.getPid())) { + orderNumQueryWrapper.eq("pid", sysCategory.getPid()); + } else { + orderNumQueryWrapper.eq("pid", 0); } - } + List geOrderNumList = list(orderNumQueryWrapper); - geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); - saveOrUpdateBatch(geOrderNumList); + //判断相邻的序号,去掉不邻的 + for (int i = 0; i < geOrderNumList.size(); i++) { + if (geOrderNumList.size() == 1 || (geOrderNumList.size() == 2 && geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() == 1)) { + break; + } else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { + int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); + geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); + if (geOrderNumList.size() != (i + 1)) { + break; + } + } + } + + geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); + saveOrUpdateBatch(geOrderNumList); + } } } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java index 1e17da837..b3a914e79 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java @@ -571,8 +571,7 @@ public class SysDepartServiceImpl extends ServiceImpl getPPDepartList() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysDepart::getDepartSource, PPSyncEnum.PP.getValue()) - .eq(SysDepart::getDelFlag, 0); + queryWrapper.eq(SysDepart::getDepartSource, PPSyncEnum.PP.getValue()); return this.list(queryWrapper); } @@ -612,8 +611,8 @@ public class SysDepartServiceImpl extends ServiceImpl 0) {//有重复展示顺序的,后面的号全+1 @@ -102,36 +102,38 @@ public class SysDictItemServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0) - .eq("dict_id",sysDictItem.getDictId()) - .eq("is_tag_dict",sysDictItem.getIsTagDict()) + .eq("dict_id", sysDictItem.getDictId()) + .eq("is_tag_dict", sysDictItem.getIsTagDict()) .orderByAsc("sort_order"); - Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDictItem.getId())) - .map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0); - queryWrapper.eq("sort_order", inputOrderNum); - Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper); - if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 - //设置排序 - QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); - orderNumQueryWrapper.ge("sort_order", inputOrderNum) - .eq("dict_id",sysDictItem.getDictId()) - .eq("del_flag", CommonConstant.DEL_FLAG_0) - .eq("is_tag_dict",sysDictItem.getIsTagDict()) - .orderByAsc("sort_order"); - List geOrderNumList = list(orderNumQueryWrapper); + if (list(queryWrapper).size() > 0) { + Integer orderNumData = list(queryWrapper).stream().filter(e -> e.getId().equals(sysDictItem.getId())) + .map(e -> e.getSortOrder()).collect(Collectors.toList()).get(0); + queryWrapper.eq("sort_order", inputOrderNum); + Integer orderNumCount = sysDictItemMapper.selectCount(queryWrapper); + if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 + //设置排序 + QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); + orderNumQueryWrapper.ge("sort_order", inputOrderNum) + .eq("dict_id", sysDictItem.getDictId()) + .eq("del_flag", CommonConstant.DEL_FLAG_0) + .eq("is_tag_dict", sysDictItem.getIsTagDict()) + .orderByAsc("sort_order"); + List geOrderNumList = list(orderNumQueryWrapper); - //判断相邻的序号,去掉不邻的 - for (int i = 0; i < geOrderNumList.size(); i++) { - if (geOrderNumList.size() == 1) { - break; - } else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { - int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); - geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); - break; + //判断相邻的序号,去掉不邻的 + for (int i = 0; i < geOrderNumList.size(); i++) { + if (geOrderNumList.size() == 1) { + break; + } else if (geOrderNumList.get(i + 1).getSortOrder() - geOrderNumList.get(i).getSortOrder() > 1) { + int deleteStart = geOrderNumList.get(i + 1).getSortOrder(); + geOrderNumList = geOrderNumList.stream().filter(e -> e.getSortOrder() < deleteStart).collect(Collectors.toList()); + break; + } } - } - geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); - saveOrUpdateBatch(geOrderNumList); + geOrderNumList.stream().forEach(e -> e.setSortOrder(e.getSortOrder() + 1)); + saveOrUpdateBatch(geOrderNumList); + } } } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 74bd4bef3..954895db0 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -17,12 +17,14 @@ import com.jero.common.util.UUIDGenerator; import com.jero.common.util.oConvertUtils; import com.jero.modules.base.service.BaseCommonService; import com.jero.modules.system.entity.*; +import com.jero.modules.system.enums.PPSyncEnum; import com.jero.modules.system.mapper.*; import com.jero.modules.system.model.DepartIdModel; import com.jero.modules.system.model.SysUserSysDepartModel; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.vo.SysUserDepVo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; @@ -474,4 +476,91 @@ public class SysUserServiceImpl extends ServiceImpl impl List sysUsers = this.baseMapper.selectList(sysUserQueryWrapper); return sysUsers; } + + @Override + public List getPPEmployeeList() { + QueryWrapper sysUserQueryWrapper = new QueryWrapper<>(); + sysUserQueryWrapper.lambda().eq(SysUser::getThirdType, PPSyncEnum.PP.getValue()); + return list(sysUserQueryWrapper); + } + + @Override + public SysUser addPPUserInfo(PPEmployee ppEmployee) { + + SysUser sysUser = new SysUser(); + // 基本信息 + sysUser.setId(ppEmployee.getId()); + sysUser.setUsername(ppEmployee.getUser_name()); + sysUser.setRealname(ppEmployee.getFormatted_name()); + sysUser.setStatus("Active".equals(ppEmployee.getEmployee_status())? CommonConstant.USER_UNFREEZE : CommonConstant.USER_FREEZE); + sysUser.setDelFlag("1".equals(ppEmployee.getDelete_flag())? CommonConstant.DEL_FLAG_0 : CommonConstant.DEL_FLAG_1); + sysUser.setThirdId(ppEmployee.getWorker_user_id()); + sysUser.setActivitiSync(CommonConstant.ACT_SYNC_1); + sysUser.setWorkNo(ppEmployee.getEmployee_id()); + sysUser.setWorkerType("Employee".equals(ppEmployee.getWorker_type())? CommonConstant.WORKER_TYPE_1 : CommonConstant.WORKER_TYPE_2); + sysUser.setCreateTime(ppEmployee.getCreation_time()); + sysUser.setUpdateTime(ppEmployee.getUpdate_time()); + sysUser.setThirdType(PPSyncEnum.PP.getValue()); + // 工作信息 + sysUser.setJobCode(ppEmployee.getJob_code()); + sysUser.setJobTitle(ppEmployee.getJob_title()); + sysUser.setOrgCode(ppEmployee.getSupervisory_organization_ref_id()); + // 联系方式 + sysUser.setEmail(ppEmployee.getEmail_address()); + sysUser.setTelephone(ppEmployee.getFormatted_phone_number()); + + // 设置用户默认密码 + String username = ppEmployee.getUser_name(); + String password = "nio.com123"; // 设置默认密码 + String salt = oConvertUtils.randomGen(8); + String passwordEncode = PasswordUtil.encrypt(username, password, salt); + sysUser.setPassword(passwordEncode); + sysUser.setSalt(salt); + + // 添加用户部门关系 + SysUserDepart sysUserDepart = new SysUserDepart(ppEmployee.getId(), ppEmployee.getSupervisory_organization_ref_id()); + sysUserDepartMapper.insert(sysUserDepart); + // 添加用户信息 + save(sysUser); + return sysUser; + } + + @Override + public void updatePPUserInfo(SysUser sysUser, PPEmployee ppEmployee) { + + // 基本信息 + sysUser.setUsername(ppEmployee.getUser_name()); + sysUser.setRealname(ppEmployee.getFormatted_name()); + sysUser.setStatus("Active".equals(ppEmployee.getEmployee_status())? CommonConstant.USER_UNFREEZE : CommonConstant.USER_FREEZE); + sysUser.setDelFlag("1".equals(ppEmployee.getDelete_flag())? CommonConstant.DEL_FLAG_0 : CommonConstant.DEL_FLAG_1); + sysUser.setThirdId(ppEmployee.getWorker_user_id()); + sysUser.setWorkNo(ppEmployee.getEmployee_id()); + sysUser.setWorkerType("Employee".equals(ppEmployee.getWorker_type())? CommonConstant.WORKER_TYPE_1 : CommonConstant.WORKER_TYPE_2); + sysUser.setCreateTime(ppEmployee.getCreation_time()); + sysUser.setUpdateTime(ppEmployee.getUpdate_time()); + + // 工作信息 + sysUser.setJobCode(ppEmployee.getJob_code()); + sysUser.setJobTitle(ppEmployee.getJob_title()); + sysUser.setOrgCode(ppEmployee.getSupervisory_organization_ref_id()); + // 联系方式 + sysUser.setEmail(ppEmployee.getEmail_address()); + sysUser.setTelephone(ppEmployee.getFormatted_phone_number()); + + if (!StringUtils.equals(sysUser.getOrgCode(), ppEmployee.getSupervisory_organization_ref_id())) { + // 删除原用户部门关系 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(SysUserDepart::getUserId, sysUser.getId()).eq(SysUserDepart::getDepId,sysUser.getOrgCode()); + sysUserDepartMapper.delete(queryWrapper); + + if (StringUtils.isNotEmpty(ppEmployee.getSupervisory_organization_ref_id())) { + // 添加用户部门关系 + SysUserDepart sysUserDepart = new SysUserDepart(ppEmployee.getId(), ppEmployee.getSupervisory_organization_ref_id()); + sysUserDepartMapper.insert(sysUserDepart); + } + } + + updateById(sysUser); + + } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/timer/PPSyncDataTimer.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/timer/PPSyncDataTimer.java new file mode 100644 index 000000000..b67b9da3d --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/timer/PPSyncDataTimer.java @@ -0,0 +1,72 @@ +package com.jero.modules.system.timer; + +import com.jero.modules.system.entity.OtSyncInfoEO; +import com.jero.modules.system.service.ISyncDataService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +/** + * 定时同步SSO数据至本地 + */ +@Component +@EnableScheduling +@Slf4j +public class PPSyncDataTimer { + + @Value("${people.cronJobIsOpen}") + private Boolean isOpen; + + @Autowired + private ISyncDataService syncDataService; + +// @Scheduled(cron = "0 10 0 * * ?") //每天凌晨0点10分执行 + public void syncDepartInfo() { + if (isOpen) { + log.info("<======================================启动同步部门信息======================================>"); + try { + log.info("=========================================开始同步部门信息========================================="); + long startTime = System.currentTimeMillis(); + syncDataService.synchronPPDepartInfo(); + long endTime = System.currentTimeMillis(); + log.info("==============同步部门信息结束,同步共用时:"+((endTime-startTime)/1000)+" 秒========================"); + + } catch (Exception e) { + log.error("同步部门信息出现异常,异常信息为:" + e.getMessage(), e); + } + log.info("<======================================结束同步部门信息=======================================>"); + } + } + +// @Scheduled(cron = "0 10 1 * * ?") //每天凌晨1点10分执行 + public void syncUserInfo() { + log.info("<======================================启动同步用户信息=======================================>"); + if (isOpen) { + try { + log.info("=========================================开始同步用户信息========================================="); + long startTime = System.currentTimeMillis(); + syncDataService.synchronPPUserInfo(); + long endTime = System.currentTimeMillis(); + log.info("==============同步用户信息结束,同步共用时:"+((endTime-startTime)/1000)+" 秒========================"); + + //删除重复的用户数据 + /*List repeatUserIdList = userEOService.selectRepeatUserIdList(); + if(CollectionUtils.isNotEmpty(repeatUserIdList)) { + userEOService.delete(repeatUserIdList); + }*/ + } catch (Exception accountException) { + log.error("同步用户信息出现异常,异常信息为:" + accountException.getMessage(), accountException); + } + log.info("<======================================结束同步用户信息=======================================>"); + } + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 8a4a9222b..2f3131edc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -170,6 +170,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> mapList = bussDocumentLibraryEOMapper.selectMapsAll(StringUtils.join(ids, ",")); + List dictItemList = sysDictItemServiceImpl.selectItemsAll(); + + List connectIdList = new ArrayList<>(); for (OnlCgformField onlCgformField : fieldFileList) { @@ -202,14 +205,28 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl map : mapList) { String id = (String) map.get("id"); String serialNumber = (String) map.get("serial_number"); + String titleEn = (String) map.get("title_en"); String title = (String) map.get("title"); - //文档动态------------------- - String hrefTemp = "" + serialNumber + ","; + "&serial_number=" + serialNumber + "'" + " target='_blank'>" + serialNumber + "" + " " + titleEn + ","; HomeDocumentDynamicEO homeDocumentDynamicEO = new HomeDocumentDynamicEO(); sbTemp.append(hrefTemp); - serialNumberListTemp.add(serialNumber); + serialNumberListTemp.add(category + " " + serialNumber + " " + titleEn); //--------------------------- if (documentIds.size() != 0 && documentIds.contains((String) map.get("id"))) { serialNumberList.add(serialNumber); @@ -219,15 +236,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl sysCategoryTree = sysCategoryService.getSysCategoryTree(); + List sysCategoryTree = sysCategoryService.getSysCategoryTree(null); List> list = new ArrayList<>(); for (OnlCgformField onlCgformField : fieldList) { Map map = new HashMap<>(); @@ -430,7 +449,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsQuery()))).collect(Collectors.toList()); } //树形数据字典 - List sysCategoryTree = sysCategoryService.getSysCategoryTree(); + List sysCategoryTree = sysCategoryService.getSysCategoryTree(null); List> list = new ArrayList<>(); for (OnlCgformField onlCgformField : fieldList) { Map map = new HashMap<>(); @@ -482,7 +501,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl sysCategoryTree = sysCategoryService.getSysCategoryTree(); + List sysCategoryTree = sysCategoryService.getSysCategoryTree(null); // List> result = new ArrayList<>(); // for (OnlCgformArea onlCgformAreaTemp : areaList) { // String areaName = ""; @@ -651,7 +673,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl sysCategoryTree = sysCategoryService.getSysCategoryTree(); + List sysCategoryTree = sysCategoryService.getSysCategoryTree(null); List> result = new ArrayList<>(); for (OnlCgformArea onlCgformAreaTemp : areaList) { String areaName = ""; @@ -701,7 +723,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl userIdList = domainUserRelService.queryDomainUserRelInfo(mapTemp); String title = (String) map.get("title"); String serialNumber = (String) map.get("serial_number"); + String category = (String)map.get("lei4_bie2"); + String titleEn = (String) map.get("title_en"); + List dictItemList = sysDictItemServiceImpl.selectItemsAll(); + if(StringUtils.isNotBlank(category)){ + String finalCategory = category; + List stateDictItemList = dictItemList.stream() + .filter(e -> "type".equals(e.getDictCode()) && finalCategory.equals(e.getItemValue())) + .collect(Collectors.toList()); + if(stateDictItemList.size() != 0){ + category = stateDictItemList.get(0).getEnName(); + } + }else{ + category = ""; + } Set technologyTerritorySet = new HashSet<>(); - String technologyTerritoryId = map.get("technology_territory").toString(); + String technologyTerritoryId = ""; + if(ObjectUtils.isNotEmpty(map.get("technology_territory"))){ + technologyTerritoryId = map.get("technology_territory").toString(); + } //技术领域 if(StringUtils.isNotEmpty(technologyTerritoryId)){ List technologyTerritoryIdList = Arrays.asList(technologyTerritoryId.split(",")); @@ -2021,13 +2062,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl" + serialNumber + ""; + "&serial_number=" + serialNumber + "'" + " target='_blank'>" + serialNumber + "" + " "+ titleEn + " "; //文档动态, 文档库中新增了标准XXXX homeDocumentDynamicEOService + //The standard GB 7258-2017 Technical specifications has been added to the document library. HomeDocumentDynamicEO homeDocumentDynamicEO = new HomeDocumentDynamicEO(); - homeDocumentDynamicEO.setMsgContent("文档库中新增了标准" + serialNumber); - homeDocumentDynamicEO.setMsgContentInfo("文档库中新增了标准" + href); + homeDocumentDynamicEO.setMsgContent("The " + category + " " + serialNumber + " " + titleEn + " has been added to the document library."); + homeDocumentDynamicEO.setMsgContentInfo("The " + href + " has been added to the document library."); homeDocumentDynamicEOService.save(homeDocumentDynamicEO); @@ -2070,8 +2112,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl list = this.list(); List serialNumberList = list.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); String serialNumber = (String)map.get("serial_number"); + String category = (String)map.get("lei4_bie2"); String id = (String) map.get("id"); String title = (String) map.get("title"); + String titleEn = (String) map.get("title_en"); //通过id查询数据 List> dataList = bussDocumentLibraryEOMapper.selectMapsAll(id); if(dataList.size() != 0){ @@ -2085,7 +2129,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl dictItemList = sysDictItemServiceImpl.selectItemsAll(); //编辑时处理首页文档动态 1. 标准XXXX的状态改为 2. 标准XXXX的适用车型改为 3. 标准XXXX删除了XXXX文件 4. 标准XXXX上传了XXXX文件 - homeDocumentDynamic(cut,map, serialNumber, id, title, dataList, fieldList,dictItemList); + homeDocumentDynamic(cut,map, serialNumber, id, title, dataList, fieldList,dictItemList,category,titleEn); try { @@ -2392,7 +2436,20 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> dataList, List fieldList, - List dictItemList) { + List dictItemList, + String category, + String titleEn) { + if(StringUtils.isNotBlank(category)){ + String finalCategory = category; + List stateDictItemList = dictItemList.stream() + .filter(e -> "type".equals(e.getDictCode()) && finalCategory.equals(e.getItemValue())) + .collect(Collectors.toList()); + if(stateDictItemList.size() != 0){ + category = stateDictItemList.get(0).getEnName(); + } + }else{ + category = ""; + } //文件类型字段 List onlCgformFieldList = fieldList.stream() .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); @@ -2402,10 +2459,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl" + serialNumber + ","; + "&serial_number=" + serialNumber + "'" + " target='_blank'>" + serialNumber + "" + " " + titleEn; + + StringBuilder msgContentSb = new StringBuilder(); + StringBuilder msgContentInfoSb = new StringBuilder(); + //适用车型 + StringBuilder msgContentSbCarType = new StringBuilder("Applicable Models of the " + category + " " + serialNumber + " " + titleEn); + StringBuilder msgContentInfoSbCarType = new StringBuilder("Applicable Models of the " + category + " " + href); + //状态 + StringBuilder msgContentSbStatus = new StringBuilder("The Status of the " + category + " " + serialNumber + " " + titleEn); + StringBuilder msgContentInfoSbStatus = new StringBuilder("The Status of the " + category + " " + href); - StringBuilder msgContentSb = new StringBuilder("标准" + serialNumber); - StringBuilder msgContentInfoSb = new StringBuilder("标准" + href); List fileIdLIstTemp = new ArrayList<>(); for (Map.Entry entry : dataList.get(0).entrySet()) { @@ -2468,14 +2532,21 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl "state".equals(e.getDictCode()) && finalValue.equals(e.getItemValue())) .collect(Collectors.toList()); if(stateDictItemList.size() != 0){ - if(CutEnum.CN.getValue().equals(cut)){ - value = stateDictItemList.get(0).getItemText(); - }else{ - value = stateDictItemList.get(0).getEnName(); - } + value = stateDictItemList.get(0).getEnName(); } - msgContentSb.append("状态改为" + value + ","); - msgContentInfoSb.append("状态改为" + value + ","); + // + if(StringUtils.isBlank(value)){ + msgContentSbStatus.append(" has been modified to be empty ,"); + msgContentInfoSbStatus.append(" has been modified to be empty ,"); + msgContentSb.append(msgContentSbStatus); + msgContentInfoSb.append(msgContentInfoSbStatus); + }else{ + msgContentSbStatus.append(" has been modified to " + value + ","); + msgContentInfoSbStatus.append(" has been modified to " + value + ","); + msgContentSb.append(msgContentSbStatus); + msgContentInfoSb.append(msgContentInfoSbStatus); + } + } //适用车型 car_type if("shi4_yong4_che1_xing2".equals(key) && !value.equals((String)dataList.get(0).get("shi4_yong4_che1_xing2"))){ @@ -2500,9 +2571,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl records) { Set technologyTerritorySet = new HashSet<>(); for (DummyInventoryInfoEO dummyInventoryInfoEO : records) { @@ -545,14 +545,22 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl attestationType = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getValue()); - String attestationTypeName = attestationType.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getAttestationType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); - dummyInventoryInfoEO.setAttestationType(attestationTypeName); - }else { + List attestationTypeList = Arrays.asList(dummyInventoryInfoEO.getAttestationType().split(",")); + StringBuilder attestationTypeBuilder = new StringBuilder(); + for (String midAttestationType : attestationTypeList) { + String dutyTerritoryName = attestationType.stream().filter(e -> e.getItemValue().equals(midAttestationType)).map(f -> f.getItemText()).collect(Collectors.joining(",")); + attestationTypeBuilder.append(dutyTerritoryName).append(","); + } + dummyInventoryInfoEO.setAttestationType(attestationTypeBuilder.substring(0, attestationTypeBuilder.toString().length() - 1)); + } + else { dummyInventoryInfoEO.setAttestationType("空"); } + //认证级别 if (StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())) { List attestationRank = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getValue()); @@ -652,6 +660,218 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl records) { + Set technologyTerritorySet = new HashSet<>(); + for (DummyInventoryInfoEO dummyInventoryInfoEO : records) { + //子标题 + if (StringUtils.isBlank(dummyInventoryInfoEO.getSubtitle())) { + dummyInventoryInfoEO.setSubtitle("null"); + } + //WVTA ID + if (StringUtils.isBlank(dummyInventoryInfoEO.getWvtaId())) { + dummyInventoryInfoEO.setWvtaId("null"); + } + //备注 + if (StringUtils.isBlank(dummyInventoryInfoEO.getRemark())) { + dummyInventoryInfoEO.setRemark("null"); + } + //适用增补件 + if (StringUtils.isBlank(dummyInventoryInfoEO.getApplicableSupplement())) { + dummyInventoryInfoEO.setApplicableSupplement("null"); + } + //技术领域 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())) { + List list = Arrays.asList(dummyInventoryInfoEO.getTechnologyTerritory().split(",")); + technologyTerritorySet.addAll(list); + } + //树形结构数据字典(技术领域) + List categoryList = new ArrayList<>(); + if (technologyTerritorySet.size() != 0) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysCategory::getId, technologyTerritorySet); + categoryList = sysCategoryService.list(wrapper); + } + //技术领域 + if (categoryList.size() != 0 && StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())) { + List technologyTerritoryList = Arrays.asList(dummyInventoryInfoEO.getTechnologyTerritory().split(",")); + StringBuilder sb = new StringBuilder(); + for (String technologyTerritory : technologyTerritoryList) { + List collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList()); + if (collect.size() != 0) { + sb.append(collect.get(0).getEnName() + ","); + } + } + String technologyTerritoryName = null; + if (StringUtils.isNotBlank(sb)) { + technologyTerritoryName = sb.substring(0, sb.length() - 1); + } + dummyInventoryInfoEO.setTechnologyTerritoryName(technologyTerritoryName); + }else{ + dummyInventoryInfoEO.setTechnologyTerritoryName("null"); + } + + //适用范围 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())) { + List shi4Yong4Fan4Wei2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getValue()); + List shi4Yong4Fan4Wei2List = Arrays.asList(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2().split(",")); + StringBuilder shi4Yong4Fan4Wei2Builder = new StringBuilder(); + for (String midshi4Yong4Fan4Wei2 : shi4Yong4Fan4Wei2List) { + String shi4Yong4Fan4Wei2EnName = shi4Yong4Fan4Wei2.stream().filter(e -> e.getItemValue().equals(midshi4Yong4Fan4Wei2)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + shi4Yong4Fan4Wei2Builder.append(shi4Yong4Fan4Wei2EnName).append(","); + } + dummyInventoryInfoEO.setShi4Yong4Fan4Wei2(shi4Yong4Fan4Wei2Builder.substring(0, shi4Yong4Fan4Wei2Builder.toString().length() - 1)); + }else{ + dummyInventoryInfoEO.setShi4Yong4Fan4Wei2("null"); + } + //适用地区 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())) { + List region = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.REGION.getValue()); + List regionList = Arrays.asList(dummyInventoryInfoEO.getRegion().split(",")); + StringBuilder regionBuilder = new StringBuilder(); + for (String midRegion : regionList) { + String regionEnName = region.stream().filter(e -> e.getItemValue().equals(midRegion)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + regionBuilder.append(regionEnName).append(","); + } + dummyInventoryInfoEO.setRegion(regionBuilder.substring(0, regionBuilder.toString().length() - 1)); + }else { + dummyInventoryInfoEO.setRegion("null"); + } + //责任领域 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())) { + List dutyTerritory = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getValue()); + List dutyTerritoryList = Arrays.asList(dummyInventoryInfoEO.getDutyTerritory().split(",")); + StringBuilder dutyTerritoryBuilder = new StringBuilder(); + for (String midDutyTerritory : dutyTerritoryList) { + String dutyTerritoryEnName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dutyTerritoryBuilder.append(dutyTerritoryEnName).append(","); + } + dummyInventoryInfoEO.setDutyTerritory(dutyTerritoryBuilder.substring(0, dutyTerritoryBuilder.toString().length() - 1)); + } + else { + dummyInventoryInfoEO.setDutyTerritory("null"); + } + //实施类别 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())) { + List implementType = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getValue()); + String implementTypeEnName = implementType.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getImplementType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setImplementType(implementTypeEnName); + }else { + dummyInventoryInfoEO.setImplementType("null"); + } + //认证类型 + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())) { + List attestationType = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getValue()); + List attestationTypeList = Arrays.asList(dummyInventoryInfoEO.getAttestationType().split(",")); + StringBuilder attestationTypeBuilder = new StringBuilder(); + for (String midDutyTerritory : attestationTypeList) { + String attestationTypeName = attestationType.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + attestationTypeBuilder.append(attestationTypeName).append(","); + } + dummyInventoryInfoEO.setAttestationType(attestationTypeBuilder.substring(0, attestationTypeBuilder.toString().length() - 1)); + + }else { + dummyInventoryInfoEO.setAttestationType("null"); + } + //认证级别 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())) { + List attestationRank = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getValue()); + String attestationRankEnName = attestationRank.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getAttestationRank())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setAttestationRank(attestationRankEnName); + }else { + dummyInventoryInfoEO.setAttestationRank("null"); + } + //新车型实施日期 + if (dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); + dummyInventoryInfoEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1String(dateString); + }else { + dummyInventoryInfoEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1String("null"); + } + //在产车实施日期 + if (dummyInventoryInfoEO.getImplementTime() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(dummyInventoryInfoEO.getImplementTime()); + dummyInventoryInfoEO.setImplementTimeString(dateString); + }else { + dummyInventoryInfoEO.setImplementTimeString("null"); + } + + //交付物类型 + List deliverableTemplate = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.DELIVERABLE_TEMPLATE.getValue()); + //设计符合性确认-交付物类型 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDeliverableType())) { + String designDeliverableTypeEnName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDeliverableType())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setDesignDeliverableType(designDeliverableTypeEnName); + }else { + dummyInventoryInfoEO.setDesignDeliverableType("null"); + } + //prehomo确认-交付物类型 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDeliverableType())) { + String prehomoDeliverableTypeEnName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDeliverableType())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setPrehomoDeliverableType(prehomoDeliverableTypeEnName); + }else { + dummyInventoryInfoEO.setPrehomoDeliverableType("null"); + } + //验证符合性确认-交付物类型 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDeliverableType())) { + String verifyDeliverableTypeEnName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDeliverableType())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setVerifyDeliverableType(verifyDeliverableTypeEnName); + }else { + dummyInventoryInfoEO.setVerifyDeliverableType("null"); + } + + //发起人 + List fa1_qi3_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.FA1_QI3_REN2.getValue()); + //设计符合性确认-发起人 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignInitiator())) { + String designInitiatorEnName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignInitiator())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setDesignInitiator(designInitiatorEnName); + }else { + dummyInventoryInfoEO.setDesignInitiator("null"); + } + //prehomo确认-发起人 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoInitiator())) { + String prehomoInitiatorEnName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoInitiator())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setPrehomoInitiator(prehomoInitiatorEnName); + }else { + dummyInventoryInfoEO.setPrehomoInitiator("null"); + } + //验证符合性确认-发起人 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyInitiator())) { + String verifyInitiatorEnName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyInitiator())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setVerifyInitiator(verifyInitiatorEnName); + }else { + dummyInventoryInfoEO.setVerifyInitiator("null"); + } + + //责任人 + List ze2_ren4_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.ZE2_REN2_REN2.getValue()); + //设计符合性确认-责任人 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDuty())) { + String designDutyEnName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDuty())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setDesignDuty(designDutyEnName); + }else { + dummyInventoryInfoEO.setDesignDuty("null"); + } + //prehomo确认-责任人 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDuty())) { + String prehomoDutyEnName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDuty())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setPrehomoDuty(prehomoDutyEnName); + }else { + dummyInventoryInfoEO.setPrehomoDuty("null"); + } + //验证符合性确认-责任人 + if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDuty())) { + String verifyDutyEnName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDuty())).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dummyInventoryInfoEO.setVerifyDuty(verifyDutyEnName); + }else { + dummyInventoryInfoEO.setVerifyDuty("null"); + } + + } + } //发送消息 private void sendMsg(Map baseDiff, String idTemp,List> infoDiffList, String addSerialNumber,String deleteSerialNumber,String state,String cut) { @@ -701,7 +921,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl nameList = Arrays.asList(baseDiff.get("name").split(",")); @@ -731,23 +951,34 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl infoDiff : infoDiffList) { if (infoDiff.size() > 1) { - int infoDiffRow = 1; contentInfo += row + ". The Number " + infoDiff.get("serialNumber") + " has been updated as follows : " + "\r\n"; + contentInfo = setInfoDiffListContent(contentInfo,infoDiffList,contentLog); + } + } + } + return contentInfo; + } + + public String setInfoDiffListContent(String contentInfo, List> infoDiffList,String contentLog){ + //设置维护清单的修改消息 + if(CollectionUtils.isNotEmpty(infoDiffList)) { + for (Map infoDiff : infoDiffList) { + if (infoDiff.size() > 1) { //标题 if (StringUtils.isNotBlank(infoDiff.get("title"))) { List list = Arrays.asList(infoDiff.get("title").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); if (StringUtils.isBlank(contentLog)) { - contentInfo += "(" + infoDiffRow + "). Title has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n"; - infoDiffRow++; + contentInfo += "'"+DummyInventoryBaseFieldEnum.TITLE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + ","; + }else{ - contentLog += DummyInventoryBaseFieldEnum.SUBTITLE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+DummyInventoryBaseFieldEnum.TITLE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + } } //子标题 @@ -756,10 +987,10 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("designDeliverableType").split(",")); String infoDiffOld = list.get(0); - String infoDiffNew = list.get(1); + String infoDiffNew = "list.get(1)"; if (StringUtils.isBlank(contentLog)) { - contentInfo += "(" + infoDiffRow + "). Design deliverable type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n"; - infoDiffRow++; + contentInfo += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOld + " to " + infoDiffNew + ","; + } else{ - contentLog += DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+DummyInventoryBaseFieldEnum.DESIGN_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; } } //设计符合性确认-交付物模板 @@ -934,10 +1165,10 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl getPageInfo(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) { @@ -148,8 +154,8 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImple.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"向清单中添加了标准“"+serialNumber+"”"; - String enContentLog = username+" added the standard “"+serialNumber+"” to the list."; + String contentLog = username+"向清单中添加了“"+serialNumber+"”"; + String enContentLog = username+" added “"+serialNumber+"” to the list."; dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); } @@ -165,33 +171,45 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl infoEOList = new ArrayList<>(); infoEOList.add(dummyInventoryInfoEO); + List infoEOListCopy = new ArrayList<>(); + infoEOListCopy.add(dummyInventoryInfoEOCopy); + //查询数据库里原来的数据 QueryWrapper queryWrapper = new QueryWrapper<>(); List dataList = list(queryWrapper.eq("id", dummyInventoryInfoEO.getId())); + List dataListCopy = DeepCopyListUtil.depCopy(dataList); saveOrUpdate(dummyInventoryInfoEO); - //翻译 + //翻译-中文 dummyInventoryBaseEOService.disposeData(infoEOList); dummyInventoryBaseEOService.disposeData(dataList); + //翻译-英文 + dummyInventoryBaseEOService.disposeDataToEn(infoEOListCopy); + dummyInventoryBaseEOService.disposeDataToEn(dataListCopy); + //比对不同字段 Map infoDiff = ListDiff.compareObject(dataList.get(0),dummyInventoryInfoEO); + Map infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),dummyInventoryInfoEOCopy); //设置更新log List> infoDiffList = new ArrayList<>(); infoDiffList.add(infoDiff); - contentLog = dummyInventoryBaseEOService.setContentInfo(null,null,infoDiffList,null,null,contentLog); - enContentLog=contentLog.replace("由"," changed from ") - .replace("改为"," to "); + List> infoDiffListEn = new ArrayList<>(); + infoDiffListEn.add(infoDiffEn); + + contentLog = dummyInventoryBaseEOService.setInfoDiffListContent(null,infoDiffList,contentLog); + enContentLog=dummyInventoryBaseEOService.setInfoDiffListContent(enContentLog,infoDiffListEn,null); + dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); } @@ -240,8 +258,8 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImple.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"删除了清单中的“"+serialNumber+"”标准"; - String enContentLog = username+" deleted the “"+serialNumber+"” standard from the list"; + String contentLog = username+"删除了清单中的“"+serialNumber+"”"; + String enContentLog = username+" deleted “"+serialNumber+"” from the list"; dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); } @@ -360,135 +378,115 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl idList = Arrays.asList(dummyInventoryInfoEO.getIds().split(",")); -// QueryWrapper queryWrapper = new QueryWrapper<>(); -// List infoList = list(queryWrapper.in("id", idList)); -// String projectId = infoList.get(0).getDummyInventoryBaseId(); - dummyInventoryBaseEOService.disposeData(infoList); + List infoListCopy = DeepCopyListUtil.depCopy(infoList); - //翻译传入的数据 - List inputList = new ArrayList<>(); - inputList.add(dummyInventoryInfoEO); - dummyInventoryBaseEOService.disposeData(inputList); - DummyInventoryInfoEO inputInfoEO = inputList.get(0); + //根据id查询数据库中完整信息,翻译 + dummyInventoryBaseEOService.disposeData(infoList); + dummyInventoryBaseEOService.disposeDataToEn(infoListCopy); - for (String id : idList) { - DummyInventoryInfoEO info = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); - contentLogBuilder.append(info.getSerialNumber() + ":"); - enContentLogBuilder.append(info.getSerialNumber() + ":"); - DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); - dummyInventoryInfoEOTemp.setId(id); - //实施类别 implementType - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())) { - if (StringUtils.isBlank(info.getImplementType())){ - info.setImplementType("空"); + //翻译传入的数据 + List inputList = new ArrayList<>(); + inputList.add(dummyInventoryInfoEO); + dummyInventoryBaseEOService.disposeData(inputList); + DummyInventoryInfoEO inputInfoEO = inputList.get(0); + + for (String id : idList) { + DummyInventoryInfoEO info = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); + DummyInventoryInfoEO infoCopy = infoListCopy.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); + contentLogBuilder.append(info.getSerialNumber() + ":"); + enContentLogBuilder.append(infoCopy.getSerialNumber() + ":"); + DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); + dummyInventoryInfoEOTemp.setId(id); + + //实施类别 implementType + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())) { + if (!info.getImplementType().equals(inputInfoEO.getImplementType()) && !inputInfoEO.getImplementType().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType()); + setUpdateEnContentLog(enContentLogBuilder,DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getEnName(), infoCopy.getImplementType(), inputInfoEO.getImplementType()); + } } - if (!info.getImplementType().equals(inputInfoEO.getImplementType())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType()); - setUpdateEnContentLog(enContentLogBuilder,DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getEnName(), info.getImplementType(), inputInfoEO.getImplementType()); + //认证类型 attestationType + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())) { + if (!info.getAttestationType().equals(inputInfoEO.getAttestationType()) && !inputInfoEO.getAttestationType().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getEnName(), infoCopy.getAttestationType(), inputInfoEO.getAttestationType()); + } } - } - //认证类型 attestationType - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())) { - if (StringUtils.isBlank(info.getAttestationType())){ - info.setAttestationType("空"); + //认证级别 attestationRank + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())) { + if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank()) && !inputInfoEO.getAttestationRank().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getEnName(), infoCopy.getAttestationRank(), inputInfoEO.getAttestationRank()); + } } - if (!info.getAttestationType().equals(inputInfoEO.getAttestationType())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getEnName(), info.getAttestationType(), inputInfoEO.getAttestationType()); + //责任领域 dutyTerritory + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())) { + if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory()) && !inputInfoEO.getDutyTerritory().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getEnName(), infoCopy.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + } } - } - //认证级别 attestationRank - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())) { - if (StringUtils.isBlank(info.getAttestationRank())){ - info.setAttestationRank("空"); + //适用范围 shi4Yong4Fan4Wei2 + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())){ + if (!info.getShi4Yong4Fan4Wei2().equals(inputInfoEO.getShi4Yong4Fan4Wei2()) && !inputInfoEO.getShi4Yong4Fan4Wei2().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName(),info.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getEnName(),infoCopy.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); + } } - if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank())){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getEnName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); + //技术领域 technologyTerritory + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){ + if (!info.getTechnologyTerritoryName().equals(inputInfoEO.getTechnologyTerritoryName()) && !inputInfoEO.getTechnologyTerritoryName().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName(),info.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getEnName(),infoCopy.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); + } } - } - //责任领域 dutyTerritory - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())) { - if (StringUtils.isBlank(info.getDutyTerritory())){ - info.setDutyTerritory("空"); + //适用地区 region + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())){ + if (!info.getRegion().equals(inputInfoEO.getRegion()) && !inputInfoEO.getRegion().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getEnName(),infoCopy.getRegion(),inputInfoEO.getRegion()); + } } - if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory())){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getEnName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + //新车实施日期 + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ + if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"空",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + }else { + if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) { + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + } + } } - } - //适用范围 shi4Yong4Fan4Wei2 - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())){ - if (StringUtils.isBlank(info.getShi4Yong4Fan4Wei2())){ - info.setShi4Yong4Fan4Wei2("空"); - } - if (!info.getShi4Yong4Fan4Wei2().equals(inputInfoEO.getShi4Yong4Fan4Wei2())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName(),info.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getEnName(),info.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); - } - } - //技术领域 technologyTerritory - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){ - if (StringUtils.isBlank(info.getTechnologyTerritoryName())){ - info.setTechnologyTerritoryName("空"); - } - if (!info.getTechnologyTerritoryName().equals(inputInfoEO.getTechnologyTerritoryName())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName(),info.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getEnName(),info.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); - } - } - //适用地区 region - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())){ - if (StringUtils.isBlank(info.getRegion())){ - info.setRegion("空"); - } - if (!info.getRegion().equals(inputInfoEO.getRegion())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getEnName(),info.getRegion(),inputInfoEO.getRegion()); - } - } - //新车实施日期 - if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ - if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"空",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); - }else { - if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + //在产车实施日期 + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){ + if (info.getImplementTime() == null){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(),"空",inputInfoEO.getImplementTimeString()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString()); + }else { + if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) { + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); + } } } } - //在产车实施日期 - if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){ - if (info.getImplementTime() == null){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(),"空",inputInfoEO.getImplementTimeString()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString()); - }else { - if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); - } - } - } - } - contentLog = contentLogBuilder.substring(0, contentLogBuilder.length() - 1); - contentLog += "”"; - enContentLog = enContentLogBuilder.substring(0, enContentLogBuilder.length() - 1).replace("空","null"); - enContentLog += "”"; - dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); - dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); + contentLog = contentLogBuilder.substring(0, contentLogBuilder.length() - 1); + contentLog += "”"; + enContentLog = enContentLogBuilder.substring(0, enContentLogBuilder.length() - 1); + enContentLog += "”"; + dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); } } public StringBuilder setUpdateContentLog(StringBuilder contentLogBuilder,String fieldName,String oldValue,String newValue){ @@ -656,21 +654,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl dummyInventoryInfoEOList) { - Set technologyTerritorySet = new HashSet<>(); - Set correspondingStandardSet = new HashSet<>(); + List deliverableList = new ArrayList<>(); if(dummyInventoryInfoEOList.size() != 0){ for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) { - //技术领域 - if(StringUtils.isNotBlank(record.getTechnologyTerritory())){ - List list = Arrays.asList(record.getTechnologyTerritory().split(",")); - technologyTerritorySet.addAll(list); - } - //对应标准 -// if(StringUtils.isNotBlank(record.getCorrespondingStandard())){ -// List list = Arrays.asList(record.getCorrespondingStandard().split(",")); -// correspondingStandardSet.addAll(list); -// } //设计符合性确认交付物模板 if(StringUtils.isNotBlank(record.getDesignDeliverableTemplate())){ deliverableList.addAll(Arrays.asList(record.getDesignDeliverableTemplate().split(","))); @@ -685,17 +672,6 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl bussDocumentLibraryEOList = new ArrayList<>(); -// if(correspondingStandardSet.size() != 0){ -// //对应标准 iBussDocumentLibraryEOService -// LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); -// wrapperTemp.in(BussDocumentLibraryEO::getId,correspondingStandardSet); -// bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapperTemp); -// } - - - - //文件 List fileInfos = new ArrayList<>(); if(deliverableList.size() != 0){ @@ -703,52 +679,35 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList = new ArrayList<>(); - if(technologyTerritorySet.size() != 0){ - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(SysCategory::getId, technologyTerritorySet); - categoryList = sysCategoryService.list(wrapper); - } + List categoryList = sysCategoryService.list(); for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) { - //对应标准 -// if(bussDocumentLibraryEOList.size() != 0 && StringUtils.isNotBlank(record.getCorrespondingStandard())){ -// StringBuilder stringBuilder = new StringBuilder(); -// for (String bussDocumentLibraryId : record.getCorrespondingStandard().split(",")) { -// List bussDocumentLibraryEOS = bussDocumentLibraryEOList.stream() -// .filter(e -> e.getId().equals(bussDocumentLibraryId)).collect(Collectors.toList()); -// if(bussDocumentLibraryEOS.size() != 0){ -// stringBuilder.append(bussDocumentLibraryEOS.get(0).getSerialNumber()+","); -// }else{ -// //手动输入的情况 -// stringBuilder.append(bussDocumentLibraryId + ","); -// } -// } -// if(StringUtils.isNotBlank(stringBuilder)){ -// String substring = stringBuilder.substring(0, stringBuilder.length() - 1); -// record.setCorrespondingStandardName(substring); -// } -// } //技术领域 if (categoryList.size() != 0 && StringUtils.isNotBlank(record.getTechnologyTerritory())) { List technologyTerritoryList = Arrays.asList(record.getTechnologyTerritory().split(",")); - StringBuilder sb = new StringBuilder(); - for (String technologyTerritory : technologyTerritoryList) { - List collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList()); - if(collect.size() != 0){ - if (CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())) { - sb.append(collect.get(0).getName() + ","); - } else { - sb.append(collect.get(0).getEnName()); - } - } - } - String technologyTerritoryName = ""; - if (StringUtils.isNotBlank(sb)) { - technologyTerritoryName = sb.substring(0, sb.length() - 1); - } + String technologyTerritoryName = getTreeName(dummyInventoryInfoEO, categoryList, technologyTerritoryList); record.setTechnologyTerritoryName(technologyTerritoryName); } + //设计交付物类型 + if(StringUtils.isNotBlank(record.getDesignDeliverableType())){ + List designDeliverableTypeList = Arrays.asList(record.getDesignDeliverableType().split(",")); + String name = getTreeName(dummyInventoryInfoEO, categoryList, designDeliverableTypeList); + record.setDesignDeliverableTypeName(name); + } + + //pre交付物类型 + if(StringUtils.isNotBlank(record.getPrehomoDeliverableType())){ + List prehomoDeliverableTypeList = Arrays.asList(record.getPrehomoDeliverableType().split(",")); + String name = getTreeName(dummyInventoryInfoEO, categoryList, prehomoDeliverableTypeList); + record.setPrehomoDeliverableTypeName(name); + } + + //验证交付物类型 + if(StringUtils.isNotBlank(record.getVerifyDeliverableType())){ + List verifyDeliverableTypeList = Arrays.asList(record.getVerifyDeliverableType().split(",")); + String name = getTreeName(dummyInventoryInfoEO, categoryList, verifyDeliverableTypeList); + record.setVerifyDeliverableTypeName(name); + } //交付物类型模板 if(fileInfos.size() != 0){ @@ -776,6 +735,25 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList, List technologyTerritoryList) { + StringBuilder sb = new StringBuilder(); + for (String technologyTerritory : technologyTerritoryList) { + List collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if (CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())) { + sb.append(collect.get(0).getName() + ","); + } else { + sb.append(collect.get(0).getEnName()); + } + } + } + String technologyTerritoryName = ""; + if (StringUtils.isNotBlank(sb)) { + technologyTerritoryName = sb.substring(0, sb.length() - 1); + } + return technologyTerritoryName; + } + private String getFileName(DummyInventoryInfoEO dummyInventoryInfoEO,List fileInfos,String deliverableTemplate){ StringBuilder sb = new StringBuilder(); for (String s : deliverableTemplate.split(",")) { @@ -1039,6 +1017,14 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl collect = categoryList.stream().filter(e -> e.getSysDictId().equals(dictId)).collect(Collectors.toList()); + List treeNameList = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEOTemp.getCut())){ + treeNameList = collect.stream().map(SysCategory::getName).collect(Collectors.toList()); + }else{ + treeNameList = collect.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + } int i = 3; List msgList = new ArrayList<>(); String value = ""; @@ -1141,7 +1127,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList, DummyInventoryInfoEO dummyInventoryInfoEOTemp, List treeNameList, String value) { + StringBuilder sb = new StringBuilder(); + for (String valueTemp : value.split(",")) { + if (treeNameList.contains(valueTemp)) { + List sysCategoryList = new ArrayList<>(); + if (CutEnum.CN.getValue().equals(dummyInventoryInfoEOTemp.getCut())) { + sysCategoryList = categoryList.stream().filter(e -> e.getName().equals(valueTemp)).collect(Collectors.toList()); + } else { + sysCategoryList = categoryList.stream().filter(e -> e.getEnName().equals(valueTemp)).collect(Collectors.toList()); + } + if (sysCategoryList.size() != 0) { + sb.append(sysCategoryList.get(0).getId() + ","); + } + } + } + if (StringUtils.isNotBlank(sb)) { + String substring = sb.substring(0, sb.length() - 1); + return substring; + } + return null; + } + private void verifySerialNumber(List dataList,DummyInventoryInfoEO dummyInventoryInfoEOTemp) { //文档库数据 List serialNumberList = dataList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); @@ -1408,6 +1419,49 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList, List nameList,DummyInventoryInfoEO dummyInventoryInfoEO, + String errorMsg, String value,List msgList, + String nameCn,String nameEn,String dictCode) { + if (StringUtils.isNotBlank(value)) { + StringBuilder sb = new StringBuilder(); + for (String s : value.split(",")) { + if(!nameList.contains(s)){ + sb.append(s+","); + } + } + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + if (CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())) { + errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, "; + } else { + errorMsg += nameEn + " " + substring + " does not match the data dictionary, "; + } + msgList.add(errorMsg); + }else{ + StringBuilder sbTemp = new StringBuilder(); + for (String s : value.split(",")) { + List collect = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + collect = categoryList.stream().filter(e -> s.equals(e.getName())).collect(Collectors.toList()); + if(collect.size() != 0){ + sbTemp.append(collect.get(0).getName()+","); + } + }else{ + collect = categoryList.stream().filter(e -> s.equals(e.getEnName())).collect(Collectors.toList()); + if(collect.size() != 0){ + sbTemp.append(collect.get(0).getEnName()+","); + } + } + } + if(StringUtils.isNotBlank(sbTemp)){ + String substring = sbTemp.substring(0, sbTemp.length() - 1); + return substring; + } + } + } + return null; + } + private String pullSingle(List dictItemList, DummyInventoryInfoEO dummyInventoryInfoEO, String errorMsg, String value,List msgList, String nameCn,String nameEn,String dictCode) { @@ -1841,23 +1895,36 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl collect = sysCategoryList.stream() - .filter(e -> s.equals(e.getId())).collect(Collectors.toList()); - if(collect.size() != 0){ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - sb.append(collect.get(0).getName()+","); - }else{ - sb.append(collect.get(0).getEnName()+","); - } - } - } + StringBuilder sb = getStringBuilder(dummyInventoryInfoEO, sysCategoryList, technologyTerritory); if(StringUtils.isNotBlank(sb)){ String substring = sb.substring(0, sb.length() - 1); inventoryInfoEO.setTechnologyTerritory(substring); } } + //设计交付物类型 inventoryInfoEO + if(StringUtils.isNotBlank(inventoryInfoEO.getDesignDeliverableType())){ + StringBuilder sb = getStringBuilder(dummyInventoryInfoEO, sysCategoryList, inventoryInfoEO.getDesignDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + inventoryInfoEO.setDesignDeliverableType(substring); + } + } + //pre交付物类型 + if(StringUtils.isNotBlank(inventoryInfoEO.getPrehomoDeliverableType())){ + StringBuilder sb = getStringBuilder(dummyInventoryInfoEO, sysCategoryList, inventoryInfoEO.getPrehomoDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + inventoryInfoEO.setPrehomoDeliverableType(substring); + } + } + //验证交付物类型 + if(StringUtils.isNotBlank(inventoryInfoEO.getVerifyDeliverableType())){ + StringBuilder sb = getStringBuilder(dummyInventoryInfoEO, sysCategoryList, inventoryInfoEO.getVerifyDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + inventoryInfoEO.setVerifyDeliverableType(substring); + } + } //设计交付物模板 if(StringUtils.isNotBlank(designDeliverableTemplate)){ String designDeliverableTemplateName = template(fileInfos, designDeliverableTemplate); @@ -1877,6 +1944,23 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl sysCategoryList, String technologyTerritory) { + StringBuilder sb = new StringBuilder(); + for (String s : technologyTerritory.split(",")) { + List collect = sysCategoryList.stream() + .filter(e -> s.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + sb.append(collect.get(0).getName()+","); + }else{ + sb.append(collect.get(0).getEnName()+","); + } + } + } + return sb; + } + private String getPerson(DummyInventoryInfoEO dummyInventoryInfoEO, List sysDictItemList, String designInitiator) { if(StringUtils.isNotBlank(designInitiator)){ StringBuilder sb = new StringBuilder(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/DeepCopyListUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/DeepCopyListUtil.java new file mode 100644 index 000000000..77fe555cc --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/DeepCopyListUtil.java @@ -0,0 +1,29 @@ +package com.jero.modules.dummy.util; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.List; + +/** + * 深拷贝List + */ +public class DeepCopyListUtil { + public static List depCopy(List srcList) { + ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); + try { + ObjectOutputStream out = new ObjectOutputStream(byteOut); + out.writeObject(srcList); + + ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); + ObjectInputStream inStream = new ObjectInputStream(byteIn); + List destList = (List) inStream.readObject(); + return destList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java index efd9aa320..08ed0849e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java @@ -27,7 +27,9 @@ public class ListDiff { && !f.getName().contains("update") && !f.getName().equals("id") && !f.getName().equals("technologyTerritory") &&!f.getName().equals("xin1Che1Xing2Shi2Shi1Ri4Qi1") && !f.getName().equals("implementTime") && !f.getName().equals("xin1Che1Xing2Shi2Shi1Ri4Qi1") - && !f.getName().equals("implementTime") + && !f.getName().equals("implementTime") && !f.getName().equals("inventoryAffirmStatusName") + && !f.getName().equals("taskAffirmStatusName") && !f.getName().equals("roleCode") + && !f.getName().equals("roleName") ){ StringBuilder v1String= new StringBuilder(String.valueOf(v1)); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryLogEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryLogEOController.java index 0915efcd9..28fc4cd20 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryLogEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryLogEOController.java @@ -49,12 +49,12 @@ public class ProjectLawsInventoryLogEOController extends JeroController queryPageList(ProjectLawsInventoryLogEO projectLawsInventoryLogEO, + public Result queryPageList(ProjectLawsInventoryLogEO projectLawsInventoryLogEO,String cut, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryLogEO, req.getParameterMap()); - queryWrapper.orderByDesc("create_time"); + queryWrapper.orderByDesc("create_time").eq("is_en_log",cut); Page page = new Page(pageNo, pageSize); IPage pageList = projectLawsInventoryLogEOService.page(page, queryWrapper); return Result.OK(pageList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java index 60ff942cd..ac837c378 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java @@ -200,6 +200,8 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "设计符合性确认-交付物类型") @Dict(dicCode ="deliverable_template") private String designDeliverableType; + @TableField(exist = false) + private String designDeliverableTypeName; /**设计符合性确认-交付物模板*/ @ApiModelProperty(value = "设计符合性确认-交付物模板") @@ -259,6 +261,8 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "prehomo确认-1") @Dict(dicCode ="deliverable_template") private String prehomoDeliverableType; + @TableField(exist = false) + private String prehomoDeliverableTypeName; /**prehomo确认-交付物模板*/ @ApiModelProperty(value = "prehomo确认-交付物模板") @@ -318,6 +322,8 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "验证符合性确认-交付物类型") @Dict(dicCode ="deliverable_template") private String verifyDeliverableType; + @TableField(exist = false) + private String verifyDeliverableTypeName; /**验证符合性确认-交付物模板*/ @ApiModelProperty(value = "验证符合性确认-交付物模板") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectInventoryFieldEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectInventoryFieldEnum.java index 11c07375b..5dba798d8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectInventoryFieldEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectInventoryFieldEnum.java @@ -1,50 +1,53 @@ package com.jero.modules.project.enums; public enum ProjectInventoryFieldEnum { - SUBTITLE("子标题","subtitle"), - WVTA_ID("WVTA ID","wvta_id"), - TECHNOLOGY_TERRITORY("技术领域","technology_territory"), - DUTY_TERRITORY("责任领域","duty_territory"), - REGULATION_OWNER_NAME("法规工程师名称","regulation_owner_name"), - HOMOLOGATION_ENGINEER_NAME("认证工程师名称","homologation_engineer_name"), - ENGINEERING_INTERFACE_PERSON_NAME("工程接口人名称","engineering_interface_personName"), - IMPLEMENT_TYPE("实施类别","implement_type"), - ATTESTATION_TYPE("认证类型","attestation_type"), - ATTESTATION_RANK("认证级别","attestation_rank"), - XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1("新车型实施日期","xin1_che1_xing2_shi2_shi1_ri4_qi1"), - IMPLEMENT_TIME("在产车实施日期","implement_time"), - REGION("适用地区","region"), - REMARK("备注","remark"), - DESIGN_DUE_DATE("设计符合性确认-截止时间","designDueDate"), - PREHOMO_DUE_DATE("Pre-Homo确认-截止时间","prehomoDueDate"), - VERIFY_DUE_DATE("验证符合性确认-截止时间","verifyDueDate"), + SUBTITLE("子标题", "subtitle","Sub-Title"), + WVTA_ID("WVTA ID", "wvta_id","WVTA ID"), + TECHNOLOGY_TERRITORY("技术领域", "technology_territory","Technical Field"), + DUTY_TERRITORY("责任领域", "duty_territory","Responsible Field"), + REGULATION_OWNER_NAME("法规工程师名称","regulation_owner_name","Regulation Engineer"), + HOMOLOGATION_ENGINEER_NAME("认证工程师名称","homologation_engineer_name","Homologation Engineer"), + ENGINEERING_INTERFACE_PERSON_NAME("工程接口人名称","engineering_interface_personName","Engineering Interface"), + IMPLEMENT_TYPE("实施类别", "implement_type","Usage"), + ATTESTATION_TYPE("认证类型", "attestation_type","Certification Type"), + ATTESTATION_RANK("认证级别", "attestation_rank","Certification Level"), + XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1("新车型实施日期", "xin1_che1_xing2_shi2_shi1_ri4_qi1","New Type Execute Date"), + IMPLEMENT_TIME("在产车实施日期", "implement_time","New Vehicle Execute Date"), + REGION("适用地区", "region","Area"), + REMARK("备注", "remark","Comments"), + DESIGN_DUE_DATE("设计符合性确认-截止时间","designDueDate","Cut-Off Time"), + PREHOMO_DUE_DATE("Pre-Homo确认-截止时间","prehomoDueDate","Cut-Off Time"), + VERIFY_DUE_DATE("验证符合性确认-截止时间","verifyDueDate","Cut-Off Time"), - DELIVERABLE_TEMPLATE("交付物类型","deliverable_template"), - FA1_QI3_REN2("发起人","fa1_qi3_ren2"), - ZE2_REN2_REN2("责任人","ze2_ren4_ren2"), + DELIVERABLE_TEMPLATE("交付物类型", "deliverable_template","Type of deliverables"), + FA1_QI3_REN2("发起人", "fa1_qi3_ren2","Initiator"), + ZE2_REN2_REN2("责任人", "ze2_ren4_ren2","Assignee"), - DESIGN_DELIVERABLE_TYPE("设计符合性确认-交付物类型","deliverable_template"), - DESIGN_DELIVERABLE_TEMPLATE("设计符合性确认-交付物模板","design_deliverable_template"), - DESIGN_INITIATOR("设计符合性确认-发起人","fa1_qi3_ren2"), - DESIGN_DUTY("设计符合性确认-责任人","ze2_ren4_ren2"), + DESIGN_DELIVERABLE_TYPE("设计符合性确认-交付物类型", "deliverable_template","Type of deliverables"), + DESIGN_DELIVERABLE_TEMPLATE("设计符合性确认-交付物模板", "design_deliverable_template","Deliverable template"), + DESIGN_INITIATOR("设计符合性确认-发起人", "fa1_qi3_ren2","Initiator"), + DESIGN_DUTY("设计符合性确认-责任人", "ze2_ren4_ren2","Assignee"), - PREHOMO_DELIVERABLE_TYPE("prehomo确认-交付物类型","deliverable_template"), - PREHOMO_DELIVERABLE_TEMPLATE("prehomo确认-交付物模板","prehomo_deliverable_template"), - PREHOMO_INITIATOR("prehomo确认-发起人","fa1_qi3_ren2"), - PREHOMO_DUTY("prehomo确认-责任人","ze2_ren4_ren2"), + PREHOMO_DELIVERABLE_TYPE("prehomo确认-交付物类型", "deliverable_template","Type of deliverables"), + PREHOMO_DELIVERABLE_TEMPLATE("prehomo确认-交付物模板", "prehomo_deliverable_template","Deliverable template"), + PREHOMO_INITIATOR("prehomo确认-发起人", "fa1_qi3_ren2","Initiator"), + PREHOMO_DUTY("prehomo确认-责任人", "ze2_ren4_ren2","Assignee"), + + VERIFY_DELIVERABLE_TYPE("验证符合性确认-交付物类型", "deliverable_template","Type of deliverables"), + VERIFY_DELIVERABLE_TEMPLATE("验证符合性确认-交付物模板", "verify_deliverable_template","Deliverable template"), + VERIFY_INITIATOR("验证符合性确认-发起人", "fa1_qi3_ren2","Initiator"), + VERIFY_DUTY("验证符合性确认-责任人", "ze2_ren4_ren2","Assignee"), - VERIFY_DELIVERABLE_TYPE("验证符合性确认-交付物类型","deliverable_template"), - VERIFY_DELIVERABLE_TEMPLATE("验证符合性确认-交付物模板","verify_deliverable_template"), - VERIFY_INITIATOR("验证符合性确认-发起人","fa1_qi3_ren2"), - VERIFY_DUTY("验证符合性确认-责任人","ze2_ren4_ren2"), ; String name; String value; + String enName; - ProjectInventoryFieldEnum(String name, String value) { + ProjectInventoryFieldEnum(String name, String value, String enName) { this.name = name; this.value = value; + this.enName = enName; } public String getName() { @@ -62,4 +65,12 @@ public enum ProjectInventoryFieldEnum { public void setValue(String value) { this.value = value; } -} + + public String getEnName() { + return enName; + } + + public void setEnName(String enName) { + this.enName = enName; + } +} \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 88dc8747e..bc0fbc85b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -1,14 +1,6 @@ package com.jero.modules.project.service.impl; import cn.hutool.core.util.ZipUtil; -//import com.jero.modules.project.util.WordUtil; -import cn.hutool.poi.word.DocUtil; -import com.itextpdf.text.*; -import com.itextpdf.text.Font; -import com.itextpdf.text.pdf.*; -import com.jero.modules.dummy.entity.DummyInventoryBaseEO; -import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; -import com.jero.modules.dummy.service.impl.DummyInventoryBaseEOServiceImpl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.utils.IOUtils; @@ -16,6 +8,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.itextpdf.text.Font; +import com.itextpdf.text.*; +import com.itextpdf.text.pdf.BaseFont; +import com.itextpdf.text.pdf.PdfPCell; +import com.itextpdf.text.pdf.PdfPTable; +import com.itextpdf.text.pdf.PdfWriter; import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; import com.jero.common.constant.WebsocketConst; @@ -27,8 +25,12 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.dummy.entity.DummyInventoryBaseEO; import com.jero.modules.dummy.entity.DummyInventoryInfoEO; +import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; import com.jero.modules.dummy.service.IDummyInventoryInfoEOService; +import com.jero.modules.dummy.service.impl.DummyInventoryBaseEOServiceImpl; +import com.jero.modules.dummy.util.DeepCopyListUtil; import com.jero.modules.dummy.util.ListDiff; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.message.websocket.WebSocket; @@ -47,6 +49,7 @@ import com.jero.modules.system.entity.SysAnnouncement; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.service.ISysAnnouncementService; @@ -58,12 +61,12 @@ import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; import com.jero.modules.wkflow.enums.FlowTypeEnum; import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl; import com.jero.modules.wkflow.service.IProcessHistoryEOService; -import com.jero.modules.wkflow.service.impl.ProcessHistoryEOServiceImpl; 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.ObjectUtils; +import org.apache.commons.lang3.SerializationUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; @@ -75,12 +78,8 @@ import org.docx4j.Docx4J; import org.docx4j.TraversalUtil; import org.docx4j.XmlUtils; import org.docx4j.finders.ClassFinder; -import org.docx4j.finders.RangeFinder; import org.docx4j.openpackaging.exceptions.Docx4JException; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; -import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart; -import org.docx4j.wml.Body; -import org.docx4j.wml.CTBookmark; import org.docx4j.wml.Tbl; import org.docx4j.wml.Tr; import org.jeecgframework.poi.excel.ExcelExportUtil; @@ -102,12 +101,14 @@ import java.io.*; import java.net.URLEncoder; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.*; import java.util.List; +import java.util.*; import java.util.stream.Collectors; import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl.copyFile; +//import com.jero.modules.project.util.WordUtil; + /** * @Description: 项目库-法规清单表 * @Author: jero-boot @@ -194,6 +195,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectTaskInventoryEOList = new ArrayList<>(); //法规清单所有的数据 LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); @@ -270,8 +273,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); String dummyInventoryBaseName = dummyInventoryBaseEOService.list(queryWrapper.eq("id", dummyInventoryBaseId)).get(0).getName();//name - String contentLog = username+"调取了\""+ dummyInventoryBaseName +"\"虚拟清单的标准内容"; - projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId); + String contentLog = username+"调取了"+ dummyInventoryBaseName +"虚拟清单的标准内容"; + String enContentLog = username+" called the standard content of"+ dummyInventoryBaseName +"virtual inventory."; + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue()); } }else if(dummyInventoryInfoEOList.size() == 0 && StringUtils.isBlank(projectLawsInventoryEO.getFlag())){ //flag为二次确认标识,flag为空时进行验证 @@ -336,12 +341,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImple.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"向清单中添加了标准\""+serialNumber+"\""; - projectLawsInventoryLogEOService.updateLog(contentLog, projectLawsInventoryEO.getProjectLibraryId()); + String contentLog = username+"向清单中添加了“"+serialNumber+"”"; + String enContentLog = username+" added “"+serialNumber+"” to the list."; + + projectLawsInventoryLogEOService.updateLog(contentLog, projectLawsInventoryEO.getProjectLibraryId(),CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(enContentLog, projectLawsInventoryEO.getProjectLibraryId(),CutEnum.EN.getValue()); } //项目任务清单数据初始化。 this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList); - } + } /** * 更新 @@ -350,35 +358,48 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl infoEOList = new ArrayList<>(); infoEOList.add(projectLawsInventoryEO); + List infoEOListCopy = new ArrayList<>(); + infoEOListCopy.add(projectLawsInventoryEOCopy); + //查询数据库里原来的数据 QueryWrapper queryWrapper = new QueryWrapper<>(); List dataList = list(queryWrapper.eq("id", projectLawsInventoryEO.getId())); + List dataListCopy = DeepCopyListUtil.depCopy(dataList); //保存 saveOrUpdate(projectLawsInventoryEO); - //翻译 + //翻译-中文 translateData(infoEOList); translateData(dataList); + //翻译-英文 + translateDataToEn(infoEOListCopy); + translateDataToEn(dataListCopy); + //比对不同字段 Map infoDiff = ListDiff.compareObject(dataList.get(0),projectLawsInventoryEO); + Map infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),projectLawsInventoryEOCopy); //设置更新log - contentLog = setContentLog(infoDiff,contentLog); - projectLawsInventoryLogEOService.updateLog(contentLog, projectLawsInventoryEO.getProjectLibraryId()); + setContentLog(infoDiff,contentLog,infoDiffEn,enContentLog,projectLawsInventoryEO.getProjectLibraryId()); + //验证用户是否是该法规上级 项目库的studio, 如果是,则同步更新流程 int roleCode = checkUserRole(projectLawsInventoryEO.getProjectLibraryId(), currentUser.getId(), ""); @@ -389,14 +410,14 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl taskInventoryQueryWrapper = new QueryWrapper<>(); taskInventoryQueryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId,projectLawsInventoryEO.getId()); @@ -482,7 +503,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); String serialNumber = list(queryWrapper.eq("id",id)).get(0).getSerialNumber(); - String contentLog = username+"删除了清单中的\""+serialNumber+"\"标准"; - projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId); + String contentLog = username+"删除了清单中的“"+serialNumber+"”"; + String enContentLog = username+" deleted “"+serialNumber+"” from the list"; + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.EN.getValue()); - removeById(id); + removeById(id); this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(Arrays.asList(id.split(","))); - } + } /** * 批量删除 @@ -512,7 +535,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl ids,String projectLibraryId,String cut) { + public void deleteByIds(List ids,String projectLibraryId,String cut) { LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); int isProjectRole = checkUserRole(projectLibraryId, currentUser.getId(),""); if(!ProjectRoleEnum.STUDIO_ENGINEER.getValue().equals(String.valueOf(isProjectRole))){ @@ -529,12 +552,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); List lawsList = list(queryWrapper.in("id", ids)); String serialNumber = lawsList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"删除了清单中的\""+serialNumber+"\"标准"; - projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId); - removeByIds(ids); + String contentLog = username+"删除了清单中的“"+serialNumber+"”"; + String enContentLog = username+" deleted “"+serialNumber+"” from the list"; + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.EN.getValue()); + + removeByIds(ids); this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(ids); - } + } /** * 通过id查询 @@ -547,13 +573,13 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryList(ProjectLawsInventoryEO projectLawsInventoryEO, HttpServletRequest req) { + public List queryList(ProjectLawsInventoryEO projectLawsInventoryEO, HttpServletRequest req) { QueryWrapper projectLawsInventoryEOQueryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO,req.getParameterMap()); projectLawsInventoryEOQueryWrapper.orderByDesc("create_time","serial_number"); String projectLibraryId = projectLawsInventoryEO.getProjectLibraryId(); @@ -577,7 +603,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl result = super.baseMapper.selectList(projectLawsInventoryEOQueryWrapper); dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); return result; - } + } /** * 数据处理 @@ -586,6 +612,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list,LoginUser currentUser,int isProjectRole,String cut){ if(CollectionUtils.isNotEmpty(list)){ + //树形结构数据字典(技术领域) + List categoryList = sysCategoryService.list(); List userIdList = new ArrayList<>(); List deliverableList = new ArrayList<>(); List correspondingStandardList = new ArrayList<>(); @@ -602,6 +630,28 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl designDeliverableTypeList = Arrays.asList(designDeliverableType.split(",")); + String name = getTreeName(cut, categoryList, designDeliverableTypeList); + projectLawsInventoryEO.setDesignDeliverableTypeName(name); + } + //pre交付物类型 + if(StringUtils.isNotBlank(prehomoDeliverableType)){ + List prehomoDeliverableTypeList = Arrays.asList(prehomoDeliverableType.split(",")); + String name = getTreeName(cut, categoryList, prehomoDeliverableTypeList); + projectLawsInventoryEO.setPrehomoDeliverableTypeName(name); + } + //验证交付物类型 + if(StringUtils.isNotBlank(verifyDeliverableType)){ + List verifyDeliverableTypeList = Arrays.asList(verifyDeliverableType.split(",")); + String name = getTreeName(cut, categoryList, verifyDeliverableTypeList); + projectLawsInventoryEO.setVerifyDeliverableTypeName(name); + } StringBuilder sb = new StringBuilder(); if(StringUtils.isNotBlank(projectLawsInventoryEO.getCorrespondingStandard()) && bussDocumentLibraryEOS.size() != 0){ for (String correspondingStandard : projectLawsInventoryEO.getCorrespondingStandard().split(",")) { @@ -827,6 +877,25 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl categoryList, List technologyTerritoryList) { + StringBuilder sb = new StringBuilder(); + for (String technologyTerritory : technologyTerritoryList) { + List collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if (CutEnum.CN.getValue().equals(cut)) { + sb.append(collect.get(0).getName() + ","); + } else { + sb.append(collect.get(0).getEnName()+ ","); + } + } + } + String technologyTerritoryName = ""; + if (StringUtils.isNotBlank(sb)) { + technologyTerritoryName = sb.substring(0, sb.length() - 1); + } + return technologyTerritoryName; + } + private String getFileName(ProjectLawsInventoryEO projectLawsInventoryEO, List fileInfos, String deliverableTemplate){ StringBuilder sb = new StringBuilder(); for (String s : deliverableTemplate.split(",")) { @@ -847,7 +916,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); @@ -877,7 +946,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectLibraryBaseQueryWrapper = new QueryWrapper<>(); projectLibraryBaseQueryWrapper.lambda().eq(ProjectLibraryBase::getId,projectLibraryId); @@ -1054,7 +1123,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl().success(result + "成功!"); + return new Result<>().success(result + "成功!"); } /** @@ -1247,7 +1316,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl().success("带入成功!"); } @@ -1475,27 +1547,71 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImple.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"复制了\""+serialNumber+"\""; - projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId); + String contentLog = username+"复制了“"+serialNumber+"”"; + String enContentLog = username+" copied “"+serialNumber+"”"; + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue()); } } @Override - public void setBatch(ProjectLawsInventoryEO projectLawsInventoryEO) { + public void setBatch(ProjectLawsInventoryEO projectLawsInventoryEO) {///// if(org.apache.commons.lang3.StringUtils.isNotBlank(projectLawsInventoryEO.getIds())){ - //更新log - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String username = sysUser.getUsername(); - String contentLog = username+"批量设置了"; - StringBuilder contentLogBuilder = new StringBuilder(contentLog); - //根据id查询数据库中完整信息,翻译 List idList = Arrays.asList(projectLawsInventoryEO.getIds().split(",")); QueryWrapper queryWrapper = new QueryWrapper<>(); List infoList = list(queryWrapper.in("id", idList)); String projectLibraryId = infoList.get(0).getProjectLibraryId(); + + List projectLawsInventoryEOList = new ArrayList<>(); + for (String id : projectLawsInventoryEO.getIds().split(",")) { + ProjectLawsInventoryEO projectLawsInventoryEOTemp = new ProjectLawsInventoryEO(); + projectLawsInventoryEOTemp.setId(id); + //实施类别 implementType + if(org.apache.commons.lang.StringUtils.isNotBlank(projectLawsInventoryEO.getImplementType())){ + projectLawsInventoryEOTemp.setImplementType(projectLawsInventoryEO.getImplementType()); + } + //认证类型 attestationType + if(org.apache.commons.lang.StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationType())){ + projectLawsInventoryEOTemp.setAttestationType(projectLawsInventoryEO.getAttestationType()); + } + //认证级别 attestationRank + if(org.apache.commons.lang.StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationRank())){ + projectLawsInventoryEOTemp.setAttestationRank(projectLawsInventoryEO.getAttestationRank()); + } + //责任领域 dutyTerritory + if(org.apache.commons.lang.StringUtils.isNotBlank(projectLawsInventoryEO.getDutyTerritory())){ + projectLawsInventoryEOTemp.setDutyTerritory(projectLawsInventoryEO.getDutyTerritory()); + } + //设计符合性确认截止时间 + if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDueDate())){ + projectLawsInventoryEOTemp.setDesignDueDate(projectLawsInventoryEO.getDesignDueDate()); + } + //preHomo确认截止时间 + if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDueDate())){ + projectLawsInventoryEOTemp.setPrehomoDueDate(projectLawsInventoryEO.getPrehomoDueDate()); + } + //验证符合性确认截止时间 + if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDueDate())){ + projectLawsInventoryEOTemp.setVerifyDueDate(projectLawsInventoryEO.getVerifyDueDate()); + } + projectLawsInventoryEOList.add(projectLawsInventoryEOTemp); + } + this.updateBatchById(projectLawsInventoryEOList); + + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String contentLog = username+"批量设置了"; + StringBuilder contentLogBuilder = new StringBuilder(contentLog); + String enContentLog = username+" batch set “"; + StringBuilder enContentLogBuilder = new StringBuilder(enContentLog); + + List infoListCopy = DeepCopyListUtil.depCopy(infoList); + translateData(infoList); + translateDataToEn(infoListCopy); //翻译传入的数据 List inputList = new ArrayList<>(); @@ -1505,114 +1621,107 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectLawsInventoryEOList = new ArrayList<>(); + for (String id : projectLawsInventoryEO.getIds().split(",")) { ProjectLawsInventoryEO info = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); + ProjectLawsInventoryEO infoCopy = infoListCopy.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); contentLogBuilder.append(info.getSerialNumber() + ":"); + enContentLogBuilder.append(infoCopy.getSerialNumber() + ":"); ProjectLawsInventoryEO projectLawsInventoryEOTemp = new ProjectLawsInventoryEO(); projectLawsInventoryEOTemp.setId(id); //实施类别 implementType if(StringUtils.isNotBlank(projectLawsInventoryEO.getImplementType())){ - projectLawsInventoryEOTemp.setImplementType(projectLawsInventoryEO.getImplementType()); - if (StringUtils.isBlank(info.getImplementType())){ - info.setImplementType("空"); - } - if (!info.getImplementType().equals(inputInfoEO.getImplementType())) { + if (!info.getImplementType().equals(inputInfoEO.getImplementType()) && !inputInfoEO.getImplementType().equals("空")){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getEnName(), info.getImplementType(), inputInfoEO.getImplementType()); } } //认证类型 attestationType if(StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationType())){ - projectLawsInventoryEOTemp.setAttestationType(projectLawsInventoryEO.getAttestationType()); - if (StringUtils.isBlank(info.getAttestationType())){ - info.setAttestationType("空"); - } - if (!info.getAttestationType().equals(inputInfoEO.getAttestationType())) { + if (!info.getAttestationType().equals(inputInfoEO.getAttestationType()) && !inputInfoEO.getAttestationType().equals("空")){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_TYPE.getEnName(), info.getAttestationType(), inputInfoEO.getAttestationType()); } } //认证级别 attestationRank if(StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationRank())){ - projectLawsInventoryEOTemp.setAttestationRank(projectLawsInventoryEO.getAttestationRank()); - if (StringUtils.isBlank(info.getAttestationRank())){ - info.setAttestationRank("空"); - } - if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank())){ + if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank()) && !inputInfoEO.getAttestationRank().equals("空")){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.ATTESTATION_RANK.getEnName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); } } //责任领域 dutyTerritory if(StringUtils.isNotBlank(projectLawsInventoryEO.getDutyTerritory())){ - projectLawsInventoryEOTemp.setDutyTerritory(projectLawsInventoryEO.getDutyTerritory()); - if (StringUtils.isBlank(info.getDutyTerritory())){ - info.setDutyTerritory("空"); - } if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory())){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DUTY_TERRITORY.getEnName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); } } //在产车实施日期implementTime if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getImplementTime())){ - projectLawsInventoryEOTemp.setImplementTime(projectLawsInventoryEO.getImplementTime()); if (info.getImplementTime() == null){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName(),"空",inputInfoEO.getImplementTimeString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString()); }else { if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) { setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); } } } //新车型实施日期xin1Che1Xing2Shi2Shi1Ri4Qi1 if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ - projectLawsInventoryEOTemp.setXin1Che1Xing2Shi2Shi1Ri4Qi1(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"空",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); }else { if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) { setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); } } } //适用地区region if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegion())){ - projectLawsInventoryEOTemp.setRegion(projectLawsInventoryEO.getRegion()); - if (StringUtils.isBlank(info.getRegion())){ - info.setRegion("空"); - } if (!info.getRegion().equals(inputInfoEO.getRegion())) { setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.REGION.getEnName(),info.getRegion(),inputInfoEO.getRegion()); + } } //设计符合性确认截止时间 if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDueDate())){ - projectLawsInventoryEOTemp.setDesignDueDate(projectLawsInventoryEO.getDesignDueDate()); if (info.getDesignDueDate() == null){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName(),"空",inputInfoEO.getDesignDueDateString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName(),"null",inputInfoEO.getDesignDueDateString()); }else { if (!info.getDesignDueDateString().equals(inputInfoEO.getDesignDueDateString())) { setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName(), info.getDesignDueDateString(), inputInfoEO.getDesignDueDateString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName(), info.getDesignDueDateString(), inputInfoEO.getDesignDueDateString()); } } } //preHomo确认截止时间 if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDueDate())){ - projectLawsInventoryEOTemp.setPrehomoDueDate(projectLawsInventoryEO.getPrehomoDueDate()); if (info.getVerifyDueDate() == null){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(),"空",inputInfoEO.getPrehomoDueDateString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(),"空",inputInfoEO.getPrehomoDueDateString()); }else { if (!info.getPrehomoDueDateString().equals(inputInfoEO.getPrehomoDueDateString())) { setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getName(), info.getPrehomoDueDateString(), inputInfoEO.getPrehomoDueDateString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.PREHOMO_DUE_DATE.getEnName(), info.getPrehomoDueDateString(), inputInfoEO.getPrehomoDueDateString()); } } } //验证符合性确认截止时间 if(ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDueDate())){ - projectLawsInventoryEOTemp.setVerifyDueDate(projectLawsInventoryEO.getVerifyDueDate()); if (info.getVerifyDueDate() == null){ setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getName(),"空",inputInfoEO.getVerifyDueDateString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getEnName(),"null",inputInfoEO.getVerifyDueDateString()); }else { if (!info.getVerifyDueDateString().equals(inputInfoEO.getVerifyDueDateString())) { setUpdateContentLog(contentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getName(), info.getVerifyDueDateString(), inputInfoEO.getVerifyDueDateString()); + setUpdateEnContentLog(enContentLogBuilder, ProjectInventoryFieldEnum.VERIFY_DUE_DATE.getEnName(), info.getVerifyDueDateString(), inputInfoEO.getVerifyDueDateString()); } } } @@ -1621,14 +1730,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl infoList) { for (ProjectLawsInventoryEO projectLawsInventoryEO : infoList) { //子标题 @@ -1879,6 +1991,265 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl infoList) { + for (ProjectLawsInventoryEO projectLawsInventoryEO : infoList) { + //子标题 + if (StringUtils.isBlank(projectLawsInventoryEO.getSubtitle())) { + projectLawsInventoryEO.setSubtitle("null"); + } + //WVTA ID + if (StringUtils.isBlank(projectLawsInventoryEO.getWvtaId())) { + projectLawsInventoryEO.setWvtaId("null"); + } + //备注 + if (StringUtils.isBlank(projectLawsInventoryEO.getRemark())) { + projectLawsInventoryEO.setRemark("null"); + } + //实施类别 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getImplementType())) { + List implementType = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getValue()); + String implementTypeName = implementType.stream().filter(e -> e.getItemValue().equals(projectLawsInventoryEO.getImplementType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + projectLawsInventoryEO.setImplementType(implementTypeName); + } else { + projectLawsInventoryEO.setImplementType("null"); + } + + //在产车实施日期 + if (projectLawsInventoryEO.getImplementTime() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(projectLawsInventoryEO.getImplementTime()); + projectLawsInventoryEO.setImplementTimeString(dateString); + }else { + projectLawsInventoryEO.setImplementTimeString("null"); + } + + //新车型实施日期 + if (projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(projectLawsInventoryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); + projectLawsInventoryEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1String(dateString); + }else { + projectLawsInventoryEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1String("null"); + } + + //认证类型 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationType())) { + List attestationType = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.ATTESTATION_TYPE.getValue()); + List attestationTypeList = Arrays.asList(projectLawsInventoryEO.getAttestationType().split(",")); + StringBuilder attestationTypeBuilder = new StringBuilder(); + for (String midDutyTerritory : attestationTypeList) { + String attestationTypeName = attestationType.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + attestationTypeBuilder.append(attestationTypeName).append(","); + } + projectLawsInventoryEO.setAttestationType(attestationTypeBuilder.substring(0, attestationTypeBuilder.toString().length() - 1)); + + + } else { + projectLawsInventoryEO.setAttestationType("null"); + } + + //认证级别 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getAttestationRank())) { + List attestationRank = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.ATTESTATION_RANK.getValue()); + String attestationRankName = attestationRank.stream().filter(e -> e.getItemValue().equals(projectLawsInventoryEO.getAttestationRank())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + projectLawsInventoryEO.setAttestationRank(attestationRankName); + } else { + projectLawsInventoryEO.setAttestationRank("null"); + } + + + //责任领域 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getDutyTerritory())) { + List dutyTerritory = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue()); + List dutyTerritoryList = Arrays.asList(projectLawsInventoryEO.getDutyTerritory().split(",")); + StringBuilder dutyTerritoryBuilder = new StringBuilder(); + for (String midDutyTerritory : dutyTerritoryList) { + String dutyTerritoryName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + dutyTerritoryBuilder.append(dutyTerritoryName).append(","); + } + projectLawsInventoryEO.setDutyTerritory(dutyTerritoryBuilder.substring(0, dutyTerritoryBuilder.toString().length() - 1)); + } else { + projectLawsInventoryEO.setDutyTerritory("null"); + } + + //适用地区 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getRegion())) { + List region = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.REGION.getValue()); + List regionList = Arrays.asList(projectLawsInventoryEO.getRegion().split(",")); + StringBuilder regionBuilder = new StringBuilder(); + for (String midRegion : regionList) { + String regionName = region.stream().filter(e -> e.getItemValue().equals(midRegion)).map(f -> f.getEnName()).collect(Collectors.joining(",")); + regionBuilder.append(regionName).append(","); + } + projectLawsInventoryEO.setRegion(regionBuilder.substring(0, regionBuilder.toString().length() - 1)); + }else { + projectLawsInventoryEO.setRegion("null"); + } + + //交付物类型 + List deliverableTemplate = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.DELIVERABLE_TEMPLATE.getValue()); + //设计符合性确认-交付物类型 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDeliverableType())) { + String designDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(projectLawsInventoryEO.getDesignDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + projectLawsInventoryEO.setDesignDeliverableType(designDeliverableTypeName); + }else { + projectLawsInventoryEO.setDesignDeliverableType("null"); + } + //prehomo确认-交付物类型 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDeliverableType())) { + String prehomoDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(projectLawsInventoryEO.getPrehomoDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + projectLawsInventoryEO.setPrehomoDeliverableType(prehomoDeliverableTypeName); + }else { + projectLawsInventoryEO.setPrehomoDeliverableType("null"); + } + //验证符合性确认-交付物类型 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDeliverableType())) { + String verifyDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(projectLawsInventoryEO.getVerifyDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); + projectLawsInventoryEO.setVerifyDeliverableType(verifyDeliverableTypeName); + }else { + projectLawsInventoryEO.setVerifyDeliverableType("null"); + } + + + List userIdList= new ArrayList<>(); + //法规工程师 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getRegulationOwnerId())) { + userIdList.add(projectLawsInventoryEO.getRegulationOwnerId()); + } else { + projectLawsInventoryEO.setRegulationOwnerName("null"); + } + + //认证工程师 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getHomologationEngineerId())) { + userIdList.add(projectLawsInventoryEO.getHomologationEngineerId()); + }else { + projectLawsInventoryEO.setHomologationEngineerName("null"); + } + + //工程接口人 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + userIdList.add(projectLawsInventoryEO.getEngineeringInterfacePerson()); + }else { + projectLawsInventoryEO.setEngineeringInterfacePersonName("null"); + } + + //发起人 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignInitiatorId())) { + userIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); + }else { + projectLawsInventoryEO.setDesignInitiatorName("null"); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoInitiatorId())) { + userIdList.add(projectLawsInventoryEO.getPrehomoInitiatorId()); + }else { + projectLawsInventoryEO.setPrehomoInitiatorName("null"); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyInitiatorId())) { + userIdList.add(projectLawsInventoryEO.getVerifyInitiatorId()); + }else { + projectLawsInventoryEO.setVerifyInitiatorName("null"); + } + + //责任人 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDutyId())) { + userIdList.add(projectLawsInventoryEO.getDesignDutyId()); + }else { + projectLawsInventoryEO.setDesignDutyName("null"); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDutyId())) { + userIdList.add(projectLawsInventoryEO.getPrehomoDutyId()); + }else { + projectLawsInventoryEO.setPrehomoDutyName("null"); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDutyId())) { + userIdList.add(projectLawsInventoryEO.getVerifyDutyId()); + }else { + projectLawsInventoryEO.setVerifyDutyName("null"); + } + + userIdList = userIdList.stream().distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(userIdList)){ + QueryWrapper userqueryWrapper = new QueryWrapper<>(); + List userList = sysUserService.list(userqueryWrapper.in("id ", userIdList)); + + //法规工程师 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getRegulationOwnerId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getRegulationOwnerId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setRegulationOwnerName(userName); + } + + //认证工程师 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getHomologationEngineerId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getHomologationEngineerId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setHomologationEngineerName(userName); + } + + //工程接口人 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getEngineeringInterfacePerson())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getEngineeringInterfacePerson())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setEngineeringInterfacePersonName(userName); + } + + + //发起人 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignInitiatorId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setDesignInitiatorName(userName); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoInitiatorId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setPrehomoInitiatorName(userName); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyInitiatorId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setVerifyInitiatorName(userName); + } + + //责任人 + if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDutyId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setDesignDutyName(userName); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDutyId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setPrehomoDutyName(userName); + } + if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDutyId())) { + String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); + projectLawsInventoryEO.setVerifyDutyName(userName); + } + } + + + //截止时间 + //设计符合性确认-截止时间 designDueDate + if (projectLawsInventoryEO.getDesignDueDate() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(projectLawsInventoryEO.getDesignDueDate()); + projectLawsInventoryEO.setDesignDueDateString(dateString); + }else { + projectLawsInventoryEO.setDesignDueDateString("null"); + } + //prehomo确认-截止时间 prehomoDueDate + if (projectLawsInventoryEO.getPrehomoDueDate() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(projectLawsInventoryEO.getPrehomoDueDate()); + projectLawsInventoryEO.setPrehomoDueDateString(dateString); + }else { + projectLawsInventoryEO.setPrehomoDueDateString("null"); + } + //验证符合性确认-截止时间 verifyDueDate + if (projectLawsInventoryEO.getVerifyDueDate() != null) { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); + String dateString = sdf.format(projectLawsInventoryEO.getVerifyDueDate()); + projectLawsInventoryEO.setVerifyDueDateString(dateString); + }else { + projectLawsInventoryEO.setVerifyDueDateString("null"); + } + } + } + private ProjectLawsInventoryEO dataCompare(ProjectLawsInventoryEO projectLawsInventoryEO,DummyInventoryInfoEO dummyInventoryInfoEO){ //编号 if(StringUtils.isBlank(projectLawsInventoryEO.getSerialNumber())){ @@ -2150,7 +2521,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl sysUserList = sysUserService.list(); //数据转换(文件名称,对应标准) - dataTransition(dataList, fileInfos,sysUserList); + dataTransition(dataList, fileInfos,sysUserList,projectLawsInventoryEO); OutputStream os = null; try { @@ -2165,7 +2536,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dataListEn){ + private void transition(List dataListEn,ProjectLawsInventoryEO projectLawsInventoryEOTemp){ //下拉选数据字典 List sysCategoryList = sysCategoryService.list(); //技术领域数据字典 List sysDictItems = sysDictItemServiceImpl.selectItemsAll(); for (ProjectLawsInventoryEOEn projectLawsInventoryEOEn : dataListEn) { + + //设计交付物类型 inventoryInfoEO + if(StringUtils.isNotBlank(projectLawsInventoryEOEn.getDesignDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEOEn.getDesignDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEOEn.setDesignDeliverableType(substring); + } + } + //pre交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEOEn.getPrehomoDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEOEn.getPrehomoDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEOEn.setPrehomoDeliverableType(substring); + } + } + //验证交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEOEn.getVerifyDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEOEn.getVerifyDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEOEn.setVerifyDeliverableType(substring); + } + } + + //适用地区 String region = projectLawsInventoryEOEn.getRegion(); String pullRegion = pull(sysDictItems, region,"region"); @@ -2533,9 +2931,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl categoryList = sysCategoryService.list(); //普通数据字典 List dictItemList = sysDictItemServiceImpl.selectItemsAll(); - importDatas(datas, dictItemList, zipEntryName,saveDirectory,projectLawsInventoryEO); + importDatas(datas, dictItemList, zipEntryName,saveDirectory,projectLawsInventoryEO,categoryList); //删除原上传文件 FileUnZip.deleteDir(saveDirectory); @@ -2633,7 +3032,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dictItemList, String zipEntryName, File saveDirectory, - ProjectLawsInventoryEO projectLawsInventoryEOTemp) { + ProjectLawsInventoryEO projectLawsInventoryEOTemp, + List categoryList) { + String dictId = sysCategoryMapper.getDictId("deliverable_template"); + List collect = categoryList.stream().filter(e -> e.getSysDictId().equals(dictId)).collect(Collectors.toList()); + List treeNameList = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(projectLawsInventoryEOTemp.getCut())){ + treeNameList = collect.stream().map(SysCategory::getName).collect(Collectors.toList()); + }else{ + treeNameList = collect.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + } int i = 3; List msgList = new ArrayList<>(); String value = ""; @@ -2752,7 +3160,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImple.getSerialNumber()).collect(Collectors.joining(",")); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String username = sysUser.getUsername(); - String contentLog = username+"向清单中导入了\""+serialNumber+"\"标准"; - projectLawsInventoryLogEOService.updateLog(contentLog, dataList.get(0).getProjectLibraryId()); + String contentLog = username+"向清单中导入了“"+serialNumber+"”"; + String enContentLog = username+" imported “"+serialNumber+"” into the list."; + projectLawsInventoryLogEOService.updateLog(contentLog, dataList.get(0).getDummyInventoryBaseId(),CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(enContentLog, dataList.get(0).getDummyInventoryBaseId(),CutEnum.EN.getValue()); } } } + private String tree(List categoryList,List nameList,ProjectLawsInventoryEO projectLawsInventoryEO, + String errorMsg, String value,List msgList, + String nameCn,String nameEn,String dictCode) { + if (StringUtils.isNotBlank(value)) { + StringBuilder sb = new StringBuilder(); + for (String s : value.split(",")) { + if(!nameList.contains(s)){ + sb.append(s+","); + } + } + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + if (CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())) { + errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, "; + } else { + errorMsg += nameEn + " " + substring + " does not match the data dictionary, "; + } + msgList.add(errorMsg); + }else{ + StringBuilder sbTemp = new StringBuilder(); + for (String s : value.split(",")) { + List collect = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){ + collect = categoryList.stream().filter(e -> s.equals(e.getName())).collect(Collectors.toList()); + if(collect.size() != 0){ + sbTemp.append(collect.get(0).getName()+","); + } + }else{ + collect = categoryList.stream().filter(e -> s.equals(e.getEnName())).collect(Collectors.toList()); + if(collect.size() != 0){ + sbTemp.append(collect.get(0).getEnName()+","); + } + } + } + if(StringUtils.isNotBlank(sbTemp)){ + String substring = sbTemp.substring(0, sbTemp.length() - 1); + return substring; + } + } + } + return null; + } + + private String getTreeId(List categoryList, + ProjectLawsInventoryEO projectLawsInventoryEOTemp, List treeNameList, String value) { + StringBuilder sb = new StringBuilder(); + for (String valueTemp : value.split(",")) { + if (treeNameList.contains(valueTemp)) { + List sysCategoryList = new ArrayList<>(); + if (CutEnum.CN.getValue().equals(projectLawsInventoryEOTemp.getCut())) { + sysCategoryList = categoryList.stream().filter(e -> e.getName().equals(valueTemp)).collect(Collectors.toList()); + } else { + sysCategoryList = categoryList.stream().filter(e -> e.getEnName().equals(valueTemp)).collect(Collectors.toList()); + } + if (sysCategoryList.size() != 0) { + sb.append(sysCategoryList.get(0).getId() + ","); + } + } + } + if (StringUtils.isNotBlank(sb)) { + String substring = sb.substring(0, sb.length() - 1); + return substring; + } + return null; + } + private void verifySerialNumber(List dataList,ProjectLawsInventoryEO projectLawsInventoryEOTemp){ //1. 验证标准号在文档库中是否存在 List serialNumberList = dataList.stream().map(ProjectLawsInventoryEO::getSerialNumber).collect(Collectors.toList()); @@ -3152,8 +3631,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl msgList, - String nameCn,String nameEn) { + String errorMsg, String designDeliverableTemplate,List msgList, + String nameCn,String nameEn) { String value = ""; if (StringUtils.isNotBlank(designDeliverableTemplate)) { StringBuilder sb = new StringBuilder(); @@ -3350,6 +3829,22 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl sysCategoryList, String technologyTerritory) { + StringBuilder sb = new StringBuilder(); + for (String s : technologyTerritory.split(",")) { + List collect = sysCategoryList.stream() + .filter(e -> s.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){ + sb.append(collect.get(0).getName()+","); + }else{ + sb.append(collect.get(0).getEnName()+","); + } + } + } + return sb; + } /** * 数据转换(文件名称,技术领域,对应标准) @@ -3358,9 +3853,37 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dataList, List fileInfos, - List sysUserList) { + List sysUserList, + ProjectLawsInventoryEO projectLawsInventoryEOTemp) { + List sysCategoryList = sysCategoryService.list(); for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) { + //设计交付物类型 inventoryInfoEO + if(StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEO.getDesignDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEO.setDesignDeliverableType(substring); + } + } + //pre交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEO.getPrehomoDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEO.setPrehomoDeliverableType(substring); + } + } + //验证交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEO.getVerifyDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEO.setVerifyDeliverableType(substring); + } + } + + //清单确认状态 inventoryAffirmStatus if(StringUtils.isNotBlank(projectLawsInventoryEO.getInventoryAffirmStatus())){ String stateName = stateTransition(projectLawsInventoryEO.getInventoryAffirmStatus()); @@ -3576,7 +4099,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl infoDiff,String contentLog) { + public void setContentLog(Map infoDiff, String contentLog,Map infoDiffEn, String enContentLog, String projectLibraryId) { //设置维护清单的修改消息 if(MapUtils.isNotEmpty(infoDiff)) { @@ -3586,14 +4109,24 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("subtitle").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.SUBTITLE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.SUBTITLE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("subtitle").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.SUBTITLE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //WVTA ID if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) { List list = Arrays.asList(infoDiff.get("wvtaId").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.WVTA_ID.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.WVTA_ID.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("wvtaId").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.WVTA_ID.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //实施类别 @@ -3601,7 +4134,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("implementType").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("implementType").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.IMPLEMENT_TYPE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //在产车实施日期 @@ -3609,7 +4147,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("implementTimeString").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("implementTimeString").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + contentLog += "'"+ProjectInventoryFieldEnum.IMPLEMENT_TIME.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + enContentLog += "'"+ProjectInventoryFieldEnum.IMPLEMENT_TIME.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //新车型实施日期 @@ -3617,7 +4160,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //认证类型 @@ -3625,7 +4173,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("attestationType").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.ATTESTATION_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.ATTESTATION_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("attestationType").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.ATTESTATION_TYPE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //认证级别 @@ -3633,7 +4186,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("attestationRank").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.ATTESTATION_RANK.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.ATTESTATION_RANK.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("attestationRank").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.ATTESTATION_RANK.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //责任领域 @@ -3641,7 +4199,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("dutyTerritory").split("\\|")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DUTY_TERRITORY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DUTY_TERRITORY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("dutyTerritory").split("\\|")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DUTY_TERRITORY.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //regulationOwnerName;//法规工程师名称 @@ -3649,21 +4212,36 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("regulationOwnerName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.REGULATION_OWNER_NAME.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.REGULATION_OWNER_NAME.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("regulationOwnerName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.REGULATION_OWNER_NAME.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //homologationEngineerName;//认证工程师名称 if (StringUtils.isNotBlank(infoDiff.get("homologationEngineerName"))) { List list = Arrays.asList(infoDiff.get("homologationEngineerName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.HOMOLOGATION_ENGINEER_NAME.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.HOMOLOGATION_ENGINEER_NAME.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("homologationEngineerName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.HOMOLOGATION_ENGINEER_NAME.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //engineeringInterfacePersonName;//工程接口人名称 if (StringUtils.isNotBlank(infoDiff.get("engineeringInterfacePersonName"))) { List list = Arrays.asList(infoDiff.get("engineeringInterfacePersonName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.ENGINEERING_INTERFACE_PERSON_NAME.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.ENGINEERING_INTERFACE_PERSON_NAME.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("engineeringInterfacePersonName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.ENGINEERING_INTERFACE_PERSON_NAME.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //适用地区region 多选 @@ -3671,7 +4249,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("region").split("\\|")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.REGION.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.REGION.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("region").split("\\|")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.REGION.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //备注 @@ -3679,7 +4262,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("remark").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.REMARK.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.REMARK.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("remark").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.REMARK.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //设计符合性确认-交付物类型 @@ -3687,112 +4275,189 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(infoDiff.get("designDeliverableType").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_DELIVERABLE_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("designDeliverableType").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //设计符合性确认-交付物模板 if (StringUtils.isNotBlank(infoDiff.get("designDeliverableTemplate"))) { List list = Arrays.asList(infoDiff.get("designDeliverableTemplate").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("designDeliverableTemplate").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //设计符合性确认-发起人 if (StringUtils.isNotBlank(infoDiff.get("designInitiatorName"))) { List list = Arrays.asList(infoDiff.get("designInitiatorName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_INITIATOR.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("designInitiatorName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_INITIATOR.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //设计符合性确认-责任人 if (StringUtils.isNotBlank(infoDiff.get("designDutyName"))) { List list = Arrays.asList(infoDiff.get("designDutyName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_DUTY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("designDutyName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUTY.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //设计符合性确认-截止时间designDueDateString; if (StringUtils.isNotBlank(infoDiff.get("designDueDateString"))) { List list = Arrays.asList(infoDiff.get("designDueDateString").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("designDueDateString").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //prehomo确认-交付物类型 if (StringUtils.isNotBlank(infoDiff.get("prehomoDeliverableType"))) { List list = Arrays.asList(infoDiff.get("prehomoDeliverableType").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.PREHOMO_DELIVERABLE_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("prehomoDeliverableType").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //prehomo确认-交付物模板 if (StringUtils.isNotBlank(infoDiff.get("prehomoDeliverableTemplate"))) { List list = Arrays.asList(infoDiff.get("prehomoDeliverableTemplate").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("prehomoDeliverableTemplate").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //prehomo确认-发起人 if (StringUtils.isNotBlank(infoDiff.get("prehomoInitiatorName"))) { List list = Arrays.asList(infoDiff.get("prehomoInitiatorName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.PREHOMO_INITIATOR.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("prehomoInitiatorName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_INITIATOR.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //prehomo确认-责任人 if (StringUtils.isNotBlank(infoDiff.get("prehomoDutyName"))) { List list = Arrays.asList(infoDiff.get("prehomoDutyName").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.PREHOMO_DUTY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("prehomoDutyName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.PREHOMO_DUTY.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //prehomo确认-截止时间prehomoDueDateString; if (StringUtils.isNotBlank(infoDiff.get("prehomoDueDateString"))) { List list = Arrays.asList(infoDiff.get("prehomoDueDateString").split(",")); String infoDiffOld = list.get(0); String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("prehomoDueDateString").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } //验证符合性确认-交付物类型 - if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableType"))) { - List list = Arrays.asList(infoDiff.get("verifyDeliverableType").split(",")); - String infoDiffOld = list.get(0); - String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.VERIFY_DELIVERABLE_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; - } - //验证符合性确认-交付物模板 - if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableTemplate"))) { - List list = Arrays.asList(infoDiff.get("verifyDeliverableTemplate").split(",")); - String infoDiffOld = list.get(0); - String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; - } - //验证符合性确认-发起人 - if (StringUtils.isNotBlank(infoDiff.get("verifyInitiatorName"))) { - List list = Arrays.asList(infoDiff.get("verifyInitiatorName").split(",")); - String infoDiffOld = list.get(0); - String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.VERIFY_INITIATOR.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; - } - //验证符合性确认-责任人 - if (StringUtils.isNotBlank(infoDiff.get("verifyDutyName"))) { - List list = Arrays.asList(infoDiff.get("verifyDutyName").split(",")); - String infoDiffOld = list.get(0); - String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.VERIFY_DUTY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; - } - //验证符合性确认-截止时间verifyDueDateString - if (StringUtils.isNotBlank(infoDiff.get("verifyDueDateString"))) { - List list = Arrays.asList(infoDiff.get("verifyDueDateString").split(",")); - String infoDiffOld = list.get(0); - String infoDiffNew = list.get(1); - contentLog += ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ","; - } + if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableType"))) { + List list = Arrays.asList(infoDiff.get("verifyDeliverableType").split(",")); + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+ProjectInventoryFieldEnum.VERIFY_DELIVERABLE_TYPE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("verifyDeliverableType").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.VERIFY_DELIVERABLE_TYPE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; } + //验证符合性确认-交付物模板 + if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableTemplate"))) { + List list = Arrays.asList(infoDiff.get("verifyDeliverableTemplate").split(",")); + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+ProjectInventoryFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("verifyDeliverableTemplate").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.VERIFY_DELIVERABLE_TEMPLATE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; + } + //验证符合性确认-发起人 + if (StringUtils.isNotBlank(infoDiff.get("verifyInitiatorName"))) { + List list = Arrays.asList(infoDiff.get("verifyInitiatorName").split(",")); + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+ProjectInventoryFieldEnum.VERIFY_INITIATOR.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("verifyInitiatorName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.VERIFY_INITIATOR.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; + } + //验证符合性确认-责任人 + if (StringUtils.isNotBlank(infoDiff.get("verifyDutyName"))) { + List list = Arrays.asList(infoDiff.get("verifyDutyName").split(",")); + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+ProjectInventoryFieldEnum.VERIFY_DUTY.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("verifyDutyName").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.VERIFY_DUTY.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; + } + //验证符合性确认-截止时间verifyDueDateString + if (StringUtils.isNotBlank(infoDiff.get("verifyDueDateString"))) { + List list = Arrays.asList(infoDiff.get("verifyDueDateString").split(",")); + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getName() + "'由" + infoDiffOld + "改为了" + infoDiffNew + ","; + + List listEn = Arrays.asList(infoDiffEn.get("verifyDueDateString").split(",")); + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+ProjectInventoryFieldEnum.DESIGN_DUE_DATE.getEnName() +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + ","; + } + } } contentLog = contentLog.substring(0, contentLog.length()-1); - return contentLog; + enContentLog =enContentLog.substring(0, contentLog.length()-1); + projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue()); + projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue()); } //表格高度 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryLogEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryLogEOServiceImpl.java index 4d248ef6e..014d19cd8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryLogEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryLogEOServiceImpl.java @@ -24,13 +24,14 @@ public class ProjectLawsInventoryLogEOServiceImpl extends ServiceImpl YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsQuery()))).collect(Collectors.toList()); } //树形数据字典 - List sysCategoryTree = sysCategoryService.getSysCategoryTree(); // 查询所有 并以树结构返回 + List sysCategoryTree = sysCategoryService.getSysCategoryTree(null); // 查询所有 并以树结构返回 List> list = new ArrayList<>(); for (OnlCgformField onlCgformField : fieldList) { Map map = new HashMap<>(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/OnlCgformAreaMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/OnlCgformAreaMapper.java index 5ac7cbe61..2a6c1c004 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/OnlCgformAreaMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/OnlCgformAreaMapper.java @@ -25,6 +25,6 @@ public interface OnlCgformAreaMapper extends BaseMapper { "a.is_model,i.item_text as is_model_name,i.en_name as is_model_en_name,a.show_area,a.sort,a.en_name\n" + "from onl_cgform_area as a left join sys_dict_item as i \n" + "on a.is_model=i.item_value \n" + - "where i.dict_id=1493096744092102657 order by a.sort desc") + "where i.dict_id=1493096744092102657 order by a.sort ") IPage queryPageList(IPage page, @Param("params") Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/OnlCgformTagMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/OnlCgformTagMapper.xml index 83e7e67e5..db6fac3dd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/OnlCgformTagMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/OnlCgformTagMapper.xml @@ -70,6 +70,6 @@ and f.show_area like concat('%',#{params.showArea},'%') - order by f.order_num desc + order by f.order_num \ No newline at end of file diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml index 52bf174cc..f7d54fc5b 100644 --- a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -380,14 +380,15 @@ feign: people: appId: 100679 # 访问域名 CN TEST版 - host: http://napoleon-fab-test.nioint.com +# host: http://napoleon-fab-test.nioint.com # 访问域名 CN PROD版 - # host: http://napoleon.nioint.com + host: http://napoleon.nioint.com # appSecret CN TEST版 - secret: CDf2D9404C6ac1B0f7c3e3845ae0282a +# secret: CDf2D9404C6ac1B0f7c3e3845ae0282a # appSecret CN PROD版 - # secret: 7C3F03170E3ea489df04Ce8DEC7Df4f7 + secret: 7C3F03170E3ea489df04Ce8DEC7Df4f7 + cronJobIsOpen: true ## Feishu Feishu: # 测试 @@ -409,7 +410,6 @@ opensso: clientSecret: CDf2D9404C6ac1B0f7c3e3845ae0282a redirectUri: http%3A%2F%2F139.9.235.66%3A8010 - --- ## space系统 Space: diff --git a/jero-web/src/assets/less/common.less b/jero-web/src/assets/less/common.less index 242b53c10..801cf50a5 100644 --- a/jero-web/src/assets/less/common.less +++ b/jero-web/src/assets/less/common.less @@ -90,10 +90,15 @@ .jee-hidden { display: none } + .box-input .ant-select-selection { height: 38px !important; } .box-input .ant-select-selection__rendered { line-height: 38px; +} + +.ant-table-fixed-left table, .ant-table-fixed-right table .ant-table-fixed{ + width: min-content; } \ No newline at end of file diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 6448d8ce7..0b3cf876b 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -894,4 +894,7 @@ module.exports = { basicInformation:'Basic Information', replyFromProjectContact:'Reply from project contact person', pleaseUpload:'Please Upload', + fullScreenView:'Full Screen View', + systemPrompt:'System Prompt', + loginExpired:'Login Expired', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index f2a138480..420dcdeae 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -899,4 +899,7 @@ module.exports = { basicInformation:'基础信息', replyFromProjectContact:'工程接口人回复', pleaseUpload:'请上传', + fullScreenView:'全屏查看', + systemPrompt:'系统提示', + loginExpired:'登录已过期', } \ No newline at end of file diff --git a/jero-web/src/views/dashboard/components/customContent.vue b/jero-web/src/views/dashboard/components/customContent.vue index 929d3ed43..ff021373d 100644 --- a/jero-web/src/views/dashboard/components/customContent.vue +++ b/jero-web/src/views/dashboard/components/customContent.vue @@ -1,15 +1,18 @@