退租检修
This commit is contained in:
parent
c94f3d2d0a
commit
669ae27f9a
|
|
@ -17,6 +17,12 @@ public class AreaVo {
|
|||
@ApiModelProperty(value = "区域id")
|
||||
private Long areaId;
|
||||
|
||||
@ApiModelProperty(value = "区域编码")
|
||||
private String areaCode;
|
||||
|
||||
@ApiModelProperty(value = "区域父级编码")
|
||||
private String areaParentCode;
|
||||
|
||||
@ApiModelProperty(value = "区域名称")
|
||||
private String areaName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public enum HttpCodeEnum {
|
|||
|
||||
LEASE_END_TIME_ERROR(500, "需求截止日期不可小于当天,请修改后重新提交"),
|
||||
//失败
|
||||
FAIL(400, "操作失败,请联系管理员"),
|
||||
FAIL(500, "操作失败,请联系管理员"),
|
||||
// 登录
|
||||
LEASE_ORDER_RECEIVED_NOT_DELETE(1002, "已接单状态,不可删除"),
|
||||
NEED_LOGIN(401, "需要登录后操作"),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.bonus.common.biz.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author ma_sh
|
||||
* @version : 1.0
|
||||
* 订单状态枚举
|
||||
*/
|
||||
@Getter
|
||||
public enum OrderStatusEnum {
|
||||
|
||||
NO_ORDER_PLACED(0, "未下单"),
|
||||
TO_ORDER_PLACED(1, "已下单"),
|
||||
ORDER_PENDING_SHIPMENT(2, "待出库"),
|
||||
ORDER_AWAITING_RECEIPT(3, "待收货"),
|
||||
ORDER_UNDER_LEASE(4, "租赁中"),
|
||||
ORDER_TERMINATED(5, "已退租"),
|
||||
ORDER_FINISHED(6, "已完成");
|
||||
|
||||
private final Integer status;
|
||||
private final String statusName;
|
||||
|
||||
OrderStatusEnum(Integer status, String statusName) {
|
||||
this.status = status;
|
||||
this.statusName = statusName;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
package com.bonus.material.lease.controller;
|
||||
|
||||
import com.bonus.common.core.web.controller.BaseController;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.material.lease.domain.LeasePriceRecord;
|
||||
import com.bonus.material.lease.domain.LeaseRecordDto;
|
||||
import com.bonus.material.lease.domain.LeaseRepair;
|
||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||
import com.bonus.material.lease.service.LeaseRepairRecordService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/2 15:33
|
||||
*/
|
||||
@Api(value = "退租检修及费用结算控制层")
|
||||
@RestController
|
||||
@RequestMapping("/lease-repair")
|
||||
public class LeaseRepairRecordController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private LeaseRepairRecordService recordService;
|
||||
|
||||
/**
|
||||
* 查询退租检修列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "查询退租检修列表")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(LeaseRepair dto) {
|
||||
startPage();
|
||||
List<LeaseRepair> list = recordService.list(dto);
|
||||
return AjaxResult.success(getDataTable(list));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询退租检修单个详情
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "查询退租检修单个详情")
|
||||
@GetMapping("/getById")
|
||||
public AjaxResult getById(LeaseRepair dto) {
|
||||
LeaseRecordDto leaseRecordDto = recordService.getById(dto);
|
||||
return AjaxResult.success(leaseRecordDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增退租检修
|
||||
* @param leaseRecordDto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "发起退租检修")
|
||||
@PostMapping("/add")
|
||||
public AjaxResult add(@RequestBody LeaseRecordDto leaseRecordDto) {
|
||||
return recordService.add(leaseRecordDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 装备费用改价
|
||||
* @param leasePriceRecord
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "装备费用改价")
|
||||
@PostMapping("/changePrice")
|
||||
public AjaxResult changePrice(@RequestBody LeasePriceRecord leasePriceRecord) {
|
||||
return recordService.changePrice(leasePriceRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 承租方费用确定
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "承租方确认价格")
|
||||
@PostMapping("/confirmPrice")
|
||||
public AjaxResult confirmPrice(@RequestBody LeaseRepairRecord leaseRepairRecord) {
|
||||
return recordService.confirmPrice(leaseRepairRecord);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.bonus.material.lease.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/4 9:43
|
||||
*/
|
||||
@Data
|
||||
public class LeasePriceRecord {
|
||||
|
||||
@ApiModelProperty(value = "租赁费用列表")
|
||||
private List<LeaseRepairRecord> rentPriceList;
|
||||
|
||||
@ApiModelProperty(value = "维修费用列表")
|
||||
private List<LeaseRepairRecord> repairPriceList;
|
||||
|
||||
@ApiModelProperty(value = "报废费用列表")
|
||||
private List<LeaseRepairRecord> scrapPriceList;
|
||||
|
||||
@ApiModelProperty(value = "丢失费用列表")
|
||||
private List<LeaseRepairRecord> lossPriceList;
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package com.bonus.material.lease.domain;
|
||||
|
||||
import com.bonus.material.order.domain.OrderDetailDto;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/3 10:58
|
||||
*/
|
||||
@Data
|
||||
public class LeaseRecordDto {
|
||||
|
||||
@ApiModelProperty(value = "订单id")
|
||||
private String orderId;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "装备套数")
|
||||
private Integer maNumber;
|
||||
|
||||
@ApiModelProperty(value = "退租时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date rentEndTime;
|
||||
|
||||
@ApiModelProperty(value = "租赁天数")
|
||||
private String rentDay;
|
||||
|
||||
@ApiModelProperty(value = "结算单位")
|
||||
private String leaseCompany;
|
||||
|
||||
@ApiModelProperty(value = "租赁金额")
|
||||
private BigDecimal cost;
|
||||
|
||||
@ApiModelProperty(value = "总费用")
|
||||
private BigDecimal totalCost;
|
||||
|
||||
@ApiModelProperty(value = "是否改价(0 否, 1 是)")
|
||||
private Integer isChangePrice = 0;
|
||||
|
||||
@ApiModelProperty(value = "订单详情列表")
|
||||
private List<OrderDetailDto> orderDetailDtoList;
|
||||
|
||||
@ApiModelProperty(value = "维修列表")
|
||||
private List<LeaseRepairRecord> repairRecordList;
|
||||
|
||||
@ApiModelProperty(value = "报废列表")
|
||||
private List<LeaseRepairRecord> scrapRecordList;
|
||||
|
||||
@ApiModelProperty(value = "丢失列表")
|
||||
private List<LeaseRepairRecord> lossRecordList;
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.bonus.material.lease.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/2 18:35
|
||||
*/
|
||||
@Data
|
||||
public class LeaseRepair {
|
||||
|
||||
@ApiModelProperty(value = "订单id")
|
||||
private String orderId;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 退租截止开始时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private String finishStartTime;
|
||||
|
||||
/**
|
||||
* 退租截止结束时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private String finishEndTime;
|
||||
|
||||
@ApiModelProperty(value = "联系电话")
|
||||
private String phoneNumber;
|
||||
|
||||
@ApiModelProperty(value = "退租时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date rentEndTime;
|
||||
|
||||
@ApiModelProperty(value = "承租人")
|
||||
private String leaseName;
|
||||
|
||||
@ApiModelProperty(value = "承租单位")
|
||||
private String leaseCompany;
|
||||
|
||||
@ApiModelProperty(value = "订单状态")
|
||||
private Integer orderStatus;
|
||||
|
||||
@ApiModelProperty(value = "订单状态名称")
|
||||
private String orderStatusName;
|
||||
|
||||
@ApiModelProperty(value = "是否已填写退租检修内容(0 否,1 是)")
|
||||
private Integer isLeaseContent;
|
||||
}
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
package com.bonus.material.lease.domain;
|
||||
|
||||
import com.bonus.common.biz.domain.BmFileInfo;
|
||||
import com.bonus.common.core.web.domain.BaseEntity;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 维修记录表repair_apply_record(LeaseRepairRecord)实体类
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2024-12-02 15:26:44
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class LeaseRepairRecord extends BaseEntity implements Serializable {
|
||||
private static final long serialVersionUID = 457444570801778758L;
|
||||
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "订单id")
|
||||
private String orderId;
|
||||
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "装备ID")
|
||||
private Integer maId;
|
||||
|
||||
@ApiModelProperty(value = "设备名称")
|
||||
private String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "装备数量")
|
||||
private Integer num;
|
||||
|
||||
@ApiModelProperty(value = "设备类型ID")
|
||||
private Integer typeId;
|
||||
|
||||
@ApiModelProperty(value = "类型名称")
|
||||
private String typeName;
|
||||
|
||||
@ApiModelProperty(value = "租赁改价金额")
|
||||
private BigDecimal changeCost;
|
||||
|
||||
@ApiModelProperty(value = "维修数量")
|
||||
private Integer repairNum;
|
||||
|
||||
@ApiModelProperty(value = "维修费用")
|
||||
private BigDecimal repairPrice;
|
||||
|
||||
@ApiModelProperty(value = "维修改价费用")
|
||||
private BigDecimal repairChangePrice;
|
||||
|
||||
@ApiModelProperty(value = "报废数量")
|
||||
private Integer scrapNum;
|
||||
|
||||
@ApiModelProperty(value = "报废费用")
|
||||
private BigDecimal scrapPrice;
|
||||
|
||||
@ApiModelProperty(value = "报废改价费用")
|
||||
private BigDecimal scrapChangePrice;
|
||||
|
||||
@ApiModelProperty(value = "报废原因")
|
||||
private String scrapReason;
|
||||
|
||||
@ApiModelProperty(value = "丢失数量")
|
||||
private Integer lossNum;
|
||||
|
||||
@ApiModelProperty(value = "丢失费用")
|
||||
private BigDecimal lossPrice;
|
||||
|
||||
@ApiModelProperty(value = "丢失改价费用")
|
||||
private BigDecimal lossChangePrice;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "改价人id")
|
||||
private Long changePriceUser;
|
||||
|
||||
@ApiModelProperty(value = "承租方费用确定人id")
|
||||
private Long priceConfirmUser;
|
||||
|
||||
@ApiModelProperty(value = "改价时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date changePriceTime;
|
||||
|
||||
@ApiModelProperty(value = "创建者")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "创建人公司")
|
||||
private String createCompany;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "更新者")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "更新时间(因无修改操作,故费用最后确定时间为最后一步修改操作)")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "附件信息")
|
||||
private List<BmFileInfo> fileInfoList;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
package com.bonus.material.lease.mapper;
|
||||
|
||||
import com.bonus.material.lease.domain.LeaseRepair;
|
||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/2 15:35
|
||||
*/
|
||||
@Mapper
|
||||
public interface LeaseRepairRecordMapper {
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<LeaseRepair> list(LeaseRepair dto);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
int selectLeaseContent(String orderCode);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
int insert(LeaseRepairRecord leaseRepairRecord);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<LeaseRepairRecord> getLeaseRepairRecordList(LeaseRepair dto);
|
||||
|
||||
/**
|
||||
* 租赁费用改价
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
int updateRentPrice(LeaseRepairRecord leaseRepairRecord);
|
||||
|
||||
/**
|
||||
* 维修费用改价
|
||||
* @param repairRecord
|
||||
* @return
|
||||
*/
|
||||
int updateChangePrice(LeaseRepairRecord repairRecord);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
int update(LeaseRepairRecord leaseRepairRecord);
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.bonus.material.lease.service;
|
||||
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.material.lease.domain.LeasePriceRecord;
|
||||
import com.bonus.material.lease.domain.LeaseRecordDto;
|
||||
import com.bonus.material.lease.domain.LeaseRepair;
|
||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/2 15:34
|
||||
*/
|
||||
public interface LeaseRepairRecordService {
|
||||
|
||||
/**
|
||||
* 查询租赁需求列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<LeaseRepair> list(LeaseRepair dto);
|
||||
|
||||
/**
|
||||
* 查询退租检修单个详情
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
LeaseRecordDto getById(LeaseRepair dto);
|
||||
|
||||
/**
|
||||
* 新增退租检修
|
||||
* @param leaseRecordDto
|
||||
* @return
|
||||
*/
|
||||
AjaxResult add(LeaseRecordDto leaseRecordDto);
|
||||
|
||||
/**
|
||||
* 装备费用改价
|
||||
* @param leasePriceRecord
|
||||
* @return
|
||||
*/
|
||||
AjaxResult changePrice(LeasePriceRecord leasePriceRecord);
|
||||
|
||||
/**
|
||||
* 承租方费用确定
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
AjaxResult confirmPrice(LeaseRepairRecord leaseRepairRecord);
|
||||
}
|
||||
|
|
@ -0,0 +1,742 @@
|
|||
package com.bonus.material.lease.service.impl;
|
||||
|
||||
import com.bonus.common.biz.constant.MaterialConstants;
|
||||
import com.bonus.common.biz.domain.BmFileInfo;
|
||||
import com.bonus.common.biz.enums.HttpCodeEnum;
|
||||
import com.bonus.common.biz.exception.BusinessException;
|
||||
import com.bonus.common.core.exception.ServiceException;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.device.mapper.BmFileInfoMapper;
|
||||
import com.bonus.material.lease.domain.LeasePriceRecord;
|
||||
import com.bonus.material.lease.domain.LeaseRecordDto;
|
||||
import com.bonus.material.lease.domain.LeaseRepair;
|
||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
||||
import com.bonus.material.lease.service.LeaseRepairRecordService;
|
||||
import com.bonus.material.order.domain.OrderDetailDto;
|
||||
import com.bonus.material.order.domain.OrderInfoDto;
|
||||
import com.bonus.material.order.mapper.OrderMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/12/2 15:34
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService {
|
||||
|
||||
// 维修类型图片
|
||||
private final Integer MAIN_IMAGES_DICT_VALUE = 0;
|
||||
|
||||
// 报废类型图片
|
||||
private final Integer DETAILS_IMAGES_DICT_VALUE = 1;
|
||||
|
||||
// 丢失类型图片
|
||||
private final Integer EXAMINATION_PDF = 2;
|
||||
|
||||
@Resource
|
||||
private LeaseRepairRecordMapper mapper;
|
||||
|
||||
@Resource
|
||||
private BmFileInfoMapper bmFileInfoMapper;
|
||||
|
||||
@Resource
|
||||
private OrderMapper orderMapper;
|
||||
|
||||
/**
|
||||
* 查询租赁需求列表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<LeaseRepair> list(LeaseRepair dto) {
|
||||
List<LeaseRepair> list = mapper.list(dto);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
for (LeaseRepair leaseRepairVo : list) {
|
||||
//根据订单编号去lease_repair_record表中查询是否已填写退租检修信息
|
||||
int count = mapper.selectLeaseContent(leaseRepairVo.getCode());
|
||||
if (count > 0) {
|
||||
leaseRepairVo.setIsLeaseContent(1);
|
||||
} else {
|
||||
leaseRepairVo.setIsLeaseContent(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询退租检修单个详情
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LeaseRecordDto getById(LeaseRepair dto) {
|
||||
// 初始化总费用
|
||||
BigDecimal totalCost = new BigDecimal(0.00);
|
||||
LeaseRecordDto leaseRecordDto = new LeaseRecordDto();
|
||||
OrderDetailDto orderDetailDto = new OrderDetailDto();
|
||||
orderDetailDto.setOrderId(Integer.parseInt(dto.getOrderId()));
|
||||
OrderInfoDto orderInfoDto = orderMapper.getOrderDetailsById(orderDetailDto);
|
||||
if (orderInfoDto != null) {
|
||||
leaseRecordDto.setCode(orderInfoDto.getCode());
|
||||
leaseRecordDto.setMaNumber(orderInfoDto.getMaNumber());
|
||||
leaseRecordDto.setRentEndTime(orderInfoDto.getRentEndTime());
|
||||
leaseRecordDto.setRentDay(orderInfoDto.getDays());
|
||||
leaseRecordDto.setLeaseCompany(orderInfoDto.getCzcompanyName());
|
||||
leaseRecordDto.setCost(orderInfoDto.getCost());
|
||||
}
|
||||
List<OrderDetailDto> orderDetailList = orderMapper.selectOrderDetailsByOderId(dto.getOrderId());
|
||||
if (CollectionUtils.isNotEmpty(orderDetailList)) {
|
||||
leaseRecordDto.setOrderDetailDtoList(orderDetailList);
|
||||
for (OrderDetailDto detailDto : orderDetailList) {
|
||||
if (detailDto.getChangeCost() != null) {
|
||||
leaseRecordDto.setIsChangePrice(1);
|
||||
totalCost = totalCost.add(detailDto.getChangeCost());
|
||||
} else {
|
||||
totalCost = totalCost.add(detailDto.getCosts());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 根据订单id查询订单详情
|
||||
List<LeaseRepairRecord> list = mapper.getLeaseRepairRecordList(dto);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
for (LeaseRepairRecord leaseRepairRecord : list) {
|
||||
if (leaseRepairRecord.getRepairChangePrice() != null || leaseRepairRecord.getScrapChangePrice() != null
|
||||
|| leaseRepairRecord.getLossChangePrice() != null) {
|
||||
leaseRecordDto.setIsChangePrice(1);
|
||||
}
|
||||
if (leaseRepairRecord.getRepairChangePrice() != null) {
|
||||
totalCost = totalCost.add(leaseRepairRecord.getRepairChangePrice());
|
||||
} else if (leaseRepairRecord.getRepairPrice() != null){
|
||||
totalCost = totalCost.add(leaseRepairRecord.getRepairPrice());
|
||||
}
|
||||
if (leaseRepairRecord.getScrapChangePrice() != null) {
|
||||
totalCost = totalCost.add(leaseRepairRecord.getScrapChangePrice());
|
||||
} else if (leaseRepairRecord.getScrapPrice() != null){
|
||||
totalCost = totalCost.add(leaseRepairRecord.getScrapPrice());
|
||||
}
|
||||
if (leaseRepairRecord.getLossChangePrice() != null) {
|
||||
totalCost = totalCost.add(leaseRepairRecord.getLossChangePrice());
|
||||
} else if (leaseRepairRecord.getLossPrice() != null){
|
||||
totalCost = totalCost.add(leaseRepairRecord.getLossPrice());
|
||||
}
|
||||
BmFileInfo bmFileInfo = new BmFileInfo();
|
||||
bmFileInfo.setModelId(Long.valueOf(leaseRepairRecord.getMaId()));
|
||||
bmFileInfo.setTaskType(MaterialConstants.LEASE_REPAIR_RECORD_TABLE_NAME);
|
||||
List<BmFileInfo> fileList = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo);
|
||||
if (CollectionUtils.isNotEmpty(fileList)) {
|
||||
fileList.forEach(item -> {
|
||||
if (item.getFileType().equals(Long.valueOf(MAIN_IMAGES_DICT_VALUE))) {
|
||||
// 确保 leaseRepairRecord.getFileInfoList() 不为 null
|
||||
if (leaseRepairRecord.getFileInfoList() == null) {
|
||||
leaseRepairRecord.setFileInfoList(new ArrayList<>());
|
||||
}
|
||||
leaseRepairRecord.getFileInfoList().add(item);
|
||||
// 确保 leaseRecordDto.getRepairRecordList() 不为 null
|
||||
if (leaseRecordDto.getRepairRecordList() == null) {
|
||||
leaseRecordDto.setRepairRecordList(new ArrayList<>());
|
||||
}
|
||||
leaseRecordDto.getRepairRecordList().add(leaseRepairRecord);
|
||||
} else if (item.getFileType().equals(Long.valueOf(DETAILS_IMAGES_DICT_VALUE))) {
|
||||
// 确保 leaseRepairRecord.getFileInfoList() 不为 null
|
||||
if (leaseRepairRecord.getFileInfoList() == null) {
|
||||
leaseRepairRecord.setFileInfoList(new ArrayList<>());
|
||||
}
|
||||
leaseRepairRecord.getFileInfoList().add(item);
|
||||
// 确保 leaseRecordDto.getScrapRecordList() 不为 null
|
||||
if (leaseRecordDto.getScrapRecordList() == null) {
|
||||
leaseRecordDto.setScrapRecordList(new ArrayList<>());
|
||||
}
|
||||
leaseRecordDto.getScrapRecordList().add(leaseRepairRecord);
|
||||
} else if (item.getFileType().equals(Long.valueOf(EXAMINATION_PDF))) {
|
||||
// 确保 leaseRepairRecord.getFileInfoList() 不为 null
|
||||
if (leaseRepairRecord.getFileInfoList() == null) {
|
||||
leaseRepairRecord.setFileInfoList(new ArrayList<>());
|
||||
}
|
||||
leaseRepairRecord.getFileInfoList().add(item);
|
||||
// 确保 leaseRecordDto.getLossRecordList() 不为 null
|
||||
if (leaseRecordDto.getLossRecordList() == null) {
|
||||
leaseRecordDto.setLossRecordList(new ArrayList<>());
|
||||
}
|
||||
leaseRecordDto.getLossRecordList().add(leaseRepairRecord);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
leaseRecordDto.setTotalCost(totalCost);
|
||||
return leaseRecordDto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增退租检修
|
||||
* @param leaseRecordDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public AjaxResult add(LeaseRecordDto leaseRecordDto) {
|
||||
if (leaseRecordDto == null || leaseRecordDto.getOrderId() == null || leaseRecordDto.getCode() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
|
||||
}
|
||||
List<OrderDetailDto> list = orderMapper.selectOrderDetailsByOderId(leaseRecordDto.getOrderId());
|
||||
List<Integer> maIdList = list.stream().map(OrderDetailDto::getMaId).collect(Collectors.toList());
|
||||
LeaseRepairRecord leaseRepairRecord = createLeaseRepairRecord(leaseRecordDto);
|
||||
// 校验所有记录是否为空
|
||||
if (isAllRecordListsEmpty(leaseRecordDto)) {
|
||||
return insertRecord(leaseRepairRecord);
|
||||
}
|
||||
try {
|
||||
// 处理不同记录类型
|
||||
// 1. 只有维修记录
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getRepairRecordList()) && CollectionUtils.isEmpty(leaseRecordDto.getScrapRecordList())
|
||||
&& CollectionUtils.isEmpty(leaseRecordDto.getLossRecordList())) {
|
||||
return handleRepairRecords(leaseRecordDto, leaseRepairRecord);
|
||||
}
|
||||
// 2. 只有报废记录
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getScrapRecordList()) && CollectionUtils.isEmpty(leaseRecordDto.getRepairRecordList())
|
||||
&& CollectionUtils.isEmpty(leaseRecordDto.getLossRecordList())) {
|
||||
return handleScrapRecords(leaseRecordDto, leaseRepairRecord);
|
||||
}
|
||||
// 3. 只有丢失记录
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getLossRecordList()) && CollectionUtils.isEmpty(leaseRecordDto.getRepairRecordList())
|
||||
&& CollectionUtils.isEmpty(leaseRecordDto.getScrapRecordList())) {
|
||||
return handleLossRecords(leaseRecordDto, leaseRepairRecord);
|
||||
}
|
||||
// 处理维修+报废、维修+丢失、报废+丢失等组合情况
|
||||
// 1. 报废+维修
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getRepairRecordList()) &&
|
||||
CollectionUtils.isNotEmpty(leaseRecordDto.getScrapRecordList())
|
||||
&& CollectionUtils.isEmpty(leaseRecordDto.getLossRecordList())) {
|
||||
return handleRepairAndScrap(leaseRecordDto, maIdList);
|
||||
}
|
||||
// 2. 报废+丢失
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getRepairRecordList()) &&
|
||||
CollectionUtils.isNotEmpty(leaseRecordDto.getLossRecordList())
|
||||
&& CollectionUtils.isEmpty(leaseRecordDto.getScrapRecordList())) {
|
||||
return handleRepairAndLoss(leaseRecordDto, maIdList);
|
||||
}
|
||||
// 3. 丢失+报废
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getScrapRecordList()) &&
|
||||
CollectionUtils.isNotEmpty(leaseRecordDto.getLossRecordList())
|
||||
&& CollectionUtils.isEmpty(leaseRecordDto.getRepairRecordList())) {
|
||||
return handleScrapAndLoss(leaseRecordDto, maIdList);
|
||||
}
|
||||
// 处理维修、报废、丢失记录都有的情况
|
||||
if (CollectionUtils.isNotEmpty(leaseRecordDto.getRepairRecordList()) &&
|
||||
CollectionUtils.isNotEmpty(leaseRecordDto.getScrapRecordList()) &&
|
||||
CollectionUtils.isNotEmpty(leaseRecordDto.getLossRecordList())) {
|
||||
return handleAllRecords(leaseRecordDto, maIdList);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 装备费用改价
|
||||
* @param leasePriceRecord
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult changePrice(LeasePriceRecord leasePriceRecord) {
|
||||
int result = 0;
|
||||
List<LeaseRepairRecord> rentPriceList = leasePriceRecord.getRentPriceList();
|
||||
List<LeaseRepairRecord> repairPriceList = leasePriceRecord.getRepairPriceList();
|
||||
List<LeaseRepairRecord> scrapPriceList = leasePriceRecord.getScrapPriceList();
|
||||
List<LeaseRepairRecord> lossPriceList = leasePriceRecord.getLossPriceList();
|
||||
//租赁费用列表不为空
|
||||
if (CollectionUtils.isNotEmpty(rentPriceList)) {
|
||||
for (LeaseRepairRecord leaseRepairRecord : rentPriceList) {
|
||||
if (leaseRepairRecord.getOrderId() == null || leaseRepairRecord.getMaId() == null ||
|
||||
leaseRepairRecord.getChangeCost() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
|
||||
}
|
||||
leaseRepairRecord.setChangePriceUser(SecurityUtils.getUserId());
|
||||
result += mapper.updateRentPrice(leaseRepairRecord);
|
||||
}
|
||||
}
|
||||
//维修费用列表不为空
|
||||
if (CollectionUtils.isNotEmpty(repairPriceList)) {
|
||||
for (LeaseRepairRecord repairRecord : repairPriceList) {
|
||||
if (repairRecord.getOrderId() == null || repairRecord.getMaId() == null ||
|
||||
repairRecord.getChangeCost() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
|
||||
}
|
||||
repairRecord.setChangePriceUser(SecurityUtils.getUserId());
|
||||
result += mapper.updateChangePrice(repairRecord);
|
||||
}
|
||||
}
|
||||
//报废费用列表不为空
|
||||
if (CollectionUtils.isNotEmpty(scrapPriceList)) {
|
||||
for (LeaseRepairRecord scrapRecord : scrapPriceList) {
|
||||
if (scrapRecord.getOrderId() == null || scrapRecord.getMaId() == null ||
|
||||
scrapRecord.getChangeCost() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
|
||||
}
|
||||
scrapRecord.setChangePriceUser(SecurityUtils.getUserId());
|
||||
result += mapper.updateChangePrice(scrapRecord);
|
||||
}
|
||||
}
|
||||
//丢失费用列表不为空
|
||||
if (CollectionUtils.isNotEmpty(lossPriceList)) {
|
||||
for (LeaseRepairRecord lossRecord : lossPriceList) {
|
||||
if (lossRecord.getOrderId() == null || lossRecord.getMaId() == null ||
|
||||
lossRecord.getChangeCost() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
|
||||
}
|
||||
lossRecord.setChangePriceUser(SecurityUtils.getUserId());
|
||||
result += mapper.updateChangePrice(lossRecord);
|
||||
}
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 承租方费用确定
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult confirmPrice(LeaseRepairRecord leaseRepairRecord) {
|
||||
if (leaseRepairRecord.getOrderId() != null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg());
|
||||
}
|
||||
leaseRepairRecord.setPriceConfirmUser(SecurityUtils.getUserId());
|
||||
//将费用确认人信息存入
|
||||
int result = mapper.update(leaseRepairRecord);
|
||||
//修改订单状态为已完成
|
||||
if (result > 0) {
|
||||
result += orderMapper.updateOrder(leaseRepairRecord);
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理维修记录
|
||||
* @param leaseRecordDto
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleRepairRecords(LeaseRecordDto leaseRecordDto, LeaseRepairRecord leaseRepairRecord) {
|
||||
int result = 0;
|
||||
for (LeaseRepairRecord repairRecord : leaseRecordDto.getRepairRecordList()) {
|
||||
leaseRepairRecord.setMaId(repairRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(repairRecord.getTypeId());
|
||||
leaseRepairRecord.setRepairNum(repairRecord.getRepairNum());
|
||||
leaseRepairRecord.setRepairPrice(repairRecord.getRepairPrice());
|
||||
if (repairRecord.getRepairNum() > repairRecord.getNum()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), repairRecord.getDeviceName() + "维修数量不能大于设备数量");
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
if (result > 0) {
|
||||
if (CollectionUtils.isNotEmpty(repairRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(repairRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理报废记录
|
||||
* @param leaseRecordDto
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleScrapRecords(LeaseRecordDto leaseRecordDto, LeaseRepairRecord leaseRepairRecord) {
|
||||
int result = 0;
|
||||
for (LeaseRepairRecord scrapRecord : leaseRecordDto.getScrapRecordList()) {
|
||||
leaseRepairRecord.setMaId(scrapRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(scrapRecord.getTypeId());
|
||||
leaseRepairRecord.setScrapNum(scrapRecord.getScrapNum());
|
||||
leaseRepairRecord.setScrapPrice(scrapRecord.getScrapPrice());
|
||||
leaseRepairRecord.setScrapReason(scrapRecord.getScrapReason() == null ? "" : scrapRecord.getScrapReason());
|
||||
if (scrapRecord.getScrapNum() > scrapRecord.getNum()) {
|
||||
throw new ServiceException("报废数量不能大于设备数量", HttpCodeEnum.FAIL.getCode());
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
if (result > 0) {
|
||||
if (CollectionUtils.isNotEmpty(scrapRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(scrapRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理丢失记录
|
||||
* @param leaseRecordDto
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleLossRecords(LeaseRecordDto leaseRecordDto, LeaseRepairRecord leaseRepairRecord) {
|
||||
int result = 0;
|
||||
for (LeaseRepairRecord lossRecord : leaseRecordDto.getLossRecordList()) {
|
||||
leaseRepairRecord.setMaId(lossRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(lossRecord.getTypeId());
|
||||
leaseRepairRecord.setLossNum(lossRecord.getLossNum());
|
||||
leaseRepairRecord.setLossPrice(lossRecord.getLossPrice());
|
||||
if (lossRecord.getLossNum() > lossRecord.getNum()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "丢失数量不能大于设备数量");
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
if (result > 0) {
|
||||
if (CollectionUtils.isNotEmpty(lossRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(lossRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理维修和报废记录
|
||||
* @param leaseRecordDto
|
||||
* @param maIdList
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleRepairAndScrap(LeaseRecordDto leaseRecordDto, List<Integer> maIdList) {
|
||||
int result = 0;
|
||||
for (Integer maId : maIdList) {
|
||||
LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord();
|
||||
leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId());
|
||||
leaseRepairRecord.setCode(leaseRecordDto.getCode());
|
||||
leaseRepairRecord.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
leaseRepairRecord.setCreateTime(DateUtils.getNowDate());
|
||||
List<LeaseRepairRecord> repairRecordList = leaseRecordDto.getRepairRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
List<LeaseRepairRecord> scrapRecordList = leaseRecordDto.getScrapRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
|
||||
int repairNum = repairRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getRepairNum()).orElse(0)).sum();
|
||||
int scrapNum = scrapRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getScrapNum()).orElse(0)).sum();
|
||||
// 选择第一个不为空的集合的 getNum() 数量
|
||||
int num = 0;
|
||||
if (!repairRecordList.isEmpty()) {
|
||||
num = repairRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
} else if (!scrapRecordList.isEmpty()) {
|
||||
num = scrapRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
}
|
||||
if (repairNum + scrapNum > num) {
|
||||
throw new ServiceException("维修数量+报废数量不能大于设备数量", HttpCodeEnum.FAIL.getCode());
|
||||
}
|
||||
|
||||
// 插入维修记录
|
||||
if (CollectionUtils.isNotEmpty(repairRecordList)) {
|
||||
for (LeaseRepairRecord repairRecord : repairRecordList) {
|
||||
leaseRepairRecord.setMaId(repairRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(repairRecord.getTypeId());
|
||||
leaseRepairRecord.setRepairNum(repairRecord.getRepairNum());
|
||||
leaseRepairRecord.setRepairPrice(repairRecord.getRepairPrice());
|
||||
if (CollectionUtils.isNotEmpty(repairRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(repairRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 插入报废记录
|
||||
if (CollectionUtils.isNotEmpty(scrapRecordList)) {
|
||||
for (LeaseRepairRecord scrapRecord : scrapRecordList) {
|
||||
leaseRepairRecord.setMaId(scrapRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(scrapRecord.getTypeId());
|
||||
leaseRepairRecord.setScrapNum(scrapRecord.getScrapNum());
|
||||
leaseRepairRecord.setScrapPrice(scrapRecord.getScrapPrice());
|
||||
leaseRepairRecord.setScrapReason(scrapRecord.getScrapReason() == null ? "" : scrapRecord.getScrapReason());
|
||||
if (CollectionUtils.isNotEmpty(scrapRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(scrapRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理维修和丢失记录
|
||||
* @param leaseRecordDto
|
||||
* @param maIdList
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleRepairAndLoss(LeaseRecordDto leaseRecordDto, List<Integer> maIdList) {
|
||||
int result = 0;
|
||||
for (Integer maId : maIdList) {
|
||||
LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord();
|
||||
leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId());
|
||||
leaseRepairRecord.setCode(leaseRecordDto.getCode());
|
||||
leaseRepairRecord.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
leaseRepairRecord.setCreateTime(DateUtils.getNowDate());
|
||||
List<LeaseRepairRecord> repairRecordList = leaseRecordDto.getRepairRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
List<LeaseRepairRecord> lossRecordList = leaseRecordDto.getLossRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
int repairNum = repairRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getRepairNum()).orElse(0)).sum();
|
||||
int lossNum = repairRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getLossNum()).orElse(0)).sum();
|
||||
// 选择第一个不为空的集合的 getNum() 数量
|
||||
int num = 0;
|
||||
if (!repairRecordList.isEmpty()) {
|
||||
num = repairRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
}else if (!lossRecordList.isEmpty()) {
|
||||
num = lossRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
}
|
||||
if (repairNum + lossNum > num) {
|
||||
throw new ServiceException("维修数量+丢失数量不能大于设备数量", HttpCodeEnum.FAIL.getCode());
|
||||
}
|
||||
// 插入维修记录
|
||||
if (CollectionUtils.isNotEmpty(repairRecordList)) {
|
||||
for (LeaseRepairRecord repairRecord : repairRecordList) {
|
||||
leaseRepairRecord.setMaId(repairRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(repairRecord.getTypeId());
|
||||
leaseRepairRecord.setRepairNum(repairRecord.getRepairNum());
|
||||
leaseRepairRecord.setRepairPrice(repairRecord.getRepairPrice());
|
||||
if (CollectionUtils.isNotEmpty(repairRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(repairRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 插入丢失记录
|
||||
if (CollectionUtils.isNotEmpty(lossRecordList)) {
|
||||
for (LeaseRepairRecord lossRecord : lossRecordList) {
|
||||
leaseRepairRecord.setMaId(lossRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(lossRecord.getTypeId());
|
||||
leaseRepairRecord.setLossNum(lossRecord.getLossNum());
|
||||
leaseRepairRecord.setLossPrice(lossRecord.getLossPrice());
|
||||
if (CollectionUtils.isNotEmpty(lossRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(lossRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理报废+丢失记录
|
||||
* @param leaseRecordDto
|
||||
* @param maIdList
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleScrapAndLoss(LeaseRecordDto leaseRecordDto, List<Integer> maIdList) {
|
||||
int result = 0;
|
||||
for (Integer maId : maIdList) {
|
||||
LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord();
|
||||
leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId());
|
||||
leaseRepairRecord.setCode(leaseRecordDto.getCode());
|
||||
leaseRepairRecord.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
leaseRepairRecord.setCreateTime(DateUtils.getNowDate());
|
||||
List<LeaseRepairRecord> scrapRecordList = leaseRecordDto.getScrapRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
List<LeaseRepairRecord> lossRecordList = leaseRecordDto.getLossRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
int scrapNum = scrapRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getScrapNum()).orElse(0)).sum();
|
||||
int lossNum = lossRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getLossNum()).orElse(0)).sum();
|
||||
// 选择第一个不为空的集合的 getNum() 数量
|
||||
int num = 0;
|
||||
if (!scrapRecordList.isEmpty()) {
|
||||
num = scrapRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
} else if (!lossRecordList.isEmpty()) {
|
||||
num = lossRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
}
|
||||
if (scrapNum + lossNum > num) {
|
||||
throw new ServiceException("报废数量+丢失数量不能大于设备数量", HttpCodeEnum.FAIL.getCode());
|
||||
}
|
||||
// 插入报废记录
|
||||
if (CollectionUtils.isNotEmpty(scrapRecordList)) {
|
||||
for (LeaseRepairRecord scrapRecord : scrapRecordList) {
|
||||
leaseRepairRecord.setMaId(scrapRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(scrapRecord.getTypeId());
|
||||
leaseRepairRecord.setScrapNum(scrapRecord.getScrapNum());
|
||||
leaseRepairRecord.setScrapPrice(scrapRecord.getScrapPrice());
|
||||
leaseRepairRecord.setScrapReason(scrapRecord.getScrapReason() == null ? "" : scrapRecord.getScrapReason());
|
||||
if (CollectionUtils.isNotEmpty(scrapRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(scrapRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 插入丢失记录
|
||||
if (CollectionUtils.isNotEmpty(lossRecordList)) {
|
||||
for (LeaseRepairRecord lossRecord : lossRecordList) {
|
||||
leaseRepairRecord.setMaId(lossRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(lossRecord.getTypeId());
|
||||
leaseRepairRecord.setLossNum(lossRecord.getLossNum());
|
||||
leaseRepairRecord.setLossPrice(lossRecord.getLossPrice());
|
||||
if (CollectionUtils.isNotEmpty(lossRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(lossRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理维修、报废、丢失记录都有的情况
|
||||
* @param leaseRecordDto
|
||||
* @param maIdList
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult handleAllRecords(LeaseRecordDto leaseRecordDto, List<Integer> maIdList) {
|
||||
int result = 0;
|
||||
for (Integer maId : maIdList) {
|
||||
LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord();
|
||||
leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId());
|
||||
leaseRepairRecord.setCode(leaseRecordDto.getCode());
|
||||
leaseRepairRecord.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
leaseRepairRecord.setCreateTime(DateUtils.getNowDate());
|
||||
List<LeaseRepairRecord> repairRecordList = leaseRecordDto.getRepairRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
List<LeaseRepairRecord> scrapRecordList = leaseRecordDto.getScrapRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
List<LeaseRepairRecord> lossRecordList = leaseRecordDto.getLossRecordList().stream()
|
||||
.filter(item -> item.getMaId().equals(maId)).collect(Collectors.toList());
|
||||
int repairNum = repairRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getRepairNum()).orElse(0)).sum();
|
||||
int scrapNum = scrapRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getScrapNum()).orElse(0)).sum();
|
||||
int lossNum = lossRecordList.stream().mapToInt(record -> Optional.ofNullable(record.getLossNum()).orElse(0)).sum();
|
||||
// 选择第一个不为空的集合的 getNum() 数量
|
||||
int num = 0;
|
||||
if (!repairRecordList.isEmpty()) {
|
||||
num = repairRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
} else if (!scrapRecordList.isEmpty()) {
|
||||
num = scrapRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
} else if (!lossRecordList.isEmpty()) {
|
||||
num = lossRecordList.stream()
|
||||
.mapToInt(record -> Optional.ofNullable(record.getNum()).orElse(0))
|
||||
.sum();
|
||||
}
|
||||
if (repairNum + scrapNum + lossNum > num) {
|
||||
throw new ServiceException("维修数量+报废数量+丢失数量不能大于设备数量", HttpCodeEnum.FAIL.getCode());
|
||||
}
|
||||
// 插入维修记录
|
||||
if (CollectionUtils.isNotEmpty(repairRecordList)) {
|
||||
for (LeaseRepairRecord repairRecord : repairRecordList) {
|
||||
leaseRepairRecord.setMaId(repairRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(repairRecord.getTypeId());
|
||||
leaseRepairRecord.setRepairNum(repairRecord.getRepairNum());
|
||||
leaseRepairRecord.setRepairPrice(repairRecord.getRepairPrice());
|
||||
leaseRepairRecord.setRepairChangePrice(repairRecord.getRepairChangePrice());
|
||||
if (CollectionUtils.isNotEmpty(repairRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(repairRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 插入报废记录
|
||||
if (CollectionUtils.isNotEmpty(scrapRecordList)) {
|
||||
for (LeaseRepairRecord scrapRecord : scrapRecordList) {
|
||||
leaseRepairRecord.setMaId(scrapRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(scrapRecord.getTypeId());
|
||||
leaseRepairRecord.setScrapNum(scrapRecord.getScrapNum());
|
||||
leaseRepairRecord.setScrapPrice(scrapRecord.getScrapPrice());
|
||||
leaseRepairRecord.setScrapReason(scrapRecord.getScrapReason() == null ? "" : scrapRecord.getScrapReason());
|
||||
if (CollectionUtils.isNotEmpty(scrapRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(scrapRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 插入丢失记录
|
||||
if (CollectionUtils.isNotEmpty(lossRecordList)) {
|
||||
for (LeaseRepairRecord lossRecord : lossRecordList) {
|
||||
leaseRepairRecord.setMaId(lossRecord.getMaId());
|
||||
leaseRepairRecord.setTypeId(lossRecord.getTypeId());
|
||||
leaseRepairRecord.setLossNum(lossRecord.getLossNum());
|
||||
leaseRepairRecord.setLossPrice(lossRecord.getLossPrice());
|
||||
if (CollectionUtils.isNotEmpty(lossRecord.getFileInfoList())) {
|
||||
bmFileInfoMapper.insertBmFileInfos(lossRecord.getFileInfoList());
|
||||
}
|
||||
}
|
||||
}
|
||||
result += mapper.insert(leaseRepairRecord);
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入记录
|
||||
* @param leaseRepairRecord
|
||||
* @return
|
||||
*/
|
||||
private AjaxResult insertRecord(LeaseRepairRecord leaseRepairRecord) {
|
||||
int result = mapper.insert(leaseRepairRecord);
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) :
|
||||
AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建维修公用类
|
||||
* @param leaseRecordDto
|
||||
* @return
|
||||
*/
|
||||
private LeaseRepairRecord createLeaseRepairRecord(LeaseRecordDto leaseRecordDto) {
|
||||
LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord();
|
||||
leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId());
|
||||
leaseRepairRecord.setCode(leaseRecordDto.getCode());
|
||||
leaseRepairRecord.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
leaseRepairRecord.setCreateTime(DateUtils.getNowDate());
|
||||
return leaseRepairRecord;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否所有记录列表为空
|
||||
* @param leaseRecordDto
|
||||
* @return
|
||||
*/
|
||||
private boolean isAllRecordListsEmpty(LeaseRecordDto leaseRecordDto) {
|
||||
return CollectionUtils.isEmpty(leaseRecordDto.getRepairRecordList()) &&
|
||||
CollectionUtils.isEmpty(leaseRecordDto.getScrapRecordList()) &&
|
||||
CollectionUtils.isEmpty(leaseRecordDto.getLossRecordList());
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,9 @@ public class OrderDetailDto {
|
|||
@ApiModelProperty(value = "主键id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "前端是否选中(此字段仅供前端使用,默认0)")
|
||||
private Integer isCheck = 0;
|
||||
|
||||
@ApiModelProperty(value = "主键ids")
|
||||
private List<Integer> ids;
|
||||
|
||||
|
|
@ -27,12 +30,18 @@ public class OrderDetailDto {
|
|||
@ApiModelProperty(value = "设备id")
|
||||
private Integer maId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型id")
|
||||
private Integer typeId;
|
||||
|
||||
@ApiModelProperty(value = "类型名称")
|
||||
private String typeName;
|
||||
|
||||
@ApiModelProperty(value = "租期开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date rentBeginTime;
|
||||
|
||||
@ApiModelProperty(value = "租期结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date rentEndTime;
|
||||
|
||||
@ApiModelProperty(value = "天数")
|
||||
|
|
@ -44,6 +53,9 @@ public class OrderDetailDto {
|
|||
@ApiModelProperty(value = "总金额")
|
||||
private BigDecimal costs;
|
||||
|
||||
@ApiModelProperty(value = "改价金额")
|
||||
private BigDecimal changeCost;
|
||||
|
||||
@ApiModelProperty(value = "设备类型(0:编码 1:数量)")
|
||||
private String manageType;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,16 @@ public class OrderInfoDto {
|
|||
@ApiModelProperty(value = "主键id")
|
||||
private Integer orderId;
|
||||
|
||||
@ApiModelProperty(value = "订单装备套数")
|
||||
private Integer maNumber;
|
||||
|
||||
@ApiModelProperty(value = "退租时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date rentEndTime;
|
||||
|
||||
@ApiModelProperty(value = "天数")
|
||||
private String days;
|
||||
|
||||
@ApiModelProperty(value = "父id(续租原订单)")
|
||||
private Integer pId;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.bonus.material.order.mapper;
|
||||
|
||||
import com.bonus.material.device.domain.DevInfo;
|
||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||
import com.bonus.material.order.domain.OrderDetailDto;
|
||||
import com.bonus.material.order.domain.OrderInfoDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
|
@ -35,4 +36,6 @@ public interface OrderMapper {
|
|||
List<OrderDetailDto> selectOrderDetailsByOderId(String orderId);
|
||||
|
||||
List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId);
|
||||
|
||||
int updateOrder(LeaseRepairRecord leaseRepairRecord);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,14 +81,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<select id="getArea" resultType="com.bonus.common.biz.domain.vo.AreaVo">
|
||||
select
|
||||
id as areaId,
|
||||
`code` as areaCode,
|
||||
parent_code as areaParentCode,
|
||||
name as areaName
|
||||
from base_address
|
||||
where parent_code = '34'
|
||||
<if test="areaName != null and areaName != ''">
|
||||
and area_name like concat('%',#{areaName},'%')
|
||||
where 1 = 1
|
||||
<if test="areaCode == null and areaCode == ''">
|
||||
and parent_code = 0
|
||||
</if>
|
||||
<if test="areaId != null">
|
||||
and area_id = #{areaId}
|
||||
<if test="areaCode != null and areaCode != ''">
|
||||
and parent_code = #{areaCode}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,476 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bonus.material.lease.mapper.LeaseRepairRecordMapper">
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into lease_repair_record
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="orderId != null and orderId != ''">order_id,</if>
|
||||
<if test="code != null and code != ''">code,</if>
|
||||
<if test="maId != null ">ma_id,</if>
|
||||
<if test="typeId != null">type_id,</if>
|
||||
<if test="repairNum != null">repair_num,</if>
|
||||
<if test="repairPrice != null and repairPrice != ''">repair_price,</if>
|
||||
<if test="repairChangePrice != null and repairChangePrice != ''">repair_change_price,</if>
|
||||
<if test="scrapNum != null">scrap_num,</if>
|
||||
<if test="scrapPrice != null and scrapPrice != ''">scrap_price,</if>
|
||||
<if test="scrapChangePrice != null and scrapChangePrice != ''">scrap_change_price,</if>
|
||||
<if test="scrapReason != null and scrapReason != ''">scrap_reason,</if>
|
||||
<if test="lossNum != null">loss_num,</if>
|
||||
<if test="lossPrice != null">loss_price,</if>
|
||||
<if test="lossChangePrice != null">loss_change_price,</if>
|
||||
<if test="changePriceUser != null">change_price_user,</if>
|
||||
<if test="priceConfirmUser != null and priceConfirmUser != ''">price_confirm_user,</if>
|
||||
<if test="changePriceTime != null and changePriceTime != ''">change_price_time,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="orderId != null and orderId != ''">#{orderId},</if>
|
||||
<if test="code != null and code != ''">#{code},</if>
|
||||
<if test="maId != null ">#{maId},</if>
|
||||
<if test="typeId != null">#{typeId},</if>
|
||||
<if test="repairNum != null">#{repairNum},</if>
|
||||
<if test="repairPrice != null and repairPrice != ''">#{repairPrice},</if>
|
||||
<if test="repairChangePrice != null and repairChangePrice != ''">#{repairChangePrice},</if>
|
||||
<if test="scrapNum != null">#{scrapNum},</if>
|
||||
<if test="scrapPrice != null and scrapPrice != ''">#{scrapPrice},</if>
|
||||
<if test="scrapChangePrice != null and scrapChangePrice != ''">#{scrapChangePrice},</if>
|
||||
<if test="scrapReason != null and scrapReason != ''">#{scrapReason},</if>
|
||||
<if test="lossNum != null">#{lossNum},</if>
|
||||
<if test="lossPrice != null">#{lossPrice},</if>
|
||||
<if test="lossChangePrice != null">#{lossChangePrice},</if>
|
||||
<if test="changePriceUser != null">#{changePriceUser},</if>
|
||||
<if test="priceConfirmUser != null and priceConfirmUser != ''">#{priceConfirmUser},</if>
|
||||
<if test="changePriceTime != null and changePriceTime != ''">#{changePriceTime},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<insert id="insertHotSearch">
|
||||
insert into ma_hot_search(lease_id, lease_num, create_time)
|
||||
values(#{id}, 1, now())
|
||||
</insert>
|
||||
|
||||
<update id="updateDevInfo">
|
||||
update ma_lease_info
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="leaseName != null and leaseName != ''">lease_name = #{leaseName},</if>
|
||||
<if test="typeId != null">type_id = #{typeId},</if>
|
||||
<if test="ids != null">type_ids = #{ids},</if>
|
||||
<if test="companyId != null">company_id = #{companyId},</if>
|
||||
<if test="areaId != null">area_id = #{areaId},</if>
|
||||
<if test="leaseDay != null ">lease_day = #{leaseDay},</if>
|
||||
<if test="leaseStatus != null ">lease_status = #{leaseStatus},</if>
|
||||
<if test="leaseNum != null ">lease_num = #{leaseNum},</if>
|
||||
<if test="startTime != null">start_time = #{startTime},</if>
|
||||
<if test="publishUser != null and publishUser != ''">publish_user = #{publishUser},</if>
|
||||
<if test="endTime != null">end_time = #{endTime},</if>
|
||||
<if test="person != null">person = #{person},</if>
|
||||
<if test="personPhone != null">person_phone = #{personPhone},</if>
|
||||
<if test="description != null and description != ''">description = #{description},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="orderUser != null and orderUser != ''">order_user = #{orderUser},</if>
|
||||
<if test="orderTime != null">order_time = #{orderTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="updateHotSearchByLeaseId">
|
||||
update ma_hot_search
|
||||
set lease_num = lease_num + 1,
|
||||
update_time = now()
|
||||
where lease_id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="updateRentPrice">
|
||||
update ma_order_details
|
||||
set change_cost = #{changeCost},
|
||||
change_price_user = #{changePriceUser},
|
||||
change_price_time = now()
|
||||
where order_id = #{orderId} and ma_id = #{maId}
|
||||
</update>
|
||||
|
||||
<update id="updateChangePrice">
|
||||
update lease_repair_record
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="repairChangePrice != null">repair_change_price = #{repairChangePrice},</if>
|
||||
<if test="scrapChangePrice != null">scrap_change_price = #{scrapChangePrice},</if>
|
||||
<if test="lossChangePrice != null">loss_change_price = #{lossChangePrice},</if>
|
||||
<if test="changePriceUser != null">change_price_user = #{changePriceUser},</if>
|
||||
change_price_time = now()
|
||||
</trim>
|
||||
where order_id = #{orderId} and ma_id = #{maId}
|
||||
</update>
|
||||
|
||||
<update id="update">
|
||||
update lease_repair_record
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="priceConfirmUser != null">price_confirm_user = #{priceConfirmUser},</if>
|
||||
update_time = now()
|
||||
</trim>
|
||||
where order_id = #{orderId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteById">
|
||||
delete from ma_lease_info where id = #{id}
|
||||
</delete>
|
||||
|
||||
<select id="selectByName" resultType="com.bonus.material.lease.domain.vo.MaLeaseVo">
|
||||
SELECT
|
||||
m.id as id,
|
||||
m.lease_name as leaseName,
|
||||
m.lease_code as leaseCode,
|
||||
m.type_id as typeId,
|
||||
m.type_ids as ids,
|
||||
mt4.type_name as typeName,
|
||||
m.company_id as companyId,
|
||||
c.company_name as companyName,
|
||||
c.operate_address as operateAddress,
|
||||
m.lease_status as leaseStatus,
|
||||
m.lease_day as leaseDay,
|
||||
m.lease_num as leaseNum,
|
||||
m.start_time as startTime,
|
||||
m.end_time as endTime,
|
||||
m.person as person,
|
||||
m.person_phone as personPhone,
|
||||
m.description as description,
|
||||
IFNULL(h.lease_num, 0) AS searchNum,
|
||||
mt3.type_id as thirdId,
|
||||
mt3.type_name as thirdName,
|
||||
mt2.type_id as secondId,
|
||||
mt2.type_name as secondName,
|
||||
mt1.type_id as firstId,
|
||||
mt1.type_name as firstName,
|
||||
CASE
|
||||
-- 第一级
|
||||
WHEN mt1.type_id IS NULL
|
||||
AND mt2.type_id IS NULL
|
||||
AND mt3.type_id IS NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
mt4.type_name
|
||||
-- 第二级
|
||||
WHEN mt1.type_id IS NULL
|
||||
AND mt2.type_id IS NULL
|
||||
AND mt3.type_id IS NOT NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
CONCAT( mt3.type_name, '/', mt4.type_name )
|
||||
-- 第三级
|
||||
WHEN mt1.type_id IS NULL
|
||||
AND mt2.type_id IS NOT NULL
|
||||
AND mt3.type_id IS NOT NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
CONCAT( mt2.type_name, '/', mt3.type_name, '/', mt4.type_name )
|
||||
-- 第四级
|
||||
WHEN mt1.type_id IS NOT NULL
|
||||
AND mt2.type_id IS NOT NULL
|
||||
AND mt3.type_id IS NOT NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
CONCAT( mt1.type_name, '/', mt2.type_name, '/', mt3.type_name, '/', mt4.type_name )
|
||||
ELSE NULL
|
||||
END AS groupName,
|
||||
m.publish_user as publishUser,
|
||||
m.area_id as areaId,
|
||||
b.name as areaName
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN bm_company_info c ON m.company_id = c.company_id
|
||||
LEFT JOIN base_address b ON b.id = m.area_id
|
||||
LEFT JOIN ma_hot_search h ON h.lease_id = m.id
|
||||
LEFT JOIN ma_type mt4 ON mt4.type_id = m.type_id and mt4.del_flag = '0'
|
||||
LEFT JOIN ma_type mt3 ON mt3.type_id = mt4.parent_id and mt3.del_flag = '0'
|
||||
LEFT JOIN ma_type mt2 ON mt2.type_id = mt3.parent_id and mt2.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON mt1.type_id = mt2.parent_id and mt1.del_flag = '0'
|
||||
WHERE 1 = 1
|
||||
<if test="id != null">
|
||||
and m.id = #{id}
|
||||
</if>
|
||||
<if test="leaseCode != null and leaseCode != ''">
|
||||
and m.lease_code = #{leaseCode}
|
||||
</if>
|
||||
<if test="leaseName != null and leaseName != ''">
|
||||
and m.lease_name = #{leaseName}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="selectTaskNumByMonth" resultType="java.lang.String">
|
||||
SELECT SUBSTRING(lease_code, - 4) as code
|
||||
FROM ma_lease_info
|
||||
WHERE DATE_FORMAT(create_time, '%y%m') = DATE_FORMAT(#{date}, '%y%m')
|
||||
ORDER BY create_time DESC LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="list" resultType="com.bonus.material.lease.domain.LeaseRepair">
|
||||
SELECT
|
||||
moi.order_id AS orderId,
|
||||
moi.CODE AS code,
|
||||
su.nick_name AS leaseName,
|
||||
dept.companyName AS leaseCompany,
|
||||
su.phonenumber AS phoneNumber,
|
||||
hh.rent_end_time AS rentEndTime,
|
||||
hh.order_status AS orderStatus,
|
||||
CASE
|
||||
WHEN hh.order_status = 5 THEN
|
||||
'已退租'
|
||||
WHEN hh.order_status = 6 THEN
|
||||
'已完成' ELSE '未知'
|
||||
END AS orderStatusName
|
||||
FROM
|
||||
ma_order_details hh
|
||||
LEFT JOIN ma_order_info moi ON moi.order_id = hh.order_id
|
||||
LEFT JOIN ma_dev_info mdi ON hh.ma_id = mdi.ma_id
|
||||
AND mdi.is_active = '1'
|
||||
LEFT JOIN sys_user su ON su.user_id = moi.buyer_id
|
||||
AND su.del_flag = '0'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
sd.dept_id AS deptId,
|
||||
sd1.dept_name AS companyName
|
||||
FROM
|
||||
sys_dept sd
|
||||
JOIN (
|
||||
SELECT
|
||||
CASE
|
||||
ancestors
|
||||
WHEN ( '0' ) THEN
|
||||
dept_id ELSE SUBSTRING_INDEX( SUBSTRING_INDEX( ancestors, ',', 2 ), ',', - 1 )
|
||||
END AS first_ancestor,
|
||||
dept_id
|
||||
FROM
|
||||
sys_dept
|
||||
) AS subquery ON sd.dept_id = subquery.dept_id
|
||||
LEFT JOIN sys_dept sd1 ON sd1.dept_id = subquery.first_ancestor
|
||||
) dept ON dept.deptId = su.dept_id
|
||||
WHERE
|
||||
hh.order_status IN ( 5, 6 )
|
||||
<if test="code != null and code != ''">
|
||||
and moi.CODE like concat('%',#{code},'%')
|
||||
</if>
|
||||
<if test="leaseName != null and leaseName != ''">
|
||||
and su.nick_name like concat('%',#{leaseName},'%')
|
||||
</if>
|
||||
<if test="leaseCompany != null and leaseCompany != ''">
|
||||
and dept.companyName like concat('%',#{leaseCompany},'%')
|
||||
</if>
|
||||
<if test="orderStatus != null">
|
||||
and hh.order_status = #{orderStatus}
|
||||
</if>
|
||||
<if test="finishStartTime != null and finishStartTime != '' and finishEndTime != null and finishEndTime != ''">
|
||||
and DATE_FORMAT(hh.rent_end_time,'%Y-%m-%d') between #{finishStartTime} and #{finishEndTime}
|
||||
</if>
|
||||
GROUP BY
|
||||
moi.CODE
|
||||
</select>
|
||||
|
||||
<select id="getHotSearchCountByLeaseId" resultType="java.lang.Integer">
|
||||
select count(1) from ma_hot_search
|
||||
where lease_id = #{leaseId}
|
||||
</select>
|
||||
|
||||
<select id="leaseList" resultType="com.bonus.material.lease.domain.vo.MaLeaseVo">
|
||||
SELECT
|
||||
m.id as id,
|
||||
m.lease_name as leaseName,
|
||||
m.lease_code as leaseCode,
|
||||
m.type_id as typeId,
|
||||
mt4.type_name as typeName,
|
||||
m.company_id as companyId,
|
||||
c.company_name as companyName,
|
||||
c.operate_address as operateAddress,
|
||||
m.lease_status as leaseStatus,
|
||||
m.lease_day as leaseDay,
|
||||
m.lease_num as leaseNum,
|
||||
m.start_time as startTime,
|
||||
m.end_time as endTime,
|
||||
m.person as person,
|
||||
m.person_phone as personPhone,
|
||||
m.description as description,
|
||||
mt3.type_id as thirdId,
|
||||
mt3.type_name as thirdName,
|
||||
mt2.type_id as secondId,
|
||||
mt2.type_name as secondName,
|
||||
mt1.type_id as firstId,
|
||||
mt1.type_name as firstName,
|
||||
CASE
|
||||
-- 第一级
|
||||
WHEN mt1.type_id IS NULL
|
||||
AND mt2.type_id IS NULL
|
||||
AND mt3.type_id IS NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
mt4.type_name
|
||||
-- 第二级
|
||||
WHEN mt1.type_id IS NULL
|
||||
AND mt2.type_id IS NULL
|
||||
AND mt3.type_id IS NOT NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
CONCAT( mt3.type_name, '/', mt4.type_name )
|
||||
-- 第三级
|
||||
WHEN mt1.type_id IS NULL
|
||||
AND mt2.type_id IS NOT NULL
|
||||
AND mt3.type_id IS NOT NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
CONCAT( mt2.type_name, '/', mt3.type_name, '/', mt4.type_name )
|
||||
-- 第四级
|
||||
WHEN mt1.type_id IS NOT NULL
|
||||
AND mt2.type_id IS NOT NULL
|
||||
AND mt3.type_id IS NOT NULL
|
||||
AND mt4.type_id IS NOT NULL THEN
|
||||
CONCAT( mt1.type_name, '/', mt2.type_name, '/', mt3.type_name, '/', mt4.type_name )
|
||||
ELSE NULL
|
||||
END AS groupName,
|
||||
m.publish_user as publishUser,
|
||||
b.id as areaId,
|
||||
b.name as areaName
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN bm_company_info c ON m.company_id = c.company_id
|
||||
LEFT JOIN base_address b ON b.id = m.area_id
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN ma_type mt4 ON mt4.type_id = m.type_id and mt4.del_flag = '0'
|
||||
LEFT JOIN ma_type mt3 ON mt3.type_id = mt4.parent_id and mt3.del_flag = '0'
|
||||
LEFT JOIN ma_type mt2 ON mt2.type_id = mt3.parent_id and mt2.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON mt1.type_id = mt2.parent_id and mt1.del_flag = '0'
|
||||
WHERE m.lease_status = '0'
|
||||
<if test="typeId != null">
|
||||
<choose>
|
||||
<when test="level != null and level == 4">
|
||||
and m.type_id = #{typeId}
|
||||
</when>
|
||||
<when test="level != null and level == 3">
|
||||
and mt3.type_id = #{typeId}
|
||||
</when>
|
||||
<when test="level != null and level == 2">
|
||||
and mt2.type_id = #{typeId}
|
||||
</when>
|
||||
<when test="level != null and level == 1">
|
||||
and (
|
||||
mt1.type_id = 1
|
||||
OR mt2.type_id = 1
|
||||
OR mt3.type_id = 1
|
||||
OR mt4.type_id = 1
|
||||
)
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="companyId != null and companyId != ''"> and m.company_id = #{companyId}</if>
|
||||
<if test="areaId != null"> and m.area_id = #{areaId}</if>
|
||||
<if test="keyWord != null and keyWord != ''">
|
||||
and (
|
||||
locate(#{keyWord},mt1.type_name) > 0
|
||||
or locate(#{keyWord},mt2.type_name) > 0
|
||||
or locate(#{keyWord},mt3.type_name) > 0
|
||||
or locate(#{keyWord},mt4.type_name) > 0
|
||||
or locate(#{keyWord},c.company_name) > 0
|
||||
or locate(#{keyWord},m.lease_name) > 0
|
||||
)
|
||||
</if>
|
||||
GROUP BY m.lease_code
|
||||
ORDER BY
|
||||
m.lease_status
|
||||
<if test="startTime != '' and startTime == 'ASC'">
|
||||
,m.start_time
|
||||
</if>
|
||||
<if test="startTime != '' and startTime == 'DESC'">
|
||||
,m.start_time DESC
|
||||
</if>
|
||||
<if test="rentDay != null and rentDay == 'ASC'">
|
||||
,m.lease_day
|
||||
</if>
|
||||
<if test="rentDay != null and rentDay == 'DESC'">
|
||||
,m.lease_day DESC
|
||||
</if>
|
||||
<if test="endTime != '' and endTime == 'ASC'">
|
||||
,m.end_time
|
||||
</if>
|
||||
<if test="endTime != '' and endTime == 'DESC'">
|
||||
,m.end_time DESC
|
||||
</if>
|
||||
<if test="rentNum != null and rentNum == 'ASC'">
|
||||
,m.lease_num
|
||||
</if>
|
||||
<if test="rentNum != null and rentNum == 'DESC'">
|
||||
,m.lease_num DESC
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="rentList" resultType="com.bonus.material.lease.domain.vo.MaLeaseVo">
|
||||
SELECT
|
||||
m.id as id,
|
||||
m.lease_name as leaseName,
|
||||
m.lease_code as leaseCode,
|
||||
m.type_id as typeId,
|
||||
m.company_id as companyId,
|
||||
c.company_name as companyName,
|
||||
c.operate_address as operateAddress,
|
||||
m.lease_status as leaseStatus,
|
||||
m.lease_day as leaseDay,
|
||||
m.lease_num as leaseNum,
|
||||
m.start_time as startTime,
|
||||
m.end_time as endTime,
|
||||
m.person as person,
|
||||
m.person_phone as personPhone,
|
||||
m.description as description,
|
||||
su.nick_name as publishUser,
|
||||
su1.nick_name as orderUser,
|
||||
m.order_time as orderTime,
|
||||
b.id as areaId,
|
||||
b.name as areaName
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN bm_company_info c ON m.company_id = c.company_id
|
||||
LEFT JOIN base_address b ON b.id = m.area_id
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN sys_user su1 ON m.order_user = su1.user_id
|
||||
WHERE 1 = 1 and m.order_user = #{orderUser} and m.lease_status = '1'
|
||||
<if test="leaseCode != null and leaseCode != ''">
|
||||
and m.lease_code like concat('%',#{leaseCode},'%')
|
||||
</if>
|
||||
<if test="leaseName != null and leaseName != ''">
|
||||
and m.lease_name like concat('%',#{leaseName},'%')
|
||||
</if>
|
||||
<if test="finishStartTime != null and finishStartTime != '' and finishEndTime != null and finishEndTime != ''">
|
||||
and DATE_FORMAT(m.end_time,'%Y-%m-%d') between #{finishStartTime} and #{finishEndTime}
|
||||
</if>
|
||||
<if test="orderStartTime != null and orderStartTime != '' and orderEndTime != null and orderEndTime != ''">
|
||||
and DATE_FORMAT(m.order_time,'%Y-%m-%d') between #{orderStartTime} and #{orderEndTime}
|
||||
</if>
|
||||
GROUP BY m.lease_code
|
||||
</select>
|
||||
|
||||
<select id="selectLeaseContent" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
count(1)
|
||||
FROM
|
||||
lease_repair_record
|
||||
WHERE
|
||||
code = #{orderCode}
|
||||
</select>
|
||||
|
||||
<select id="getLeaseRepairRecordList" resultType="com.bonus.material.lease.domain.LeaseRepairRecord">
|
||||
SELECT
|
||||
lr.ma_id as maId,
|
||||
m1.device_name as deviceName,
|
||||
mt.type_name as typeName,
|
||||
lr.repair_num as repairNum,
|
||||
lr.repair_price as repairPrice,
|
||||
lr.repair_change_price as repairChangePrice,
|
||||
lr.scrap_num as scrapNum,
|
||||
lr.scrap_price as scrapPrice,
|
||||
lr.scrap_change_price as scrapChangePrice,
|
||||
lr.scrap_reason as scrapReason,
|
||||
lr.loss_num as lossNum,
|
||||
lr.loss_price as lossPrice,
|
||||
lr.loss_change_price as lossChangePrice
|
||||
FROM
|
||||
lease_repair_record lr
|
||||
LEFT JOIN ma_dev_info m1 ON lr.ma_id = m1.ma_id
|
||||
AND m1.is_active = '1'
|
||||
LEFT JOIN ma_type mt ON mt.type_id = lr.type_id
|
||||
AND mt.del_flag = '0'
|
||||
WHERE
|
||||
lr.order_id = #{orderId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -65,6 +65,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<update id="updateAddDevCount">
|
||||
update ma_dev_info set device_count = device_count + #{num} where ma_id = #{maId} and is_active = 1
|
||||
</update>
|
||||
|
||||
<update id="updateOrder">
|
||||
UPDATE
|
||||
ma_order_details
|
||||
SET order_status = 6,
|
||||
rent_over_user = #{priceConfirmUser},
|
||||
rent_over_time = now()
|
||||
WHERE order_id = #{orderId}
|
||||
</update>
|
||||
|
||||
<select id="getdeviceCount" resultType="com.bonus.material.device.domain.DevInfo">
|
||||
select device_count,device_name from ma_dev_info where ma_id = #{maId} and is_active = 1
|
||||
</select>
|
||||
|
|
@ -173,6 +183,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<select id="getOrderDetailsById" resultType="com.bonus.material.order.domain.OrderInfoDto">
|
||||
SELECT
|
||||
moi.code AS code,
|
||||
COUNT(hh.ma_id) as maNumber,
|
||||
hh.rent_end_time as rentEndTime,
|
||||
hh.days as days,
|
||||
moi.order_time,
|
||||
c.company_name AS czcompanyName,
|
||||
mdi.person as person,
|
||||
|
|
@ -213,8 +226,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</select>
|
||||
<select id="selectOrderDetailsByOderId" resultType="com.bonus.material.order.domain.OrderDetailDto">
|
||||
SELECT
|
||||
mdi.ma_id as maId,
|
||||
mdi.type_id as typeId,
|
||||
mdi.device_name,
|
||||
mt.lease_price as dayLeasePrice,
|
||||
mt.type_name as typeName,
|
||||
hh.order_status,
|
||||
hh.days,
|
||||
bfi.url,
|
||||
|
|
|
|||
Loading…
Reference in New Issue