Browse Source

Merge branch 'dev' into wang

dist.1.3.0
pref_mail@163.com 9 months ago
parent
commit
fb15fd9bd9
  1. 33
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java
  2. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java
  3. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  4. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java
  5. 17
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  6. 4
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/controller/OrderController.java
  7. 5
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/entity/FactoryNodePushEntity.java
  8. 1
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mapper/FactoryNodePushMapper.xml
  9. 6
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java
  10. 32
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/query/FactoryNodePushQuery.java
  11. 4
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/FactoryNodePushService.java
  12. 16
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java
  13. 28
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/util/QueryUtil.java
  14. 4
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/CentralStkInConfirmOrderVO.java
  15. 4
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/SignForConfirmPackageVO.java
  16. 18
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  17. 1
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  18. 5
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  19. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java
  20. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  21. 14
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  22. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  23. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  24. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  25. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  26. 401
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  27. 14
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

33
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java

@ -21,7 +21,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.dto.BasicdataGoodsAllocationDTO;
import com.logpm.basicdata.entity.BasicdataGoodsAllocationEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.excel.BasicdataGoodsAllocationExcel;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.basicdata.service.IBasicdataGoodsAllocationService;
import com.logpm.basicdata.vo.BasicdataGoodsAllocationVO;
import com.logpm.basicdata.vo.BasicdataNodeVO;
@ -48,6 +50,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 货位 控制器
@ -66,6 +69,8 @@ public class BasicdataGoodsAllocationController extends BladeController {
private final BladeRedis bladeRedis;
private final IBasicdataWarehouseClient warehouseClient;
/**
* 货位 详情
*/
@ -138,6 +143,14 @@ public class BasicdataGoodsAllocationController extends BladeController {
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn("############remove: 仓库信息不存在");
return R.fail(405,"仓库信息不存在");
}
Long warehouseId = myCurrentWarehouse.getId();
bladeRedis.del("warehouse:all:allocationIds:" + warehouseId);
return R.status(basicdataGoodsAllocationService.deleteLogic(Func.toLongList(ids)));
}
@ -148,11 +161,20 @@ public class BasicdataGoodsAllocationController extends BladeController {
@ApiOperationSupport(order = 7)
@ApiOperation(value = "禁用", notes = "传入ids")
public R disable(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn("############disable: 仓库信息不存在");
return R.fail(405,"仓库信息不存在");
}
Long warehouseId = myCurrentWarehouse.getId();
R r =basicdataGoodsAllocationService.disableGoodsAllocation(ids);
if (r.getCode() == 200) {
String prefix = "warehouseGoodsAllocation/*";
bladeRedis.del(bladeRedis.keys(prefix));
}
bladeRedis.del("warehouse:all:allocationIds:" + warehouseId);
return r;
}
@ -163,11 +185,22 @@ public class BasicdataGoodsAllocationController extends BladeController {
@ApiOperationSupport(order = 7)
@ApiOperation(value = "启用", notes = "传入ids")
public R enable(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn("############enable: 仓库信息不存在");
return R.fail(405,"仓库信息不存在");
}
Long warehouseId = myCurrentWarehouse.getId();
R r =basicdataGoodsAllocationService.enableGoodsAllocation(ids);
if (r.getCode() == 200) {
String prefix = "warehouseGoodsAllocation/*";
bladeRedis.del(bladeRedis.keys(prefix));
}
bladeRedis.del("warehouse:all:allocationIds:" + warehouseId);
return r;
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java

@ -37,6 +37,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
@ -385,10 +386,13 @@ public class DistributionStockArticleController extends BladeController {
List<DistributionStockArticleEntity> entityList = distributionStockArticleDTO.getEntityList();
if (!realStockArticleList.isEmpty()) {
boolean flag = realStockArticleList.stream().anyMatch(a -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(a.getReservationStatus()));
if (flag) {
String orderCode = realStockArticleList.stream().filter(f -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(f.getReservationStatus())).map(DistributionStockArticleEntity::getOrderCode).distinct().collect(Collectors.joining(","));
return R.fail(orderCode + "存在预约信息");
boolean isCheck = realStockArticleList.stream().allMatch(r -> DistributionTypeConstant.shipie.getValue().equals(r.getTypeService()));
if (!isCheck){
boolean flag = realStockArticleList.stream().anyMatch(a -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(a.getReservationStatus()));
if (flag) {
String orderCode = realStockArticleList.stream().filter(f -> !OrderPackageReservationStatusConstant.daiyuyue.getValue().equals(f.getReservationStatus())).map(DistributionStockArticleEntity::getOrderCode).distinct().collect(Collectors.joining(","));
return R.fail(orderCode + "存在预约信息");
}
}
}
@ -415,8 +419,8 @@ public class DistributionStockArticleController extends BladeController {
throw new RuntimeException("客户信息错误!!!");
}
newStockArticle.setMallName(mallName);
newStockArticle.setMallId(client.getId());
newStockArticle.setMallCode(client.getClientCode());
stockArticleEntity.setMallId(client.getId());
stockArticleEntity.setMallCode(client.getClientCode());
newStockArticle.setConsigneeUnit(consigneeUnit);
}
String content = oldStockArticle.compareCustomerInfo(newStockArticle);

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml

@ -893,7 +893,7 @@
IFNULL(SUM(ldbls.quantity),0) AS actual_plan,
IFNULL(SUM(ldbls.quantity),0) AS delivery,
IFNULL(SUM(ldbls.quantity),0) AS sign,
(SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id) AS image
IFNULL((SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id),'无图片信息') AS image
FROM
logpm_distrilbution_bill_lading AS ldbl
LEFT JOIN logpm_distribution_bill_lading_scan AS ldbls ON ldbls.bill_lading_id = ldbl.id AND ldbls.is_deleted = 0

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java

@ -288,8 +288,8 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
return Resp.scanFail("添加失败", "客户信息错误");
}
// 上楼 超区 平移 搬运 分拣 专车
BigDecimal totalFee = new BigDecimal(BigInteger.ZERO);
BigDecimal currencyUnitPrice = new BigDecimal(BigInteger.ZERO);
BigDecimal totalFee = BigDecimal.ZERO;
BigDecimal currencyUnitPrice = BigDecimal.ZERO;
switch (distributionAppAddvalueDTO.getAddvalueType()) {
case "1":
if (Func.isEmpty(distributionAppAddvalueDTO.getFloolNum())) {

17
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -674,16 +674,25 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
List<DistributionLoadscanAbnormalEntity> abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda()
.eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionLoadscanAbnormalEntity::getPackageId, parcelList.getId())
.notIn(DistributionLoadscanAbnormalEntity::getAuditingStatus, LoadingAbnormalAuditingStatusConstant.daishenhe.getValue())
);
if (!abnormalEntities.isEmpty()) {
//判断异常是否属于自身
boolean flag = abnormalEntities.stream().allMatch(a -> !distributionDeliveryListEntity.getId().equals(a.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId()));
if (flag) {
//该异常属于其他车次
String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(","));
log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}", distributionDeliveryListEntity.getTrainNumber(), collect);
return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常");
//校验是否还存在装车 如若存在则是无效装车,如若不存在则有效
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionLoadscanEntity::getWarehouseId, myCurrentWarehouse.getId())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (!Func.isEmpty(loadscanEntityList)) {
//该异常属于其他车次
String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(","));
log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}", distributionDeliveryListEntity.getTrainNumber(), collect);
return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常");
}
} else {
//这里需要判定文员是否对该异常进行驳回操作
List<DistributionLoadscanAbnormalEntity> collect = abnormalEntities.stream().filter(f -> distributionDeliveryListEntity.getId().equals(f.getDeliveryListId()) && distrilbutionloadingscanDTO.getReservationId().equals(f.getReservationId())).collect(Collectors.toList());

4
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/controller/OrderController.java

@ -4,13 +4,13 @@ import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity;
import com.logpm.factorydata.mengtian.query.FactoryNodePushQuery;
import com.logpm.factorydata.mengtian.service.FactoryNodePushService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.factorydata.FactoryDataConstants;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.GetMapping;
@ -54,7 +54,7 @@ public class OrderController {
@GetMapping
@ApiOperationSupport(order = 2)
@ApiOperation(value = "推送记录", notes = "推送记录")
public R<IPage<FactoryNodePushEntity>> pageNodePush(FactoryNodePushEntity vo, Query query) {
public R<IPage<FactoryNodePushEntity>> pageNodePush(FactoryNodePushEntity vo, FactoryNodePushQuery query) {
IPage<FactoryNodePushEntity> pages = nodePushService.pageNodePush(vo, query);
return R.data(pages);

5
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/entity/FactoryNodePushEntity.java

@ -55,6 +55,11 @@ public class FactoryNodePushEntity extends BaseEntity {
*/
@ApiModelProperty(value = "发货单编号")
private String senderCode;
/**
* 作业仓库
*/
@ApiModelProperty(value = "作业仓库")
private String warehouse;
/**
* 订单号
*/

1
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mapper/FactoryNodePushMapper.xml

@ -9,6 +9,7 @@
${ew.sqlSegment}
</if>
</where>
order by create_time desc
</select>
<update id="cancel">

6
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java

@ -132,6 +132,7 @@ public class NodeDataPushListener {
throw new RuntimeException(e);
}
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(centralStkInVO.getSenderCode())
.orderCode(centralStkInVO.getOrderCode())
.packageCode(centralStkInVO.getPackageCode())
@ -160,6 +161,7 @@ public class NodeDataPushListener {
mtPushDataDTOS1.stream().map(mtPushDataDTO -> {
return CentralStkInConfirmOrderVO.builder()
.orderCode(mtPushDataDTO.getOrderCode())
.outWarehouseType(mtPushDataDTO.getOutWarehouseType())
.packageVOS(
content.stream()
.filter(pushData -> StrUtil.equals(pushData.getOrderCode(), mtPushDataDTO.getOrderCode()))
@ -189,6 +191,7 @@ public class NodeDataPushListener {
return pushData.getPackageCode();
}).collect(Collectors.toSet()), ",");
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(senderCode)
.orderCode(orderCodes)
.packageCode(packageCodes)
@ -238,6 +241,7 @@ public class NodeDataPushListener {
return pushData.getSenderCode();
}).collect(Collectors.toSet()), ",");
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(signForVO.getSenderCode())
.orderCode(signForVO.getOrderCode())
.packageCode(signForVO.getPackageCode())
@ -268,6 +272,7 @@ public class NodeDataPushListener {
pushData -> {
return SignForConfirmPackageVO.builder()
.orderCode(pushData.getOrderCode())
.outWarehouseType(mtPushDataDTOMap.get(pushData.getOrderCode()).getOutWarehouseType())
.packageCode(pushData.getPackageCode())
.operatingTime(operatorTime)
.warehouseCode(mtPushDataDTOMap.get(pushData.getOrderCode()).getWarehouseCode())
@ -295,6 +300,7 @@ public class NodeDataPushListener {
return pushData.getSenderCode();
}).collect(Collectors.toSet()), ",");
FactoryNodePushEntity entity = FactoryNodePushEntity.builder()
.warehouse(warehouse)
.senderCode(senderCodes)
.orderCode(orderCodes)
.packageCode(packageCodes)

32
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/query/FactoryNodePushQuery.java

@ -0,0 +1,32 @@
package com.logpm.factorydata.mengtian.query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.mp.support.Query;
import java.util.Date;
/**
* 节点数据推送成功数据查询对象 query
*
* @author zhaoqiaobo
* @create 2024-03-13 14:21
*/
@ApiModel(value = "节点数据推送成功数据查询对象", description = "节点数据推送成功数据查询对象")
@Data
public class FactoryNodePushQuery extends Query {
@ApiModelProperty(value = "创建时间开始(范围)", position = 1)
private Date startCreateTime;
@ApiModelProperty(value = "创建时间结束(范围)", position = 2)
private Date endCreateTime;
@ApiModelProperty(value = "修改时间开始(范围)", position = 3)
private Date startUpdateTime;
@ApiModelProperty(value = "修改时间结束(范围)", position = 4)
private Date endUpdateTime;
}

4
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/FactoryNodePushService.java

@ -2,8 +2,8 @@ package com.logpm.factorydata.mengtian.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity;
import com.logpm.factorydata.mengtian.query.FactoryNodePushQuery;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.mp.support.Query;
import java.util.List;
@ -15,7 +15,7 @@ import java.util.List;
**/
public interface FactoryNodePushService extends BaseService<FactoryNodePushEntity> {
IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, Query query);
IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, FactoryNodePushQuery query);
Boolean cancel(List<String> id);

16
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java

@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.factorydata.mengtian.entity.FactoryNodePushEntity;
import com.logpm.factorydata.mengtian.mapper.FactoryNodePushMapper;
import com.logpm.factorydata.mengtian.query.FactoryNodePushQuery;
import com.logpm.factorydata.mengtian.service.FactoryNodePushService;
import com.logpm.factorydata.mengtian.util.QueryUtil;
import lombok.AllArgsConstructor;
@ -20,7 +21,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springframework.stereotype.Service;
import java.util.List;
@ -37,7 +37,7 @@ import java.util.List;
public class FactoryNodePushServiceImpl extends BaseServiceImpl<FactoryNodePushMapper, FactoryNodePushEntity> implements FactoryNodePushService {
@Override
public IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, Query query) {
public IPage<FactoryNodePushEntity> pageNodePush(FactoryNodePushEntity vo, FactoryNodePushQuery query) {
IPage<FactoryNodePushEntity> page = Condition.getPage(query);
QueryWrapper<FactoryNodePushEntity> queryWrapper = QueryUtil.buildQueryWrapper(vo, FactoryNodePushEntity.class);
if(StrUtil.isNotEmpty(vo.getType())){
@ -46,10 +46,22 @@ public class FactoryNodePushServiceImpl extends BaseServiceImpl<FactoryNodePushM
if(StrUtil.isNotEmpty(vo.getSendStatus())){
queryWrapper.eq("send_status", vo.getSendStatus());
}
customQuery(query, queryWrapper);
List<FactoryNodePushEntity> deliveryTrainPage = baseMapper.pageNodePush(page, queryWrapper);
return page.setRecords(deliveryTrainPage);
}
private void customQuery(FactoryNodePushQuery query, QueryWrapper<FactoryNodePushEntity> queryWrapper) {
// 配送时间开始
QueryUtil.timeGe("create_time", query.getStartCreateTime(), queryWrapper);
// 配送时间结束
QueryUtil.timeLe("create_time", query.getEndCreateTime(), queryWrapper);
// 配送时间开始
QueryUtil.timeGe("update_time", query.getStartUpdateTime(), queryWrapper);
// 配送时间结束
QueryUtil.timeLe("update_time", query.getEndUpdateTime(), queryWrapper);
}
@Override
public Boolean cancel(List<String> ids) {
if(CollUtil.isEmpty(ids)){

28
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/util/QueryUtil.java

@ -1,9 +1,11 @@
package com.logpm.factorydata.mengtian.util;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springblade.core.mp.support.Condition;
import java.util.Date;
import java.util.Map;
/**
@ -26,4 +28,30 @@ public class QueryUtil {
return Condition.getQueryWrapper(stringObjectMap, classz);
}
/**
* QueryWrapper 查询大于指定时间范围
*
* @param field 字段名
* @param value 时间值
* @param wrapper mybatisplus查询对象
*/
public static void timeGe(String field, Date value, QueryWrapper wrapper) {
if (ObjectUtil.isNotEmpty(value)) {
wrapper.ge(field, value);
}
}
/**
* QueryWrapper 查询小于指定时间范围
*
* @param field 字段名
* @param value 时间值
* @param wrapper mybatisplus查询对象
*/
public static void timeLe(String field, Date value, QueryWrapper wrapper) {
if (ObjectUtil.isNotEmpty(value)) {
wrapper.le(field, value);
}
}
}

4
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/CentralStkInConfirmOrderVO.java

@ -24,6 +24,10 @@ public class CentralStkInConfirmOrderVO implements Serializable {
@JsonProperty("订单号")
private String orderCode;
@ApiModelProperty("工厂出库方式")
@JsonProperty("工厂出库方式")
private String outWarehouseType;
@ApiModelProperty("包件列表")
@JsonProperty("包件列表")
private List<CentralStkInConfirmPackageVO> packageVOS;

4
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/vo/SignForConfirmPackageVO.java

@ -27,6 +27,10 @@ public class SignForConfirmPackageVO implements Serializable {
@JsonProperty("订单编号")
private String orderCode;
@ApiModelProperty("工厂出库方式")
@JsonProperty("工厂出库方式")
private String outWarehouseType;
@ApiModelProperty("包条码")
@JsonProperty("包条码")
private String packageCode;

18
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java

@ -205,6 +205,24 @@ public class DistributionDatarepair {
return ReturnT.SUCCESS;
}
/**
* 推送单个 老系统系统
* @return
*/
@XxlJob("pushSingleNotification")
public ReturnT<String> pushSingleNotification(String params) {
Boolean b = distributionSignforClient.clerkCheckPushData(Long.parseLong(params));
if(b!=null&&b){
warehouseMappingDataMapper.updateClearSignforStatusBysignforId(Long.parseLong(params), 1);
log.info(">>> 推送成功 {}",Long.parseLong(params));
}else{
log.error(">>> 推送失败 id="+Long.parseLong(params));
}
return ReturnT.SUCCESS;
}
/**
* 推送自提签收老系统系统
* @return

1
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java

@ -122,5 +122,6 @@ public interface WarehouseMappingDataMapper {
List<StockAllocationInfoVO> findStockAllocationInfo();
void updateClearSignforStatusBysignforId(@Param("singnforId")Long singnforId, @Param("dealStatus") Integer dealStatus);
}

5
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml

@ -348,6 +348,11 @@
set total_num = #{num}
where id = #{aLong}
</update>
<update id="updateClearSignforStatusBysignforId">
update clear_singnfor_status_record
set deal_status = #{dealStatus}
where singnfor_id = #{singnforId}
</update>
<select id="findPackageTraysInfo" resultType="com.logpm.patch.vo.PackageTrayInfoVO">
select lwtg.association_value orderPackageCode,

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

@ -16,8 +16,10 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@RestController
@ -265,8 +267,11 @@ public class CarsLoadApiController {
log.warn(method+"配载装车扫描id为空 carsLoadScanIds={}",carsLoadScanIds);
return R.fail(405,"配载装车扫描id为空");
}
List<String> list = Arrays.asList(carsLoadScanIds.split(","));
//把list转化成Long的集合
List<Long> carsLoadScanIdList = list.stream().map(Long::valueOf).collect(Collectors.toList());
return carsLoadService.removeCarsLoadScan(carsLoadScanIds,myCurrentWarehouse.getId());
return carsLoadService.removeCarsLoadScan(carsLoadScanIdList,myCurrentWarehouse.getId());
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java

@ -165,4 +165,6 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper<TrunklineCarsLoa
void clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo);
void addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(@Param("loadId") Long finalLoadId, @Param("nodeId") Long nodeId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo, @Param("signOrderId") Long signOrderId);
void updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo, @Param("finalNodeId") Long finalNodeId, @Param("finalNodeName") String finalNodeName);
}

14
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml

@ -326,7 +326,7 @@
<update id="updateScanToAbnormalByLoadIdAndNodeIdAndWarehouseIdAndOrderCodeAndWaybillNo">
update logpm_trunkline_cars_load_scan
set loading_abnormal = 1,final_node_id = null
set loading_abnormal = 1,final_node_id = null,final_node_name = null
where load_id = #{loadId}
and warehouse_id = #{warehouseId}
and final_node_id = #{nodeId}
@ -875,4 +875,16 @@
and scan_status = '1'
</update>
<update id="updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo" >
update logpm_trunkline_cars_load_scan
set final_node_id = #{finalNodeId},
final_node_name = #{finalNodeName},
loading_abnormal = 0
where load_id = #{loadId}
and warehouse_id = #{warehouseId}
and order_code = #{orderCode}
and waybill_no = #{waybillNo}
and scan_status = '1'
</update>
</mapper>

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java

@ -160,4 +160,6 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
void clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(Long finalLoadId1, Long nodeId, String orderCode, String waybillNo);
void addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(Long finalLoadId, Long nodeId, String orderCode, String waybillNo, Long signOrderId);
void updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(Long loadId, Long warehouseId, String orderCode, String waybillNo, Long finalNodeId,String finalNodeName);
}

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

@ -88,7 +88,7 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R findCarsLoadingDetail(Long loadId, Long warehouseId);
R removeCarsLoadScan(String carsLoadScanIds, Long warehouseId);
R removeCarsLoadScan(List<Long> carsLoadScanIdList, Long warehouseId);
R arriveUnloadPageList(LoadCarsDTO loadCarsDTO);

4
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java

@ -3226,9 +3226,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
List<Long> carsLoadScanIds = trunklineCarsLoadScanService.findCarsLoadScanIdsByWaybillIds(waybillIds);
if(!CollUtil.isEmpty(carsLoadScanIds)){
//把carsLoadScanIds中的元素用,拼接起来成为一个字符串
String carsLoadScanIdsStr = CollUtil.join(carsLoadScanIds, ",");
carsLoadService.removeCarsLoadScan(carsLoadScanIdsStr,warehouseId);
carsLoadService.removeCarsLoadScan(carsLoadScanIds,warehouseId);
}
List<Long> advanceIds = trunklineWaybillOrderService.findAdvanceIdsByWaybillIds(waybillIds);

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java

@ -388,4 +388,9 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
baseMapper.addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(finalLoadId,nodeId,orderCode,waybillNo,signOrderId);
}
@Override
public void updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(Long loadId, Long warehouseId, String orderCode, String waybillNo, Long finalNodeId,String finalNodeName) {
baseMapper.updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId,warehouseId,orderCode,waybillNo,finalNodeId,finalNodeName);
}
}

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

@ -139,7 +139,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return pageList;
}
//使用trunklineCarsLoadLineService通过idsSet关联loadId批量查询TrunklineCarsLoadLineEntity集合
List<TrunklineCarsLoadLineEntity> loadLineList = trunklineCarsLoadLineService.list(new QueryWrapper<TrunklineCarsLoadLineEntity>().in("load_id", idsSet));
List<TrunklineCarsLoadLineEntity> loadLineList = trunklineCarsLoadLineService.list(new QueryWrapper<TrunklineCarsLoadLineEntity>().in("load_id", idsSet).orderByAsc("sort"));
//把loadLineList中对象通过loadId分组
Map<Long, List<TrunklineCarsLoadLineEntity>> loadLineMap = loadLineList.stream()
.collect(Collectors.groupingBy(TrunklineCarsLoadLineEntity::getLoadId));
@ -807,7 +807,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsOrderService.updateStartNumByLoadIdAndWarehouseId(loadId, warehouseId);
if (CollUtil.isNotEmpty(carsLoadScanIdList)) {
removeCarsLoadScan(StringUtil.join(carsLoadScanIdList, ","), warehouseId);
removeCarsLoadScan(carsLoadScanIdList, warehouseId);
}
try {
@ -865,17 +865,17 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer planLoadingNumber = currentCarsLoadLineEntity.getPlanLoadingNumber();
Integer realLoadingNumber = currentCarsLoadLineEntity.getRealLoadingNumber();
Integer unloadNumber = currentCarsLoadLineEntity.getUnloadNumber();
if (unloadNumber > 0) {
if (Objects.isNull(unloadNumber) || unloadNumber > 0) {
log.warn("#############cancelArriveCarByLoadId: 当前节点已卸车 unloadNumber={}", unloadNumber);
throw new CustomerException(400, "当前节点已卸车");
}
if(realLoadingNumber > 0){
if(Objects.isNull(realLoadingNumber) || realLoadingNumber > 0){
log.warn("#############cancelArriveCarByLoadId: 当前节点已做装车,不能取消到车 realLoadingNumber={}", realLoadingNumber);
throw new CustomerException(400, "当前节点已做装车,不能取消到车");
}
if(planLoadingNumber > 0){
if(Objects.isNull(planLoadingNumber) || planLoadingNumber > 0){
log.warn("#############cancelArriveCarByLoadId: 当前节点已做计划,不能取消到车 planLoadingNumber={}", planLoadingNumber);
throw new CustomerException(400, "当前节点已做计划,不能取消到车");
}
@ -1274,6 +1274,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadLineEntity.setUnloadStatus("0");
carsLoadLineEntity.setLoadingStatus("0");
carsLoadLineEntity.setIsTermination("0");
carsLoadLineEntity.setPlanLoadingNumber(0);
boolean saveLoadLine = trunklineCarsLoadLineService.save(carsLoadLineEntity);
if (!saveLoadLine) {
log.warn("##############saveNew: 保存配载计划节点失败");
@ -1414,11 +1415,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("###############selectEditDetailByLoadId: 终点节点信息不存在 loadId={}", loadId);
return R.fail(405, "终点节点信息不存在");
}
Long endNodeId = endCarsLoadLineEntity.getNodeId();
if (endNodeId.equals(warehouseId)) {
log.warn("###############selectEditDetailByLoadId: 终点节点不能编辑配载 loadId={}", loadId);
return R.fail(405, "终点节点不能编辑配载");
}
// Long endNodeId = endCarsLoadLineEntity.getNodeId();
// if (endNodeId.equals(warehouseId)) {
// log.warn("###############selectEditDetailByLoadId: 终点节点不能编辑配载 loadId={}", loadId);
// return R.fail(405, "终点节点不能编辑配载");
// }
}
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
@ -1493,7 +1494,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Transactional(rollbackFor = Exception.class)
@Override
public R updateCarsLoadBasicData(TrunklineCarsLoadDTO carsLoadDTO, Long warehouseId) {
Long loadId = carsLoadDTO.getId();
@ -1650,6 +1651,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadLineEntity.setUnloadStatus("0");
carsLoadLineEntity.setLoadingStatus("0");
carsLoadLineEntity.setIsTermination("0");
carsLoadLineEntity.setPlanLoadingNumber(0);
trunklineCarsLoadLineService.save(carsLoadLineEntity);
carsLoadLineId = carsLoadLineEntity.getId();
str.append("&").append(nodeName).append(carsLoadLineEntity.getNodeName()).append(":").append("新增节点 费用增加").append(carsLoadLineEntity.getTollFee());
@ -1663,6 +1665,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String orderCode = trunklineCarsOrderDTO.getOrderCode();
String waybillNo = trunklineCarsOrderDTO.getWaybillNo();
Long carsOrderId = trunklineCarsOrderDTO.getId();
//修改当前仓的装车节点指定的订单运单数据为异常
trunklineCarsLoadScanService.updateScanToAbnormalByLoadIdAndNodeIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId, nodeId, warehouseId, orderCode, waybillNo);
//删除指定的订单关联信息
@ -1684,31 +1687,52 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
for (TrunklineCarsOrderDTO trunklineCarsOrderDTO : addList) {
TrunklineCarsOrderEntity trunklineCarsOrderEntity = new TrunklineCarsOrderEntity();
BeanUtil.copy(trunklineCarsOrderDTO, trunklineCarsOrderEntity);
Integer realNum = trunklineCarsOrderDTO.getRealNum();
Long finalNodeId = trunklineCarsOrderDTO.getFinalNodeId();
BasicdataWarehouseEntity finalWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(finalNodeId);
String orderCode = trunklineCarsOrderDTO.getOrderCode();
String waybillNo = trunklineCarsOrderDTO.getWaybillNo();
if(Objects.isNull(realNum)){
realNum = 0;
}
trunklineCarsOrderEntity.setId(null);
trunklineCarsOrderEntity.setLoadId(loadId);
trunklineCarsOrderEntity.setLoadLineId(carsLoadLineId);
trunklineCarsOrderEntity.setNodeId(warehouseId);
trunklineCarsOrderEntity.setNodeName(currentLoadLineEntity.getNodeName());
trunklineCarsOrderEntity.setRealNum(0);
// trunklineCarsOrderEntity.setNodeId(warehouseId);
// trunklineCarsOrderEntity.setNodeName(currentLoadLineEntity.getNodeName());
trunklineCarsOrderEntity.setRealNum(realNum);
trunklineCarsOrderEntity.setStartNum(trunklineCarsOrderDTO.getPlanNum());
trunklineCarsOrderService.save(trunklineCarsOrderEntity);
if(realNum > 0){
//如果装车数量大于0则需要把装车的包件的计划目的仓改到对应的目的仓
trunklineCarsLoadScanService.updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId,trunklineCarsOrderEntity.getNodeId(),orderCode,waybillNo,finalNodeId,finalWarehouseEntity.getName());
}
}
}
loadLineTitleName = "";
List<TrunklineCarsLoadLineEntity> loadLineEntityList = trunklineCarsLoadLineService.findListByLoadId(loadId);
for (TrunklineCarsLoadLineEntity carsLoadLineEntity : loadLineEntityList) {
String nodeName = carsLoadLineEntity.getNodeName();
if (StringUtil.isBlank(loadLineTitleName)) {
loadLineTitleName = nodeName;
} else {
loadLineTitleName = loadLineTitleName + "->" + nodeName;
}
}
carsLoadEntity.setCarsLineName(loadLineTitleName);
carsLoadEntity.setEndWarehouseIds(endWarehouseIds);
carsLoadEntity.setEndWarehouseNames(endWarehouseNames);
String[] split = endWarehouseIds.split(",");
int length = split.length;
Long lastEndWarehouseId = Long.parseLong(split[length - 1]);
if(lastEndWarehouseId.equals(warehouseId)){
//移除当前仓作为目的仓的装车记录
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("load_id",loadId)
.eq("warehouse_id",warehouseId).isNull("final_node_id");
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper);
if(CollUtil.isNotEmpty(carsLoadScanEntityList)){
//把carsLoadScanEntityList中所有元素的id放入一个List
List<Long> ids = carsLoadScanEntityList.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList());
removeCarsLoadScan(ids,warehouseId);
}
carsLoadEntity.setLoadStatus("40");
}else{
carsLoadEntity.setLoadStatus("20");
}
updateById(carsLoadEntity);
updateNumByLoadId(loadId);
@ -1730,9 +1754,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("#############updateCarsLoadBasicData: 存入日志失败");
}
return R.success("更新成功");
}
@ -6366,123 +6387,245 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Transactional(rollbackFor = Exception.class)
@Override
public R removeCarsLoadScan(String carsLoadScanIds, Long warehouseId) {
String[] split = carsLoadScanIds.split(",");
Long loadId = null;
for (String str : split) {
long carsLoadScanId = Long.parseLong(str);
public R removeCarsLoadScan(List<Long> carsLoadScanIds, Long warehouseId) {
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
if (Objects.isNull(carsLoadScanEntity)) {
log.warn("##################removeCarsLoadScan: 配载装车扫描不存在 carsLoadScanId={}", carsLoadScanId);
return R.fail(405, "配载装车扫描不存在");
}
loadId = carsLoadScanEntity.getLoadId();
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
if (Objects.isNull(carsLoadEntity)) {
log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId);
return R.fail(405, "配载计划不存在");
}
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id", carsLoadScanIds)
.eq("scan_status", "1");
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper);
if (CollUtil.isEmpty(carsLoadScanEntityList)) {
log.warn("##################removeCarsLoadScan: 没有删除的数据 carsLoadScanIds={}", carsLoadScanIds);
return R.fail(405, "没有删除的数据");
}
Long nowWarehouseId = carsLoadEntity.getNowWarehouseId();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if(Objects.isNull(warehouseEntity)){
log.warn("##################removeCarsLoadScan: 仓库信息不存在 warehouseId={}", warehouseId);
return R.fail(405, "仓库信息不存在");
}
String warehouseName = warehouseEntity.getName();
if (!nowWarehouseId.equals(warehouseId)) {
log.warn("##################removeCarsLoadScan: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId);
return R.fail(405, "暂未有权限进行操作");
}
String loadStatus = carsLoadEntity.getLoadStatus();
if (!"0".equals(loadStatus) && !"20".equals(loadStatus) && !"40".equals(loadStatus) && !"100".equals(loadStatus)) {
log.warn("##################removeCarsLoadScan: 当前配载计划不属于到车状态 loadStatus={} warehouseId={}", loadStatus, warehouseId);
return R.fail(405, "当前配载计划不属于到车状态");
}
//把carsLoadScanEntityList通过loadId分组
Map<Long, List<TrunklineCarsLoadScanEntity>> groupedByLoadId = carsLoadScanEntityList.stream()
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getLoadId));
Set<Long> loadIdSet = groupedByLoadId.keySet();
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if (Objects.isNull(carsLoadLineEntity)) {
log.warn("##################removeCarsLoadScan: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
return R.fail(405, "当前节点信息不存在");
}
String nodeStatus = carsLoadLineEntity.getNodeStatus();
if (!"10".equals(nodeStatus)) {
log.warn("##################removeCarsLoadScan: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId);
return R.fail(405, "当前节点不是到车状态");
}
List<DistributionParcelListEntity> updateParceListList = new ArrayList<>();
List<DistributionStockArticleEntity> updateStockArticleList = new ArrayList<>();
//删除
boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId);
if (b) {
Integer isData = carsLoadScanEntity.getIsData();
if (isData == 1) {
updateNumByLoadId(loadId);
String warehouseName = carsLoadScanEntity.getWarehouseName();
Integer isAbnormal = carsLoadScanEntity.getLoadingAbnormal();
Integer num = carsLoadScanEntity.getNum();
Long trayId = carsLoadScanEntity.getTrayId();
String trayCode = carsLoadScanEntity.getTrayCode();
String orderCode = carsLoadScanEntity.getOrderCode();
String waybillNo = carsLoadScanEntity.getWaybillNo();
String scanCode = carsLoadScanEntity.getScanCode();
Integer type = carsLoadScanEntity.getType();
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
String fromWarehouseName = null;
groupedByLoadId.keySet().forEach(loadId -> {
List<TrunklineCarsLoadScanEntity> loadScanEntityList = groupedByLoadId.get(loadId);
if(CollUtil.isNotEmpty(loadScanEntityList)){
//把loadScanEntityList通过fromNodeId进行分组
Map<Long, List<TrunklineCarsLoadScanEntity>> groupedByFromWarehouseId = loadScanEntityList.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getFromWarehouseId()))
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId));
groupedByFromWarehouseId.keySet().forEach(fromWarehouseId -> {
BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId);
if (!Objects.isNull(fromWarehouseEntity)) {
fromWarehouseName = fromWarehouseEntity.getName();
}
String fromWarehouseEntityName = fromWarehouseEntity.getName();
List<TrunklineCarsLoadScanEntity> loadScanEntityList1 = groupedByFromWarehouseId.get(fromWarehouseId);
if(CollUtil.isNotEmpty(loadScanEntityList1)){
//把loadScanEntityList1通过type进行分组
Map<Integer, List<TrunklineCarsLoadScanEntity>> groupedByType = loadScanEntityList1.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getType()))
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType));
groupedByType.keySet().forEach(type -> {
List<TrunklineCarsLoadScanEntity> trunklineCarsLoadScanEntities = groupedByType.get(type);
//把trunklineCarsLoadScanEntities通过orderCode进行分组
Map<String, List<TrunklineCarsLoadScanEntity>> groupedByOrderCode = trunklineCarsLoadScanEntities.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getOrderCode()))
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getOrderCode));
if(type == 1){
groupedByOrderCode.keySet().forEach(orderCode -> {
DistributionStockArticleEntity distributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
List<TrunklineCarsLoadScanEntity> loadScanEntityList2 = groupedByOrderCode.get(orderCode);
if(CollUtil.isNotEmpty(loadScanEntityList2)){
//把loadScanEntityList2的num进行累加
Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum);
//把loadScanEntityList2中所有元素的scanCode放入一个List
List<String> scanCodeList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getScanCode).collect(Collectors.toList());
FindParamterDTO findParamterDTO = new FindParamterDTO();
findParamterDTO.setOrderPackageCodeList(scanCodeList);
findParamterDTO.setWarehouseId(fromWarehouseId);
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO);
parcelListEntityList.forEach(parcelListEntity -> {
DistributionParcelListEntity updateParceList = new DistributionParcelListEntity();
updateParceList.setId(parcelListEntity.getId());
updateParceList.setOrderPackageStatus("20");
updateParceListList.add(updateParceList);
});
loadScanEntityList2.forEach(trunklineCarsLoadScanEntity -> {
String trayCode = trunklineCarsLoadScanEntity.getTrayCode();
String scanCode = trunklineCarsLoadScanEntity.getScanCode();
if (StringUtil.isNotBlank(trayCode)) {
updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托");
}
});
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if (!Objects.isNull(stockArticleEntity)) {
Long articleId = stockArticleEntity.getId();
distributionStockArticleClient.submitHandleNumByOrderId(-num, articleId);
}
if (type == 1) {
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(scanCode, fromWarehouseId);
if (Objects.isNull(parcelListEntity)) {
log.warn("##################removeCarsLoadScan: 包件信息不存在 fromWarehouseId={} scanCode={}", fromWarehouseId, scanCode);
return R.fail(405, "包件信息不存在");
}
Long wid = parcelListEntity.getWarehouseId();
String waybillNumber = parcelListEntity.getWaybillNumber();
Long waybillId = parcelListEntity.getWaybillId();
if (!Objects.isNull(waybillId)) {
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
parcelListEntity.setIsTransfer(0);
if (!Objects.isNull(waybillEntity)) {
Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
parcelListEntity.setOrderPackageStatus("20");
if (destinationWarehouseId.equals(wid)) {
parcelListEntity.setIsTransfer(0);
} else {
parcelListEntity.setIsTransfer(1);
}
}
}
distributionParcelListClient.update(parcelListEntity);
// if (StringUtil.isNotBlank(trayCode)) {
// updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托");
// }
List<String> orderPackageCodes = new ArrayList<>();
orderPackageCodes.add(scanCode);
String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName();
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content);
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(distributionStockArticle.getId());
updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num);
updateStockArticleList.add(updateStockArticle);
} else {
// if (StringUtil.isNotBlank(trayCode)) {
// trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, warehouseId, "零担解托");
// }
String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + fromWarehouseEntityName;
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), scanCodeList, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content);
}
});
}else if(type == 2){
groupedByOrderCode.keySet().forEach(orderCode -> {
List<TrunklineCarsLoadScanEntity> loadScanEntityList2 = groupedByOrderCode.get(orderCode);
if(CollUtil.isNotEmpty(loadScanEntityList2)){
//把loadScanEntityList2的num进行累加
Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum);
DistributionStockArticleEntity distributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(distributionStockArticle.getId());
updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num);
updateStockArticleList.add(updateStockArticle);
}
});
}
});
}
}
});
}
});
trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(carsLoadScanIds);
if(CollUtil.isNotEmpty(updateStockArticleList)){
distributionStockArticleClient.updateByBatchId(updateStockArticleList);
}
if (!Objects.isNull(loadId)) {
updateNumByLoadId(loadId);
if(CollUtil.isNotEmpty(updateParceListList)){
distributionParcelListClient.updateList(updateParceListList);
}
if(CollUtil.isNotEmpty(loadIdSet)){
loadIdSet.forEach(loadId -> {
updateNumByLoadId(loadId);
});
}
// Long loadId = null;
// for (String str : split) {
// long carsLoadScanId = Long.parseLong(str);
//
// TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
// if (Objects.isNull(carsLoadScanEntity)) {
// log.warn("##################removeCarsLoadScan: 配载装车扫描不存在 carsLoadScanId={}", carsLoadScanId);
// return R.fail(405, "配载装车扫描不存在");
// }
// loadId = carsLoadScanEntity.getLoadId();
//
// TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
// if (Objects.isNull(carsLoadEntity)) {
// log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId);
// return R.fail(405, "配载计划不存在");
// }
//
// Long nowWarehouseId = carsLoadEntity.getNowWarehouseId();
//
// if (!nowWarehouseId.equals(warehouseId)) {
// log.warn("##################removeCarsLoadScan: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId);
// return R.fail(405, "暂未有权限进行操作");
// }
// String loadStatus = carsLoadEntity.getLoadStatus();
// if (!"0".equals(loadStatus) && !"20".equals(loadStatus) && !"40".equals(loadStatus) && !"100".equals(loadStatus)) {
// log.warn("##################removeCarsLoadScan: 当前配载计划不属于到车状态 loadStatus={} warehouseId={}", loadStatus, warehouseId);
// return R.fail(405, "当前配载计划不属于到车状态");
// }
//
// TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
// if (Objects.isNull(carsLoadLineEntity)) {
// log.warn("##################removeCarsLoadScan: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
// return R.fail(405, "当前节点信息不存在");
// }
//
// String nodeStatus = carsLoadLineEntity.getNodeStatus();
// if (!"10".equals(nodeStatus)) {
// log.warn("##################removeCarsLoadScan: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId);
// return R.fail(405, "当前节点不是到车状态");
// }
//
// //删除
// boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId);
// if (b) {
// Integer isData = carsLoadScanEntity.getIsData();
// if (isData == 1) {
// updateNumByLoadId(loadId);
// String warehouseName = carsLoadScanEntity.getWarehouseName();
// Integer isAbnormal = carsLoadScanEntity.getLoadingAbnormal();
// Integer num = carsLoadScanEntity.getNum();
// Long trayId = carsLoadScanEntity.getTrayId();
// String trayCode = carsLoadScanEntity.getTrayCode();
// String orderCode = carsLoadScanEntity.getOrderCode();
// String waybillNo = carsLoadScanEntity.getWaybillNo();
// String scanCode = carsLoadScanEntity.getScanCode();
// Integer type = carsLoadScanEntity.getType();
// Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
// String fromWarehouseName = null;
// BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId);
// if (!Objects.isNull(fromWarehouseEntity)) {
// fromWarehouseName = fromWarehouseEntity.getName();
// }
//
// DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
// if (!Objects.isNull(stockArticleEntity)) {
// Long articleId = stockArticleEntity.getId();
// distributionStockArticleClient.submitHandleNumByOrderId(-num, articleId);
// }
//
// if (type == 1) {
// DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(scanCode, fromWarehouseId);
// if (Objects.isNull(parcelListEntity)) {
// log.warn("##################removeCarsLoadScan: 包件信息不存在 fromWarehouseId={} scanCode={}", fromWarehouseId, scanCode);
// return R.fail(405, "包件信息不存在");
// }
// Long wid = parcelListEntity.getWarehouseId();
// String waybillNumber = parcelListEntity.getWaybillNumber();
// Long waybillId = parcelListEntity.getWaybillId();
// if (!Objects.isNull(waybillId)) {
// WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
// parcelListEntity.setIsTransfer(0);
// if (!Objects.isNull(waybillEntity)) {
// Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
// parcelListEntity.setOrderPackageStatus("20");
// if (destinationWarehouseId.equals(wid)) {
// parcelListEntity.setIsTransfer(0);
// } else {
// parcelListEntity.setIsTransfer(1);
// }
// }
// }
// distributionParcelListClient.update(parcelListEntity);
//// if (StringUtil.isNotBlank(trayCode)) {
//// updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托");
//// }
//
// List<String> orderPackageCodes = new ArrayList<>();
// orderPackageCodes.add(scanCode);
// String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName();
// packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content);
//
// } else {
//// if (StringUtil.isNotBlank(trayCode)) {
//// trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, warehouseId, "零担解托");
//// }
//
// }
//
// }
// }
// }
// if (!Objects.isNull(loadId)) {
// updateNumByLoadId(loadId);
// }
return R.success("删除成功");
}

14
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

@ -1,6 +1,7 @@
package com.logpm.warehouse.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.basicdata.entity.*;
@ -29,6 +30,7 @@ import org.springblade.common.constant.broadcast.FanoutConstants;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.model.FanoutMsg;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
@ -66,6 +68,7 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl<WarehouseUpd
private final IDistributionStockListInfoClient distributionStockListInfoClient;
private final ISendFanoutService sendFanoutService;
private final IWarehousePackageTrackLogService warehousePackageTrackLogService;
private final BladeRedis bladeRedis;
@Override
public boolean packageChangeStock(List<String> orderPackageCodes) {
@ -119,9 +122,14 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl<WarehouseUpd
@Override
public R findAllAllocationId(Long warehouseId) {
List<Long> allocationIds = basicdataGoodsAllocationClient.findAllAllocationIdByWarehouseId(warehouseId);
String allocationStr = bladeRedis.get("warehouse:all:allocationIds:" + warehouseId);
List<Long> allocationIds = null;
if(StringUtil.isBlank(allocationStr)){
allocationIds = basicdataGoodsAllocationClient.findAllAllocationIdByWarehouseId(warehouseId);
bladeRedis.set("warehouse:all:allocationIds:" + warehouseId, JSONUtil.toJsonStr(allocationIds));
}else{
allocationIds = JSONUtil.toList(allocationStr,Long.class);
}
return R.data(allocationIds);
}

Loading…
Cancel
Save