package com.vci.ubcs.code.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.vci.ubcs.code.dto.CodeClassifyProcessTempDTO;
|
import com.vci.ubcs.code.entity.CodeClassifyProcessTemp;
|
import com.vci.ubcs.code.service.ICodeClassifyProcessTempService;
|
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyProcessTempVO;
|
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
|
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
|
import com.vci.ubcs.starter.web.pagemodel.DataGrid;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import com.vci.ubcs.starter.web.wrapper.VciQueryWrapperForDO;
|
import io.swagger.annotations.Api;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.tool.api.R;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
|
/**
|
* 分类使用的流程模板控制器
|
*
|
* @author weidy
|
* @date 2022-01-24
|
*/
|
@RestController
|
@RequestMapping("/codeClsProcessTempController")
|
@AllArgsConstructor
|
@Api(value = "编码库定义-流程模板", tags = "编码库定义-流程模板接口")
|
public class CodeClassifyProcessTempController {
|
|
/**
|
* 分类使用的流程模板 服务
|
*/
|
@Autowired
|
private ICodeClassifyProcessTempService codeClassifyProcessTempService;
|
|
/**
|
* 分类使用的流程模板列表
|
* @param baseQueryObject 基础查询对象,包含查询条件,分页,排序等
|
* @return 分类使用的流程模板显示对象列表
|
*/
|
@GetMapping("/gridCodeClassifyProcessTemp")
|
public R<IPage<CodeClassifyProcessTempVO>> gridCodeClassifyProcessTemp(BaseQueryObject baseQueryObject){
|
if(baseQueryObject == null){
|
baseQueryObject = new BaseQueryObject();
|
}
|
return R.data(codeClassifyProcessTempService.gridCodeClassifyProcessTemp(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()));
|
}
|
|
/**
|
* 增加 分类使用的流程模板
|
* @param codeClassifyProcessTempDTO 分类使用的流程模板数据传输对象
|
* @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
|
*/
|
@PostMapping( "/addSave")
|
public R<CodeClassifyProcessTempVO> addSave(@RequestBody CodeClassifyProcessTempDTO codeClassifyProcessTempDTO){
|
CodeClassifyProcessTempVO codeClassifyProcessTempVO = codeClassifyProcessTempService.addSave(codeClassifyProcessTempDTO);
|
return R.data(codeClassifyProcessTempVO);
|
}
|
|
/**
|
* 修改 分类使用的流程模板
|
* @param codeClassifyProcessTempDTO 分类使用的流程模板数据传输对象
|
* @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
|
*/
|
@PutMapping("/editSave")
|
public R<CodeClassifyProcessTempVO> editSave(@RequestBody CodeClassifyProcessTempDTO codeClassifyProcessTempDTO){
|
CodeClassifyProcessTempVO codeClassifyProcessTempVO = codeClassifyProcessTempService.editSave(codeClassifyProcessTempDTO);
|
return R.data(codeClassifyProcessTempVO);
|
}
|
|
/**
|
* 删除分类使用的流程模板
|
* @param codeClassifyProcessTempDTO 分类使用的流程模板数据传输对象,oid和ts需要传输
|
* @return 删除结果反馈::success:成功,fail:失败
|
*/
|
@DeleteMapping( "/deleteData")
|
public R delCodeClassifyProcessTemp(@Valid @RequestBody CodeClassifyProcessTempDTO codeClassifyProcessTempDTO) {
|
return codeClassifyProcessTempService.deleteCodeClassifyProcessTemp(codeClassifyProcessTempDTO);
|
}
|
|
/**
|
* 主键获取分类使用的流程模板
|
* @param oid 主键
|
* @return 分类使用的流程模板显示对象
|
*/
|
@GetMapping("/getObjectByOid")
|
public R<CodeClassifyProcessTempVO> getObjectByOid(String oid){
|
CodeClassifyProcessTempVO codeClassifyProcessTempVO = codeClassifyProcessTempService.getObjectByOid(oid);
|
return R.data(codeClassifyProcessTempVO);
|
}
|
|
/**
|
* 主键批量获取分类使用的流程模板
|
* @param oids 主键,多个以逗号分隔,但是受性能影响,建议一次查询不超过10000个
|
* @return 分类使用的流程模板显示对象
|
*/
|
@GetMapping("/listDataByOids")
|
public R<Collection<CodeClassifyProcessTempVO>> listCodeClassifyProcessTempByOids(String oids){
|
Collection<CodeClassifyProcessTempVO> voCollection = codeClassifyProcessTempService.listCodeClassifyProcessTempByOids(VciBaseUtil.str2List(oids));
|
return R.data(voCollection);
|
}
|
|
/**
|
* 参照分类使用的流程模板列表
|
* @param baseQueryObject 基础查询对象,包含查询条件,分页,排序等
|
* @return 分类使用的流程模板显示对象列表,生效的内容
|
*/
|
@GetMapping("/refDataGrid")
|
public R<IPage<CodeClassifyProcessTempVO>> refDataGridCodeClassifyProcessTemp(BaseQueryObject baseQueryObject){
|
if(baseQueryObject == null){
|
baseQueryObject = new BaseQueryObject();
|
}
|
return R.data(codeClassifyProcessTempService.refDataGridCodeClassifyProcessTemp(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()));
|
}
|
|
/**
|
* 使用模板获取使用的流程模板
|
* @param codeTemplateOid 模板的主键
|
* @param processUse 流程的用途
|
* @return 流程模板的信息
|
*/
|
@GetMapping("/listProcessTemplate")
|
public R<List<CodeClassifyProcessTempVO>> listProcessTemplate(String codeTemplateOid,String processUse){
|
List<CodeClassifyProcessTempVO> processTempVOList = codeClassifyProcessTempService.listProcessTemplate(codeTemplateOid,processUse);
|
return R.data(processTempVOList);
|
}
|
|
/**
|
* 使用模板获取使用的流程模板
|
* @param codeTemplateOid 模板的主键
|
* @param processUse 流程的用途
|
* @return 流程模板的信息
|
*/
|
@GetMapping("/listSameProcessTemplate")
|
public R<CodeClassifyProcessTempVO> listSameProcessTemplate(String codeTemplateOid,String processUse){
|
VciBaseUtil.alertNotNull(codeTemplateOid,"所选择的数据模板主键");
|
String s3 = VciBaseUtil.toInSql(codeTemplateOid);
|
/*Map<String,String> conditionMap=new HashMap<>();
|
conditionMap.put("classifyTemplateOid", QueryOptionConstant.IN + VciBaseUtil.toInSql(codeTemplateOid));
|
conditionMap.put("codeprocessuse",processUse);*/
|
LambdaQueryWrapper<CodeClassifyProcessTemp> LambdaQueryWrapper = Wrappers.<CodeClassifyProcessTemp>query()
|
.lambda().in(CodeClassifyProcessTemp::getClassifyTemplateOid, codeTemplateOid.split(","))
|
.eq(CodeClassifyProcessTemp::getCodeProcessUse, processUse);
|
|
List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS = codeClassifyProcessTempService.selectByWrapper(LambdaQueryWrapper);
|
//根据模板将数据整合在一起,去校验
|
Map<String/**模板oid**/, List<CodeClassifyProcessTempVO>/**数据对象**/> templateProcessTempateVOMap =
|
codeClassifyProcessTempVOS.stream().collect(Collectors.toMap(CodeClassifyProcessTempVO::getId, s->{
|
List<CodeClassifyProcessTempVO> l=new ArrayList<>();
|
l.add(s);
|
return l;
|
},(List<CodeClassifyProcessTempVO> s1,List<CodeClassifyProcessTempVO> s2)->{
|
s1.addAll(s2);
|
return s1;
|
}));
|
if(templateProcessTempateVOMap.size()>1){
|
return R.fail("流程模板不统一,不允许发起流程");
|
}else {
|
return R.data(codeClassifyProcessTempVOS.get(0));
|
}
|
}
|
|
}
|