From 997058fc1caec43ad2518d88c94a39db02e0292b Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 14 四月 2025 18:57:25 +0800
Subject: [PATCH] 工单业务
---
server/src/main/java/com/doumee/api/common/PublicCloudController.java | 6 ++
server/src/main/java/com/doumee/api/web/WebCategoryController.java | 8 ++--
server/src/main/java/com/doumee/api/web/WebWorkOrderController.java | 4 -
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java | 44 +++++++++++++++------
server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 6 ++-
server/src/main/java/com/doumee/service/business/CategoryService.java | 4 +-
server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java | 17 +++++---
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java | 2
server/src/main/java/com/doumee/dao/business/model/Managers.java | 3 +
9 files changed, 62 insertions(+), 32 deletions(-)
diff --git a/server/src/main/java/com/doumee/api/common/PublicCloudController.java b/server/src/main/java/com/doumee/api/common/PublicCloudController.java
index abe0006..e2a317a 100644
--- a/server/src/main/java/com/doumee/api/common/PublicCloudController.java
+++ b/server/src/main/java/com/doumee/api/common/PublicCloudController.java
@@ -166,7 +166,11 @@
// folder = systemDictDataBiz.queryByCode(Constants.FTP,folder).getCode();
Date d1 = new Date();
log.error("鎬诲緱涓婁紶鏂囦欢鎴愬姛=============寮�濮�========="+DateUtil.getPlusTime2(d1));
- folder =StringUtils.defaultString(folder).replace("/", "");
+ SystemDictData folderData = systemDictDataBiz.queryByCode(Constants.FTP,folder);
+ if(Objects.isNull(folderData)||StringUtils.isBlank(folderData.getCode())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐩爣鏂囦欢澶归敊璇�");
+ }
+ folder =folderData.getCode().replace("/", "");
String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
InputStream is = null;
response.setCharacterEncoding("UTF-8");
diff --git a/server/src/main/java/com/doumee/api/web/WebCategoryController.java b/server/src/main/java/com/doumee/api/web/WebCategoryController.java
index 3cab702..16fa9c3 100644
--- a/server/src/main/java/com/doumee/api/web/WebCategoryController.java
+++ b/server/src/main/java/com/doumee/api/web/WebCategoryController.java
@@ -38,11 +38,11 @@
@LoginRequired
@GetMapping("/categoryTree")
@ApiOperation("鑾峰彇鍒嗙被绫诲埆鑾峰彇鍒嗙被鏍�")
- public ApiResponse<List<CategoryVO>> categoryVOTree(@RequestParam String categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
+ public ApiResponse<List<CategoryVO>> categoryVOTree(@RequestParam String categoryType,Integer categoryId, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
try {
jwtTokenUtil.getUserInfoByToken(token);
- return ApiResponse.success(categoryService.getCategoryVOTree(categoryType));
+ return ApiResponse.success(categoryService.getCategoryVOTree(categoryType,categoryId));
}catch (BusinessException e){
return ApiResponse.failed(e.getCode(),e.getMessage());
}catch (Exception e){
@@ -54,11 +54,11 @@
@LoginRequired
@GetMapping("/categoryList")
@ApiOperation("鑾峰彇鍒嗙被绫诲埆鑾峰彇鍒嗙被鍒楄〃")
- public ApiResponse<List<CategoryVO>> categoryList(Integer categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
+ public ApiResponse<List<CategoryVO>> categoryList(Integer categoryType,Integer isRoot ,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
try {
jwtTokenUtil.getUserInfoByToken(token);
- return ApiResponse.success(categoryService.getCategoryVOList(categoryType));
+ return ApiResponse.success(categoryService.getCategoryVOList(categoryType,isRoot));
}catch (BusinessException e){
return ApiResponse.failed(e.getCode(),e.getMessage());
}catch (Exception e){
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 ba0b08a..4d19e88 100644
--- a/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
+++ b/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
@@ -54,11 +54,9 @@
@PostMapping("/create")
public ApiResponse create (@RequestBody Workorder workorder, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) {
try {
-
Member user = jwtTokenUtil.getUserInfoByToken(token);
workorder.setMemberId(user.getId());
- workorderService.create(workorder);
- return ApiResponse.success("鎿嶄綔鎴愬姛");
+ return ApiResponse.success(workorderService.create(workorder));
}catch (BusinessException e){
return ApiResponse.failed(e.getCode(),e.getMessage());
}catch (Exception e){
diff --git a/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java b/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
index e52a082..741dcb5 100644
--- a/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
+++ b/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
@@ -81,13 +81,18 @@
return null;
}
public static QywxSendMsgResponse sendMsg(String token, QywxSendMsgRequest param) {
- String[] interfaceUrl = QywxConstant.SEND_MSG;
- String url = interfaceUrl[0].replace("${accesstoken}",token);
- QywxSendMsgResponse response = sendHttpRequestSingle(url,interfaceUrl[1],JSONObject.toJSONString(param)
- ,new TypeReference<QywxSendMsgResponse>(){});
- if(response.getErrcode()!=null && response.getErrcode() ==0){
- return response;
+ try{
+ String[] interfaceUrl = QywxConstant.SEND_MSG;
+ String url = interfaceUrl[0].replace("${accesstoken}",token);
+ QywxSendMsgResponse response = sendHttpRequestSingle(url,interfaceUrl[1],JSONObject.toJSONString(param)
+ ,new TypeReference<QywxSendMsgResponse>(){});
+ if(response.getErrcode()!=null && response.getErrcode() ==0){
+ return response;
+ }
+ }catch (Exception e){
+
}
+
return null;
}
public static List<QywxUserListResponse> getUserList(String token,String depatId) {
diff --git a/server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java b/server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java
index b5654d7..1b71cd7 100644
--- a/server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java
+++ b/server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java
@@ -16,6 +16,6 @@
private Integer errcode;
@ApiModelProperty(value = "杩斿洖鐮佹彁绀鸿")
- private boolean errmsg;
+ private String errmsg;
}
diff --git a/server/src/main/java/com/doumee/dao/business/model/Managers.java b/server/src/main/java/com/doumee/dao/business/model/Managers.java
index 72d6f2d..d5cc541 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Managers.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Managers.java
@@ -74,6 +74,9 @@
@ApiModelProperty(value = "鍛樺伐鎵嬫満鍙�")
@TableField(exist = false)
private String memberPhone;
+ @ApiModelProperty(value = "浼佸井涓婚敭", example = "1")
+ @TableField(exist = false)
+ private String qwId;
@ApiModelProperty(value = "濮撳悕/鎵嬫満鍙�/閮ㄩ棬")
@TableField(exist = false)
diff --git a/server/src/main/java/com/doumee/service/business/CategoryService.java b/server/src/main/java/com/doumee/service/business/CategoryService.java
index 7618c8b..5d564e7 100644
--- a/server/src/main/java/com/doumee/service/business/CategoryService.java
+++ b/server/src/main/java/com/doumee/service/business/CategoryService.java
@@ -102,9 +102,9 @@
* @param categoryType
* @return
*/
- List<CategoryVO> getCategoryVOTree(String categoryType);
+ List<CategoryVO> getCategoryVOTree(String categoryType,Integer categoryId);
- List<CategoryVO> getCategoryVOList(Integer categoryType);
+ List<CategoryVO> getCategoryVOList(Integer categoryType,Integer isRoot);
List<Category> treeList(Category param );
}
diff --git a/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index 4edd8cb..928e60e 100644
--- a/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -268,10 +268,11 @@
@Override
- public List<CategoryVO> getCategoryVOTree(String categoryType){
+ public List<CategoryVO> getCategoryVOTree(String categoryType,Integer categoryId){
List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
.eq(Category::getIsdeleted, Constants.ZERO)
.in(Objects.nonNull(categoryType),Category::getType,categoryType.split(","))
+ .apply(Objects.nonNull(categoryId)," find_in_set("+categoryId+", REPLACE(ID_PATH,'/',',') ) ")
.orderByAsc(Category::getSortnum,Category::getId)
);
List<CategoryVO> categoryVOList = new ArrayList<>();
@@ -291,10 +292,11 @@
@Override
- public List<CategoryVO> getCategoryVOList(Integer categoryType){
+ public List<CategoryVO> getCategoryVOList(Integer categoryType,Integer isRoot){
List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
.eq(Category::getIsdeleted, Constants.ZERO)
.eq(Objects.nonNull(categoryType),Category::getType,categoryType)
+ .isNull(Constants.equalsInteger(isRoot,Constants.ONE),Category::getParentId)
.orderByAsc(Category::getSortnum,Category::getId)
);
List<CategoryVO> categoryVOList = new ArrayList<>();
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..f86cb69 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
@@ -75,6 +75,7 @@
@Override
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
public Integer create(Workorder workorder) {
this.isValidBaseParam(workorder);
workorder.setCreateDate(new Date());
@@ -117,8 +118,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 = "";
@@ -197,6 +201,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());
@@ -212,11 +219,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());
@@ -265,9 +275,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)
@@ -276,14 +287,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(",")));
}
}
}
-
-
}
@@ -351,7 +360,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);
}
@@ -417,8 +426,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<>();
//寰呭垎閰嶇姸鎬� 澶勭悊杞氦鎸夐挳
@@ -533,6 +546,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()))
@@ -611,9 +627,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