From 4b6734ec2dda3e8895c8c2545e79c6e2ece2317c Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Tue, 22 Oct 2024 23:44:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=B7=A5=E5=8D=95=E5=8F=8A?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DlRepairTicketsServiceImpl.java | 182 ++++++++++++------ .../impl/DlTicketWaresServiceImpl.java | 37 +++- .../tickets/vo/DlRepairTicketsRespVO.java | 11 ++ 3 files changed, 173 insertions(+), 57 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index 894022b4..58ed5e6b 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -217,12 +217,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl().and(item -> { item.eq(CustomerCar::getCusId, userId) .eq(CustomerCar::getCarId, carId); })); // 没有就新增 - if (ObjectUtil.isEmpty(one)){ + if (ObjectUtil.isEmpty(one)) { CustomerCar customerCar = new CustomerCar(); customerCar.setCusId(userId); customerCar.setCarId(carId); @@ -396,11 +396,11 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl params = new HashMap<>(); - params.put("jobNumber","123456789"); + Map params = new HashMap<>(); + params.put("jobNumber", "123456789"); String fileName = "结算单.docx"; - String tmpPath = "D:\\"+fileName; - try{ + String tmpPath = "D:\\" + fileName; + try { InputStream inputStream = XWPFTemplate.class.getResourceAsStream("/templates/gdmb.docx"); XWPFTemplate template = XWPFTemplate.compile(inputStream); template.render(params); @@ -408,8 +408,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl getPageType(DlRepairTicketsReqVO repairTicketsReqVO, Page page){ + public IPage getPageType(DlRepairTicketsReqVO repairTicketsReqVO, Page page) { String userRoleCode = getUserRole(); - if(userRoleCode.equals(RepairRoleEnum.ADMIN.getCode())|| userRoleCode.equals(RepairRoleEnum.INSPECTION.getCode())){ - //维修管理员和总检,看所有数据 - }else if(userRoleCode.equals(RepairRoleEnum.ADVISOR.getCode())){ + if (userRoleCode.equals(RepairRoleEnum.ADMIN.getCode()) || userRoleCode.equals(RepairRoleEnum.INSPECTION.getCode())) { + //维修管理员和总检,看所有数据 + } else if (userRoleCode.equals(RepairRoleEnum.ADVISOR.getCode())) { //服务顾问看自己的 repairTicketsReqVO.setAdviserId(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); - }else if(userRoleCode.equals(RepairRoleEnum.REPAIR_STAFF.getCode())){ + } else if (userRoleCode.equals(RepairRoleEnum.REPAIR_STAFF.getCode())) { //维修工,进一步判断是否是班组长 boolean ifLeader = workerService.getIfLeader(); - if(ifLeader){ + if (ifLeader) { //班组长,看本班组所有数据 RepairWorker one = repairWorkerService.getOne(new LambdaQueryWrapper().eq(RepairWorker::getUserId, SecurityFrameworkUtils.getLoginUserId())); // 查自己班组的员工信息 @@ -440,16 +440,16 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl userIds = list.stream().map(RepairWorker::getUserId).collect(Collectors.toList()); repairTicketsReqVO.setUserIds(userIds); - }else{ + } else { //普通维修工 repairTicketsReqVO.setUserIds(Collections.singletonList(SecurityFrameworkUtils.getLoginUserId())); } - }else{ + } else { return null; } - if(RepairCons.TICKETS_WAITING.equals(repairTicketsReqVO.getSelectType())){ + if (RepairCons.TICKETS_WAITING.equals(repairTicketsReqVO.getSelectType())) { return baseMapper.getPageType(repairTicketsReqVO, page); - }else{ + } else { return baseMapper.getPageTypeAll(repairTicketsReqVO, page); } } @@ -459,9 +459,9 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl byUserId = permissionApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId()); @@ -472,27 +472,27 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl codes = collect.stream().map(RoleReqDTO::getCode).collect(Collectors.toList()); // 维修业务管理员--可以看所有数据,但不能做操作 - if (codes.contains(RepairRoleEnum.ADMIN.getCode())){ + if (codes.contains(RepairRoleEnum.ADMIN.getCode())) { return RepairRoleEnum.ADMIN.getCode(); } // 总检 - if (codes.contains(RepairRoleEnum.INSPECTION.getCode())){ + if (codes.contains(RepairRoleEnum.INSPECTION.getCode())) { return RepairRoleEnum.INSPECTION.getCode(); } // 服务顾问 - if (codes.contains(RepairRoleEnum.ADVISOR.getCode())){ + if (codes.contains(RepairRoleEnum.ADVISOR.getCode())) { return RepairRoleEnum.ADVISOR.getCode(); } // 维修工(或班组长) - if (codes.contains(RepairRoleEnum.REPAIR_STAFF.getCode())){ + if (codes.contains(RepairRoleEnum.REPAIR_STAFF.getCode())) { return RepairRoleEnum.REPAIR_STAFF.getCode(); } // 维修仓库管理员 - if(codes.contains(RepairRoleEnum.WAREHOUSE.getCode())){ + if (codes.contains(RepairRoleEnum.WAREHOUSE.getCode())) { return RepairRoleEnum.WAREHOUSE.getCode(); } // 维修财务 - if(codes.contains(RepairRoleEnum.WXCW.getCode())){ + if (codes.contains(RepairRoleEnum.WXCW.getCode())) { return RepairRoleEnum.WXCW.getCode(); } // 啥也不是 @@ -502,12 +502,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl() .set(DlRepairTickets::getTicketsWorkStatus, TicketsWorkStatusEnum.RECEIVED.getCode()) @@ -515,19 +515,19 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(DlRepairTickets::getId, respVO.getId()); wrapper.set(DlRepairTickets::getTicketsWorkStatus, respVO.getTicketsWorkStatus()); - if (ObjectUtil.isNotEmpty(respVO.getIsFinish())){ + if (ObjectUtil.isNotEmpty(respVO.getIsFinish())) { wrapper.set(DlRepairTickets::getIsFinish, respVO.getIsFinish()); } baseMapper.update(wrapper); } - if(null!=respVO.getItem() && StringUtils.isNotEmpty(respVO.getItem().getItemStatus())){ + if (null != respVO.getItem() && StringUtils.isNotEmpty(respVO.getItem().getItemStatus())) { // 更新工单子表 titemService.update(new LambdaUpdateWrapper() .set(DlRepairTitem::getItemStatus, respVO.getItem().getItemStatus()) @@ -578,18 +578,90 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl ids = permissionApi.getUserIdByRoleId(roleInfo.getId()); + if (CollectionUtil.isEmpty(ids)) return; + // 如果是移交给总检就需要通知总检并让其总检 + if (respVO.getRecordType().equals("03") && respVO.getFinishType().equals("02")) { + // 工单移交给总检(理论上讲只有一个总检,就算有多个这里面也只给一个) + AdminUserRespDTO user = adminUserApi.getUser(ids.get(0)); + baseMapper.update(new LambdaUpdateWrapper() + .set(DlRepairTickets::getNowRepairId, user.getId()) + .eq(DlRepairTickets::getNowRepairName, user.getNickname())); + repairWorkerService.sentMessage(user.getId(), "您有新的工单需要总检"); + } else { + ids.forEach(id -> { + repairWorkerService.sentMessage(id, message); + }); + } + } + + private String createMessage(String who, String no, String projectName, String type, String finishType, String nextName) { + String result = who; + switch (type) { + // 开始施工 + case "kssg": + return result + "开始施工工单:" + no + "中" + projectName + "项目"; + // 施工记录 + case "sgz": + return result + "上传了工单:" + no + "中" + projectName + "项目的维修记录"; + // 施工完成 + case "sgwczj": + result = result + "完成了工单:" + no + "中" + projectName + "项目"; + switch (finishType) { + // 完成并移交下一班组 + case "01": + return result + "并移交工单给了" + nextName; + // 完成并移交总检 + case "02": + return result + "并移交给了总检"; + // 完成工单 + case "03": + return who + "完成了工单"; + default: + return "异常消息"; + } + default: + return "异常消息"; + } } /** * 配件客户是否可见 * + * @param id 工单ID + * @param show 是否可见 1可见, 0不可见 * @author 小李 * @date 21:52 2024/10/18 - * @param id 工单ID - * @param show 是否可见 1可见, 0不可见 **/ @Override - public void updateShow(String id, String show){ + public void updateShow(String id, String show) { DlRepairTickets dlRepairTickets = new DlRepairTickets(); dlRepairTickets.setId(id); dlRepairTickets.setPartShow(show); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java index 43311cd6..0ba57068 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java @@ -11,6 +11,9 @@ import cn.iocoder.yudao.module.project.service.RepairWaresService; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi; import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoService; import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoiService; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import cn.iocoder.yudao.module.system.api.permission.RoleApi; +import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO; import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlTicketWares; @@ -80,7 +83,12 @@ public class DlTicketWaresServiceImpl extends ServiceImpl().eq(RepairWorker::getUserId, SecurityFrameworkUtils.getLoginUserId())); @@ -170,6 +178,20 @@ public class DlTicketWaresServiceImpl extends ServiceImpl ids = permissionApi.getUserIdByRoleId(roleInfo.getId()); + // 发通知 + if (CollectionUtil.isNotEmpty(ids)){ + ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要审核")); + } } /** @@ -233,6 +255,13 @@ public class DlTicketWaresServiceImpl extends ServiceImpl ids = permissionApi.getUserIdByRoleId(roleInfo.getId()); + if (CollectionUtil.isNotEmpty(ids)){ + ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要处理")); + } } else if (ObjectUtil.isNotEmpty(respVO.getStatus()) && respVO.getStatus().equals("02") && respVO.getType().equals("02")) { // 如果通过退料,也需要更新 // 更新维修工单 @@ -276,6 +305,10 @@ public class DlTicketWaresServiceImpl extends ServiceImpl wares; List projects; + /** + * 维修工完成的类别 + * 01:完成并移交下一班组 + * 02:完成并移交总检 + * 03:完成工单 + */ + private String finishType; + + /** 如果是完成并移交下一班组,就有移交给了那一个班组 */ + private String nextName; + }