From 4920ad7b25254225eb0add076141f9c1eabfdada Mon Sep 17 00:00:00 2001 From: Vinjor Date: Wed, 13 Nov 2024 17:12:28 +0800 Subject: [PATCH 01/27] 1 --- .../iocoder/yudao/common/RecordTypeEnum.java | 3 +++ .../yudao/common/TicketsStatusEnum.java | 4 ++++ .../admin/DlRepairTicketsController.java | 13 +++++++++++ .../service/DlRepairTicketsService.java | 8 +++++++ .../impl/DlRepairTicketsServiceImpl.java | 22 +++++++++++++++++++ .../mapper/tickets/DlRepairTicketsMapper.xml | 9 ++++---- 6 files changed, 55 insertions(+), 4 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java index 9955cce4..e232af30 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java @@ -76,6 +76,9 @@ public enum RecordTypeEnum { /** 删除工单 */ SCGG("scgg", "删除工单"), + /** 删除工单 */ + JC("jc", "交车"), + /** 内返派工 */ NFPG("nfpg", "内返派工"); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsStatusEnum.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsStatusEnum.java index 26b53e87..ce29b4bb 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsStatusEnum.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsStatusEnum.java @@ -27,6 +27,10 @@ public enum TicketsStatusEnum { * 待通知客户取车 */ WAITING_NOTICE("07","待通知客户取车"), + /** + * 已交车 + */ + OVER("08","已交车"), /** * 挂单/记账 */ diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index b9999f3b..2332f8d5 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -297,6 +297,19 @@ public class DlRepairTicketsController { return CommonResult.ok(); } + /** + * 服务顾问交车 + * @author vinjor-M + * @date 16:51 2024/11/13 + * @param respVO + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @PostMapping("/overOrder") + @Operation(summary = "服务顾问交车") + public CommonResult overOrder(@RequestBody DlRepairTicketsRespVO respVO) { + dlRepairTicketsService.overOrder(respVO); + return CommonResult.ok(); + } /** * 从总检的角度差维修中、已完成的工单数量 * @author vinjor-M diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index 1992f8c5..f7d0f273 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -235,4 +235,12 @@ public interface DlRepairTicketsService extends IService { * @param id 工单ID **/ void removeTicketById(String id); + + /** + * 服务顾问交车 + * @author vinjor-M + * @date 16:51 2024/11/13 + * @param respVO + **/ + void overOrder(DlRepairTicketsRespVO respVO); } 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 9f9a64a4..45b02a46 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 @@ -1637,6 +1637,28 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl() + .set(DlRepairTickets::getTicketsWorkStatus, TicketsWorkStatusEnum.END.getCode()) + .set(DlRepairTickets::getTicketsStatus, TicketsStatusEnum.OVER.getCode()) + //交车时才能把工单置为完成 + .set(DlRepairTickets::getIsFinish,"1") + .eq(DlRepairTickets::getId, respVO.getId()) + ); + + // 记录日志 + repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.JC.getCode(), respVO.getRemark(), respVO.getImage()); + } } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml index f162f649..ab9ede97 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml @@ -216,7 +216,7 @@ from dl_repair_tickets drt left join dl_repair_titem drti on drt.id = drti.ticket_id AND drti.deleted = '0' - where (drt.deleted = '0') AND drt.tickets_status IN ('04','05','01','07') + where (drt.deleted = '0') AND drt.tickets_status IN ('04','05','01','07','06','02') and ( drt.ticket_no like concat('%', #{map.ticketNo}, '%') @@ -255,10 +255,11 @@ ) + -- 服务顾问和仓管查待办都是查未结束的工单 -- + AND drt.is_finish = '0' - -- 查服务顾问 待处理的 工单未完成并且服务顾问是自己的 工单已完成且当前处理人是自己的-- - AND ( drt.is_finish = '0' AND drt.adviser_id = #{map.adviserId} ) - OR (drt.is_finish = '1' AND drt.now_repair_id = #{map.adviserId}) + -- 查服务顾问 当前处理人或服务顾问是自己的-- + AND ( drt.adviser_id = #{map.adviserId} OR drt.now_repair_id = #{map.adviserId}) -- 查总检待处理的 -- From 1b6a1dab5baddb611ea520759e992ff3ab316cf9 Mon Sep 17 00:00:00 2001 From: PQZ Date: Wed, 13 Nov 2024 17:47:57 +0800 Subject: [PATCH 02/27] 2 --- .../admin/RepairWorkerController.java | 6 ++ .../base/service/RepairWorkerService.java | 8 +++ .../service/impl/RepairWorkerServiceImpl.java | 15 +++++ .../impl/DlRepairTicketsServiceImpl.java | 60 ++++++++++++++++++- 4 files changed, 86 insertions(+), 3 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java index b6516a80..6c61363e 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java @@ -123,6 +123,12 @@ public class RepairWorkerController { return success(workerService.listByLeads()); } + @GetMapping("/listLeadsAll") + @Operation(summary = "通过班组长的id查该班组的员工(不去掉班组长)") + public CommonResult listLeadsAll() { + return success(workerService.listLeadsAll()); + } + /** * 查当前登录用户是否维修班组长 * @author vinjor-M diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java index 72ac833c..f1edb86f 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java @@ -106,6 +106,14 @@ public interface RepairWorkerService extends IService { **/ List listByLeads(); + /** + * 通过班组长的id查该班组的员工(不去掉班组长) + * @author PQZ + * @date 15:20 2024/11/13 + * @return java.util.List + **/ + List listLeadsAll(); + /** * 查当前登录用户是否维修班组长 * @author vinjor-M diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java index 52f29168..5110d502 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java @@ -272,6 +272,21 @@ public class RepairWorkerServiceImpl extends ServiceImpl !Objects.equals(item.getUserId(), worker.getUserId())).collect(Collectors.toList()); } + /** + * 通过班组长的id查该班组的员工()不去掉班组长 + * + * @return java.util.List + * @author PQZ + * @date 15:20 2024/11/13 + **/ + @Override + public List listLeadsAll() { + // 取班组长的记录 + RepairWorker worker = baseMapper.selectOne(new LambdaQueryWrapper().eq(RepairWorker::getUserId, SecurityFrameworkUtils.getLoginUserId())); + // 根据班组长的工种查所有该工程的工人 + return baseMapper.selectList(new LambdaQueryWrapper().eq(RepairWorker::getWorkType, worker.getWorkType())); + } + /** * 查当前登录用户是否维修班组长 * 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 9f9a64a4..004c33c6 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 @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.*; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.base.entity.RepairWorker; @@ -876,7 +877,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = repairWorkerService.list(); + //查询当前工单下所有项目 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DlRepairTitem::getTicketId,ticketId); + List itemList = titemService.list(lambdaQueryWrapper); + //过滤出不包括当前指派人的值 + List filterList = itemList.stream().filter(item -> !item.getRepairNames().contains(nowRepairName)).collect(Collectors.toList()); + List saveList = new ArrayList<>(); + //当前处理人工作组 + Map workerMap = list.stream().collect(Collectors.toMap(RepairWorker::getUserId,worker -> worker)); + String workType = workerMap.get(nowRepairId).getWorkType(); + filterList.forEach(item -> { + //深拷贝 + DlRepairTitem saveItem = BeanUtils.toBean(item,DlRepairTitem.class); + if (StringUtils.isNotEmpty(saveItem.getRepairIds())){ + //取出用户id + List repairIds = Arrays.stream(saveItem.getRepairIds().split(",")).map(Long::parseLong).collect(Collectors.toList()); + repairIds.forEach(idItem -> { + // 获取对应的 worker + RepairWorker worker = workerMap.get(idItem); + // 检查 worker 是否存在并比较 workType + if (worker != null && workType.equals(worker.getWorkType())) { + saveList.add(saveItem); + return; + } + }); + } + }); + saveList.forEach(item -> { + String newRepairId = item.getRepairIds()+","+nowRepairId; + String newRepairName = item.getRepairNames() + "," + nowRepairName; + item.setRepairIds(newRepairId); + item.setRepairNames(newRepairName); + }); + titemService.updateBatchById(saveList); + + } + /** * 更新工单状态(针对开始施工、施工中记录、施工完成) * From eaf06a2d77a8d1dc343cbb9162580a51a046f1db Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Wed, 13 Nov 2024 19:58:46 +0800 Subject: [PATCH 03/27] =?UTF-8?q?=E9=85=8D=E4=BB=B6=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E5=8A=A0=E4=B8=8A=E5=9B=BE=E7=89=87=E5=92=8C=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=85=B6=E4=BB=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/DlTwItemController.java | 20 +++++++-- .../module/tickets/entity/DlTicketWares.java | 3 ++ .../tickets/service/DlTwItemService.java | 10 +++++ .../impl/DlRepairTicketsServiceImpl.java | 3 +- .../impl/DlTicketWaresServiceImpl.java | 30 +++++++------ .../service/impl/DlTwItemServiceImpl.java | 35 ++++++++++++++++ .../yudao/module/tickets/vo/AddTwiVO.java | 42 +++++++++++++++++++ .../mapper/tickets/DlTicketWaresMapper.xml | 4 +- 8 files changed, 129 insertions(+), 18 deletions(-) create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java index 2880b57c..8deeac17 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java @@ -3,12 +3,10 @@ package cn.iocoder.yudao.module.tickets.controller.admin; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; +import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import io.swagger.v3.oas.annotations.Operation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -41,5 +39,19 @@ public class DlTwItemController { public CommonResult listTwItem(DlTwItemReqVO reqVO){ return success(dlTwItemService.listTwItem(reqVO)); } + + /** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:47 2024/11/13 + * @param addTwiVO 对象 + **/ + @PostMapping("/addTwi") + @Operation(summary = "给配件申请表子表添加数据") + public CommonResult addTwi(@RequestBody AddTwiVO addTwiVO){ + dlTwItemService.addTwi(addTwiVO); + return CommonResult.ok(); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java index 9c6f7e8c..bf15ed68 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java @@ -65,4 +65,7 @@ public class DlTicketWares extends TenantBaseDO { /** 备注 */ private String remark; + + /** 多个图片地址,英文逗号分隔(拍照上传配件申请单时用) */ + private String images; } \ No newline at end of file diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java index c4a51ff9..f98bad59 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.tickets.service; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; +import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.extension.service.IService; @@ -23,4 +24,13 @@ public interface DlTwItemService extends IService { * @param reqVO 请求对象 **/ List listTwItem(DlTwItemReqVO reqVO); + + /** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:47 2024/11/13 + * @param addTwiVO 对象 + **/ + void addTwi(AddTwiVO addTwiVO); } 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 1a4c1845..ed94e46c 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 @@ -1427,7 +1427,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = respVO.getItems().stream() - .map(item -> { - DlTwItem twItem = BeanUtil.toBean(item, DlTwItem.class); - twItem.setTwId(ticketWares.getId()); - twItem.setWaresStatus(""); - twItem.setWaresAlreadyCount(0); - return twItem; - }).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(list)) { - throw exception0(500, "配件列表为空"); + if (CollectionUtil.isNotEmpty(respVO.getItems())){ + List list = respVO.getItems().stream() + .map(item -> { + DlTwItem twItem = BeanUtil.toBean(item, DlTwItem.class); + twItem.setTwId(ticketWares.getId()); + twItem.setWaresStatus(""); + twItem.setWaresAlreadyCount(0); + return twItem; + }).collect(Collectors.toList()); + if (CollectionUtil.isEmpty(list)) { + throw exception0(500, "配件列表为空"); + } + twItemService.saveOrUpdateBatch(list); } - twItemService.saveOrUpdateBatch(list); // 通知对应的维修服务顾问和总检 // 维修服务顾问即创建工单时选的是谁 @@ -323,7 +329,7 @@ public class DlTicketWaresServiceImpl extends ServiceImpl i.getWaresId().equals(item.getId())).findFirst().orElse(null); titem.setItemCount(twItem != null ? twItem.getWaresCount() : 0); titem.setItemUnit(item.getUnit()); - titem.setItemPrice(item.getPrice() != null ? item.getPrice() : BigDecimal.ZERO); + titem.setItemPrice((item.getPrice() != null) ? item.getPrice() : BigDecimal.ZERO); titem.setItemDiscount(BigDecimal.ONE); titem.setItemMoney(titem.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(titem.getItemDiscount())); titem.setRepairIds(String.valueOf(ticketWares.getRepairId())); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java index d4cc0054..5e17804d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java @@ -6,9 +6,12 @@ import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.project.service.RepairWaresService; import cn.iocoder.yudao.module.system.api.dict.DictDataApi; import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; +import cn.iocoder.yudao.module.tickets.entity.DlTicketWares; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.mapper.DlTwItemMapper; +import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; +import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -22,6 +25,7 @@ import java.util.Map; import java.util.stream.Collectors; import static cn.iocoder.yudao.common.RepairCons.DICT_REPAIR_UNIT; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; /** * 针对表【dl_tw_item(工单配件申请/退回子表)】的数据库操作Service实现 @@ -40,6 +44,9 @@ public class DlTwItemServiceImpl extends ServiceImpl @Resource @Lazy private RepairWaresService waresService; + @Resource + @Lazy + private DlTicketWaresService ticketWaresService; /** * 根据主表查看全部 @@ -78,6 +85,34 @@ public class DlTwItemServiceImpl extends ServiceImpl } return null; } + + /** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:47 2024/11/13 + * @param addTwiVO 对象 + **/ + @Override + public void addTwi(AddTwiVO addTwiVO){ + // 构建子表数据 + if (CollectionUtil.isEmpty(addTwiVO.getItems())){ + throw exception0(500, "请选择配件"); + } + List twItems = addTwiVO.getItems().stream().map(item -> { + DlTwItem twItem = new DlTwItem(); + twItem.setTwId(addTwiVO.getId()); + twItem.setWaresId(item.getId()); + twItem.setWaresName(item.getName()); + twItem.setWaresCount(item.getCount()); + twItem.setWaresAlreadyCount(0); + twItem.setWaresStatus(""); + twItem.setRemark(item.getRemark()); + return twItem; + }).collect(Collectors.toList()); + // 新增 + baseMapper.insert(twItems); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java new file mode 100644 index 00000000..ec012d54 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AddTwiVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.tickets.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 给配件申请表子表添加数据 + * + * @author 小李 + * @date 17:41 2024/11/13 +**/ +@Data +public class AddTwiVO { + + private String id; + + private List items; + + /** + * 配件的信息 + * + * @author 小李 + * @date 17:45 2024/11/13 + **/ + @Data + public static class AddTwiVoItem { + + /** 配件ID */ + private String id; + + /** 配件名称 */ + private String name; + + /** 配件数量 */ + private Integer count; + + /** 备注 */ + private String remark; + + } +} \ No newline at end of file diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml index ec7b8bcc..b5c39221 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml @@ -21,6 +21,7 @@ + @@ -40,7 +41,8 @@ dtw.adviser_name, dtw.status, dtw.remark, - dtw.create_time + dtw.create_time, + dtw.images from dl_ticket_wares dtw left join dl_repair_tickets drt on dtw.ticket_id = drt.id From bc79d9df53a1648adf2a7ef0dec1d54dc8f0f18a Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Thu, 14 Nov 2024 09:26:26 +0800 Subject: [PATCH 04/27] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/tickets/service/impl/DlTicketWaresServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 8fc11d5d..27ba510d 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 @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.tickets.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.RecordTypeEnum; import cn.iocoder.yudao.common.RepairRoleEnum; import cn.iocoder.yudao.common.SoStatusEnum; From 6c396bfbbd677172a91e30dae5dcfcad8ed3913b Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Thu, 14 Nov 2024 10:44:24 +0800 Subject: [PATCH 05/27] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E9=A1=BE=E9=97=AE?= =?UTF-8?q?=E4=B8=8D=E5=81=9A=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DlRepairTicketsServiceImpl.java | 7 ++++++- .../module/tickets/vo/DlRepairTicketsReqVO.java | 3 +++ .../mapper/tickets/DlRepairTicketsMapper.xml | 16 +++++++++++++--- 3 files changed, 22 insertions(+), 4 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 0e9bec98..38c0080e 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 @@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.base.entity.RepairWorker; import cn.iocoder.yudao.module.base.service.RepairRecordsService; import cn.iocoder.yudao.module.base.service.RepairWorkerService; @@ -1246,7 +1247,11 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl userDTOS = roleApi.selectUserListByRoleCode(TenantContextHolder.getRequiredTenantId(), RepairRoleEnum.ADVISOR.getCode()); + List ids = userDTOS.stream().map(UserDTO::getId).collect(Collectors.toList()); + repairTicketsReqVO.setNowRepairIds(ids); +// repairTicketsReqVO.setNowRepairId(loginUserId); // 因为完成状态需要在交车之后,所以注掉这个 // repairTicketsReqVO.setIsFinish("1"); } else if (userRoleCode.equals(RepairRoleEnum.INSPECTION.getCode())) { diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java index 0fa15d2b..fa86bc84 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java @@ -36,4 +36,7 @@ public class DlRepairTicketsReqVO extends DlRepairTickets { /** 图片路径 */ private String image; + + /** 当前操作人包含集合,主要用在服务顾问那儿 */ + private List nowRepairIds; } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml index ab9ede97..742779d9 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml @@ -235,13 +235,23 @@ - -- 小李用的逻辑 -- - + -- 小李用的逻辑--isFinish不需要了 -- + + -- 总检查待处理还是用这个 -- AND ( drt.now_repair_id = #{map.nowRepairId}) + -- 服务顾问查待处理(服务顾问之间可以相互查) -- + + AND ( + drt.now_repair_id in + + #{id} + + ) + -- 正常查询用的逻辑 -- From c4da06e59116fc799caa5e620334045120b609a3 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Thu, 14 Nov 2024 18:30:15 +0800 Subject: [PATCH 06/27] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8D=95=E4=B8=AA?= =?UTF-8?q?=E9=85=8D=E4=BB=B6=E7=94=B3=E8=AF=B7=E8=A1=A8=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/DlTicketWaresController.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java index 4d598c98..b45aee45 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java @@ -168,5 +168,18 @@ public class DlTicketWaresController { public CommonResult getWorkerTodo(){ return success(dlTicketWaresService.getWorkerTodo()); } + + /** + * 查单个配件申请单的信息 + * + * @author 小李 + * @date 15:55 2024/11/14 + * @param id id + **/ + @GetMapping("/getById") + @Operation(summary = "查单个配件申请单的信息") + public CommonResult getById(@RequestParam("id") String id){ + return success(dlTicketWaresService.getById(id)); + } } From 0147ee5b7c0f0b219a713c92c84e2a0245445fb1 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Fri, 15 Nov 2024 14:46:31 +0800 Subject: [PATCH 07/27] =?UTF-8?q?=E4=BB=93=E7=AE=A1=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=85=8D=E4=BB=B6=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/tickets/service/impl/DlRepairTicketsServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 38c0080e..2c080f98 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 @@ -852,6 +852,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl Date: Fri, 15 Nov 2024 15:36:17 +0800 Subject: [PATCH 08/27] 1 --- .../controller/admin/CompanyController.java | 55 ++++++++++++------- .../yudao/module/company/entity/Company.java | 3 + 2 files changed, 39 insertions(+), 19 deletions(-) diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java index 27fd209a..1a483be6 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java @@ -2,38 +2,32 @@ package cn.iocoder.yudao.module.company.controller.admin; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.common.CommonErrorCodeConstants; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import cn.iocoder.yudao.module.company.entity.Company; +import cn.iocoder.yudao.module.company.service.CompanyService; +import cn.iocoder.yudao.module.company.vo.CompanyReqVO; import cn.iocoder.yudao.module.company.vo.CompanyRespVO; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import cn.iocoder.yudao.module.company.vo.CompanyReqVO; -import io.swagger.v3.oas.annotations.Parameter; -import org.apache.commons.lang3.StringUtils; -import org.springframework.context.annotation.Lazy; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; - -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import cn.iocoder.yudao.module.company.service.CompanyService; +import org.springframework.context.annotation.Lazy; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -43,6 +37,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + /** * 企业信息表(每个租户的下属企业信息);(dl_company)表控制层 * @@ -198,4 +196,23 @@ public class CompanyController { } return success(companyService.getById(dept.getCorpId())); } + + /** + * 查某租户下某个业务系统的企业信息 + * @author vinjor-M + * @date 15:08 2024/11/15 + * @param tenantId 租户ID + * @param systemCode 系统标识 + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @GetMapping("/getCompanyByTenantId") + @Operation(summary = "查某租户下某个业务系统的企业信息") + public CommonResult getCompanyByTenantId(String tenantId,String systemCode){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TenantBaseDO::getTenantId,tenantId) + .like(Company::getServiceCodes,systemCode) + .orderByDesc(BaseDO::getCreateTime); + List list = this.companyService.list(queryWrapper); + return success(list.isEmpty()?null:list.get(0)); + } } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java index 08d61e7d..acbd50cc 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java @@ -30,6 +30,9 @@ public class Company extends TenantBaseDO { /** 企业名称 */ @ExcelProperty("企业名称") private String corpName ; + /** 企业简称 */ + @ExcelProperty("企业简称") + private String simpleName ; /** 统一社会信用代码 */ @ExcelProperty("统一社会信用代码") private String orgCard ; From f61004114d2b8e7af80ce559386143f9b1b8b660 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Fri, 15 Nov 2024 16:22:26 +0800 Subject: [PATCH 09/27] =?UTF-8?q?=E4=B8=80=E4=BA=9BBUG=E7=9A=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DlRepairSoServiceImpl.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java index 6e420e7f..f4cef3dc 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java @@ -242,7 +242,8 @@ public class DlRepairSoServiceImpl extends ServiceImpl i.getGoodsId().equals(item.getWaresId())).findFirst().ifPresent(repairSoiByTwItem -> { if (so.getSoType().equals("02")){ dlTwItem.setWaresAlreadyCount(item.getWaresAlreadyCount() - repairSoiByTwItem.getGoodsCount()); - dlTwItem.setWaresStatus("02"); + // 不操作配件申请表子表的状态 +// dlTwItem.setWaresStatus("02"); }else { dlTwItem.setWaresAlreadyCount(item.getWaresAlreadyCount() + repairSoiByTwItem.getGoodsCount()); } @@ -325,13 +326,13 @@ public class DlRepairSoServiceImpl extends ServiceImpl list = twItemService.list(new LambdaQueryWrapper().eq(DlTwItem::getTwId, so.getTwId())); - // 判断是部分完成还是全部完成 - DlTicketWares dlTicketWares = new DlTicketWares(); - dlTicketWares.setId(so.getTwId()); - List flag = list.stream().filter(item -> !item.getWaresStatus().equals("01")).collect(Collectors.toList()); - dlTicketWares.setStatus(CollectionUtil.isEmpty(flag) ? "03" : "04"); + // 判断是部分完成还是全部完成----不需要判断了 +// DlTicketWares dlTicketWares = new DlTicketWares(); +// dlTicketWares.setId(so.getTwId()); +// List flag = list.stream().filter(item -> !item.getWaresStatus().equals("01")).collect(Collectors.toList()); +// dlTicketWares.setStatus(CollectionUtil.isEmpty(flag) ? "03" : "04"); // 更新主表的状态 - ticketWaresService.updateById(dlTicketWares); +// ticketWaresService.updateById(dlTicketWares); // 通知仓库 repairWorkerService.sentMessage(Long.valueOf(so.getCreator()), so.getUserName() + "已确认领料单:" + so.getSoNo()); @@ -447,8 +448,8 @@ public class DlRepairSoServiceImpl extends ServiceImpl Date: Sat, 16 Nov 2024 12:04:32 +0800 Subject: [PATCH 10/27] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A1=A5=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/custom/controller/admin/CarMainController.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java index 4026042e..4d5fa91c 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarMainController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.custom.controller.admin; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.module.custom.entity.CarMain; import cn.iocoder.yudao.module.custom.service.CarMainService; import cn.iocoder.yudao.module.custom.service.UserCarService; @@ -215,8 +216,10 @@ public class CarMainController { @PostMapping("/getByLicenseNumber") @Operation(summary = "根据车牌查单条记录") public CommonResult getByLicenseNumber(@RequestBody CarMain carMain) { - CarMain one = carMainService.getOne(new LambdaQueryWrapper().eq(CarMain::getLicenseNumber, carMain.getLicenseNumber())); - return success(one); + // 可能查到多条,只用一条就是,理论上讲是不会有多条的 +// CarMain one = carMainService.list(new LambdaQueryWrapper().eq(CarMain::getLicenseNumber, carMain.getLicenseNumber())); + List list = carMainService.list(new LambdaQueryWrapper().eq(CarMain::getLicenseNumber, carMain.getLicenseNumber()).last("limit 1")); + return success(CollectionUtil.isNotEmpty(list) ? list.get(0) : null); } /** From 5da4a45e7dbc71ca4f67378c54e9cec749ac5480 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Sat, 16 Nov 2024 15:37:58 +0800 Subject: [PATCH 11/27] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E9=A1=BE=E9=97=AE?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=AE=A2=E6=88=B7=E5=8F=96=E8=BD=A6=E5=89=8D?= =?UTF-8?q?=EF=BC=8C=E5=88=A4=E6=96=AD=E9=A1=B9=E7=9B=AE=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E3=80=81=E9=85=8D=E4=BB=B6=E4=BB=B7=E6=A0=BC=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=B7=B2=E5=A1=AB=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/DlRepairTicketsController.java | 13 +++ .../service/DlRepairTicketsService.java | 9 +++ .../impl/DlRepairTicketsServiceImpl.java | 79 ++++++++++++------- 3 files changed, 73 insertions(+), 28 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index 2332f8d5..73ca7be2 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -336,6 +336,19 @@ public class DlRepairTicketsController { return CommonResult.ok(); } + /** + * 判断是否工单子表的任何一个类目没有价格或价格为0 + * + * @param id 工单ID + * @author 小李 + * @date 15:00 2024/11/16 + **/ + @GetMapping("/hasPrice") + @Operation(summary = "判断是否工单子表的任何一个类目没有价格或价格为0") + public CommonResult hasPrice(@RequestParam("id")String id){ + return success(dlRepairTicketsService.hasPrice(id)); + } + /** * 新增工单子项 * diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index f7d0f273..9fa5ff7a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -243,4 +243,13 @@ public interface DlRepairTicketsService extends IService { * @param respVO **/ void overOrder(DlRepairTicketsRespVO respVO); + + /** + * 判断是否工单子表的任何一个类目没有价格或价格为0 + * + * @param id 工单ID + * @author 小李 + * @date 15:00 2024/11/16 + **/ + Boolean hasPrice(String id); } 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 2c080f98..da45cb17 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 @@ -222,7 +222,6 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl { item.setTicketId(ticketsRespVO.getId()); - if(null==item.getSaleId()){ + if (null == item.getSaleId()) { //默认销售人员是当前用户 item.setSaleId(loginUser.getId()); item.setSaleName(loginUser.getInfo().get("nickname")); @@ -415,7 +414,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl() .set(DlRepairTickets::getTicketsWorkStatus, TicketsWorkStatusEnum.RECEIVED.getCode()) @@ -1007,16 +1006,16 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl list = repairWorkerService.list(); //查询当前工单下所有项目 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(DlRepairTitem::getTicketId,ticketId); + lambdaQueryWrapper.eq(DlRepairTitem::getTicketId, ticketId); List itemList = titemService.list(lambdaQueryWrapper); //过滤出不包括当前指派人的值 List filterList = itemList.stream().filter(item -> !item.getRepairNames().contains(nowRepairName)).collect(Collectors.toList()); List saveList = new ArrayList<>(); //当前处理人工作组 - Map workerMap = list.stream().collect(Collectors.toMap(RepairWorker::getUserId,worker -> worker)); + Map workerMap = list.stream().collect(Collectors.toMap(RepairWorker::getUserId, worker -> worker)); String workType = workerMap.get(nowRepairId).getWorkType(); filterList.forEach(item -> { //深拷贝 - DlRepairTitem saveItem = BeanUtils.toBean(item,DlRepairTitem.class); - if (StringUtils.isNotEmpty(saveItem.getRepairIds())){ + DlRepairTitem saveItem = BeanUtils.toBean(item, DlRepairTitem.class); + if (StringUtils.isNotEmpty(saveItem.getRepairIds())) { //取出用户id List repairIds = Arrays.stream(saveItem.getRepairIds().split(",")).map(Long::parseLong).collect(Collectors.toList()); repairIds.forEach(idItem -> { @@ -1062,7 +1062,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl { - String newRepairId = item.getRepairIds()+","+nowRepairId; + String newRepairId = item.getRepairIds() + "," + nowRepairId; String newRepairName = item.getRepairNames() + "," + nowRepairName; item.setRepairIds(newRepairId); item.setRepairNames(newRepairName); @@ -1123,7 +1123,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl().eq(RepairWorker::getUserId, SecurityFrameworkUtils.getLoginUserId()).last("limit 1")); List dataList = dictDataApi.getDictDataList("repair_work_type"); @@ -1282,11 +1282,11 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl() - // 因为完成状态需要在交车之后,所以注掉这个 + // 因为完成状态需要在交车之后,所以注掉这个 // .set(DlRepairTickets::getIsFinish, "1") - .setSql("now_repair_id = adviser_id") - .setSql("now_repair_name = adviser_name") - .eq(DlRepairTickets::getId, respVO.getId()) + .setSql("now_repair_id = adviser_id") + .setSql("now_repair_name = adviser_name") + .eq(DlRepairTickets::getId, respVO.getId()) ); boolean flag = syncTicketWaresToTicket(respVO.getId()); @@ -1468,6 +1468,29 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl titems = titemService.list(new LambdaQueryWrapper().in(DlRepairTitem::getTicketId, id)); + for (DlRepairTitem item : titems) { + // 如果有为空的,直接报错 + if (ObjectUtil.isEmpty(item.getItemPrice())) { + throw exception0(500, "工单中有项目或配件没有设置价格,请服务顾问填写项目价格,仓库填写配件价格"); + } + // 如果有为0的,那就提示,让操作人选择 + if (item.getItemPrice().equals(new BigDecimal("0.00"))){ + return false; + } + } + return true; + } + /** * 重新计算工单的一些数值,子表也要重新计算 * @@ -1714,7 +1737,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl Date: Sat, 16 Nov 2024 15:56:23 +0800 Subject: [PATCH 12/27] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/tickets/service/impl/TicketsServiceImpl.java | 3 ++- .../tickets/service/impl/DlRepairTicketsServiceImpl.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java index c7655f73..59e73fd7 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java @@ -29,7 +29,8 @@ public class TicketsServiceImpl extends ServiceImpl impl baseMapper.update(new LambdaUpdateWrapper() .in(Tickets::getId, ticketIds) .set(Tickets::getTicketsStatus, "02") - .set(Tickets::getIsFinish, "1") + // 不在这儿结束 +// .set(Tickets::getIsFinish, "1") ); } } 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 da45cb17..f0f30719 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 @@ -447,7 +447,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl Date: Mon, 18 Nov 2024 14:28:44 +0800 Subject: [PATCH 13/27] 1 --- .../tickets/controller/admin/DlRepairTicketsController.java | 6 +++--- .../module/tickets/service/DlRepairTicketsService.java | 2 +- .../tickets/service/impl/DlRepairTicketsServiceImpl.java | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index 2332f8d5..9df94d05 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -317,9 +317,9 @@ public class DlRepairTicketsController { * @return cn.iocoder.yudao.framework.common.pojo.CommonResult **/ @GetMapping("/getBossNum") - @Operation(summary = "从总检的角度差维修中、已完成的工单数量") - public CommonResult getBossNum() { - return success(dlRepairTicketsService.getBossNum()); + @Operation(summary = "从总检的角度查维修中、已完成的工单数量") + public CommonResult getBossNum(String selectType) { + return success(dlRepairTicketsService.getBossNum(selectType)); } /** diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index f7d0f273..64af5c95 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -172,7 +172,7 @@ public interface DlRepairTicketsService extends IService { * @date 11:30 2024/10/24 * @return java.util.Map **/ - Map getBossNum(); + Map getBossNum(String selectType); /** * 服务顾问通知客户取车 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 2c080f98..3efcceb2 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 @@ -1404,10 +1404,11 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl getBossNum() { + public Map getBossNum(String selectType) { Map rtnMap = new HashMap<>(); int workingNum = 0; int doneNum = 0; + List repairTickets = this.list(); if (!repairTickets.isEmpty()) { Map> ifFinishMap = repairTickets.stream().collect(Collectors.groupingBy(DlRepairTickets::getIsFinish)); From d3af9838737bc2aceb438aecbf6e175acc05f211 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Mon, 18 Nov 2024 16:15:44 +0800 Subject: [PATCH 14/27] =?UTF-8?q?=E9=85=8D=E4=BB=B6=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E5=AD=90=E9=A1=B9=E5=8F=AF=E4=BB=A5=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E3=80=81=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E7=BB=99=E4=B8=8D?= =?UTF-8?q?=E7=BB=99=E4=BF=9D=E9=99=A9=E5=85=AC=E5=8F=B8=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/DlTicketWaresController.java | 14 +++++++++++ .../module/tickets/entity/DlTicketWares.java | 12 +++++++++ .../tickets/service/DlTicketWaresService.java | 9 +++++++ .../impl/DlTicketWaresServiceImpl.java | 25 +++++++++++++++++++ .../mapper/tickets/DlTicketWaresMapper.xml | 10 +++++++- 5 files changed, 69 insertions(+), 1 deletion(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java index b45aee45..26726bac 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java @@ -181,5 +181,19 @@ public class DlTicketWaresController { public CommonResult getById(@RequestParam("id") String id){ return success(dlTicketWaresService.getById(id)); } + + /** + * 修改是否传给保险公司 + * + * @author 小李 + * @date 15:48 2024/11/18 + * @param respVO 对象 + **/ + @PostMapping("/updateSafe") + @Operation(summary = "修改是否传给保险公司") + public CommonResult updateSafe(@RequestBody DlTicketWaresRespVO respVO){ + dlTicketWaresService.updateSafe(respVO); + return CommonResult.ok(); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java index bf15ed68..7a76be51 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/entity/DlTicketWares.java @@ -68,4 +68,16 @@ public class DlTicketWares extends TenantBaseDO { /** 多个图片地址,英文逗号分隔(拍照上传配件申请单时用) */ private String images; + + /** 是否传给保险公司(字典yes_no,1:是,0:否,默认0) */ + private String toSafe; + + /** 保险公司名称 */ + private String safeName; + + /** 保险公司联系人 */ + private String safeContact; + + /** 保险公司联系电话 */ + private String safeMobile; } \ No newline at end of file diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java index dd15fa14..c2f0cf73 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java @@ -104,4 +104,13 @@ public interface DlTicketWaresService extends IService { * @date 15:38 2024/10/22 **/ Map getWorkerTodo(); + + /** + * 修改是否传给保险公司 + * + * @author 小李 + * @date 15:48 2024/11/18 + * @param respVO 对象 + **/ + void updateSafe(DlTicketWaresRespVO respVO); } 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 27ba510d..21130d39 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 @@ -37,6 +37,7 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.context.annotation.Lazy; @@ -627,6 +628,30 @@ public class DlTicketWaresServiceImpl extends ServiceImpl lambdaUpdate = Wrappers.lambdaUpdate(DlTicketWares.class); + lambdaUpdate.eq(DlTicketWares::getId, respVO.getId()); + lambdaUpdate.set(DlTicketWares::getToSafe, respVO.getToSafe()); + // 根据状态更新 + if (toSafe.equals("1")){ + lambdaUpdate.set(DlTicketWares::getSafeName, respVO.getSafeName()); + lambdaUpdate.set(DlTicketWares::getSafeContact, respVO.getSafeContact()); + lambdaUpdate.set(DlTicketWares::getSafeMobile, respVO.getSafeMobile()); + } + // 更新 + baseMapper.update(lambdaUpdate); + } } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml index b5c39221..25bdb30d 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlTicketWaresMapper.xml @@ -22,6 +22,10 @@ + + + + @@ -42,7 +46,11 @@ dtw.status, dtw.remark, dtw.create_time, - dtw.images + dtw.images, + dtw.to_safe, + dtw.safe_name, + dtw.safe_contact, + dtw.safe_mobile from dl_ticket_wares dtw left join dl_repair_tickets drt on dtw.ticket_id = drt.id From 7dc148e5b2de27a5cf28d121daa643ff4247b610 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Mon, 18 Nov 2024 17:51:23 +0800 Subject: [PATCH 15/27] 1 --- .../iocoder/yudao/common/RecordTypeEnum.java | 4 ++ .../admin/DlRepairTicketsController.java | 42 ++++++++++++-- .../tickets/mapper/DlRepairTicketsMapper.java | 10 ++++ .../service/DlRepairTicketsService.java | 2 +- .../impl/DlRepairTicketsServiceImpl.java | 58 +++++++++++++++---- .../mapper/tickets/DlRepairTicketsMapper.xml | 19 ++++++ 6 files changed, 118 insertions(+), 17 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java index e232af30..9a5c946c 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RecordTypeEnum.java @@ -35,6 +35,10 @@ public enum RecordTypeEnum { * 总检 */ ZJ("zj","总检"), + /** + * 结算 + */ + JS("js","结算"), /** * 结束工单 */ diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index 34781e67..6150b425 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.tickets.controller.admin; +import cn.hutool.core.date.DateUtil; import cn.iocoder.yudao.common.RepairCons; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets; @@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -311,15 +315,45 @@ public class DlRepairTicketsController { return CommonResult.ok(); } /** - * 从总检的角度差维修中、已完成的工单数量 + * 从总检的角度查进场数、维修中、已完成、已交车、在厂的工单数量 * @author vinjor-M * @date 11:29 2024/10/24 * @return cn.iocoder.yudao.framework.common.pojo.CommonResult **/ @GetMapping("/getBossNum") - @Operation(summary = "从总检的角度查维修中、已完成的工单数量") - public CommonResult getBossNum(String selectType) { - return success(dlRepairTicketsService.getBossNum(selectType)); + @Operation(summary = "从总检的角度查进场数、维修中、已完成、已交车、在厂的工单数量") + public CommonResult getBossNum(String selectType,String startDate,String endDate) { + return success(dlRepairTicketsService.getBossNum(selectType, startDate, endDate)); + } + + /** + * 获取日期范围 + * @author vinjor-M + * @date 11:29 2024/10/24 + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @GetMapping("/getDateRange") + @Operation(summary = "获取日期范围") + public CommonResult getDateRange(String selectType) { + Map rtnMap = new HashMap<>(); + // 获取当前日期 + Date currentDate = new Date(); + String nowDay = DateUtil.formatDate(new Date()); + rtnMap.put("endDate",nowDay); + if("threeMonth".equals(selectType)){ + //近3个月 + // 使用Hutool的DateUtil推移3个月 + Date threeMonthsAgo = DateUtil.offsetMonth(currentDate, -3); + String startDay = DateUtil.formatDate(threeMonthsAgo); + rtnMap.put("startDate",startDay); + }else { + //近6个月 + // 使用Hutool的DateUtil推移6个月 + Date threeMonthsAgo = DateUtil.offsetMonth(currentDate, -6); + String startDay = DateUtil.formatDate(threeMonthsAgo); + rtnMap.put("startDate",startDay); + } + return success(rtnMap); } /** diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java index 4a53a9f2..0ca90e77 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlRepairTicketsMapper.java @@ -42,6 +42,16 @@ public interface DlRepairTicketsMapper extends BaseMapper { * @param repairTicketsReqVO 查询对象 **/ IPage getPageTypeAll(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page page); + + /** + * 根据条件查询指定工单数量 + * @author vinjor-M + * @date 15:46 2024/11/18 + * @param dayDate 某一天日期 + * @param recordCode 操作记录code + * @return java.lang.Long + **/ + Long selectCountByParams(@Param("nowDate")String dayDate, @Param("recordCode")String recordCode, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index cfe2fc56..9f922bbe 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -172,7 +172,7 @@ public interface DlRepairTicketsService extends IService { * @date 11:30 2024/10/24 * @return java.util.Map **/ - Map getBossNum(String selectType); + Map getBossNum(String selectType,String startDate,String endDate); /** * 服务顾问通知客户取车 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 d36d62e7..58d68c60 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 @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.tickets.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.*; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; @@ -102,6 +103,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl getBossNum(String selectType) { - Map rtnMap = new HashMap<>(); - int workingNum = 0; - int doneNum = 0; - + public Map getBossNum(String selectType,String startDate,String endDate) { + Map rtnMap = new HashMap<>(); + //维修中---当前这一时刻 + long workingNum = 0; + //在厂数--当前这一时刻 + long inCompanyNum = 0; + //进场数 + long newOrderNum=0; + //已完成 + long overNum=0; + //已交车 + long giveCusNum=0; List repairTickets = this.list(); if (!repairTickets.isEmpty()) { - Map> ifFinishMap = repairTickets.stream().collect(Collectors.groupingBy(DlRepairTickets::getIsFinish)); - if (ifFinishMap.containsKey("0")) { - workingNum = ifFinishMap.get("0").size(); - } - if (ifFinishMap.containsKey("1")) { - doneNum = ifFinishMap.get("1").size(); + workingNum = repairTickets.stream().filter(item -> TicketsStatusEnum.WORKING.getCode().equals(item.getTicketsStatus())).count(); + inCompanyNum = repairTickets.stream().filter(item -> TicketsStatusEnum.NO_PAY.getCode().equals(item.getTicketsStatus())).count(); + LocalDateTime currentTime = LocalDateTime.now(); + if("today".equals(selectType)){ + String nowDayStr = DateUtil.formatDate(new Date()); + //查当日进厂数、已完成、已交车 + newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().toLocalDate().equals(currentTime.toLocalDate())).count(); + //查当日已完成的(总检完成的) + overNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.ZJ.getCode(),null,null); + //查当日已交车的(已结算的) + giveCusNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.JS.getCode(),null,null); + }else if("all".equals(selectType)){ + //查累计进厂数、已完成、已交车 + newOrderNum = repairTickets.size(); + //查累计已完成的(总检完成的) + overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(),null,null); + //查累计已交车的(已结算的) + giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(),null,null); + }else { + //查某个时间范围内进厂数、已完成、已交车 + LocalDateTime startTime = LocalDateTime.parse(startDate+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = LocalDateTime.parse(endDate+" 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().isAfter(startTime) && item.getCreateTime().isBefore(endTime)).count(); + //查某区间范围内已完成的(总检完成的) + overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(), startDate+" 00:00:00", endDate+" 23:59:59"); + //查某区间范围内已交车的(已结算的) + giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(), startDate+" 00:00:00", endDate+" 23:59:59"); } } rtnMap.put("workingNum", workingNum); - rtnMap.put("doneNum", doneNum); + rtnMap.put("inCompanyNum", inCompanyNum); + rtnMap.put("newOrderNum", newOrderNum); + rtnMap.put("overNum", overNum); + rtnMap.put("giveCusNum", giveCusNum); return rtnMap; } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml index 742779d9..db8e23ab 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml @@ -349,4 +349,23 @@ GROUP BY drt.id order by drt.update_time desc + From 17cd3db1ea3b778876c3ee1873534b5877507ad1 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Mon, 18 Nov 2024 18:04:46 +0800 Subject: [PATCH 16/27] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tickets/entity/BaseRepairRecords.java | 53 ++++++++++++++++++ .../mapper/BaseRepairRecordsMapper.java | 14 +++++ .../service/BaseRepairRecordsService.java | 26 +++++++++ .../impl/BaseRepairRecordsServiceImpl.java | 55 +++++++++++++++++++ .../service/impl/TicketsServiceImpl.java | 8 +++ .../impl/DlRepairTicketsServiceImpl.java | 2 + 6 files changed, 158 insertions(+) create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/BaseRepairRecords.java create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/BaseRepairRecordsMapper.java create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/BaseRepairRecordsService.java create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/BaseRepairRecordsServiceImpl.java diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/BaseRepairRecords.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/BaseRepairRecords.java new file mode 100644 index 00000000..01118bdc --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/BaseRepairRecords.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.tickets.entity; + +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 维修记录 DO + * + * @author lzt + */ +@TableName("dl_repair_records") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BaseRepairRecords extends TenantBaseDO { + + /** + * 主键标识 + */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + /** + * 工单id + */ + private String ticketId; + /** + * 工单子表id + */ + private String repairItemId; + /** + * 记录类型(repair_records_type) + */ + private String type; + /** + * 记录描述 + */ + private String remark; + /** + * 处理人 + */ + private String dealUserName; + /** + * 处理人员工表id + */ + private Long dealUserId; + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/BaseRepairRecordsMapper.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/BaseRepairRecordsMapper.java new file mode 100644 index 00000000..90da3a52 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/BaseRepairRecordsMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.tickets.mapper; + +import cn.iocoder.yudao.module.tickets.entity.BaseRepairRecords; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 维修记录 Mapper + * + * @author lzt + */ +@Mapper +public interface BaseRepairRecordsMapper extends BaseMapper { +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/BaseRepairRecordsService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/BaseRepairRecordsService.java new file mode 100644 index 00000000..1cc3a465 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/BaseRepairRecordsService.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.tickets.service; + +import cn.iocoder.yudao.module.tickets.entity.BaseRepairRecords; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 维修记录 Service 接口 + * + * @author lzt + */ +public interface BaseRepairRecordsService extends IService { + + /** + * 保存维修记录 + * + * @param ticketId 工单id +// * @param repairItemId 工单子表id + * @param type 工作类型(数据字典:repair_records_type;后端对应 RecordTypeEnum 枚举) + * @param remark 备注 + * @param images 图片(相对路径按照“,”分隔) + * @author PQZ + * @date 14:51 2024/10/11 + **/ + void saveRepairRecord(String ticketId, String repairItemId, String type, String remark, String images); + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/BaseRepairRecordsServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/BaseRepairRecordsServiceImpl.java new file mode 100644 index 00000000..dc793841 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/BaseRepairRecordsServiceImpl.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.tickets.service.impl; + +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import cn.iocoder.yudao.module.tickets.entity.BaseRepairRecords; +import cn.iocoder.yudao.module.tickets.mapper.BaseRepairRecordsMapper; +import cn.iocoder.yudao.module.tickets.service.BaseRepairRecordsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 维修记录 Service 实现类 + * + * @author lzt + */ +@Service +@Validated +public class BaseRepairRecordsServiceImpl extends ServiceImpl implements BaseRepairRecordsService { + + @Resource + private AdminUserApi userApi; + + /** + * 保存维修记录 + * + * @param ticketId 工单id + * @param repairItemId 工单子表id + * @param type 工作类型(数据字典:repair_records_type;后端对应 RecordTypeEnum 枚举) + * @param remark 备注 + * @param images 图片(相对路径按照“,”分隔) + * @author PQZ + * @date 14:51 2024/10/11 + **/ + @Override + public void saveRepairRecord(String ticketId, String repairItemId, String type, String remark, String images) { + //获取当前登录用户 + Long userId = SecurityFrameworkUtils.getLoginUserId(); + AdminUserRespDTO loginUser = userApi.getUser(userId); + //初始化维修记录 + BaseRepairRecords repairRecords = new BaseRepairRecords(); + repairRecords.setTicketId(ticketId); + repairRecords.setRepairItemId(repairItemId); + repairRecords.setType(type); + repairRecords.setRemark(remark); + repairRecords.setDealUserId(loginUser.getId()); + repairRecords.setDealUserName(loginUser.getNickname()); + //保存维修记录 + save(repairRecords); + } + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java index 59e73fd7..b6db061e 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java @@ -2,9 +2,11 @@ package cn.iocoder.yudao.module.tickets.service.impl; import cn.iocoder.yudao.module.tickets.entity.Tickets; import cn.iocoder.yudao.module.tickets.mapper.TicketsMapper; +import cn.iocoder.yudao.module.tickets.service.BaseRepairRecordsService; import cn.iocoder.yudao.module.tickets.service.TicketsService; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -15,6 +17,8 @@ import java.util.List; **/ @Service public class TicketsServiceImpl extends ServiceImpl implements TicketsService { + @Autowired + private BaseRepairRecordsService baseRepairRecordsService; /** * 更新工单状态为已结账 @@ -32,5 +36,9 @@ public class TicketsServiceImpl extends ServiceImpl impl // 不在这儿结束 // .set(Tickets::getIsFinish, "1") ); + // 记录日志 + if(!ticketIds.isEmpty()){ + baseRepairRecordsService.saveRepairRecord(ticketIds.get(0), null, "js", "线上支付结算", null); + } } } 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 58d68c60..9e7dfd25 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 @@ -459,6 +459,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl Date: Mon, 18 Nov 2024 19:33:18 +0800 Subject: [PATCH 17/27] =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=85=8D=E4=BB=B6?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=87=87=E8=B4=AD=E5=8D=95=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E3=80=81=E5=B1=95=E7=A4=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=8A=98=E5=8F=A0=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/BaseTypeController.java | 2 - .../controller/admin/CarBrandController.java | 3 +- .../admin/DlRepairTicketsController.java | 13 +++++ .../admin/DlTicketWaresController.java | 15 ++++++ .../service/DlRepairTicketsService.java | 9 ++++ .../tickets/service/DlTicketWaresService.java | 10 ++++ .../impl/DlRepairTicketsServiceImpl.java | 23 +++++++++ .../impl/DlTicketWaresServiceImpl.java | 50 +++++++++++++++++++ 8 files changed, 122 insertions(+), 3 deletions(-) diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/conf/controller/admin/BaseTypeController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/conf/controller/admin/BaseTypeController.java index cfb48480..c5b01923 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/conf/controller/admin/BaseTypeController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/conf/controller/admin/BaseTypeController.java @@ -101,6 +101,4 @@ public class BaseTypeController { public CommonResult> getBaseTypeList(@Valid BaseTypeListReqVO listReqVO) { return success(baseTypeService.getBaseTypeList(listReqVO)); } - - } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarBrandController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarBrandController.java index 8f438392..0869d603 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarBrandController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CarBrandController.java @@ -77,7 +77,8 @@ public class CarBrandController { @GetMapping("/get") @Operation(summary = "获得车辆品牌") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('base:car-brand:query')") + // 有些地方要用,但是又没有权限,故把查看单个的权限公开---小李 +// @PreAuthorize("@ss.hasPermission('base:car-brand:query')") public CommonResult getCarBrand(@RequestParam("id") String id) { CarBrand carBrand = carBrandService.getCarBrand(id); return success(BeanUtils.toBean(carBrand, CarBrandRespVO.class)); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index 34781e67..0c3e2dd2 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -390,5 +390,18 @@ public class DlRepairTicketsController { dlRepairTicketsService.removeTicketById(id); return CommonResult.ok(); } + + /** + * 根据工单ID查客户和车辆信息 + * + * @author 小李 + * @date 19:07 2024/11/18 + * @param id id + **/ + @GetMapping("/getCusAndCarById") + @Operation(summary = "根据工单ID查客户和车辆信息") + public CommonResult getCusAndCarById(@RequestParam("id") String id) { + return success(dlRepairTicketsService.getCusAndCarById(id)); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java index 26726bac..1df612e4 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTicketWaresController.java @@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** @@ -195,5 +197,18 @@ public class DlTicketWaresController { dlTicketWaresService.updateSafe(respVO); return CommonResult.ok(); } + + /** + * 根据选择的配件生成采购单需要的数据 + * + * @author 小李 + * @date 18:14 2024/11/18 + * @param ids ids + **/ + @GetMapping("/getByIds") + @Operation(summary = "根据选择的配件生成采购单需要的数据") + public CommonResult getByIds(@RequestParam("ids") List ids){ + return success(dlTicketWaresService.getByIds(ids)); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index cfe2fc56..9bf7bf17 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -252,4 +252,13 @@ public interface DlRepairTicketsService extends IService { * @date 15:00 2024/11/16 **/ Boolean hasPrice(String id); + + /** + * 根据工单ID查客户和车辆信息 + * + * @author 小李 + * @date 19:07 2024/11/18 + * @param id id + **/ + CustomerAndCarVO getCusAndCarById(String id); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java index c2f0cf73..b5a47bfe 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTicketWaresService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.tickets.service; import cn.iocoder.yudao.module.tickets.entity.DlTicketWares; import cn.iocoder.yudao.module.tickets.vo.DlTicketWaresReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTicketWaresRespVO; +import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -113,4 +114,13 @@ public interface DlTicketWaresService extends IService { * @param respVO 对象 **/ void updateSafe(DlTicketWaresRespVO respVO); + + /** + * 根据选择的配件生成采购单需要的数据 + * + * @author 小李 + * @date 18:14 2024/11/18 + * @param ids ids + **/ + Map> getByIds(List ids); } 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 d36d62e7..1044eaf4 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 @@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.conf.entity.BaseType; import cn.iocoder.yudao.module.conf.service.BaseTypeService; import cn.iocoder.yudao.module.custom.entity.*; import cn.iocoder.yudao.module.custom.service.*; +import cn.iocoder.yudao.module.custom.vo.CarMainReqVO; import cn.iocoder.yudao.module.custom.vo.CarMainRespVO; import cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO; import cn.iocoder.yudao.module.order.entity.RepairOrderInfo; @@ -1746,6 +1747,28 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl> getByIds(List ids){ + // 查配件申请表子表 + List twItems = twItemService.listByIds(ids); + // 查配件 + List waresIds = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toList()); + List wares = repairWaresService.listByIds(waresIds); + // 关联配件申请表子项和配件 + List newTwItems = twItems.stream().map(item -> { + DlTwItemRespVO twItem = BeanUtil.toBean(item, DlTwItemRespVO.class); + RepairWares ware = wares.stream().filter(i -> i.getId().equals(item.getWaresId())).findFirst().orElse(null); + if (ware != null) { + twItem.setWares(ware); + } + return twItem; + }).collect(Collectors.toList()); + // 分组 + Map> map = newTwItems.stream().collect(Collectors.groupingBy(item -> { + String key = item.getWares().getType(); + return key != null && !key.isEmpty() ? key : "default"; + })); + // 查分类 + List baseTypes = baseTypeService.listByIds(map.keySet()); + Map TypeMap = baseTypes.stream().collect(Collectors.toMap(BaseType::getId, BaseType::getName)); + // 映射 + Map> result = new HashMap<>(); + for (Map.Entry> entry : map.entrySet()) { + String key = entry.getKey(); + String newKey = TypeMap.get(key); + if (newKey == null || newKey.isEmpty()) { + newKey = "未分类"; + } + result.put(newKey, entry.getValue()); + } + return result; + } } From 9f9320f7a0959f9652fae75ae8b380c9019007d8 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Mon, 18 Nov 2024 20:02:59 +0800 Subject: [PATCH 18/27] 1 --- .../tickets/vo/DlRepairTicketsReqVO.java | 3 ++ .../mapper/tickets/DlRepairTicketsMapper.xml | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java index fa86bc84..9e2d6bd0 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsReqVO.java @@ -39,4 +39,7 @@ public class DlRepairTicketsReqVO extends DlRepairTickets { /** 当前操作人包含集合,主要用在服务顾问那儿 */ private List nowRepairIds; + + /** 客户来源 */ + private String cusFrom; } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml index db8e23ab..7cc96744 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml @@ -214,6 +214,10 @@ , IF(FIND_IN_SET(drt.now_repair_id, #{map.userIdsStr}) > 0,true,false) AS can_operate from dl_repair_tickets drt + + -- 按客户来源查,需要关联客户表 -- + left join base_customer_main bcm ON drt.user_id = bcm.id + left join dl_repair_titem drti on drt.id = drti.ticket_id AND drti.deleted = '0' where (drt.deleted = '0') AND drt.tickets_status IN ('04','05','01','07','06','02') @@ -233,6 +237,25 @@ and (drt.create_time between #{map.searchTimeArray[0]} and #{map.searchTimeArray[1]}) + + AND (drt.repair_type=#{map.repairType}) + + + + + -- 公务车,查政企客户 -- + AND (bcm.type_code='03') + + + -- 企业用车,查代办客户 -- + AND (bcm.type_code='02') + + + -- 家庭自用车01、客户转介绍02、员工转介绍03、救援转维修05 -- + AND (bcm.inviter_type=#{map.cusFrom}) + + + -- 小李用的逻辑--isFinish不需要了 -- @@ -315,6 +338,10 @@ + From 0ed23adb887e3e4be6ac44e81c39dc3d3fdfb300 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Tue, 19 Nov 2024 15:24:52 +0800 Subject: [PATCH 20/27] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E6=AF=8F=E4=B8=AA=E5=95=86=E5=93=81=E5=8F=AF=E4=BB=A5=E5=BD=95?= =?UTF-8?q?=E5=85=A5=20=E8=BF=9B=E8=B4=A7=E4=BB=B7=E3=80=81=E6=94=B6?= =?UTF-8?q?=E4=BB=B7=E3=80=81=E5=88=86=E7=B1=BB=E3=80=81=E8=AE=A1=E9=87=8F?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=EF=BC=8C=E9=9D=9E=E5=BF=85=E5=A1=AB=EF=BC=8C?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=97=B6=E6=8C=89=E5=88=86=E7=B1=BB=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=88=86=E7=BB=84=E5=B1=95=E7=A4=BA=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=8C=89=E5=88=86=E7=B1=BB=E8=BF=9B=E8=A1=8C=E5=B1=95?= =?UTF-8?q?=E5=BC=80=E6=94=B6=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DlRepairSoServiceImpl.java | 49 ++++++++++--------- .../stockOperate/vo/DlRepairSoRespVO.java | 3 ++ 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java index f4cef3dc..39eefd48 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java @@ -163,29 +163,34 @@ public class DlRepairSoServiceImpl extends ServiceImpl waresList = repairSoRespVO.getWaresList(); + waresService.updateBatchById(waresList); + + // 操作配件库存表---应该是弃用了 // 获取所有需要操作的数据----生成采购单的时候,不直接操作库存,放到下面的inWares方法去操作 - if (repairSoRespVO.getSoType() != null && !repairSoRespVO.getSoType().equals("01")){ - List goodsList = repairSoRespVO.getGoodsList(); - List ids = goodsList.stream().map(DlRepairSoi::getGoodsId).collect(Collectors.toList()); - List repairWares = waresService.listByIds(ids); - // 更新库存和进价 - List newWares = repairWares.stream().map(item -> { - // 取数据 - DlRepairSoi repairSoi = goodsList.stream().filter(i -> i.getGoodsId().equals(item.getId())).collect(Collectors.toList()).get(0); - // 设置新值 - // 如果是采购入库,数量+,如果是领料出库,数量- - // 01, 03 是采购 02 是领料 - BigDecimal count = new BigDecimal(repairSoi.getGoodsCount()); - RepairWares wares = new RepairWares(); - wares.setId(item.getId()); - wares.setStock("02".equals(repairSoRespVO.getSoType()) ? item.getStock().subtract(count) : item.getStock().add(count)); - // 更新进价 - wares.setPurPrice(repairSoi.getGoodsPrice()); - return wares; - }).collect(Collectors.toList()); - waresService.updateBatchById(newWares); - } +// if (repairSoRespVO.getSoType() != null && !repairSoRespVO.getSoType().equals("01")){ +// List goodsList = repairSoRespVO.getGoodsList(); +// List ids = goodsList.stream().map(DlRepairSoi::getGoodsId).collect(Collectors.toList()); +// List repairWares = waresService.listByIds(ids); +// // 更新库存和进价 +// List newWares = repairWares.stream().map(item -> { +// // 取数据 +// DlRepairSoi repairSoi = goodsList.stream().filter(i -> i.getGoodsId().equals(item.getId())).collect(Collectors.toList()).get(0); +// // 设置新值 +// // 如果是采购入库,数量+,如果是领料出库,数量- +// // 01, 03 是采购 02 是领料 +// BigDecimal count = new BigDecimal(repairSoi.getGoodsCount()); +// RepairWares wares = new RepairWares(); +// wares.setId(item.getId()); +// wares.setStock("02".equals(repairSoRespVO.getSoType()) ? item.getStock().subtract(count) : item.getStock().add(count)); +// // 更新进价 +// wares.setPurPrice(repairSoi.getGoodsPrice()); +// return wares; +// }).collect(Collectors.toList()); +// waresService.updateBatchById(newWares); +// } } /** diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java index da624f9d..ef28aff8 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java @@ -18,4 +18,7 @@ public class DlRepairSoRespVO extends DlRepairSo { // 商品List private List goodsList; + + // 配件List + private List waresList; } From 63e8bb415644b9af3774a1c2cbcaeb283eb7289e Mon Sep 17 00:00:00 2001 From: Vinjor Date: Tue, 19 Nov 2024 15:30:13 +0800 Subject: [PATCH 21/27] 1 --- .../tickets/controller/admin/DlRepairTicketsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index e9cd6a20..c9eb7997 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -80,7 +80,7 @@ public class DlRepairTicketsController { **/ @GetMapping("/get") @Operation(summary = "查看一个工单的详细信息") - public CommonResult getTicketsById(@RequestParam("id") String id,@RequestParam("ifApp")Boolean ifApp) { + public CommonResult getTicketsById(@RequestParam("id") String id,@RequestParam(required = false,value = "ifApp")Boolean ifApp) { return success(dlRepairTicketsService.getTicketsById(id,ifApp)); } From b41ec206ac50c4935791c3dad94ccd91cc3e0799 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Tue, 19 Nov 2024 15:38:47 +0800 Subject: [PATCH 22/27] =?UTF-8?q?ifApp=E5=8A=A0=E4=B8=8A=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tickets/controller/admin/DlRepairTicketsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index c9eb7997..934e40a1 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -80,7 +80,7 @@ public class DlRepairTicketsController { **/ @GetMapping("/get") @Operation(summary = "查看一个工单的详细信息") - public CommonResult getTicketsById(@RequestParam("id") String id,@RequestParam(required = false,value = "ifApp")Boolean ifApp) { + public CommonResult getTicketsById(@RequestParam("id") String id,@RequestParam(required = false, value = "ifApp", defaultValue = "false")Boolean ifApp) { return success(dlRepairTicketsService.getTicketsById(id,ifApp)); } From 1af4c1ab5364b78ce5d235958ee85deb5ec7f28f Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Tue, 19 Nov 2024 19:23:22 +0800 Subject: [PATCH 23/27] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=8A=8A=E9=87=87=E8=B4=AD=E5=8D=95=E7=9A=84=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=98=BE=E7=A4=BA=E5=87=BA=E6=9D=A5=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9=EF=BC=8C=E9=9D=9E?= =?UTF-8?q?=E5=BF=85=E5=A1=AB=EF=BC=8C=E9=9C=80=E8=A6=81=E6=9C=89=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E5=8A=9F=E8=83=BD=E3=80=82=E6=98=BE=E7=A4=BA=E6=97=B6?= =?UTF-8?q?=E6=8C=89=E5=88=86=E7=B1=BB=E8=BF=9B=E8=A1=8C=E5=88=86=E7=BB=84?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=EF=BC=8C=E5=8F=AF=E4=BB=A5=E6=8C=89=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E8=BF=9B=E8=A1=8C=E5=B1=95=E5=BC=80=E6=94=B6=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/DlRepairSoController.java | 6 +- .../admin/DlRepairSoiController.java | 13 +++ .../stockOperate/entity/DlRepairSoi.java | 4 - .../stockOperate/mapper/DlRepairSoMapper.java | 2 + .../mapper/DlRepairSoiMapper.java | 12 +++ .../service/DlRepairSoService.java | 7 +- .../service/DlRepairSoiService.java | 11 +++ .../service/impl/DlRepairSoServiceImpl.java | 22 +++++- .../service/impl/DlRepairSoiServiceImpl.java | 46 +++++++++++ .../stockOperate/vo/DlRepairSoRespVO.java | 3 + .../stockOperate/vo/DlRepairSoiRespVO.java | 4 + .../mapper/stockOperate/DlRepairSoiMapper.xml | 79 +++++++++++++++++++ 12 files changed, 198 insertions(+), 11 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java index 26cf5395..1ba3deef 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java @@ -120,15 +120,15 @@ public class DlRepairSoController { /** * 采购入库 * - * @param repairSoReqVO DlRepairSoReqVO实体 + * @param repairSoRespVO DlRepairSoReqVO实体 * @return cn.iocoder.yudao.framework.common.pojo.CommonResult * @author PQZ * @date 10:43 2024/10/25 **/ @PostMapping("/inWare") @Operation(summary = "采购入库") - public CommonResult inWare(@RequestBody DlRepairSoReqVO repairSoReqVO) { - dlRepairSoService.inWare(repairSoReqVO); + public CommonResult inWare(@RequestBody DlRepairSoRespVO repairSoRespVO) { + dlRepairSoService.inWare(repairSoRespVO); return CommonResult.ok(); } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoiController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoiController.java index 81b72808..5377cc1a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoiController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoiController.java @@ -75,5 +75,18 @@ public class DlRepairSoiController{ public CommonResult getRepairSoiBySoId(@RequestParam(value = "soId") String soId){ return success(dlRepairSoiService.getRepairSoiBySoId(soId)); } + + /** + * 根据主表的ID得到子表的所有数据,按类型区分的map,支持条件查询 + * + * @author 小李 + * @date 15:51 2024/11/19 + * @param id id + **/ + @GetMapping("/getMapBySoIdAndQuery") + @Operation(summary = "根据主表的ID得到子表的所有数据,按类型区分的map,支持条件查询") + public CommonResult getMapBySoIdAndQuery(@RequestParam("id") String id, @RequestParam("query") String query) { + return success(dlRepairSoiService.getMapBySoIdAndQuery(id, query)); + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSoi.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSoi.java index f4978b01..6c7f55b6 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSoi.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSoi.java @@ -11,10 +11,6 @@ import lombok.EqualsAndHashCode; import java.math.BigDecimal; -/** - * 采购单领料单子表 - * @TableName dl_repair_soi - */ /** * 采购单/领料单子表 * @author 小李 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java index 9e39cf10..ed9ded4a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java @@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 针对表【dl_repair_so(采购单领料单)】的数据库操作Mapper * @author 小李 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoiMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoiMapper.java index 4551b233..2868f656 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoiMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoiMapper.java @@ -2,12 +2,15 @@ package cn.iocoder.yudao.module.stockOperate.mapper; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiReqVO; +import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 针对表【dl_repair_soi(采购单领料单子表)】的数据库操作Mapper * @author 小李 @@ -24,6 +27,15 @@ public interface DlRepairSoiMapper extends BaseMapper { * @param repairSoiReqVO 查询对象 **/ IPage getRepairSoiPage(@Param("map") DlRepairSoiReqVO repairSoiReqVO, Page page); + + /** + * 根据主表的ID得到子表的所有数据,按类型区分的map,支持条件查询 + * + * @author 小李 + * @date 15:51 2024/11/19 + * @param id id + **/ + List getMapBySoIdAndQuery(@Param("id") String id, @Param("query") String query); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java index 09e8f8c1..91abf4fd 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java @@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** * 针对表【dl_repair_so(采购单领料单)】的数据库操作Service * @@ -72,9 +75,9 @@ public interface DlRepairSoService extends IService { /** * 采购入库 * - * @param reqVO (接参实体中需传入:采购单id,子表中商品id,子表中入库数量inCount) + * @param repairSoRespVO (接参实体中需传入:采购单id,子表中商品id,子表中入库数量inCount) * @author PQZ * @date 14:32 2024/10/24 **/ - void inWare(DlRepairSoReqVO reqVO); + void inWare(DlRepairSoRespVO repairSoRespVO); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoiService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoiService.java index 2169096a..6111b3b9 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoiService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoiService.java @@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.stockOperate.service; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiQueryRespVO; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiReqVO; +import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** * 针对表【dl_repair_soi(采购单领料单子表)】的数据库操作Service @@ -53,4 +55,13 @@ public interface DlRepairSoiService extends IService { * @date 14:39 2024/10/24 **/ List listByIds(List ids); + + /** + * 根据主表的ID得到子表的所有数据,按类型区分的map,支持条件查询 + * + * @author 小李 + * @date 15:51 2024/11/19 + * @param id id + **/ + Map> getMapBySoIdAndQuery(String id, String query); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java index 39eefd48..2e8124cb 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java @@ -402,7 +402,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl sois = repairSoiService.list(new LambdaQueryWrapper().eq(DlRepairSoi::getSoId, reqVO.getId())); // 过滤出入库数量大于等于采购数量的数据 (入库数量可以大于采购的数量) - List allInSois = sois.stream().filter(item -> item.getInCount() >= item.getGoodsCount()).collect(Collectors.toList()); + List allInSois = sois.stream() + .filter(item -> (ObjectUtil.isNotEmpty(item.getInCount()) && item.getInCount() >= item.getGoodsCount())) + .collect(Collectors.toList()); // 如果allInSois的size就是sois的size,那就是全部都入库了 if (CollectionUtil.isNotEmpty(allInSois) && allInSois.size() == sois.size()) { // 更新采购单的状态为已入库 @@ -489,6 +491,22 @@ public class DlRepairSoServiceImpl extends ServiceImpl reqVOWaresList = reqVO.getWaresList(); + List ids = reqVOWaresList.stream().map(item -> item.getId()).collect(Collectors.toList()); + List oldWares = waresService.listByIds(ids); + // 这里是因为传过来的库存不是最新的,但其他字段可能变了,所以用最新的库存替换传回来的,在用传回来的+最新库存构成最新数据 + List newWares = reqVOWaresList.stream().map(item -> { + RepairWares wares = BeanUtil.toBean(item, RepairWares.class); + RepairWares findWares = oldWares.stream().filter(i -> i.getId().equals(wares.getId())).findFirst().orElse(null); + if (findWares != null) { + wares.setStock(findWares.getStock()); + } + return wares; + }).collect(Collectors.toList()); + waresService.updateBatchById(newWares); } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoiServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoiServiceImpl.java index c6ee1e14..ed0ad7d2 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoiServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoiServiceImpl.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.stockOperate.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.module.conf.entity.BaseType; +import cn.iocoder.yudao.module.conf.service.BaseTypeService; import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.project.service.RepairWaresService; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSo; @@ -11,6 +13,7 @@ import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoService; import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoiService; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiQueryRespVO; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiReqVO; +import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -19,7 +22,9 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -40,6 +45,9 @@ public class DlRepairSoiServiceImpl extends ServiceImpl listByIds(List ids) { return baseMapper.selectBatchIds(ids); } + + /** + * 根据主表的ID得到子表的所有数据,按类型区分的map,支持条件查询 + * + * @author 小李 + * @date 15:51 2024/11/19 + * @param id id + **/ + @Override + public Map> getMapBySoIdAndQuery(String id, String query){ + // 查出该单据的子项和其对应的配件信息 + List respVOList = baseMapper.getMapBySoIdAndQuery(id, query); + if (CollectionUtil.isEmpty(respVOList)){ + return null; + } + // 按配件信息的type进行分组 + Map> map = respVOList.stream().collect(Collectors.groupingBy(item -> { + String key = item.getWares().getType(); + if (key == null || key.isEmpty()) { + key = "default"; + } + return key; + })); + // 查分类的信息 + List baseTypes = typeService.listByIds(map.keySet()); + Map typeMap = baseTypes.stream().collect(Collectors.toMap(BaseType::getId, BaseType::getName)); + // 映射 + Map> result = new HashMap<>(); + for (Map.Entry> entry : map.entrySet()) { + String key = entry.getKey(); + String newKey = typeMap.get(key); + if (newKey == null || newKey.isEmpty()) { + newKey = "未分类"; + } + result.put(newKey, entry.getValue()); + } + return result; + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java index ef28aff8..1d6b25ce 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoRespVO.java @@ -21,4 +21,7 @@ public class DlRepairSoRespVO extends DlRepairSo { // 配件List private List waresList; + + /**关联商品*/ + List soiList; } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java index 59bfc3de..6c420e9d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.stockOperate.vo; +import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi; import lombok.Data; @@ -10,4 +11,7 @@ import lombok.Data; **/ @Data public class DlRepairSoiRespVO extends DlRepairSoi { + + /** 对应的配件信息 */ + private RepairWares wares; } diff --git a/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoiMapper.xml b/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoiMapper.xml index a6f22bad..b67e1c73 100644 --- a/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoiMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoiMapper.xml @@ -69,4 +69,83 @@ ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 545cf7eea9d57c27759bcfc26b8770fc7398df84 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Wed, 20 Nov 2024 15:53:05 +0800 Subject: [PATCH 24/27] =?UTF-8?q?=E9=85=8D=E4=BB=B6=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/DlTwItemController.java | 14 ++++- .../module/tickets/mapper/DlTwItemMapper.java | 10 ++++ .../tickets/service/DlTwItemService.java | 9 +++ .../service/impl/DlTwItemServiceImpl.java | 56 ++++++++++++++++++- .../module/tickets/vo/AppWaresGroupVO.java | 5 +- .../module/tickets/vo/DlTwItemRespVO.java | 14 +++++ .../mapper/tickets/DlTwItemMapper.xml | 43 ++++++++++++++ 7 files changed, 148 insertions(+), 3 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java index 8deeac17..83ff9a56 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlTwItemController.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.tickets.controller.admin; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; @@ -40,6 +39,19 @@ public class DlTwItemController { return success(dlTwItemService.listTwItem(reqVO)); } + /** + * APP查询配件申请单列表-按配件分类进行分组 + * @author vinjor-M + * @date 14:01 2024/11/20 + * @param reqVO TODO + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @GetMapping("/listApp") + @Operation(summary = "APP查询配件申请单列表-按配件分类进行分组") + public CommonResult listApp(DlTwItemReqVO reqVO){ + return success(dlTwItemService.listApp(reqVO)); + } + /** * 给配件申请表子表添加数据 * diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlTwItemMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlTwItemMapper.java index bd54eb0e..a821dbd4 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlTwItemMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/mapper/DlTwItemMapper.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.tickets.mapper; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; +import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -25,6 +26,15 @@ public interface DlTwItemMapper extends BaseMapper { * @param reqVO 请求对象 **/ List listTwItem(@Param("map") DlTwItemReqVO reqVO); + + /** + * APP查询配件申请单列表-按配件分类进行分组 + * @author vinjor-M + * @date 14:04 2024/11/20 + * @param reqVO + * @return java.util.List + **/ + List listTwItemApp(@Param("map") DlTwItemReqVO reqVO); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java index f98bad59..532bb31a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlTwItemService.java @@ -33,4 +33,13 @@ public interface DlTwItemService extends IService { * @param addTwiVO 对象 **/ void addTwi(AddTwiVO addTwiVO); + + /** + * APP查询配件申请单列表-按配件分类进行分组 + * @author vinjor-M + * @date 14:03 2024/11/20 + * @param reqVO + * @return java.lang.Object + **/ + Object listApp(DlTwItemReqVO reqVO); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java index 5e17804d..ca30ae54 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java @@ -6,19 +6,22 @@ import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.project.service.RepairWaresService; import cn.iocoder.yudao.module.system.api.dict.DictDataApi; import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; -import cn.iocoder.yudao.module.tickets.entity.DlTicketWares; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import cn.iocoder.yudao.module.tickets.mapper.DlTwItemMapper; import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; +import cn.iocoder.yudao.module.tickets.vo.AppWaresGroupVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,6 +40,8 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU public class DlTwItemServiceImpl extends ServiceImpl implements DlTwItemService { + @Resource + private DlTwItemMapper dlTwItemMapper; @Resource private RepairWaresService repairWaresService; @Resource @@ -113,6 +118,55 @@ public class DlTwItemServiceImpl extends ServiceImpl // 新增 baseMapper.insert(twItems); } + + /** + * APP查询配件申请单列表-按配件分类进行分组 + * + * @param reqVO + * @return java.lang.Object + * @author vinjor-M + * @date 14:03 2024/11/20 + **/ + @Override + public Object listApp(DlTwItemReqVO reqVO) { + // 查记录 + List dlTwItemRespVOList = dlTwItemMapper.listTwItemApp(reqVO); + List waresGroupList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(dlTwItemRespVOList)) { + //先过滤出itenTypeId为null或空,或者itemTypeName为null或空的,为单独一个组 + List nullList = dlTwItemRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(nullList)) { + AppWaresGroupVO waresGroupVO = new AppWaresGroupVO(); + waresGroupVO.setTwItemList(nullList.stream().peek(item->{ + if(StringUtils.isEmpty(item.getWaresStatus())){ + item.setSelected(false); + }else{ + item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } + }).collect(Collectors.toList())); + waresGroupVO.setGroupName("未知分组"); + waresGroupVO.setNums(nullList.size()); + waresGroupList.add(waresGroupVO); + } + //过滤出有分类的进行分组 + Map> groupListMap = dlTwItemRespVOList.stream().filter(item->StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlTwItemRespVO::getTypeId)); + for (String key:groupListMap.keySet()){ + AppWaresGroupVO waresGroupVO = new AppWaresGroupVO(); + waresGroupVO.setTwItemList(groupListMap.get(key).stream().peek(item->{ + if(StringUtils.isEmpty(item.getWaresStatus())){ + item.setSelected(false); + }else{ + item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } + }).collect(Collectors.toList())); + waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName()); + waresGroupVO.setGroupId(key); + waresGroupVO.setNums(groupListMap.get(key).size()); + waresGroupList.add(waresGroupVO); + } + } + return waresGroupList; + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java index 6774b060..c6d0be4d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java @@ -16,10 +16,13 @@ public class AppWaresGroupVO { private String groupId; /** 分组名称(分类名称) */ private String groupName; - /** 数量 */ + /** 数量--兼容待审核的配件数量 */ private Integer nums; /** 总价 */ private BigDecimal totalAmount; /** 配件明细 */ private List wares; + + /** 配件申请单配件明细 */ + private List twItemList; } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlTwItemRespVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlTwItemRespVO.java index 64a623cb..6edf4803 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlTwItemRespVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlTwItemRespVO.java @@ -4,6 +4,8 @@ import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.tickets.entity.DlTwItem; import lombok.Data; +import java.math.BigDecimal; + /** * 工单配件申请/退回子表响应VO * @@ -15,6 +17,18 @@ public class DlTwItemRespVO extends DlTwItem { /** 配件详情 */ private RepairWares wares; + /** 配件分类id */ + private String typeId; /** 配件分类名称 */ private String typeName; + /** 配件计量单位名称 */ + private String unitText; + /** 是否选中 */ + private Boolean selected; + /** 售价 */ + private BigDecimal salePrice; + /** 库存 */ + private Integer stock; + /** 审核时间 */ + private String approvalTime; } diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml index 9200d38b..2bbf3b12 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml @@ -47,4 +47,47 @@ and dti.wares_status = #{map.waresStatus} + From 977fb20920ec7498169f5bb88e6f48ac876e0928 Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Wed, 20 Nov 2024 21:06:16 +0800 Subject: [PATCH 25/27] =?UTF-8?q?=E6=B3=A8=E6=8E=89=E5=BF=85=E5=A1=AB?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DlRepairSoServiceImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java index 2e8124cb..b9e6b85c 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java @@ -116,14 +116,14 @@ public class DlRepairSoServiceImpl extends ServiceImpl { - if (item.getGoodsPrice() == null){ - throw exception0(500, "有配件未设置进价"); - } - }); - } + // 加个判断,可能出现没有设置价格的情况----需求说了非必填,注掉 +// if (repairSoRespVO.getGoodsList() != null){ +// repairSoRespVO.getGoodsList().forEach(item -> { +// if (item.getGoodsPrice() == null){ +// throw exception0(500, "有配件未设置进价"); +// } +// }); +// } //保存供应商 if (StringUtils.isEmpty(repairSoRespVO.getSupplierId())){ //采购单中录入供应商或无供应商情况 From 9d15441ad6bcbd90f61624702f6acd285646fd9b Mon Sep 17 00:00:00 2001 From: xiaofajia <1665375861@qq.com> Date: Thu, 21 Nov 2024 11:11:28 +0800 Subject: [PATCH 26/27] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=85=8D=E4=BB=B6=E5=88=B0=E9=85=8D=E4=BB=B6=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E4=B8=AD=E5=87=BA=E7=8E=B0=E9=87=8D=E5=A4=8D=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DlTwItemServiceImpl.java | 69 +++++++++++++++---- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java index ca30ae54..2fcf23b8 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java @@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.tickets.vo.AddTwiVO; import cn.iocoder.yudao.module.tickets.vo.AppWaresGroupVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO; import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.context.annotation.Lazy; @@ -104,19 +105,61 @@ public class DlTwItemServiceImpl extends ServiceImpl if (CollectionUtil.isEmpty(addTwiVO.getItems())){ throw exception0(500, "请选择配件"); } - List twItems = addTwiVO.getItems().stream().map(item -> { - DlTwItem twItem = new DlTwItem(); - twItem.setTwId(addTwiVO.getId()); - twItem.setWaresId(item.getId()); - twItem.setWaresName(item.getName()); - twItem.setWaresCount(item.getCount()); - twItem.setWaresAlreadyCount(0); - twItem.setWaresStatus(""); - twItem.setRemark(item.getRemark()); - return twItem; - }).collect(Collectors.toList()); - // 新增 - baseMapper.insert(twItems); + // 查出该配件申请单已有的所有配件,这里只取没有审核过(通过、驳回的不要,同一个配件如果已经审核过了又添加,还是算新的) + List oldData = baseMapper.selectList(new LambdaQueryWrapper().and(i -> { + i.in(DlTwItem::getTwId, addTwiVO.getId()) + .eq(DlTwItem::getWaresStatus, ""); + })); + if (CollectionUtil.isNotEmpty(oldData)){ + // 取配件ID + List ids = oldData.stream().map(DlTwItem::getWaresId).collect(Collectors.toList()); + // 过滤添加的 + List add = addTwiVO.getItems().stream().filter(item -> !ids.contains(item.getId())).collect(Collectors.toList()); + // 过滤存在的 + List update = addTwiVO.getItems().stream().filter(item -> ids.contains(item.getId())).collect(Collectors.toList()); + // 添加 + if (CollectionUtil.isNotEmpty(add)){ + List twItems = add.stream().map(item -> { + DlTwItem twItem = new DlTwItem(); + twItem.setTwId(addTwiVO.getId()); + twItem.setWaresId(item.getId()); + twItem.setWaresName(item.getName()); + twItem.setWaresCount(item.getCount()); + twItem.setWaresAlreadyCount(0); + twItem.setWaresStatus(""); + twItem.setRemark(item.getRemark()); + return twItem; + }).collect(Collectors.toList()); + // 新增 + baseMapper.insert(twItems); + } + // 更新 + if (CollectionUtil.isNotEmpty(update)){ + List twItems = update.stream().map(item -> { + DlTwItem twItem = oldData.stream().filter(i -> i.getWaresId().equals(item.getId())).findFirst().orElse(null); + // 只更新数量,其他不变 + if (twItem != null) { + twItem.setWaresCount(twItem.getWaresCount() + item.getCount()); + } + return twItem; + }).collect(Collectors.toList()); + baseMapper.updateById(twItems); + } + }else { + List twItems = addTwiVO.getItems().stream().map(item -> { + DlTwItem twItem = new DlTwItem(); + twItem.setTwId(addTwiVO.getId()); + twItem.setWaresId(item.getId()); + twItem.setWaresName(item.getName()); + twItem.setWaresCount(item.getCount()); + twItem.setWaresAlreadyCount(0); + twItem.setWaresStatus(""); + twItem.setRemark(item.getRemark()); + return twItem; + }).collect(Collectors.toList()); + // 新增 + baseMapper.insert(twItems); + } } /** From 8138a6f536b3f7a7156099f1dd82411598201c8f Mon Sep 17 00:00:00 2001 From: Vinjor Date: Thu, 21 Nov 2024 11:52:47 +0800 Subject: [PATCH 27/27] 1 --- .../admin/DlRepairSoController.java | 13 ++++++ .../stockOperate/mapper/DlRepairSoMapper.java | 10 +++++ .../service/DlRepairSoService.java | 11 +++-- .../service/impl/DlRepairSoServiceImpl.java | 41 ++++++++++++++++++- .../stockOperate/vo/DlRepairSoiRespVO.java | 14 +++++++ .../service/impl/DlTwItemServiceImpl.java | 28 +++++++++++++ .../module/tickets/vo/AppWaresGroupVO.java | 13 +++++- .../mapper/stockOperate/DlRepairSoMapper.xml | 29 +++++++++++++ .../mapper/tickets/DlTwItemMapper.xml | 5 +-- 9 files changed, 154 insertions(+), 10 deletions(-) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java index 1ba3deef..0185b5be 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/controller/admin/DlRepairSoController.java @@ -88,6 +88,19 @@ public class DlRepairSoController { return success(dlRepairSoService.getRepairSoById(id)); } + /** + * 领料单、退料单APP查看 + * @author vinjor-M + * @date 11:10 2024/11/21 + * @param id 单据id + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @GetMapping("/getApp") + @Operation(summary = "采购单/领料单 查看") + public CommonResult getApp(@RequestParam("id") String id) { + return success(dlRepairSoService.getApp(id)); + } + /** * 员工确认领料 * diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java index ed9ded4a..05bde9ad 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/mapper/DlRepairSoMapper.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.stockOperate.mapper; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSo; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO; +import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -30,6 +31,15 @@ public interface DlRepairSoMapper extends BaseMapper { * @return java.lang.Integer **/ Integer selectCountNum(@Param("type") String type,@Param("userId") Long userId,@Param("status") String status); + + /** + * 查单据配件明细 + * @author vinjor-M + * @date 11:13 2024/11/21 + * @param id 单据id + * @return java.util.List + **/ + List selectByIdGroup(@Param("id")String id); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java index 91abf4fd..1d4f2f04 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/DlRepairSoService.java @@ -7,9 +7,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import java.util.List; -import java.util.Map; - /** * 针对表【dl_repair_so(采购单领料单)】的数据库操作Service * @@ -80,4 +77,12 @@ public interface DlRepairSoService extends IService { * @date 14:32 2024/10/24 **/ void inWare(DlRepairSoRespVO repairSoRespVO); + /** + * 领料单、退料单APP查看 + * @author vinjor-M + * @date 11:10 2024/11/21 + * @param id 单据id + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + Object getApp(String id); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java index b9e6b85c..2d3c7f4d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java @@ -20,6 +20,7 @@ import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoService; import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoiService; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO; import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoRespVO; +import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO; import cn.iocoder.yudao.module.supplier.service.BaseSupplierService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; @@ -31,6 +32,7 @@ import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService; import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService; import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService; import cn.iocoder.yudao.module.tickets.service.DlTwItemService; +import cn.iocoder.yudao.module.tickets.vo.AppWaresGroupVO; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -48,7 +50,6 @@ import java.util.function.Function; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; /** * 针对表【dl_repair_so(采购单领料单)】的数据库操作Service实现 @@ -60,6 +61,8 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU public class DlRepairSoServiceImpl extends ServiceImpl implements DlRepairSoService { + @Resource + private DlRepairSoMapper dlRepairSoMapper; @Resource private DlRepairSoiService repairSoiService; @@ -508,6 +511,42 @@ public class DlRepairSoServiceImpl extends ServiceImpl + * @author vinjor-M + * @date 11:10 2024/11/21 + **/ + @Override + public Object getApp(String id) { + List dlRepairSoiRespVOList = dlRepairSoMapper.selectByIdGroup(id); + List waresGroupList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(dlRepairSoiRespVOList)) { + //先过滤出itenTypeId为null或空,或者itemTypeName为null或空的,为单独一个组 + List nullList = dlRepairSoiRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(nullList)) { + AppWaresGroupVO waresGroupVO = new AppWaresGroupVO(); + waresGroupVO.setSoiRespVOList(nullList); + waresGroupVO.setGroupName("未知分组"); + waresGroupVO.setNums(nullList.size()); + waresGroupList.add(waresGroupVO); + } + //过滤出有分类的进行分组 + Map> groupListMap = dlRepairSoiRespVOList.stream().filter(item->StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlRepairSoiRespVO::getTypeId)); + for (String key:groupListMap.keySet()){ + AppWaresGroupVO waresGroupVO = new AppWaresGroupVO(); + waresGroupVO.setSoiRespVOList(groupListMap.get(key)); + waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName()); + waresGroupVO.setGroupId(key); + waresGroupVO.setNums(groupListMap.get(key).size()); + waresGroupList.add(waresGroupVO); + } + } + return waresGroupList; + } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java index 6c420e9d..fba22ccc 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/vo/DlRepairSoiRespVO.java @@ -4,6 +4,8 @@ import cn.iocoder.yudao.module.project.entity.RepairWares; import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi; import lombok.Data; +import java.math.BigDecimal; + /** * 采购单/领料单子表 响应VO * @author 小李 @@ -14,4 +16,16 @@ public class DlRepairSoiRespVO extends DlRepairSoi { /** 对应的配件信息 */ private RepairWares wares; + /** 配件分类id */ + private String typeId; + /** 配件分类名称 */ + private String typeName; + /** 配件名称 */ + private String goodsName; + /** 配件计量单位名称 */ + private String unitText; + /** 售价 */ + private BigDecimal salePrice; + /** 库存 */ + private Integer stock; } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java index ca30ae54..ce56b33a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTwItemServiceImpl.java @@ -137,31 +137,59 @@ public class DlTwItemServiceImpl extends ServiceImpl List nullList = dlTwItemRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(nullList)) { AppWaresGroupVO waresGroupVO = new AppWaresGroupVO(); + //审核通过数量、不通过数量、待审核数量 + final int[] numArray= {0,0,0}; waresGroupVO.setTwItemList(nullList.stream().peek(item->{ if(StringUtils.isEmpty(item.getWaresStatus())){ + //待审核 + numArray[2]++; item.setSelected(false); }else{ + if("1".equals(item.getWaresStatus())){ + //通过 + numArray[0]++; + }else{ + //不通过 + numArray[1]++; + } item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } }).collect(Collectors.toList())); waresGroupVO.setGroupName("未知分组"); waresGroupVO.setNums(nullList.size()); + waresGroupVO.setAllowNum(numArray[0]); + waresGroupVO.setNoNum(numArray[1]); + waresGroupVO.setWaitingNum(numArray[2]); waresGroupList.add(waresGroupVO); } //过滤出有分类的进行分组 Map> groupListMap = dlTwItemRespVOList.stream().filter(item->StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlTwItemRespVO::getTypeId)); for (String key:groupListMap.keySet()){ AppWaresGroupVO waresGroupVO = new AppWaresGroupVO(); + //审核通过数量、不通过数量、待审核数量 + final int[] numArray= {0,0,0}; waresGroupVO.setTwItemList(groupListMap.get(key).stream().peek(item->{ if(StringUtils.isEmpty(item.getWaresStatus())){ + //待审核 + numArray[2]++; item.setSelected(false); }else{ + if("1".equals(item.getWaresStatus())){ + //通过 + numArray[0]++; + }else{ + //不通过 + numArray[1]++; + } item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } }).collect(Collectors.toList())); waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName()); waresGroupVO.setGroupId(key); waresGroupVO.setNums(groupListMap.get(key).size()); + waresGroupVO.setAllowNum(numArray[0]); + waresGroupVO.setNoNum(numArray[1]); + waresGroupVO.setWaitingNum(numArray[2]); waresGroupList.add(waresGroupVO); } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java index c6d0be4d..9f3b04ce 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/AppWaresGroupVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.tickets.vo; +import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO; import lombok.Data; import java.math.BigDecimal; @@ -16,13 +17,21 @@ public class AppWaresGroupVO { private String groupId; /** 分组名称(分类名称) */ private String groupName; - /** 数量--兼容待审核的配件数量 */ + /** 配件总数量 */ private Integer nums; /** 总价 */ private BigDecimal totalAmount; /** 配件明细 */ private List wares; - /** 配件申请单配件明细 */ private List twItemList; + /** 领料、退料单配件明细 */ + private List soiRespVOList; + + /** 审核通过数量-- */ + private Integer allowNum; + /** 待审核数量-- */ + private Integer waitingNum; + /** 审核不通过数量-- */ + private Integer noNum; } diff --git a/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoMapper.xml b/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoMapper.xml index 3f1476ad..e3efa60c 100644 --- a/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoMapper.xml @@ -101,4 +101,33 @@ AND so_status = #{status} AND deleted = 0 + diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml index 2bbf3b12..1bd01b6f 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlTwItemMapper.xml @@ -69,10 +69,7 @@ dl_tw_item dti LEFT JOIN dl_repair_wares drw ON dti.wares_id = drw.id LEFT JOIN dl_base_type dbt ON drw.type = dbt.id - LEFT JOIN system_dict_data sdd ON drw.unit = sdd. - VALUE - - AND sdd.dict_type = 'repair_unit' + LEFT JOIN system_dict_data sdd ON drw.unit = sdd.`value` AND sdd.dict_type = 'repair_unit' WHERE dti.deleted = '0'