feat(order):投运、清运列表接口数据完善;

master
jiyufei 4 months ago
parent bb0d13c92b
commit d71a4428f2

@ -2,10 +2,16 @@ package cc.yunxi.controller;
import cc.yunxi.common.domain.CommonResult; import cc.yunxi.common.domain.CommonResult;
import cc.yunxi.common.domain.PageDTO; import cc.yunxi.common.domain.PageDTO;
import cc.yunxi.common.utils.BeanUtils;
import cc.yunxi.common.utils.CollUtils;
import cc.yunxi.domain.po.Product;
import cc.yunxi.domain.po.RecycleCleanOrder; import cc.yunxi.domain.po.RecycleCleanOrder;
import cc.yunxi.domain.po.Recycler;
import cc.yunxi.domain.query.RecycleCleanOrderQuery; import cc.yunxi.domain.query.RecycleCleanOrderQuery;
import cc.yunxi.domain.vo.recycleorder.RecycleCleanOrderVO; import cc.yunxi.domain.vo.recycleorder.RecycleCleanOrderVO;
import cc.yunxi.service.IPriceProductService;
import cc.yunxi.service.IRecycleCleanOrderService; import cc.yunxi.service.IRecycleCleanOrderService;
import cc.yunxi.service.IRecyclerService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -14,6 +20,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@Api(tags = "清运订单接口") @Api(tags = "清运订单接口")
@RestController @RestController
@ -24,11 +32,23 @@ public class CleanOrderController {
@Resource @Resource
private IRecycleCleanOrderService iRecycleCleanOrderService; private IRecycleCleanOrderService iRecycleCleanOrderService;
@Resource
private IRecyclerService recyclerService;
@Resource
private IPriceProductService priceProductService;
@ApiOperation("分页查询清运订单") @ApiOperation("分页查询清运订单")
@PostMapping("/page") @PostMapping("/page")
private CommonResult<PageDTO<? extends RecycleCleanOrderVO>> queryOrderByPage(@RequestBody @Validated RecycleCleanOrderQuery cleanOrderQuery) { private CommonResult<PageDTO<? extends RecycleCleanOrderVO>> queryOrderByPage(@RequestBody @Validated RecycleCleanOrderQuery cleanOrderQuery) {
Page<RecycleCleanOrder> result = iRecycleCleanOrderService.queryOrderByPage(cleanOrderQuery); Page<RecycleCleanOrder> result = iRecycleCleanOrderService.queryOrderByPage(cleanOrderQuery);
PageDTO<RecycleCleanOrderVO> orderVOPageDTO = PageDTO.of(result, RecycleCleanOrderVO.class); //组装数据
List<RecycleCleanOrder> records = result.getRecords();
List<RecycleCleanOrderVO> cleanOrderVOList = new ArrayList<>();
if (CollUtils.isNotEmpty(records)) {
cleanOrderVOList = this.buildData(records);
}
PageDTO<RecycleCleanOrderVO> orderVOPageDTO = PageDTO.of(result, cleanOrderVOList);
return CommonResult.success(orderVOPageDTO); return CommonResult.success(orderVOPageDTO);
} }
@ -36,6 +56,95 @@ public class CleanOrderController {
@GetMapping("/{id}") @GetMapping("/{id}")
private CommonResult<RecycleCleanOrderVO> detailById(@PathVariable String id) { private CommonResult<RecycleCleanOrderVO> detailById(@PathVariable String id) {
RecycleCleanOrderVO recycleCleanOrderVO = iRecycleCleanOrderService.detailById(id); RecycleCleanOrderVO recycleCleanOrderVO = iRecycleCleanOrderService.detailById(id);
List<RecycleCleanOrderVO> recycleCleanOrderVOS = new ArrayList<>();
if (Objects.nonNull(recycleCleanOrderVO)) {
recycleCleanOrderVOS.add(recycleCleanOrderVO);
this.handleProduct(recycleCleanOrderVOS);
this.handleStatus(recycleCleanOrderVOS);
this.handleCleaner(recycleCleanOrderVOS);
return CommonResult.success(recycleCleanOrderVOS.get(0));
}
return CommonResult.success(recycleCleanOrderVO); return CommonResult.success(recycleCleanOrderVO);
} }
private List<RecycleCleanOrderVO> buildData(List<RecycleCleanOrder> records) {
List<RecycleCleanOrderVO> cleanOrderVOList = BeanUtils.copyList(records, RecycleCleanOrderVO.class);
this.handleProduct(cleanOrderVOList);
this.handleStatus(cleanOrderVOList);
this.handleCleaner(cleanOrderVOList);
return cleanOrderVOList;
}
/**
*
*
* @param cleanOrderVOList
*/
private void handleProduct(List<RecycleCleanOrderVO> cleanOrderVOList) {
Set<String> productCode = cleanOrderVOList.stream().map(RecycleCleanOrderVO::getProductCode).collect(Collectors.toSet());
Set<String> productSubCode = cleanOrderVOList.stream().map(RecycleCleanOrderVO::getProductSubCode).collect(Collectors.toSet());
if (CollUtils.isNotEmpty(productSubCode)) {
productCode.addAll(productSubCode);
}
List<Product> productList = priceProductService.getProductListByIds(productCode);
if (CollUtils.isNotEmpty(productList)) {
Map<String, String> collect = productList.stream().collect(Collectors.toMap(Product::getId, Product::getName));
cleanOrderVOList.forEach(obj -> {
if (collect.containsKey(obj.getProductCode())) {
obj.setProductCodeDesc(collect.get(obj.getProductCode()));
}
if (collect.containsKey(obj.getProductSubCode())) {
obj.setProductSubCodeDesc(collect.get(obj.getProductSubCode()));
}
});
}
}
/**
*
*
* @param cleanOrderVOList
*/
private void handleStatus(List<RecycleCleanOrderVO> cleanOrderVOList) {
// 审核状态 0未审核 1通过 2调整通过 3拒绝
cleanOrderVOList.forEach(obj -> {
String result;
switch (obj.getAdjustStatus()) {
case 0:
result = "未审核";
break;
case 1:
result = "通过";
break;
case 2:
result = "调整通过";
break;
case 3:
result = "拒绝";
break;
default:
result = "状态未知";
break;
}
obj.setAdjustStatusDesc(result);
});
}
/**
*
*
* @param cleanOrderVOList
*/
private void handleCleaner(List<RecycleCleanOrderVO> cleanOrderVOList) {
Set<String> ids = cleanOrderVOList.stream().map(RecycleCleanOrderVO::getCleanUserId).collect(Collectors.toSet());
List<Recycler> recyclerByIds = recyclerService.getRecyclerByIds(ids);
if (CollUtils.isNotEmpty(recyclerByIds)) {
Map<String, String> collect = recyclerByIds.stream().collect(Collectors.toMap(Recycler::getId, Recycler::getStaffsName));
cleanOrderVOList.forEach(obj -> {
if (collect.containsKey(obj.getCleanUserId())) {
obj.setCleanUserName(collect.get(obj.getCleanUserId()));
}
});
}
}
} }

