jiangping
2025-04-15 85399c49234a51323449ce93dfdd540b02947e5a
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
@@ -78,6 +78,7 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(Workorder workorder) {
        this.isValidBaseParam(workorder);
        workorder.setCreateDate(new Date());
@@ -120,8 +121,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 = "";
@@ -200,6 +204,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());
@@ -215,11 +222,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());
@@ -268,9 +278,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)
@@ -279,14 +290,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(",")));
                }
            }
        }
    }
@@ -354,7 +363,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);
            }
@@ -420,8 +429,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<>();
            //待分配状态 处理转交按钮
@@ -536,6 +549,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()))
@@ -614,9 +630,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");