From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期二, 31 三月 2020 13:25:47 +0800 Subject: [PATCH] fix 数据权限 --- src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java | 81 ++++++++++++++++++++++++++++++++-------- 1 files changed, 65 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java index 4c33f78..8e966ee 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MaintainFieldServiceImpl.java @@ -5,17 +5,11 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.highdatas.mdm.entity.Flows; -import com.highdatas.mdm.entity.Maintain; -import com.highdatas.mdm.entity.MaintainField; -import com.highdatas.mdm.entity.SysField; +import com.highdatas.mdm.entity.*; import com.highdatas.mdm.mapper.MaintainFieldMapper; import com.highdatas.mdm.pojo.ActivitiStatus; import com.highdatas.mdm.pojo.Operate; -import com.highdatas.mdm.service.IFlowsService; -import com.highdatas.mdm.service.IMaintainFieldService; -import com.highdatas.mdm.service.IMaintainService; -import com.highdatas.mdm.service.ISysFieldService; +import com.highdatas.mdm.service.*; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import org.apache.commons.lang3.StringUtils; @@ -42,10 +36,12 @@ IFlowsService flowsService; @Autowired ISysFieldService fieldService; - @Autowired MaintainFieldMapper maintainFieldMapper; - + @Autowired + IMasterAuthorService masterAuthorService; + @Autowired + IMasterAuthorDetailService masterAuthorDetailService; @Override public MaintainField getNextMaintain(String tableName, String userId) { MaintainField maintain = this.getMaxVersion(tableName); @@ -195,20 +191,66 @@ maintainField.deleteById(); } else if (status.equals(ActivitiStatus.open)) { + + Integer orderNo = maintainField.getOrderNo(); + int preNo = orderNo - 1; + if (preNo< 0) { + return; + } + MaintainField preMaintainField = selectOne(new EntityWrapper<MaintainField>() + .eq("table_name", maintainField.getTableName()) + .eq("order_no", preNo)); + if (preMaintainField == null){ + return; + } + List<MasterAuthor> masterAuthors = masterAuthorService.selectList( + new EntityWrapper<MasterAuthor>() + .eq("maintain_auto", true) + .eq("table_name", maintainField.getTableName()) + .eq("maintain_field_id", preMaintainField.getId())); + if (masterAuthors.isEmpty()) { + return; + } List<SysField> fieldList = fieldService.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainField.getId())); - List<SysField> collect = fieldList.stream().filter(sysField -> Operate.delete.equals(sysField.getOperate())).collect(Collectors.toList()); - //delete - for (SysField field : collect) { + List<SysField> deleteList = fieldList.stream().filter(sysField -> Operate.delete.equals(sysField.getOperate())).collect(Collectors.toList()); + List<SysField> updateList = fieldList.stream().filter(sysField -> (Operate.update.equals(sysField.getOperate()))).collect(Collectors.toList()); + List<SysField> createList = fieldList.stream().filter(sysField -> (Operate.create.equals(sysField.getOperate()))).collect(Collectors.toList()); + + List<String> createFieldList = createList.stream().map(sysField -> sysField.getField()).collect(Collectors.toList()); + + + for (MasterAuthor masterAuthor : masterAuthors) { + Boolean fieldAuto = masterAuthor.getFieldAuto(); + masterAuthor.setMaintainFieldId(maintainField.getId()) + .setCreateTime(new Date()) + .setUpdateTime(null) + .setId(DbUtils.getUUID()) + .insert(); + List<MasterAuthorDetail> masterAuthorDetails = masterAuthorDetailService.selectList(new EntityWrapper<MasterAuthorDetail>().eq(Constant.PARENT_ID, preMaintainField.getId())); + + for (MasterAuthorDetail masterAuthorDetail : masterAuthorDetails) { + masterAuthorDetail.setParentId(maintainField.getId()).setId(DbUtils.getUUID()).insert(); + } + + if (fieldAuto) { + for (String s : createFieldList) { + new MasterAuthorDetail().setField(s).setVal(Constant.z_AllVal).setAll(true).setParentId(maintainField.getId()).setId(DbUtils.getUUID()).insert(); + } + } + } + // + + + //delete + for (SysField field : deleteList) { field.deleteById(); } //update - List<SysField> updateList = fieldList.stream().filter(sysField -> (Operate.update.equals(sysField.getOperate()))).collect(Collectors.toList()); for (SysField field : updateList) { field.setOperate(null).updateById(); } - List<SysField> createList = fieldList.stream().filter(sysField -> (Operate.create.equals(sysField.getOperate()))).collect(Collectors.toList()); - for (SysField field : createList) { + for (SysField field : createList) { String fieldType = field.getFieldType(); if (StringUtils.isEmpty(fieldType)) { fieldType = Constant.varchar; @@ -230,9 +272,16 @@ field.setOperate(null).updateById(); } + + + } } + + + + @Override public int getUnFlowCount(String tableName, String userId) { List<MaintainField> maintainFields = selectList(new EntityWrapper<MaintainField>().eq("table_name", tableName)); -- Gitblit v1.8.0