提交 f119a6a7 authored 作者: aiqingguo's avatar aiqingguo

运单流程

上级 e541170a
......@@ -33,6 +33,18 @@ public enum PerformanceResultEnum implements ResultEnum {
DATA_REPEAT(1106, "数据重复"),
ORDER_NO_FOUND(1200, "货单不存在"),
ORDER_WEIGHT_LACK(1200, "剩余数量不足"),
ORDER_CHILD_NO_FOUND(1301, "运单不存在"),
ORDER_CHILD_STATUS_CHANGED(1302, "运单状态已变更,请重新刷新页面"),
ORDER_CHILD_CANCELED(1303, "运单状态已取消"),
ORDER_CHILD_COMPLETE(1304, "运单状态已完成"),
ORDER_CHILD_LOAD_TIMEOUT(1305, "超过装货截止时间"),
ORDER_CHILD_CANCEL_FORBID(1306, "运单无法取消"),
ORDER_CHILD_CANCEL_FORBID_COUNT(1307, "超出最大取消数量"),
;
......
......@@ -37,6 +37,7 @@ public class OrderChildVO {
private String orderGoodsNo;
@ApiModelProperty(value = "订单编号", example = "")
private String orderNo;
@ApiModelProperty(value = "货物id", example = "")
private Integer goodsId;
@ApiModelProperty(value = "货物名称", example = "")
......@@ -51,6 +52,9 @@ public class OrderChildVO {
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "")
private String receiveAddress;
@ApiModelProperty(value = "最晚装货时间", example = "")
private String loadDeadline;
@ApiModelProperty(value = "车辆ID", example = "")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "")
......@@ -63,6 +67,7 @@ public class OrderChildVO {
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "")
private String driverMobile;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "")
......@@ -77,6 +82,7 @@ public class OrderChildVO {
private BigDecimal unloadNet;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "")
private BigDecimal weight;
@ApiModelProperty(value = "磅单审核状态", example = "")
private Integer poundStatus;
@ApiModelProperty(value = "状态", example = "")
......
......@@ -65,7 +65,7 @@ public class AppGoodsOrderController {
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNoForAPP(orderGoodsNo));
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
}
......@@ -2,6 +2,7 @@ package com.clx.performance.controller.app;
import com.clx.performance.param.app.*;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
......@@ -71,7 +72,7 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "装车(首次、再次)", notes = "<br>By:艾庆国")
@ApiOperation(value = "装车(首次、重复)", notes = "<br>By:艾庆国")
@PostMapping("/updateLoad")
public Result<Void> updateLoad(@RequestBody @Validated OrderChildLoadParam param) {
orderChildService.updateLoad(param);
......@@ -79,7 +80,7 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "卸车(首次、再次)", notes = "<br>By:艾庆国")
@ApiOperation(value = "卸车(首次、重复)", notes = "<br>By:艾庆国")
@PostMapping("/updateUnload")
public Result<Void> updateUnload(@RequestBody @Validated OrderChildUnloadParam param) {
orderChildService.updateUnload(param);
......@@ -95,19 +96,19 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "确认交货", notes = "<br>By:艾庆国")
@PostMapping("/updateConfirm")
public Result<Void> updateConfirm(@RequestBody @Validated OrderChildConfirmParam param) {
orderChildService.updateConfirm(param);
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateDriverCancel(@RequestBody @Validated OrderChildCancelParam param) {
orderChildService.updateDriverCancel(param);
return Result.ok();
}
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateCancel(@RequestBody @Validated OrderChildCancelParam param) {
orderChildService.updateCancel(param);
@ApiOperation(value = "查询运单详情", notes = "<br>By:艾庆国")
@PostMapping("/getOrderChildInfo")
public Result<OrderChildVO> getOrderChildInfo(String childNo) {
return Result.ok();
return Result.ok(orderChildService.getOrderChildInfo(childNo));
}
}
......@@ -253,16 +253,15 @@ public class GoodsOrderController {
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo));
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
@PostMapping("/pageOrderGoodsList")
@UnitCovert(param = false)
public Result<PageData<OrderGoodsVO>> pageOrderGoodsList(@RequestBody PageOrderGoodsListParam param) {
public Result<PageData<OrderGoodsVO>> pageOrderGoodsList(@RequestBody @Validated PageOrderGoodsListParam param) {
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
param.setOrderGoodsType(param.getOrderGoodsNo().substring(0, 2));
param.setOrderNo(param.getOrderGoodsNo().substring(2));
}
IPage<OrderGoodsVO> page = orderGoodsService.pageOrderGoodsList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
......
......@@ -20,10 +20,11 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
boolean updateCancel(OrderChild item);
boolean updateLoad(OrderChild item);
boolean updateUnload(OrderChild item);
boolean updateLoadAndUnload(OrderChild item);
boolean updateDriverConfirm(OrderChild item);
boolean updateStatus(OrderChild item);
Optional<OrderChild> getByChildNo(String childNo);
......
......@@ -21,4 +21,6 @@ public interface OrderChildImageDao extends BaseDao<OrderChildImageMapper, Order
Optional<List<OrderChildImage>> getImages(String childNo, Integer type);
Optional<List<OrderChildImage>> listLoadAndUnload(String childNo);
}
......@@ -18,10 +18,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
}
......@@ -32,17 +32,48 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override
public boolean updateLoad(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getLoadTime, item.getLoadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateUnload(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getUnloadTime, item.getUnloadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateLoadAndUnload(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getPoundStatus, item.getPoundStatus())
);
}
@Override
......@@ -50,6 +81,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return false;
}
@Override
public boolean updateStatus(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public Optional<OrderChild> getByChildNo(String childNo) {
return Optional.of(childNo)
......
......@@ -44,6 +44,15 @@ public class OrderChildImageImpl extends BaseDaoImpl<OrderChildImageMapper, Orde
}
@Override
public Optional<List<OrderChildImage>> listLoadAndUnload(String childNo) {
return Optional.of(childNo)
.map(item -> lQrWrapper()
.eq(OrderChildImage::getChildNo, childNo)
)
.map(super::list);
}
@Override
public Optional<List<OrderChildImage>> getImages(String childNo, Integer type) {
return Optional.ofEmpty(list(lQrWrapper()
......
......@@ -37,21 +37,10 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
}
@Override
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) {
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getOrderGoodsType, item.substring(0,2))
.eq(OrderGoods::getOrderGoodsNo, item.substring(2))
)
.map(super::getOne);
}
@Override
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getOrderGoodsType, item.substring(0,2))
.eq(OrderGoods::getOrderGoodsNo, item.substring(2))
.eq(OrderGoods::getOrderGoodsNo, item)
)
.map(super::getOne);
}
......
package com.clx.performance.extranal.user;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
public interface DriverService {
Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId);
}
package com.clx.performance.extranal.user.impl;
import com.clx.performance.extranal.user.DriverService;
import com.clx.user.feign.DriverFeign;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@AllArgsConstructor
public class DriverServiceImpl implements DriverService {
private final DriverFeign driverFeign;
@Override
public Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId) {
Optional<DriverTruckInfoFeignVo> map = Optional.ofNullable(driverFeign.getDriverTruckInfo(driverUserNo, truckId))
.filter(Result::succeed)
.map(Result::getData);
return map;
}
}
......@@ -41,6 +41,8 @@ public class OrderChild implements HasKey<Integer> {
private String sendAddress; //发货地址
private Integer receiveAddressId; //收货地址id
private String receiveAddress; //收货地址
private LocalDateTime loadDeadline; //最晚装货时间
private Integer truckId; //车辆ID
private String truckNo; //车牌号
private BigDecimal truckLoad; //载重(单位吨)
......
......@@ -4,4 +4,5 @@ public interface OrderChildLogService {
void saveOrderChildLog(String childNo, Integer type, String remark,
Integer createType,Long createBy, String createName);
void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName);
}
......@@ -13,4 +13,7 @@ import java.util.List;
public interface OrderChildPoundLogService {
List<OrderChildPoundLogVO> getPoundLogList(String childNo);
void saveDriverOrderChildLog(String childNo, Integer status, String remark, Long createBy, String createName);
}
......@@ -3,6 +3,7 @@ package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.*;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
......@@ -27,9 +28,9 @@ public interface OrderChildService {
void updateUnload(OrderChildUnloadParam param);
void updateLoadAndUnloadAgain(OrderChildLoadAndUnloadAgainParam param);
void updateConfirm(OrderChildConfirmParam param);
void updateDriverCancel(OrderChildCancelParam param);
void updateCancel(OrderChildCancelParam param);
OrderChildVO getOrderChildInfo(String childNo);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
......
......@@ -13,9 +13,7 @@ import com.msl.common.result.Result;
* Time 16:45
*/
public interface OrderGoodsService {
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo);
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo);
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildLogDao;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.model.OrderChildLog;
import com.clx.performance.service.OrderChildLogService;
import lombok.extern.slf4j.Slf4j;
......@@ -28,4 +29,9 @@ public class OrderChildLogServiceImpl implements OrderChildLogService {
orderChildLogDao.saveEntity(orderChildLog);
}
@Override
public void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName) {
saveOrderChildLog(childNo, type, remark, OrderChildLogEnum.CreateType.DRIVER.getCode(), createBy, createName);
}
}
......@@ -31,4 +31,17 @@ public class OrderChildPoundLogServiceImpl implements OrderChildPoundLogService
List<OrderChildPoundLog> poundLogList = orderChildPoundLogDao.getPoundLogList(childNo);
return orderChildPoundLogStruct.convert(poundLogList);
}
@Override
public void saveDriverOrderChildLog(String childNo, Integer status, String remark, Long createBy, String createName) {
OrderChildPoundLog poundLog = new OrderChildPoundLog();
poundLog.setChildNo(childNo);
poundLog.setStatus(status);
poundLog.setRemark(remark);
poundLog.setCreateBy(createBy);
poundLog.setCreateName(createName);
orderChildPoundLogDao.saveEntity(poundLog);
}
}
......@@ -3,18 +3,28 @@ package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dao.OrderChildPoundAuditDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.OrderChildPoundAuditEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
import com.clx.performance.model.OrderChildPoundAudit;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.app.*;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.service.OrderChildLogService;
import com.clx.performance.service.OrderChildPoundLogService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.struct.OrderChildPoundImageStruct;
import com.clx.performance.struct.OrderChildStruct;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils;
......@@ -30,6 +40,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Author: aiqinguo
......@@ -48,19 +59,27 @@ public class OrderChildServiceImpl implements OrderChildService {
private final OrderChildDao orderChildDao;
private final OrderChildImageDao orderChildImageDao;
private final OrderChildPoundAuditDao orderChildPoundAuditDao;
private final OrderChildLogService orderChildLogService;
private final OrderChildPoundLogService orderChildPoundLogService;
private final DriverService driverService;
private final OrderChildStruct orderChildStruct;
private final OrderChildPoundImageStruct orderChildPoundImageStruct;
@Override
@Transactional(rollbackFor = Exception.class)
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = "1";
String childNo = childNoGenerate();
BigDecimal truckLoad = BigDecimal.valueOf(1L);
// 查询司机车辆信息
DriverTruckInfoFeignVo driverTruckInfo = driverService.getUserDetailInfo(param.getDriverUserNo(), param.getTruckId()).orElseThrow(ResultCodeEnum.FAIL);
BigDecimal truckLoad = driverTruckInfo.getLoad();
LocalDateTime now = LocalDateTime.now();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(ResultCodeEnum.FAIL);
......@@ -71,8 +90,8 @@ public class OrderChildServiceImpl implements OrderChildService {
}
// 库存验证
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0) {throw new ServiceSystemException(ResultCodeEnum.FAIL);}
if (orderGoods.getResidueTransportWeight().compareTo(truckLoad) < 0) {throw new ServiceSystemException(ResultCodeEnum.FAIL);}
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0) {throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);}
if (orderGoods.getResidueTransportWeight().compareTo(truckLoad) < 0) {throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);}
OrderChild orderChild = new OrderChild();
orderChild.setChildNo(childNo);
......@@ -82,7 +101,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setOrderGoodsNo(orderGoods.getOrderGoodsNo());
orderChild.setFreightPrice(orderGoods.getPendingOrderFreight());
orderChild.setGoodsId(0);
orderChild.setGoodsId(orderGoods.getGoodsId());
orderChild.setGoodsName(orderGoods.getGoodsName());
orderChild.setSendAddressId(orderGoods.getSendAddressId());
......@@ -90,12 +109,14 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setReceiveAddressId(orderGoods.getReceiveAddressId());
orderChild.setReceiveAddress(orderGoods.getReceiveAddressShorter());
orderChild.setDriverUserNo(param.getDriverUserNo());
orderChild.setDriverName("");
orderChild.setDriverMobile("");
orderChild.setLoadDeadline(orderGoods.getLastArriveSendTime());
orderChild.setDriverUserNo(driverTruckInfo.getUserNo());
orderChild.setDriverName(driverTruckInfo.getName());
orderChild.setDriverMobile(driverTruckInfo.getMobile());
orderChild.setTruckId(param.getTruckId());
orderChild.setTruckNo("");
orderChild.setTruckId(driverTruckInfo.getTruckId());
orderChild.setTruckNo(driverTruckInfo.getTruckNo());
orderChild.setTruckLoad(truckLoad);
orderChild.setWeight(orderChild.getTruckLoad());
......@@ -110,12 +131,14 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildDao.saveEntity(orderChild);
// 更新司机状态
lockDriver(orderChild.getDriverUserNo());
// 更新车辆状态
lockTruck(orderChild.getTruckId());
// 新增日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.CREATED.getCode(), OrderChildLogEnum.Type.CREATED.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.CREATED.getCode(), OrderChildLogEnum.Type.CREATED.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
SaveOrderChildVO result = new SaveOrderChildVO();
result.setChildNo(childNo);
......@@ -123,83 +146,108 @@ public class OrderChildServiceImpl implements OrderChildService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateGotoSendAddress(OrderChildGoToSendAddressParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())){return;}
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
orderChild.setStatus(OrderChildEnum.Status.GO_TO_SEND.getCode());
orderChildDao.updateLoad(orderChild);
orderChildDao.updateStatus(orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.ARRIVE_RECEIVE.getCode(), OrderChildLogEnum.Type.ARRIVE_RECEIVE.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.GO_TO_SEND.getCode(), OrderChildLogEnum.Type.GO_TO_SEND.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateArriveSendAddress(OrderChildArriveSendAddressParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){return;}
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
// 装货超时
if (orderChild.getLoadTime().isBefore(LocalDateTime.now())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIMEOUT);
}
orderChild.setStatus(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
orderChildDao.updateLoad(orderChild);
orderChildDao.updateStatus(orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.ARRIVE_RECEIVE.getCode(), OrderChildLogEnum.Type.ARRIVE_RECEIVE.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.ARRIVE_SEND.getCode(), OrderChildLogEnum.Type.ARRIVE_SEND.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateGotoReceiveAddress(OrderChildGoToReceiveAddressParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())){return;}
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.LOAD.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
orderChild.setStatus(OrderChildEnum.Status.GO_TO_RECEIVE.getCode());
orderChildDao.updateLoad(orderChild);
orderChildDao.updateStatus(orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.ARRIVE_RECEIVE.getCode(), OrderChildLogEnum.Type.ARRIVE_RECEIVE.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.GO_TO_RECEIVE.getCode(), OrderChildLogEnum.Type.GO_TO_RECEIVE.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateArriveReceiveAddress(OrderChildArriveReceiveAddressParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){return;}
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
orderChild.setStatus(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
orderChildDao.updateLoad(orderChild);
orderChildDao.updateStatus(orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.ARRIVE_RECEIVE.getCode(), OrderChildLogEnum.Type.ARRIVE_RECEIVE.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.ARRIVE_RECEIVE.getCode(), OrderChildLogEnum.Type.ARRIVE_RECEIVE.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
......@@ -210,23 +258,36 @@ public class OrderChildServiceImpl implements OrderChildService {
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (orderChild.getLoadTime() == null) {
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.DRIVER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED);
}
if (orderChild.getLoadTime() == null && Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())) {
updateLoadFirst(param, orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.LOAD.getCode(), OrderChildLogEnum.Type.LOAD.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.LOAD.getCode(), OrderChildLogEnum.Type.LOAD.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
} else {
updateReload(param, orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.RELOAD.getCode(), OrderChildLogEnum.Type.RELOAD.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.RELOAD.getCode(), OrderChildLogEnum.Type.RELOAD.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
}
private void updateLoadFirst(OrderChildLoadParam param, OrderChild orderChild) {
String childNo = param.getChildNo();
// 装货超时
if (orderChild.getLoadTime().isBefore(LocalDateTime.now())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIMEOUT);
}
List<OrderChildImage> imageList = new ArrayList<>();
for (String item : param.getLoadImageList()) {
OrderChildImage image = new OrderChildImage();
......@@ -240,6 +301,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setLoadNet(param.getLoadNet());
orderChild.setLoadTime(LocalDateTime.now());
orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setStatus(OrderChildEnum.Status.LOAD.getCode());
orderChildDao.updateLoad(orderChild);
orderChildImageDao.batchSaveEntity(imageList);
......@@ -269,24 +331,36 @@ public class OrderChildServiceImpl implements OrderChildService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateUnload(OrderChildUnloadParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (orderChild.getUnloadTime() == null) {
updateUnloadFirst(param, orderChild);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.DRIVER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED);
}
if (orderChild.getUnloadTime() == null && Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())) {
updateUnloadFirst(param, orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.UNLOAD.getCode(), OrderChildLogEnum.Type.UNLOAD.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.UNLOAD.getCode(), OrderChildLogEnum.Type.UNLOAD.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildPoundLogService.saveDriverOrderChildLog(childNo, OrderChildPoundAuditEnum.Status.AUDIT.getCode(), "",
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
} else {
updateReUnload(param, orderChild);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.REUNLOAD.getCode(), OrderChildLogEnum.Type.REUNLOAD.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.REUNLOAD.getCode(), OrderChildLogEnum.Type.REUNLOAD.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildPoundLogService.saveDriverOrderChildLog(childNo, OrderChildPoundAuditEnum.Status.AUDIT.getCode(), "",
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
}
......@@ -306,12 +380,21 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadNet(param.getUnloadNet());
orderChild.setUnloadTime(LocalDateTime.now());
orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setStatus(OrderChildEnum.Status.UNLOAD.getCode());
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
OrderChildPoundAudit audit = new OrderChildPoundAudit();
audit.setChildNo(childNo);
audit.setStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
audit.setLoadNet(orderChild.getLoadNet());
audit.setUnloadNet(orderChild.getUnloadNet());
orderChildDao.updateUnload(orderChild);
orderChildImageDao.batchSaveEntity(imageList);
orderChildPoundAuditDao.saveEntity(audit);
}
private void updateReUnload(OrderChildUnloadParam param, OrderChild orderChild) {
......@@ -331,23 +414,44 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadTime(LocalDateTime.now());
orderChild.setWeight(orderChildWeightCalc(orderChild));
OrderChildPoundAudit audit = new OrderChildPoundAudit();
audit.setChildNo(childNo);
audit.setStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
audit.setLoadNet(orderChild.getLoadNet());
audit.setUnloadNet(orderChild.getUnloadNet());
orderChildDao.updateUnload(orderChild);
orderChildImageDao.deleteUnload(childNo);
orderChildImageDao.batchSaveEntity(imageList);
orderChildPoundAuditDao.saveEntity(audit);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateLoadAndUnloadAgain(OrderChildLoadAndUnloadAgainParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
LocalDateTime now = LocalDateTime.now();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.POUND_AUDIT_FAIL.getCode())){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.DRIVER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED);
}
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.UNLOAD.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.AUDIT.getCode())){return;}
if (!Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
List<OrderChildImage> imageList = new ArrayList<>();
......@@ -367,65 +471,60 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setLoadRough(param.getLoadRough());
orderChild.setLoadTare(param.getLoadTare());
orderChild.setLoadNet(param.getLoadNet());
// orderChild.setLoadTime(now);
orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(param.getUnloadNet());
// orderChild.setUnloadTime(now);
orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setStatus(OrderChildEnum.Status.UNLOAD.getCode());
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
OrderChildPoundAudit audit = new OrderChildPoundAudit();
audit.setChildNo(childNo);
audit.setStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
audit.setLoadNet(orderChild.getLoadNet());
audit.setUnloadNet(orderChild.getUnloadNet());
orderChildDao.updateLoadAndUnload(orderChild);
orderChildImageDao.deleteLoadAndUnload(childNo);
orderChildImageDao.batchSaveEntity(imageList);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.RELOAD_AND_REUNLOAD.getCode(), OrderChildLogEnum.Type.RELOAD_AND_REUNLOAD.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
public void updateConfirm(OrderChildConfirmParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.UNLOAD.getCode())){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
}
orderChild.setStatus(OrderChildEnum.Status.COMPLETE.getCode());
orderChildDao.updateDriverConfirm(orderChild);
orderChildPoundAuditDao.saveEntity(audit);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CONFIRM.getCode(), OrderChildLogEnum.Type.DRIVER_CONFIRM.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.RELOAD_AND_REUNLOAD.getCode(), OrderChildLogEnum.Type.RELOAD_AND_REUNLOAD.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildPoundLogService.saveDriverOrderChildLog(childNo, OrderChildPoundAuditEnum.Status.AUDIT.getCode(), "",
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
public void updateCancel(OrderChildCancelParam param) {
@Transactional(rollbackFor = Exception.class)
public void updateDriverCancel(OrderChildCancelParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(ResultCodeEnum.FAIL);
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode())
||Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())
||Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())
){}
else {
throw new ServiceSystemException(ResultCodeEnum.FAIL);
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.DRIVER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode())){
return;
}
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultCodeEnum.FAIL);
// 禁止取消
if (orderChild.getStatus()>OrderChildEnum.Status.ARRIVE_SEND.getCode()) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID);
}
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 取消量验证
if (!cancelCountCheck(userNo)){throw new ServiceSystemException(ResultCodeEnum.FAIL);}
if (!cancelCountCheck(userNo)){throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID_COUNT);}
orderChild.setStatus(OrderChildEnum.Status.DRIVER_CANCEL.getCode());
......@@ -436,10 +535,30 @@ public class OrderChildServiceImpl implements OrderChildService {
cancelReturnWeight(orderChild, orderGoods);
// 日志
orderChildLogService.saveOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CANCEL.getCode(), OrderChildLogEnum.Type.DRIVER_CANCEL.getMsg(),
1, loginUserInfo.getUserNo(), loginUserInfo.getUserName());
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CANCEL.getCode(), OrderChildLogEnum.Type.DRIVER_CANCEL.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
public OrderChildVO getOrderChildInfo(String childNo) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
OrderChildVO result = orderChildStruct.convert(orderChild);
List<OrderChildImage> imageList = orderChildImageDao.listLoadAndUnload(childNo).orElse(new ArrayList<>());
result.setLoadImageList(imageList.stream().filter(item->Objects.equals(item.getId(),OrderChildImage.Type.LOAD.getCode())).map(item->item.getImage()).collect(Collectors.toList()));
result.setUnloadImageList(imageList.stream().filter(item->Objects.equals(item.getId(),OrderChildImage.Type.UNLOAD.getCode())).map(item->item.getImage()).collect(Collectors.toList()));
return result;
}
/**
* 更新货单数据
*/
......@@ -471,8 +590,43 @@ public class OrderChildServiceImpl implements OrderChildService {
* 运单拉运吨数计算
*/
private BigDecimal orderChildWeightCalc(OrderChild orderChild){
if (orderChild.getUnloadNet() == null && orderChild.getLoadNet() == null) {return orderChild.getTruckLoad();}
else if (orderChild.getUnloadNet() == null) {return orderChild.getLoadNet();}
else {return orderChild.getUnloadNet().compareTo(orderChild.getLoadNet())>0? orderChild.getLoadNet() : orderChild.getUnloadNet();}
}
/**
* 接单锁定司机
*/
private void lockDriver(Long driverNo){
}
/**
* 接单锁定车辆
*/
private void lockTruck(Integer truckId){
}
/**
* 释放司机
*/
private void releaseDriver(Long driverNo){
}
/**
* 释放车辆
*/
private void releaseTruck(Integer truckId){
}
private String childNoGenerate(){
return orderChild.getLoadNet();
return "1";
}
@Override
......
......@@ -26,13 +26,8 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
private OrderGoodsStruct orderGoodsStruct;
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo).map(orderGoodsStruct::convert).get();
}
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForAPP(orderGoodsNo).map(orderGoodsStruct::convert).get();
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo).map(orderGoodsStruct::convert).get();
}
@Override
......
......@@ -19,8 +19,8 @@ public class OrderGoodsSqlProvider {
public String pageOrderGoodsList(@Param("page") Page<FeignPageOrderVO> page, @Param("param") PageOrderGoodsListParam param) {
String sql = new SQL() {{
SELECT("a.id, a.order_no, a.order_goods_type," +
" concat(a.order_goods_type,a.order_goods_no) as order_goods_no, a.order_goods_status, a.extract_weight, " +
SELECT("a.id, a.order_no, a.order_goods_type " +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" a.residue_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," +
......@@ -30,8 +30,9 @@ public class OrderGoodsSqlProvider {
" date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time," +
" date_format(a.modified_time, '%Y-%m-%d %H:%i:%s') as modified_time," +
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," +
"a.user_no,a.user_name");
FROM("order_goods a");
"a.user_no,a.user_name," +
"a.valid_freight_price ");
FROM("order_info a");
if (StringUtils.isNotBlank(param.getBeginTime()) && StringUtils.isNotBlank(param.getEndTime())) {
WHERE("a.create_time >= #{param.beginTime}");
......@@ -66,7 +67,6 @@ public class OrderGoodsSqlProvider {
}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
WHERE("a.order_goods_no = #{param.orderGoodsNo}");
WHERE("a.order_goods_no = #{param.orderGoodsType}");
}
ORDER_BY("a.create_time desc");
}}.toString();
......
package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildPoundImageStruct {
OrderChildVO convert(OrderChild item);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论