From ccb933362251344091a3881a4950dcab33c5008f Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期六, 28 三月 2020 11:47:55 +0800 Subject: [PATCH] no message --- src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java | 85 +++++++++++++++++++++++++++++++++++------- 1 files changed, 70 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java index 60eaca6..c6ddc54 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java @@ -22,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,13 +49,12 @@ TableInfoMapper tableInfoMapper; - @Override - public List<SysField> getFieldByMaintain(String maintainId) { + public MaintainField getMaintainFieldByMaintainId(String maintainId) { MaintainField maintainField; List<SysField> fieldList = null; if (StringUtils.isEmpty(maintainId)) { - return null; + return null; } Maintain maintain = maintainService.selectById(maintainId); if (maintain == null) { @@ -70,17 +66,28 @@ //瀵瑰簲鐗堟湰鎵句笉鍒� 寰�鍓嶆壘 String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo()); if (StringUtils.isEmpty(maintainFieldId)) { - fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no")); - return fieldList; + return null; } maintainField = maintainFieldService.selectById(maintainFieldId); - if (maintainField == null){ - //鏃犲搴旂増鏈� - fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no")); - return fieldList; - } + } + return maintainField; + } + + + @Override + public List<SysField> getFieldByMaintain(String maintainId) { + List<SysField> fieldList; + Maintain maintain = maintainService.selectById(maintainId); + if (maintain == null) { + return null; } + MaintainField maintainField = getMaintainFieldByMaintain(maintainId); + if (maintainField == null && Constant.Default.equalsIgnoreCase(maintainField.getId())) { + + fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no")); + return fieldList; + } String maintainFieldId = maintainField.getId(); String tableName = maintainField.getTableName(); //TODO 鍒ゆ柇鐗堟湰 @@ -102,6 +109,53 @@ maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo)); fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainField.getId()).eq("table_name", tableName).orderBy("order_no")); return fieldList; + } + + + } + + @Override + public MaintainField getMaintainFieldByMaintain(String maintainId) { + MaintainField maintainField; + List<SysField> fieldList = null; + + if (StringUtils.isEmpty(maintainId)) { + return null; + } + Maintain maintain = maintainService.selectById(maintainId); + if (maintain == null) { + return null; + } + + maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("maintain_id", maintainId).orderBy("order_no desc, create_time desc")); + if (maintainField == null) { + //瀵瑰簲鐗堟湰鎵句笉鍒� 寰�鍓嶆壘 + String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo()); + if (StringUtils.isEmpty(maintainFieldId)) { + return new MaintainField().setId(Constant.Default); + } + maintainField = maintainFieldService.selectById(maintainFieldId); + if (maintainField == null){ + return new MaintainField().setId(Constant.Default); + } + } + + String maintainFieldId = maintainField.getId(); + String tableName = maintainField.getTableName(); + + ActivitiStatus status = flowsService.getStatusByBusinessId(maintainFieldId); + if (status != null && status.equals(ActivitiStatus.open)) { + return maintainFieldService.selectById(maintainField); + } + + // 褰撳墠鐗堟湰姝e湪瀹℃壒 鎵惧墠涓�鐗堟湰 + Integer maintainFieldOrderNo = maintainField.getOrderNo(); + if (maintainFieldOrderNo < 1) { + return new MaintainField().setId(Constant.Default); + }else { + Integer preNo = maintainFieldOrderNo - 1; + maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo)); + return maintainField; } @@ -310,7 +364,8 @@ //娌℃湁涓枃鍚嶇О鐨� 搴旇灞炰簬绯荤粺鑷暀瀛楁 濡俰d continue; } - String alias = fieldList.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON)); + HashSet<SysField> strings = new HashSet<SysField>(fieldList); + String alias = strings.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON)); SysField sysField = new SysField().setField(fieldName).setAlias(alias); result.add(sysField); } -- Gitblit v1.8.0