Browse Source

Merge remote-tracking branch 'origin/dev' into pre-production

visual
zhenghaoyu 6 months ago
parent
commit
027ab4f4d6
  1. 2
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java
  2. 3
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java
  3. 13
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java
  4. 9
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java
  5. 4
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java
  6. 2
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java
  7. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java
  8. 4
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java
  9. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java
  10. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  11. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java
  12. 40
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java
  13. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  14. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java
  15. 21
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml
  16. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  17. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java
  18. 169
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  19. 11
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java

2
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java

@ -32,7 +32,7 @@ public class AftersalesAbnormalRecordZeroDetailEntity extends TenantEntity {
@ApiModelProperty(name = "异常记录id",notes = "")
private Long abnormalRecordId;
@ApiModelProperty(name = "异常记录id",notes = "")
@ApiModelProperty(name = "包件id",notes = "")
private Long packageId;
@ApiModelProperty(name = "品类id",notes = "")

3
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java

@ -62,4 +62,7 @@ public interface IDistributionParcelNumberClient {
@GetMapping(API_PREFIX+"/findListByStockArticleId")
List<DistributionParcelNumberEntity> findListByStockArticleId(@RequestParam Long orderId);
@GetMapping(API_PREFIX+"/addHandleQuantity")
void addHandleQuantity(@RequestParam Long packageId, @RequestParam int num);
}

13
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java

@ -0,0 +1,13 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class GoodsLoadingNumVO implements Serializable {
private Long goodsId;
private Integer loadingNum;
}

9
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java

@ -1,5 +1,6 @@
package com.logpm.trunkline.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@ -10,6 +11,9 @@ import java.util.Date;
@Data
public class LoadingDetailExportVO implements Serializable {
@ExcelIgnore
private Long id;
@ExcelProperty(value = "运单号")
private String waybillNo;
@ -85,4 +89,9 @@ public class LoadingDetailExportVO implements Serializable {
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date signTime;
@ExcelProperty(value = "装车品类数量")
private String loadingGoods;
@ExcelProperty(value = "卸车品类数量")
private String unloadGoods;
}

4
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java

@ -3,6 +3,8 @@ package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
public class OrderScanDetailVO implements Serializable {
@ -13,4 +15,6 @@ public class OrderScanDetailVO implements Serializable {
private String trayName;
private String trayCode;
private List<TrunklineScanZeroDetailVO> zeroDetailList = new ArrayList<>();
}

2
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java

@ -11,5 +11,7 @@ public class TrunklineCarsLoadScanVO extends TrunklineCarsLoadScanEntity {
private String destinationWarehouseName;
private String loadingGoods;
private String unloadGoods;
}

1
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java

@ -11,5 +11,6 @@ public class ZeroPackageVO implements Serializable {
private Long goodsId;
private String goodsName;//品类名称
private Integer stockNum;//品类在库件数
private Integer loadingNum;//品类装车件数
}

4
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java

@ -156,6 +156,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
Long waybillId = null;
Integer dealType = abnormalRecordDTO.getDealType();
List<ZeroPackageDTO> zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS();
if(CollUtil.isEmpty(zeroPackageDTOS)){
log.warn("################dealAbnormal: 品类信息不存在");
return R.fail(405,"品类信息不存在");
}
Integer num = abnormalRecordEntity.getNum();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId);

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java

@ -77,4 +77,9 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber
return distributionParcelNumberService.list(queryWrapper);
}
@Override
public void addHandleQuantity(Long packageId, int num) {
distributionParcelNumberService.addZeroQuantity(packageId, num);
}
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml

@ -1880,8 +1880,8 @@
lwwd.product_name goodsName,
ldpl.quantity stockNum
from logpm_distribution_parcel_list ldpl
left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advanceId
where lwwd.order_code = #{waybillNo}
left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id
where lwwd.waybill_no = #{waybillNo}
</select>
<select id="findEntityVOListByOrderCode" resultType="com.logpm.distribution.vo.DistributionParcelListVO">

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java

@ -80,4 +80,5 @@ public interface IDistributionParcelNumberService extends BaseService<Distributi
Integer augmentSignForNum(Long id, Long stockArticleId, Integer quantity);
void addZeroQuantity(Long packageId, int num);
}

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

