Browse Source

Merge branch 'dev' into pre-production

master
汤建军 8 months ago
parent
commit
8dce615211
  1. 33
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java
  2. 4
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  3. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java
  4. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  5. 14
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  6. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  7. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  8. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  9. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  10. 401
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  11. 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;
}

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

@ -211,10 +211,8 @@ public class DistributionDatarepair {
* 推送单个 老系统系统
* @return
*/
@XxlJob("pushNotification")
@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);

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