|
|
|
@ -2,10 +2,16 @@ package cc.yunxi.controller;
|
|
|
|
|
|
|
|
|
|
import cc.yunxi.common.domain.CommonResult;
|
|
|
|
|
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.Recycler;
|
|
|
|
|
import cc.yunxi.domain.query.RecycleCleanOrderQuery;
|
|
|
|
|
import cc.yunxi.domain.vo.recycleorder.RecycleCleanOrderVO;
|
|
|
|
|
import cc.yunxi.service.IPriceProductService;
|
|
|
|
|
import cc.yunxi.service.IRecycleCleanOrderService;
|
|
|
|
|
import cc.yunxi.service.IRecyclerService;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
@ -14,6 +20,8 @@ import org.springframework.validation.annotation.Validated;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Api(tags = "清运订单接口")
|
|
|
|
|
@RestController
|
|
|
|
@ -24,11 +32,23 @@ public class CleanOrderController {
|
|
|
|
|
@Resource
|
|
|
|
|
private IRecycleCleanOrderService iRecycleCleanOrderService;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private IRecyclerService recyclerService;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private IPriceProductService priceProductService;
|
|
|
|
|
|
|
|
|
|
@ApiOperation("分页查询清运订单")
|
|
|
|
|
@PostMapping("/page")
|
|
|
|
|
private CommonResult<PageDTO<? extends RecycleCleanOrderVO>> queryOrderByPage(@RequestBody @Validated RecycleCleanOrderQuery 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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -36,6 +56,95 @@ public class CleanOrderController {
|
|
|
|
|
@GetMapping("/{id}")
|
|
|
|
|
private CommonResult<RecycleCleanOrderVO> detailById(@PathVariable String 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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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()));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|