package com.highdatas.mdm.controller;
|
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
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.TableInfoMapper;
|
import com.highdatas.mdm.pojo.ActivitiStatus;
|
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.util.Constant;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
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;
|
|
/**
|
* <p>
|
* 前端控制器
|
* </p>
|
*
|
* @author kimi
|
* @since 2019-12-16
|
*/
|
@RestController
|
@RequestMapping("/maintain")
|
public class MaintainController {
|
@Autowired
|
IMaintainService maintainService;
|
@Autowired
|
ITUserService userService;
|
@Autowired
|
IMaintainDetailService maintainDetailService;
|
@Autowired
|
TableInfoMapper tableInfoMapper;
|
@Autowired
|
IFlowsService flowsService;
|
|
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
|
public Result get(@PathVariable String id) {
|
Maintain maintain = maintainService.selectById(id);
|
if (maintain == null) {
|
return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
|
}
|
return Result.success(maintain);
|
}
|
|
@RequestMapping(value = "{tableName}/unSubmit/{pageNo}", method = RequestMethod.GET)
|
public Result unSubmit(@PathVariable String tableName, @PathVariable Integer pageNo, HttpServletRequest request) throws UnsupportedEncodingException {
|
String pageSize = request.getParameter("pageSize");
|
String whereSegment = request.getParameter("whereSegment");
|
|
if (StringUtils.isEmpty(whereSegment)) {
|
whereSegment = Constant.WHERE_DEFAULT;
|
}else {
|
whereSegment = URLDecoder.decode(whereSegment, "UTF-8");
|
}
|
return maintainService.getUnSubmitData(tableName, pageNo, pageSize, whereSegment);
|
}
|
|
@RequestMapping(value = "{tableName}/unflow/{pageNo}", method = RequestMethod.GET)
|
public Result unflow(@PathVariable String tableName, @PathVariable Integer pageNo, HttpServletRequest request) throws UnsupportedEncodingException {
|
String pageSize = request.getParameter("pageSize");
|
String whereSegment = request.getParameter("whereSegment");
|
|
if (StringUtils.isEmpty(whereSegment)) {
|
whereSegment = Constant.WHERE_DEFAULT;
|
}else {
|
whereSegment = URLDecoder.decode(whereSegment, "UTF-8");
|
}
|
if (StringUtils.isEmpty(pageSize)) {
|
return maintainService.getInvalidVerionData(tableName, whereSegment, pageNo, null);
|
} else {
|
return maintainService.getInvalidVerionData(tableName, whereSegment, pageNo, Integer.valueOf(pageSize));
|
}
|
}
|
|
@RequestMapping(value = "/history/{tableName}", method = RequestMethod.GET)
|
public Result getHistory(@PathVariable String tableName) {
|
|
Maintain nowVersion = maintainService.getNowVersion(tableName);
|
if (nowVersion == 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));
|
|
if (maintainList == null) {
|
return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
|
}
|
|
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());
|
|
return Result.success(result);
|
}
|
|
@RequestMapping(value = "/detail/{id}/{pageNo}", method = RequestMethod.GET)
|
public Result detail(@PathVariable String id, @PathVariable int pageNo) {
|
Maintain maintain = maintainService.selectById(id);
|
String tableName = maintain.getTableName();
|
String tableTempName = tableName + Constant.RECORD;
|
|
List<MaintainDetail> maintainDetailList = maintainDetailService.selectList(new EntityWrapper<MaintainDetail>().eq("parent_id", id));
|
|
return Result.success(maintain);
|
}
|
|
@RequestMapping(value = "/all/{pageno}", method = RequestMethod.GET)
|
public Result all(@PathVariable int pageno, HttpServletRequest request) {
|
String tableName = request.getParameter("tableName");
|
String s = tableInfoMapper.selectTableByName(tableName);
|
|
Page<Maintain> result;
|
String pageSize = request.getParameter("pageSize");
|
Page<Maintain> maintainPage;
|
if (StringUtils.isEmpty(pageSize)) {
|
maintainPage = new Page<Maintain>(pageno, 20);
|
|
} else {
|
maintainPage = new Page<Maintain>(pageno, Integer.valueOf(pageSize));
|
}
|
if (StringUtils.isEmpty(tableName)) {
|
result = maintainService.selectPage(maintainPage);
|
} else {
|
Wrapper<Maintain> tableNameWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName);
|
tableNameWrapper.orderBy("version desc");
|
result = maintainService.selectPage(maintainPage, tableNameWrapper);
|
}
|
List<Maintain> records = result.getRecords();
|
List<Maintain> resultObj = new ArrayList<>();
|
|
for (Maintain record : records) {
|
String flowId = record.getFlowId();
|
if (StringUtils.isEmpty(flowId)) {
|
continue;
|
}
|
Flows flows = flowsService.selectById(flowId);
|
if (flows == null || !flows.getStatus().equals(ActivitiStatus.open)) {
|
continue;
|
}
|
String chargeId = record.getChargeId();
|
TUser user = userService.selectOne(new EntityWrapper<TUser>().eq("user_id", chargeId));
|
record.setChargeId(user.getUserName());
|
resultObj.add(record);
|
}
|
result.setRecords(resultObj);
|
return Result.success(result);
|
}
|
|
@RequestMapping(value = "/compare/{maintainId1}/{maintainId2}", method = RequestMethod.GET)
|
public Result compare(@PathVariable String maintainId1, @PathVariable String maintainId2) {
|
HashMap<Operate, Object> compare = maintainService.compare(maintainId1, maintainId2);
|
return Result.success(compare);
|
}
|
|
@RequestMapping(value = "/detail/{pageNo}", method = RequestMethod.GET)
|
public Result setFlowId(@RequestParam String flowId,@PathVariable Integer pageNo, HttpServletRequest request) {
|
String whereSegment = request.getParameter("whereSegment");
|
String pageSize = request.getParameter("pageSize");
|
if (StringUtils.isEmpty(whereSegment)) {
|
whereSegment = Constant.WHERE_DEFAULT;
|
}
|
if (StringUtils.isEmpty(pageSize)) {
|
return maintainService.tempDataByVersionByFlow(flowId, whereSegment, pageNo, null);
|
}
|
return maintainService.tempDataByVersionByFlow(flowId, whereSegment, pageNo, Integer.valueOf(pageSize));
|
}
|
|
|
@RequestMapping(value = "/set/{id}", method = RequestMethod.GET)
|
public Result setFlowId(@PathVariable String id, @RequestParam String flowid) {
|
Maintain maintain = maintainService.selectById(id);
|
if (maintain == null) {
|
return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
|
}
|
maintain.setFlowId(flowid);
|
maintain.updateById();
|
return Result.success(maintain);
|
}
|
}
|