package com.vci.ubcs.code.controller; import com.vci.ubcs.code.service.CodeRuleServiceI; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.util.VciBaseUtil; import com.vci.ubcs.code.dto.CodeRuleDTO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.Collection; import java.util.Map; /** * 主数据编码规则控制器 * * @author weidy * @date 2022-01-24 */ @RestController @RequestMapping("/mdmRuleController") public class CodeRuleController { /** * 主数据编码规则 服务 */ @Autowired private CodeRuleServiceI codeRuleService; /** * 主数据编码规则列表 * @param baseQueryObject 基础查询对象,包含查询条件,分页,排序等 * @return 主数据编码规则显示对象列表 */ @GetMapping("/gridCodeRule") public DataGrid gridCodeRule(BaseQueryObject baseQueryObject){ if(baseQueryObject == null){ baseQueryObject = new BaseQueryObject(); } DataGrid result = codeRuleService.gridCodeRule(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); return result; } /** * 增加 主数据编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象 * @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象 */ @PostMapping( "/addSave") public BaseResult addSave(@RequestBody CodeRuleDTO codeRuleDTO){ CodeRuleVO codeRuleVO = codeRuleService.addSave(codeRuleDTO); return BaseResult.success(codeRuleVO); } /** * 修改 主数据编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象 * @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象 */ @PutMapping("/editSave") public BaseResult editSave(@RequestBody CodeRuleDTO codeRuleDTO){ CodeRuleVO codeRuleVO = codeRuleService.editSave(codeRuleDTO); return BaseResult.success(codeRuleVO); } /** * 删除主数据编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象,oid和ts需要传输 * @return 删除结果反馈::success:成功,fail:失败 */ @DeleteMapping( "/deleteData") public BaseResult delCodeRule( CodeRuleDTO codeRuleDTO) { return codeRuleService.deleteCodeRule(codeRuleDTO); } /** * 主键获取主数据编码规则 * @param oid 主键 * @return 主数据编码规则显示对象 */ @GetMapping("/getObjectByOid") public BaseResult getObjectByOid(String oid){ CodeRuleVO codeRuleVO = codeRuleService.getObjectByOid(oid); return BaseResult.success(codeRuleVO); } /** * 主键批量获取主数据编码规则 * @param oids 主键,多个以逗号分隔,但是受性能影响,建议一次查询不超过10000个 * @return 主数据编码规则显示对象 */ @GetMapping("/listDataByOids") public BaseResult listCodeRuleByOids(String oids){ Collection voCollection = codeRuleService.listCodeRuleByOids(VciBaseUtil.str2List(oids)); BaseResult baseResult = BaseResult.success(); baseResult.setData(voCollection); return baseResult; } /** * 参照主数据编码规则列表 * @param baseQueryObject 基础查询对象,包含查询条件,分页,排序等 * @return 主数据编码规则显示对象列表,生效的内容 */ @GetMapping("/refDataGrid") public DataGrid refDataGridCodeRule(BaseQueryObject baseQueryObject){ if(baseQueryObject == null){ baseQueryObject = new BaseQueryObject(); } return codeRuleService.refDataGridCodeRule(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); } /** * 查看主数据编码规则的使用范围 * @param oid 主键 * @return 使用范围 */ @GetMapping("/listUseRange") public BaseResult listUseRange(String oid){ Collection voList = codeRuleService.listUseRangeInCodeClassify(oid); BaseResult baseResult = BaseResult.success(); baseResult.setData(voList); return baseResult; } /** * 停用与启用编码规则 * @param map 封装参数,包括oid 编码规则主键 update 更新状态的操作 * @return 执行结果 */ @PostMapping ("/updateStatus") public BaseResult updateStatus(@RequestBody Map map){ if (CollectionUtils.isEmpty(map)){ return BaseResult.fail("参数错误"); } String oid = map.get("oid"); String update = map.get("update"); return codeRuleService.updateStatus(oid,update); } /** * 克隆编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象,oid和ts需要传输 * @return 主数据编码规则显示对象 */ @PostMapping("/clone") public BaseResult cloneCodeRule(@RequestBody CodeRuleDTO codeRuleDTO){ return codeRuleService.cloneCodeRule(codeRuleDTO); } /** * 编码规则清空所有已生成的编码 * @param oid 编码规则主键 * @return 执行结果 */ @DeleteMapping("/clearAllCode") public BaseResult clearAllCode(String oid){ return codeRuleService.clearAllCode(oid); } }