From 94b5684557d4987add639a94d1ad41c32b5d00c0 Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期二, 03 九月 2024 10:32:29 +0800 Subject: [PATCH] 审批人修改 --- project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java | 237 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 187 insertions(+), 50 deletions(-) diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java index c470d09..7797ee3 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java @@ -6,17 +6,21 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.annotation.DataScope; import com.project.common.core.domain.entity.SysUser; +import com.project.common.core.domain.model.DateRange; import com.project.common.enums.OrderPre; import com.project.common.exception.base.BaseException; -import com.project.common.sms.YPSmsApi; import com.project.common.utils.DateUtils; import com.project.common.utils.JsonUtils; import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; import com.project.enforce.domain.*; -import com.project.enforce.domain.bo.editBo.*; +import com.project.enforce.domain.bo.editBo.EnforceComplaintLogBo; +import com.project.enforce.domain.bo.editBo.EnforceOrderBo; +import com.project.enforce.domain.bo.editBo.OrderComplaintBo; +import com.project.enforce.domain.bo.editBo.OrderResultBo; import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo; import com.project.enforce.domain.bo.queryBo.OrderCheckedQueryBo; +import com.project.enforce.domain.vo.EnforceDistinctVo; import com.project.enforce.domain.vo.EnforceEvaluateVo; import com.project.enforce.domain.vo.EnforceOrderVo; import com.project.enforce.domain.vo.OrderNodeVo; @@ -27,12 +31,12 @@ import com.project.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedList; import java.util.List; /** @@ -51,8 +55,102 @@ private final IEnforceCheckLogService checkLogService; private final IEnforceComplaintLogService complaintLogService; private final IEnforceEvaluateLogService evaluateLogService; + private final YPSmsService smsService; + private final EnforceOrderMapper orderMapper; - @Override//鍒楄〃鏌ヨ + /** + * 閫氱敤鍒楄〃-鏃犳潈闄� + * @param bo 鍙傛暟 + * @return 鍒楄〃 + */ + @Override + public List<EnforceOrderVo> queryCommonList(EnforceOrderQueryBo bo) + { + QueryWrapper<EnforceOrder> qw = getQw(bo); + if (bo.getCheckDeptId()!=null){ + bo.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(SecurityUtils.getDeptId())); + } + + List<EnforceOrder> list = this.list(qw); + return Convert.toList(EnforceOrderVo.class , list); + } + + @Override + public Integer getDistinctCompanyNum() { + return orderMapper.getDistinctCompanyNum(); + } + + /** + * 浼佷笟纭鎵ф硶鍗� + * @param orderId 璁㈠崟id + * @return 缁撴灉 + */ + @Override + @Transactional + public Boolean confirm(Long orderId) + { + EnforceOrder order = this.getById(orderId); + if (order.getOrderStatus()!=4){ + throw new BaseException("璇峰緟鎵ф硶閮ㄩ棬涓婃姤缁撴灉鍚庣‘璁わ紒"); + } + order.setOrderStatus(5); + order.setConfirmTime(DateUtils.getNowDate()); + return this.updateById(order); + } + + @Override + @Transactional + public Integer executeEnforceOrderWarn() + { + List<EnforceOrder> updList = new LinkedList<>(); + //鍚屼竴澶╅噸澶嶆墽娉� + List<EnforceDistinctVo> list =baseMapper.selectDistinctCheckDeptIdAndCompanyId(); + if (StringUtils.isNotEmpty(list)){ + for (EnforceDistinctVo distinctVo : list) { + List<EnforceOrder> orderList = this.list(lq() + .eq(EnforceOrder::getCompanyId, distinctVo.getCompanyId()) + .eq(EnforceOrder::getCheckDeptId, distinctVo.getCheckDeptId()) + .like(EnforceOrder::getApplyTime, distinctVo.getApplyTimeStr()) + .orderByDesc(EnforceOrder::getApplyTime) + ); + if (StringUtils.isNotEmpty(orderList)){ + List<EnforceOrder> enforceOrders = orderList.subList(0, orderList.size() - 1); + enforceOrders.forEach(order->{order.setWarnStatus(1);order.setWarnReason("鍚屼竴澶╁唴瀵瑰悓涓�浼佷笟閲嶅鎵ф硶");}); + updList.addAll(enforceOrders); + } + } + } + if (StringUtils.isNotEmpty(updList)){ + this.updateBatchById(updList); + } + return updList.size(); + } + + public static void main(String[] args) { + DateRange todayRange = DateUtils.getTodayRange(); + System.out.println(todayRange); + } + + /** + * 浼佷笟鎵ф硶鍗曞垪琛� + * @param bo 鍙傛暟 + * @return 鍒楄〃 + */ + @Override + public List<EnforceOrderVo> queryCompanyList(EnforceOrderQueryBo bo) + { + QueryWrapper<EnforceOrder> qw = getQw(bo); + qw.ge("order_status",2); + List<EnforceOrder> list = this.list(qw); + return Convert.toList(EnforceOrderVo.class , list); + } + + /** + * 鎵ф硶鐢宠鍗曞垪琛� + * @param bo 鍙傛暟 + * @return 鍒楄〃 + */ + @Override @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_id") public List<EnforceOrderVo> queryList(EnforceOrderQueryBo bo) { @@ -62,7 +160,12 @@ return Convert.toList(EnforceOrderVo.class , list); } - @Override//鎵ф硶涓婃姤鍒楄〃 + /** + * 鎵ф硶鎵ц鍗曞垪琛� + * @param bo 鍙傛暟 + * @return 鍒楄〃 + */ + @Override @DataScope(deptAlias = "execute_dept_id", userAlias = "execute_id") public List<EnforceOrderVo> getExecuteList(EnforceOrderQueryBo bo) { QueryWrapper<EnforceOrder> qw = getQw(bo); @@ -71,20 +174,30 @@ return Convert.toList(EnforceOrderVo.class , list); } - @Override//寰呭鏍稿垪琛� + /** + * 寰呭鏍稿垪琛� + * @param bo 鍙傛暟 + * @return 鍒楄〃 + */ + @Override public List<EnforceOrderVo> queryCheckList(EnforceOrderQueryBo bo) { - SysUser loginUser = SecurityUtils.getLoginUser().getUser(); + SysUser loginUser = userService.selectUserById(SecurityUtils.getUserId()); bo.setCheckIds(loginUser.getPhonenumber()); - List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId()); - if (StringUtils.isNotEmpty(deptIds)){ - bo.setApplyDeptIds(deptIds); - } else { - bo.setApplyDeptIds(null); - } +// List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId()); +// if (StringUtils.isNotEmpty(deptIds)){ +// bo.setApplyDeptIds(deptIds); +// } else { +// bo.setApplyDeptIds(null); +// } return this.baseMapper.selectCheckList(bo); } + /** + * 瀹℃壒璁板綍鍒楄〃 + * @param bo 鍙傛暟 + * @return 鍒楄〃 + */ @Override public List<EnforceOrderVo> queryCheckedList(OrderCheckedQueryBo bo) { @@ -92,7 +205,12 @@ return this.baseMapper.selectCheckedList(bo); } - @Override//淇℃伅鍏紡鍒楄〃 + + /** + * 淇℃伅鍏紡鍒楄〃 + * @return 鍒楄〃 + */ + @Override public List<EnforceOrderVo> showList() { List<EnforceOrder> list = this.list(lq() @@ -102,7 +220,10 @@ return Convert.toList(EnforceOrderVo.class, list); } - @Override//id鏌ヨ + /** + * id鏌ヨ + */ + @Override public EnforceOrderVo queryById(Long orderId) { EnforceOrder db = this.baseMapper.selectById(orderId); @@ -114,12 +235,14 @@ if (one!=null){ String questionStatic = one.getQuestionStatic(); if (StringUtils.isNotEmpty(questionStatic)){ + EnforceEvaluateVo evaluateVo = Convert.convert(EnforceEvaluateVo.class, one); try { - EnforceEvaluateVo evaluateVo = JsonUtils.jsonToPojo(questionStatic, EnforceEvaluateVo.class); - vo.setEvaluateVo(evaluateVo); + List<EnforceEvaluateQuestion> questions = JsonUtils.jsonToList(questionStatic, EnforceEvaluateQuestion.class); + evaluateVo.setQuestionList(questions); } catch (Exception e) { throw new BaseException("璇勪环闂埜瑙f瀽寮傚父锛�"); } + vo.setEvaluateVo(evaluateVo); } } } @@ -127,6 +250,9 @@ } + /** + * 鏂板 + */ @Override//娣诲姞 @Transactional public Boolean insertByBo(EnforceOrderBo bo) @@ -136,6 +262,9 @@ validEntityBeforeSave(add); List<String> phones = getCheckPhones(add.getCheckLevel(), add.getApplyDeptId()); if (StringUtils.isNotEmpty(phones)){ + int checkLevel = Integer.parseInt(phones.get(0)); + add.setCheckLevel(checkLevel); + phones.remove(0); String checkPhones = StringUtils.join(phones, ","); add.setCheckIds(checkPhones); } @@ -156,11 +285,14 @@ } boolean savePeers = peerService.saveOrUpdateBatch(bo.getPeers()); if (savePeers && StringUtils.isNotEmpty(phones)) { - sendApplyMsg(phones, add.getApplyUser()); + smsService.sendApplyMsg(phones, add.getApplyUser()); } return savePeers; } + /** + * 淇敼 + */ @Override//淇敼 @Transactional public Boolean updateByBo(EnforceOrderBo bo) @@ -170,6 +302,9 @@ return this.updateById(update); } + /** + * 鍒犻櫎 + */ @Override//鍒犻櫎 @Transactional public Boolean deleteByIds(Collection<Long> ids) @@ -180,10 +315,13 @@ return this.removeByIds(ids); } + /** + * 鑾峰彇涓嬩竴绾у鎵逛汉鐢佃瘽 + */ @Override public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId) { - return getCheckPhones(checkLevel, applyDeptId, 0); + return getCheckPhonesSimple(checkLevel, applyDeptId); } @Override @@ -195,24 +333,27 @@ .eq(EnforceCheckLog::getOrderId, orderId).orderByAsc(EnforceCheckLog::getCheckTime) ); if (order.getApplyTime()!=null){ - vos.add(new OrderNodeVo("鎻愪氦鐢宠",order.getApplyUser(),order.getApplyTime(), null)); + vos.add(new OrderNodeVo("鎻愪氦鐢宠",order.getApplyUser(),order.getApplyDeptName(),order.getApplyTime(), null)); } if (StringUtils.isNotEmpty(checkLogs)){ for (EnforceCheckLog checkLog : checkLogs) { + if (checkLog.getCheckStatus()>0){ - vos.add(new OrderNodeVo("瀹℃壒閫氳繃",checkLog.getCheckUser(),checkLog.getCheckTime(), null)); + vos.add(new OrderNodeVo("瀹℃壒閫氳繃",checkLog.getCheckUser(),userService.getDeptNameByUserId(checkLog.getCheckId()),checkLog.getCheckTime(), null)); } else { - vos.add(new OrderNodeVo("瀹℃壒鎷掔粷",checkLog.getCheckUser(),checkLog.getCheckTime(), checkLog.getCheckReason())); + vos.add(new OrderNodeVo("瀹℃壒鎷掔粷",checkLog.getCheckUser(),userService.getDeptNameByUserId(checkLog.getCheckId()),checkLog.getCheckTime(), checkLog.getCheckReason())); } } } if (order.getInTime()!=null){ - vos.add(new OrderNodeVo("鎵爜鍏ヤ紒",order.getExecuteUser(),order.getInTime(), null)); + vos.add(new OrderNodeVo("鎵爜鍏ヤ紒",order.getExecuteUser(),order.getExecuteDeptName(),order.getInTime(), null)); } if (order.getExecuteTime()!=null){ - vos.add(new OrderNodeVo("缁撴灉涓婃姤",order.getExecuteUser(),order.getExecuteTime(), null)); + vos.add(new OrderNodeVo("缁撴灉涓婃姤",order.getExecuteUser(),order.getExecuteDeptName(),order.getExecuteTime(), null)); } - + if (order.getConfirmTime()!=null){ + vos.add(new OrderNodeVo("浼佷笟纭",order.getCompanyUser(),order.getCompanyName(),order.getConfirmTime(), null)); + } return vos; } @@ -228,11 +369,17 @@ public Boolean doScanOrder(Long orderId) { EnforceOrder order = this.getById(orderId); + if (order.getOrderStatus()<2){ + throw new BaseException("鎵ф硶鍗曡繕鏈鎵癸紒"); + } + if (order.getOrderStatus()>2){ + throw new BaseException("鎵ф硶鍗曞凡纭鎵ф硶锛�"); + } order.setOrderStatus(3); - SysUser user = SecurityUtils.getLoginUser().getUser(); + SysUser user = userService.selectUserById(SecurityUtils.getUserId()); order.setExecuteId(user.getUserId()); order.setExecuteUser(user.getNickName()); - order.setExecutePhone(user.getRecommendPhone()); + order.setExecutePhone(user.getPhonenumber()); order.setExecuteDeptId(user.getDeptId()); order.setExecuteDeptName(deptService.getDeptAllName(user.getDeptId())); order.setInTime(DateUtils.getNowDate()); @@ -249,7 +396,6 @@ if (StringUtils.isEmpty(resultBo.getRegionReason())){ throw new BaseException("璇峰~鍐欐墽娉曠粨鏋滆鏄�"); } - return this.update(lu() .set(resultBo.getRegionStatus()!=null, EnforceOrder::getRegionStatus, resultBo.getRegionStatus()) .set(StringUtils.isNotEmpty(resultBo.getRegionReason()), EnforceOrder::getRegionReason, resultBo.getRegionReason()) @@ -257,6 +403,7 @@ .set(StringUtils.isNotEmpty(resultBo.getRegionVideos()), EnforceOrder::getRegionVideos, resultBo.getRegionVideos()) .set( EnforceOrder::getOrderStatus, 4) .set( EnforceOrder::getExecuteTime, DateUtils.getNowDate()) + .eq( EnforceOrder::getOrderId, resultBo.getOrderId()) ); } @@ -274,6 +421,9 @@ throw new BaseException("璇峰~鍐欐姇璇夊唴瀹癸紒"); } EnforceOrder order = this.getById(bo.getOrderId()); + if (order.getOrderStatus()!=4){ + throw new BaseException("鎵ф硶鍗曟湭涓婃姤鎵ф硶缁撴灉锛�"); + } //娣诲姞鎶曡瘔璁板綍 EnforceComplaintLogBo complaintLogBo = Convert.convert(EnforceComplaintLogBo.class, order); complaintLogBo.setComplaintType(bo.getComplaintType()); @@ -301,20 +451,10 @@ } + + //------------------------------------------------------------------------------------- - - /** - * 鍙戦�佸鎵圭煭淇� - * @param phones 鎵嬫満鍙� - * @param applyUser 鐢宠浜� - */ - @Async - public void sendApplyMsg(List<String> phones, String applyUser) - { - String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.APPLY_TMP, applyUser)); - phones.forEach(phone-> YPSmsApi.sendSms(phone, applyMsg)); - } //淇濆瓨鍓嶆牎楠� private void validEntityBeforeSave(EnforceOrder entity) @@ -385,6 +525,8 @@ qw.eq(bo.getIsShow() != null, "is_show", bo.getIsShow()); qw.eq(bo.getIsEva() != null, "is_eva", bo.getIsEva()); qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore()); + qw.ge(StringUtils.isNotEmpty(bo.getBeginTime()), "in_time", bo.getBeginTime()); + qw.le(StringUtils.isNotEmpty(bo.getEndTime()), "in_time", bo.getEndTime()); if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){ if ("acs".equals(bo.getIsAsc())) { qw.orderByAsc(bo.getOrderByColumn()); @@ -401,24 +543,19 @@ * @param checkLevel 瀹℃壒绾у埆锛氶粯璁�0 * @param deptId 鐢宠閮ㄩ棬id */ - private List<String> getCheckPhones(Integer checkLevel, Long deptId, int current) + private List<String> getCheckPhonesSimple(Integer checkLevel, Long deptId) { if (checkLevel==3){ - if (current==1){ - return null; - } - checkLevel = 0; - deptId = deptService.selectDeptById(deptId).getParentId(); - current++; - getCheckPhones(checkLevel, deptId, current); + return null; } - checkLevel++; String checkKey = "check_enforce_"; List<String> phones = userService.getPhonesByRoleKey(checkKey + checkLevel, deptId); if (StringUtils.isNotEmpty(phones)){ + phones.add(0,checkLevel.toString()); return phones; } - return getCheckPhones(checkLevel, deptId, current); + checkLevel ++; + return getCheckPhonesSimple(checkLevel, deptId); } -- Gitblit v1.9.1