From 5944c9ea054165cc4adfa79254f9b724abc371db Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期二, 03 九月 2024 13:52:00 +0800 Subject: [PATCH] 执法记录条件 --- project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java | 303 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 248 insertions(+), 55 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 cc5e2a1..db16813 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,36 +6,37 @@ 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.EnforceCheckLog; -import com.project.enforce.domain.EnforceOrder; -import com.project.enforce.domain.EnforcePeer; +import com.project.enforce.domain.*; +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; import com.project.enforce.mapper.EnforceOrderMapper; -import com.project.enforce.service.IEnforceCheckLogService; -import com.project.enforce.service.IEnforceOrderService; -import com.project.enforce.service.IEnforcePeerService; +import com.project.enforce.service.*; import com.project.system.service.ISysDeptService; import com.project.system.service.ISysOrderNoService; 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; /** @@ -52,8 +53,102 @@ private final ISysOrderNoService orderNoService; private final IEnforcePeerService peerService; 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); + + + 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) { @@ -63,7 +158,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); @@ -72,20 +172,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) { @@ -93,24 +203,54 @@ return this.baseMapper.selectCheckedList(bo); } - @Override//淇℃伅鍏紡鍒楄〃 + + /** + * 淇℃伅鍏紡鍒楄〃 + * @return 鍒楄〃 + */ + @Override public List<EnforceOrderVo> showList() { - List<EnforceOrder> list = this.list(lq().eq(EnforceOrder::getIsShow, 1)); + List<EnforceOrder> list = this.list(lq() + .eq(EnforceOrder::getIsShow, 1) + .eq(EnforceOrder::getOrderStatus, 4) + ); return Convert.toList(EnforceOrderVo.class, list); } - @Override//id鏌ヨ + /** + * id鏌ヨ + */ + @Override public EnforceOrderVo queryById(Long orderId) { EnforceOrder db = this.baseMapper.selectById(orderId); EnforceOrderVo vo = Convert.convert(EnforceOrderVo.class, db); List<EnforcePeer> peers = peerService.list(peerService.lq().eq(EnforcePeer::getOrderId, orderId).eq(EnforcePeer::getPeerType,2)); vo.setPeers(peers); + if (db.getIsEva()==1){ + EnforceEvaluateLog one = evaluateLogService.getOne(evaluateLogService.lq().eq(EnforceEvaluateLog::getOrderId, orderId)); + if (one!=null){ + String questionStatic = one.getQuestionStatic(); + if (StringUtils.isNotEmpty(questionStatic)){ + EnforceEvaluateVo evaluateVo = Convert.convert(EnforceEvaluateVo.class, one); + try { + List<EnforceEvaluateQuestion> questions = JsonUtils.jsonToList(questionStatic, EnforceEvaluateQuestion.class); + evaluateVo.setQuestionList(questions); + } catch (Exception e) { + throw new BaseException("璇勪环闂埜瑙f瀽寮傚父锛�"); + } + vo.setEvaluateVo(evaluateVo); + } + } + } return vo; } + /** + * 鏂板 + */ @Override//娣诲姞 @Transactional public Boolean insertByBo(EnforceOrderBo bo) @@ -120,6 +260,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); } @@ -140,11 +283,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) @@ -154,6 +300,9 @@ return this.updateById(update); } + /** + * 鍒犻櫎 + */ @Override//鍒犻櫎 @Transactional public Boolean deleteByIds(Collection<Long> ids) @@ -164,10 +313,13 @@ return this.removeByIds(ids); } + /** + * 鑾峰彇涓嬩竴绾у鎵逛汉鐢佃瘽 + */ @Override public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId) { - return getCheckPhones(checkLevel, applyDeptId, 0); + return getCheckPhonesSimple(checkLevel, applyDeptId); } @Override @@ -179,24 +331,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; } @@ -212,18 +367,25 @@ 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()); return this.updateById(order); } - @Override + @Override//涓婃姤缁撴灉 + @Transactional public Boolean doResultOrder(OrderResultBo resultBo) { if (resultBo.getRegionStatus()==null){ @@ -232,31 +394,65 @@ 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()) .set(StringUtils.isNotEmpty(resultBo.getRegionImgs()), EnforceOrder::getRegionImgs, resultBo.getRegionImgs()) .set(StringUtils.isNotEmpty(resultBo.getRegionVideos()), EnforceOrder::getRegionVideos, resultBo.getRegionVideos()) + .set( EnforceOrder::getOrderStatus, 4) .set( EnforceOrder::getExecuteTime, DateUtils.getNowDate()) + .eq( EnforceOrder::getOrderId, resultBo.getOrderId()) ); } + + @Override//鎵ф硶鍗曟姇璇� + @Transactional + public Boolean orderComplaint(OrderComplaintBo bo) + { + if (bo.getOrderId()==null){ + throw new BaseException("璇烽�夋嫨瑕佹姇璇夌殑鎵ф硶鍗曪紒"); + } + if (StringUtils.isEmpty(bo.getComplaintType())){ + throw new BaseException("璇烽�夋嫨瑕佹姇璇夌被鍨嬶紒"); + } + if (StringUtils.isEmpty(bo.getComplaintReason())){ + 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()); + complaintLogBo.setComplaintReason(bo.getComplaintReason()); + Boolean addLog = complaintLogService.insertByBo(complaintLogBo); + if (addLog){ + return this.update(lu() + .set(EnforceOrder::getIsComplaint,1) + .set(EnforceOrder::getComplaintType,bo.getComplaintType()) + .set(EnforceOrder::getComplaintReason,bo.getComplaintReason()) + .eq(EnforceOrder::getOrderId,bo.getOrderId()) + ); + } + return false; + } + + @Override//鎵ф硶鍗曟姇璇夎妭鐐� + public List<OrderNodeVo> orderComplaintNodeList(Long orderId) + { + EnforceComplaintLog log = complaintLogService.getOne(complaintLogService.lq().eq(EnforceComplaintLog::getOrderId, orderId)); + if (log==null){ + return null; + } + return complaintLogService.orderNodeList(log.getId()); + } + + //------------------------------------------------------------------------------------- - - /** - * 鍙戦�佸鎵圭煭淇� - * @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) @@ -327,6 +523,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()); @@ -343,24 +541,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