kimi
2020-03-31 74472c9d22dddcb41383794caf0011043b20f817
src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java
@@ -9,6 +9,7 @@
import com.highdatas.mdm.entity.Flows;
import com.highdatas.mdm.entity.Maintain;
import com.highdatas.mdm.entity.MaintainDetail;
import com.highdatas.mdm.entity.TUser;
import com.highdatas.mdm.mapper.MaintainMapper;
import com.highdatas.mdm.mapper.TableInfoMapper;
import com.highdatas.mdm.pojo.*;
@@ -20,10 +21,7 @@
import org.springframework.stereotype.Service;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -98,7 +96,10 @@
        if (status.equals(ActivitiStatus.close)) {
             String collect = maintainDetailList.stream().map(detail -> DbUtils.quotedStr(detail.getPreMergeId())).collect(Collectors.joining(Constant.COMMA));
            //delete temp
            masterDataService.delete(tableName + Constant.RECORD, "id in (" +collect+ ")");
            if (!StringUtils.isEmpty(collect)) {
                masterDataService.delete(tableName + Constant.RECORD, "id in (" +collect+ ")");
            }
            //delete detail
            for (MaintainDetail maintainDetail : maintainDetailList) {
                maintainDetail.deleteById();
@@ -107,7 +108,7 @@
            maintain.deleteById();
            return;
        }
        String fields  = masterDataService.getTempFields(tableName);
        String fields  = masterDataService.getTempFields(null, tableName);
        String tempFields = masterDataService.getFields(tableName + Constant.RECORD);
        String tableTempName = tableName + Constant.RECORD;
@@ -172,8 +173,8 @@
    }
    @Override
    public Result getUnSubmitData(String tableName, Integer pageNo, String pageSize, String whereSegment) {
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNull("flow_id").orderBy("version desc");
    public Result getUnSubmitData(TUser user, String tableName, Integer pageNo, String pageSize, String whereSegment) {
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNull("flow_id").orderBy("order_no desc");
        Maintain maintain = selectOne(versionWrapper);
        if (maintain == null) {
            return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
@@ -186,7 +187,7 @@
        if (!StringUtils.isEmpty(pageSize)) {
            page.setPageSize(Integer.valueOf(pageSize));
        }
        String tempFields = masterDataService.getTempFields(tableName);
        String tempFields = masterDataService.getTempFields(user, tableName);
        List<Map<String, Object>> maps = maintainMapper.selectUnSubmitData(tempName, tempFields, whereSegment, DbUtils.quotedStr(maintainId), page.getLimitSQL());
        JSONObject object = new JSONObject();
        object.fluentPut("records", maps);
@@ -196,6 +197,49 @@
        object.fluentPut("pages", page.getPageCount());
        object.fluentPut("current", page.getPageNo());
        return Result.success(object);
    }
    @Override
    public Maintain getNextMaintain(String tableName, String userId) {
        Maintain maintain = this.getMaxVersion(tableName);
        Maintain unFlowMaxVersion = this.getUnFlowMaxVersion(tableName);
        if (unFlowMaxVersion == null) {
            unFlowMaxVersion = new Maintain();
            if (maintain != null) {
                unFlowMaxVersion.setVersion(DbUtils.versionAddSub(maintain.getVersion()));
                int orderNo = maintain.getOrderNo();
                orderNo++;
                unFlowMaxVersion.setOrderNo(orderNo);
            } else {
                unFlowMaxVersion.setVersion(Constant.VERSION_Default);
                unFlowMaxVersion.setOrderNo(0);
            }
            unFlowMaxVersion.setId(DbUtils.getUUID());
            unFlowMaxVersion.setChargeId(userId);
            unFlowMaxVersion.setCreateTime(new Date());
            unFlowMaxVersion.setTableName(tableName);
        }
        Maintain nowMaintain = unFlowMaxVersion;
        if (DbUtils.compareVersion(maintain, unFlowMaxVersion) != 0) {
            nowMaintain = new Maintain();
            String maintanId = DbUtils.getUUID();
            nowMaintain.setId(maintanId);
            nowMaintain.setCreateTime(new Date());
            int orderNo = maintain.getOrderNo();
            orderNo++;
            nowMaintain.setVersion(DbUtils.versionAddSub(maintain.getVersion()));
            nowMaintain.setOrderNo(orderNo);
            nowMaintain.setTableName(tableName);
        }
        nowMaintain.setChargeId(userId);
        String maintainId = nowMaintain.getId();
        if(StringUtils.isEmpty(maintainId)) {
            nowMaintain.setId(DbUtils.getUUID());
        }
        return nowMaintain;
    }
    @Override
@@ -212,7 +256,7 @@
    @Override
    public Maintain getMaxVersion(String tableName) {
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc");
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc");
        Maintain maxVersion = selectOne(versionWrapper);
        return maxVersion;
@@ -220,7 +264,7 @@
    @Override
    public Maintain getUnFlowMaxVersion(String tableName) {
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().isNull("flow_id").eq("table_name", tableName).orderBy("version desc");
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().isNull("flow_id").eq("table_name", tableName).orderBy("order_no desc");
        Maintain maxVersion = selectOne(versionWrapper);
        return maxVersion;
@@ -229,7 +273,7 @@
    @Override
    public Maintain getInvalidMaxVersion(String tableName) {
        Maintain result = null;
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc");
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc");
        List<Maintain> maintainList = selectList(versionWrapper);
@@ -252,13 +296,13 @@
    }
    @Override
    public Result getInvalidVerionData(String tableName, String where, Integer pageNo, Integer pageSize) {
    public Result getInvalidVerionData(TUser user, String tableName, String where, Integer pageNo, Integer pageSize) {
        Maintain invalidVersion = getInvalidMaxVersion(tableName);
        if (invalidVersion == null) {
            return Result.success(null);
        }
        String tableTempName = tableName + Constant.RECORD;
        String tempFields = masterDataService.getTempFields(tableName);
        String tempFields = masterDataService.getTempFields(user, tableName);
        Long count = maintainMapper.countInvalidVersionData(tableTempName, where, invalidVersion.getOrderNo());
        Page page = new Page(count);
        page.setPageNo(pageNo);
@@ -279,7 +323,7 @@
    @Override
    public Maintain getNowVersion(String tableName) {
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("version desc");
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no desc");
        List<Maintain> maintains = selectList(versionWrapper);
        for (Maintain maintain : maintains) {
@@ -299,7 +343,7 @@
    @Override
    public Maintain getRecentHistoryVersion(String tableName) {
        Maintain nowMaintain = null;
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("version desc");
        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no desc");
        List<Maintain> maintains = selectList(versionWrapper);
        for (Maintain maintain : maintains) {
            Flows flows = flowsService.selectById(maintain.getFlowId());
@@ -316,7 +360,7 @@
            }
        }
        if (nowMaintain == null) {
            nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc"));
            nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc"));
        }
        int orderNo = nowMaintain.getOrderNo();
        Maintain nowVersion = getNowVersion(tableName);
@@ -405,7 +449,7 @@
    }
    @Override
    public Result tempDataByVersionByFlow(String flowId, String whereSegment, Integer pageNo, Integer pageSize) {
    public Result tempDataByVersionByFlow(TUser user, String flowId, String whereSegment, Integer pageNo, Integer pageSize) {
        Flows flows = flowsService.selectById(flowId);
        if (flows == null) {
            return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
@@ -415,7 +459,7 @@
        if (maintain == null) {
            return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
        }
        String fields  = masterDataService.getTempFields(maintain.getTableName());
        String fields  = masterDataService.getTempFields(user, maintain.getTableName());
        String tableTempName = maintain.getTableName() + Constant.RECORD;
        long total = maintainMapper.countTempDataByVersionByFlow(tableTempName, flowId, whereSegment);