From b55224c792ff67fc41fb035d200120017709102d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 15 四月 2025 08:17:56 +0800
Subject: [PATCH] 代码初始化

---
 server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java |  134 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 130 insertions(+), 4 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 dd7ed90..40564f3 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
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.common.EmailService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.catalina.Manager;
@@ -57,6 +58,8 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private EmailService emailService;
 
     @Autowired
     private MemberMapper memberMapper;
@@ -806,11 +809,29 @@
         }
         Constants.WORKORDER_SHE_EMAIL_SENDING = true;
         try {
-            List<Notices> list = noticesMapper.selectList(new QueryWrapper<Notices>().lambda()
-                    .eq(Notices::getIsdeleted,Constants.ZERO)
-                    .eq(Notices::getStatus,Constants.ZERO)
-                    .eq(Notices::getType,Constants.THREE)//閭閫氱煡
+            List<Workorder> list = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>()
+                    .selectAll(Workorder.class)
+                    .selectAs(Member::getName,Workorder::getMemberName)
+                    .selectAs(Member::getCompanyName,Workorder::getCompanyName)
+                    .selectAs(Member::getPhone,Workorder::getMemberPhone)
+                    .select(" c2.name_path ",Workorder::getCategoryName)
+                    .select(" c3.name_path ",Workorder::getTypeName)
+                    .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涓�绾ч棶棰樼紪鐮�
+                    .eq(Workorder::getIsdeleted,Constants.ZERO)
+                    .eq(Workorder::getEmailStatus,Constants.ZERO)
+                    .eq(Workorder::getType,Constants.ZERO)
+                    .isNotNull(Workorder::getEmialMemberIds )//閭閫氱煡
             );
+            if(list!=null && list.size()>0){
+                Date date = new Date();
+                String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+                        +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode();
+                for(Workorder workorder :list){
+                   dealEmailBiz(workorder,date,path);
+                }
+            }
 
         }catch (Exception e){
             log.error("==================瀹氭椂鍙戠敓SHE閭欢澶辫触锛�"+e.getMessage());
@@ -820,6 +841,111 @@
 
 
     }
+    @Transactional
+    private void dealEmailBiz(Workorder workorder, Date date,String path) {
+        List<Notices> noticesList = new ArrayList<>();
+        int status =1;
+        String info ="閭宸插彂閫侊細";
+        String ids = workorder.getEmialMemberIds();
+        List<Member> memberList = getEmailMemberlistByIDs(ids);
+        if(memberList == null || memberList.size() ==0){
+              status = 2;
+              info ="鏃犳晥鍛樺伐淇℃伅锛屾棤娉曞彂閫侀偖绠�";
+        }else{
+            List<String>    successInfo = new ArrayList<>();
+            List<String> errorInfo = new ArrayList<>();
+            Map<String,String> contentForm = getEmailContentFormByModel(workorder);
+            List<String> imgList = getEmailImglistByModel(workorder,path);
+            for(Member m : memberList){
+                if(org.apache.commons.lang3.StringUtils.isNotBlank(m.getEmail())){
+                    //濡傛灉閭涓嶄负绌猴紝杩涜閭鍙戦��
+                    successInfo.add(m.getName()+"閭"+m.getEmail()+"");
+                   if( emailService.sendEmailWithImages(m.getEmail(),"SHE浜嬩欢宸ュ崟涓婃姤閫氱煡", contentForm,imgList)){
+                       Notices notices = new Notices();
+                       notices.setType(Constants.THREE+"");
+                       notices.setIsdeleted(Constants.ZERO);
+                       notices.setObjId(workorder.getId());
+                       notices.setTitle("SHE浜嬩欢宸ュ崟涓婃姤閭欢閫氱煡");
+                       notices.setContent(JSONObject.toJSONString(contentForm));
+                       notices.setRemark(JSONObject.toJSONString(imgList));
+                       notices.setObjType(Constants.ZERO+"");
+                       notices.setStatus(Constants.ZERO);
+                       notices.setSendacopy(Constants.ONE);
+                       notices.setMemberId(m.getId());
+                       noticesList.add(notices);
+                   }else{
+                       errorInfo.add(m.getName()+"/鏃犻偖绠�");
+                   }
+                }else{
+                    errorInfo.add(m.getName()+"/閭"+m.getEmail()+"");
+                }
+
+            }
+            info += "鎴愬姛锛�"+JSONObject.toJSONString(successInfo) +"澶辫触锛�"+JSONObject.toJSONString(errorInfo);
+        }
+
+        Workorder update = new Workorder();
+        update.setId(workorder.getId());
+        update.setEmailDate(date);
+        update.setEmailStatus(status );
+        update.setEmailInfo(info);
+        this.updateById(update);//鏇存柊宸ュ崟閭欢鍙戦�佺姸鎬�
+        if(noticesList.size()>0){
+            noticesMapper.insert(noticesList);
+        }
+    }
+
+    private List<String> getEmailImglistByModel(Workorder workorder,   String path ) {
+        List<String> list = new ArrayList<>();
+        //鏌ヨ闄勪欢淇℃伅
+        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getIsdeleted,Constants.ZERO)
+                .eq(Multifile::getObjId,workorder.getId()).orderByAsc(Multifile::getId));
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+            for (Multifile multifile:multifileList) {
+                list.add(path+multifile.getFileurl());
+            }
+        }
+        return list;
+    }
+
+    private List<Member> getEmailMemberlistByIDs(String ids) {
+        List<Member> memberList = new ArrayList<>();
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(ids)){
+            String[] tt = ids.split(",");
+            List<Integer> idList =new ArrayList<>();
+            if(tt.length>0){
+                for(String s :tt){
+                    try {
+                        idList.add(Integer.parseInt(s));
+                    }catch (Exception e){
+
+                    }
+                }
+            }
+            if(idList.size()>0){
+                memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                        .eq(Member::getIsdeleted,Constants.ZERO)
+                        .in(Member::getId,idList)
+                );
+            }
+        }
+
+        return memberList;
+    }
+
+    private Map<String, String> getEmailContentFormByModel(Workorder workorder) {
+        Map<String, String>  map =  new LinkedHashMap<>();
+        map.put("涓婃姤浜�",workorder.getMemberName()+"/" +workorder.getCompanyName());
+        map.put("涓婃姤鏃堕棿",DateUtil.getPlusTime2(workorder.getSubmitDate()));
+        map.put("浜嬩欢鍙戠敓鏃堕棿/鍦扮偣",DateUtil.getPlusTime2(workorder.getHappenTime())+"/"+workorder.getLocationName());
+        map.put("浼ゅ绫诲瀷", workorder.getTypeName());
+        map.put("鏄惁澶栭儴灏卞尰", Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ONE)?"鏄�":"鍚�");
+        map.put("鏄惁鍖诲姟瀹�", Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ONE)?"鏄�":"鍚�");
+        map.put("鏄惁鍙椾激", Constants.equalsInteger(workorder.getIsHurted(),Constants.ONE)?"鏄�":"鍚�");
+        map.put("鏄惁鍜屽伐浣滅浉鍏�", Constants.equalsInteger(workorder.getWorkRelated(),Constants.ONE)?"鏄�":"鍚�");
+        map.put("浜嬩欢璇存槑", org.apache.commons.lang3.StringUtils.defaultString(workorder.getEventInfo(),"-"));
+       return  map;
+    }
 
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})

--
Gitblit v1.9.3