package com.vci.ubcs.code.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.vci.ubcs.code.dto.CodeBasicSecDTO;
|
import com.vci.ubcs.code.dto.CodeOrderDTO;
|
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
|
import com.vci.ubcs.code.dto.CodeRuleDTO;
|
import com.vci.ubcs.code.entity.CodeBasicSec;
|
import com.vci.ubcs.code.service.ICodeBasicSecService;
|
import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
|
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
|
import com.vci.ubcs.code.wrapper.CodeBasicSecWrapper;
|
import com.vci.ubcs.starter.exception.VciBaseException;
|
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springblade.core.log.exception.ServiceException;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.rmi.ServerException;
|
import java.util.ArrayList;
|
import java.util.Collection;
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* 码段基础信息控制器
|
*
|
* @author ludc
|
* @date 2022-01-24
|
*/
|
@RestController
|
@RequestMapping("/codeBasicSecController")
|
@Api(value = "码段基础信息控制器", tags = "码段基础信息控制器")
|
public class CodeBasicSecController {
|
|
/**
|
* 码段基础信息 服务
|
*/
|
@Autowired
|
private ICodeBasicSecService codeBasicSecService;
|
|
/**
|
* 码段基础信息列表
|
* @param bladeQueryObject 基础查询对象,包含查询条件,分页,排序等
|
* @return 码段基础信息显示对象列表
|
*/
|
@GetMapping("/gridCodeBasicSec")
|
@ApiOperationSupport(order = 2)
|
@ApiOperation(value = "分页 码段基础信息列表", notes = "传入codeRuleVO")
|
public R<IPage<CodeBasicSecVO>> gridCodeBasicSec(BladeQueryObject bladeQueryObject) throws Exception{
|
IPage<CodeBasicSecVO> codeRuleVOIPage = codeBasicSecService.gridCodeBasicSec(bladeQueryObject.getQuery().setAscs("ordernum"),bladeQueryObject.getConditionMap());
|
return R.data(codeRuleVOIPage);
|
}
|
|
/**
|
* 增加 码段基础信息
|
* @param codeBasicSecDTO 码段基础信息数据传输对象
|
* @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
|
*/
|
@PostMapping( "/addSave")
|
@ApiOperationSupport(order = 3)
|
@ApiOperation(value = "增加 码段基础信息", notes = "codeBasicSecDTO")
|
public R addSave(@Valid @RequestBody CodeBasicSecDTO codeBasicSecDTO){
|
boolean resBoolean;
|
try {
|
resBoolean = codeBasicSecService.addSave(codeBasicSecDTO);
|
} catch (VciBaseException e) {
|
return R.fail(e.getCode());
|
}
|
return R.status(resBoolean);
|
}
|
|
/** 修改 码段基础信息
|
* @param codeBasicSecDTO 码段基础信息数据传输对象
|
* @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
|
*/
|
@PutMapping("/editSave")
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "修改 码段基础信息", notes = "codeBasicSecDTO")
|
public R editSave(@RequestBody CodeBasicSecDTO codeBasicSecDTO) throws ServerException{
|
boolean resBoolean;
|
try {
|
resBoolean = codeBasicSecService.editSave(codeBasicSecDTO);
|
} catch (VciBaseException e) {
|
return R.fail(e.getCode());
|
}
|
return R.status(resBoolean);
|
}
|
|
/**
|
* 删除码段基础信息
|
* @param codeBasicSecDTO 码段基础信息数据传输对象,oid和ts需要传输
|
* @return 删除结果反馈::success:成功,fail:失败
|
*/
|
@DeleteMapping( "/deleteData")
|
@ApiOperationSupport(order = 5)
|
@ApiOperation(value = "删除码段基础信息", notes = "codeBasicSecDTO")
|
public R delCodeBasicSec(@Valid @RequestBody CodeBasicSecDTO codeBasicSecDTO) {
|
return codeBasicSecService.deleteCodeBasicSec(codeBasicSecDTO);
|
}
|
|
/**
|
* 主键获取码段基础信息
|
* @param oid 主键
|
* @return 码段基础信息显示对象
|
*/
|
@GetMapping("/getObjectByOid")
|
@ApiOperationSupport(order = 6)
|
@ApiOperation(value = "删除码段基础信息", notes = "codeBasicSecDTO")
|
public R<CodeBasicSecVO> getObjectByOid(String oid){
|
CodeBasicSecVO codeBasicSecVO = codeBasicSecService.getObjectByOid(oid);
|
return R.data(codeBasicSecVO);
|
}
|
|
/**
|
* 主键批量获取码段基础信息
|
* @param oids 主键,多个以逗号分隔,但是受性能影响,建议一次查询不超过10000个
|
* @return 码段基础信息显示对象
|
*/
|
@GetMapping("/listDataByOids")
|
@ApiOperationSupport(order = 7)
|
@ApiOperation(value = "主键批量获取码段基础信息", notes = "oids")
|
public R<Collection<CodeBasicSecVO>> listCodeBasicSecByOids(String oids){
|
Collection<CodeBasicSecVO> voCollection = codeBasicSecService.listCodeBasicSecByOids(VciBaseUtil.str2List(oids));
|
return R.data(voCollection);
|
}
|
|
/**
|
* 参照码段基础信息列表
|
* @param bladeQueryObject 基础查询对象,包含查询条件,分页,排序等
|
* @return 码段基础信息显示对象列表,生效的内容
|
*/
|
@GetMapping("/refDataGrid")
|
@ApiOperationSupport(order = 8)
|
@ApiOperation(value = "参照码段基础信息列表", notes = "codeBasicSecVO")
|
public R<IPage<CodeBasicSecVO>> refDataGridCodeBasicSec(BladeQueryObject bladeQueryObject){
|
return R.data(codeBasicSecService.refDataGridCodeBasicSec(bladeQueryObject.getQuery(), bladeQueryObject.getConditionMap()));
|
}
|
|
/**
|
* 参数分类码段基础信息列表
|
* @param bladeQueryObject 基础查询对象,包含查询条件,分页,排序等,必须要有编码规则的主键 pkCodeRule
|
* @return 码段的信息
|
*/
|
@GetMapping("/refDataGridClassifySec")
|
@ApiOperationSupport(order = 9)
|
@ApiOperation(value = "参数分类码段基础信息列表", notes = "codeBasicSecVO")
|
public R<IPage<CodeBasicSecVO>> refDataGridClassifySec(BladeQueryObject bladeQueryObject){
|
return R.data(codeBasicSecService.refDataGridClassifySec(bladeQueryObject.getQuery(), bladeQueryObject.getConditionMap()));
|
}
|
|
/**
|
* 克隆码段信息
|
* @param codeBasicSecDTO 码段基础信息数据传输对象,oidArr:选择源码段主键的集合,pkCodeRule:目标编码规则的主键
|
* @return 克隆结果反馈::success:成功,fail:失败
|
*/
|
@PostMapping("/clone")
|
@ApiOperationSupport(order = 10)
|
@ApiOperation(value = "克隆码段信息", notes = "codeBasicSecDTO")
|
public R cloneCodeBasicSec(@RequestBody CodeBasicSecDTO codeBasicSecDTO) throws ServerException {
|
VciBaseUtil.alertNotNull(codeBasicSecDTO.getOidArr(),"选择码段主键");
|
List<String> oidArr = VciBaseUtil.str2List(codeBasicSecDTO.getOidArr());
|
if (CollectionUtils.isEmpty(oidArr)){
|
return R.fail("选择码段主键不能为空");
|
}
|
return codeBasicSecService.cloneCodeBasicSec(oidArr,codeBasicSecDTO.getPkCodeRule());
|
}
|
|
/**
|
* 查询目标分类码段所在的树结构
|
* @param oid 目标分类码段主键
|
* @return 分类码段树结构
|
*/
|
/*@GetMapping("/treeCodeClassifySec")
|
@ApiOperationSupport(order = 11)
|
@ApiOperation(value = "查询目标分类码段所在的树结构", notes = "oid")
|
public List<Tree> gridCodeClassifySecTree (String oid){
|
VciBaseUtil.alertNotNull(oid,"分类码段主键");
|
return codeBasicSecService.gridCodeClassifySecTree(oid);
|
}*/
|
|
/**
|
* 上移
|
* @param oid 主键
|
* @return 执行结果
|
*/
|
@PostMapping("/upOrderNum")
|
@ApiOperationSupport(order = 11)
|
@ApiOperation(value = "上移", notes = "oid")
|
public R upOrderNum(@Valid @RequestParam String oid){
|
return R.status(codeBasicSecService.upOrderNum(oid));
|
}
|
|
/**
|
* 下移
|
* @param oid 主键
|
* @return 执行结果
|
*/
|
@PostMapping("/downOrderNum")
|
@ApiOperationSupport(order = 12)
|
@ApiOperation(value = "下移", notes = "oid")
|
public R downOrderNum(@Valid @RequestParam String oid){
|
return R.status(codeBasicSecService.downOrderNum(oid));
|
}
|
|
/**
|
* 查询编码规则的所有流水依赖的码段
|
* @param ruleOid 编码规则主键
|
* @return
|
*/
|
@GetMapping("/getCodeRuleAndBasicSecByRuleOid")
|
@ApiOperationSupport(order = 13)
|
@ApiOperation(value = "查询编码规则的所有流水依赖的码段", notes = "传入oid")
|
public R<CodeRuleVO> getCodeRuleAndBasicSecByRuleOid(String ruleOid){
|
return R.data(codeBasicSecService.getSerialNumberDepend(ruleOid));
|
}
|
|
/**
|
* 设置最大流水号
|
* @param codeOrderDTO 编码申请传输对象
|
* @return
|
*/
|
@PostMapping("/setMaxSerialNumberForCodeRule")
|
@ApiOperationSupport(order = 14)
|
@ApiOperation(value = "设置最大流水号", notes = "codeOrderDTO")
|
public R setMaxSerialNumberForCodeRule(@RequestBody CodeOrderDTO codeOrderDTO){
|
return R.success(codeBasicSecService.setMaxSerialNumberForCodeRule(codeOrderDTO));
|
}
|
|
/***
|
* 根据流水依赖获取最大流水号
|
* @param secMap
|
* @return
|
*/
|
@GetMapping("/getMaxSerialNumberForCodeRule")
|
@ApiOperationSupport(order = 15)
|
@ApiOperation(value = "查询编码规则的所有流水依赖的最大流水", notes = "传入oid")
|
public R getMaxSerialNumberForCodeRule(@RequestParam Map<String,String> secMap){
|
if (secMap.isEmpty() && Func.isBlank(secMap.get("codeRuleOid"))) {
|
throw new ServiceException("最大流水号的流水依赖不能为空!");
|
}
|
CodeOrderDTO codeOrderDTO = new CodeOrderDTO();
|
codeOrderDTO.setCodeRuleOid(secMap.get("codeRuleOid"));
|
secMap.remove("codeRuleOid");
|
List<CodeOrderSecDTO> secDTOList = new ArrayList<>();
|
secMap.entrySet().stream().forEach(item->{
|
secDTOList.add(new CodeOrderSecDTO(item.getKey(),item.getValue()));
|
});
|
codeOrderDTO.setSecDTOList(secDTOList);
|
return R.data(codeBasicSecService.getMaxSerialNumberForCodeRule(codeOrderDTO));
|
}
|
|
}
|