k94314517
2025-04-14 997058fc1caec43ad2518d88c94a39db02e0292b
工单业务
已修改9个文件
82 ■■■■■ 文件已修改
server/src/main/java/com/doumee/api/common/PublicCloudController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/api/web/WebCategoryController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/api/web/WebWorkOrderController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/dao/business/model/Managers.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/service/business/CategoryService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/api/common/PublicCloudController.java
@@ -166,7 +166,11 @@
//        folder = systemDictDataBiz.queryByCode(Constants.FTP,folder).getCode();
        Date d1 = new Date();
        log.error("总得上传文件成功=============开始========="+DateUtil.getPlusTime2(d1));
        folder =StringUtils.defaultString(folder).replace("/", "");
        SystemDictData folderData =  systemDictDataBiz.queryByCode(Constants.FTP,folder);
        if(Objects.isNull(folderData)||StringUtils.isBlank(folderData.getCode())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"目标文件夹错误");
        }
        folder =folderData.getCode().replace("/", "");
        String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
        InputStream is = null;
        response.setCharacterEncoding("UTF-8");
server/src/main/java/com/doumee/api/web/WebCategoryController.java
@@ -38,11 +38,11 @@
    @LoginRequired
    @GetMapping("/categoryTree")
    @ApiOperation("获取分类类别获取分类树")
    public ApiResponse<List<CategoryVO>> categoryVOTree(@RequestParam String categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
    public ApiResponse<List<CategoryVO>> categoryVOTree(@RequestParam String categoryType,Integer categoryId, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
        try {
            jwtTokenUtil.getUserInfoByToken(token);
            return ApiResponse.success(categoryService.getCategoryVOTree(categoryType));
            return ApiResponse.success(categoryService.getCategoryVOTree(categoryType,categoryId));
        }catch (BusinessException e){
            return ApiResponse.failed(e.getCode(),e.getMessage());
        }catch (Exception e){
@@ -54,11 +54,11 @@
    @LoginRequired
    @GetMapping("/categoryList")
    @ApiOperation("获取分类类别获取分类列表")
    public ApiResponse<List<CategoryVO>> categoryList(Integer categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
    public ApiResponse<List<CategoryVO>> categoryList(Integer categoryType,Integer isRoot ,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
        try {
            jwtTokenUtil.getUserInfoByToken(token);
            return ApiResponse.success(categoryService.getCategoryVOList(categoryType));
            return ApiResponse.success(categoryService.getCategoryVOList(categoryType,isRoot));
        }catch (BusinessException e){
            return ApiResponse.failed(e.getCode(),e.getMessage());
        }catch (Exception e){
server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
@@ -54,11 +54,9 @@
    @PostMapping("/create")
    public ApiResponse create (@RequestBody Workorder workorder, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) {
        try {
            Member user =  jwtTokenUtil.getUserInfoByToken(token);
            workorder.setMemberId(user.getId());
            workorderService.create(workorder);
            return ApiResponse.success("操作成功");
            return ApiResponse.success(workorderService.create(workorder));
        }catch (BusinessException e){
            return ApiResponse.failed(e.getCode(),e.getMessage());
        }catch (Exception e){
server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
@@ -81,6 +81,7 @@
        return null;
    }
    public static QywxSendMsgResponse sendMsg(String token, QywxSendMsgRequest param)  {
        try{
        String[] interfaceUrl = QywxConstant.SEND_MSG;
        String url = interfaceUrl[0].replace("${accesstoken}",token);
        QywxSendMsgResponse response = sendHttpRequestSingle(url,interfaceUrl[1],JSONObject.toJSONString(param)
@@ -88,6 +89,10 @@
        if(response.getErrcode()!=null && response.getErrcode() ==0){
            return response;
        }
        }catch (Exception e){
        }
        return null;
    }
    public static List<QywxUserListResponse> getUserList(String token,String depatId)   {
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java
@@ -16,6 +16,6 @@
    private Integer errcode;
    @ApiModelProperty(value = "返回码提示语")
    private boolean errmsg;
    private String errmsg;
}
server/src/main/java/com/doumee/dao/business/model/Managers.java
@@ -74,6 +74,9 @@
    @ApiModelProperty(value = "员工手机号")
    @TableField(exist = false)
    private String memberPhone;
    @ApiModelProperty(value = "企微主键", example = "1")
    @TableField(exist = false)
    private String qwId;
    @ApiModelProperty(value = "姓名/手机号/部门")
    @TableField(exist = false)
server/src/main/java/com/doumee/service/business/CategoryService.java
@@ -102,9 +102,9 @@
     * @param categoryType
     * @return
     */
    List<CategoryVO>  getCategoryVOTree(String categoryType);
    List<CategoryVO>  getCategoryVOTree(String categoryType,Integer categoryId);
    List<CategoryVO>  getCategoryVOList(Integer categoryType);
    List<CategoryVO>  getCategoryVOList(Integer categoryType,Integer isRoot);
    List<Category> treeList(Category param );
}
server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -268,10 +268,11 @@
    @Override
    public List<CategoryVO>  getCategoryVOTree(String categoryType){
    public List<CategoryVO>  getCategoryVOTree(String categoryType,Integer categoryId){
        List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
                .eq(Category::getIsdeleted, Constants.ZERO)
                .in(Objects.nonNull(categoryType),Category::getType,categoryType.split(","))
                .apply(Objects.nonNull(categoryId)," find_in_set("+categoryId+", REPLACE(ID_PATH,'/',',')  )  ")
                .orderByAsc(Category::getSortnum,Category::getId)
        );
        List<CategoryVO>  categoryVOList = new ArrayList<>();
@@ -291,10 +292,11 @@
    @Override
    public List<CategoryVO>  getCategoryVOList(Integer categoryType){
    public List<CategoryVO>  getCategoryVOList(Integer categoryType,Integer isRoot){
        List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
                .eq(Category::getIsdeleted, Constants.ZERO)
                .eq(Objects.nonNull(categoryType),Category::getType,categoryType)
                .isNull(Constants.equalsInteger(isRoot,Constants.ONE),Category::getParentId)
                .orderByAsc(Category::getSortnum,Category::getId)
        );
        List<CategoryVO>  categoryVOList = new ArrayList<>();
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
@@ -75,6 +75,7 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(Workorder workorder) {
        this.isValidBaseParam(workorder);
        workorder.setCreateDate(new Date());
@@ -117,8 +118,11 @@
     * @param csInfo 抄送信息
     */
    public void sendQwMsg(Workorder workorder,String qwIds,Member member,String categoryName,Integer contentType,String csInfo){
        if(StringUtils.isEmpty(qwIds)){
            return;
        }
        QywxSendMsgRequest qywxSendMsgRequest = new QywxSendMsgRequest();
        qywxSendMsgRequest.setMsgtype("text");
        qywxSendMsgRequest.setMsgtype("textcard");
        qywxSendMsgRequest.setTouser(qwIds.replace(",","|"));
        qywxSendMsgRequest.setAgentid(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_AGENTID).getCode());
        String sendUser = "";
@@ -197,6 +201,9 @@
        List<Multifile> multifileList = workorder.getMultifileList();
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
            for (Multifile multifile:multifileList) {
                if(StringUtils.isEmpty(multifile.getFileurl())){
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件信息错误!");
                }
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setObjId(workorder.getId());
                multifile.setCreateDate(new Date());
@@ -212,11 +219,14 @@
     * @param workorder
     */
    public void saveProblemData(Workorder workorder){
        if(Constants.equalsInteger(workorder.getType(),Constants.TWO)){
        if(Constants.equalsInteger(workorder.getType(),Constants.ONE)){
            List<DCANoProblemDTO> dcaNoProblemDTOList = workorder.getDcaNoProblemDTOList();
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(dcaNoProblemDTOList)){
                for (DCANoProblemDTO dcaNoProblemDTO:dcaNoProblemDTOList) {
                    Category problem = categoryMapper.selectById(dcaNoProblemDTO.getProblemId());
                    if(!Constants.equalsInteger(problem.getType(),6)){
                        throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"题目分类错误");
                    }
                    Constants.WorkOrderStatus workOrderStatus = Constants.WorkOrderStatus.waitConfirm;
                    Workorder dcaWorkOrder = new Workorder();
                    dcaWorkOrder.setCreateDate(new Date());
@@ -265,9 +275,10 @@
            }
        }
        //跌绊滑事件上报 查询SHE负责人
        if(Constants.equalsInteger(workorder.getType(),Constants.THREE) || Constants.equalsInteger(workorder.getType(),Constants.ONE)){
        if(Constants.equalsInteger(workorder.getType(),Constants.THREE) || Constants.equalsInteger(workorder.getType(),Constants.ONE)|| Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
            List<Managers> managersList = managersMapper.selectJoinList(Managers.class,new MPJLambdaWrapper<Managers>().selectAll(Managers.class)
                    .selectAs(Member::getName,Managers::getMemberName)
                    .selectAs(Member::getQwId,Managers::getQwId)
                    .leftJoin(Member.class,Member::getId,Managers::getMemberId)
                    .eq(Managers::getIsdeleted,Constants.ZERO)
                    .eq(Managers::getType,Constants.ZERO).orderByAsc(Managers::getSortnum)
@@ -276,14 +287,12 @@
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到SHE处理抄送人员");
            }
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(managersList)){
                workorder.setQwnoticeMemberIds(managersList.stream().map(i->i.getMemberId().toString()).collect(Collectors.joining(",")));
                workorder.setQwnoticeMemberIds(managersList.stream().filter(i->Constants.equalsInteger(i.getIsQw(),Constants.ONE)).map(i->i.getQwId()).collect(Collectors.joining(",")));
                if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
                    workorder.setEmialMemberIds(managersList.stream().map(i->i.getMemberId().toString()).collect(Collectors.joining(",")));
                    workorder.setEmialMemberIds(managersList.stream().filter(i->Constants.equalsInteger(i.getIsEmail(),Constants.ONE)).map(i->i.getQwId()).collect(Collectors.joining(",")));
                }
            }
        }
    }
@@ -351,7 +360,7 @@
        if(Constants.equalsInteger(workorder.getType(),Constants.ONE)){
            if(Objects.isNull(workorder.getDcaYesNum())
                || Objects.isNull(workorder.getDcaNoNum())
                    || Objects.isNull(workorder.getCategoryId())
//                    || Objects.isNull(workorder.getCategoryId())
            ){
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
@@ -417,8 +426,12 @@
        if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getQwId())){
            List<String> closeUserList = new ArrayList<>();
            closeUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(",")));
            closeUserList.add(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getManagerId())?workorder.getManagerId():null);
            closeUserList.add(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getDealerId())?workorder.getDealerId():null);
            if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getManagerId())){
                closeUserList.add(workorder.getManagerId());
            }
            if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getDealerId())){
                closeUserList.add(workorder.getDealerId());
            }
            workorder.setCloseButton(closeUserList.stream().filter(i->i.equals(member.getQwId())).collect(Collectors.toList()).size()>Constants.ZERO?Constants.ONE:Constants.ZERO);
            List<String> passOnUserList = new ArrayList<>();
            //待分配状态 处理转交按钮
@@ -533,6 +546,9 @@
                .leftJoin(Member.class,Member::getId,Workorder::getMemberId)
                .leftJoin(" category c3 on  t.TYPE_ID = c3.id   ") //风险类型
                .leftJoin(" category c2 on  t.CATEGORY_ID = c2.id   ") //DCA一级问题编码
                .apply(Objects.nonNull(pageWrap.getMyWorkOrder())&& org.apache.commons.lang3.StringUtils.isNotBlank(pageWrap.getQwId())
                                &&Constants.equalsInteger(Constants.ONE,pageWrap.getMyWorkOrder()),
                        " ( t.id in (  select OBJ_ID from notices where param1 = '"+pageWrap.getQwId()+"' and type != 3  ))  ")
                .eq( pageWrap.getId() != null, Workorder::getId, pageWrap.getId())
                .eq( pageWrap.getCreator() != null, Workorder::getCreator, pageWrap.getCreator())
                .ge( pageWrap.getCreateDate() != null, Workorder::getCreateDate, Utils.Date.getStart( pageWrap.getCreateDate()))
@@ -611,9 +627,11 @@
        }else if(Constants.equalsInteger(type,Constants.THREE)){
            key = "A";
        }
        String code = redisTemplate.opsForValue().get(key+"_CODE").toString();
        if(StringUtils.isEmpty(code)){
            code = "01";
        String code = "01";
        try{
            code = redisTemplate.opsForValue().get(key+"_CODE").toString();
        }catch (Exception e){
        }
        redisTemplate.opsForValue().set(key+"_CODE",Integer.valueOf(code)+1);
        return key + date + org.apache.commons.lang3.StringUtils.leftPad(code,2,"0");