From 330fcece11892289f2936ec8e11e4c8a610d5bab Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 15 十月 2025 10:30:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 200 insertions(+), 27 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index e47c027..8cca9b5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -1,24 +1,32 @@
package com.doumee.service.business.impl;
-import cn.emay.sdk.util.StringUtil;
-import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.LoginUserInfo;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dao.UserActionMapper;
+import com.doumee.service.business.third.model.LoginUserInfo;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.SmsConstants;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.ApproveTemplMapper;
-import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.PlatformBooksMapper;
-import com.doumee.dao.business.PlatformReasonMapper;
+import com.doumee.core.wx.wxPlat.WxPlatConstants;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.dao.business.dao.SmsConfigMapper;
+import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.join.ApproveJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
-import com.doumee.dao.web.reqeust.ConfirmTaskDTO;
+
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Notices;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
import com.doumee.dao.web.reqeust.RevokeDTO;
@@ -28,8 +36,9 @@
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.business.third.EmayService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
-import org.apache.tomcat.util.bcel.Const;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -37,9 +46,7 @@
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
/**
* 鏈堝彴鍏ュ洯棰勭害淇℃伅琛⊿ervice瀹炵幇
@@ -51,6 +58,13 @@
@Autowired
private PlatformBooksMapper platformBooksMapper;
+ @Autowired
+ private UserActionMapper userActionMapper;
+ @Autowired
+ private PlatformJobMapper platformJobMapper;
+
+ @Autowired
+ private NoticesJoinMapper noticesJoinMapper;
@Autowired
private ApproveTemplMapper approveTemplMapper;
@@ -59,7 +73,13 @@
private PlatformReasonMapper platformReasonMapper;
@Autowired
+ private PlatformGroupMapper platformGroupMapper;
+
+ @Autowired
private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Autowired
private ApproveService approveService;
@@ -70,6 +90,23 @@
@Autowired
private ApproveJoinMapper approveJoinMapper;
+ @Autowired
+ private CarsMapper carsMapper;
+
+ @Autowired
+ private SmsConfigMapper smsConfigMapper;
+
+ @Autowired
+ private SmsEmailMapper smsEmailMapper;
+
+ @Autowired
+ private EmayService emayService;
+
+ @Autowired
+ private WxNoticeConfigMapper wxNoticeConfigMapper;
+
+ @Autowired
+ private ApproveMapper approveMapper;
@Override
public Integer create(PlatformBooks platformBooks) {
@@ -83,7 +120,39 @@
public void deleteById(Integer id) {
platformBooksMapper.deleteById(id);
}
-
+ @Override
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public void deleteById(Integer id,LoginUserInfo user) {
+ PlatformBooks model =findById(id);
+ if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ Date date =new Date();
+ platformBooksMapper.update(null,new UpdateWrapper<PlatformBooks>().lambda()
+ .set(PlatformBooks::getIsdeleted,Constants.ONE)
+ .set(PlatformBooks::getEditDate,date)
+ .set(PlatformBooks::getEditor,user.getId())
+ .eq(PlatformBooks::getId,id));
+ if(model.getJobId()!=null){
+ platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
+ .set(PlatformJob::getIsdeleted,Constants.ONE)
+ .set(PlatformJob::getEditDate,new Date())
+ .set(PlatformJob::getEditor,user.getId())
+ .eq(PlatformJob::getId,model.getJobId())
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO));
+ }
+ String[] params = new String[3];
+ params[0] = user.getRealname();
+ params[1]=DateUtil.getPlusTime2(date);
+ params[2]="銆愬悎鍚屽彿锛�"+model.getContractNum()+"銆�-銆愬徃鏈猴細"+model.getDriverName()+" "+model.getDriverPhone()+"銆�-銆愯溅鐗屽ソ锛� "+model.getPlateNum()+"銆�";
+ //璁板綍鍒犻櫎鏃ュ織
+ UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.PLATFROM_BOOK_DEL,userActionMapper,date,params, JSONObject.toJSONString(model));
+ //鏍囪浠诲姟璁板綍
+ VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍒犻櫎",model.getId(),
+ Constants.approveObjectType.reason,
+ Constants.noticesObjectType.reason
+ );
+ }
@Override
public void delete(PlatformBooks platformBooks) {
UpdateWrapper<PlatformBooks> deleteWrapper = new UpdateWrapper<>(platformBooks);
@@ -133,9 +202,15 @@
@Override
public PageData<PlatformBooks> findPage(PageWrap<PlatformBooks> pageWrap) {
IPage<PlatformBooks> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<PlatformBooks> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<PlatformBooks> queryWrapper = new MPJLambdaWrapper<>();
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
Utils.MP.blankToNull(pageWrap.getModel());
- queryWrapper.lambda()
+ queryWrapper
+ .selectAll(PlatformBooks.class)
+ .selectAs(PlatformJob::getStatus,PlatformBooks::getJobStatus)
+ .selectAs(SystemUser::getRealname,PlatformBooks::getEditUserName)
+ .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformBooks::getJobId)
+ .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getEditDate)
.eq(pageWrap.getModel().getId() != null, PlatformBooks::getId, pageWrap.getModel().getId())
.eq(pageWrap.getModel().getCreator() != null, PlatformBooks::getCreator, pageWrap.getModel().getCreator())
.ge(pageWrap.getModel().getCreateDate() != null, PlatformBooks::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -147,7 +222,7 @@
.eq(pageWrap.getModel().getName() != null, PlatformBooks::getName, pageWrap.getModel().getName())
.eq(pageWrap.getModel().getRemark() != null, PlatformBooks::getRemark, pageWrap.getModel().getRemark())
.eq(pageWrap.getModel().getStatus() != null, PlatformBooks::getStatus, pageWrap.getModel().getStatus())
- .eq(pageWrap.getModel().getContractNum() != null, PlatformBooks::getContractNum, pageWrap.getModel().getContractNum())
+ .like(pageWrap.getModel().getContractNum() != null, PlatformBooks::getContractNum, pageWrap.getModel().getContractNum())
.ge(pageWrap.getModel().getArriveDate() != null, PlatformBooks::getArriveDate, Utils.Date.getStart(pageWrap.getModel().getArriveDate()))
.le(pageWrap.getModel().getArriveDate() != null, PlatformBooks::getArriveDate, Utils.Date.getEnd(pageWrap.getModel().getArriveDate()))
.eq(pageWrap.getModel().getInType() != null, PlatformBooks::getInType, pageWrap.getModel().getInType())
@@ -159,10 +234,26 @@
.eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
.eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone())
.ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate())
+ .ge(pageWrap.getModel().getArriveDateStart() != null, PlatformBooks::getArriveDate, pageWrap.getModel().getArriveDateStart())
+ .le(pageWrap.getModel().getArriveDateEnd() != null, PlatformBooks::getArriveDate, pageWrap.getModel().getArriveDateEnd())
+ .eq(pageWrap.getModel().getReasonId() != null, PlatformBooks::getReasonId, pageWrap.getModel().getReasonId())
+ .eq(pageWrap.getModel().getJobStatus() != null, PlatformJob::getStatus, pageWrap.getModel().getJobStatus())
.orderByDesc(PlatformBooks::getCreateDate)
;
- return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
+ PageData<PlatformBooks> pageData = PageData.from(platformBooksMapper.selectJoinPage(page,PlatformBooks.class, queryWrapper));
+ for (PlatformBooks platformBooks:pageData.getRecords()) {
+ if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ONE)||Constants.equalsInteger(platformBooks.getStatus(),Constants.ZERO)){
+ String auditName = approveService.getApproveUserName(platformBooks.getId(),Constants.approveObjectType.reason);
+ platformBooks.setAuditName(auditName);
+ }
+ }
+
+ return pageData;
}
+
+
+
+
@Override
public long count(PlatformBooks platformBooks) {
@@ -187,6 +278,7 @@
List<PlatformBooks> platformBooksList = platformBooksMapper.selectList(new QueryWrapper<PlatformBooks>().lambda()
.eq(PlatformBooks::getReasonId,platformBooksCheckNumDTO.getReasonId())
.ne(PlatformBooks::getStatus,Constants.THREE)
+ .eq(PlatformBooks::getIsdeleted,Constants.ZERO)
.like(PlatformBooks::getCreateDate, DateUtil.getDate(platformBooksCheckNumDTO.getArriveDate(),"yyyy-MM-dd"))
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformBooksList)){
@@ -223,7 +315,24 @@
if(Objects.isNull(platformReason)|| !Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍏ュ洯鍘熷洜淇℃伅寮傚父,璇峰埛鏂伴噸璇�");
}
- ApproveTempl approveTempl = approveTemplMapper.selectById(platformReason.getId());
+ if(platformBooksApplyDTO.getTotalNum().compareTo(platformReason.getLimitNum())>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠诲姟閲忚秴鍑哄崟鏃ュ彲浣滀笟閲忥紝璇蜂慨鏀瑰悗閲嶆柊杈撳叆!");
+ }
+ PlatformGroup platformGroup= platformGroupMapper.selectById(platformReason.getGroupId());
+ if(Objects.isNull(platformGroup)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌缁戝畾鏈堝彴缁勬暟鎹�");
+ }
+ if(!Constants.equalsInteger(platformGroup.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"缁戝畾鏈堝彴缁勬暟鎹紓甯革紝璇疯仈绯荤鐞嗗憳");
+ }
+ if(!Constants.checkCarNo(platformBooksApplyDTO.getCarCodeFront())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇疯緭鍏ユ纭殑杞︾墝!");
+ };
+ //鏌ヨ杞﹁締鏄惁涓鸿嚜鏈夎溅
+ if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda().eq(Cars::getIsdeleted,Constants.ZERO).eq(Cars::getCode,platformBooksApplyDTO.getCarCodeFront()))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"["+platformBooksApplyDTO.getCarCodeFront()+"]灞炰簬鍐呴儴杞﹁締锛屾棤娉曢绾�");
+ };
+ ApproveTempl approveTempl = approveTemplMapper.selectById(platformReason.getApproveTemplId());
if(Objects.isNull(approveTempl)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈厤缃鎵规祦,璇疯仈绯荤鐞嗗憳");
}
@@ -236,10 +345,26 @@
platformBooks.setIsdeleted(Constants.ZERO);
platformBooks.setStatus(Constants.ZERO);
platformBooks.setDriverId(platformBooksApplyDTO.getUserId());
+ platformBooks.setEditDate(new Date());
platformBooksMapper.insert(platformBooks);
//鍒涘缓瀹℃壒娴佷俊鎭�
- approveService.createApproveForPlatfrom(platformReason.getApproveTemplId(),platformBooks.getId(),platformBooks.getDriverId());
+ approveService.createApproveForPlatfrom(approveTempl.getId(),platformBooks.getId(),platformBooks.getDriverId());
+ //鍙戦�佸叕浼楀彿閫氱煡 缁欐彁浜や汉
+ SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(SystemUser::getDeleted, Constants.ZERO)
+ .eq(SystemUser::getType, Constants.ZERO)
+ .eq(SystemUser::getMobile,platformBooks.getDriverPhone())
+ .isNotNull(SystemUser::getOpenid)
+ .last(" limit 1 "));
+
+ if(Objects.nonNull(driver)&&StringUtils.isNotBlank(driver.getOpenid())){
+ WxPlatNotice wxPlatNotice = new WxPlatNotice();
+ wxPlatNotice.sendPlatformBookTemplateNotice(systemDictDataBiz,
+ wxNoticeConfigMapper, platformBooks,
+ WxPlatConstants.platformBookContent.platformBookUpload,
+ Arrays.asList(driver.getOpenid().split(",")),0);
+ }
return platformBooks.getId();
}
@@ -259,12 +384,15 @@
|| Objects.isNull(platformBooksApplyDTO.getDriverId())
|| StringUtils.isBlank(platformBooksApplyDTO.getDriverPhone())
|| StringUtils.isBlank(platformBooksApplyDTO.getDriverName())
- || StringUtils.isBlank(platformBooksApplyDTO.getTransportImg())
- ){
+ || StringUtils.isBlank(platformBooksApplyDTO.getTransportImg())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
+ //鏌ヨ杞﹁締鏄惁涓鸿嚜鏈夎溅
+ if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda().eq(Cars::getIsdeleted,Constants.ZERO).eq(Cars::getCode,platformBooksApplyDTO.getCarCodeFront()))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"["+platformBooksApplyDTO.getCarCodeFront()+"]灞炰簬鍐呴儴杞﹁締锛屾棤娉曢绾�");
+ };
PlatformBooks platformBooks = platformBooksMapper.selectById(platformBooksApplyDTO.getId());
- if(Objects.isNull(platformBooks)){
+ if(Objects.isNull(platformBooks)||Constants.equalsInteger(platformBooks.getIsdeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
if(!Constants.equalsInteger(platformBooks.getStatus(),Constants.ZERO)){
@@ -275,6 +403,19 @@
platformBooks.setReasonId(null);
platformBooks.setInReason(null);
platformBooksMapper.updateById(platformBooks);
+
+
+
+ Map<String,Object> jsonMap = new HashMap<>();
+ String title = ApproveServiceImpl.creatPlatformBookNotice(platformBooks,jsonMap);
+ noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
+ .set(Notices::getParam1,JSONObject.toJSONString(jsonMap))
+ .set(Notices::getTitle,title)
+ .eq(Notices::getObjType,Constants.noticesObjectType.reason)
+ .eq(Notices::getTitle,title)
+ .eq(Notices::getObjId,platformBooks.getId())
+ );
+
return platformBooks.getId();
}
@@ -283,7 +424,7 @@
@Override
public PlatformBooks getDetail(Integer id,Integer memberId){
PlatformBooks model = platformBooksMapper.selectById(id);
- if(Objects.isNull(model)){
+ if(Objects.isNull(model)||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌棰勭害璁板綍");
}
String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
@@ -317,6 +458,20 @@
approve.setCheckDate(model.getCancelTime());
approveList.add(approve);
}
+
+ Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda()
+ .eq(Notices::getObjId,id)
+ .eq(Notices::getType,Constants.noticesObjectType.reason)
+ .eq(Notices::getUserId,memberId)
+ .eq(Notices::getSendacopy,Constants.ZERO)
+ .orderByDesc(Notices::getId).last(" limit 1 "));
+ if(Objects.nonNull(notices)){
+ if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){
+ model.setInfo("寰呮垜澶勭悊");
+ }else{
+ model.setInfo(notices.getInfo());
+ }
+ }
return model;
}
@@ -326,12 +481,11 @@
public void revoke(RevokeDTO revokeDTO, LoginUserInfo loginUserInfo){
if(Objects.isNull(revokeDTO)
|| Objects.isNull(revokeDTO.getId())
- || StringUtils.isBlank(revokeDTO.getInfo())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
PlatformBooks model = platformBooksMapper.selectById(revokeDTO.getId());
- if(Objects.isNull(model)){
+ if(Objects.isNull(model)||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌棰勭害璁板綍");
}
if(!(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE))){
@@ -352,6 +506,25 @@
.eq(Approve::getObjType,Constants.approveObjectType.logisticsCarUse)
.eq(Approve::getObjId,revokeDTO.getId())
);
+
+ noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
+ .set(Notices::getEditDate,new Date())
+ .set(Notices::getInfo,"鐗╂祦杞﹂绾︾敵璇峰彇娑�")
+ .set(Notices::getReaded,Constants.ONE)
+ .set(Notices::getParam2,Constants.TWO)
+ .set(Notices::getStatus,Constants.ONE)
+ .eq(Notices::getType,Constants.noticesObjectType.reason)
+ .eq(Notices::getObjId,model.getId())
+ );
+
+ //鍙戦�佺煭淇¢�氱煡
+ SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
+ emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,model.getId(),
+ SmsConstants.platformBookContent.platformBookCancel,
+ null,null
+ );
+
+
}
--
Gitblit v1.9.3