diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/OrderStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/OrderStatusEnum.java index e874708..4746f07 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/OrderStatusEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/OrderStatusEnum.java @@ -15,10 +15,11 @@ public enum OrderStatusEnum { ORDER_RECEIVE(2, "已接单-待出库"), ORDER_PENDING_SHIPMENT(3, "已出库-待收货"), ORDER_AWAITING_RECEIPT(4, "已收货-租赁中"), - ORDER_UNDER_LEASE(5, "已退租-待结算"), - ORDER_TERMINATED(6, "已结算-待确认"), - ORDER_FINISHED(7, "已完成"), - ORDER_CANCEL(8, "已取消"); + ORDER_UNDER_LEASE(5, "已退租-待检修"), + ORDER_REPAIRED(10, "已检修-待结算"), + ORDER_TERMINATED(15, "已结算-待确认"), + ORDER_FINISHED(20, "已完成"), + ORDER_CANCEL(99, "已取消"); diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeasePriceRecord.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeasePriceRecord.java index d4d1e2b..9d2ac46 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeasePriceRecord.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeasePriceRecord.java @@ -12,6 +12,9 @@ import java.util.List; @Data public class LeasePriceRecord { + @ApiModelProperty(value = "订单id") + private Integer orderId; + @ApiModelProperty(value = "租赁费用列表") private List rentPriceList; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeaseRecordDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeaseRecordDto.java index 5b0f901..01217a5 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeaseRecordDto.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/LeaseRecordDto.java @@ -23,9 +23,6 @@ public class LeaseRecordDto { @ApiModelProperty(value = "订单编号") private String code; - @ApiModelProperty(value = "装备Id") - private Integer maId; - @ApiModelProperty(value = "装备套数") private Integer maNumber; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/MaLeaseInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/MaLeaseInfo.java index 4d449de..492bcbe 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/MaLeaseInfo.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/domain/MaLeaseInfo.java @@ -101,6 +101,9 @@ public class MaLeaseInfo extends BaseEntity implements Serializable { @ApiModelProperty(value = "接单公司") private String orderCompany; + @ApiModelProperty(value = "接单公司名称") + private String orderCompanyName; + /** * 接单时间 */ diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/LeaseRepairRecordMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/LeaseRepairRecordMapper.java index 40c810a..e417c2e 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/LeaseRepairRecordMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/LeaseRepairRecordMapper.java @@ -34,6 +34,8 @@ public interface LeaseRepairRecordMapper { */ int insert(LeaseRepairRecord leaseRepairRecord); + int deleteLeaseRepairRecord(LeaseRepairRecord leaseRepairRecord); + /** * 查询列表 * @param dto diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/service/impl/LeaseRepairRecordServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/service/impl/LeaseRepairRecordServiceImpl.java index 2af424c..b8566da 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/service/impl/LeaseRepairRecordServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/service/impl/LeaseRepairRecordServiceImpl.java @@ -187,13 +187,23 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService { if (leaseRecordDto == null || leaseRecordDto.getOrderId() == null || leaseRecordDto.getCode() == null) { return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); } - List maIdList = new ArrayList<>(); - if (Objects.isNull(leaseRecordDto.getMaId())) { - List list = orderMapper.selectOrderDetailsByOderId(leaseRecordDto.getOrderId()); - maIdList = list.stream().map(OrderDetailDto::getMaId).collect(Collectors.toList()); - } else { - maIdList = Arrays.asList(leaseRecordDto.getMaId()); + Set maIdSet = new HashSet<>(); + List maIds_repair = new ArrayList<>(); + List maIds_scrap = new ArrayList<>(); + List maIds_loss = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(leaseRecordDto.getRepairRecordList())) { + maIds_repair = leaseRecordDto.getRepairRecordList().stream().map(LeaseRepairRecord::getMaId).collect(Collectors.toList()); } + if (CollectionUtils.isNotEmpty(leaseRecordDto.getScrapRecordList())) { + maIds_scrap = leaseRecordDto.getRepairRecordList().stream().map(LeaseRepairRecord::getMaId).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(leaseRecordDto.getLossRecordList())) { + maIds_loss = leaseRecordDto.getRepairRecordList().stream().map(LeaseRepairRecord::getMaId).collect(Collectors.toList()); + } + maIdSet.addAll(maIds_repair); + maIdSet.addAll(maIds_scrap); + maIdSet.addAll(maIds_loss); + LeaseRepairRecord leaseRepairRecord = createLeaseRepairRecord(leaseRecordDto); // 校验所有记录是否为空 if (isAllRecordListsEmpty(leaseRecordDto)) { @@ -201,7 +211,7 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService { } try { // 处理维修、报废、丢失记录的情况 - return handleAllRecords(leaseRecordDto, maIdList); + return handleAllRecords(leaseRecordDto, new ArrayList<>(maIdSet)); } catch (Exception e) { log.error("新增退租检修异常: ", e.getMessage()); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), e.getMessage()); @@ -265,6 +275,8 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService { result += mapper.updateChangePrice(lossRecord); } } + String userName = SecurityUtils.getLoginUser().getUsername(); + result += orderMapper.updateOrderStatus(leasePriceRecord.getOrderId(), null, String.valueOf(OrderStatusEnum.ORDER_TERMINATED.getStatus()), userName); if (result > 0) { return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()); } @@ -326,14 +338,17 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService { result += insertRepairScrapLossRecords(scrapRecordList, leaseRepairRecord); result += insertRepairScrapLossRecords(lossRecordList, leaseRepairRecord); + // 插入前删掉旧的维修记录 + mapper.deleteLeaseRepairRecord(leaseRepairRecord); + // 执行插入操作 result += mapper.insert(leaseRepairRecord); } - LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord(); - leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId()); - leaseRepairRecord.setOrderStatus(OrderStatusEnum.ORDER_TERMINATED.getStatus()); - leaseRepairRecord.setMaIds(maIdList); - result += orderMapper.updateOrder(leaseRepairRecord); +// LeaseRepairRecord leaseRepairRecord = new LeaseRepairRecord(); +// leaseRepairRecord.setOrderId(leaseRecordDto.getOrderId()); +// leaseRepairRecord.setOrderStatus(OrderStatusEnum.ORDER_REPAIRED.getStatus()); +// leaseRepairRecord.setMaIds(maIdList); +// result += orderMapper.updateOrder(leaseRepairRecord); // 返回结果 return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); @@ -436,6 +451,9 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService { leaseRepairRecord.setLossNum(record.getLossNum()); leaseRepairRecord.setLossPrice(record.getLossPrice()); if (CollectionUtils.isNotEmpty(record.getFileInfoList())) { + for (BmFileInfo bmFileInfo : record.getFileInfoList()) { + bmFileInfoMapper.deleteBmFileInfoByBizInfo(bmFileInfo); + } bmFileInfoMapper.insertBmFileInfos(record.getFileInfoList()); } result++; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java index a63f664..6106fe0 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java @@ -71,7 +71,7 @@ public class OrderDetailDto { @ApiModelProperty(value = "日租金") private BigDecimal dayLeasePrice; - @ApiModelProperty(value = "订单状态(0未下单 1已下单 2待出库 3待收货 4租赁中 5已退租 6已完成 7已取消)") + @ApiModelProperty(value = "订单状态(0未下单 1已下单 2待出库 3待收货 4租赁中 5已退租 10已检修 15已结算 20已完成 99已取消)") private String orderStatus; @ApiModelProperty(value = "创建日期") diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java index 9d0d7c4..a05329e 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java @@ -119,4 +119,7 @@ public class OrderInfoDto { @ApiModelProperty(value = "是否已填写退租检修内容(0 否,1 是)") private Integer isLeaseContent; + @ApiModelProperty(value = "是否部分退租") + private boolean isPartBacked; + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java index 3ae1745..2fd6ca4 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java @@ -1,6 +1,7 @@ package com.bonus.material.order.service.impl; import com.bonus.common.biz.enums.MaStatusEnum; +import com.bonus.common.biz.enums.OrderStatusEnum; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.lease.mapper.LeaseRepairRecordMapper; @@ -114,6 +115,7 @@ public class OrderServiceImpl implements OrderService { } else { dto.setIsLeaseContent(0); } + dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus()))); } return orderInfoDtos; } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/LeaseRepairRecordMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/LeaseRepairRecordMapper.xml index 425adbc..07d59eb 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/LeaseRepairRecordMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/LeaseRepairRecordMapper.xml @@ -49,6 +49,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + delete from lease_repair_record + where + code = #{code} and order_id = #{orderId} and ma_id = #{maId} + + insert into ma_hot_search(lease_id, lease_num, create_time) values(#{id}, 1, now()) diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml index d363253..878d10d 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml @@ -123,6 +123,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" m.lease_end_time as leaseEndTime, m.start_time as startTime, m.end_time as endTime, + m.order_time as orderTime, + su.nick_name as orderUser, + su.phonenumber as orderPhone, + m.order_company as orderCompany, + sd2.dept_name as orderCompanyName, m.person as person, m.person_phone as personPhone, m.description as description, @@ -144,6 +149,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN base_address b2 on m.city_code = b2.code LEFT JOIN ma_hot_search h ON h.lease_id = m.id LEFT JOIN sys_dept sd on m.publish_company = sd.dept_id + LEFT JOIN sys_dept sd2 on m.order_company = sd2.dept_id + LEFT JOIN sys_user su on m.order_user = su.user_id WHERE 1 = 1 and m.id = #{id}