@ -1215,8 +1215,8 @@ public class CarsLoadController {
// loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(loadId)){
log.warn(method+"三方中转id为空 loadId={}",loadId);
return R.fail(400,"三方中转id为空");
log.warn(method+"配载id为空 loadId={}",loadId);
return R.fail(400,"配载id为空");
}
return carsLoadService.loadingDetail(loadCarsDTO);
@ -1243,6 +1243,40 @@ public class CarsLoadController {
}
@ResponseBody
@PostMapping("/findZeroDetailByCarsLoadScanId")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询零担品类信息", notes = "传入loadCarsDTO")
public R findZeroDetailByCarsLoadScanId(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############findZeroDetailByCarsLoadScanId: ";
log.info(method+"请求参数{}",loadCarsDTO);
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
try{
//当前登录人选择的仓库
// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
// if(Objects.isNull(myCurrentWarehouse)){
// log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
// return R.fail(400,"多仓权限无法操作,请选择仓库");
// }
// loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(carsLoadScanId)){
log.warn(method+"装车零担id为空 carsLoadScanId={}",carsLoadScanId);
return R.fail(400,"装车零担id为空");
}
return carsLoadService.findZeroDetailByCarsLoadScanId(carsLoadScanId);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
@ResponseBody
@PostMapping("/carsLoadDetailInfo")
@ -1430,7 +1464,7 @@ public class CarsLoadController {
return R.fail(405,"目的仓id为空");
}
if(CollUtil.isNotEmpty(zeroPackageList)){
if(CollUtil.isEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}

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

@ -689,7 +689,8 @@
</select>
<select id="loadingDetailExport" resultType="com.logpm.trunkline.vo.LoadingDetailExportVO">
select ltcls.waybill_no waybillNo,
select ltcls.id id,
ltcls.waybill_no waybillNo,
ltcls.load_code carsNo,
ltcls.order_code orderCode,
ltcls.scan_code scanCode,

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java

@ -2,6 +2,7 @@ package com.logpm.trunkline.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.vo.GoodsLoadingNumVO;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
@ -14,4 +15,9 @@ public interface TrunklineScanZeroDetailMapper extends BaseMapper<TrunklineScanZ
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId);
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(@Param("carsLoadScanIds") List<Long> carsLoadScanIds);
List<GoodsLoadingNumVO> findGoodsLoadingNum(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId, @Param("waybillNo") String waybillNo, @Param("orderCode") String orderCode);
void deleteListByCarsLoadScanIds(@Param("carsLoadScanIds") List<Long> carsLoadScanIds);
}

21
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml

@ -18,4 +18,25 @@
</foreach>
</select>
<select id="findGoodsLoadingNum" resultType="com.logpm.trunkline.vo.GoodsLoadingNumVO">
select ltszd.goods_id goodsId,
sum(ltszd.loading_num) loadingNum
from logpm_trunkline_cars_load_scan ltcls
left join logpm_trunkline_scan_zero_detail ltszd on ltszd.scan_id = ltcls.id
where ltcls.load_id = #{loadId}
and ltcls.warehouse_id = #{warehouseId}
and ltcls.waybill_no = #{waybillNo}
and ltcls.order_code = #{orderCode}
group by ltszd.goods_id
</select>
<delete id="deleteListByCarsLoadScanIds">
delete from logpm_trunkline_scan_zero_detail
where scan_id in
<foreach collection="carsLoadScanIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</delete>
</mapper>

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

