Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
b403c43c8b
|
|
@ -34,6 +34,8 @@ public interface LeaseRepairRecordMapper {
|
||||||
*/
|
*/
|
||||||
int insert(LeaseRepairRecord leaseRepairRecord);
|
int insert(LeaseRepairRecord leaseRepairRecord);
|
||||||
|
|
||||||
|
int getCountByOrderId(String orderId);
|
||||||
|
|
||||||
int deleteLeaseRepairRecord(LeaseRepairRecord leaseRepairRecord);
|
int deleteLeaseRepairRecord(LeaseRepairRecord leaseRepairRecord);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -208,9 +208,9 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService {
|
||||||
|
|
||||||
LeaseRepairRecord leaseRepairRecord = createLeaseRepairRecord(leaseRecordDto);
|
LeaseRepairRecord leaseRepairRecord = createLeaseRepairRecord(leaseRecordDto);
|
||||||
// 校验所有记录是否为空
|
// 校验所有记录是否为空
|
||||||
if (isAllRecordListsEmpty(leaseRecordDto)) {
|
// if (isAllRecordListsEmpty(leaseRecordDto)) {
|
||||||
return insertRecord(leaseRepairRecord);
|
// return insertRecord(leaseRepairRecord);
|
||||||
}
|
// }
|
||||||
try {
|
try {
|
||||||
// 处理维修、报废、丢失记录的情况
|
// 处理维修、报废、丢失记录的情况
|
||||||
return handleAllRecords(leaseRecordDto, new ArrayList<>(maIdSet));
|
return handleAllRecords(leaseRecordDto, new ArrayList<>(maIdSet));
|
||||||
|
|
@ -298,7 +298,13 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService {
|
||||||
}
|
}
|
||||||
leaseRepairRecord.setPriceConfirmUser(SecurityUtils.getUserId());
|
leaseRepairRecord.setPriceConfirmUser(SecurityUtils.getUserId());
|
||||||
//将费用确认人信息存入
|
//将费用确认人信息存入
|
||||||
int result = mapper.update(leaseRepairRecord);
|
int count = mapper.getCountByOrderId(leaseRepairRecord.getOrderId());
|
||||||
|
int result = 0;
|
||||||
|
if (count > 0) {
|
||||||
|
result = mapper.update(leaseRepairRecord);
|
||||||
|
} else {
|
||||||
|
result++; //没找到需要更新的记录,默认为是已经处理过了
|
||||||
|
}
|
||||||
//修改订单状态为已完成
|
//修改订单状态为已完成
|
||||||
if (result > 0) {
|
if (result > 0) {
|
||||||
leaseRepairRecord.setOrderStatus(OrderStatusEnum.ORDER_FINISHED.getStatus());
|
leaseRepairRecord.setOrderStatus(OrderStatusEnum.ORDER_FINISHED.getStatus());
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.text.StrBuilder;
|
import cn.hutool.core.text.StrBuilder;
|
||||||
import com.bonus.common.biz.enums.MaStatusEnum;
|
import com.bonus.common.biz.enums.MaStatusEnum;
|
||||||
import com.bonus.common.biz.enums.OrderStatusEnum;
|
import com.bonus.common.biz.enums.OrderStatusEnum;
|
||||||
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.web.controller.BaseController;
|
import com.bonus.common.core.web.controller.BaseController;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.core.web.page.TableDataInfo;
|
import com.bonus.common.core.web.page.TableDataInfo;
|
||||||
|
|
@ -12,6 +13,8 @@ import com.bonus.material.book.domain.BookCarInfoDto;
|
||||||
import com.bonus.material.contract.domain.BmContract;
|
import com.bonus.material.contract.domain.BmContract;
|
||||||
import com.bonus.material.contract.service.BmContractService;
|
import com.bonus.material.contract.service.BmContractService;
|
||||||
import com.bonus.material.device.domain.vo.DevInfoVo;
|
import com.bonus.material.device.domain.vo.DevInfoVo;
|
||||||
|
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||||
|
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
||||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
||||||
import com.bonus.material.order.domain.OrderDetailDto;
|
import com.bonus.material.order.domain.OrderDetailDto;
|
||||||
import com.bonus.material.order.domain.OrderInfoDto;
|
import com.bonus.material.order.domain.OrderInfoDto;
|
||||||
|
|
@ -29,6 +32,7 @@ import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.mock.web.MockMultipartFile;
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
@ -64,6 +68,9 @@ public class OrderController extends BaseController {
|
||||||
@Resource
|
@Resource
|
||||||
private OrderMapper orderMapper;
|
private OrderMapper orderMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LeaseRepairRecordMapper leaseRepairRecordMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BmContractService bmContractService;
|
private BmContractService bmContractService;
|
||||||
|
|
||||||
|
|
@ -184,6 +191,9 @@ public class OrderController extends BaseController {
|
||||||
bmContract.setStatus(1);
|
bmContract.setStatus(1);
|
||||||
bmContract.setOwnerCom(orderInfoDto.getCompanyId().longValue());
|
bmContract.setOwnerCom(orderInfoDto.getCompanyId().longValue());
|
||||||
List<BmContract> list = bmContractService.getContractUrl(bmContract);
|
List<BmContract> list = bmContractService.getContractUrl(bmContract);
|
||||||
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
|
return AjaxResult.error("请先上传合同");
|
||||||
|
}
|
||||||
String wordUrl = list.get(0).getBmFileInfoList().get(0).getFileUrl();
|
String wordUrl = list.get(0).getBmFileInfoList().get(0).getFileUrl();
|
||||||
InputStream inputStream = new URL(wordUrl).openStream();
|
InputStream inputStream = new URL(wordUrl).openStream();
|
||||||
|
|
||||||
|
|
@ -203,7 +213,7 @@ public class OrderController extends BaseController {
|
||||||
//订单金额
|
//订单金额
|
||||||
replacements.put("${cost}", orderInfoDto.getCost().toString());
|
replacements.put("${cost}", orderInfoDto.getCost().toString());
|
||||||
//订单详情
|
//订单详情
|
||||||
StrBuilder orderDetail = new StrBuilder();
|
StringBuilder orderDetail = new StringBuilder();
|
||||||
for (OrderDetailDto orderDetailDto : orderDetailsByOrderId) {
|
for (OrderDetailDto orderDetailDto : orderDetailsByOrderId) {
|
||||||
Date rentBeginTime = inputFormat.parse(orderDetailDto.getRentBeginTime().toString());
|
Date rentBeginTime = inputFormat.parse(orderDetailDto.getRentBeginTime().toString());
|
||||||
String beginTime = outputFormat.format(rentBeginTime);
|
String beginTime = outputFormat.format(rentBeginTime);
|
||||||
|
|
@ -252,6 +262,9 @@ public class OrderController extends BaseController {
|
||||||
bmContract.setStatus(1);
|
bmContract.setStatus(1);
|
||||||
bmContract.setOwnerCom(orderInfoDto.getCompanyId().longValue());
|
bmContract.setOwnerCom(orderInfoDto.getCompanyId().longValue());
|
||||||
List<BmContract> list = bmContractService.getContractUrl(bmContract);
|
List<BmContract> list = bmContractService.getContractUrl(bmContract);
|
||||||
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
|
return AjaxResult.error("请先上传合同");
|
||||||
|
}
|
||||||
String wordUrl = list.get(0).getBmFileInfoList().get(0).getFileUrl();
|
String wordUrl = list.get(0).getBmFileInfoList().get(0).getFileUrl();
|
||||||
InputStream inputStream = new URL(wordUrl).openStream();
|
InputStream inputStream = new URL(wordUrl).openStream();
|
||||||
XWPFDocument document = new XWPFDocument(inputStream);
|
XWPFDocument document = new XWPFDocument(inputStream);
|
||||||
|
|
@ -265,7 +278,7 @@ public class OrderController extends BaseController {
|
||||||
//订单金额
|
//订单金额
|
||||||
replacements.put("${cost}", orderInfoDto.getCost().toString());
|
replacements.put("${cost}", orderInfoDto.getCost().toString());
|
||||||
//订单详情
|
//订单详情
|
||||||
StrBuilder orderDetail = new StrBuilder();
|
StringBuilder orderDetail = new StringBuilder();
|
||||||
List<OrderDetailDto> detailsList = orderInfoDto.getDetailsList();
|
List<OrderDetailDto> detailsList = orderInfoDto.getDetailsList();
|
||||||
for (OrderDetailDto orderDetailDto : detailsList) {
|
for (OrderDetailDto orderDetailDto : detailsList) {
|
||||||
Date rentBeginTime = inputFormat.parse(orderDetailDto.getRentBeginTime().toString());
|
Date rentBeginTime = inputFormat.parse(orderDetailDto.getRentBeginTime().toString());
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ public class OrderDetailDto {
|
||||||
@ApiModelProperty(value = "订单id")
|
@ApiModelProperty(value = "订单id")
|
||||||
private Integer orderId;
|
private Integer orderId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "订单code")
|
||||||
|
private String orderCode;
|
||||||
|
|
||||||
@ApiModelProperty(value = "设备id")
|
@ApiModelProperty(value = "设备id")
|
||||||
private Integer maId;
|
private Integer maId;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -131,4 +131,10 @@ public class OrderInfoDto {
|
||||||
|
|
||||||
private Integer companyId;
|
private Integer companyId;
|
||||||
|
|
||||||
|
private BigDecimal totalRepairScrapLossPrice;
|
||||||
|
|
||||||
|
private BigDecimal totalRentalPrice;
|
||||||
|
|
||||||
|
private BigDecimal totalRealPrice;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,12 @@ package com.bonus.material.order.service.impl;
|
||||||
|
|
||||||
import com.bonus.common.biz.enums.MaStatusEnum;
|
import com.bonus.common.biz.enums.MaStatusEnum;
|
||||||
import com.bonus.common.biz.enums.OrderStatusEnum;
|
import com.bonus.common.biz.enums.OrderStatusEnum;
|
||||||
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
import com.bonus.material.device.domain.DevInfo;
|
import com.bonus.material.device.domain.DevInfo;
|
||||||
|
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.mapper.LeaseRepairRecordMapper;
|
||||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
||||||
import com.bonus.material.order.domain.OrderDetailDto;
|
import com.bonus.material.order.domain.OrderDetailDto;
|
||||||
|
|
@ -16,10 +19,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Optional;
|
import java.util.*;
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:liang.chao
|
* @Author:liang.chao
|
||||||
|
|
@ -33,7 +35,9 @@ public class OrderServiceImpl implements OrderService {
|
||||||
private OrderMapper orderMapper;
|
private OrderMapper orderMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private LeaseRepairRecordMapper mapper;
|
private LeaseRepairRecordMapper leaseRepairRecordMapper;
|
||||||
|
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -102,6 +106,16 @@ public class OrderServiceImpl implements OrderService {
|
||||||
OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id);
|
OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id);
|
||||||
list.add(orderDetailDto);
|
list.add(orderDetailDto);
|
||||||
}
|
}
|
||||||
|
BigDecimal totalRentalPrice = BigDecimal.ZERO;
|
||||||
|
for (OrderDetailDto orderDetailDto : list) {
|
||||||
|
if (Objects.nonNull(orderDetailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(orderDetailDto.getOrderStatus())) {
|
||||||
|
Date preOutBoundTime = sdf.parse(orderDetailDto.getPreOutboundTime());
|
||||||
|
Date rentOverTime = sdf.parse(orderDetailDto.getRentOverTime());
|
||||||
|
long days = DateUtils.daysBetween(preOutBoundTime, rentOverTime) + 1;
|
||||||
|
totalRentalPrice = totalRentalPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(days)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dto.setTotalRentalPrice(totalRentalPrice);
|
||||||
dto.setDetailsList(list);
|
dto.setDetailsList(list);
|
||||||
Optional<OrderDetailDto> minOrderStatus = list.stream()
|
Optional<OrderDetailDto> minOrderStatus = list.stream()
|
||||||
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
|
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
|
||||||
|
|
@ -109,13 +123,39 @@ public class OrderServiceImpl implements OrderService {
|
||||||
dto.setOrderStatus(minOrderStatus.get().getOrderStatus());
|
dto.setOrderStatus(minOrderStatus.get().getOrderStatus());
|
||||||
}
|
}
|
||||||
//根据订单id去lease_repair_record表中查询是否已填写退租检修信息
|
//根据订单id去lease_repair_record表中查询是否已填写退租检修信息
|
||||||
int count = mapper.selectLeaseContent(String.valueOf(dto.getOrderId()));
|
int count = leaseRepairRecordMapper.selectLeaseContent(String.valueOf(dto.getOrderId()));
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
dto.setIsLeaseContent(1);
|
dto.setIsLeaseContent(1);
|
||||||
} else {
|
} else {
|
||||||
dto.setIsLeaseContent(0);
|
dto.setIsLeaseContent(0);
|
||||||
}
|
}
|
||||||
dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus())));
|
dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus())));
|
||||||
|
//TODO计算总费用
|
||||||
|
LeaseRepair leaseRepair = new LeaseRepair();
|
||||||
|
leaseRepair.setOrderId(String.valueOf(dto.getOrderId()));
|
||||||
|
List<LeaseRepairRecord> leaseRepairRecords = leaseRepairRecordMapper.getLeaseRepairRecordList(leaseRepair);
|
||||||
|
BigDecimal totalRepairScrapLossPrice = BigDecimal.ZERO;
|
||||||
|
if (!CollectionUtils.isEmpty(leaseRepairRecords)) {
|
||||||
|
for (LeaseRepairRecord leaseRepairRecord : leaseRepairRecords) {
|
||||||
|
if (leaseRepairRecord.getRepairChangePrice()==null) {
|
||||||
|
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getRepairPrice());
|
||||||
|
} else {
|
||||||
|
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairChangePrice());
|
||||||
|
}
|
||||||
|
if (leaseRepairRecord.getScrapChangePrice()==null) {
|
||||||
|
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getScrapPrice());
|
||||||
|
} else {
|
||||||
|
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapChangePrice());
|
||||||
|
}
|
||||||
|
if (leaseRepairRecord.getLossChangePrice()==null) {
|
||||||
|
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getLossPrice());
|
||||||
|
} else {
|
||||||
|
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossChangePrice());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
|
||||||
|
}
|
||||||
|
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice));
|
||||||
}
|
}
|
||||||
return orderInfoDtos;
|
return orderInfoDtos;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -490,4 +490,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
WHERE
|
WHERE
|
||||||
lr.order_id = #{orderId}
|
lr.order_id = #{orderId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getCountByOrderId" resultType="Integer">
|
||||||
|
select count(1) from lease_repair_record
|
||||||
|
where order_id = #{orderId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -98,6 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
moi.code AS code,
|
moi.code AS code,
|
||||||
GROUP_CONCAT(hh.id) AS ids,
|
GROUP_CONCAT(hh.id) AS ids,
|
||||||
moi.order_time,
|
moi.order_time,
|
||||||
|
mdi.own_co as sellerCompany,
|
||||||
up.dept_name AS czcompanyName,
|
up.dept_name AS czcompanyName,
|
||||||
mdi.person_phone AS personPhone,
|
mdi.person_phone AS personPhone,
|
||||||
su.phonenumber AS phoneNumber,
|
su.phonenumber AS phoneNumber,
|
||||||
|
|
@ -229,6 +230,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<select id="selectOrderDetailsByOderId" resultType="com.bonus.material.order.domain.OrderDetailDto">
|
<select id="selectOrderDetailsByOderId" resultType="com.bonus.material.order.domain.OrderDetailDto">
|
||||||
SELECT
|
SELECT
|
||||||
mdi.ma_id as maId,
|
mdi.ma_id as maId,
|
||||||
|
mdi.code as code,
|
||||||
mdi.type_id as typeId,
|
mdi.type_id as typeId,
|
||||||
mdi.device_name,
|
mdi.device_name,
|
||||||
mt.lease_price as dayLeasePrice,
|
mt.lease_price as dayLeasePrice,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue