更新代码

This commit is contained in:
xiao-fajia 2024-09-25 09:50:34 +08:00
parent d720dfdf2a
commit f718c728c6
5 changed files with 262 additions and 4 deletions

View File

@ -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<RepairOrderInfoMappe
private WechatPayConfig wechatPayConfig;
@Resource
private WechatPayRequest wechatPayRequest;
@Resource
private TicketsService ticketsService;
/**
* 保存订单信息
@ -89,6 +91,11 @@ public class RepairOrderInfoServiceImpl extends ServiceImpl<RepairOrderInfoMappe
balanceService.balanceCallback(orderInfo);
} else if (ORDER_KKYL.equals(orderInfo.getGoodsType())){
couponService.couponCallBack(orderInfo);
} else if (ORDER_WXFW.equals(orderInfo.getGoodsType())){
// 如果是维修订单那订单的GoodsId就一定是工单的id
// 这需要需要调用维修模块的工单的service通过工单id将对应工单的ticketsStatus置为02即可完成工单的更新
List<String> ids = Collections.singletonList(orderInfo.getGoodsId());
ticketsService.updateTickets(ids);
}
orderInfo.setOrderStatus(GENERAL_YES);
orderInfo.setPayTime(LocalDateTime.now());

View File

@ -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;
}

View File

@ -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<Tickets> {
}

View File

@ -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<Tickets> {
/**
* 更新工单状态
* 考虑可能有批量操作的情况采用批量更新的方式
*
* @author 小李
* @date 9:36 2024/9/25
* @param ticketIds 工单ids
**/
void updateTickets(List<String> ticketIds);
}

View File

@ -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<TicketsMapper, Tickets> implements TicketsService {
/**
* 更新工单状态为已结账
* 考虑可能有批量操作的情况采用批量更新的方式
*
* @author 小李
* @date 9:36 2024/9/25
* @param ticketIds 工单ids
**/
@Override
public void updateTickets(List<String> ticketIds){
baseMapper.update(new LambdaUpdateWrapper<Tickets>().in(Tickets::getId, ticketIds).set(Tickets::getTicketsStatus, "02"));
}
}