@ -3,9 +3,16 @@ package cc.yunxi.controller;
import cc.yunxi.common.domain.CommonResult; import cc.yunxi.common.domain.CommonResult;
import cc.yunxi.common.domain.PageDTO; import cc.yunxi.common.domain.PageDTO;
import cc.yunxi.common.utils.BeanUtils;
import cc.yunxi.common.utils.CollUtils;
import cc.yunxi.domain.po.Client;
import cc.yunxi.domain.po.Product;
import cc.yunxi.domain.po.RecycleDeliveryOrder; import cc.yunxi.domain.po.RecycleDeliveryOrder;
import cc.yunxi.domain.query.DeliveryOrderQuery; import cc.yunxi.domain.query.DeliveryOrderQuery;
import cc.yunxi.domain.vo.recycleorder.RecycleCleanOrderVO;
import cc.yunxi.domain.vo.recycleorder.RecycleDeliveryOrderVO; import cc.yunxi.domain.vo.recycleorder.RecycleDeliveryOrderVO;
import cc.yunxi.service.IClientService;
import cc.yunxi.service.IPriceProductService;
import cc.yunxi.service.IRecycleDeliveryOrderService; import cc.yunxi.service.IRecycleDeliveryOrderService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -15,6 +22,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@Api(tags = "投运订单接口") @Api(tags = "投运订单接口")
@RestController @RestController
@ -25,11 +34,23 @@ public class DeliveryOrderController {
@Resource @Resource
private IRecycleDeliveryOrderService iRecycleDeliveryOrderService; private IRecycleDeliveryOrderService iRecycleDeliveryOrderService;
@Resource
private IPriceProductService priceProductService;
@Resource
private IClientService iClientService;
@ApiOperation("分页查询投运订单") @ApiOperation("分页查询投运订单")
@PostMapping("/page") @PostMapping("/page")
private CommonResult<PageDTO<? extends RecycleDeliveryOrderVO>> queryOrderByPage(@RequestBody @Validated DeliveryOrderQuery deliveryOrderQuery) { private CommonResult<PageDTO<? extends RecycleDeliveryOrderVO>> queryOrderByPage(@RequestBody @Validated DeliveryOrderQuery deliveryOrderQuery) {
Page<RecycleDeliveryOrder> result = iRecycleDeliveryOrderService.queryOrderByPage(deliveryOrderQuery); Page<RecycleDeliveryOrder> result = iRecycleDeliveryOrderService.queryOrderByPage(deliveryOrderQuery);
PageDTO<RecycleDeliveryOrderVO> orderVOPageDTO = PageDTO.of(result, RecycleDeliveryOrderVO.class); //组装数据
List<RecycleDeliveryOrder> records = result.getRecords();
List<RecycleDeliveryOrderVO> deliveryOrderVOS = new ArrayList<>();
if (CollUtils.isNotEmpty(records)) {
deliveryOrderVOS = this.buildData(records);
}
PageDTO<RecycleDeliveryOrderVO> orderVOPageDTO = PageDTO.of(result, deliveryOrderVOS);
return CommonResult.success(orderVOPageDTO); return CommonResult.success(orderVOPageDTO);
} }
@ -37,7 +58,80 @@ public class DeliveryOrderController {
@GetMapping("/{id}") @GetMapping("/{id}")
private CommonResult<RecycleDeliveryOrderVO> detailById(@PathVariable String id) { private CommonResult<RecycleDeliveryOrderVO> detailById(@PathVariable String id) {
RecycleDeliveryOrderVO recycleDeliveryOrderVO = iRecycleDeliveryOrderService.detailById(id); RecycleDeliveryOrderVO recycleDeliveryOrderVO = iRecycleDeliveryOrderService.detailById(id);
List<RecycleDeliveryOrderVO> deliveryOrderVOS = new ArrayList<>();
if (Objects.nonNull(recycleDeliveryOrderVO)) {
deliveryOrderVOS.add(recycleDeliveryOrderVO);
this.handleProduct(deliveryOrderVOS);
this.handleStatus(deliveryOrderVOS);
this.handleDeliver(deliveryOrderVOS);
return CommonResult.success(deliveryOrderVOS.get(0));
}
return CommonResult.success(recycleDeliveryOrderVO); return CommonResult.success(recycleDeliveryOrderVO);
} }
private List<RecycleDeliveryOrderVO> buildData(List<RecycleDeliveryOrder> records) {
List<RecycleDeliveryOrderVO> deliveryOrderVOS = BeanUtils.copyList(records, RecycleDeliveryOrderVO.class);
this.handleProduct(deliveryOrderVOS);
this.handleStatus(deliveryOrderVOS);
this.handleDeliver(deliveryOrderVOS);
return deliveryOrderVOS;
}
private void handleDeliver(List<RecycleDeliveryOrderVO> deliveryOrderVOS) {
Set<String> ids = deliveryOrderVOS.stream().map(RecycleDeliveryOrderVO::getDeliverId).collect(Collectors.toSet());
List<Client> clientByIds = iClientService.getClientByIds(ids);
if (CollUtils.isNotEmpty(clientByIds)) {
Map<String, String> collect = clientByIds.stream().collect(Collectors.toMap(Client::getId, Client::getNickName));
deliveryOrderVOS.forEach(obj -> {
if (collect.containsKey(obj.getDeliverId())) {
obj.setDeliverName(collect.get(obj.getDeliverId()));
}
});
}
}
private void handleStatus(List<RecycleDeliveryOrderVO> deliveryOrderVOS) {
// 审核状态 0未审核 1通过 2调整通过 3拒绝
deliveryOrderVOS.forEach(obj -> {
String result;
switch (obj.getAdjustStatus()) {
case 0:
result = "未审核";
break;
case 1:
result = "通过";
break;
case 2:
result = "调整通过";
break;
case 3:
result = "拒绝";
break;
default:
result = "状态未知";
break;
}
obj.setAdjustStatusDesc(result);
});
}
private void handleProduct(List<RecycleDeliveryOrderVO> deliveryOrderVOS) {
Set<String> productCode = deliveryOrderVOS.stream().map(RecycleDeliveryOrderVO::getProductCode).collect(Collectors.toSet());
Set<String> productSubCode = deliveryOrderVOS.stream().map(RecycleDeliveryOrderVO::getProductSubCode).collect(Collectors.toSet());
if (CollUtils.isNotEmpty(productSubCode)) {
productCode.addAll(productSubCode);
}
List<Product> productList = priceProductService.getProductListByIds(productCode);
if (CollUtils.isNotEmpty(productList)) {
Map<String, String> collect = productList.stream().collect(Collectors.toMap(Product::getId, Product::getName));
deliveryOrderVOS.forEach(obj -> {
if (collect.containsKey(obj.getProductCode())) {
obj.setProductCodeDesc(collect.get(obj.getProductCode()));
}
if (collect.containsKey(obj.getProductSubCode())) {
obj.setProductSubCodeDesc(collect.get(obj.getProductSubCode()));
}
});
}
}
} }

