package org.jeecg.modules.base.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.base.entity.EncodeRule; import org.jeecg.modules.base.entity.EncodeRuleDepart; import org.jeecg.modules.base.entity.EncodeRuleDetail; import org.jeecg.modules.base.service.IEncodeRuleDepartService; import org.jeecg.modules.base.service.IEncodeRuleDetailService; import org.jeecg.modules.base.service.IEncodeRuleService; import org.jeecg.modules.system.service.SysIdentityService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * @Title: Controller * @Description: 编码规则详情表 前端控制器 * @Author: cuijian * @Date: 2022-11-03 * @Version: V1.0 */ @RestController @RequestMapping("/base/codeRuleDetail") @Slf4j public class EncodeRuleDetailController { @Resource private IEncodeRuleService encodeRuleService; @Resource private IEncodeRuleDetailService encodeRuleDetailService; @Autowired private IEncodeRuleDepartService encodeRuleDepartService; @Autowired private SysIdentityService sysIdentityService; /** * 查询数据 根据规则编码id查询规则编码详细信息 * @author cj * @param ruleCodeId * @return */ @GetMapping(value = "/getCodeRuleDetailByRuleCodeId") public Result> getCodeRuleDetailByCodeRuleId(@RequestParam String ruleCodeId){ Result> result = new Result<>(); if(StringUtils.isNotBlank(ruleCodeId)){ List list = encodeRuleDetailService.getCodeRuleDetailByCodeRuleId(ruleCodeId); result.setResult(list); } return result; } /** * 增加数据 添加和修改编码规则详细信息 * @author cj * @param encodeRuleDetail * @return */ @PostMapping(value = "/addEncodeRuleDetail") public Result addEncodeRuleDetail(@RequestBody EncodeRuleDetail encodeRuleDetail){ Result result = new Result<>(); try{ encodeRuleDetailService.saveOrUpdate(encodeRuleDetail); result.success("操作成功"); }catch (Exception e){ result.error500("操作失败"); } return result; } /** * 删除数据 删除选中的编码规则详情信息 * @author cj * @param ids * @return */ @DeleteMapping(value = "/deleteEncodeRuleDetail") public Result deleteEncodeRuleDetail(@RequestParam String ids){ Result result = new Result<>(); if(oConvertUtils.isEmpty(ids)) { result.error500("未选中编码规则详情!"); }else { String[] ls = ids.split(","); for (String id : ls) { encodeRuleDetailService.removeById(id); } result.success("删除成功!"); } return result; } /** * 生成编码 * @author cj * @param permissionId * @return */ @GetMapping(value = "/getCode") public Result getCode(@RequestParam String permissionId){ //获取当前登录用户 LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); Result result = new Result<>(); String prifix = ""; //查询企业下针对菜单是否有启用的编码规则 List encodeRuleList = encodeRuleService.lambdaQuery() .eq(EncodeRule::getPermissionId,permissionId) // .eq(EncodeRule::getEnterpriseId,user.getEnterpriseId()) .eq(EncodeRule::getStatus,"1") .eq(EncodeRule::getDelFlag, CommonConstant.DEL_FLAG_0).list(); if(CollectionUtils.isNotEmpty(encodeRuleList)){ //查询登录人的部门是否关联了编码规则 List encodeRuleDepartList = encodeRuleDepartService.lambdaQuery() .eq(EncodeRuleDepart::getCodeRuleId,encodeRuleList.get(0).getId()) .eq(EncodeRuleDepart::getDelFlag,CommonConstant.DEL_FLAG_0) // .eq(EncodeRuleDepart::getDepartId,user.getDepartId()) .list(); if(CollectionUtils.isNotEmpty(encodeRuleDepartList)){ //查询编码规则是否有编码规则详情 List encodeRuleDetailList = encodeRuleDetailService.lambdaQuery() .eq(EncodeRuleDetail::getCodeRuleId,encodeRuleList.get(0).getId()) .eq(EncodeRuleDetail::getDelFlag,CommonConstant.DEL_FLAG_0).orderByAsc(EncodeRuleDetail::getSequence).list(); if(CollectionUtils.isNotEmpty(encodeRuleDetailList)){ for(EncodeRuleDetail encodeRuleDetail : encodeRuleDetailList){ if("2".equals(encodeRuleDetail.getCodeElement())){ prifix += encodeRuleDetail.getElementValue(); }else if("1".equals(encodeRuleDetail.getCodeElement())){ if("1".equals(encodeRuleDetail.getTimeFormat())){ prifix += DateUtils.date2Str(new Date(),DateUtils.yyyyMMdd.get()); }else if("2".equals(encodeRuleDetail.getTimeFormat())){ prifix += DateUtils.date2Str(new Date(),new SimpleDateFormat("yyyyMM")); }else if("3".equals(encodeRuleDetail.getTimeFormat())){ prifix += DateUtils.date2Str(new Date(),DateUtils.yearFormat.get()); } }else if("3".equals(encodeRuleDetail.getCodeElement())){ prifix += sysIdentityService.getNumByTypeAndLength(permissionId,encodeRuleDetail.getLength()); } } }else { result.error500("请维护编码规则详情"); } }else { result.error500("您的账号没有关联编码规则"); } }else{ result.error500("请维护编码规则"); } return Result.OK(prifix); } }