虚拟清单-查询列表优化。

This commit is contained in:
wangzhijiang
2022-11-23 16:17:36 +08:00
parent 6529b4ed52
commit 8e39693d1a
3 changed files with 198 additions and 14 deletions
@@ -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)
@@ -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;
}
}
}
@@ -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<DummyInventoryInfoEOMapper, DummyInventoryInfoEO> implements IDummyInventoryInfoEOService {
@@ -329,16 +331,171 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
*/
@Override
public List<DummyInventoryInfoEO> queryList(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) {
long startTime = System.currentTimeMillis();
QueryWrapper<DummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,req.getParameterMap());
// queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId());
queryWrapper.orderByDesc("create_time","serial_number");
List<DummyInventoryInfoEO> 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<DummyInventoryInfoEO> datas, String cut){
if(CollectionUtils.isNotEmpty(datas)){
List<SysDictItem> 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<SysDictItem> sysDictItems,String fieldValues,String cut,String dicCode){
String result = "";
List<SysDictItem> 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<String> 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<String> 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;
}
/**
* 复制