From 26e5fe05f496c4804d82b84462a6856ad7857021 Mon Sep 17 00:00:00 2001 From: xuyuncong <3422692813@qq.com> Date: Thu, 13 Nov 2025 17:55:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/RepairOrderInfoController.java | 18 +++++- .../module/order/entity/RepairOrderInfo.java | 11 ++++ .../iocoder/yudao/common/RepairConstants.java | 9 ++- .../yudao/common/TicketsPayStatusEnum.java | 60 +++++++++++++++++++ .../stockOperate/entity/DlRepairSo.java | 9 ++- .../impl/DlRepairTicketsServiceImpl.java | 17 ++++-- .../service/impl/DlTwItemServiceImpl.java | 6 ++ .../tickets/vo/DlRepairTicketsRespVO.java | 10 ++++ .../mapper/stockOperate/DlRepairSoMapper.xml | 5 +- .../mapper/tickets/DlRepairTicketsMapper.xml | 9 ++- 10 files changed, 143 insertions(+), 11 deletions(-) create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsPayStatusEnum.java diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/controller/admin/RepairOrderInfoController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/controller/admin/RepairOrderInfoController.java index fe611f25..ac70d84c 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/controller/admin/RepairOrderInfoController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/controller/admin/RepairOrderInfoController.java @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.order.vo.RepairOrderInfoPageReqVO; import cn.iocoder.yudao.module.order.vo.RepairOrderInfoRespVO; import cn.iocoder.yudao.module.order.vo.RepairOrderInfoSaveReqVO; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -122,6 +123,21 @@ public class RepairOrderInfoController { return success(repairOrderInfoService.payTransactionsCode(id)); } + /** + * @description : 新增发票信息(根据id进行修改) + * @author xyc + * @date 15:07 2025/11/13 + * @param [orderInfo] + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @PostMapping("/updateBilled") + public CommonResult updateBilled(@RequestBody RepairOrderInfo orderInfo) { + RepairOrderInfo one = repairOrderInfoService.getOne(Wrappers.lambdaQuery() + .eq(RepairOrderInfo::getGoodsId, orderInfo.getId())); + orderInfo.setId(one.getId()); + return CommonResult.success(repairOrderInfoService.updateById(orderInfo)); + } + /** * 导出数据 * @@ -165,4 +181,4 @@ public class RepairOrderInfoController { }); ExcelUtils.write(response, "订单数据.xls", "数据", RepairOrderExportVO.class, list); } -} \ No newline at end of file +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java index 84c1e02d..b71e3756 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java @@ -161,5 +161,16 @@ public class RepairOrderInfo extends TenantBaseDO { */ private String activeId; + /** 是否开票 */ + private String ifBilled; + /** 开票人名字 */ + private String billedUsername; + /** 开票人Id */ + private Long billedUserid; + /** 开票二维码 */ + private String billedQrcode; + /** 开票备注 */ + private String billedRemark; + } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RepairConstants.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RepairConstants.java index 25d22bbc..9e0564ff 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RepairConstants.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/RepairConstants.java @@ -7,6 +7,13 @@ package cn.iocoder.yudao.common; * @date 16:51 2024/10/12 **/ public class RepairConstants { + /** + * 维修类型A + */ + public static final String REPAIR_TYPE_A = "01"; - + /** + * 维修类型B + */ + public static final String REPAIR_TYPE_B = "02"; } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsPayStatusEnum.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsPayStatusEnum.java new file mode 100644 index 00000000..a8c080cf --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/common/TicketsPayStatusEnum.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.common; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @ClassName TicketsPayStatusEnum + * @Description : 维修工单收款状态 + * @Author 许 + * @Date 2025/11/13 10:47 + * @Version 1.0.0 + */ +@AllArgsConstructor +@Getter +public enum TicketsPayStatusEnum { + /** + * 待结算 + */ + WAITING_SETTLEMENT("01","待结算"), + /** + * 待收款 + */ + WAITING_PAY("02","待收款"), + /** + * 已收款 + */ + RECEIVED("03","已收款"), + /** + * 反结算 + */ + REVERSE_SETTLEMENT("04","反结算"), + ; + + /** + * 角色code + */ + private String code; + /** + * 角色名称 + */ + private String name; + + /** + * 根据角色code返回对应的枚举 + * @author vinjor-M + * @date 14:23 2024/10/16 + * @param code 角色code + * @return cn.iocoder.yudao.common.SystemEnum + **/ + public static TicketsPayStatusEnum getRepairRole(String code) { + for (TicketsPayStatusEnum roleEnum : TicketsPayStatusEnum.values()) { + if (roleEnum.getCode().equalsIgnoreCase(code)) { + // 找到对应的枚举 + return roleEnum; + } + } + throw new IllegalArgumentException("无效的角色code:" + code); + } + +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSo.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSo.java index 67cead36..f0cf62ee 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSo.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/entity/DlRepairSo.java @@ -125,13 +125,18 @@ public class DlRepairSo extends TenantBaseDO { */ @TableField(exist = false) private String licenseNumber; + /** + * 车牌号 + */ + @TableField(exist = false) + private String ticketNo; /** 用户记录那些人可以看这条记录 */ private String userIds; - + /** * 子表数据 */ @TableField(exist = false) private List items; -} \ No newline at end of file +} 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 d7c58371..b6867a9b 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 @@ -309,10 +309,19 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl itemList = ticketsRespVO.getItemList(); List collect = itemList.stream().filter(item -> item.getItemType().equals("02")).collect(Collectors.toList()); ticketsRespVO.setPartStatus(CollectionUtil.isEmpty(collect) ? "01" : "02"); - // 工单进行状态 默认是等待接单 - ticketsRespVO.setTicketsWorkStatus(TicketsWorkStatusEnum.WAITING_RECEIVING.getCode()); - // 工单状态 默认是待派工 - ticketsRespVO.setTicketsStatus(TicketsStatusEnum.NO_WORK.getCode()); + if(RepairConstants.REPAIR_TYPE_A.equals(ticketsRespVO.getRepairType())) { + // 工单进行状态 默认是等待接单 + ticketsRespVO.setTicketsWorkStatus(TicketsWorkStatusEnum.WAITING_RECEIVING.getCode()); + // 工单状态 默认是待派工 + ticketsRespVO.setTicketsStatus(TicketsStatusEnum.NO_WORK.getCode()); + } else { + // 工单进行状态 默认是已完成 + ticketsRespVO.setTicketsWorkStatus(TicketsWorkStatusEnum.END.getCode()); + // 工单状态 默认是已完成 + ticketsRespVO.setTicketsStatus(TicketsStatusEnum.OVER.getCode()); + // 支付状态 默认是已收款 + ticketsRespVO.setPayStatus(TicketsPayStatusEnum.RECEIVED.getCode()); + } // 新增主表 baseMapper.insert(ticketsRespVO); 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 88970f62..3386facf 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 @@ -88,6 +88,12 @@ public class DlTwItemServiceImpl extends ServiceImpl .ifPresent(bean::setWares); bean.setTypeName(typeMap.get(bean.getWares().getType())); bean.getWares().setUnit(unitMap.get(bean.getWares().getUnit())); + // 增强健壮性:检查wares和price是否为空 + if (bean.getWares() != null && bean.getWares().getPrice() != null) { + bean.setSalePrice(bean.getWares().getPrice()); + } else { + bean.setSalePrice(null); + } return bean; }).collect(Collectors.toList()); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsRespVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsRespVO.java index d9ca22f9..59c5062d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsRespVO.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/vo/DlRepairTicketsRespVO.java @@ -102,4 +102,14 @@ public class DlRepairTicketsRespVO extends DlRepairTickets { * 实收金额 */ private BigDecimal realActualMoney; + /** 是否开票 */ + private String ifBilled; + /** 开票人名字 */ + private String billedUsername; + /** 开票人Id */ + private Long billedUserid; + /** 开票二维码 */ + private String billedQrcode; + /** 开票备注 */ + private String billedRemark; } 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 2cf7a899..726c2d04 100644 --- a/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/stockOperate/DlRepairSoMapper.xml @@ -54,6 +54,7 @@ + @@ -184,12 +185,14 @@ wares.remark AS wares_remark, wares.status, wares.data_form, - bw.name + bw.name, + drt.ticket_no FROM dl_repair_so so LEFT JOIN dl_ticket_wares dtw ON so.tw_id = dtw.id LEFT JOIN dl_repair_soi soi ON so.id = soi.so_id AND soi.deleted = '0' LEFT JOIN dl_repair_wares wares ON soi.goods_id = wares.id AND wares.deleted = '0' LEFT JOIN dl_base_warehouse bw ON soi.ware_id = bw.id AND bw.deleted = '0' + LEFT JOIN dl_repair_tickets drt ON drt.id = dtw.ticket_id AND drt.deleted = '0' WHERE so.deleted = '0' and so.so_type = #{map.soType} 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 693c71d7..d443f631 100644 --- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml +++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml @@ -131,6 +131,11 @@ + + + + + @@ -430,7 +435,7 @@