Browse Source

1.干线零担补录逻辑

2.干线 卸分一体
single_db
zhenghaoyu 1 year ago
parent
commit
53e154e440
  1. 3
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java
  2. 76
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java
  3. 129
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java
  4. 13
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml
  5. 9
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  6. 144
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

3
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java

@ -50,6 +50,9 @@ public class LoadCarsDTO implements Serializable {
private String orderCode;
private String trayCode;
private String trayType;
private Integer isZero;
private String scanCode;
private List<LoadingPackageDTO> packageList = new ArrayList<>();
private List<LoadingZeroDTO> zeroList = new ArrayList<>();

76
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java

@ -682,6 +682,82 @@ public class CarsLoadApiController {
}
@ResponseBody
@PostMapping("/unloadTrayAllOne")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "卸分一体", notes = "传入loadCarsDTO")
public R unloadTrayAllOne(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############unloadTrayAllOne: ";
log.info(method + "请求参数{}", loadCarsDTO);
Long loadId = loadCarsDTO.getLoadId();
String trayCode = loadCarsDTO.getTrayCode();
String trayType = loadCarsDTO.getTrayType();
Integer isZero = loadCarsDTO.getIsZero();
String orderPackageCode = loadCarsDTO.getOrderPackageCode();
String orderCode = loadCarsDTO.getOrderCode();
String waybillNo = loadCarsDTO.getWaybillNo();
Integer enterNum = loadCarsDTO.getEnterNum();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(405,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(loadId)){
log.warn(method+"配载计划id为空 loadId={}",loadId);
return R.fail(405,"配载计划id为空");
}
if(StringUtil.isBlank(trayCode)){
log.warn(method+"托盘码为空 trayCode={}",trayCode);
return R.fail(405,"托盘码为空");
}
if(StringUtil.isBlank(trayType)){
log.warn(method+"打托方式不能为空 trayType={}",trayType);
return R.fail(405,"打托方式不能为空");
}
if(Objects.isNull(isZero)){
log.warn(method+"是否是零担为空 isZero={}",isZero);
return R.fail(405,"是否是零担为空");
}
if(0 == isZero){
if(StringUtil.isBlank(orderPackageCode)){
log.warn(method+"包件码为空 orderPackageCode={}",orderPackageCode);
return R.fail(405,"包件码为空");
}
}else{
if(StringUtil.isBlank(orderCode)){
log.warn(method+"订单号为空 orderCode={}",orderCode);
return R.fail(405,"订单号为空");
}
if(StringUtil.isBlank(waybillNo)){
log.warn(method+"订单号为空 waybillNo={}",waybillNo);
return R.fail(405,"订单号为空");
}
if(enterNum == 0){
log.warn(method+"数量不正确 enterNum={}",enterNum);
return R.fail(405,"数量不正确");
}
}
return carsLoadService.unloadTrayAllOne(loadCarsDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
}

129
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java

@ -1343,4 +1343,133 @@ public class CarsLoadController {
}
}
@ResponseBody
@PostMapping("/updateZeroSuppleNum")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "更新零担补录的数量", notes = "传入loadCarsDTO")
public R updateZeroSuppleNum(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############updateZeroSuppleNum: ";
log.info(method + "请求参数{}", loadCarsDTO);
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
Integer enterNum = loadCarsDTO.getEnterNum();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(400,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(carsLoadScanId)){
log.warn(method+"装车id为空 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"装车id为空");
}
if(Objects.isNull(enterNum)){
log.warn(method+"装车数量为空 enterNum={}",enterNum);
return R.fail(405,"装车数量为空");
}
if(enterNum == 0){
//直接删除
return carsLoadService.deleteZeroSuppleById(carsLoadScanId,myCurrentWarehouse.getId());
}else{
return carsLoadService.updateZeroSuppleNum(loadCarsDTO);
}
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
@ResponseBody
@PostMapping("/deleteZeroSuppleById")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "通过id删除零担补录", notes = "传入loadCarsDTO")
public R deleteZeroSuppleById(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############deleteZeroSuppleById: ";
log.info(method + "请求参数{}", loadCarsDTO);
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(400,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(carsLoadScanId)){
log.warn(method+"装车id为空 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"装车id为空");
}
return carsLoadService.deleteZeroSuppleById(carsLoadScanId,myCurrentWarehouse.getId());
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
@ResponseBody
@PostMapping("/findNextNodeList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询当前节点以后的节点id", notes = "传入loadCarsDTO")
public R findNextNodeList(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############findNextNodeList: ";
log.info(method + "请求参数{}", loadCarsDTO);
Long loadId = loadCarsDTO.getLoadId();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(400,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(loadId)){
log.warn(method+"配载id为空 loadId={}",loadId);
return R.fail(405,"配载id为空");
}
return carsLoadService.findNextNodeList(loadId,myCurrentWarehouse.getId());
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
}

13
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml

@ -377,11 +377,22 @@
ltcls.order_code orderCode,
ltcls.waybill_no waybillNo,
lww.create_time createTime,
lww.destination destination,
lww.destination_warehouse_name destinationWarehouseName,
lww.shipper shipper,
lww.consignee consignee,
lww.consignee_name consigneeName,
lww.goods_name goodsName,
ltcls.num loadingNum,
IFNULL(lww.total_freight/lww.total_count,0) price,
lww.remark remark,
IFNULL(lww.total_freight/lww.total_count,0)*ltcls.num freight
from logpm_trunkline_cars_load_scan ltcls
left join logpm_warehouse_waybill lww on lww.waybill_no = ltcls.waybill_no
where ltcls.is_supple = 1
and ltcls.type = 2
and ltcls.load_id = #{param.load_id}
and ltcls.warehouse_id = #{param.warehouseId}
</select>
</mapper>

9
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java

@ -120,4 +120,13 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R useZeroList(LoadCarsDTO loadCarsDTO);
R addZeroSupple(LoadCarsDTO loadCarsDTO);
R deleteZeroSuppleById(Long carsLoadScanId,Long warehouseId);
R updateZeroSuppleNum(LoadCarsDTO loadCarsDTO);
R findNextNodeList(Long loadId, Long warehouseId);
R unloadTrayAllOne(LoadCarsDTO loadCarsDTO);
}

144
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -1999,7 +1999,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405,"配载计划节点信息不存在");
}
List<TrunklineCarsLoadScanEntity> carsLoadScanEntities = new ArrayList<>();
for (ZeroSuppleVO zeroSuppleVO : zeroSuppleList) {
String waybillNo = zeroSuppleVO.getWaybillNo();
String orderCode = zeroSuppleVO.getOrderCode();
@ -2038,13 +2037,152 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setRemark("零担补录异常装车");
carsLoadScanEntity.setUnloadCheck(0);
carsLoadScanEntity.setIsSupple(1);
carsLoadScanEntities.add(carsLoadScanEntity);
trunklineCarsLoadScanService.save(carsLoadScanEntity);
zeroStockArticleEntity.setHandQuantity(zeroStockArticleEntity.getHandQuantity() - enterNum);
distributionStockArticleClient.saveOrUpdate(zeroStockArticleEntity);
}
trunklineCarsLoadScanService.saveBatch(carsLoadScanEntities);
return R.success("添加成功");
}
@Override
public R deleteZeroSuppleById(Long carsLoadScanId,Long warehouseId) {
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
if(Objects.isNull(carsLoadScanEntity)){
log.warn("##########deleteZeroSuppleById: 零担补录装车信息不存在 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"零担补录装车信息不存在");
}
String orderCode = carsLoadScanEntity.getOrderCode();
Integer num = carsLoadScanEntity.getNum();
Integer unloadNum = carsLoadScanEntity.getUnloadNum();
if(unloadNum != 0){
log.warn("##########deleteZeroSuppleById: 零担补录已卸车不能删除 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"零担补录已卸车不能删除");
}
trunklineCarsLoadScanService.removeById(carsLoadScanId);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(stockArticleEntity)){
log.warn("##########deleteZeroSuppleById: 零担订单信息不存在 orderCode={} warehouseId={}",orderCode,warehouseId);
return R.fail(405,"零担订单信息不存在");
}
stockArticleEntity.setHandQuantity(stockArticleEntity.getHandQuantity() + num);
distributionStockArticleClient.saveOrUpdate(stockArticleEntity);
return R.success("删除成功");
}
@Override
public R updateZeroSuppleNum(LoadCarsDTO loadCarsDTO) {
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
Long warehouseId = loadCarsDTO.getWarehouseId();
Integer enterNum = loadCarsDTO.getEnterNum();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
if(Objects.isNull(carsLoadScanEntity)){
log.warn("##########deleteZeroSuppleById: 零担补录装车信息不存在 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"零担补录装车信息不存在");
}
String orderCode = carsLoadScanEntity.getOrderCode();
Integer num = carsLoadScanEntity.getNum();
Integer unloadNum = carsLoadScanEntity.getUnloadNum();
if(enterNum < unloadNum){
log.warn("##########deleteZeroSuppleById: 零担补录数量不能小于卸车数量 carsLoadScanId={} enterNum={}",carsLoadScanId,enterNum);
return R.fail(405,"零担补录数量不能小于卸车数量");
}
int diffeuct = num - enterNum;
carsLoadScanEntity.setNum(enterNum);
trunklineCarsLoadScanService.updateById(carsLoadScanEntity);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(stockArticleEntity)){
log.warn("##########deleteZeroSuppleById: 零担订单信息不存在 orderCode={} warehouseId={}",orderCode,warehouseId);
return R.fail(405,"零担订单信息不存在");
}
stockArticleEntity.setHandQuantity(stockArticleEntity.getHandQuantity() + diffeuct);
distributionStockArticleClient.saveOrUpdate(stockArticleEntity);
return R.success("修改成功");
}
@Override
public R findNextNodeList(Long loadId, Long warehouseId) {
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if(Objects.isNull(carsLoadLineEntity)){
log.warn("##########findNextNodeList: 当前节点信息不存在 loadId={} warehouseId={}",loadId,warehouseId);
return R.fail(405,"当前节点信息不存在");
}
Integer sort = carsLoadLineEntity.getSort();
List<TrunklineCarsLoadLineEntity> listMoreSortByLoadId = trunklineCarsLoadLineService.findListMoreSortByLoadId(loadId, sort);
List<JSONObject> ls = new ArrayList<>();
for (TrunklineCarsLoadLineEntity trunklineCarsLoadLineEntity : listMoreSortByLoadId) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("warehouseId",trunklineCarsLoadLineEntity.getNodeId());
jsonObject.put("warehouseName",trunklineCarsLoadLineEntity.getNodeName());
ls.add(jsonObject);
}
return R.data(ls);
}
@Override
public R unloadTrayAllOne(LoadCarsDTO loadCarsDTO) {
Long loadId = loadCarsDTO.getLoadId();
String trayCode = loadCarsDTO.getTrayCode();
String trayType = loadCarsDTO.getTrayType();
Integer isZero = loadCarsDTO.getIsZero();
String orderPackageCode = loadCarsDTO.getOrderPackageCode();
String orderCode = loadCarsDTO.getOrderCode();
String waybillNo = loadCarsDTO.getWaybillNo();
Integer enterNum = loadCarsDTO.getEnterNum();
Long warehouseId = loadCarsDTO.getWarehouseId();
if(0 == isZero){
unloadPackage(loadId,orderPackageCode,warehouseId,1,"卸分一体 卸车");
Map<String,Object> map = new HashMap<>();
map.put("trayType",trayType);
map.put("trayCode",trayCode);
map.put("warehouseId",warehouseId);
map.put("orderPackageCode",orderPackageCode);
boolean b = trayTypeClient.orderScanOrderPackageCode(map);
if(!b){
log.warn("##########findNextNodeList: 打托失败 trayCode={} orderPackageCode={}",trayCode,orderPackageCode);
return R.fail(405,"打托失败");
}
}else{
unloadZero(loadId,waybillNo,enterNum,warehouseId,1,null,orderCode,"卸分一体 卸车");
Map<String,Object> map = new HashMap<>();
map.put("trayType",trayType);
map.put("trayCode",trayCode);
map.put("warehouseId",warehouseId);
map.put("orderCode",orderCode);
map.put("num",enterNum);
boolean b = trayTypeClient.enterZeroOrderByTrayCode(map);
if(!b){
log.warn("##########findNextNodeList: 打托失败 trayCode={} orderCode={}",trayCode,orderCode);
return R.fail(405,"打托失败");
}
}
return R.success("打托成功");
}
@Override
public R loadingTrayInfo(LoadCarsDTO loadCarsDTO) {
log.info("##############loadingTrayInfo: 查询托盘的货物信息");

Loading…
Cancel
Save