@ -226,4 +226,6 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R signOrderZeroSuppleList(LoadCarsDTO loadCarsDTO);
R startCarsBefore(Long loadId, Long warehouseId);
R findZeroDetailByCarsLoadScanId(Long carsLoadScanId);
}

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java

@ -1,6 +1,7 @@
package com.logpm.trunkline.service;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.vo.GoodsLoadingNumVO;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import org.springblade.core.mp.base.BaseService;
@ -10,4 +11,9 @@ public interface ITrunklineScanZeroDetailService extends BaseService<TrunklineSc
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(Long carsLoadScanId);
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(List<Long> carsLoadScanIds);
List<GoodsLoadingNumVO> findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode);
void deleteListByCarsLoadScanIds(List<Long> carsLoadScanIds);
}

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

@ -423,7 +423,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//更新关联订单数据的发车数量
trunklineCarsOrderService.updateStartNumByLoadIdAndWarehouseId(loadId, warehouseId);
//删除没有装车的计划数据
trunklineCarsOrderService.deleteNoRealNumByLoadIdAndWarehouseId(loadId, warehouseId);
// trunklineCarsOrderService.deleteNoRealNumByLoadIdAndWarehouseId(loadId, warehouseId);
//更新关联订单数据的发车数量
updateNumByLoadId(loadId);
@ -1709,6 +1709,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.data(map);
}
@Override
public R findZeroDetailByCarsLoadScanId(Long carsLoadScanId) {
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId);
return R.data(zeroDetailVOList);
}
@Transactional(rollbackFor = Exception.class)
@Override
@ -2390,6 +2398,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(!Objects.isNull(stockArticleEntity)){
distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(), i);
}
//把trunklineCarsLoadScanEntities1中所有元素的id放入一个List
List<Long> scanIds = trunklineCarsLoadScanEntities1.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(scanIds);
//把zeroDetailVOList按照packageId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> zeroDetailVOMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId));
zeroDetailVOMap.keySet().forEach(packageId -> {
List<TrunklineScanZeroDetailVO> zeroDetailVOS = zeroDetailVOMap.get(packageId);
Integer lNum = zeroDetailVOS.stream().mapToInt(t -> Objects.nonNull(t.getLoadingNum()) ? t.getLoadingNum() : 0).sum();
Integer uNum = zeroDetailVOS.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
if(uNum != lNum){
int diff = lNum - uNum;
distributionParcelListClient.addZeroQuantity(packageId, diff);
distributionParcelNumberClient.addHandleQuantity(packageId,diff);
}
});
});
}
});
@ -2654,7 +2678,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
loadCarsDTO.setUnloadTimeEnd(CommonUtil.getEndByDateStr(loadCarsDTO.getUnloadTimeEndStr()));
IPage<TrunklineCarsLoadScanVO> pageList = trunklineCarsLoadScanService.loadingDetail(page, loadCarsDTO);
List<TrunklineCarsLoadScanVO> records = pageList.getRecords();
//把records中type等于2的id放入一个集合
List<Long> scanLoadIds = records.stream().filter(item -> item.getType() == 2).map(TrunklineCarsLoadScanVO::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(scanLoadIds)){
List<TrunklineScanZeroDetailVO> scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds);
//把scanZeroDetailVOS通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
records.forEach(item -> {
Long scanId = item.getId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailVOMap.get(scanId);
//把list中所有元素的goodsName用逗号拼起来
String loadingGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getLoadingNum()+")")
.collect(Collectors.joining(","));
String unloadGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getUnloadNum()+")")
.collect(Collectors.joining(","));
item.setLoadingGoods(loadingGoods);
item.setUnloadGoods(unloadGoods);
});
}
pageList.setRecords(records);
return R.data(pageList);
}
@ -3052,6 +3098,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//把parcelListEntities转化为id作为key的Map
Map<Long, DistributionParcelListEntity> parcelListMapById = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity()));
List<DistributionParcelNumberEntity> parcelNumberEntityList = distributionParcelNumberClient.findListByParcelListIds(new ArrayList<>(parcelListMapById.keySet()));
//把parcelNumberEntityList转化成以parceListId为key的Map
Map<Long, DistributionParcelNumberEntity> parcelNumberMapByParceListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity()));
//把parcelListEntities转化成以firsts作为key的map
Map<String, DistributionParcelListEntity> parcelListMap = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity()));
@ -3151,6 +3200,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
loadScanId = carsLoadScanEntity.getId();
List<TrunklineScanZeroDetailEntity> zeroDetailList = new ArrayList<>();
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParceNumberList = new ArrayList<>();
if(CollUtil.isNotEmpty(zeroPackageList)){
Long finalLoadScanId = loadScanId;
zeroPackageList.forEach(zeroPackageDTO -> {
@ -3164,10 +3214,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
zeroDetailList.add(scanZeroDetailEntity);
DistributionParcelListEntity parcelList = parcelListMap.get(zeroPackageDTO.getGoodsName());
Integer quantity = parcelList.getQuantity();
Long parcelListId = parcelList.getId();
DistributionParcelListEntity updateEntity = new DistributionParcelListEntity();
updateEntity.setId(parcelList.getId());
updateEntity.setId(parcelListId);
updateEntity.setQuantity(quantity-zeroPackageDTO.getEnterNum());
updateParceList.add(updateEntity);
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId.get(parcelListId);
DistributionParcelNumberEntity updateNumberEntity = new DistributionParcelNumberEntity();
updateNumberEntity.setId(parcelNumberEntity.getId());
updateNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()-zeroPackageDTO.getEnterNum());
updateParceNumberList.add(updateNumberEntity);
});
}else{
if(enterNum == handQuantity){
@ -3184,10 +3240,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
scanZeroDetailEntity.setUnloadNum(0);
zeroDetailList.add(scanZeroDetailEntity);
Integer quantity = entity.getQuantity();
Long parceListId = entity.getId();
DistributionParcelListEntity updateEntity = new DistributionParcelListEntity();
updateEntity.setId(entity.getId());
updateEntity.setQuantity(quantity-entityByWaybillDetailId.getNum());
updateParceList.add(updateEntity);
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId.get(parceListId);
DistributionParcelNumberEntity updateNumberEntity = new DistributionParcelNumberEntity();
updateNumberEntity.setId(parcelNumberEntity.getId());
updateNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()-entityByWaybillDetailId.getNum());
updateParceNumberList.add(updateNumberEntity);
});
}
}
@ -3197,6 +3259,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateParceNumberList)){
distributionParcelNumberClient.updateList(updateParceNumberList);
}
difficult = enterNum;
distributionStockArticleClient.submitHandleNumByOrderId(enterNum, articleId);
@ -3227,9 +3292,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<TrunklineScanZeroDetailEntity> zeroDetailList = new ArrayList<>();
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParceNumberList = new ArrayList<>();
QueryWrapper<TrunklineScanZeroDetailEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("scanId",loadScanId);
queryWrapper1.eq("scan_id",loadScanId);
List<TrunklineScanZeroDetailEntity> scanZeroDetailEntities = scanZeroDetailService.list(queryWrapper1);
//把scanZeroDetailEntities中所有元素的scanId作为key转为Map
Map<Long, TrunklineScanZeroDetailEntity> map = scanZeroDetailEntities.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity()));
@ -3248,11 +3314,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405, "包件信息不存在");
}
Integer quantity = parcelList.getQuantity();
Long parcelListId = parcelList.getId();
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId.get(parcelListId);
if(Objects.isNull(parcelNumberEntity)){
log.warn("##################loadingZero: 包件信息不存在111 packageId={}", packageId);
return R.fail(405, "包件信息不存在");
}
Integer handQuantity1 = parcelNumberEntity.getHandQuantity();
Integer loadingNum = scanZeroDetailEntity.getLoadingNum();
int i2 = enterNum1 - loadingNum;
parcelList.setQuantity(quantity-i2);
updateParceList.add(parcelList);
parcelNumberEntity.setHandQuantity(handQuantity1-i2);
updateParceNumberList.add(parcelNumberEntity);
scanZeroDetailEntity.setLoadingNum(enterNum1);
zeroDetailList.add(scanZeroDetailEntity);
}
@ -3263,6 +3338,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateParceNumberList)){
distributionParcelNumberClient.updateList(updateParceNumberList);
}
}
audio = (enterNum)+"件";
@ -3607,7 +3685,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
public R findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId) {
List<OrderScanDetailVO> orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId);
if(CollUtil.isNotEmpty(orderScanDetailList)){
//把orderScanDetailList中所有元素的loadScanId放入一个List
List<Long> loadScanIdList = orderScanDetailList.stream().map(OrderScanDetailVO::getLoadScanId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(loadScanIdList);
//把zeroDetailVOList中所有元素通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> zeroDetailMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
orderScanDetailList.forEach(orderScanDetailVO -> {
Long loadScanId = orderScanDetailVO.getLoadScanId();
List<TrunklineScanZeroDetailVO> list = zeroDetailMap.get(loadScanId);
orderScanDetailVO.setZeroDetailList(list);
});
}
return R.data(orderScanDetailList);
}
@ -3911,6 +4000,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
scanZeroDetailEntity.setUnloadNum(0);
scanZeroDetailEntityList.add(scanZeroDetailEntity);
distributionParcelListClient.addZeroQuantity(packageId,-packageNum);
distributionParcelNumberClient.addHandleQuantity(packageId,-packageNum);
});
scanZeroDetailService.saveBatch(scanZeroDetailEntityList);
@ -6154,7 +6244,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String orderCode = e.getOrderCode();
String waybillNo = e.getWaybillNo();
Integer planNum = e.getPlanNum();
if (realNum < planNum) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
Integer handQuantity = stockArticleEntity.getHandQuantity();
int i = handQuantity + realNum;
if (realNum < planNum && planNum == i) {
loadingZero(loadId, warehouseId, waybillNo, orderCode, null, planNum, "手动一键装车",null);
}
});
@ -6948,7 +7043,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Override
public List<LoadingDetailExportVO> loadingDetailExport(LoadCarsDTO loadCarsDTO) {
return trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO);
List<LoadingDetailExportVO> loadingDetailExportVOS = trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO);
//把records中type等于2的id放入一个集合
List<Long> scanLoadIds = loadingDetailExportVOS.stream().filter(item -> item.getType().equals("零担")).map(LoadingDetailExportVO::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(scanLoadIds)){
List<TrunklineScanZeroDetailVO> scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds);
//把scanZeroDetailVOS通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
loadingDetailExportVOS.forEach(item -> {
Long scanId = item.getId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailVOMap.get(scanId);
//把list中所有元素的goodsName用逗号拼起来
String loadingGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getLoadingNum()+")")
.collect(Collectors.joining(","));
String unloadGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getUnloadNum()+")")
.collect(Collectors.joining(","));
item.setLoadingGoods(loadingGoods);
item.setUnloadGoods(unloadGoods);
});
}
return loadingDetailExportVOS;
}
@Override
@ -7194,10 +7312,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<LoadZeroListVO> zeroList = trunklineCarsOrderService.findZeroList(loadId, warehouseId);
zeroList.forEach(loadZeroListVO -> {
String waybillNo = loadZeroListVO.getWaybillNo();
String orderCode = loadZeroListVO.getOrderCode();
List<GoodsLoadingNumVO> loadingNumVOList = scanZeroDetailService.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode);
//把loadingNumVOList转化成以goodsId作为key的Map
Map<Long, GoodsLoadingNumVO> map = loadingNumVOList.stream().collect(Collectors.toMap(GoodsLoadingNumVO::getGoodsId, Function.identity()));
List<JSONObject> zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNo(waybillNo);
List<ZeroPackageVO> ls = new ArrayList<>();
zeroPackageList.forEach(jsonObject -> {
ls.add(jsonObject.toJavaObject(ZeroPackageVO.class));
ZeroPackageVO javaObject = jsonObject.toJavaObject(ZeroPackageVO.class);
Long goodsId = javaObject.getGoodsId();
GoodsLoadingNumVO goodsLoadingNumVO = map.get(goodsId);
if(Objects.isNull(goodsLoadingNumVO)){
javaObject.setLoadingNum(0);
}else{
javaObject.setLoadingNum(goodsLoadingNumVO.getLoadingNum());
}
ls.add(javaObject);
});
loadZeroListVO.setZeroPackageList(ls);
});
@ -7328,6 +7458,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num);
updateStockArticleList.add(updateStockArticle);
//把loadScanEntityList2中所有元素的id放入一个List
List<Long> carsLoadScanIdList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds);
//把zeroDetailVOList所有元素通过packageId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> groupedByPackageId = zeroDetailVOList.stream().filter(trunklineScanZeroDetailVO-> !Objects.isNull(trunklineScanZeroDetailVO.getPackageId()))
.collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId));
groupedByPackageId.keySet().forEach(packageId -> {
List<TrunklineScanZeroDetailVO> scanZeroDetailVOList = groupedByPackageId.get(packageId);
Integer loadingNum = scanZeroDetailVOList.stream().map(TrunklineScanZeroDetailVO::getLoadingNum).reduce(0, Integer::sum);
distributionParcelListClient.addZeroQuantity(packageId, loadingNum);
});
if(warehouseId.equals(fromWarehouseId)){
Long waybillId = distributionStockArticle.getWaybillId();
String waybillNo = distributionStockArticle.getWaybillNumber();
@ -7363,8 +7505,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
});
}
});
//删除装车明细
trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(carsLoadScanIds);
//删除零担的品类信息
scanZeroDetailService.deleteListByCarsLoadScanIds(carsLoadScanIds);
if(CollUtil.isNotEmpty(updateStockArticleList)){
distributionStockArticleClient.updateByBatchId(updateStockArticleList);
@ -9095,6 +9239,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("############unloadZero: 配载计划节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
return R.fail(405, "配载计划节点信息不存在");
}
// String nodeStatus = loadLineEntity.getNodeStatus();
// if("10".equals(nodeStatus)){
// log.warn("############unloadZero: 当钱节点还未到车 loadId={} warehouseId={}", loadId, warehouseId);
// return R.fail(405, "当钱节点还未到车");
// }
String unloadStatus = loadLineEntity.getUnloadStatus();
if (!"0".equals(unloadStatus)) {
log.warn("############unloadZero: 当前网点已经卸车确认 loadId={} warehouseId={}", loadId, warehouseId);

11
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java

@ -3,6 +3,7 @@ package com.logpm.trunkline.service.impl;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.mapper.TrunklineScanZeroDetailMapper;
import com.logpm.trunkline.service.ITrunklineScanZeroDetailService;
import com.logpm.trunkline.vo.GoodsLoadingNumVO;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -24,4 +25,14 @@ public class TrunklineScanZeroDetailServiceImpl extends BaseServiceImpl<Trunklin
public List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(List<Long> carsLoadScanIds) {
return baseMapper.findListByCarsLoadScanIds(carsLoadScanIds);
}
@Override
public List<GoodsLoadingNumVO> findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode) {
return baseMapper.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode);
}
@Override
public void deleteListByCarsLoadScanIds(List<Long> carsLoadScanIds) {
baseMapper.deleteListByCarsLoadScanIds(carsLoadScanIds);
}
}

Loading…
Cancel
Save