@ -82,7 +82,7 @@ public class RecycleCleanOrderVO implements Serializable {
@ApiModelProperty("投递员id") @ApiModelProperty("投递员id")
private String deliverId; private String cleanUserId;
@ApiModelProperty("投递员手机") @ApiModelProperty("投递员手机")
@ -125,4 +125,16 @@ public class RecycleCleanOrderVO implements Serializable {
@ApiModelProperty("上报时间") @ApiModelProperty("上报时间")
private Date reportTime; private Date reportTime;
@ApiModelProperty("回收大类")
private String productCodeDesc;
@ApiModelProperty("回收子类")
private String productSubCodeDesc;
@ApiModelProperty("审核状态说明")
private String adjustStatusDesc;
@ApiModelProperty("清运员名称")
private String cleanUserName;
} }

@ -108,4 +108,16 @@ public class RecycleDeliveryOrderVO implements Serializable {
@ApiModelProperty("上报时间") @ApiModelProperty("上报时间")
private Date reportTime; private Date reportTime;
@ApiModelProperty("回收大类")
private String productCodeDesc;
@ApiModelProperty("回收子类")
private String productSubCodeDesc;
@ApiModelProperty("审核状态说明")
private String adjustStatusDesc;
@ApiModelProperty("投递员名称")
private String deliverName;
} }

