From d866f110ae6534eeb1caa35e1ea0d5b9154bd6af Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 11 四月 2025 09:08:07 +0800
Subject: [PATCH] 工单业务
---
server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java | 2
server/src/main/java/com/doumee/dao/web/dto/SendCopyDTO.java | 31 ++++
server/src/main/java/com/doumee/api/web/WebWorkOrderController.java | 32 +++-
server/src/main/java/com/doumee/core/constants/Constants.java | 2
server/src/main/java/com/doumee/dao/business/NoticesMapper.java | 3
server/src/main/java/com/doumee/dao/web/dto/DCANoProblemDTO.java | 2
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java | 258 ++++++++++++++++++++++++++----------
server/src/main/java/com/doumee/dao/business/model/Notices.java | 5
server/src/main/java/com/doumee/dao/business/model/Workorder.java | 4
server/src/main/java/com/doumee/dao/web/dto/OrderDataDTO.java | 31 ++++
server/src/main/java/com/doumee/dao/web/vo/WorkOrderDataVO.java | 1
server/src/main/java/com/doumee/service/business/WorkorderService.java | 10 +
12 files changed, 291 insertions(+), 90 deletions(-)
diff --git a/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java b/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
index b4d14cc..4497389 100644
--- a/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
+++ b/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
@@ -8,9 +8,7 @@
import com.doumee.dao.business.model.Managers;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Workorder;
-import com.doumee.dao.web.dto.CloseDTO;
-import com.doumee.dao.web.dto.PassOnDTO;
-import com.doumee.dao.web.dto.UpdEmailDTO;
+import com.doumee.dao.web.dto.*;
import com.doumee.dao.web.vo.WorkOrderDataVO;
import com.doumee.service.business.ManagersService;
import com.doumee.service.business.MemberService;
@@ -155,13 +153,33 @@
}
}
+
@LoginRequired
- @ApiOperation("鎶ヨ〃")
- @GetMapping("/getWorkOrderData")
- public ApiResponse<List<WorkOrderDataVO>> getWorkOrderData(@RequestParam Integer queryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) {
+ @ApiOperation("宸ュ崟鎶勯��")
+ @PostMapping("/sendCopy")
+ public ApiResponse sendCopy(@RequestParam SendCopyDTO sendCopyDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) {
try {
ServerHttpRequest request = serverWebExchange.getRequest();
- return ApiResponse.success(workorderService.getWorkOrderData(queryType));
+ sendCopyDTO.setMember(jwtTokenUtil.getUserInfoByToken(token));
+ workorderService.sendCopy(sendCopyDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }catch (BusinessException e){
+ return ApiResponse.failed(e.getCode(),e.getMessage());
+ }catch (Exception e){
+ e.printStackTrace();
+ return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
+ }
+ }
+
+
+
+ @LoginRequired
+ @ApiOperation("SHE銆佽穼缁婃粦鎶ヨ〃")
+ @PostMapping("/getWorkOrderData")
+ public ApiResponse<List<WorkOrderDataVO>> getWorkOrderData(@RequestBody OrderDataDTO orderDataDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) {
+ try {
+ ServerHttpRequest request = serverWebExchange.getRequest();
+ return ApiResponse.success(workorderService.getWorkOrderData(orderDataDTO));
}catch (BusinessException e){
return ApiResponse.failed(e.getCode(),e.getMessage());
}catch (Exception e){
diff --git a/server/src/main/java/com/doumee/core/constants/Constants.java b/server/src/main/java/com/doumee/core/constants/Constants.java
index 023db47..01a637e 100644
--- a/server/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/src/main/java/com/doumee/core/constants/Constants.java
@@ -22,6 +22,8 @@
public static final String QYWX_CORPID = "QYWX_CORPID";
public static final String QYWX_SECRET = "QYWX_SECRET";
public static final String QYWX_TOKEN = "QYWX_TOKEN";
+ public static final String QYWX_AGENTID = "QYWX_AGENTID";
+
public static final String QYWX = "QYWX";
public static final Integer ONE = 1;
public static final Integer TWO = 2;
diff --git a/server/src/main/java/com/doumee/dao/business/NoticesMapper.java b/server/src/main/java/com/doumee/dao/business/NoticesMapper.java
index a6293ab..9adbcf7 100644
--- a/server/src/main/java/com/doumee/dao/business/NoticesMapper.java
+++ b/server/src/main/java/com/doumee/dao/business/NoticesMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.Notices;
+import com.github.yulichang.base.MPJBaseMapper;
/**
* @author 姹熻箘韫�
* @since 2025/04/02 17:49
*/
-public interface NoticesMapper extends BaseMapper<Notices> {
+public interface NoticesMapper extends MPJBaseMapper<Notices> {
}
diff --git a/server/src/main/java/com/doumee/dao/business/model/Notices.java b/server/src/main/java/com/doumee/dao/business/model/Notices.java
index a2ecc6c..53e03b7 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Notices.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Notices.java
@@ -75,11 +75,10 @@
@ExcelExportColumn(name="鍏宠仈瀵硅薄鍚嶇О")
private String objName;
- @ApiModelProperty(value = "绫诲瀷 0宸ュ崟涓婃姤 1宸ュ崟鍒嗛厤鐗╀笟涓荤 2SHE宸ュ崟鎶勯�� 3宸ュ崟澶勭悊鍌績 4宸ュ崟鍒嗛厤澶勭悊浜�")
- @ExcelExportColumn(name="绫诲瀷 0宸ュ崟涓婃姤 1宸ュ崟鍒嗛厤鐗╀笟涓荤 2SHE宸ュ崟鎶勯�� 3宸ュ崟澶勭悊鍌績 4宸ュ崟鍒嗛厤澶勭悊浜�")
+ @ApiModelProperty(value = "绫诲瀷 0宸ュ崟涓婃姤 1鎶勯�� 2杞氦")
private String type;
- @ApiModelProperty(value = "鍏宠仈鍙傛暟1")
+ @ApiModelProperty(value = "鐢ㄦ埛浼佸井涓婚敭")
@ExcelExportColumn(name="鍏宠仈鍙傛暟1")
private String param1;
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 f071035..404c62a 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
@@ -50,8 +50,8 @@
@ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
- @ApiModelProperty(value = "鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)")
- @ExcelExportColumn(name="鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)")
+ @ApiModelProperty(value = "DCA鍒嗙被锛堝叧鑱攃ategory)")
+ @ExcelExportColumn(name="DCA鍒嗙被锛堝叧鑱攃ategory)")
private String categoryId;
@ApiModelProperty(value = "澶囨敞")
diff --git a/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java b/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java
index f7398b7..30815f8 100644
--- a/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java
+++ b/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java
@@ -85,7 +85,7 @@
@ExcelExportColumn(name="鍙傛暟1")
private String param1;
- @ApiModelProperty(value = "鍙傛暟2")
+ @ApiModelProperty(value = "澶勭悊浜�")
@ExcelExportColumn(name="鍙傛暟2")
private String param2;
diff --git a/server/src/main/java/com/doumee/dao/web/dto/DCANoProblemDTO.java b/server/src/main/java/com/doumee/dao/web/dto/DCANoProblemDTO.java
index 1bc1f9e..2a77a3b 100644
--- a/server/src/main/java/com/doumee/dao/web/dto/DCANoProblemDTO.java
+++ b/server/src/main/java/com/doumee/dao/web/dto/DCANoProblemDTO.java
@@ -21,7 +21,7 @@
@ApiModelProperty(value = "鎻忚堪 - 涓嶇鍚堝師鍥�")
private String eventInfo;
- @ApiModelProperty(value = "闂涓婚敭锛坈ategory:id锛�")
+ @ApiModelProperty(value = "鍥剧墖淇℃伅")
private List<Multifile> multifileList;
diff --git a/server/src/main/java/com/doumee/dao/web/dto/OrderDataDTO.java b/server/src/main/java/com/doumee/dao/web/dto/OrderDataDTO.java
new file mode 100644
index 0000000..e99f6e4
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/web/dto/OrderDataDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.web.dto;
+
+import com.doumee.dao.business.model.Multifile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/4/8 14:25
+ */
+@Data
+public class OrderDataDTO {
+
+ @ApiModelProperty(value = "鏌ヨ鏃ユ湡绫诲瀷")
+ private Integer queryType;
+
+ @ApiModelProperty(value = "鏁版嵁绫诲瀷锛�0SHE浜嬩欢 2DCA宸ュ崟璁板綍 3璺岀粖婊戜簨浠�")
+ private Integer orderType;
+
+ @ApiModelProperty(value = "涓婚涓婚敭")
+ private Integer typeId;
+
+ @ApiModelProperty(value = "鍦扮偣涓婚敭")
+ private Integer locationId;
+
+
+}
diff --git a/server/src/main/java/com/doumee/dao/web/dto/SendCopyDTO.java b/server/src/main/java/com/doumee/dao/web/dto/SendCopyDTO.java
new file mode 100644
index 0000000..c9b1bb1
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/web/dto/SendCopyDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.web.dto;
+
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Multifile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/4/8 17:41
+ */
+@Data
+public class SendCopyDTO {
+
+ @ApiModelProperty(value = "鎶勯�佷汉鍛樹富閿� 澶氫釜浠�,鍒嗗壊")
+ private String userIds;
+
+ @ApiModelProperty(value = "宸ュ崟涓婚敭")
+ private Integer workorderId;
+
+ @ApiModelProperty(value = "璇存槑")
+ private String info;
+
+ @ApiModelProperty(value = "鎿嶄綔鐢ㄦ埛",hidden = true)
+ private Member member;
+
+}
diff --git a/server/src/main/java/com/doumee/dao/web/vo/WorkOrderDataVO.java b/server/src/main/java/com/doumee/dao/web/vo/WorkOrderDataVO.java
index da032de..c8738af 100644
--- a/server/src/main/java/com/doumee/dao/web/vo/WorkOrderDataVO.java
+++ b/server/src/main/java/com/doumee/dao/web/vo/WorkOrderDataVO.java
@@ -32,5 +32,4 @@
@ApiModelProperty(value = "鏈叧闂�绘暟")
private Integer unCloseTotal;
-
}
diff --git a/server/src/main/java/com/doumee/service/business/WorkorderService.java b/server/src/main/java/com/doumee/service/business/WorkorderService.java
index 2c09414..6cbc456 100644
--- a/server/src/main/java/com/doumee/service/business/WorkorderService.java
+++ b/server/src/main/java/com/doumee/service/business/WorkorderService.java
@@ -5,7 +5,9 @@
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Workorder;
import com.doumee.dao.web.dto.CloseDTO;
+import com.doumee.dao.web.dto.OrderDataDTO;
import com.doumee.dao.web.dto.PassOnDTO;
+import com.doumee.dao.web.dto.SendCopyDTO;
import com.doumee.dao.web.vo.WorkOrderDataVO;
import java.util.List;
@@ -139,6 +141,12 @@
*/
void jobUrge();
- List<WorkOrderDataVO> getWorkOrderData(Integer queryType) throws Exception;
+ List<WorkOrderDataVO> getWorkOrderData(OrderDataDTO orderDataDTO) throws Exception;
+
+ /**
+ * 宸ュ崟鎶勯��
+ * @param sendCopyDTO
+ */
+ void sendCopy(SendCopyDTO sendCopyDTO);
}
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 c6a91b9..36aae5b 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
@@ -14,9 +14,7 @@
import com.doumee.core.utils.qiyeweixin.model.request.QywxTextCardMsgRequest;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
-import com.doumee.dao.web.dto.CloseDTO;
-import com.doumee.dao.web.dto.DCANoProblemDTO;
-import com.doumee.dao.web.dto.PassOnDTO;
+import com.doumee.dao.web.dto.*;
import com.doumee.dao.web.vo.WorkOrderDataVO;
import com.doumee.service.business.WorkorderService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -67,6 +65,9 @@
@Autowired
private CategoryMapper categoryMapper;
+ @Autowired
+ private NoticesMapper noticesMapper;
+
@Resource(name="sessionRedisTemplate")
private RedisTemplate<Object, Serializable> redisTemplate;
@@ -85,84 +86,93 @@
Constants.WorkOrderStatus workOrderStatus = Constants.equalsInteger(workorder.getType(),Constants.ZERO)?Constants.WorkOrderStatus.close:Constants.WorkOrderStatus.waitConfirm;
workorder.setStatus(workOrderStatus.getKey());
workorderMapper.insert(workorder);
+
//瀛樺偍DCA 闂璁板綍琛�
this.saveProblemData(workorder);
//瀛樺偍闄勪欢淇℃伅
this.saveMutiFile(workorder);
//瀛樺偍鏃ュ織
this.dealLogData(workorder,workOrderStatus);
- // 鍙戦�佷紒寰�氱煡
- QywxSendMsgRequest qywxSendMsgRequest = new QywxSendMsgRequest();
- qywxSendMsgRequest.setTouser(workorder.getQwnoticeMemberIds().replace(",","|"));
- qywxSendMsgRequest.setMsgtype("text");
- qywxSendMsgRequest.setAgentid(null);
- QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest();
- textCard.setTitle(workOrderStatus.getLogTitle());
-
- qywxSendMsgRequest.setTextcard(textCard);
- QywxUtil.sendMsg(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),
- qywxSendMsgRequest);
-
+ Member member = memberMapper.selectById(workorder.getMemberId());
+ Category category = categoryMapper.selectById(workorder.getTypeId());
+ if(Objects.nonNull(member)&&Objects.nonNull(category)){
+ // 鍙戦�佷紒寰�氱煡
+ this.sendQwMsg(workorder,workorder.getQwnoticeMemberIds(),member,category.getName(),Constants.ZERO,null);
+ }
+ //瀛樺偍寰呭姙浜哄憳淇℃伅
+ this.saveNotice(Arrays.asList(workorder.getQwnoticeMemberIds().split(",")),workorder.getId(),Constants.ZERO,Constants.ZERO);
return workorder.getId();
}
- public void sendQwMsg(Workorder workorder){
+ /**
+ * 鍙戦�侀�氱煡
+ * @param workorder
+ * @param qwIds 娑堟伅鎺ユ敹浜�
+ * @param member 鎿嶄綔浜哄悕绉�
+ * @param categoryName
+ * @param contentType 0=姝e父閫氱煡锛�1=鍌績锛�2=鎶勯�� 3=宸插鐞嗕竴椤�/浠诲姟宸插鐞�
+ * @param csInfo 鎶勯�佷俊鎭�
+ */
+ public void sendQwMsg(Workorder workorder,String qwIds,Member member,String categoryName,Integer contentType,String csInfo){
QywxSendMsgRequest qywxSendMsgRequest = new QywxSendMsgRequest();
- QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest();
qywxSendMsgRequest.setMsgtype("text");
- qywxSendMsgRequest.setAgentid(null);
- textCard.setBtntxt("璇︽儏");
- //鏂版彁浜�
- if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){
- qywxSendMsgRequest.setTouser(workorder.getQwnoticeMemberIds().replace(",","|"));
- textCard.setUrl(null);
- //SHE 鎻愪氦
- if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
- Category category = categoryMapper.selectById(workorder.getType());
- textCard.setTitle("銆怱HE浜嬩欢涓婃姤銆�");
- String message = "";
- if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){
- message = "鏈汉";
- }else {
- message = Constants.equalsInteger(workorder.getMemberType(),Constants.ONE)?"鍚屼簨":"渚涘簲鍟�";
- }
- message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + workorder.getLocationName() + category.getName();
- textCard.setDescription(" <div class=\"normal\">"+message+"</div>");
- }else{
-
+ qywxSendMsgRequest.setTouser(qwIds.replace(",","|"));
+ qywxSendMsgRequest.setAgentid(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_AGENTID).getCode());
+ String sendUser = "";
+ if(Objects.nonNull(member)){
+ if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getName())){
+ sendUser = member.getName();
+ }
+ if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getCompanyName())){
+ sendUser = member.getCompanyName()+"/" + sendUser ;
}
}
+ QywxTextCardMsgRequest textCard = this.dealMessageContent(workorder,sendUser,categoryName,contentType,csInfo);
qywxSendMsgRequest.setTextcard(textCard);
QywxUtil.sendMsg(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),
qywxSendMsgRequest);
}
-// public QywxTextCardMsgRequest dealMessageContent(Workorder workorder,Integer type){
-// QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest();
-// String message = "";
-// if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
-// Category category = categoryMapper.selectById(workorder.getType());
-// textCard.setTitle("銆怱HE浜嬩欢涓婃姤銆�");
-// if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){
-// message = "鏈汉";
-// }else {
-// message = Constants.equalsInteger(workorder.getMemberType(),Constants.ONE)?"鍚屼簨":"渚涘簲鍟�";
-// }
-// message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + workorder.getLocationName() + category.getName();
-// textCard.setDescription(" <div class=\"normal\">"+message+"</div>");
-// }else{
-// textCard.setTitle(Constants.equalsInteger(workorder.getType(),Constants.ONE)?"銆怐CA涓婃姤銆�":"璺岀粖婊戦闄╀笂鎶�");
-// if(Constants.equalsInteger(workorder.getType(),Con)){
-//
-// }
-//
-//
-//
-// }
-//
-// }
+ /**
+ * 閫氱煡鏂囨鏁寸悊
+ * @param workorder
+ * @param userName 鎿嶄綔浜哄悕绉� 閮ㄩ棬+鍚嶇О
+ * @param categoryName
+ * @param contentType 0=姝e父閫氱煡锛�1=鍌績锛堣穼缁婃粦/DCA锛夛紱2=鎶勯�侊紙DCA锛� 3=宸插鐞嗕竴椤�/浠诲姟宸插鐞�
+ * @param csInfo 鎶勯�佷俊鎭�
+ * @return
+ */
+ public QywxTextCardMsgRequest dealMessageContent(Workorder workorder,String userName ,String categoryName,Integer contentType,String csInfo){
+ QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest();
+ String message = "";
+ if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
+ textCard.setTitle("銆怱HE浜嬩欢涓婃姤銆�");
+ if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){
+ message = "鏈汉";
+ }else {
+ message = Constants.equalsInteger(workorder.getMemberType(),Constants.ONE)?"鍚屼簨":"渚涘簲鍟�";
+ }
+ message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + workorder.getLocationName() + categoryName;
+ textCard.setDescription(" <div class=\"normal\">"+message+"</div>");
+ }else{
+ textCard.setTitle(Constants.equalsInteger(workorder.getType(),Constants.ONE)?"銆怐CA涓婃姤銆�":"璺岀粖婊戦闄╀笂鎶�");
+ if(Constants.equalsInteger(workorder.getType(),Constants.THREE)){
+ message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":"浠诲姟宸插鐞�")) +"</div>";
+ message = message + " <div class=\"normal\">"+ DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") +"/"+ workorder.getLocationName() +"/"+ categoryName+"</div>";
+ }else{
+ message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":((Constants.equalsInteger(contentType,Constants.TWO)?"鎶勯�佺粰浣�":"宸插鐞嗕竴椤�")))) +"</div>";
+ message = message + " <div class=\"normal\">瑙傚療涓婚"+ categoryName +"</div>";
+ message = message + " <div class=\"normal\">绗﹀悎锛�"+ workorder.getDcaYesNum() +" 涓嶇鍚堬細"+workorder.getDcaNoNum()+"</div>";
+ if(Constants.equalsInteger(contentType,Constants.TWO)){
+ message = message + " <div class=\"normal\">璇存槑锛�"+ csInfo +"</div>";
+ }
+ }
+ textCard.setDescription(message);
+ }
+ return textCard;
+ }
@@ -207,7 +217,8 @@
dcaWorkOrder.setCreateDate(new Date());
dcaWorkOrder.setEditDate(new Date());
dcaWorkOrder.setMemberId(workorder.getMemberId());
- dcaWorkOrder.setTypeId(dcaNoProblemDTO.getProblemId());
+ dcaWorkOrder.setTypeId(workorder.getTypeId());
+ dcaWorkOrder.setCategoryId(Integer.toString(problem.getParentId()));
dcaWorkOrder.setType(Constants.TWO);
dcaWorkOrder.setStatus(workOrderStatus.getKey());
dcaWorkOrder.setIsdeleted(Constants.ZERO);
@@ -256,6 +267,9 @@
.eq(Managers::getIsdeleted,Constants.ZERO)
.eq(Managers::getType,Constants.ZERO).orderByAsc(Managers::getSortnum)
);
+ if(Objects.isNull(managersList)){
+ 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(",")));
if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
@@ -332,6 +346,7 @@
if(Constants.equalsInteger(workorder.getType(),Constants.ONE)){
if(Objects.isNull(workorder.getDcaYesNum())
|| Objects.isNull(workorder.getDcaNoNum())
+ || Objects.isNull(workorder.getCategoryId())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -658,12 +673,14 @@
if(Objects.isNull(workorder)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸ュ崟鏁版嵁");
}
- if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"SHE宸ュ崟鏃犳硶杩涜璇ユ搷浣�");
+ if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)||Constants.equalsInteger(workorder.getType(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"SHE銆丏CA宸ュ崟鏃犳硶杩涜璇ユ搷浣�");
}
if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.sheClose.getKey())||Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.wtsClose.getKey())||Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.close.getKey())){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆");
}
+ //浼佸井閫氱煡浜� 浼佸井涓婚敭
+ List<String> qwIds = new ArrayList<>();
//鎻愪氦鍚庣殑 寰呯‘璁�/寰呭垵瀹$姸鎬� 濡傛灉鍘诲叧闂� 鍙湁宸ュ崟閲岀粦瀹氱殑SHE浜哄憳鍙互鍏抽棴
if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){
//鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿
@@ -671,12 +688,17 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊");
}
workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey());
+ qwIds = Arrays.asList(workorder.getQwnoticeMemberIds());
+ qwIds.remove(closeDTO.getMember().getQwId());
}else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){
//鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿
if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊");
}
workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey());
+ qwIds = Arrays.asList(workorder.getQwnoticeMemberIds());
+ qwIds.add(workorder.getManagerId());
+ qwIds.remove(closeDTO.getMember().getQwId());
}else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey())){
//鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿
if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())
@@ -684,6 +706,9 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊");
}
workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey());
+ qwIds = Arrays.asList(workorder.getQwnoticeMemberIds());
+ qwIds.add(workorder.getDealerId());
+ qwIds.remove(closeDTO.getMember().getQwId());
}else{
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆");
}
@@ -702,6 +727,17 @@
}
multifileMapper.insert(multifileList);
}
+ //鍙戦�佷紒寰�氱煡
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(qwIds)){
+ Set<String> qwIdSet = new HashSet<>(qwIds);
+ String qwIdStr = String.join(",", qwIdSet);
+ Category category = categoryMapper.selectById(workorder.getTypeId());
+ if(Objects.nonNull(closeDTO.getMember())&&Objects.nonNull(category)&& org.apache.commons.lang3.StringUtils.isNotBlank(qwIdStr)){
+ // 鍙戦�佷紒寰�氱煡
+ this.sendQwMsg(workorder,qwIdStr,closeDTO.getMember(),category.getName(),Constants.THREE,null);
+ }
+ }
+
}
@@ -750,15 +786,49 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
for (Multifile multifile:multifileList) {
multifile.setObjId(logId);
+ multifile.setIsdeleted(Constants.ZERO);
multifile.setCreateDate(new Date());
multifile.setObjType(Constants.multiFileType.passOn);
}
multifileMapper.insert(multifileList);
}
- //TODO 浼佷笟寰俊閫氱煡
+ //浼佷笟寰俊閫氱煡
+ Category category = categoryMapper.selectById(workorder.getTypeId());
+ if(Objects.nonNull(passOnDTO.getMember())&&Objects.nonNull(category)){
+ // 鍙戦�佷紒寰�氱煡
+ this.sendQwMsg(workorder,member.getQwId(),passOnDTO.getMember(),category.getName(),Constants.ZERO,null);
+ }
+ //瀛樺偍寰呭姙浜哄憳淇℃伅
+ this.saveNotice(Arrays.asList(passOnDTO.getMember().getQwId().split(",")),workorder.getId(),Constants.ZERO,Constants.TWO);
}
+ @Override
+ public void sendCopy(SendCopyDTO sendCopyDTO) {
+ if (Objects.isNull(sendCopyDTO)
+ || Objects.isNull(sendCopyDTO.getWorkorderId())
+ || StringUtils.isEmpty(sendCopyDTO.getUserIds())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Workorder workorder = workorderMapper.selectById(sendCopyDTO.getWorkorderId());
+ if (Objects.isNull(workorder)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted, Constants.ZERO)
+ .isNotNull(Member::getQwId)
+ .in(Member::getId, sendCopyDTO.getUserIds().split(",")));
+ if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)) {
+ List<String> qwIdList = memberList.stream().map(i -> i.getQwId()).collect(Collectors.toList());
+ Category category = categoryMapper.selectById(workorder.getTypeId());
+ if (Objects.nonNull(category)) {
+ // 鍙戦�佷紒寰�氱煡
+ this.sendQwMsg(workorder, String.join(",", qwIdList), sendCopyDTO.getMember(), category.getName(), Constants.ONE, null);
+ }
+ //瀛樺偍寰呭姙淇℃伅
+ this.saveNotice(qwIdList, workorder.getId(), Constants.ONE, Constants.ONE);
+ }
+
+ }
@Override
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
@@ -783,7 +853,12 @@
this.saveLog(null,workorder,
Constants.ONE
,member.getId(),"鍌績","宸插偓淇� "+urgeUser.getCompanyName() + "/" + urgeUser.getName());
- //TODO 鍙戦�佷紒寰�氱煡
+ //鍙戦�佷紒寰�氱煡
+ Category category = categoryMapper.selectById(workorder.getTypeId());
+ if(Objects.nonNull(category)){
+ // 鍙戦�佷紒寰�氱煡
+ this.sendQwMsg(workorder,urgeUser.getQwId(),null,category.getName(),Constants.ONE,null);
+ }
}
@@ -818,25 +893,62 @@
}else{
return;
}
- //TODO 鍙戦�佷紒寰�氱煡
+ //鍙戦�佷紒寰�氱煡
+ Category category = categoryMapper.selectById(workorder.getTypeId());
+ if(Objects.nonNull(category)){
+ // 鍙戦�佷紒寰�氱煡
+ this.sendQwMsg(workorder,urgeUser.getQwId(),null,category.getName(),Constants.ONE,null);
+ }
}
+ public void saveNotice(List<String> qwIdList ,Integer workorderId,Integer isSendCopy,Integer type){
+ List<Notices> noticesList = new ArrayList<>();
+ for (String qwId:qwIdList) {
+ //瀛樺偍鎶勯�佽褰�
+ Notices notices = new Notices();
+ notices.setCreateDate(new Date());
+ notices.setIsdeleted(Constants.ZERO);
+ notices.setObjId(workorderId);
+ notices.setObjType(Constants.ZERO+"");
+ notices.setStatus(Constants.ZERO);
+ notices.setSendacopy(isSendCopy);
+ notices.setParam1(qwId);
+ notices.setType(Integer.toString(type));
+ noticesList.add(notices);
+ }
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(noticesList)){
+ noticesMapper.insert(noticesList);
+ }
+ }
+
+
+
/**
- * 鏁版嵁鎶ヨ〃
- * @param queryType 0=鎸夌収鏈堜唤锛�1=鎸夌収瀛e害锛�2=鎸夌収骞翠唤锛堟殏涓嶅鐞嗭級
+ * SHE / 璺岀粖婊戞姤琛�
* @return
+ * @throws Exception
*/
@Override
- public List<WorkOrderDataVO> getWorkOrderData(Integer queryType) throws Exception {
+ public List<WorkOrderDataVO> getWorkOrderData(OrderDataDTO orderDataDTO) throws Exception {
+ if (Objects.isNull(orderDataDTO.getQueryType())||Objects.isNull(orderDataDTO.getOrderType())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
String year = DateUtil.getNowYear();
Integer nowMonth = DateUtil.getNowMonth();
Integer quarter = (nowMonth - 1) / 3 + 1;
List<WorkOrderDataVO> workOrderDataVOList = new ArrayList<>();
//鏌ヨ浠婂勾鎵�鏈夌殑鏁版嵁
- List<Workorder> workorderList = workorderMapper.selectList(new QueryWrapper<Workorder>().lambda().like(Workorder::getCreateDate,year)
+ List<Workorder> workorderList = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>()
+ .selectAll(Workorder.class)
+ .leftJoin(" category c1 on c1.id = t.type_id " )
+ .leftJoin(" category c2 on c2.id = t.localtion_id " )
+ .apply(Objects.nonNull(orderDataDTO.getTypeId())," find_in_set("+orderDataDTO.getTypeId()+", REPLACE(c1.ID_PATH,'/',',') ) ")
+ .apply(Objects.nonNull(orderDataDTO.getLocationId())," find_in_set("+orderDataDTO.getLocationId()+", REPLACE(c2.ID_PATH,'/',',') ) ")
+ .like(Workorder::getCreateDate,year)
+ .eq(Workorder::getType,orderDataDTO.getOrderType())
.eq(Workorder::getIsdeleted,Constants.ZERO));
- if(Constants.equalsInteger(queryType,Constants.ZERO)){
+ if(Constants.equalsInteger(orderDataDTO.getQueryType(),Constants.ZERO)){
for (int i = 1 ; i <= nowMonth; i++) {
WorkOrderDataVO workOrderDataVO = new WorkOrderDataVO();
String monthDay = year + "-" + org.apache.commons.lang3.StringUtils.leftPad(nowMonth.toString(),2,"0");
@@ -857,7 +969,7 @@
}
workOrderDataVOList.add(workOrderDataVO);
}
- }else if(Constants.equalsInteger(queryType,Constants.ONE)){
+ }else if(Constants.equalsInteger(orderDataDTO.getQueryType(),Constants.ONE)){
//鎸夌収瀛e害鏌ヨ
for (int i = 1 ; i <= quarter; i++) {
List<Workorder> dataList = new ArrayList<>();
--
Gitblit v1.9.3