diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java index 33b22ff2c..e025e9890 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java @@ -81,21 +81,27 @@ public class DummyInventoryInfoEO implements Serializable { /**适用地区*/ @ApiModelProperty(value = "适用地区") - @Dict(dicCode ="region") + //@Dict(dicCode ="region") @Excel(name = "适用地区", width = 15, dicCode = "region") private java.lang.String region; + @TableField(exist = false) + private String region_dictText; /**适用范围*/ @Excel(name = "适用范围", width = 15, dicCode = "apply_scope") @ApiModelProperty(value = "适用范围") - @Dict(dicCode ="apply_scope") + //@Dict(dicCode ="apply_scope") private java.lang.String shi4Yong4Fan4Wei2; + @TableField(exist = false) + private String shi4Yong4Fan4Wei2_dictText; /**状态*/ @Excel(name = "状态", width = 15,dicCode ="state") @ApiModelProperty(value = "状态") - @Dict(dicCode ="state") + //@Dict(dicCode ="state") private java.lang.String state; + @TableField(exist = false) + private String state_dictText; /**对应标准*/ @Excel(name = "对应标准", width = 15) @@ -107,8 +113,10 @@ public class DummyInventoryInfoEO implements Serializable { /**实施类别*/ @Excel(name = "实施类别", width = 15,dicCode ="implement_type") @ApiModelProperty(value = "实施类别") - @Dict(dicCode ="implement_type") + //@Dict(dicCode ="implement_type") private java.lang.String implementType; + @TableField(exist = false) + private String implementType_dictText; /**新车型实施日期*/ @Excel(name = "新车型实施日期", width = 15,format = "yyyy-MM-dd") @@ -138,14 +146,18 @@ public class DummyInventoryInfoEO implements Serializable { /**认证类型*/ @Excel(name = "认证类型", width = 15,dicCode ="attestation_type") @ApiModelProperty(value = "认证类型") - @Dict(dicCode ="attestation_type") + //@Dict(dicCode ="attestation_type") private java.lang.String attestationType; + @TableField(exist = false) + private String attestationType_dictText; /**认证级别*/ @Excel(name = "认证级别", width = 15,dicCode ="attestation_rank") @ApiModelProperty(value = "认证级别") - @Dict(dicCode ="attestation_rank") + //@Dict(dicCode ="attestation_rank") private java.lang.String attestationRank; + @TableField(exist = false) + private String attestationRank_dictText; /**适用增补件*/ @ApiModelProperty(value = "适用增补件") @@ -163,8 +175,10 @@ public class DummyInventoryInfoEO implements Serializable { /**责任领域*/ @Excel(name = "责任领域", width = 15,dicCode ="duty_territory") @ApiModelProperty(value = "责任领域") - @Dict(dicCode ="duty_territory") + //@Dict(dicCode ="duty_territory") private java.lang.String dutyTerritory; + @TableField(exist = false) + private String dutyTerritory_dictText; /**备注*/ @Excel(name = "备注", width = 15) @@ -192,14 +206,18 @@ public class DummyInventoryInfoEO implements Serializable { /**设计符合性确认-发起人*/ @Excel(name = "设计-发起人", width = 15,dicCode ="fa1_qi3_ren2") @ApiModelProperty(value = "设计符合性确认-发起人") - @Dict(dicCode ="fa1_qi3_ren2") + //@Dict(dicCode ="fa1_qi3_ren2") private java.lang.String designInitiator; + @TableField(exist = false) + private String designInitiator_dictText; /**设计符合性确认-责任人*/ @Excel(name = "设计-责任人", width = 15,dicCode ="ze2_ren4_ren2") @ApiModelProperty(value = "设计符合性确认-责任人") - @Dict(dicCode ="ze2_ren4_ren2") + //@Dict(dicCode ="ze2_ren4_ren2") private java.lang.String designDuty; + @TableField(exist = false) + private String designDuty_dictText; //交付物说明 @Excel(name = "设计符合性确认-交付物说明", width = 20) @@ -226,14 +244,18 @@ public class DummyInventoryInfoEO implements Serializable { /**prehomo确认-发起人*/ @Excel(name = "Prehomo-发起人", width = 15,dicCode ="fa1_qi3_ren2") @ApiModelProperty(value = "prehomo确认-发起人") - @Dict(dicCode ="fa1_qi3_ren2") + //@Dict(dicCode ="fa1_qi3_ren2") private java.lang.String prehomoInitiator; + @TableField(exist = false) + private String prehomoInitiator_dictText; /**prehomo确认-责任人*/ @Excel(name = "Prehomo-责任人", width = 15,dicCode ="ze2_ren4_ren2") @ApiModelProperty(value = "prehomo确认-责任人") - @Dict(dicCode ="ze2_ren4_ren2") + //@Dict(dicCode ="ze2_ren4_ren2") private java.lang.String prehomoDuty; + @TableField(exist = false) + private String prehomoDuty_dictText; //prehomo确认-交付物说明 @Excel(name = "prehomo确认-交付物说明", width = 20) @@ -259,14 +281,18 @@ public class DummyInventoryInfoEO implements Serializable { /**验证符合性确认-发起人*/ @Excel(name = "验证-发起人", width = 15,dicCode ="fa1_qi3_ren2") @ApiModelProperty(value = "验证符合性确认-发起人") - @Dict(dicCode ="fa1_qi3_ren2") + //@Dict(dicCode ="fa1_qi3_ren2") private java.lang.String verifyInitiator; + @TableField(exist = false) + private String verifyInitiator_dictText; /**验证符合性确认-责任人*/ @Excel(name = "验证-责任人", width = 15,dicCode ="ze2_ren4_ren2") @ApiModelProperty(value = "验证符合性确认-责任人") - @Dict(dicCode ="ze2_ren4_ren2") + //@Dict(dicCode ="ze2_ren4_ren2") private java.lang.String verifyDuty; + @TableField(exist = false) + private String verifyDuty_dictText; //验证备注 @Excel(name = "验证符合性确认-交付物说明", width = 20) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java index f431d8922..e1d545c89 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java @@ -35,6 +35,7 @@ public enum DummyInventoryBaseFieldEnum { VERIFY_DELIVERABLE_TEMPLATE("验证符合性确认-交付物模板", "verify_deliverable_template","Deliverable template"), VERIFY_INITIATOR("验证符合性确认-发起人", "fa1_qi3_ren2","Initiator"), VERIFY_DUTY("验证符合性确认-责任人", "ze2_ren4_ren2","Assignee"), + STATE("状态", "state","state"), ; @@ -71,4 +72,4 @@ public enum DummyInventoryBaseFieldEnum { 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/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 0c95df461..4af6fa502 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -34,6 +34,7 @@ import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; @@ -72,6 +73,7 @@ import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServic * @Date: 2022-04-11 * @Version: V1.0 */ +@Slf4j @Service public class DummyInventoryInfoEOServiceImpl extends ServiceImpl implements IDummyInventoryInfoEOService { @@ -329,16 +331,171 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl queryList(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) { + long startTime = System.currentTimeMillis(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,req.getParameterMap()); // queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId()); queryWrapper.orderByDesc("create_time","serial_number"); List dummyInventoryInfoEOList = this.list(queryWrapper); + log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime)); //技术领域处理 treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList); + log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + this.dataDicDispose(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut()); + log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime)); return dummyInventoryInfoEOList; } + /** + * 数据字典数据处理方法 -> 虚拟清单使用@Dict翻译效率太慢了,200条数据需要处理1分钟。 + * @param datas + * @param cut + */ + public void dataDicDispose(List datas, String cut){ + if(CollectionUtils.isNotEmpty(datas)){ + List sysDictItems = this.sysDictItemServiceImpl.getBaseMapper().selectItemsAll(); + + for (DummyInventoryInfoEO data : datas) { + // 适用地区 + String region = data.getRegion(); + if(StringUtils.isNotEmpty(region)){ + String region_dictText = this.disposeShowDictItemValue(sysDictItems, region,cut, DummyInventoryBaseFieldEnum.REGION.getValue()); + data.setRegion_dictText(region_dictText); + } + + // 适用范围 + String shi4Yong4Fan4Wei2 = data.getShi4Yong4Fan4Wei2(); + if(StringUtils.isNotEmpty(shi4Yong4Fan4Wei2)){ + String shi4Yong4Fan4Wei2_dictText = this.disposeShowDictItemValue(sysDictItems, shi4Yong4Fan4Wei2,cut, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getValue()); + data.setShi4Yong4Fan4Wei2_dictText(shi4Yong4Fan4Wei2_dictText); + } + + // 状态 + String state = data.getState(); + if(StringUtils.isNotEmpty(state)){ + String state_dictText = this.disposeShowDictItemValue(sysDictItems, state,cut, DummyInventoryBaseFieldEnum.STATE.getValue()); + data.setState_dictText(state_dictText); + } + + // 实施类别 + String implementType = data.getImplementType(); + if(StringUtils.isNotEmpty(implementType)){ + String implementType_dictText = this.disposeShowDictItemValue(sysDictItems, implementType,cut, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getValue()); + data.setImplementType_dictText(implementType_dictText); + } + + // 认证类别 + String attestationType = data.getAttestationType(); + if(StringUtils.isNotEmpty(attestationType)){ + String attestationType_dictText = this.disposeShowDictItemValue(sysDictItems, attestationType,cut, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getValue()); + data.setAttestationType_dictText(attestationType_dictText); + } + + // 认证级别 + String attestationRank = data.getAttestationRank(); + if(StringUtils.isNotEmpty(attestationRank)){ + String attestationRank_dictText = this.disposeShowDictItemValue(sysDictItems, attestationRank,cut, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getValue()); + data.setAttestationRank_dictText(attestationRank_dictText); + } + + // 责任领域 + String dutyTerritory = data.getDutyTerritory(); + if(StringUtils.isNotEmpty(dutyTerritory)){ + String dutyTerritory_dictText = this.disposeShowDictItemValue(sysDictItems, dutyTerritory,cut, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getValue()); + data.setDutyTerritory_dictText(dutyTerritory_dictText); + } + + // 设计符合性-发起人 + String designInitiator = data.getDesignInitiator(); + if(StringUtils.isNotEmpty(designInitiator)){ + String designInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, designInitiator,cut, DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getValue()); + data.setDesignInitiator_dictText(designInitiator_dictText); + } + + // 设计符合性-责任人 + String designDuty = data.getDesignDuty(); + if(StringUtils.isNotEmpty(designDuty)){ + String designDuty_dictText = this.disposeShowDictItemValue(sysDictItems, designDuty,cut, DummyInventoryBaseFieldEnum.DESIGN_DUTY.getValue()); + data.setDesignDuty_dictText(designDuty_dictText); + } + + // preHomo-发起人 + String prehomoInitiator = data.getPrehomoInitiator(); + if(StringUtils.isNotEmpty(prehomoInitiator)){ + String prehomoInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, prehomoInitiator,cut, DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getValue()); + data.setPrehomoInitiator_dictText(prehomoInitiator_dictText); + } + + // preHomo-责任人 + String prehomoDuty = data.getPrehomoDuty(); + if(StringUtils.isNotEmpty(prehomoDuty)){ + String prehomoDuty_dictText = this.disposeShowDictItemValue(sysDictItems, prehomoDuty,cut, DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getValue()); + data.setPrehomoDuty_dictText(prehomoDuty_dictText); + } + + // 验证符合性-发起人 + String verifyInitiator = data.getVerifyInitiator(); + if(StringUtils.isNotEmpty(verifyInitiator)){ + String verifyInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, verifyInitiator,cut, DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getValue()); + data.setVerifyInitiator_dictText(verifyInitiator_dictText); + } + + // 验证符合性-责任人 + String verifyDuty = data.getVerifyDuty(); + if(StringUtils.isNotEmpty(verifyDuty)){ + String verifyDuty_dictText = this.disposeShowDictItemValue(sysDictItems, verifyDuty,cut, DummyInventoryBaseFieldEnum.VERIFY_DUTY.getValue()); + data.setVerifyDuty_dictText(verifyDuty_dictText); + } + } + } + } + + /** + * 处理展示数据字典值 + * @param sysDictItems 所有的数据字典项 + * @param fieldValues 字段值 + * @param cut 中英文切换标识 + * @param dicCode 数据字典code码 + * @return + */ + public String disposeShowDictItemValue(List sysDictItems,String fieldValues,String cut,String dicCode){ + String result = ""; + List sysDictItemList = sysDictItems.stream().filter(e -> { + boolean flag = false; + if(StringUtils.equals(e.getDictCode(),dicCode)){ + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(sysDictItemList)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + result = sysDictItemList.stream().filter(e -> { + boolean flag = false; + List fieldValueStrList = Arrays.asList(fieldValues.split(",")); + for (String fieldValueStr : fieldValueStrList) { + if(StringUtils.equals(fieldValueStr,e.getItemValue())){ + flag = true; + break; + } + } + return flag; + }).map(SysDictItem::getItemText).collect(Collectors.joining(",")); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + result = sysDictItemList.stream().filter(e -> { + boolean flag = false; + List fieldValueStrList = Arrays.asList(fieldValues.split(",")); + for (String fieldValueStr : fieldValueStrList) { + if(StringUtils.equals(fieldValueStr,e.getItemValue())){ + flag = true; + break; + } + } + return flag; + }).map(SysDictItem::getEnName).collect(Collectors.joining(",")); + } + } + return result; + } /** * 复制