diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/service/impl/RepairOrderInfoServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/service/impl/RepairOrderInfoServiceImpl.java index a0f133ac..9514b50e 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/service/impl/RepairOrderInfoServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/service/impl/RepairOrderInfoServiceImpl.java @@ -14,6 +14,8 @@ import cn.iocoder.yudao.module.order.vo.RepairOrderInfoMapper; 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 cn.iocoder.yudao.module.tickets.entity.Tickets; +import cn.iocoder.yudao.module.tickets.service.TicketsService; import cn.iocoder.yudao.util.WechatPayConfig; import cn.iocoder.yudao.util.WechatPayRequest; import com.alibaba.fastjson.JSON; @@ -30,10 +32,7 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static cn.iocoder.yudao.common.BaseConstants.*; @@ -59,6 +58,9 @@ public class RepairOrderInfoServiceImpl extends ServiceImpl ids = Collections.singletonList(orderInfo.getGoodsId()); + ticketsService.updateTickets(ids); } orderInfo.setOrderStatus(GENERAL_YES); orderInfo.setPayTime(LocalDateTime.now()); diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/Tickets.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/Tickets.java new file mode 100644 index 00000000..413620ff --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/entity/Tickets.java @@ -0,0 +1,180 @@ +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.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 维修工单表 + * + * @author 小李 + * @date 9:32 2024/9/25 +**/ +@Data +@TableName("dl_repair_tickets") +@EqualsAndHashCode(callSuper = true) +public class Tickets extends TenantBaseDO { + + /** + * 主键标识 + */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** + * 工单号;自动生成 + */ + private String ticketNo; + + /** + * 业务类型(repair_type) + */ + private String repairType; + + /** + * 用户ID(system_users表的ID) + */ + private String userId; + + /** + * 用户名(base_customer_main表的cus_name) + */ + private String userName; + + /** + * 用户手机号(base_customer_main表的phone_number) + */ + private String userMobile; + + /** + * 车辆ID(base_car_main表的ID);选择用户之后选择车辆,有直接选,没有就添加 + */ + private String carId; + + /** + * 车牌号(base_car_main表的license_number) + */ + private String carNo; + + /** + * 车架号(base_car_main的vin) + */ + private String carVin; + + /** + * 车辆品牌ID(base_car_brand表的ID);车辆存在就会有品牌,没有就需要新增 + */ + private String carBrandId; + + /** + * 车辆品牌名称(base_car_brand表的brand_name) + */ + private String carBrandName; + + /** + * 车辆品牌类型(base_car_brand表的brand_type) + */ + private String carBrandType; + + /** + * 服务顾问ID(system_users表的ID) + */ + private String adviserId; + + /** + * 服务顾问名字(system_user表的nickname) + */ + private String adviserName; + + /** + * 结算方法(字典repair_pay_type);可能是组合结算(微信+现金等),所以多选 + */ + private String payType; + + /** + * 维修建议 + */ + private String repairAdvice; + + /** + * 质保说明(公里) + */ + private String qualityMileage; + + /** + * 质保说明(天数) + */ + private String qualityDay; + + /** + * 是否终检(字典yes_no);已存在于系统中(是:0,否:1) + */ + private String endCheck; + + /** + * 维修旧件处理方式(字典repair_part_disposal) + */ + private String partDisposal; + + /** + * 备注 + */ + private String remark; + + /** + * 工单类型(字典repair_tickets_type) + */ + private String ticketType; + + /** + * 门店ID(base_company表的ID) + */ + private String corpId; + + /** + * 部门ID + */ + private Long deptId; + + /** 工单子项的总数(每一个子项的数量) */ + private Integer count; + + /** 工单项目总价 */ + private BigDecimal projectPrice; + + /** 工单配件总价 */ + private BigDecimal partPrice; + + /** 工单其他总价 */ + private BigDecimal otherPrice; + + /** 工单总价 */ + private BigDecimal totalPrice; + + /** 是否已结算 */ + private String ticketsStatus; + + /** 进厂时间 */ + private Date inTime; + + /** 预计完工时间 */ + private Date outTime; + + /** 参考成本 */ + private BigDecimal cost; + + /** 参考毛利 */ + private BigDecimal profit; + + /** 领料状态 */ + private String partStatus; + + /** 工单进行状态 */ + private String ticketsWorkStatus; +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/TicketsMapper.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/TicketsMapper.java new file mode 100644 index 00000000..e9a7a283 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/mapper/TicketsMapper.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.module.tickets.mapper; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.tickets.entity.Tickets; +import org.apache.ibatis.annotations.Mapper; + +/** + * 维修工单表 mapper + * + * @author 小李 + * @date 9:33 2024/9/25 +**/ +@Mapper +public interface TicketsMapper extends BaseMapperX { +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/TicketsService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/TicketsService.java new file mode 100644 index 00000000..ce833a53 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/TicketsService.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.tickets.service; + +import cn.iocoder.yudao.module.tickets.entity.Tickets; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 维修工单表 service + * + * @author 小李 + * @date 9:34 2024/9/25 +**/ +public interface TicketsService extends IService { + + /** + * 更新工单状态 + * 考虑可能有批量操作的情况,采用批量更新的方式 + * + * @author 小李 + * @date 9:36 2024/9/25 + * @param ticketIds 工单ids + **/ + void updateTickets(List ticketIds); +} 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 new file mode 100644 index 00000000..b752a2a9 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/TicketsServiceImpl.java @@ -0,0 +1,31 @@ +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.TicketsService; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author 小李 + * @date 9:35 2024/9/25 +**/ +@Service +public class TicketsServiceImpl extends ServiceImpl implements TicketsService { + + /** + * 更新工单状态为已结账 + * 考虑可能有批量操作的情况,采用批量更新的方式 + * + * @author 小李 + * @date 9:36 2024/9/25 + * @param ticketIds 工单ids + **/ + @Override + public void updateTickets(List ticketIds){ + baseMapper.update(new LambdaUpdateWrapper().in(Tickets::getId, ticketIds).set(Tickets::getTicketsStatus, "02")); + } +}