@ -14,6 +14,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import javax.validation.Valid; import javax.validation.Valid;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/** /**
* <p> * <p>
@ -27,6 +30,7 @@ public interface IClientService extends IService<Client> {
/** /**
* *
*
* @param clientQuery * @param clientQuery
* @return Page<Client> * @return Page<Client>
*/ */
@ -34,6 +38,7 @@ public interface IClientService extends IService<Client> {
/** /**
* id * id
*
* @param id * @param id
* @return Client * @return Client
*/ */
@ -42,6 +47,7 @@ public interface IClientService extends IService<Client> {
/** /**
* openid * openid
*
* @param openid * @param openid
* @return Client * @return Client
*/ */
@ -49,6 +55,7 @@ public interface IClientService extends IService<Client> {
/** /**
* idopenId * idopenId
*
* @param keyId * @param keyId
* @return Client * @return Client
*/ */
@ -56,14 +63,17 @@ public interface IClientService extends IService<Client> {
/** /**
* *
*
* @param mobile * @param mobile
* @return Client * @return Client
*/ */
Client getClientByMobile(String mobile); Client getClientByMobile(String mobile);
Client getLastestClientByPhone(String phone); Client getLastestClientByPhone(String phone);
/** /**
* *
*
* @param phoneNumber * @param phoneNumber
* @param openId * @param openId
* @return Client * @return Client
@ -72,14 +82,15 @@ public interface IClientService extends IService<Client> {
/** /**
* *
*
* @param phoneNumber * @param phoneNumber
* @param openId
* @return Client * @return Client
*/ */
String isClientUnit(String phoneNumber); String isClientUnit(String phoneNumber);
/** /**
* *
*
* @param clientUpdateVO * @param clientUpdateVO
*/ */
void updateClient(@Valid ClientUpdateVO clientUpdateVO); void updateClient(@Valid ClientUpdateVO clientUpdateVO);
@ -87,6 +98,7 @@ public interface IClientService extends IService<Client> {
/** /**
* *
*
* @param clientAccountQuery * @param clientAccountQuery
* @return Page<ClientAccountDetail> * @return Page<ClientAccountDetail>
*/ */
@ -95,6 +107,7 @@ public interface IClientService extends IService<Client> {
/** /**
* *
*
* @param clientId * @param clientId
* @param amount * @param amount
* @param orderNo * @param orderNo
@ -105,6 +118,7 @@ public interface IClientService extends IService<Client> {
/** /**
* *
*
* @param openId * @param openId
* @param amount * @param amount
*/ */
@ -113,6 +127,7 @@ public interface IClientService extends IService<Client> {
/** /**
* 退 * 退
*
* @param clientId * @param clientId
* @param amount * @param amount
* @param orderNo * @param orderNo
@ -120,4 +135,12 @@ public interface IClientService extends IService<Client> {
*/ */
void reduceBalance(String clientId, BigDecimal amount, String orderNo, String enterpriseId); void reduceBalance(String clientId, BigDecimal amount, String orderNo, String enterpriseId);
/**
* id
*
* @param deliverIds id
* @return list
*/
List<Client> getClientByIds(Collection<String> deliverIds);
} }

@ -52,7 +52,9 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List;
/** /**
* <p> * <p>
@ -199,6 +201,13 @@ public class ClientServiceImpl extends ServiceImpl<ClientMapper, Client> impleme
this.changeBalance(clientId, amount, orderNo, enterpriseId, BalanceChangeTypeEnum.REFUND); this.changeBalance(clientId, amount, orderNo, enterpriseId, BalanceChangeTypeEnum.REFUND);
} }
@Override
public List<Client> getClientByIds(Collection<String> deliverIds) {
LambdaQueryWrapper<Client> wrapper = new LambdaQueryWrapper<>(Client.class)
.in(Client::getId, deliverIds);
return this.list(wrapper);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)

Loading…
Cancel
Save