From 72acd4affab999dcf2626b341fdc3490e6726610 Mon Sep 17 00:00:00 2001 From: mashuai Date: Thu, 10 Jul 2025 16:12:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E5=9C=A8=E7=94=A8=E9=87=8F?= =?UTF-8?q?=E5=8F=8Aapp=E9=AA=8C=E8=AF=81=E7=A0=81=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sgzb/base/api/domain/BackApplyInfo.java | 21 ++++ .../sgzb/auth/controller/TokenController.java | 7 ++ .../sgzb/app/mapper/BackReceiveMapper.java | 7 ++ .../service/impl/BackReceiveServiceImpl.java | 80 ++++++++++---- .../app/service/impl/TmTaskServiceImpl.java | 17 +-- .../mapper/app/BackReceiveMapper.xml | 102 +++++++++++++++++- .../service/impl/SysSmsServiceImpl.java | 6 +- 7 files changed, 212 insertions(+), 28 deletions(-) diff --git a/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java index 649e78c9..e998cf92 100644 --- a/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java +++ b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/base/api/domain/BackApplyInfo.java @@ -248,4 +248,25 @@ public class BackApplyInfo { * 库管id集合 */ private List userIds; + + @ApiModelProperty(value = "租赁数量") + private Double outNum; + + /** + * 在用数量 + */ + @ApiModelProperty(value = "在用数量") + private Double usNum; + + /** + * 在用总价值 + */ + @ApiModelProperty(value = "在用总价值") + private Double usPrice; + + /** + * 投入总价值 + */ + @ApiModelProperty(value = "投入总价值") + private Double totalPrice; } diff --git a/sgzb-auth/src/main/java/com/bonus/sgzb/auth/controller/TokenController.java b/sgzb-auth/src/main/java/com/bonus/sgzb/auth/controller/TokenController.java index 4513e67f..794a5ca5 100644 --- a/sgzb-auth/src/main/java/com/bonus/sgzb/auth/controller/TokenController.java +++ b/sgzb-auth/src/main/java/com/bonus/sgzb/auth/controller/TokenController.java @@ -124,6 +124,13 @@ public class TokenController { @PostMapping("sendCode") public R sendCode(@RequestBody LoginBody form) { + if (StringUtils.isBlank(form.getPhone())) { + return R.fail("手机号码不能为空"); + } + // app登录,不校验图形验证码 + if (StringUtils.isBlank(form.getUuid()) && StringUtils.isBlank(form.getCode())) { + return remoteUserService.sendCode(form.getPhone()); + } String uuid = form.getUuid(); String captcha = ""; Object object = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid); diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/mapper/BackReceiveMapper.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/mapper/BackReceiveMapper.java index b2ad141d..1cf93230 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/mapper/BackReceiveMapper.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/mapper/BackReceiveMapper.java @@ -226,4 +226,11 @@ public interface BackReceiveMapper { Integer getCheckDetails(BackApplyInfo record); int updateMtNum(BackApplyInfo record); + + /** + * 根据工程及设备类型查询工程在用量 + * @param backApplyInfo + * @return + */ + BackApplyInfo getProAndTypeNum(BackApplyInfo backApplyInfo); } \ No newline at end of file diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java index 8f020627..c15442e7 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/BackReceiveServiceImpl.java @@ -86,30 +86,72 @@ public class BackReceiveServiceImpl implements BackReceiveService { @Override public List receiveView(BackApplyInfo record) { + // 获取当前用户ID和角色 Long userId = SecurityUtils.getUserId(); - List list = new ArrayList<>(); - List longs = new ArrayList<>(); - List backApplyInfoList = backReceiveMapper.receiveView(record); - // 定义需要匹配的角色集合 - List allowedRoles = Arrays.asList("admin", "em01", "em02", "jjbz", "dm01", "dm07"); - // 获取当前用户的角色集合 Set userRoles = SecurityUtils.getLoginUser().getRoles(); - if (userRoles != null && allowedRoles.stream().anyMatch(userRoles::contains)) { - return backApplyInfoList; + + // 查询所有申请信息 + List allApplyInfos = backReceiveMapper.receiveView(record); + if (CollectionUtils.isEmpty(allApplyInfos)) { + return Collections.emptyList(); } - if (CollectionUtils.isNotEmpty(backApplyInfoList)) { - for (BackApplyInfo backApplyInfo : backApplyInfoList) { - if (StringUtils.isNotBlank(backApplyInfo.getUserId())) { - List strings = Arrays.asList(backApplyInfo.getUserId().split(",")); - //转换为long类型 - longs = strings.stream().map(Long::parseLong).collect(Collectors.toList()); - } - if (longs.contains(userId)) { - list.add(backApplyInfo); - } + + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + + // 处理数据并设置在用量 + List resultList = new ArrayList<>(); + for (BackApplyInfo applyInfo : allApplyInfos) { + // 设置在用量 + setUsageNumber(applyInfo); + + // 根据角色决定是否添加到结果集 + if (hasSpecialRole || isUserInvolved(applyInfo, userId)) { + resultList.add(applyInfo); } } - return list; + + return resultList; + } + + /** + * 检查用户是否具有特殊角色 + * @param userRoles + * @return + */ + private boolean hasSpecialRole(Set userRoles) { + if (userRoles == null) { + return false; + } + List allowedRoles = Arrays.asList("admin", "em01", "em02", "jjbz", "dm01", "dm07"); + return allowedRoles.stream().anyMatch(userRoles::contains); + } + + /** + * 设置申请信息的在用量 + * @param applyInfo + */ + private void setUsageNumber(BackApplyInfo applyInfo) { + BackApplyInfo info = backReceiveMapper.getProAndTypeNum(applyInfo); + applyInfo.setUsNum(info != null ? info.getUsNum() : 0.0); + } + + /** + * 检查用户是否参与了该申请 + * @param applyInfo + * @param userId + * @return + */ + private boolean isUserInvolved(BackApplyInfo applyInfo, Long userId) { + if (StringUtils.isBlank(applyInfo.getUserId())) { + return false; + } + + List involvedUserIds = Arrays.stream(applyInfo.getUserId().split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + + return involvedUserIds.contains(userId); } public List receiveView2(BackApplyInfo record) { diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java index 7c9479b3..50f52e83 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java @@ -674,14 +674,19 @@ public class TmTaskServiceImpl implements TmTaskService { List list = tmTaskMapper.getLeaseOutListByUser(task); if (CollectionUtils.isNotEmpty(list)) { for (TmTask tmTask : list) { - // 首先排除任务状态为待出库或者出库完成的状态 - if (tmTask.getTaskStatus() == 33 || tmTask.getTaskStatus() == 35) { + // 首先排除任务状态为出库完成的状态 + if (tmTask.getTaskStatus() == 35) { continue; } - if (tmTask.getPreCountNum().equals(tmTask.getAlNum())) { - // 全部出库,返回个人任务状态为出库完成,不修改整条任务状态 - tmTask.setTaskStatus(35); - tmTask.setTaskName("完成"); + task.setId(tmTask.getId()); + List leaseApplyDetailsList = tmTaskMapper.getLeaseDetailByParentId(task); + if (CollectionUtils.isNotEmpty(leaseApplyDetailsList)) { + // 如果leaseApplyDetailsList中的status状态全部为2已完成,则修改整条任务状态为出库完成 + if (leaseApplyDetailsList.stream().allMatch(item -> item.getStatus() == 2)) { + // 全部出库,返回个人任务状态为出库完成,不修改整条任务状态 + tmTask.setTaskStatus(35); + tmTask.setTaskName("完成"); + } } } } diff --git a/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackReceiveMapper.xml b/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackReceiveMapper.xml index 4081f7f5..76984b5d 100644 --- a/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackReceiveMapper.xml +++ b/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackReceiveMapper.xml @@ -734,13 +734,17 @@ mt.company_id as companyId, CONCAT('NSJJ',mt.`code`,mt.model_code) as `code`, mtk.userId as userId, - aa.badId as badId + aa.badId as badId, + bpl.lot_id as lotId, + bpl.lot_name as lotName FROM back_apply_details bad LEFT JOIN back_apply_info bai on bai.id=bad.parent_id LEFT JOIN tm_task_agreement tta on tta.task_id=bai.task_id LEFT JOIN ma_type mt on mt.type_id=bad.type_id LEFT JOIN ma_type mt2 ON mt2.type_id=mt.parent_id + LEFT JOIN bm_agreement_info bagi on bagi.agreement_id=tta.agreement_id + LEFT JOIN bm_project_lot bpl on bpl.lot_id = bagi.project_id LEFT JOIN ( SELECT GROUP_CONCAT(id) as badId, @@ -1198,5 +1202,101 @@ select sum(back_num) from back_check_details where parent_id = #{parentId} and type_id = #{typeId} and (is_finished is null or is_finished != 1) + + \ No newline at end of file diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysSmsServiceImpl.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysSmsServiceImpl.java index e8e3c081..050d991c 100644 --- a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysSmsServiceImpl.java +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysSmsServiceImpl.java @@ -148,8 +148,10 @@ public class SysSmsServiceImpl implements ISysSmsService { } // 发送短信 try { - String content = URL + "&mobile=" + phone + "&content=【智慧仓储】您正在进行短信验证,验证码:" + code + ",请在5分钟内完成验证。"; - String body = HttpRequest.post(content).execute(false).body(); + /*String content = URL + "&mobile=" + phone + "&content=【智慧仓储】您正在进行短信验证,验证码:" + code + ",请在5分钟内完成验证。"; + String body = HttpRequest.post(content).execute(false).body();*/ + msg = "您正在进行短信验证,验证码:" + code + ",请在5分钟内完成验证。"; + String body = SmsUtils.smsToken(phone, msg, ""); System.out.println("发送短信:" + phone + ",验证码:" + code + ",返回结果:" + body); if (body == null || !body.contains(GlobalConstants.STRING_OK)) { return AjaxResult.error("发送失败");