提交 bb25824e authored 作者: huyufan's avatar huyufan

货单编辑接口

上级 163100c5
...@@ -27,5 +27,5 @@ public class UpdateEditOrderGoodsParam { ...@@ -27,5 +27,5 @@ public class UpdateEditOrderGoodsParam {
@Valid @Valid
@Converted(isDynamic = true) @Converted(isDynamic = true)
private List<OrderGoodsEditParams> orderGoodsChildParams; private OrderGoodsEditParams orderGoodsParams;
} }
...@@ -38,5 +38,5 @@ public class OrderGoodsEditVO { ...@@ -38,5 +38,5 @@ public class OrderGoodsEditVO {
@ApiModelProperty("1:可以全部编辑 0:不能全部编辑") @ApiModelProperty("1:可以全部编辑 0:不能全部编辑")
private boolean editAllFlag; private boolean editAllFlag;
private List<OrderGoodsVO> orderGoodsVOList; private OrderGoodsVO orderGoodsVO;
} }
...@@ -130,8 +130,8 @@ public class GoodsOrderController { ...@@ -130,8 +130,8 @@ public class GoodsOrderController {
@ApiOperation(value = "货单编辑查询", notes = "<br>By:胡宇帆") @ApiOperation(value = "货单编辑查询", notes = "<br>By:胡宇帆")
@GetMapping("/findOrderGoodsByBatchNumber") @GetMapping("/findOrderGoodsByBatchNumber")
public Result<OrderGoodsEditVO> findOrderGoodsByBatchNumber(@RequestParam(value = "batchNumber") Long batchNumber){ public Result<OrderGoodsEditVO> findOrderGoodsByBatchNumber(@RequestParam(value = "id") Integer id){
OrderGoodsEditVO orderGoodsVO = orderGoodsService.findOrderGoodsByBatchNumber(batchNumber); OrderGoodsEditVO orderGoodsVO = orderGoodsService.findOrderGoodsById(id);
return Result.ok(orderGoodsVO); return Result.ok(orderGoodsVO);
} }
......
...@@ -64,7 +64,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -64,7 +64,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
Integer updateOrderGoodsSetResidueWeight(BigDecimal residueWeight, Integer id); Integer updateOrderGoodsSetResidueWeight(BigDecimal residueWeight, Integer id);
List<OrderGoodsVO> findOrderGoodsByBatchNumber(Long batchNumber); OrderGoodsVO findOrderGoodsById(Integer id);
List<OrderGoods> selectListByOrderGoodsList(List<String> orderNos); List<OrderGoods> selectListByOrderGoodsList(List<String> orderNos);
......
...@@ -170,8 +170,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -170,8 +170,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
} }
@Override @Override
public List<OrderGoodsVO> findOrderGoodsByBatchNumber(Long batchNumber) { public OrderGoodsVO findOrderGoodsById(Integer id) {
return baseMapper.findOrderGoodsByBatchNumber(batchNumber); return baseMapper.findOrderGoodsById(id);
} }
@Override @Override
......
...@@ -59,8 +59,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -59,8 +59,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoodsSetResidueWeight") @UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoodsSetResidueWeight")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "residueWeight") BigDecimal residueWeight, @Param(value = "id") Integer id); Integer updateOrderGoodsSetResidueWeight(@Param(value = "residueWeight") BigDecimal residueWeight, @Param(value = "id") Integer id);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "findOrderGoodsByBatchNumber") @SelectProvider(type = OrderGoodsSqlProvider.class, method = "findOrderGoodsById")
List<OrderGoodsVO> findOrderGoodsByBatchNumber(Long batchNumber); OrderGoodsVO findOrderGoodsById(Integer id);
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoods") @UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoods")
Integer updateOrderGoods(@Param(value = "param") OrderGoodsEditParams orderGoodsEditParams); Integer updateOrderGoods(@Param(value = "param") OrderGoodsEditParams orderGoodsEditParams);
......
...@@ -77,8 +77,8 @@ public interface OrderGoodsService { ...@@ -77,8 +77,8 @@ public interface OrderGoodsService {
/** /**
* 编辑货单查询 * 编辑货单查询
* @param batchNumber * @param id
* @return * @return
*/ */
OrderGoodsEditVO findOrderGoodsByBatchNumber(Long batchNumber); OrderGoodsEditVO findOrderGoodsById(Integer id);
} }
...@@ -236,7 +236,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -236,7 +236,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
} }
BigDecimal orderGoodsResidueWeight = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo).stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO,BigDecimal::add); BigDecimal orderGoodsResidueWeight = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo).stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
return new BigDecimal(residueWeight).add(orderGoodsResidueWeight).add(childResidueWeight); return new BigDecimal(residueWeight).add(orderGoodsResidueWeight).add(childResidueWeight);
} }
...@@ -246,70 +246,66 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -246,70 +246,66 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
/** /**
* 编辑货单提交 * 编辑货单提交
*
* @param param * @param param
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateEditOrderGoods(UpdateEditOrderGoodsParam param) { public void updateEditOrderGoods(UpdateEditOrderGoodsParam param) {
List<OrderGoodsEditParams> childParamsList = param.getOrderGoodsChildParams(); OrderGoodsEditParams orderGoodsParams = param.getOrderGoodsParams();
List<String> orderGoodsNos = childParamsList.stream().map(OrderGoodsEditParams::getOrderGoodsNo).collect(Collectors.toList()); OrderGoods oldOrderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsParams.getOrderGoodsNo()).get();
List<OrderGoods> orderGoodsList = orderGoodsDao.selectListByOrderGoodsList(orderGoodsNos);
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
for (OrderGoodsEditParams orderGoodsEditParams : childParamsList) {
String orderGoodsNo = orderGoodsEditParams.getOrderGoodsNo();
OrderGoods oldOrderGoods = orderGoodsMap.get(orderGoodsNo).get(0);
List<OrderChild> orderChildList = orderChildDao.selectListByOrderGoodsList(orderGoodsNos);
boolean pendingOrderWayFlag = CollectionUtils.isNotEmpty(orderChildList);
if (pendingOrderWayFlag) {
Integer pendingOrderWay = oldOrderGoods.getPendingOrderWay();
if (!pendingOrderWay.equals(orderGoodsEditParams.getPendingOrderWay())) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单不允许更改挂单方式");
}
}
if (oldOrderGoods.getAlreadyTransportWeight().compareTo(orderGoodsEditParams.getExtractWeight()) > 0 ) {
//修改后的货单提取吨数小于已拉运的吨数
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单提取吨数不应小于已经拉运的吨数");
}
if (orderChildList.size() < oldOrderGoods.getNeedTruckNum()) { String orderGoodsNo = orderGoodsParams.getOrderGoodsNo();
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "需要车辆数不能小于当前已经接单的运单数量"); List<OrderChild> orderChildList = orderChildDao.getOrderChildInfoByOrderGoodsNo(orderGoodsNo).get();
boolean pendingOrderWayFlag = CollectionUtils.isNotEmpty(orderChildList);
if (pendingOrderWayFlag) {
Integer pendingOrderWay = oldOrderGoods.getPendingOrderWay();
if (!pendingOrderWay.equals(orderGoodsParams.getPendingOrderWay())) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单不允许更改挂单方式");
} }
}
List<OrderGoodsTruckBind> truckBindList = orderGoodsTruckBindDao.selectListByOrderGoodsNo(orderGoodsNo); if (oldOrderGoods.getAlreadyTransportWeight().compareTo(orderGoodsParams.getExtractWeight()) > 0) {
List<OrderGoodsTruckBind> getChildList = null; //修改后的货单提取吨数小于已拉运的吨数
if (CollectionUtils.isNotEmpty(truckBindList)) { throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单提取吨数不应小于已经拉运的吨数");
List<OrderGoodsTruckBind> deleteList = truckBindList.stream().filter(i -> !i.getStatus().equals(OrderGoodsTruckBindEnum.Status.GET.getCode())).collect(Collectors.toList()); }
//已接单的记录
getChildList = truckBindList.stream().filter(i -> i.getStatus().equals(OrderGoodsTruckBindEnum.Status.GET.getCode())).collect(Collectors.toList()); if (orderChildList.size() < oldOrderGoods.getNeedTruckNum()) {
orderGoodsTruckBindDao.deleteByIds(deleteList.stream().map(OrderGoodsTruckBind::getId).collect(Collectors.toList())); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "需要车辆数不能小于当前已经接单的运单数量");
for (OrderGoodsTruckBind bind : deleteList) { }
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsNo, bind.getTruckNo());
}
List<OrderGoodsTruckBind> truckBindList = orderGoodsTruckBindDao.selectListByOrderGoodsNo(orderGoodsNo);
List<OrderGoodsTruckBind> getChildList = null;
if (CollectionUtils.isNotEmpty(truckBindList)) {
List<OrderGoodsTruckBind> deleteList = truckBindList.stream().filter(i -> !i.getStatus().equals(OrderGoodsTruckBindEnum.Status.GET.getCode())).collect(Collectors.toList());
//已接单的记录
getChildList = truckBindList.stream().filter(i -> i.getStatus().equals(OrderGoodsTruckBindEnum.Status.GET.getCode())).collect(Collectors.toList());
orderGoodsTruckBindDao.deleteByIds(deleteList.stream().map(OrderGoodsTruckBind::getId).collect(Collectors.toList()));
for (OrderGoodsTruckBind bind : deleteList) {
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsNo, bind.getTruckNo());
} }
LocalDateTime now = LocalDateTime.now();
List<String> truckList = orderGoodsEditParams.getTruckList(); }
if (CollectionUtil.isNotEmpty(truckList)) { LocalDateTime now = LocalDateTime.now();
if (CollectionUtil.isNotEmpty(getChildList)) { List<String> truckList = orderGoodsParams.getTruckList();
truckList.retainAll(getChildList.stream().map(OrderGoodsTruckBind::getTruckNo).collect(Collectors.toList())); if (CollectionUtil.isNotEmpty(truckList)) {
} if (CollectionUtil.isNotEmpty(getChildList)) {
orderGoodsTruckBindDao.saveBatchEntity(param.getOrderNo(), orderGoodsNo, truckList, now); truckList.retainAll(getChildList.stream().map(OrderGoodsTruckBind::getTruckNo).collect(Collectors.toList()));
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList);
} }
orderGoodsTruckBindDao.saveBatchEntity(param.getOrderNo(), orderGoodsNo, truckList, now);
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList);
}
orderGoodsStatusLazyComponent.deleteRedisRecordForLastOrderTime(orderGoodsNo); orderGoodsStatusLazyComponent.deleteRedisRecordForLastOrderTime(orderGoodsNo);
orderGoodsStatusLazyComponent.deleteRedisRecordForLastArriveSendTime(orderGoodsNo); orderGoodsStatusLazyComponent.deleteRedisRecordForLastArriveSendTime(orderGoodsNo);
orderGoodsStatusLazyComponent.expireProduceByLastOrderTime(DateUtils.parseDateTime(orderGoodsEditParams.getLastOrderTime(), "yyyy-MM-dd HH:mm:ss").get(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduceByLastOrderTime(DateUtils.parseDateTime(orderGoodsParams.getLastOrderTime(), "yyyy-MM-dd HH:mm:ss").get(), orderGoodsNo);
orderGoodsStatusLazyComponent.expireProduceByLastArriveSendTime(DateUtils.parseDateTime(orderGoodsEditParams.getLastArriveSendTime(), "yyyy-MM-dd HH:mm:ss").get(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduceByLastArriveSendTime(DateUtils.parseDateTime(orderGoodsParams.getLastArriveSendTime(), "yyyy-MM-dd HH:mm:ss").get(), orderGoodsNo);
orderGoodsDao.updateOrderGoods(orderGoodsParams);
orderGoodsDao.updateOrderGoods(orderGoodsEditParams);
}
} }
...@@ -355,7 +351,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -355,7 +351,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
BigDecimal sum = BigDecimal.ZERO; BigDecimal sum = BigDecimal.ZERO;
RollbackOrderWeightParam param = new RollbackOrderWeightParam(); RollbackOrderWeightParam param = new RollbackOrderWeightParam();
Integer cancelOperateType = goodsCancelParam.getCancelOperateType(); Integer cancelOperateType = goodsCancelParam.getCancelOperateType();
switch (cancelOperateType){ switch (cancelOperateType) {
case 1: case 1:
orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), null); orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), null);
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
...@@ -457,7 +453,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -457,7 +453,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
} }
} }
@Override @Override
...@@ -473,7 +468,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -473,7 +468,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
BigDecimal sum = BigDecimal.ZERO; BigDecimal sum = BigDecimal.ZERO;
RollbackOrderWeightParam param = new RollbackOrderWeightParam(); RollbackOrderWeightParam param = new RollbackOrderWeightParam();
Integer cancelOperateType = goodsCancelParam.getCancelOperateType(); Integer cancelOperateType = goodsCancelParam.getCancelOperateType();
switch (cancelOperateType){ switch (cancelOperateType) {
case 1: case 1:
case 2: case 2:
...@@ -498,7 +493,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -498,7 +493,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
} }
} }
...@@ -512,10 +506,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -512,10 +506,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
} }
@Override @Override
public OrderGoodsEditVO findOrderGoodsByBatchNumber(Long batchNumber) { public OrderGoodsEditVO findOrderGoodsById(Integer id) {
OrderGoodsEditVO result = new OrderGoodsEditVO(); OrderGoodsEditVO result = new OrderGoodsEditVO();
List<OrderGoodsVO> orderGoodsVOList = orderGoodsDao.findOrderGoodsByBatchNumber(batchNumber); OrderGoodsVO orderGoodsVO = orderGoodsDao.findOrderGoodsById(id);
String orderNo = orderGoodsVOList.get(0).getOrderNo(); String orderNo = orderGoodsVO.getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
result.setOrderNo(orderInfoFeign.getOrderNo()); result.setOrderNo(orderInfoFeign.getOrderNo());
result.setTransportWeight(orderInfoFeign.getTransportWeight()); result.setTransportWeight(orderInfoFeign.getTransportWeight());
...@@ -530,14 +524,13 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -530,14 +524,13 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
result.setStopFlag(orderInfoFeign.getStopFlag()); result.setStopFlag(orderInfoFeign.getStopFlag());
result.setSettlementAccountPeriod(orderInfoFeign.getSettlementAccountPeriod()); result.setSettlementAccountPeriod(orderInfoFeign.getSettlementAccountPeriod());
List<String> orderGoodsList = orderGoodsVOList.stream().map(OrderGoodsVO::getOrderGoodsNo).collect(Collectors.toList()); List<OrderChild> orderChildList = orderChildDao.selectListByOrderGoodsNo(orderGoodsVO.getOrderGoodsNo());
List<OrderChild> orderChildList = orderChildDao.selectListByOrderGoodsList(orderGoodsList);
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
result.setEditAllFlag(false); result.setEditAllFlag(false);
} else { } else {
result.setEditAllFlag(true); result.setEditAllFlag(true);
} }
result.setOrderGoodsVOList(orderGoodsVOList); result.setOrderGoodsVO(orderGoodsVO);
return result; return result;
} }
......
...@@ -184,7 +184,7 @@ public class OrderGoodsSqlProvider { ...@@ -184,7 +184,7 @@ public class OrderGoodsSqlProvider {
return sql; return sql;
} }
public String findOrderGoodsByBatchNumber(@Param("batchNumber") Long batchNumber) { public String findOrderGoodsById(@Param("id") Integer id) {
String sql = new SQL() {{ String sql = new SQL() {{
SELECT("a.id, a.order_no," + SELECT("a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
...@@ -200,8 +200,8 @@ public class OrderGoodsSqlProvider { ...@@ -200,8 +200,8 @@ public class OrderGoodsSqlProvider {
"a.user_no,a.user_name,batch_number,last_arrive_receive_time,last_load_time,last_order_time"); "a.user_no,a.user_name,batch_number,last_arrive_receive_time,last_load_time,last_order_time");
FROM("order_goods a"); FROM("order_goods a");
if (Objects.nonNull(batchNumber)) { if (Objects.nonNull(id)) {
WHERE("a.batch_number = #{batchNumber}"); WHERE("a.id = #{id}");
} }
ORDER_BY("a.create_time desc"); ORDER_BY("a.create_time desc");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论