kimi42345
2020-03-23 5bac93baf5659ce013163f884c9dce41990a860e
src/main/java/com/highdatas/mdm/controller/MaintainController.java
@@ -13,10 +13,7 @@
import com.highdatas.mdm.pojo.CodeMsg;
import com.highdatas.mdm.pojo.Operate;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.service.IFlowsService;
import com.highdatas.mdm.service.IMaintainDetailService;
import com.highdatas.mdm.service.IMaintainService;
import com.highdatas.mdm.service.ITUserService;
import com.highdatas.mdm.service.*;
import com.highdatas.mdm.util.Constant;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,10 +22,7 @@
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import java.util.*;
/**
 * <p>
@@ -51,6 +45,8 @@
    TableInfoMapper tableInfoMapper;
    @Autowired
    IFlowsService  flowsService;
    @Autowired
    IMaintainFieldService maintainFieldService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    public Result get(@PathVariable String id) {
@@ -91,27 +87,65 @@
        }
    }
    @RequestMapping(value = "/history/{tableName}", method = RequestMethod.GET)
    public Result getHistory(@PathVariable String tableName) {
    @RequestMapping(value = "/version/{tableName}", method = RequestMethod.GET)
    public Result getHistory(@PathVariable String tableName, HttpServletRequest request) {
        TUser user = (TUser) request.getSession().getAttribute("user");
        String userId = user.getUserId();
        Maintain nowVersion = maintainService.getNowVersion(tableName);
        if (nowVersion == null) {
        Maintain maxVersion = maintainService.getMaxVersion(tableName);
        if (maxVersion == null) {
            return Result.error(new CodeMsg(100001,"无当前版本"));
        }
        List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().eq("table_name", tableName).le("order_no",nowVersion.getOrderNo() - 1).orderBy("order_no",false));
        Maintain nowVersion = maintainService.getNowVersion(tableName);
        if (maintainList == null) {
            return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
        List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no",false));
        List<Maintain> result = new ArrayList<>();
        int count = 0;
        for (Maintain maintain : maintainList) {
            String flowId = maintain.getFlowId();
            if (StringUtils.isEmpty(flowId)) {
                continue;
            }
            Flows flows = flowsService.selectById(maintain.getFlowId());
            if (flows.getStatus().equals(ActivitiStatus.close)) {
                continue;
            }
            if (flows.getStatus().equals(ActivitiStatus.working) || flows.getStatus().equals(ActivitiStatus.refuse)) {
                boolean nextAudit = flowsService.isNextAudit(flows, userId);
                if (nextAudit) {
                    count++;
                }
//                count++;
                continue;
            }else if(flows.getStatus().equals(ActivitiStatus.open)){
                maintain.setMaintainType(1);
            }
            if (nowVersion != null  && maintain.getId().equalsIgnoreCase(nowVersion.getId())) {
                maintain.setMaintainType(0);
            }
            result.add(maintain);
        }
        //
        int cnt = maintainFieldService.getUnFlowCount(tableName, userId);
        count += cnt;
        if (count > 0) {
            Maintain maintain = new Maintain();
            maintain.setMaintainType(-1);
            maintain.setVersion("待审核");
            maintain.setTableName(tableName);
            maintain.setRecordCount(count);
            result.add(maintain);
        }
        List<String> result = maintainList.stream()
                .filter(maintain -> !StringUtils.isEmpty(maintain.getFlowId()))
                .filter(maintain -> flowsService.selectById(maintain.getFlowId()).getStatus().equals(ActivitiStatus.open))
                .map(maintain -> maintain.getVersion())
                .collect(Collectors.toList());
        Collections.sort(result, new Comparator<Maintain>() {
            @Override
            public int compare(Maintain o1, Maintain o2) {
                return o1.getMaintainType().compareTo(o2.getMaintainType());
            }
        });
        return Result.success(result);
    }
}
    @RequestMapping(value = "/detail/{id}/{pageNo}", method = RequestMethod.GET)
    public Result detail(@PathVariable String id, @PathVariable int pageNo) {
@@ -142,7 +176,7 @@
            result = maintainService.selectPage(maintainPage);
        } else {
            Wrapper<Maintain> tableNameWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName);
            tableNameWrapper.orderBy("order_by desc");
            tableNameWrapper.orderBy("order_no desc");
            result = maintainService.selectPage(maintainPage, tableNameWrapper);
        }
        List<Maintain> records = result.getRecords();
@@ -172,6 +206,16 @@
        return Result.success(compare);
    }
    @RequestMapping(value = "/canUpload/{tableName}", method = RequestMethod.GET)
    public Result canUpload(@PathVariable String tableName) {
        Maintain nowVersion = maintainService.getNowVersion(tableName);
        if (nowVersion == null) {
            return Result.success(true);
        }else {
            return Result.success(false);
        }
    }
    @RequestMapping(value = "/detail/{pageNo}", method = RequestMethod.GET)
    public Result setFlowId(@RequestParam String flowId,@PathVariable Integer pageNo, HttpServletRequest request) {
        String whereSegment = request.getParameter("whereSegment");