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 +++++++++++++++++++++++++++++++++++++++++++-
server/src/main/java/com/doumee/dao/business/model/Workorder.java | 4
2 files changed, 132 insertions(+), 6 deletions(-)
diff --git a/server/src/main/java/com/doumee/dao/business/model/Workorder.java b/server/src/main/java/com/doumee/dao/business/model/Workorder.java
index 57fddf1..be90a18 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Workorder.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Workorder.java
@@ -54,9 +54,9 @@
@ApiModelProperty(value = "閭欢閫氱煡鐘舵�� 0寰呴�氱煡 1宸查�氱煡 2閫氱煡澶辫触", example = "1")
private Integer emailStatus;
@ApiModelProperty(value = "閭欢閫氱煡鏃堕棿", example = "1")
- private Integer emailDate;
+ private Date emailDate;
@ApiModelProperty(value = "閭欢閫氱煡澶囨敞", example = "1")
- private Integer emailInfo;
+ private String emailInfo;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
private Integer sortnum;
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