From 85399c49234a51323449ce93dfdd540b02947e5a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 15 四月 2025 08:20:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java |   44 +++++++++++++++++++++++++++++++-------------
 1 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
index 40564f3..655d2ec 100644
--- a/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
+++ b/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");

--
Gitblit v1.9.3