Browse Source

Merge branch 'pre-production'

master
pref_mail@163.com 5 months ago
parent
commit
0f67189144
  1. 2
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java
  2. 8
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java
  3. 3
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  4. 105
      blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/MerchantStatisticsDTO.java
  5. 19
      blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/vo/WaybillDetailByWaybillNoVo.java
  6. 8
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java
  7. 16
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadPackagePlanVO.java
  8. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadScanOrderVO.java
  9. 6
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java
  10. 6
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java
  11. 2
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadScanOrderVO.java
  12. 6
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java
  13. 18
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java
  14. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml
  15. 12
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java
  16. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  17. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  18. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  19. 117
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java
  20. 51
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/FactoryNodeEnums.java
  21. 17
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeMappingEnums.java
  22. 10
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeNeedEnums.java
  23. 25
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/SiteLevelEnums.java
  24. 16
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.java
  25. 5
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.xml
  26. 30
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java
  27. 154
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java
  28. 14
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodePushService.java
  29. 99
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java
  30. 22
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodePushServiceImpl.java
  31. 175
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java
  32. 31
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsBalanceOrderInfoMapper.xml
  33. 4
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java
  34. 48
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml
  35. 13
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.xml
  36. 301
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsBalanceOrderInfoServiceImpl.java
  37. 53
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java
  38. 13
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsReconciliationOrderInfoServiceImpl.java
  39. 83
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java
  40. 66
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml
  41. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  42. 46
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  43. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java
  44. 49
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml
  45. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  46. 8
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  47. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java
  48. 37
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  49. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  50. 210
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  51. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java
  52. 8
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java
  53. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java
  54. 2
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java
  55. 8
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml
  56. 2
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java
  57. 4
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java

2
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java

@ -127,4 +127,6 @@ public interface IBasicdataClientClient {
@PostMapping(API_PREFIX+"/saveEntity")
Long saveEntity(@RequestBody BasicdataClientEntity clientEntity) ;
@GetMapping(API_PREFIX+"/getFinallyClientCode")
String getFinallyClientCode();
}

8
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java

@ -113,8 +113,12 @@ public interface IBasicdataWarehouseClient {
BasicdataWarehouseVO getMyCurrentWarehouseAndConfig();
/**
* 获取房前登录人能看的仓库ID集合
* @return
*/
@GetMapping(API_PREFIX + "/getWarehouseIds")
List<Long> getWarehouseIds();
/**
* 获取当前登录人的能查看的仓库

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

@ -306,5 +306,8 @@ public interface IDistributionParcelListClient {
@PostMapping(API_PREFIX + "/deleteListByOrderPackageCodes")
R deleteListByOrderPackageCodes(@RequestBody FindParamterDTO findParamterDTO);
@GetMapping(API_PREFIX + "/findOrderPackageCodeAndStatus")
DistributionParcelListEntity findOrderPackageCodeAndStatus(@RequestParam String orderPackageCode, @RequestParam String orderPackageStatus);
}

105
blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/MerchantStatisticsDTO.java

@ -18,7 +18,6 @@ public class MerchantStatisticsDTO implements Serializable {
private Integer listType;
private String consignee;
private String shipper;
private Long consigneeId;
@ -33,17 +32,32 @@ public class MerchantStatisticsDTO implements Serializable {
private List<AftersalesOrderDTO> aftersalesOrderDTOS;
private Integer syncFeeSstatus;
private Integer signStatus;
private Integer isAftersales;
private Integer balanceStatus;
private Integer abnormalBalanceStatus;
private String balanceOrderNo;
/**
* 运单号
*/
private String waybillNo;
/**
* 订单号
*/
private String orderCode;
private String departureWarehouseName;
/**
* 目的仓
*/
private String destinationWarehouseName;
/**
* 服务类型
*/
private String typeService;
private String shipperPerson;
private String shipperMoblie;
@ -57,8 +71,91 @@ public class MerchantStatisticsDTO implements Serializable {
private String openTimeStartStr;
private String openTimeEndStr;
/**
* 收货单位
*/
private String consignee;
/**
* 计算金额状态 0否 1是
*/
private Integer syncFeeSstatus;
/**
*
* 签收状态0-未签收1-部分签收2-已签收
*/
private Integer signStatus;
/**
* 计算价格开始时间
*/
private Date syncFeeDateStart;
/**
* 计算价格结束时间
*/
private Date syncFeeDateEnd;
/**
* 签收开始时间
*/
private Date signTimeStart;
/**
* 签收开始时间
*/
private Date signTimeEnd;
/**
* 开单时间 开始
*/
private Date openTimeStart;
/**
* 开单时间 结束
*/
private Date openTimeEnd;
/**
* 结算状态0未结算 1部分结算 2已结算
*/
private Integer balanceStatus;
/**
* 结算开始时间
*/
private Date balanceTimeStart;
/**
* 结算结束时间
*/
private Date balanceTimeEnd;
/**
* 异常开始时间
*/
private Date abnormalTimeStart;
/**
* 异常结束时间
*/
private Date abnormalTimeEnd;
/**
* 单据创建开始时间
*/
private Date createTimeStart;
/**
* 单据单据创建结束时间
*/
private Date createTimeEnd;
/**
* 能查看的仓库列表
*/
private List<Long> warehouseIds;
}

19
blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/vo/WaybillDetailByWaybillNoVo.java

@ -0,0 +1,19 @@
package com.logpm.statistics.vo;
import lombok.Data;
@Data
public class WaybillDetailByWaybillNoVo {
/**
* 运单ID
*/
private Long waybillId;
/**
* 凭借的产品数量
* @Detail 木门(3),木门配件(17)
*/
private String goodsName;
}

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

@ -206,4 +206,12 @@ public class LoadCarsDTO implements Serializable {
private Long endWarehouseId;
private String driverName;
private String driverMobile;
private String carNumber;
private String endWarehouseNames;
private String arriveTime;
private String createUserName;
private String createTime;
}

16
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadPackagePlanVO.java

@ -0,0 +1,16 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CarsLoadPackagePlanVO implements Serializable {
private String orderCode;
private String waybillNo;
private String orderPackageCode;
private String thirds;
private String materialName;
}

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

@ -12,5 +12,6 @@ public class LoadScanOrderVO implements Serializable {
private Integer totalNum;
private Integer planNum;
private Integer realNum;
private Integer isAbnormal;
}

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

@ -14,6 +14,12 @@ public class OrderScanDetailVO implements Serializable {
private Integer num;
private String trayName;
private String trayCode;
private String firsts;
private String senconds;
private String thirds;
private String materialCode;
private String materialName;
private Integer isAbnormal;
private List<TrunklineScanZeroDetailVO> zeroDetailList = new ArrayList<>();

6
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java

@ -21,6 +21,12 @@ public class UnloadPackageVO implements Serializable {
private String unloadNodeName;
private String orderCode;
private String waybillNo;
private String firsts;
private String senconds;
private String thirds;
private String materialCode;
private String materialName;
private Integer isAbnormal;
private List<TrunklineScanZeroDetailVO> scanZeroDetailList = new ArrayList<>();

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

@ -13,7 +13,7 @@ public class UnloadScanOrderVO implements Serializable {
private String orderCode;
private Integer loadingNum;
private Integer unloadNum;
private Integer unloadAbnormal;
private Integer isAbnormal;
private Integer totalNumber;
private List<UnloadPackageVO> unloadPackageList = new ArrayList<>();

6
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java

@ -28,7 +28,6 @@ import com.logpm.basicdata.entity.BasicdataClientUserEntity;
import com.logpm.basicdata.service.IBasicdataClientService;
import com.logpm.basicdata.service.IBasicdataClientUserService;
import com.logpm.basicdata.vo.BasicdataClientVO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import lombok.AllArgsConstructor;
import org.springblade.common.annotations.ChangeAsync;
import org.springblade.core.mp.support.BladePage;
@ -164,4 +163,9 @@ public class BasicdataClientClient implements IBasicdataClientClient {
throw new RuntimeException(e);
}
}
@Override
public String getFinallyClientCode() {
return basicdataClientService.getFinallyClientCode();
}
}

18
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java

@ -166,6 +166,24 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient {
return warehouseWarehouseService.getMyCurrentWarehouseAndConfig();
}
@Override
public List<Long> getWarehouseIds() {
// 仓库ID集合
List<Long> watermarkIds = new ArrayList<>();
// 增加仓库权限的限制
BasicdataWarehouseEntity myCurrentWarehouse = this.getMyCurrentWarehouse();
if (Objects.isNull(myCurrentWarehouse)) {
List<BasicdataWarehouseEntity> myWarehouseList = this.getMyWarehouseList();
myWarehouseList.forEach(warehouse -> {
watermarkIds.add(warehouse.getId());
});
} else {
watermarkIds.add(myCurrentWarehouse.getId());
}
return watermarkIds;
}
@Override
@GetMapping(API_PREFIX+"/getMyWatchWarehouse")

7
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml

@ -111,6 +111,7 @@
lbc. linkman,
lbc. phone,
lbc. type_service,
lbc.clean_obj_type,
lbc. blade_region_province_id,
lbc. blade_region_city_id,
lbc. blade_region_area_id,
@ -159,8 +160,12 @@
<if test="param.clientType != null and param.clientType != ''">
AND lbc.client_type = #{param.clientType}
</if>
<if test="param.cleanObjType != null and param.cleanObjType != ''">
AND lbc.clean_obj_type = #{param.cleanObjType}
</if>
<if test="param.typeServiceName != null and param.typeServiceName != ''">
AND lbc.type_ervice = #{param.typeServiceName}
AND lbc.type_service = #{param.typeServiceName}
</if>
<if test="param.brandName != null and param.brandName != ''">
AND t.aaa LIKE CONCAT('%', #{param.brandName}, '%')

12
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java

@ -421,7 +421,9 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl<BasicdataClientM
basicdataClientLogEntity.setClientName(newClientEntity.getClientName());
basicdataClientLogEntity.setClientId(newClientEntity.getId());
basicdataClientLogEntity.setOperator(AuthUtil.getNickName());
basicdataClientLogEntity.setContent(content.deleteCharAt(content.lastIndexOf(",")).toString());
if(StringUtils.isNotBlank(content)){
basicdataClientLogEntity.setContent(content.deleteCharAt(content.lastIndexOf(",")).toString());
}
return basicdataClientLogService.save(basicdataClientLogEntity);
}
@ -590,7 +592,7 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl<BasicdataClientM
String keyValue = matchDictValue(DictBizCache.getList(OPEN_ORDER_PAY_WAY), i.getDefaultPaymentMethods().trim());
basicdataClient.setDefaultPaymentMethods(keyValue);
basicdataClient.setTypeService(Integer.parseInt(i.getTypeService()));
baseMapper.insert(basicdataClient);
redis.set(RedisKeyConstant.FINAL_CLIENT_CODE + AuthUtil.getTenantId(), basicdataClient.getClientCode());
if (ObjectUtils.isNull(basicdataClient.getId())) {
@ -619,6 +621,12 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl<BasicdataClientM
servicesEntity.setServeWarehouseId(id);
servicesEntity.setServeWarehouseName(i.getServeWarehouseName());
storageServicesEntities.add(servicesEntity);
}else {
BasicdataStorageServicesEntity servicesEntity = new BasicdataStorageServicesEntity();
servicesEntity.setClientId(basicdataClient.getId());
servicesEntity.setDistinguish(2);
servicesEntity.setSendWarehouseName("全部");
storageServicesEntities.add(servicesEntity);
}
//添加品牌
if (ObjectUtils.isNotNull(i.getBrandName())) {

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

@ -654,4 +654,9 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
return R.success("删除成功");
}
@Override
public DistributionParcelListEntity findOrderPackageCodeAndStatus(String orderPackageCode, String orderPackageStatus) {
return distributionParcelListService.findOrderPackageCodeAndStatus(orderPackageCode,orderPackageStatus);
}
}

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

@ -313,4 +313,5 @@ public interface IDistributionParcelListService extends BaseService<Distribution
void deleteListByOrderPackageCodes(List<String> orderPackageCodeList,Long warehouseId);
DistributionParcelListEntity findOrderPackageCodeAndStatus(String orderPackageCode, String orderPackageStatus);
}

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -1583,4 +1583,16 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
public void deleteListByOrderPackageCodes(List<String> orderPackageCodeList, Long warehouseId) {
baseMapper.deleteListByOrderPackageCodes(orderPackageCodeList,warehouseId);
}
@Override
public DistributionParcelListEntity findOrderPackageCodeAndStatus(String orderPackageCode, String orderPackageStatus) {
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_package_code",orderPackageCode).eq("order_package_status",orderPackageStatus);
List<DistributionParcelListEntity> distributionParcelListEntities = baseMapper.selectList(queryWrapper);
if(CollUtil.isNotEmpty(distributionParcelListEntities)){
return distributionParcelListEntities.get(0);
}else{
return null;
}
}
}

117
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java

@ -0,0 +1,117 @@
package com.logpm.factorydata.olo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springblade.core.mp.base.BaseEntity;
/**
* 节点数据推送成功数据
*
* @Author zqb
* @Date 2024/3/26
**/
@Builder
@Data
@TableName("olo_factory_node_push")
@ApiModel(value = "节点数据推送成功数据", description = "节点数据推送成功数据")
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class FactoryNodePushEntity extends BaseEntity {
/**
* 预留1
*/
@ApiModelProperty(value = "预留1")
private String reserve1;
/**
* 预留2
*/
@ApiModelProperty(value = "预留2")
private String reserve2;
/**
* 预留3
*/
@ApiModelProperty(value = "预留3")
private String reserve3;
/**
* 预留4
*/
@ApiModelProperty(value = "预留4")
private String reserve4;
/**
* 预留5
*/
@ApiModelProperty(value = "预留5")
private String reserve5;
/**
* 作业仓库
*/
@ApiModelProperty(value = "作业仓库")
private String warehouse;
/**
* 订单号
*/
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 运单号
*/
@ApiModelProperty(value = "运单号")
private String waybillCode;
/**
* 发货分单号
*/
@ApiModelProperty(value = "发货分单号")
private String shipmentSpitCode;
/**
* 发货单号
*/
@ApiModelProperty(value = "发货单号")
private String shipmentCode;
/**
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String packageCode;
/**
* 类型
*/
@ApiModelProperty(value = "类型(包件到达,包件到货,包件发运,包件配送, 包件签收)")
private String type;
/**
* 类型码
*/
@ApiModelProperty(value = "类型码(包件到达 1,包件到货 2,包件发运 3,包件配送 4, 包件签收 5)")
private Integer typeCode;
/**
* 发送状态
*/
@ApiModelProperty(value = "发送状态(0:成功,-1:失败,1:取消)")
private String sendStatus;
/**
* url
*/
@ApiModelProperty(value = "url")
private String sendUrl;
/**
* 内容
*/
@ApiModelProperty(value = "内容")
private String content;
/**
* 返回值
*/
@ApiModelProperty(value = "返回值")
private String resultContent;
}

51
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/FactoryNodeEnums.java

@ -1,7 +1,8 @@
package com.logpm.factorydata.olo.enums;
import lombok.Getter;
import org.springblade.common.model.IDict;
import java.io.Serializable;
/**
* 工厂节点枚举
@ -10,22 +11,42 @@ import org.springblade.common.model.IDict;
* @create 2024-03-20 15:19
*/
@Getter
public enum FactoryNodeEnums implements IDict<Integer> {
/** 已入库 */
ALREADY_IN_STOCK(101020, "已入库"),
/** 已出库 */
SHIPPED(103020, "已出库"),
/** 已发车 */
DISPATCHED(103040, "已发车"),
/** 配送 */
DISTRIBUTION(302010, "配送"),
/** 已签收 */
SIGNED_FOR(303010, "已签收"),
public enum FactoryNodeEnums implements Serializable {
ARRIVAL(1, "包件到达分拨中心", "已到达", 0),
DELIVERY(2, "包件到货", "已入库", 0),
SHIPMENT(3, "包件发运", "已发运", 1),
DISTRIBUTION(4, "包件配送", "配送中", 1),
SIGN_FOR(5, "包件签收", "已签收", 1),
;
private Integer code;
private String value;
private String status;
/**
* 0:收货 1:发货
*/
private Integer receiveOrSend;
FactoryNodeEnums(Integer code, String value, String status, Integer receiveOrSend) {
this.code = code;
this.value = value;
this.status = status;
this.receiveOrSend = receiveOrSend;
}
public Integer getSiteLecel(Boolean isArrival){
if(isArrival){
return SiteLevelEnums.DISTRIBUTION_CENTER.getCode();
}
if(this.getCode() == 2 || this.getCode() == 3){
return SiteLevelEnums.OUTLET.getCode();
}
if(this.getCode() == 5){
return SiteLevelEnums.SIGN_FOR.getCode();
FactoryNodeEnums(Integer code, String text) {
init(code, text);
}
return SiteLevelEnums.OTHER.getCode();
}
}

17
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeMappingEnums.java

@ -13,20 +13,17 @@ import org.springblade.common.constant.WorkNodeEnums;
@Getter
public enum NodeMappingEnums {
INITIAL_WAREHOUSE_ENTRY(FactoryNodeEnums.ALREADY_IN_STOCK, WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY, 1),
UNLOAD_INCOMING_WAREHOUSE(FactoryNodeEnums.ALREADY_IN_STOCK, WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE, 1),
ARRIVAL(FactoryNodeEnums.DELIVERY, WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE, 1),
DELIVERY(FactoryNodeEnums.ARRIVAL, WorkNodeEnums.TRANSFER_WAREHOUSE_UNLOADING, 1),
END_WAREHOUSE_UNLOADING(FactoryNodeEnums.ARRIVAL, WorkNodeEnums.END_WAREHOUSE_UNLOADING, 1),
INITIAL_WAREHOUSE_LOADING(FactoryNodeEnums.SHIPPED, WorkNodeEnums.INITIAL_WAREHOUSE_LOADING, 1),
INITIAL_WAREHOUSE_DEPART(FactoryNodeEnums.DISPATCHED, WorkNodeEnums.INITIAL_WAREHOUSE_DEPART, 1),
TRANSFER_WAREHOUSE_DEPART(FactoryNodeEnums.DISPATCHED, WorkNodeEnums.TRANSFER_WAREHOUSE_DEPART, 1),
TRIPARTITE_TRANSFER_DEPART(FactoryNodeEnums.DISPATCHED, WorkNodeEnums.TRIPARTITE_TRANSFER_DEPART, 1),
TRANSFER_WAREHOUSE_DEPART(FactoryNodeEnums.SHIPMENT, WorkNodeEnums.TRANSFER_WAREHOUSE_DEPART, 1),
DISTRIBUTION_LOADING(FactoryNodeEnums.DISTRIBUTION, WorkNodeEnums.DISTRIBUTION_LOADING, 1),
SIGN_DIRECT_SHIPPER(FactoryNodeEnums.SIGNED_FOR, WorkNodeEnums.SIGN_DIRECT_SHIPPER, 1),
SIGN_TRIPARTITE_TRANSFER_DEPART(FactoryNodeEnums.SIGNED_FOR, WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART, 1),
CLERK_REVIEW(FactoryNodeEnums.SIGNED_FOR, WorkNodeEnums.CLERK_REVIEW, 1),
SIGN_DIRECT_SHIPPER(FactoryNodeEnums.SIGN_FOR, WorkNodeEnums.SIGN_DIRECT_SHIPPER, 1),
SIGN_TRIPARTITE_TRANSFER_DEPART(FactoryNodeEnums.SIGN_FOR, WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART, 1),
CLERK_REVIEW(FactoryNodeEnums.SIGN_FOR, WorkNodeEnums.CLERK_REVIEW, 1),
;
/**

10
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeNeedEnums.java

@ -13,14 +13,16 @@ import java.io.Serializable;
@Getter
public enum NodeNeedEnums implements Serializable {
INITIAL_WAREHOUSE_ENTRY(101020, "始发仓入库"),
// INITIAL_WAREHOUSE_ENTRY(101020, "始发仓入库"),
UNLOAD_INCOMING_WAREHOUSE(105010,"卸车入库"),
TRANSFER_WAREHOUSE_UNLOADING(105020, "卸车确认"),
END_WAREHOUSE_UNLOADING(105040, "末端仓卸车确认"),
INITIAL_WAREHOUSE_LOADING(103020, "装车"),
// INITIAL_WAREHOUSE_LOADING(103020, "装车"),
INITIAL_WAREHOUSE_DEPART(103040, "始发仓发车"),
// INITIAL_WAREHOUSE_DEPART(103040, "始发仓发车"),
TRANSFER_WAREHOUSE_DEPART(103080, "网点发车"),
TRIPARTITE_TRANSFER_DEPART(104010, "三方中转发车"),
// TRIPARTITE_TRANSFER_DEPART(104010, "三方中转发车"),
/**
* 配送装车
*/

25
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/SiteLevelEnums.java

@ -0,0 +1,25 @@
package com.logpm.factorydata.olo.enums;
import lombok.Getter;
import org.springblade.common.model.IDict;
/**
* 网点级别
*
* @author zhaoqiaobo
* @create 2024-03-20 15:19
*/
@Getter
public enum SiteLevelEnums implements IDict<Integer> {
DISTRIBUTION_CENTER(1, "分拨中心"),
OUTLET(2, "网点"),
OTHER(3, "其他"),
SIGN_FOR(4, "客户签收"),
;
SiteLevelEnums(Integer code, String text) {
init(code, text);
}
}

16
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.java

@ -0,0 +1,16 @@
package com.logpm.factorydata.olo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.factorydata.olo.entity.FactoryNodePushEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 工厂订单日志 mapper
*
* @author zqb
* @since 2024-03-26
*/
@Mapper
public interface FactoryNodePushMapper extends BaseMapper<FactoryNodePushEntity> {
}

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

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.factorydata.olo.mapper.FactoryNodePushMapper">
</mapper>

30
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java

@ -1,39 +1,24 @@
package com.logpm.factorydata.olo.mq;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.factorydata.base.feign.IFactoryDataBaseClient;
import com.logpm.factorydata.base.vo.FactoryWarehouseBindVO;
import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.enums.SaxStatusEnums;
import com.logpm.factorydata.feign.IFactoryDataClient;
import com.logpm.factorydata.olo.entity.DeliveryNoteEntity;
import com.logpm.factorydata.olo.entity.FactoryOrderLogEntity;
import com.logpm.factorydata.olo.service.DeliveryNoteService;
import com.logpm.factorydata.olo.service.FactoryOrderLogService;
import com.logpm.factorydata.olo.vo.DeliveryNoteVO;
import com.logpm.factorydata.vo.SendMsg;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.annotations.LogpmAsync;
import org.springblade.common.constant.HttpConstants;
import org.springblade.common.constant.factorydata.FactoryDataConstants;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
@ -42,8 +27,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -109,6 +92,7 @@ public class FactoryOrderListener {
Map<String, Long> entityMap = new HashMap<>();
if (CollUtil.isNotEmpty(crmSos) && CollUtil.isNotEmpty(sns)) {
List<DeliveryNoteEntity> existingEntities = deliveryNoteService.list(Wrappers.<DeliveryNoteEntity>lambdaQuery()
.select(DeliveryNoteEntity::getId,DeliveryNoteEntity::getCrmSo,DeliveryNoteEntity::getSn)
.in(DeliveryNoteEntity::getCrmSo, crmSos)
.in(DeliveryNoteEntity::getSn, sns));
if (CollUtil.isNotEmpty(existingEntities)) {
@ -134,10 +118,20 @@ public class FactoryOrderListener {
entity.setEndingCustomerTel(vo.getENDING_CUSTOMER_TEL());
entity.setCrmSo(vo.getCRM_SO());
entity.setSpace(vo.getSPACE());
entity.setSn(vo.getSN());
// 原始单号- 老系统处理完之后推的暂存单的包条码
// if(sn.startsWith("OLO")){
// String[] split = sn.split("-");
// if(ArrayUtils.isNotEmpty(split)){
// entity.setReserve1(split[0].substring(3));
// }
// } else {
// entity.setReserve1(sn);
// }
entity.setSn(sn);
entity.setMaterialCategory(vo.getMATERIAL_CATEGORY());
entity.setSnVolume(vo.getSN_VOLUME());
entity.setSnWeight(vo.getSN_WEIGHT());
// entity.setQty("1");
entity.setQty(vo.getQTY());
entity.setMaterialDesc(vo.getMATERIAL_DESC());
entity.setSumPrice(vo.getSUM_PRICE());

154
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java

@ -1,7 +1,6 @@
package com.logpm.factorydata.olo.mq;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@ -9,11 +8,15 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.logpm.factorydata.feign.IFactoryDataClient;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.factorydata.olo.entity.DeliveryNoteEntity;
import com.logpm.factorydata.olo.entity.FactoryNodePushEntity;
import com.logpm.factorydata.olo.enums.FactoryNodeEnums;
import com.logpm.factorydata.olo.enums.NodeMappingEnums;
import com.logpm.factorydata.olo.enums.NodeNeedEnums;
import com.logpm.factorydata.olo.pros.OldProperties;
import com.logpm.factorydata.olo.service.DeliveryNoteService;
import com.logpm.factorydata.olo.service.FactoryNodePushService;
import com.logpm.factorydata.vo.PushData;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -27,8 +30,11 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -42,8 +48,9 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class NodeDataPushListener {
private final IFactoryDataClient factoryDataClient;
private final OldProperties oldProperties;
private final FactoryNodePushService factoryNodePushService;
private final DeliveryNoteService deliveryNoteService;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FactoryDataConstants.Mq.Queues.OLO_NODE_DATA_PUSH, durable = "true"),
@ -59,40 +66,120 @@ public class NodeDataPushListener {
JSONObject entries = JSONUtil.parseObj(msg);
// 节点
String node = entries.getStr("node");
WorkNodeEnums workNodeEnums = EnumUtil.fromString(WorkNodeEnums.class, node);
FactoryNodeEnums factoryNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums);
// 2 获取业务数据
List<PushData> content = entries.getBeanList("content", PushData.class);
WorkNodeEnums workNodeEnums = EnumUtil.fromString(WorkNodeEnums.class, node);
// 按订单号和运单号进行分组
if (CollUtil.isNotEmpty(content)) {
Map<String, List<PushData>> sendMap = content.stream()
.collect(Collectors.groupingBy(data -> data.getOrderCode() + data.getWaybillNumber()));
JSONArray jsons = new JSONArray(sendMap.size());
for (Map.Entry<String, List<PushData>> entry : sendMap.entrySet()) {
List<PushData> pushDatas = entry.getValue();
PushData pushData = pushDatas.get(0);
JSONObject js = new JSONObject();
js.set("status", factoryNode.getText());
js.set("opTime", DateUtil.now());
js.set("content", factoryNode.getText());
js.set("orderNo", pushData.getOrderCode());
js.set("deliveryNo", pushData.getWaybillNumber());
js.set("siteLevel", 3);
js.set("nodeName", pushData.getWarehouseName());
js.set("receiveOrSend", 1);
js.set("shipmentSplitNo", "");
js.set("receivable", 0);
js.set("receipts", 0);
js.set("shipmentNo", "");
JSONArray snArray = new JSONArray(pushDatas.size());
for (PushData data : pushDatas) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("sn", data.getPackageCode());
jsonObject.set("qty", 1);
snArray.add(jsonObject);
FactoryNodeEnums factoryNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums, 1);
// 1 先处理 批次件 OLO开头的包件 OLO2312064418-20231226010129-1-001 原始包件 2312064418 回传按原始包件回传
content.stream().map(i -> {
String packageCode = i.getPackageCode();
if (StrUtil.startWith(packageCode, "OLO")) {
if (StrUtil.isNotEmpty(packageCode)) {
String[] split = packageCode.split("-");
i.setPackageCode(split[0].substring(3));
}
}
return i;
});
// 2 先查出 包件+订单 的所有发运分单号和发运单号
Set<String> packageSet = content.stream().map(PushData::getPackageCode).collect(Collectors.toSet());
Set<String> orderSet = content.stream().map(PushData::getOrderCode).collect(Collectors.toSet());
List<DeliveryNoteEntity> factoryList = deliveryNoteService.list(Wrappers.<DeliveryNoteEntity>lambdaQuery()
.select(DeliveryNoteEntity::getSn, DeliveryNoteEntity::getCrmSo, DeliveryNoteEntity::getShipmentSplitNo, DeliveryNoteEntity::getShipmentNo, DeliveryNoteEntity::getReserve1)
.in(DeliveryNoteEntity::getSn, packageSet)
.in(DeliveryNoteEntity::getCrmSo, orderSet)
);
// 查询出已推的到达
JSONArray jsons = new JSONArray();
List<FactoryNodePushEntity> pushEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(factoryList)) {
// 按 包件+订单 分组
Map<String, List<DeliveryNoteEntity>> collect = factoryList.stream().collect(Collectors.groupingBy(data -> data.getSn() + data.getCrmSo()));
// 按 订单+运单+发货分单号 分组 作为发送的 key
Map<String, List<PushData>> collect1 = content.stream()
.filter(data -> StrUtil.isNotEmpty(data.getWaybillNumber()))
.collect(Collectors.groupingBy(data -> data.getOrderCode() + data.getWaybillNumber() + collect.get(data.getPackageCode() + data.getOrderCode()).get(0).getShipmentSplitNo()));
for (Map.Entry<String, List<PushData>> entry : collect1.entrySet()) {
List<PushData> value = entry.getValue();
PushData sendData = value.get(0);
String orderCode = sendData.getOrderCode();
String waybillNumber = sendData.getWaybillNumber();
String shipmentSplitNo = collect.get(sendData.getPackageCode() + sendData.getOrderCode()).get(0).getShipmentSplitNo();
List<FactoryNodePushEntity> list = factoryNodePushService.list(Wrappers.<FactoryNodePushEntity>lambdaQuery()
.eq(FactoryNodePushEntity::getOrderCode, orderCode)
.eq(FactoryNodePushEntity::getWaybillCode, waybillNumber)
.eq(FactoryNodePushEntity::getShipmentSpitCode, shipmentSplitNo)
.eq(FactoryNodePushEntity::getTypeCode, FactoryNodeEnums.ARRIVAL.getCode())
);
FactoryNodeEnums needSendNode = factoryNode;
// 是否是分拨中心
Boolean isArrival = Boolean.FALSE;
switch (workNodeEnums) {
// 卸车扫描的时候 如果没有推到达,则不处理 推了到达则推入库
case UNLOAD_INCOMING_WAREHOUSE:
if (CollUtil.isEmpty(list)) {
continue;
}
break;
// 中转 卸车确认 时,如果推了达到,则不处理
case TRANSFER_WAREHOUSE_UNLOADING:
if (CollUtil.isNotEmpty(list)) {
continue;
}
isArrival = Boolean.TRUE;
break;
// 末端仓卸车确认 时,如果推了到达,则不处理
case END_WAREHOUSE_UNLOADING:
if (CollUtil.isNotEmpty(list)) {
continue;
}
isArrival = Boolean.TRUE;
break;
}
if(isArrival){
FactoryNodePushEntity entity = new FactoryNodePushEntity();
entity.setOrderCode(orderCode);
entity.setWaybillCode(waybillNumber);
entity.setShipmentSpitCode(shipmentSplitNo);
entity.setType(needSendNode.getValue());
entity.setTypeCode(needSendNode.getCode());
pushEntities.add(entity);
}
needSendNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums);
JSONObject js = new JSONObject();
js.set("status", needSendNode.getStatus());
js.set("opTime", entries.getStr("operatorTime"));
js.set("content", needSendNode.getValue());
js.set("orderNo", orderCode);
js.set("deliveryNo", waybillNumber);
js.set("siteLevel", needSendNode.getSiteLecel(isArrival));
js.set("nodeName", sendData.getWarehouseName());
js.set("receiveOrSend", needSendNode.getReceiveOrSend());
js.set("shipmentSplitNo", shipmentSplitNo);
js.set("receivable", 0);
js.set("receipts", 0);
js.set("shipmentNo", collect.get(sendData.getPackageCode() + sendData.getOrderCode()).get(0).getShipmentNo());
JSONArray snArray = new JSONArray();
Map<String, Integer> snMap = new HashMap<>();
// value 按包件分组 包含则数量+1
for (PushData data : value) {
if (snMap.containsKey(data.getPackageCode())) {
snMap.put(data.getPackageCode(), snMap.get(data.getPackageCode()) + 1);
} else {
snMap.put(data.getPackageCode(), 1);
}
}
for (Map.Entry<String, Integer> stringIntegerEntry : snMap.entrySet()) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("sn", stringIntegerEntry.getKey());
jsonObject.set("qty", stringIntegerEntry.getValue());
snArray.add(jsonObject);
}
js.set("snList", snArray);
jsons.add(js);
}
js.set("snList", snArray);
jsons.add(js);
}
if (oldProperties.getEnable()) {
try {
@ -100,6 +187,9 @@ public class NodeDataPushListener {
log.info("推送节点数据:{}", JSONUtil.toJsonStr(jsons));
String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(jsons));
log.info("推送结果:{}", post);
if (CollUtil.isNotEmpty(pushEntities)) {
factoryNodePushService.saveBatch(pushEntities);
}
}
} catch (Exception e) {
e.printStackTrace();

14
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodePushService.java

@ -0,0 +1,14 @@
package com.logpm.factorydata.olo.service;
import com.logpm.factorydata.olo.entity.FactoryNodePushEntity;
import org.springblade.core.mp.base.BaseService;
/**
* 回推记录 服务类
*
* @Author zqb
* @Date 2024/4/26
**/
public interface FactoryNodePushService extends BaseService<FactoryNodePushEntity> {
}

99
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java

@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
@ -116,7 +115,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper,
// 车次号 + 订单自编号 一个暂存单
for (DeliveryNoteEntity detail : vos) {
// 我乐包车和快递数据不进入暂存单
if(StrUtil.equals(detail.getShipmentTypeDesc(), "快递") || StrUtil.equals(detail.getShipmentTypeDesc(), "包车")){
if (StrUtil.equals(detail.getShipmentTypeDesc(), "快递") || StrUtil.equals(detail.getShipmentTypeDesc(), "包车")) {
continue;
}
String crmSo = detail.getCrmSo();
@ -134,6 +133,8 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper,
List<JSONObject> advances = new ArrayList<>();
for (Map.Entry<String, List<DeliveryNoteEntity>> stringListEntry : advanceMap.entrySet()) {
List<DeliveryNoteEntity> value = stringListEntry.getValue();
// 计算数量
BigDecimal totalQty = value.stream().map(i -> Convert.toBigDecimal(i.getQty())).reduce(BigDecimal.ZERO, BigDecimal::add);
TrunklineAdvanceEntity advanceEntity = new TrunklineAdvanceEntity();
advanceEntity.setTenantId(tenantId);
advanceEntity.setStatus(0);
@ -143,7 +144,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper,
advanceEntity.setBrand(BrandEnums.OLO.getValue());
advanceEntity.setSiteName("");
advanceEntity.setArea("");
advanceEntity.setTotalNum(CollUtil.isNotEmpty(value) ? value.size() : 0);
advanceEntity.setTotalNum(Convert.toInt(totalQty));
advanceEntity.setPackCode("");
advanceEntity.setWarehouseId(startWarehouseId);
@ -174,52 +175,62 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper,
advanceEntity.setCustomerName(orderPackageDTO.getEndingCustomer());
advanceEntity.setCustomerPhone(orderPackageDTO.getEndingCustomerTel());
advanceEntity.setCustomerAddress(orderPackageDTO.getZgkdz());
// 封装包件
TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity();
advanceDetailEntity.setWarehouseId(startWarehouseId);
advanceDetailEntity.setWarehouseName(startWarehouseName);
Integer anInt = Convert.toInt(orderPackageDTO.getQty());
for (int i = 0; i < anInt; i++) {
// 封装包件
TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity();
advanceDetailEntity.setWarehouseId(startWarehouseId);
advanceDetailEntity.setWarehouseName(startWarehouseName);
// advanceDetailEntity.setIncomingWarehouseId(0L);
// advanceDetailEntity.setIncomingWarehouseName("");
// 根据志邦的一流单标识赋值
advanceEntity.setLegacyStatus("0");
if (StrUtil.contains(orderPackageDTO.getCrmSo(), "遗")) {
advanceEntity.setLegacyStatus("1");
}
// 根据志邦的一流单标识赋值
advanceEntity.setLegacyStatus("0");
if (StrUtil.contains(orderPackageDTO.getCrmSo(), "遗")) {
advanceEntity.setLegacyStatus("1");
}
advanceDetailEntity.setOrderCode(orderPackageDTO.getCrmSo());
advanceDetailEntity.setBrand(BrandEnums.OLO.getValue());
advanceDetailEntity.setSystemType("线上");
advanceDetailEntity.setFirstPackName(orderPackageDTO.getMaterialCategory());
// 获取映射志邦映射品类信息
// 二级品类名称
advanceDetailEntity.setSecondPackName(orderPackageDTO.getMaterialCategory());
// 三级品类名称
advanceDetailEntity.setThirdPackName(orderPackageDTO.getMaterialCategory());
// advanceDetailEntity.setMaterialName(orderPackageDTO.getMaterialCategory());
advanceDetailEntity.setOrderCode(orderPackageDTO.getCrmSo());
advanceDetailEntity.setBrand(BrandEnums.OLO.getValue());
advanceDetailEntity.setSystemType("线上");
advanceDetailEntity.setFirstPackName(orderPackageDTO.getMaterialCategory());
// 获取映射志邦映射品类信息
// 二级品类名称
advanceDetailEntity.setSecondPackName(orderPackageDTO.getMaterialCategory());
// 三级品类名称
advanceDetailEntity.setThirdPackName(orderPackageDTO.getMaterialCategory());
// advanceDetailEntity.setMaterialName(orderPackageDTO.getMaterialCategory());
advanceDetailEntity.setSiteName("");
advanceDetailEntity.setSiteCode("");
advanceDetailEntity.setQuantity((StrUtil.isNotBlank(orderPackageDTO.getQty()) && NumberUtil.isNumber(orderPackageDTO.getQty())) ? Convert.toInt(orderPackageDTO.getQty()) : 0);
advanceDetailEntity.setOrderPackageCode(orderPackageDTO.getSn());
advanceDetailEntity.setTrainNumber(orderPackageDTO.getShipmentNo());
advanceDetailEntity.setServiceNum(orderPackageDTO.getShipmentSplitNo());
advanceDetailEntity.setWaybillNo("");
advanceDetailEntity.setPackageStatus("0");
advanceDetailEntity.setWeight(StrUtil.isNotBlank(orderPackageDTO.getSnWeight()) ? new BigDecimal(orderPackageDTO.getSnWeight()) : BigDecimal.ZERO);
advanceDetailEntity.setVolume(StrUtil.isNotBlank(orderPackageDTO.getSnVolume()) ? new BigDecimal(orderPackageDTO.getSnVolume()) : BigDecimal.ZERO);
advanceDetailEntity.setSiteName("");
advanceDetailEntity.setSiteCode("");
// advanceDetailEntity.setQuantity((StrUtil.isNotBlank(orderPackageDTO.getQty()) && NumberUtil.isNumber(orderPackageDTO.getQty())) ? Convert.toInt(orderPackageDTO.getQty()) : 0);
advanceDetailEntity.setQuantity(1);
// 按老系统生成新的逻辑的包件号 OLO2312064418-20231226010129-1-001
if (anInt > 1) {
advanceDetailEntity.setOrderPackageCode("OLO" + orderPackageDTO.getSn() + "-" + (i + 1) + "-" + StrUtil.padPre(String.valueOf(i + 1), 3, "0"));
} else {
advanceDetailEntity.setOrderPackageCode(orderPackageDTO.getSn());
}
advanceDetailEntity.setReserve4(orderPackageDTO.getSn());
advanceDetailEntity.setTrainNumber(orderPackageDTO.getShipmentNo());
advanceDetailEntity.setServiceNum(orderPackageDTO.getShipmentSplitNo());
advanceDetailEntity.setWaybillNo("");
advanceDetailEntity.setPackageStatus("0");
advanceDetailEntity.setWeight(StrUtil.isNotBlank(orderPackageDTO.getSnWeight()) ? new BigDecimal(orderPackageDTO.getSnWeight()) : BigDecimal.ZERO);
advanceDetailEntity.setVolume(StrUtil.isNotBlank(orderPackageDTO.getSnVolume()) ? new BigDecimal(orderPackageDTO.getSnVolume()) : BigDecimal.ZERO);
// advanceDetailEntity.setChargeType(0);
advanceDetailEntity.setSupple("");
advanceDetailEntity.setManifest("");
advanceDetailEntity.setReturnNum("");
advanceDetailEntity.setSendDateStr(DateUtil.formatLocalDateTime(LocalDateTime.now()));
advanceDetailEntity.setCarNumber("");
advanceDetailEntity.setGoodsMan("");
advanceDetailEntity.setTenantId(tenantId);
advanceDetailEntity.setStatus(0);
advanceDetailEntity.setIsDeleted(0);
JSONObject entries = JSONUtil.parseObj(advanceDetailEntity);
packageList.add(entries);
advanceDetailEntity.setSupple("");
advanceDetailEntity.setManifest("");
advanceDetailEntity.setReturnNum("");
advanceDetailEntity.setSendDateStr(DateUtil.formatLocalDateTime(LocalDateTime.now()));
advanceDetailEntity.setCarNumber("");
advanceDetailEntity.setGoodsMan("");
advanceDetailEntity.setTenantId(tenantId);
advanceDetailEntity.setStatus(0);
advanceDetailEntity.setIsDeleted(0);
JSONObject entries = JSONUtil.parseObj(advanceDetailEntity);
packageList.add(entries);
}
}
// 转成json对象,然后将包件明细放到detail中
JSONObject entries = JSONUtil.parseObj(advanceEntity);

22
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodePushServiceImpl.java

@ -0,0 +1,22 @@
package com.logpm.factorydata.olo.service.impl;
import com.logpm.factorydata.olo.entity.FactoryNodePushEntity;
import com.logpm.factorydata.olo.mapper.FactoryNodePushMapper;
import com.logpm.factorydata.olo.service.FactoryNodePushService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* 工厂订单日志 业务实现类
*
* @Author zqb
* @Date 2024/4/26
**/
@Slf4j
@Service
@AllArgsConstructor
public class FactoryNodePushServiceImpl extends BaseServiceImpl<FactoryNodePushMapper, FactoryNodePushEntity> implements FactoryNodePushService {
}

175
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java

@ -56,42 +56,47 @@ public class WaybillCheckListener {
))
@Transactional(rollbackFor = Exception.class)
public void checkWaybillIncomingData(String msg) {
log.info("#########checkWaybillIncomingData: 运单审核处理收入结算数据 msg={}",msg);
log.info("#########checkWaybillIncomingData: 运单审核处理收入结算数据 msg={}", msg);
JSONObject jsonObject = JSONUtil.parseObj(msg);
Long waybillId = jsonObject.getLong("waybillId");
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
if(Objects.isNull(waybillEntity)){
log.warn("###########checkWaybillIncomingData: 运单信息不存在 waybillId={}",waybillId);
if (Objects.isNull(waybillEntity)) {
log.warn("###########checkWaybillIncomingData: 运单信息不存在 waybillId={}", waybillId);
throw new CustomerException(405, "运单信息不存在");
}
Integer waybillType = waybillEntity.getWaybillType();
String payWay = waybillEntity.getPayWay();
if(waybillType.equals(1)){
if (waybillType.equals(1)) {
//订制品(包含有数据库存品)
dealwithPackageOrder(waybillEntity);
}else if(waybillType.equals(2)){
} else if (waybillType.equals(2)) {
//零担
dealwithZeroOrder(waybillEntity);
}else{
log.warn("###############checkWaybillIncomingData: 运单类型不正确 waybillId={} waybillType={}",waybillId,waybillType);
} else {
log.warn("###############checkWaybillIncomingData: 运单类型不正确 waybillId={} waybillType={}", waybillId, waybillType);
}
if(payWay.equals("1")||payWay.equals("2")){
if (payWay.equals("1") || payWay.equals("2")) {
//如果是现付和到付需要直接生成结算单
createBalanceOrder(waybillEntity);
}
log.info("#########checkWaybillIncomingData: 运单审核处理收入结算数据 结束 waybillId={}",waybillId);
log.info("#########checkWaybillIncomingData: 运单审核处理收入结算数据 结束 waybillId={}", waybillId);
}
private void createBalanceOrder(WarehouseWaybillEntity waybillEntity) {
String waybillNo = waybillEntity.getWaybillNo();
log.info("####################createBalanceOrder: 创建现付到付的结算单 waybillNo={}",waybillNo);
log.info("####################createBalanceOrder: 创建现付到付的结算单 waybillNo={}", waybillNo);
Long waybillId = waybillEntity.getId();
WarehouseWaybillEntity byWaybill = warehouseWaybillClient.findByWaybillId(waybillId);
if (Objects.isNull(byWaybill)) {
log.error("############createBalanceOrder: 运单不存在 waybillId={}", waybillId);
}
// List<WarehouseWayBillDetail> wayBillDetailList = warehouseWaybillDetailClient.findByWaybillId(waybillId);
//把wayBillDetailList中所有productName用逗号拼起来
// String productTypeNum = wayBillDetailList.stream().map(t->t.getProductName()+"("+t.getNum()+")").collect(Collectors.joining(","));
@ -103,7 +108,7 @@ public class WaybillCheckListener {
StatisticsPackageFeeInfoVO trunklinePackageFeeVO = statisticsOrderInfoService.findPackageListByOrderIds(orderInfoIdsList);
String balanceOrderCode = "JSD"+System.currentTimeMillis();
String balanceOrderCode = "JSD" + System.currentTimeMillis();
BigDecimal freightPrice = trunklinePackageFeeVO.getFreightPrice();
BigDecimal pickupPrice = trunklinePackageFeeVO.getPickupPrice();
@ -154,8 +159,11 @@ public class WaybillCheckListener {
balanceOrderInfoEntity.setAbnormalBalanceStatus(0);
balanceOrderInfoEntity.setAbnormalBalanceFee(BigDecimal.ZERO);
balanceOrderInfoEntity.setDestinationWarehouseId(byWaybill.getDestinationWarehouseId());
balanceOrderInfoEntity.setDestinationWarehouseName(byWaybill.getDestinationWarehouseName());
boolean saveFlag = balanceOrderInfoService.save(balanceOrderInfoEntity);
if(saveFlag){
if (saveFlag) {
Long balanceOrderId = balanceOrderInfoEntity.getId();
List<StatisticsOrderInfoEntity> updateOrderInfoList = new ArrayList<>();
orderInfoEntityList.forEach(orderInfoEntity -> {
@ -171,7 +179,7 @@ public class WaybillCheckListener {
updateEntity.setConfirmBalanceUserName(AuthUtil.getNickName());
updateOrderInfoList.add(updateEntity);
});
if(CollUtil.isNotEmpty(updateOrderInfoList)){
if (CollUtil.isNotEmpty(updateOrderInfoList)) {
statisticsOrderInfoService.updateBatchById(updateOrderInfoList);
}
}
@ -179,7 +187,7 @@ public class WaybillCheckListener {
private void dealwithZeroOrder(WarehouseWaybillEntity waybillEntity) {
String waybillNo = waybillEntity.getWaybillNo();
log.info("############dealwithZeroOrder: 处理零担信息 waybillNo={}",waybillNo);
log.info("############dealwithZeroOrder: 处理零担信息 waybillNo={}", waybillNo);
Long waybillId = waybillEntity.getId();
String brand = waybillEntity.getBrand();
Long brandId = waybillEntity.getBrandId();
@ -193,12 +201,12 @@ public class WaybillCheckListener {
String destinationWarehouseName = waybillEntity.getDestinationWarehouseName();
// BigDecimal pickupFee = Objects.isNull(waybillEntity.getPickupFee())?BigDecimal.ZERO:waybillEntity.getPickupFee();
BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee())?BigDecimal.ZERO:waybillEntity.getWarehouseManagementFee();
BigDecimal warehouseFee = Objects.isNull(waybillEntity.getStorageFee())?BigDecimal.ZERO:waybillEntity.getStorageFee();
BigDecimal handlingFee = Objects.isNull(waybillEntity.getHandlingFee())?BigDecimal.ZERO:waybillEntity.getHandlingFee();
BigDecimal insuranceFee = Objects.isNull(waybillEntity.getInsuranceFee())?BigDecimal.ZERO:waybillEntity.getInsuranceFee();
BigDecimal otherFee = Objects.isNull(waybillEntity.getOtherFee())?BigDecimal.ZERO:waybillEntity.getOtherFee();
BigDecimal thirdOperationFee = Objects.isNull(waybillEntity.getThirdOperationFee())?BigDecimal.ZERO:waybillEntity.getThirdOperationFee();
BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee()) ? BigDecimal.ZERO : waybillEntity.getWarehouseManagementFee();
BigDecimal warehouseFee = Objects.isNull(waybillEntity.getStorageFee()) ? BigDecimal.ZERO : waybillEntity.getStorageFee();
BigDecimal handlingFee = Objects.isNull(waybillEntity.getHandlingFee()) ? BigDecimal.ZERO : waybillEntity.getHandlingFee();
BigDecimal insuranceFee = Objects.isNull(waybillEntity.getInsuranceFee()) ? BigDecimal.ZERO : waybillEntity.getInsuranceFee();
BigDecimal otherFee = Objects.isNull(waybillEntity.getOtherFee()) ? BigDecimal.ZERO : waybillEntity.getOtherFee();
BigDecimal thirdOperationFee = Objects.isNull(waybillEntity.getThirdOperationFee()) ? BigDecimal.ZERO : waybillEntity.getThirdOperationFee();
Integer totalCount = waybillEntity.getTotalCount();
// BigDecimal pickupPrice = pickupFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP);
@ -235,7 +243,7 @@ public class WaybillCheckListener {
orderInfoEntities.add(orderInfoEntity);
boolean b = statisticsOrderInfoService.saveBatch(orderInfoEntities);
if(b){
if (b) {
Long orderId = orderInfoEntity.getId();
@ -244,7 +252,7 @@ public class WaybillCheckListener {
List<StatisticsDistributionPackageEntity> distributionPackageEntities = new ArrayList<>();
wayBillDetailList.forEach(wayBillDetail->{
wayBillDetailList.forEach(wayBillDetail -> {
Long productId = wayBillDetail.getProductId();
String productName = wayBillDetail.getProductName();
Integer num = wayBillDetail.getNum();
@ -258,8 +266,8 @@ public class WaybillCheckListener {
trunklinePackageEntity.setWaybillNo(waybillNo);
trunklinePackageEntity.setOrderCode(waybillNo);
trunklinePackageEntity.setNum(num);
trunklinePackageEntity.setWeight(Objects.isNull(weight)?BigDecimal.ZERO:weight);
trunklinePackageEntity.setVolume(Objects.isNull(volume)?BigDecimal.ZERO:volume);
trunklinePackageEntity.setWeight(Objects.isNull(weight) ? BigDecimal.ZERO : weight);
trunklinePackageEntity.setVolume(Objects.isNull(volume) ? BigDecimal.ZERO : volume);
trunklinePackageEntity.setGoodsType(2);
trunklinePackageEntity.setOrderInfoId(orderId);
trunklinePackageEntity.setProductId(productId);
@ -279,29 +287,29 @@ public class WaybillCheckListener {
Integer systemWarehouseChargeType = wayBillDetail.getSystemWarehouseChargeType();
Integer systemDeliveryChargeType = wayBillDetail.getSystemDeliveryChargeType();
if(systemChargeType == 1){
if (systemChargeType == 1) {
trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(new BigDecimal(num)));
}else if(systemChargeType == 2){
} else if (systemChargeType == 2) {
trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(trunklinePackageEntity.getWeight()));
}else if (systemChargeType == 3){
} else if (systemChargeType == 3) {
trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(trunklinePackageEntity.getVolume()));
}
if(chargeType == 1){
if (chargeType == 1) {
trunklinePackageEntity.setFreightPrice(price.multiply(new BigDecimal(num)));
}else if(chargeType == 2){
} else if (chargeType == 2) {
trunklinePackageEntity.setFreightPrice(price.multiply(trunklinePackageEntity.getWeight()));
}else if (chargeType == 3){
} else if (chargeType == 3) {
trunklinePackageEntity.setFreightPrice(price.multiply(trunklinePackageEntity.getVolume()));
}
if(systemPickupChargeType == 1){
if (systemPickupChargeType == 1) {
trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(new BigDecimal(num)));
trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(new BigDecimal(num)));
}else if(systemPickupChargeType == 2){
} else if (systemPickupChargeType == 2) {
trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getWeight()));
trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getWeight()));
}else if (systemPickupChargeType == 3){
} else if (systemPickupChargeType == 3) {
trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getVolume()));
trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getVolume()));
}
@ -367,8 +375,8 @@ public class WaybillCheckListener {
distributionPackageEntity.setWaybillNo(waybillNo);
distributionPackageEntity.setOrderCode(waybillNo);
distributionPackageEntity.setNum(num);
distributionPackageEntity.setWeight(Objects.isNull(weight)?BigDecimal.ZERO:weight);
distributionPackageEntity.setVolume(Objects.isNull(volume)?BigDecimal.ZERO:volume);
distributionPackageEntity.setWeight(Objects.isNull(weight) ? BigDecimal.ZERO : weight);
distributionPackageEntity.setVolume(Objects.isNull(volume) ? BigDecimal.ZERO : volume);
distributionPackageEntity.setGoodsType(2);
distributionPackageEntity.setOrderInfoId(orderId);
distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(new BigDecimal(num)));
@ -384,11 +392,11 @@ public class WaybillCheckListener {
BigDecimal systemDeliveryPrice = wayBillDetail.getDeliveryPrice();
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice);
if(systemDeliveryChargeType == 1){
if (systemDeliveryChargeType == 1) {
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(new BigDecimal(num)));
}else if(systemDeliveryChargeType == 2){
} else if (systemDeliveryChargeType == 2) {
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(weight));
}else if (systemDeliveryChargeType == 3){
} else if (systemDeliveryChargeType == 3) {
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(volume));
}
distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO);
@ -396,7 +404,7 @@ public class WaybillCheckListener {
BigDecimal systemDeliveryFeeTotal = distributionPackageEntity.getSystemDeliveryFee();
if(payWay.equals("1") || payWay.equals("2")){
if (payWay.equals("1") || payWay.equals("2")) {
distributionPackageEntity.setDeliveryFee(systemDeliveryFeeTotal);
}
BigDecimal deliveryFeeTotal = distributionPackageEntity.getDeliveryFee();
@ -412,24 +420,24 @@ public class WaybillCheckListener {
distributionPackageEntities.add(distributionPackageEntity);
});
if(CollUtil.isNotEmpty(trunklinePackageEntities)){
if (CollUtil.isNotEmpty(trunklinePackageEntities)) {
trunklinePackageService.saveBatch(trunklinePackageEntities);
}
if(CollUtil.isNotEmpty(warehousePackageEntities)){
if (CollUtil.isNotEmpty(warehousePackageEntities)) {
warehousePackageService.saveBatch(warehousePackageEntities);
}
if(CollUtil.isNotEmpty(distributionPackageEntities)){
if (CollUtil.isNotEmpty(distributionPackageEntities)) {
distributionPackageService.saveBatch(distributionPackageEntities);
}
}else{
log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}",waybillNo);
} else {
log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}", waybillNo);
}
}
private void dealwithPackageOrder(WarehouseWaybillEntity waybillEntity) {
String waybillNo = waybillEntity.getWaybillNo();
log.info("############dealwithPackageOrder: 处理订制品包件信息 waybillNo={}",waybillNo);
log.info("############dealwithPackageOrder: 处理订制品包件信息 waybillNo={}", waybillNo);
Long waybillId = waybillEntity.getId();
String brand = waybillEntity.getBrand();
Long brandId = waybillEntity.getBrandId();
@ -444,12 +452,12 @@ public class WaybillCheckListener {
//单价计算
// BigDecimal pickupFee = Objects.isNull(waybillEntity.getPickupFee())?BigDecimal.ZERO:waybillEntity.getPickupFee();
BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee())?BigDecimal.ZERO:waybillEntity.getWarehouseManagementFee();
BigDecimal warehouseFee = Objects.isNull(waybillEntity.getStorageFee())?BigDecimal.ZERO:waybillEntity.getStorageFee();
BigDecimal handlingFee = Objects.isNull(waybillEntity.getHandlingFee())?BigDecimal.ZERO:waybillEntity.getHandlingFee();
BigDecimal insuranceFee = Objects.isNull(waybillEntity.getInsuranceFee())?BigDecimal.ZERO:waybillEntity.getInsuranceFee();
BigDecimal otherFee = Objects.isNull(waybillEntity.getOtherFee())?BigDecimal.ZERO:waybillEntity.getOtherFee();
BigDecimal thirdOperationFee = Objects.isNull(waybillEntity.getThirdOperationFee())?BigDecimal.ZERO:waybillEntity.getThirdOperationFee();
BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee()) ? BigDecimal.ZERO : waybillEntity.getWarehouseManagementFee();
BigDecimal warehouseFee = Objects.isNull(waybillEntity.getStorageFee()) ? BigDecimal.ZERO : waybillEntity.getStorageFee();
BigDecimal handlingFee = Objects.isNull(waybillEntity.getHandlingFee()) ? BigDecimal.ZERO : waybillEntity.getHandlingFee();
BigDecimal insuranceFee = Objects.isNull(waybillEntity.getInsuranceFee()) ? BigDecimal.ZERO : waybillEntity.getInsuranceFee();
BigDecimal otherFee = Objects.isNull(waybillEntity.getOtherFee()) ? BigDecimal.ZERO : waybillEntity.getOtherFee();
BigDecimal thirdOperationFee = Objects.isNull(waybillEntity.getThirdOperationFee()) ? BigDecimal.ZERO : waybillEntity.getThirdOperationFee();
Integer totalCount = waybillEntity.getTotalCount();
// BigDecimal pickupPrice = pickupFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP);
@ -461,9 +469,8 @@ public class WaybillCheckListener {
BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP);
//查询运单下所有的订单
List<TrunklineAdvanceEntity> advanceEntities =trunklineAdvanceClient.findListByWaybillNo(waybillNo);
List<TrunklineAdvanceEntity> advanceEntities = trunklineAdvanceClient.findListByWaybillNo(waybillNo);
//查询包件信息
List<TrunklineAdvanceDetailEntity> advanceDetailEntities = trunklineAdvanceDetailClient.findListByWaybillId(waybillId);
//查询运单明细
@ -476,7 +483,7 @@ public class WaybillCheckListener {
//保存订单信息
List<StatisticsOrderInfoEntity> orderInfoEntities = new ArrayList<>();
advanceEntities.forEach(advanceEntity->{
advanceEntities.forEach(advanceEntity -> {
StatisticsOrderInfoEntity orderInfoEntity = new StatisticsOrderInfoEntity();
orderInfoEntity.setOrderCode(advanceEntity.getOrderCode());
orderInfoEntity.setWaybillId(waybillId);
@ -498,7 +505,7 @@ public class WaybillCheckListener {
});
boolean b = statisticsOrderInfoService.saveBatch(orderInfoEntities);
if(b){
if (b) {
Map<String, List<TrunklineAdvanceDetailEntity>> advanceDetailGroupByOrderCode =
advanceDetailEntities.stream()
.collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getOrderCode));
@ -506,11 +513,11 @@ public class WaybillCheckListener {
List<StatisticsTrunklinePackageEntity> trunklinePackageEntities = new ArrayList<>();
List<StatisticsWarehousePackageEntity> warehousePackageEntities = new ArrayList<>();
List<StatisticsDistributionPackageEntity> distributionPackageEntities = new ArrayList<>();
orderInfoEntities.forEach(orderInfoEntity->{
orderInfoEntities.forEach(orderInfoEntity -> {
Long orderId = orderInfoEntity.getId();
String orderCode = orderInfoEntity.getOrderCode();
List<TrunklineAdvanceDetailEntity> advanceDetailList = advanceDetailGroupByOrderCode.get(orderCode);
advanceDetailList.forEach(advanceDetailEntity->{
advanceDetailList.forEach(advanceDetailEntity -> {
Long incomeCategoryId = advanceDetailEntity.getIncomeCategoryId();
String orderPackageCode = advanceDetailEntity.getOrderPackageCode();
Integer quantity = advanceDetailEntity.getQuantity();
@ -536,7 +543,7 @@ public class WaybillCheckListener {
trunklinePackageEntity.setOtherPrice(otherPrice.multiply(BigDecimal.ONE));
trunklinePackageEntity.setThirdOperationPrice(thirdOperationPrice.multiply(BigDecimal.ONE));
if(!Objects.isNull(warehouseWayBillDetail)){
if (!Objects.isNull(warehouseWayBillDetail)) {
trunklinePackageEntity.setProductId(incomeCategoryId);
trunklinePackageEntity.setProductName(warehouseWayBillDetail.getProductName());
@ -556,8 +563,8 @@ public class WaybillCheckListener {
BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量
BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积
trunklinePackageEntity.setWeight(Objects.isNull(packageWeight)?BigDecimal.ZERO:packageWeight);
trunklinePackageEntity.setVolume(Objects.isNull(packageVolume)?BigDecimal.ZERO:packageVolume);
trunklinePackageEntity.setWeight(Objects.isNull(packageWeight) ? BigDecimal.ZERO : packageWeight);
trunklinePackageEntity.setVolume(Objects.isNull(packageVolume) ? BigDecimal.ZERO : packageVolume);
BigDecimal systemFreightPrice = warehouseWayBillDetail.getFreightPrice();//系统运费单价
BigDecimal price = warehouseWayBillDetail.getPrice();//实际运费单价
@ -566,36 +573,36 @@ public class WaybillCheckListener {
//如果系统运费计算方式是按件,则用系统的运费单价乘以包件数量
//如果系统运费计算方式是按方,则用系统的运费单价乘以包件体积
//如果系统运费计算方式是按重量,则用系统的运费单价乘以包件重量
if(systemChargeType == 1){
if (systemChargeType == 1) {
trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(BigDecimal.ONE));
}else if(systemChargeType == 2){
} else if (systemChargeType == 2) {
trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(packageVolume));
}else if (systemChargeType == 3){
} else if (systemChargeType == 3) {
trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(packageWeight));
}
//实际包件的运费
if(chargeType == 1){
if (chargeType == 1) {
trunklinePackageEntity.setFreightPrice(price.multiply(BigDecimal.ONE));
}else if(chargeType == 2){
} else if (chargeType == 2) {
trunklinePackageEntity.setFreightPrice(price.multiply(packageVolume));
}else if (chargeType == 3){
} else if (chargeType == 3) {
trunklinePackageEntity.setFreightPrice(price.multiply(packageWeight));
}
//提货包件单价
if(systemPickupChargeType == 1){
if (systemPickupChargeType == 1) {
trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(BigDecimal.ONE));
trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(BigDecimal.ONE));
}else if(systemPickupChargeType == 2){
} else if (systemPickupChargeType == 2) {
trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(packageVolume));
trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(packageVolume));
}else if (systemPickupChargeType == 3){
} else if (systemPickupChargeType == 3) {
trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(packageWeight));
trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(packageWeight));
}
}else{
} else {
trunklinePackageEntity.setFreightChargeType(1);
@ -643,7 +650,7 @@ public class WaybillCheckListener {
warehousePackageEntity.setBrandId(brandId);
warehousePackageEntity.setConsigneeId(consigneeId);
warehousePackageEntity.setChargeType(1);
if(!Objects.isNull(warehouseWayBillDetail)){
if (!Objects.isNull(warehouseWayBillDetail)) {
Integer systemWarehouseChargeType = warehouseWayBillDetail.getSystemWarehouseChargeType();
warehousePackageEntity.setChargeType(systemWarehouseChargeType);
@ -678,8 +685,8 @@ public class WaybillCheckListener {
distributionPackageEntity.setOrderCode(orderCode);
distributionPackageEntity.setOrderPackageCode(orderPackageCode);
distributionPackageEntity.setNum(quantity);
distributionPackageEntity.setWeight(Objects.isNull(weight)?BigDecimal.ZERO:weight);
distributionPackageEntity.setVolume(Objects.isNull(volume)?BigDecimal.ZERO:volume);
distributionPackageEntity.setWeight(Objects.isNull(weight) ? BigDecimal.ZERO : weight);
distributionPackageEntity.setVolume(Objects.isNull(volume) ? BigDecimal.ZERO : volume);
distributionPackageEntity.setGoodsType(1);
distributionPackageEntity.setOrderInfoId(orderId);
distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(BigDecimal.ONE));
@ -694,7 +701,7 @@ public class WaybillCheckListener {
distributionPackageEntity.setConsigneeId(consigneeId);
distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(BigDecimal.ONE));
if(!Objects.isNull(warehouseWayBillDetail)){
if (!Objects.isNull(warehouseWayBillDetail)) {
Integer systemDeliveryChargeType = warehouseWayBillDetail.getSystemDeliveryChargeType();
BigDecimal productTotalWeight = warehouseWayBillDetail.getWeight();
@ -712,23 +719,23 @@ public class WaybillCheckListener {
BigDecimal systemDeliveryPrice = warehouseWayBillDetail.getDeliveryPrice();
if(systemDeliveryChargeType == 1){
if (systemDeliveryChargeType == 1) {
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(BigDecimal.ONE));
}else if(systemDeliveryChargeType == 2){
} else if (systemDeliveryChargeType == 2) {
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(packageVolume));
}else if(systemDeliveryChargeType == 3){
} else if (systemDeliveryChargeType == 3) {
distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(packageWeight));
}
distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO);
}else{
} else {
distributionPackageEntity.setSystemDeliveryChargeType(1);
distributionPackageEntity.setDeliveryChargeType(1);
distributionPackageEntity.setSystemDeliveryFee(BigDecimal.ZERO);
distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO);
}
if(payWay.equals("1") || payWay.equals("2")){
if (payWay.equals("1") || payWay.equals("2")) {
distributionPackageEntity.setDeliveryFee(distributionPackageEntity.getSystemDeliveryFee());
}
BigDecimal deliveryFeeTotal = distributionPackageEntity.getDeliveryFee();
@ -746,18 +753,18 @@ public class WaybillCheckListener {
distributionPackageEntities.add(distributionPackageEntity);
});
});
if(CollUtil.isNotEmpty(trunklinePackageEntities)){
if (CollUtil.isNotEmpty(trunklinePackageEntities)) {
trunklinePackageService.saveBatch(trunklinePackageEntities);
}
if(CollUtil.isNotEmpty(warehousePackageEntities)){
if (CollUtil.isNotEmpty(warehousePackageEntities)) {
warehousePackageService.saveBatch(warehousePackageEntities);
}
if(CollUtil.isNotEmpty(distributionPackageEntities)){
if (CollUtil.isNotEmpty(distributionPackageEntities)) {
distributionPackageService.saveBatch(distributionPackageEntities);
}
}else{
log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}",waybillNo);
} else {
log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}", waybillNo);
}
}
}

31
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsBalanceOrderInfoMapper.xml

@ -21,6 +21,37 @@
<if test="param.abnormalBalanceStatus != null ">
and abnormal_balance_status = #{param.abnormalBalanceStatus}
</if>
<if test="param.consignee != null ">
and consignee = #{param.consignee}
</if>
<if test="param.consignee != null ">
and consignee = #{param.consignee}
</if>
<if test="param.createTimeStart != null">
and create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
and create_time &lt;= #{param.createTimeEnd}
</if>
<if test="param.abnormalTimeStart != null">
and abnormal_time &gt;= #{param.abnormalTimeStart}
</if>
<if test="param.abnormalTimeEnd != null">
and abnormal_time &lt;= #{param.abnormalTimeEnd}
</if>
<if test="param.balanceTimeStart != null">
and balance_time &gt;= #{param.balanceTimeStart}
</if>
<if test="param.balanceTimeEnd != null">
and balance_time &lt;= #{param.balanceTimeEnd}
</if>
<if test="param.destinationWarehouseName != null">
and destination_warehouse_name = #{param.destinationWarehouseName}
</if>
and destination_warehouse_id in
<foreach collection="param.warehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>

4
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java

@ -7,11 +7,13 @@ import com.logpm.statistics.entity.StatisticsOrderInfoEntity;
import com.logpm.statistics.vo.StatisticsOrderInfoExportVO;
import com.logpm.statistics.vo.StatisticsOrderInfoVO;
import com.logpm.statistics.vo.StatisticsPackageFeeInfoVO;
import com.logpm.statistics.vo.WaybillDetailByWaybillNoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Set;
@Mapper
public interface StatisticsOrderInfoMapper extends BaseMapper<StatisticsOrderInfoEntity> {
@ -35,4 +37,6 @@ public interface StatisticsOrderInfoMapper extends BaseMapper<StatisticsOrderInf
void clearReconcilitionOrderInfoByOrderInfoIds(@Param("orderInfoIds") List<Long> orderInfoIds, @Param("nickName") String nickName, @Param("date") Date date);
List<StatisticsOrderInfoExportVO> orderInfoListExport(@Param("param") MerchantStatisticsDTO merchantStatisticsDTO);
List<WaybillDetailByWaybillNoVo> findWaybillDetailByWaybillId(@Param("warehouseIdSet") Set<Long> warehouseIdSet);
}

48
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml

@ -18,6 +18,7 @@
lww.consignee_name consigneePerson,
lww.consignee_mobile consigneeMobile,
lww.consignee_address consigneeAddress,
concat(GROUP_CONCAT(lwwd.product_name)) as goodsName,
lsoi.sign_status signStatus,
lsoi.sign_date signDate,
lww.create_time openTime,
@ -42,6 +43,7 @@
from logpm_statistics_order_info lsoi
left join logpm_basicdata_client lbc on lbc.id = lsoi.consignee_id
left join logpm_warehouse_waybill lww on lww.id = lsoi.waybill_id
LEFT JOIN logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id=lww.id
where 1=1
and lsoi.create_reconciliation_order_status = 0
<if test="param.listType == 1">
@ -66,7 +68,7 @@
and Locate(#{param.waybillNo},lww.waybill_no) > 0
</if>
<if test="param.orderCode != null and param.orderCode != '' ">
and Locate(#{param.orderCode},lww.order_code) > 0
and Locate(#{param.orderCode},lww.order_no) > 0
</if>
<if test="param.shipper != null and param.shipper != '' ">
and Locate(#{param.shipper},lww.shipper) > 0
@ -86,6 +88,18 @@
<if test="param.openTimeEnd != null">
and lww.create_time &lt;= #{param.openTimeEnd}
</if>
<if test="param.signTimeStart != null">
and lsoi.sign_date &gt;= #{param.signTimeStart}
</if>
<if test="param.signTimeEnd != null">
and lsoi.sign_date &lt;= #{param.signTimeEnd}
</if>
<if test="param.syncFeeDateStart != null">
and lsoi.sync_fee_date &gt;= #{param.syncFeeDateStart}
</if>
<if test="param.syncFeeDateEnd != null">
and lsoi.sync_fee_date &lt;= #{param.syncFeeDateEnd}
</if>
<if test="param.shipperPerson != null and param.shipperPerson != '' ">
and Locate(#{param.shipperPerson},lww.shipper_person) > 0
</if>
@ -102,12 +116,15 @@
and lbc.clean_obj_type = #{param.cleanObjType}
</if>
<if test="param.payType != null and param.payType != '' ">
and lbc.pay_type = #{param.payType}
and lww.pay_type = #{param.payType}
</if>
<if test="param.payWay != null and param.payWay != '' ">
and lbc.pay_way = #{param.payWay}
and lww.pay_way = #{param.payWay}
</if>
and lsoi.destination_warehouse_id in
<foreach collection="param.warehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
group by lsoi.id
</select>
@ -487,6 +504,29 @@
where 1=1
and lsoi.waybill_id = #{waybillId}
</select>
<select id="findWaybillDetailByWaybillId" resultType="com.logpm.statistics.vo.WaybillDetailByWaybillNoVo">
SELECT
waybill_id,
GROUP_CONCAT( t.b ) AS goodsName
FROM
(
SELECT
waybill_id,
concat( product_name, '(', sum( num ), ')' ) AS b
FROM
logpm_warehouse_waybill_detail
WHERE
waybill_id IN
<foreach collection="warehouseIdSet" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY
waybill_id,
product_name
) t
GROUP BY
t.waybill_id
</select>
<delete id="deleteListByOrderInfoIds" >
delete from logpm_statistics_order_info

13
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.xml

@ -26,14 +26,13 @@
<if test="param.openTimeEnd != null">
and create_time &lt;= #{param.openTimeEnd}
</if>
<if test="param.consignee != null">
and consignee &lt;= #{param.consignee}
<if test="param.destinationWarehouseName != null">
and destination_warehouse_name = #{param.destinationWarehouseName}
</if>
<if test="param.isAftersales != null">
and is_aftersale &lt;= #{param.isAftersales}
</if>
and destination_warehouse_id in
<foreach collection="param.warehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>

301
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsBalanceOrderInfoServiceImpl.java

@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.statistics.dto.MerchantStatisticsDTO;
import com.logpm.statistics.dto.StatisticsBalanceAbnormalDTO;
import com.logpm.statistics.dto.StatisticsBalanceRecordDTO;
@ -39,6 +41,7 @@ public class StatisticsBalanceOrderInfoServiceImpl extends BaseServiceImpl<Stati
private final IStatisticsBalanceAbnormalPhotoService balanceAbnormalPhotoService;
private final IStatisticsBalanceRecordService balanceRecordService;
private final IStatisticsBalanceRecordPhotoService balanceRecordPhotoService;
private final IBasicdataWarehouseClient warehouseClient;
@Override
public IPage<StatisticsBalanceOrderInfoVO> pageList(MerchantStatisticsDTO merchantStatisticsDTO) {
@ -47,196 +50,202 @@ public class StatisticsBalanceOrderInfoServiceImpl extends BaseServiceImpl<Stati
page.setCurrent(merchantStatisticsDTO.getPageNum());
page.setSize(merchantStatisticsDTO.getPageSize());
List<Long> warehouseIds = warehouseClient.getWarehouseIds();
if(!warehouseIds.isEmpty()){
merchantStatisticsDTO.setWarehouseIds(warehouseIds);
}
return baseMapper.pageList(page,merchantStatisticsDTO);
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public R addAbnormal(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) {
StatisticsBalanceAbnormalEntity balanceAbnormalEntity = new StatisticsBalanceAbnormalEntity();
BeanUtil.copy(balanceAbnormalDTO,balanceAbnormalEntity);
balanceAbnormalEntity.setAbnormalUserName(AuthUtil.getNickName());
@Transactional(rollbackFor = Exception.class)
@Override
public R addAbnormal(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) {
StatisticsBalanceAbnormalEntity balanceAbnormalEntity = new StatisticsBalanceAbnormalEntity();
BeanUtil.copy(balanceAbnormalDTO, balanceAbnormalEntity);
balanceAbnormalEntity.setAbnormalUserName(AuthUtil.getNickName());
balanceAbnormalService.save(balanceAbnormalEntity);
Long balanceAbnormalId = balanceAbnormalEntity.getId();
balanceAbnormalService.save(balanceAbnormalEntity);
Long balanceAbnormalId = balanceAbnormalEntity.getId();
List<StatisticsBalanceAbnormalPhotoEntity> abnormalPhotoEntityList = balanceAbnormalDTO.getAbnormalPhotoEntityList();
List<StatisticsBalanceAbnormalPhotoEntity> abnormalPhotoEntityList = balanceAbnormalDTO.getAbnormalPhotoEntityList();
abnormalPhotoEntityList.forEach(abnormalPhotoEntity -> {
abnormalPhotoEntity.setAbnormalId(balanceAbnormalId);
});
abnormalPhotoEntityList.forEach(abnormalPhotoEntity -> {
abnormalPhotoEntity.setAbnormalId(balanceAbnormalId);
});
balanceAbnormalPhotoService.saveBatch(abnormalPhotoEntityList);
balanceAbnormalPhotoService.saveBatch(abnormalPhotoEntityList);
Long balanceOrderInfoId = balanceAbnormalEntity.getBalanceOrderInfoId();
Long balanceOrderInfoId = balanceAbnormalEntity.getBalanceOrderInfoId();
StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId);
if(Objects.isNull(balanceOrderInfoEntity)){
log.warn("###########addAbnormal: 结算单信息不存在 balanceOrderInfoEntity={}",balanceOrderInfoEntity);
throw new CustomerException(405,"结算单信息不存在");
}
BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee();
BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee();
BigDecimal abnormalFee = balanceAbnormalEntity.getAbnormalFee();
BigDecimal total = totalBalanceFee.add(abnormalFee);
balanceOrderInfoEntity.setAbnormalBalanceStatus(1);
balanceOrderInfoEntity.setAbnormalBalanceFee(balanceOrderInfoEntity.getAbnormalBalanceFee().add(abnormalFee));
balanceOrderInfoEntity.setAbnormalTime(balanceAbnormalEntity.getCreateTime());
balanceOrderInfoEntity.setAbnormalUserName(balanceAbnormalEntity.getAbnormalUserName());
balanceOrderInfoEntity.setAbnormalRemark(balanceAbnormalEntity.getAbnormalRemark());
if(hasBalanceFee.compareTo(total) >= 0){
balanceOrderInfoEntity.setBalanceStatus(2);
}else{
if(hasBalanceFee.compareTo(BigDecimal.ZERO) == 0){
balanceOrderInfoEntity.setBalanceStatus(0);
}else{
balanceOrderInfoEntity.setBalanceStatus(1);
}
StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId);
if (Objects.isNull(balanceOrderInfoEntity)) {
log.warn("###########addAbnormal: 结算单信息不存在 balanceOrderInfoEntity={}", balanceOrderInfoEntity);
throw new CustomerException(405, "结算单信息不存在");
}
BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee();
BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee();
BigDecimal abnormalFee = balanceAbnormalEntity.getAbnormalFee();
BigDecimal total = totalBalanceFee.add(abnormalFee);
balanceOrderInfoEntity.setAbnormalBalanceStatus(1);
balanceOrderInfoEntity.setAbnormalBalanceFee(balanceOrderInfoEntity.getAbnormalBalanceFee().add(abnormalFee));
balanceOrderInfoEntity.setAbnormalTime(balanceAbnormalEntity.getCreateTime());
balanceOrderInfoEntity.setAbnormalUserName(balanceAbnormalEntity.getAbnormalUserName());
balanceOrderInfoEntity.setAbnormalRemark(balanceAbnormalEntity.getAbnormalRemark());
if (hasBalanceFee.compareTo(total) >= 0) {
balanceOrderInfoEntity.setBalanceStatus(2);
} else {
if (hasBalanceFee.compareTo(BigDecimal.ZERO) == 0) {
balanceOrderInfoEntity.setBalanceStatus(0);
} else {
balanceOrderInfoEntity.setBalanceStatus(1);
}
updateById(balanceOrderInfoEntity);
return R.success("添加成功");
}
updateById(balanceOrderInfoEntity);
@Override
public R findAbnormalList(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) {
Long balanceOrderInfoId = balanceAbnormalDTO.getBalanceOrderInfoId();
return R.success("添加成功");
}
QueryWrapper<StatisticsBalanceAbnormalEntity> balanceAbnormalEntityQueryWrapper = new QueryWrapper<>();
balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id",balanceOrderInfoId);
@Override
public R findAbnormalList(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) {
Long balanceOrderInfoId = balanceAbnormalDTO.getBalanceOrderInfoId();
List<StatisticsBalanceAbnormalEntity> list = balanceAbnormalService.list(balanceAbnormalEntityQueryWrapper);
QueryWrapper<StatisticsBalanceAbnormalEntity> balanceAbnormalEntityQueryWrapper = new QueryWrapper<>();
balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id", balanceOrderInfoId);
if(list.isEmpty()){
return R.data(CollUtil.newArrayList());
}
List<StatisticsBalanceAbnormalEntity> list = balanceAbnormalService.list(balanceAbnormalEntityQueryWrapper);
//把list中所有元素的id放到一个List集合中
List<Long> idList= list.stream()
.map(StatisticsBalanceAbnormalEntity::getId)
.collect(Collectors.toList());
if (list.isEmpty()) {
return R.data(CollUtil.newArrayList());
}
QueryWrapper<StatisticsBalanceAbnormalPhotoEntity> balanceAbnormalPhotoEntityQueryWrapper = new QueryWrapper<>();
balanceAbnormalPhotoEntityQueryWrapper.in("abnormal_id",idList);
//把list中所有元素的id放到一个List集合中
List<Long> idList = list.stream()
.map(StatisticsBalanceAbnormalEntity::getId)
.collect(Collectors.toList());
List<StatisticsBalanceAbnormalPhotoEntity> abnormalPhotoEntityList = balanceAbnormalPhotoService.list(balanceAbnormalPhotoEntityQueryWrapper);
//把abnormalPhotoEntityList中所有元素按照abnormalId进行分组
Map<Long, List<StatisticsBalanceAbnormalPhotoEntity>> groupedPhotos = abnormalPhotoEntityList.stream()
.collect(Collectors.groupingBy(StatisticsBalanceAbnormalPhotoEntity::getAbnormalId));
QueryWrapper<StatisticsBalanceAbnormalPhotoEntity> balanceAbnormalPhotoEntityQueryWrapper = new QueryWrapper<>();
balanceAbnormalPhotoEntityQueryWrapper.in("abnormal_id", idList);
List<StatisticsBalanceAbnormalVO> abnormalVOList = new ArrayList<>();
list.forEach(balanceAbnormalEntity -> {
StatisticsBalanceAbnormalVO balanceAbnormalVO = new StatisticsBalanceAbnormalVO();
BeanUtil.copy(balanceAbnormalEntity,balanceAbnormalVO);
balanceAbnormalVO.setAbnormalPhotoEntityList(groupedPhotos.get(balanceAbnormalEntity.getId()));
abnormalVOList.add(balanceAbnormalVO);
});
List<StatisticsBalanceAbnormalPhotoEntity> abnormalPhotoEntityList = balanceAbnormalPhotoService.list(balanceAbnormalPhotoEntityQueryWrapper);
//把abnormalPhotoEntityList中所有元素按照abnormalId进行分组
Map<Long, List<StatisticsBalanceAbnormalPhotoEntity>> groupedPhotos = abnormalPhotoEntityList.stream()
.collect(Collectors.groupingBy(StatisticsBalanceAbnormalPhotoEntity::getAbnormalId));
return R.data(abnormalVOList);
}
List<StatisticsBalanceAbnormalVO> abnormalVOList = new ArrayList<>();
list.forEach(balanceAbnormalEntity -> {
StatisticsBalanceAbnormalVO balanceAbnormalVO = new StatisticsBalanceAbnormalVO();
BeanUtil.copy(balanceAbnormalEntity, balanceAbnormalVO);
balanceAbnormalVO.setAbnormalPhotoEntityList(groupedPhotos.get(balanceAbnormalEntity.getId()));
abnormalVOList.add(balanceAbnormalVO);
});
@Transactional(rollbackFor = Exception.class)
@Override
public R addBalanceRecord(StatisticsBalanceRecordDTO balanceRecordDTO) {
StatisticsBalanceRecordEntity balanceRecordEntity = new StatisticsBalanceRecordEntity();
BeanUtil.copy(balanceRecordDTO,balanceRecordEntity);
balanceRecordEntity.setBalanceUserName(AuthUtil.getNickName());
return R.data(abnormalVOList);
}
balanceRecordService.save(balanceRecordEntity);
@Transactional(rollbackFor = Exception.class)
@Override
public R addBalanceRecord(StatisticsBalanceRecordDTO balanceRecordDTO) {
StatisticsBalanceRecordEntity balanceRecordEntity = new StatisticsBalanceRecordEntity();
BeanUtil.copy(balanceRecordDTO, balanceRecordEntity);
balanceRecordEntity.setBalanceUserName(AuthUtil.getNickName());
List<StatisticsBalanceRecordPhotoEntity> recordPhotoEntityList = balanceRecordDTO.getRecordPhotoEntityList();
balanceRecordService.save(balanceRecordEntity);
recordPhotoEntityList.forEach(recordPhotoEntity -> {
recordPhotoEntity.setRecordId(balanceRecordEntity.getId());
});
List<StatisticsBalanceRecordPhotoEntity> recordPhotoEntityList = balanceRecordDTO.getRecordPhotoEntityList();
balanceRecordPhotoService.saveBatch(recordPhotoEntityList);
recordPhotoEntityList.forEach(recordPhotoEntity -> {
recordPhotoEntity.setRecordId(balanceRecordEntity.getId());
});
Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId();
balanceRecordPhotoService.saveBatch(recordPhotoEntityList);
StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId);
if(Objects.isNull(balanceOrderInfoEntity)){
log.warn("###########addBalanceRecord: 结算单信息不存在 balanceOrderInfoEntity={}",balanceOrderInfoEntity);
return R.fail(405,"结算单信息不存在");
}
Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId();
BigDecimal balanceFee = balanceRecordEntity.getBalanceFee();
StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId);
if (Objects.isNull(balanceOrderInfoEntity)) {
log.warn("###########addBalanceRecord: 结算单信息不存在 balanceOrderInfoEntity={}", balanceOrderInfoEntity);
return R.fail(405, "结算单信息不存在");
}
BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee();
BigDecimal abnormalBalanceFee = balanceOrderInfoEntity.getAbnormalBalanceFee();
BigDecimal balanceFee = balanceRecordEntity.getBalanceFee();
BigDecimal total = totalBalanceFee.add(abnormalBalanceFee);
BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee();
BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee();
BigDecimal abnormalBalanceFee = balanceOrderInfoEntity.getAbnormalBalanceFee();
BigDecimal newHasBalanceFee = hasBalanceFee.add(balanceFee);
BigDecimal total = totalBalanceFee.add(abnormalBalanceFee);
BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee();
if(newHasBalanceFee.compareTo(total) >= 0){
balanceOrderInfoEntity.setBalanceStatus(2);
balanceOrderInfoEntity.setNoBalanceFee(BigDecimal.ZERO);
}else{
balanceOrderInfoEntity.setBalanceStatus(1);
balanceOrderInfoEntity.setNoBalanceFee(total.subtract(newHasBalanceFee));
}
BigDecimal newHasBalanceFee = hasBalanceFee.add(balanceFee);
balanceOrderInfoEntity.setHasBalanceFee(newHasBalanceFee);
balanceOrderInfoEntity.setBalanceTime(balanceRecordEntity.getCreateTime());
balanceOrderInfoEntity.setBalanceUserName(balanceRecordEntity.getBalanceUserName());
balanceOrderInfoEntity.setBalanceRemark(balanceRecordEntity.getBalanceRemark());
if (newHasBalanceFee.compareTo(total) >= 0) {
balanceOrderInfoEntity.setBalanceStatus(2);
balanceOrderInfoEntity.setNoBalanceFee(BigDecimal.ZERO);
} else {
balanceOrderInfoEntity.setBalanceStatus(1);
balanceOrderInfoEntity.setNoBalanceFee(total.subtract(newHasBalanceFee));
}
updateById(balanceOrderInfoEntity);
balanceOrderInfoEntity.setHasBalanceFee(newHasBalanceFee);
balanceOrderInfoEntity.setBalanceTime(balanceRecordEntity.getCreateTime());
balanceOrderInfoEntity.setBalanceUserName(balanceRecordEntity.getBalanceUserName());
balanceOrderInfoEntity.setBalanceRemark(balanceRecordEntity.getBalanceRemark());
return R.success("添加成功");
}
updateById(balanceOrderInfoEntity);
@Override
public R findRecordList(StatisticsBalanceRecordDTO balanceRecordDTO) {
return R.success("添加成功");
}
Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId();
@Override
public R findRecordList(StatisticsBalanceRecordDTO balanceRecordDTO) {
QueryWrapper<StatisticsBalanceRecordEntity> balanceAbnormalEntityQueryWrapper = new QueryWrapper<>();
balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id",balanceOrderInfoId);
Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId();
List<StatisticsBalanceRecordEntity> list = balanceRecordService.list(balanceAbnormalEntityQueryWrapper);
QueryWrapper<StatisticsBalanceRecordEntity> balanceAbnormalEntityQueryWrapper = new QueryWrapper<>();
balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id", balanceOrderInfoId);
if(list.isEmpty()){
return R.data(CollUtil.newArrayList());
}
List<StatisticsBalanceRecordEntity> list = balanceRecordService.list(balanceAbnormalEntityQueryWrapper);
//把list中所有元素的id放到一个List集合中
List<Long> idList= list.stream()
.map(StatisticsBalanceRecordEntity::getId)
.collect(Collectors.toList());
QueryWrapper<StatisticsBalanceRecordPhotoEntity> balanceRecordPhotoEntityQueryWrapper = new QueryWrapper<>();
balanceRecordPhotoEntityQueryWrapper.in("record_id",idList);
List<StatisticsBalanceRecordPhotoEntity> recordPhotoEntityList = balanceRecordPhotoService.list(balanceRecordPhotoEntityQueryWrapper);
//把abnormalPhotoEntityList中所有元素按照abnormalId进行分组
Map<Long, List<StatisticsBalanceRecordPhotoEntity>> groupedPhotos = recordPhotoEntityList.stream()
.collect(Collectors.groupingBy(StatisticsBalanceRecordPhotoEntity::getRecordId));
List<StatisticsBalanceRecordVO> balanceRecordVOS = new ArrayList<>();
list.forEach(balanceRecordEntity -> {
StatisticsBalanceRecordVO balanceRecordVO = new StatisticsBalanceRecordVO();
BeanUtil.copy(balanceRecordEntity,balanceRecordVO);
balanceRecordVO.setRecordPhotoEntityList(groupedPhotos.get(balanceRecordEntity.getId()));
balanceRecordVO.setBalanceUserName(balanceRecordEntity.getBalanceUserName());
balanceRecordVO.setBalanceRemark(balanceRecordEntity.getBalanceRemark());
balanceRecordVOS.add(balanceRecordVO);
});
return R.data(balanceRecordVOS);
if (list.isEmpty()) {
return R.data(CollUtil.newArrayList());
}
@Override
public R findBalanceDetail(Long balanceOrderId) {
//把list中所有元素的id放到一个List集合中
List<Long> idList = list.stream()
.map(StatisticsBalanceRecordEntity::getId)
.collect(Collectors.toList());
QueryWrapper<StatisticsBalanceRecordPhotoEntity> balanceRecordPhotoEntityQueryWrapper = new QueryWrapper<>();
balanceRecordPhotoEntityQueryWrapper.in("record_id", idList);
List<StatisticsBalanceRecordPhotoEntity> recordPhotoEntityList = balanceRecordPhotoService.list(balanceRecordPhotoEntityQueryWrapper);
//把abnormalPhotoEntityList中所有元素按照abnormalId进行分组
Map<Long, List<StatisticsBalanceRecordPhotoEntity>> groupedPhotos = recordPhotoEntityList.stream()
.collect(Collectors.groupingBy(StatisticsBalanceRecordPhotoEntity::getRecordId));
List<StatisticsBalanceRecordVO> balanceRecordVOS = new ArrayList<>();
list.forEach(balanceRecordEntity -> {
StatisticsBalanceRecordVO balanceRecordVO = new StatisticsBalanceRecordVO();
BeanUtil.copy(balanceRecordEntity, balanceRecordVO);
balanceRecordVO.setRecordPhotoEntityList(groupedPhotos.get(balanceRecordEntity.getId()));
balanceRecordVO.setBalanceUserName(balanceRecordEntity.getBalanceUserName());
balanceRecordVO.setBalanceRemark(balanceRecordEntity.getBalanceRemark());
balanceRecordVOS.add(balanceRecordVO);
});
return R.data(balanceRecordVOS);
}
StatisticsBalanceOrderInfoEntity statisticsBalanceOrderInfoEntity = baseMapper.selectById(balanceOrderId);
@Override
public R findBalanceDetail(Long balanceOrderId) {
return R.data(statisticsBalanceOrderInfoEntity);
}
StatisticsBalanceOrderInfoEntity statisticsBalanceOrderInfoEntity = baseMapper.selectById(balanceOrderId);
return R.data(statisticsBalanceOrderInfoEntity);
}
}

53
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java

@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.entity.BasicdataPriceTemplateEntity;
import com.logpm.basicdata.feign.IBasicdataCodeClient;
import com.logpm.basicdata.feign.IBasicdataPriceClient;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.basicdata.vo.*;
import com.logpm.statistics.dto.AftersalesOrderDTO;
import com.logpm.statistics.dto.ChangesRecordDTO;
@ -45,13 +46,13 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl<StatisticsOr
private final IStatisticsChangesRecordService changesRecordService;
private final IStatisticsChangesPhotoService changesPhotoService;
private final IBasicdataCodeClient basicdataCodeClient;
private final IStatisticsBalanceOrderInfoService balanceOrderInfoService;
private final IBasicdataPriceClient priceClient;
private final IStatisticsDistributionPackageService distributionPackageService;
private final IStatisticsWarehousePackageService warehousePackageService;
private final IStatisticsReconciliationOrderInfoService reconciliationOrderInfoService;
private final IStatisticsAftersalesOrderRecordService aftersalesOrderRecordService;
private final IBasicdataWarehouseClient warehouseClient;
@Override
public List<StatisticsOrderInfoEntity> findListByWaybillId(Long waybillId) {
@ -75,22 +76,58 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl<StatisticsOr
page.setCurrent(merchantStatisticsDTO.getPageNum());
page.setSize(merchantStatisticsDTO.getPageSize());
List<Long> warehouseIds = warehouseClient.getWarehouseIds();
if(!warehouseIds.isEmpty()){
merchantStatisticsDTO.setWarehouseIds(warehouseIds);
}
IPage<StatisticsOrderInfoVO> statisticsOrderInfoVOIPage = baseMapper.pageList(page, merchantStatisticsDTO);
List<StatisticsOrderInfoVO> records = statisticsOrderInfoVOIPage.getRecords();
//把records中所有的orderInfoId放入一个集合
List<Long> orderInfoIdList = records.stream().map(StatisticsOrderInfoVO::getOrderInfoId).collect(Collectors.toList());
// 运单ID集合
Set<Long> warehouseIdSet = records.stream().map(StatisticsOrderInfoVO::getWaybillId).collect(Collectors.toSet());
List<WaybillDetailByWaybillNoVo> waybillDetailByWaybillNoVoList;
Map<Long, StatisticsPackageFeeInfoVO> orderPackageInfoMap;
if(CollUtil.isNotEmpty(orderInfoIdList)){
List<StatisticsPackageFeeInfoVO> orderPackageInfoList = baseMapper.findPackageListByOrderIdsGroupById(orderInfoIdList);
//把orderPackageInfoList转化成以orderInfoId为key的Map
Map<Long, StatisticsPackageFeeInfoVO> orderPackageInfoMap = orderPackageInfoList.stream()
.collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO));
if(CollUtil.isNotEmpty(orderPackageInfoList)){
orderPackageInfoMap = orderPackageInfoList.stream()
.collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO));
} else {
orderPackageInfoMap = null;
}
} else {
orderPackageInfoMap = null;
}
if(CollUtil.isNotEmpty(warehouseIdSet)){
waybillDetailByWaybillNoVoList = baseMapper.findWaybillDetailByWaybillId(warehouseIdSet);
} else {
waybillDetailByWaybillNoVoList = null;
}
records.forEach(statisticsOrderInfoVO -> {
Long waybillId = statisticsOrderInfoVO.getWaybillId();
WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo1 = null;
records.forEach(statisticsOrderInfoVO -> {
Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId();
Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId();
if(orderPackageInfoMap!=null){
StatisticsPackageFeeInfoVO statisticsPackageFeeInfoVO = orderPackageInfoMap.get(orderInfoId);
BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO);
});
}
if(statisticsPackageFeeInfoVO!=null){
BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO);
}
}
if(waybillDetailByWaybillNoVoList!=null){
waybillDetailByWaybillNoVo1 = waybillDetailByWaybillNoVoList.stream().filter(waybillDetailByWaybillNoVo -> Objects.equals(waybillDetailByWaybillNoVo.getWaybillId(), waybillId)).findFirst().orElse(null);
}
if(waybillDetailByWaybillNoVo1!=null){
statisticsOrderInfoVO.setGoodsName(waybillDetailByWaybillNoVo1.getGoodsName());
}
});
statisticsOrderInfoVOIPage.setRecords(records);
return statisticsOrderInfoVOIPage;

13
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsReconciliationOrderInfoServiceImpl.java

@ -2,11 +2,13 @@ package com.logpm.statistics.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.statistics.dto.MerchantStatisticsDTO;
import com.logpm.statistics.entity.StatisticsReconciliationOrderInfoEntity;
import com.logpm.statistics.mapper.StatisticsReconciliationOrderInfoMapper;
import com.logpm.statistics.service.IStatisticsReconciliationOrderInfoService;
import com.logpm.statistics.vo.StatisticsReconciliationInfoExportVO;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.utils.CommonUtil;
@ -21,6 +23,10 @@ import java.util.List;
@Slf4j
@AllArgsConstructor
public class StatisticsReconciliationOrderInfoServiceImpl extends BaseServiceImpl<StatisticsReconciliationOrderInfoMapper,StatisticsReconciliationOrderInfoEntity> implements IStatisticsReconciliationOrderInfoService {
private IBasicdataWarehouseClient warehouseClient;
@Override
public IPage<StatisticsReconciliationOrderInfoEntity> pageReconciliationList(MerchantStatisticsDTO merchantStatisticsDTO) {
@ -31,6 +37,13 @@ public class StatisticsReconciliationOrderInfoServiceImpl extends BaseServiceImp
merchantStatisticsDTO.setOpenTimeStart(CommonUtil.getStartByDateStr(merchantStatisticsDTO.getOpenTimeStartStr()));
merchantStatisticsDTO.setOpenTimeEnd(CommonUtil.getEndByDateStr(merchantStatisticsDTO.getOpenTimeEndStr()));
List<Long> warehouseIds = warehouseClient.getWarehouseIds();
if(!warehouseIds.isEmpty()){
merchantStatisticsDTO.setWarehouseIds(warehouseIds);
}
return baseMapper.pageReconciliationList(page, merchantStatisticsDTO);
}

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

@ -167,6 +167,41 @@ public class CarsLoadApiController {
}
}
@ResponseBody
@PostMapping("/findCarsLoadingOrderPlan")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询装车订单假话", notes = "传入loadCarsDTO")
public R findCarsLoadingOrderPlan(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############findCarsLoadingOrderDetail: ";
log.info(method + "请求参数{}", loadCarsDTO);
Long loadId = loadCarsDTO.getLoadId();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(405,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(loadId)){
log.warn(method+"配载id为空 loadId={}",loadId);
return R.fail(405,"配载id为空");
}
return carsLoadService.findCarsLoadingOrderPlan(loadId,myCurrentWarehouse.getId());
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
@ResponseBody
@PostMapping("/findCarsLoadingOrderDetail")
@ApiOperationSupport(order = 1)
@ -176,7 +211,7 @@ public class CarsLoadApiController {
log.info(method + "请求参数{}", loadCarsDTO);
Long loadId = loadCarsDTO.getLoadId();
String orderCode = loadCarsDTO.getOrderCode();
String waybillNo = loadCarsDTO.getWaybillNo();
try{
//当前登录人选择的仓库
@ -196,7 +231,7 @@ public class CarsLoadApiController {
return R.fail(405,"订单号为空");
}
return carsLoadService.findCarsLoadingOrderDetail(loadId,orderCode,myCurrentWarehouse.getId());
return carsLoadService.findCarsLoadingOrderDetail(loadId,orderCode,myCurrentWarehouse.getId(),waybillNo);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
@ -573,6 +608,50 @@ public class CarsLoadApiController {
}
@ResponseBody
@PostMapping("/unloadPackageNoXz")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "包件卸车", notes = "传入loadCarsDTO")
public R unloadPackageNoXz(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############unloadPackageNoXz: ";
log.info(method + "请求参数{}", loadCarsDTO);
Long loadId = loadCarsDTO.getLoadId();
String orderPackageCode = loadCarsDTO.getOrderPackageCode();
Integer incomingType = loadCarsDTO.getIncomingType();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(405,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(loadId)){
log.warn(method+"配载计划id为空 loadId={}",loadId);
return R.fail(405,"配载计划id为空");
}
if(StringUtil.isBlank(orderPackageCode)){
log.warn(method+"包件码为空 orderPackageCode={}",orderPackageCode);
return R.fail(405,"包件码为空");
}
if(Objects.isNull(incomingType)){
log.warn(method+"入库类型为空 orderPackageCode={}",orderPackageCode);
return R.fail(405,"入库类型为空");
}
return carsLoadService.unloadPackageNoXz(loadId,orderPackageCode,myCurrentWarehouse.getId(),1,"补录卸车",incomingType,null,null);
}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("/unloadZero")
@ApiOperationSupport(order = 1)

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

@ -82,6 +82,42 @@
<if test="param.arriveTimeEnd != null ">
and ltcl.arrive_time &lt;= #{param.arriveTimeEnd}
</if>
<if test="param.driverName != null and param.driverName != ''">
and ltcl.driver_name like CONCAT('%',#{param.driverName},'%')
</if>
<if test="param.driverMobile != null and param.driverMobile != ''">
and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%')
</if>
<if test="param.driverMobile != null and param.driverMobile != ''">
and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%')
</if>
<if test="param.driverMobile != null and param.driverMobile != ''">
and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%')
</if>
<if test="param.driverMobile != null and param.driverMobile != ''">
and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%')
</if>
<if test="param.carNumber != null and param.carNumber != ''">
and ltcl.car_number like CONCAT('%',#{param.carNumber},'%')
</if>
<if test="param.startWarehouseName != null and param.startWarehouseName != ''">
and ltcl.start_warehouse_name like CONCAT('%',#{param.startWarehouseName},'%')
</if>
<if test="param.endWarehouseNames != null and param.endWarehouseNames != ''">
and ltcl.end_warehouse_names like CONCAT('%',#{param.endWarehouseNames},'%')
</if>
<if test="param.createUserName != null and param.createUserName != ''">
and ltcl.create_user_name like CONCAT('%',#{param.createUserName},'%')
</if>
<if test="param.arriveTime != null ">
and DATE_FORMAT(ltcl.arrive_time,'%y%d%m') = DATE_FORMAT(#{param.arriveTime},'%y%d%m')
</if>
<if test="param.startTime != null ">
and DATE_FORMAT(ltcl.start_time,'%y%d%m') = DATE_FORMAT(#{param.startTime},'%y%d%m')
</if>
<if test="param.createTime != null ">
and DATE_FORMAT(ltcl.create_time,'%y%d%m') = DATE_FORMAT(#{param.createTime},'%y%d%m')
</if>
group by ltcl.id,ltcl.cars_no,
ltcl.plan_loading_number,
ltcl.real_loading_number,
@ -170,6 +206,36 @@
<if test="param.arriveTimeEnd != null ">
and ltcl.arrive_time &lt;= #{param.arriveTimeEnd}
</if>
<if test="param.driverName != null and param.driverName != ''">
and ltcl.driver_name like CONCAT('%',#{param.driverName},'%')
</if>
<if test="param.driverMobile != null and param.driverMobile != ''">
and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%')
</if>
<if test="param.carNumber != null and param.carNumber != ''">
and ltcl.car_number like CONCAT('%',#{param.carNumber},'%')
</if>
<if test="param.startWarehouseName != null and param.startWarehouseName != ''">
and ltcl.start_warehouse_name like CONCAT('%',#{param.startWarehouseName},'%')
</if>
<if test="param.endWarehouseNames != null and param.endWarehouseNames != ''">
and ltcl.end_warehouse_names like CONCAT('%',#{param.endWarehouseNames},'%')
</if>
<if test="param.createUserName != null and param.createUserName != ''">
and ltcl.create_user_name like CONCAT('%',#{param.createUserName},'%')
</if>
<if test="param.operator != null and param.operator != ''">
and ltcl.operator like CONCAT('%',#{param.operator},'%')
</if>
<if test="param.arriveTime != null ">
AND DATE_FORMAT(ltcl.arrive_time,'%y%d%m') = DATE_FORMAT(#{param.arriveTime},'%y%d%m')
</if>
<if test="param.startTime != null ">
AND DATE_FORMAT(ltcl.start_time,'%y%d%m') = DATE_FORMAT(#{param.startTime},'%y%d%m')
</if>
<if test="param.createTime != null ">
AND DATE_FORMAT(ltcl.create_time,'%y%d%m') = DATE_FORMAT(#{param.createTime},'%y%d%m')
</if>
group by ltcl.id,ltcl.cars_no,
ltcl.plan_loading_number,
ltcl.real_loading_number,

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

@ -42,7 +42,7 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper<TrunklineCarsLoa
IPage<TrunklineCarsLoadScanVO> loadingDetail(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);
List<OrderScanDetailVO> findCarsLoadingOrderDetail(@Param("loadId") Long loadId, @Param("orderCode") String orderCode, @Param("warehouseId") Long warehouseId);
List<OrderScanDetailVO> findCarsLoadingOrderDetail(@Param("loadId") Long loadId, @Param("orderCode") String orderCode, @Param("warehouseId") Long warehouseId, @Param("waybillNo") String waybillNo);
boolean deleteEntityByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId);

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

@ -180,7 +180,13 @@
scan_code scanCode,
num num,
tray_name trayName,
tray_code trayCode
tray_code trayCode,
firsts firsts,
senconds senconds,
thirds thirds,
material_code materialCode,
material_name materialName,
IFNULL(loading_abnormal,0)+IFNULL(unload_abnormal,0) isAbnormal
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and order_code = #{orderCode}
@ -220,17 +226,23 @@
<select id="findPackageWithOrderList" resultType="com.logpm.trunkline.vo.UnloadScanOrderVO">
select ltcls.waybill_no waybillNo,
ltcls.order_code orderCode,
sum(ltcls.num) loadingNum,
sum(IF(ltcls.scan_status = 1,0,1)) unloadNum
from logpm_trunkline_cars_load_scan ltcls
where ltcls.load_id = #{loadId}
and ltcls.final_node_id = #{warehouseId}
and ltcls.type = 1
group by ltcls.waybill_no,
ltcls.order_code
select t.order_code orderCode,
t.waybill_no waybillNo,
t.real_num loadingNum,
t.unload_num unloadNum,
if(t.abnormal_num > 0,1,0) isAbnormal,
IFNULL(ltwo.total_number,0) totalNumber
from (select ltcls.waybill_no waybill_no,
ltcls.order_code order_code,
sum(IFNULL(ltcls.num,0)) real_num,
sum(IFNULL(ltcls.unload_num,0)) unload_num,
sum(IFNULL(ltcls.unload_abnormal,0)) abnormal_num
from logpm_trunkline_cars_load_scan ltcls
where ltcls.load_id = #{loadId}
and (ltcls.unload_node_id = #{warehouseId} or ltcls.final_node_id = #{warehouseId})
and ltcls.`type` = 1 group by ltcls.waybill_no,
ltcls.order_code order by ltcls.update_time desc) t
left join logpm_trunkline_waybill_order ltwo on ltwo.order_code = t.order_code and ltwo.waybill_no = t.waybill_no
</select>
<select id="findNotUnloadZeroList" resultType="com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity">
@ -1064,10 +1076,16 @@
scan_status scanStatus,
unload_node_name unloadNodeName,
order_code orderCode,
waybill_no waybillNo
waybill_no waybillNo,
firsts firsts,
senconds senconds,
thirds thirds,
material_code materialCode,
material_name materialName,
IFNULL(loading_abnormal,0)+IFNULL(unload_abnormal,0) isAbnormal
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and final_node_id = #{warehouseId}
and (final_node_id = #{warehouseId} or unload_node_id = #{warehouseId})
</select>
<select id="findUnloadZeroListByLoadIdAndFinalNodeId" resultType="com.logpm.trunkline.vo.UnloadPackageVO">

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

@ -72,4 +72,6 @@ public interface TrunklineCarsOrderMapper extends BaseMapper<TrunklineCarsOrderE
List<SignScanOrderVO> findSignZeroOrderListBySignOrderId(@Param("signOrderId") Long signOrderId);
List<TrunklineCarsOrderEntity> findListByLoadId(@Param("loadId") Long loadId);
List<CarsLoadPackagePlanVO> findLoadingOrderPlan(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
}

49
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml

@ -80,17 +80,25 @@
</select>
<select id="findLoadScanPackageWithOrder" resultType="com.logpm.trunkline.vo.LoadScanOrderVO">
select ltco.waybill_no waybillNo,
ltco.order_code orderCode,
ldsa.total_number totalNum,
ltco.plan_num planNum,
ltco.real_num realNum
from logpm_trunkline_cars_order ltco
left join logpm_distribution_stock_article ldsa on ldsa.order_code = ltco.order_code and ldsa.warehouse_id = #{warehouseId}
where load_id = #{loadId}
and node_id = #{warehouseId}
and real_num > 0
and `type` = 1
select t.order_code orderCode,
t.waybill_no waybillNo,
t.real_num realNum,
if(t.abnormal_num > 0,1,0) isAbnormal,
IFNULL(ltco.plan_num,0) planNum,
IFNULL(ltwo.total_number,0) totalNum
from (select ltcls.waybill_no waybill_no,
ltcls.order_code order_code,
sum(IFNULL(ltcls.num,0)) real_num,
sum(IFNULL(ltcls.loading_abnormal,0)) abnormal_num
from logpm_trunkline_cars_load_scan ltcls
where load_id = #{loadId}
and warehouse_id = #{warehouseId}
and is_data = 1
and `type` = 1 group by ltcls.waybill_no,
ltcls.order_code order by ltcls.update_time desc) t
left join logpm_trunkline_cars_order ltco on ltco.load_id = #{loadId}
and ltco.order_code = t.order_code and ltco.waybill_no = t.waybill_no
left join logpm_trunkline_waybill_order ltwo on ltwo.order_code = t.order_code and ltwo.waybill_no = t.waybill_no
</select>
<delete id="deleteByCarsOrderId" >
@ -392,4 +400,23 @@
where ltco.load_id = #{loadId}
</select>
<select id="findLoadingOrderPlan" resultType="com.logpm.trunkline.vo.CarsLoadPackagePlanVO">
select ltad.order_code orderCode,
ltad.waybill_no waybillNo,
ltad.order_package_code orderPackageCode,
ltad.third_pack_name thirds,
ltad.material_name materialName
from logpm_trunkline_cars_order ltco
left join logpm_trunkline_advance_detail ltad on ltad.order_code = ltco.order_code and ltad.waybill_no = ltco.waybill_no
LEFT JOIN (SELECT scan_code FROM logpm_trunkline_cars_load_scan ltcls
WHERE ltcls.load_id = #{loadId}
AND ltcls.warehouse_id = #{warehouseId}
AND ltcls.type = 1 ) t on t.scan_code = ltad.order_package_code
where ltco.load_id = #{loadId}
and ltco.node_id = #{warehouseId}
and ltco.type = 1
and t.scan_code is null
</select>
</mapper>

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

@ -37,7 +37,7 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
IPage<TrunklineCarsLoadScanVO> loadingDetail(IPage<Object> page, LoadCarsDTO loadCarsDTO);
List<OrderScanDetailVO> findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId);
List<OrderScanDetailVO> findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId,String waybillNo);
boolean deleteEntityByCarsLoadScanId(Long carsLoadScanId);

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

@ -115,7 +115,7 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R updateLoadFeeByNodeId(TrunklineCarsLoadDTO carsLoadDTO,Long warehouseId,String warehouseName);
R findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId);
R findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId,String waybillNo);
R carsLoadDetailInfo(LoadCarsDTO loadCarsDTO);
@ -248,4 +248,10 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R findLinePhoto(LoadCarsDTO loadCarsDTO);
void updateCardLoadNum(Long loadId);
R findCarsLoadingOrderPlan(Long loadId, Long warehouseId);
R unloadPackageNoXz(Long loadId, String orderPackageCode, Long warehouseId,Integer unbindTray,String remark,Integer incomingType,String unloadTrayName,String unloadTrayCode);
}

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

@ -70,4 +70,6 @@ public interface ITrunklineCarsOrderService extends BaseService<TrunklineCarsOrd
List<TrunklineCarsOrderEntity> findListByLoadId(Long loadId);
List<CarsLoadPackagePlanVO> findLoadingOrderPlan(Long loadId, Long warehouseId);
}

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

@ -556,6 +556,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
if (Objects.isNull(consigneeId)) {
//如果收货单位没有id值,则把收货单位信息自动添加到client中
consigneeId = saveNewClient(openOrderDTO.getConsignee(), openOrderDTO.getConsigneeName(), openOrderDTO.getConsigneeMobile(), openOrderDTO.getConsigneeAddress(), "2");
}
waybillEntity.setConsigneeId(consigneeId);
waybillEntity.setConsignee(openOrderDTO.getConsignee());
@ -563,6 +564,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
waybillEntity.setConsigneeMobile(openOrderDTO.getConsigneeMobile());
waybillEntity.setConsigneeAddress(openOrderDTO.getConsigneeAddress());
BasicdataClientEntity basicdataClient = basicdataClientClient.findEntityById(consigneeId);
if(!Objects.isNull(basicdataClient)){
waybillEntity.setServiceType(basicdataClient.getTypeService());
}else{
waybillEntity.setServiceType(1);
}
waybillEntity.setDestination(openOrderDTO.getDestination());
waybillEntity.setDestinationCode(openOrderDTO.getDestinationCode());
waybillEntity.setDeparture(openOrderDTO.getDeparture());
@ -894,6 +903,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
waybillEntity.setConsigneeMobile(openOrderDTO.getConsigneeMobile());
waybillEntity.setConsigneeAddress(openOrderDTO.getConsigneeAddress());
BasicdataClientEntity basicdataClient = basicdataClientClient.findEntityById(consigneeId);
if(!Objects.isNull(basicdataClient)){
waybillEntity.setServiceType(basicdataClient.getTypeService());
}else{
waybillEntity.setServiceType(1);
}
waybillEntity.setDestination(openOrderDTO.getDestination());
waybillEntity.setDestinationCode(openOrderDTO.getDestinationCode());
waybillEntity.setGoodsName(openOrderDTO.getGoodsName());
@ -2673,15 +2690,15 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
}
//验证运单是否有配送任务
//查询运单下所有订单号
List<String> orderCodes = distributionParcelListClient.findOrderCodeByWaybillId(waybillId);
//判断运单下所有订单是否在预约关联订单表上是否有数据
List<Long> reservationIds = reservationStockarticleClient.findReservationIdsByOrderCodes(orderCodes);
if(CollUtil.isNotEmpty(reservationIds)){
log.warn("#############updateWaybill: 已创建配送任务无法改单 waybillId={}", waybillId);
return R.fail(405, "已创建配送任务无法改单");
}
// //验证运单是否有配送任务
// //查询运单下所有订单号
// List<String> orderCodes = distributionParcelListClient.findOrderCodeByWaybillId(waybillId);
// //判断运单下所有订单是否在预约关联订单表上是否有数据
// List<Long> reservationIds = reservationStockarticleClient.findReservationIdsByOrderCodes(orderCodes);
// if(CollUtil.isNotEmpty(reservationIds)){
// log.warn("#############updateWaybill: 已创建配送任务无法改单 waybillId={}", waybillId);
// return R.fail(405, "已创建配送任务无法改单");
// }
// 得到改单之前的收货单位
@ -5569,7 +5586,9 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
BasicdataClientEntity basicdataClientEntity = basicdataClientClient.findByName(unit);
if(Objects.isNull(basicdataClientEntity)){
basicdataClientEntity = new BasicdataClientEntity();
String finallyClientCode = basicdataClientClient.getFinallyClientCode();
basicdataClientEntity.setClientName(unit);
basicdataClientEntity.setClientCode(finallyClientCode);
basicdataClientEntity.setTypeService(2);
basicdataClientEntity.setCargoControl(false);
basicdataClientEntity.setClientType(type);//1 工厂 2 商场 3装饰 4个人 5门店 6发货单位

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

@ -81,8 +81,8 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
}
@Override
public List<OrderScanDetailVO> findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId) {
return baseMapper.findCarsLoadingOrderDetail(loadId,orderCode,warehouseId);
public List<OrderScanDetailVO> findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId,String waybillNo) {
return baseMapper.findCarsLoadingOrderDetail(loadId,orderCode,warehouseId,waybillNo);
}
@Override

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

@ -264,6 +264,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if (startCarType == 1) {
//车辆配载发车
Integer realLoadingNumber = carsLoadEntity.getRealLoadingNumber();
if(NumberUtil.equals(realLoadingNumber,0)){
log.warn("#############startCarByLoadId: 车辆还未装车 loadId={} realLoadingNumber={}", loadId, realLoadingNumber);
throw new CustomerException(405, "车辆还未装车");
}
//查询发站仓节点信息
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findStartNodeByLoadId(loadId);
String nodeStatus = carsLoadLineEntity.getNodeStatus();//节点状态 0未到达 1到车 2发车
@ -515,6 +522,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
.content(value.stream().map(data->{
return PushData.builder()
.packageCode(data.getPackageCode())
.waybillNumber(data.getWaybillNumber())
.warehouseName(warehouseEntity.getName())
.orderCode(data.getOrderCode())
.build();
@ -2442,6 +2450,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
updateNumByLoadId(loadId);
}
@Override
public R findCarsLoadingOrderPlan(Long loadId, Long warehouseId) {
List<CarsLoadPackagePlanVO> list = trunklineCarsOrderService.findLoadingOrderPlan(loadId, warehouseId);
return R.data(list);
}
@Transactional(rollbackFor = Exception.class)
@Override
@ -4488,9 +4504,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Override
public R findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId) {
public R findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId,String waybillNo) {
List<OrderScanDetailVO> orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId);
List<OrderScanDetailVO> orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId,waybillNo);
if(CollUtil.isNotEmpty(orderScanDetailList)){
//把orderScanDetailList中所有元素的loadScanId放入一个List
List<Long> loadScanIdList = orderScanDetailList.stream().map(OrderScanDetailVO::getLoadScanId).collect(Collectors.toList());
@ -8293,7 +8309,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("load_id", loadId)
.eq("warehouse_id", warehouseId)
.eq("loading_abnormal", 1);
.eq("loading_abnormal", 1)
.eq("is_data", 0)
.orderByDesc("update_time");
List<TrunklineCarsLoadScanEntity> exceptionList = trunklineCarsLoadScanService.list(queryWrapper);
TrunklineCarsLoadVO trunklineCarsLoadVO = new TrunklineCarsLoadVO();
@ -8861,6 +8879,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
}
//查询包件是否签收
DistributionParcelListEntity signDistributionParcelListEntity = distributionParcelListClient.findOrderPackageCodeAndStatus(orderPackageCode,"70");
if (!Objects.isNull(distributionParcelListEntity)) {
log.warn("##############unloadPackage: 包件已签收 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "包件已签收");
}
QueryWrapper<TrunklineCarsLoadScanEntity> neloadScanQueryWrapper = new QueryWrapper<>();
neloadScanQueryWrapper.eq("load_id", loadId)
.eq("scan_code", orderPackageCode)
@ -8869,6 +8895,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
TrunklineCarsLoadScanEntity scanEntity = trunklineCarsLoadScanService.getOne(neloadScanQueryWrapper);
if (!Objects.isNull(scanEntity)) {
Integer isData1 = scanEntity.getIsData();
if (isData1.equals(0)) {
log.warn("##############unloadPackage: 系统无编码 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "系统无编码");
}
log.warn("##############unloadPackage: 包件已卸车 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "包件已卸车");
}
@ -9522,6 +9553,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
.content(Collections.singletonList(PushData.builder()
.packageCode(orderPackageCode)
.warehouseName(warehouseName)
.waybillNumber(parcelListEntity.getWaybillNumber())
.destinationWarehouse(ObjectUtil.isNotEmpty(parcelListEntity) ? parcelListEntity.getAcceptWarehouseName():"")
.waybillStartWarehouse(ObjectUtil.isNotEmpty(parcelListEntity) ? parcelListEntity.getSendWarehouseName():"")
.orderCode(orderCode)
@ -9541,9 +9573,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer abnormalUnloadNum = jsonObject.getInteger("abnormalUnloadNum");
StringBuilder audio = new StringBuilder();
audio.append("卸车").append(totalUnloadNum).append("件");
if(!Objects.isNull(abnormalUnloadNum) && !abnormalUnloadNum.equals(0)){
audio.append("异常卸车").append(abnormalUnloadNum).append("件");
}
// if(!Objects.isNull(abnormalUnloadNum) && !abnormalUnloadNum.equals(0)){
// audio.append("异常卸车").append(abnormalUnloadNum).append("件");
// }
List<String> orderPackageCodeList = new ArrayList<>();
orderPackageCodeList.add(orderPackageCode);
@ -9557,26 +9589,28 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Transactional(rollbackFor = Exception.class)
@Override
public R unloadPackageNoXz(Long loadId, String orderPackageCode, Long warehouseId, Integer unbindTray, String remark, Integer incomingType,String unloadTrayName,String unloadTrayCode) {
log.info("#############unloadPackage: 卸车包件");
log.info("#############unloadPackageNoXz: 卸车包件");
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("##############unloadPackage: 仓库信息不存在");
log.warn("##############unloadPackageNoXz: 仓库信息不存在");
return R.fail(405, "仓库信息不存在");
}
String warehouseName = basicdataWarehouseEntity.getName();
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
if (Objects.isNull(carsLoadEntity)) {
log.warn("##############unloadPackage: 配载计划信息不存在 loadId={}", loadId);
log.warn("##############unloadPackageNoXz: 配载计划信息不存在 loadId={}", loadId);
return R.fail(405, "配载计划信息不存在");
}
String loadCode = carsLoadEntity.getCarsNo();
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if (Objects.isNull(carsLoadLineEntity)) {
log.warn("############unloadPackage: 配载计划节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
log.warn("############unloadPackageNoXz: 配载计划节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
return R.fail(405, "配载计划节点信息不存在");
}
// String unloadStatus = carsLoadLineEntity.getUnloadStatus();
@ -9598,15 +9632,41 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if (!Objects.isNull(distributionParcelListEntity)) {
String orderPackageStatus = distributionParcelListEntity.getOrderPackageStatus();
if ("20".equals(orderPackageStatus) || "30".equals(orderPackageStatus)) {
log.warn("##############unloadPackage: 包件已入库 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
log.warn("##############unloadPackageNoXz: 包件已入库 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "包件已入库");
}
}
//查询包件是否签收
DistributionParcelListEntity signDistributionParcelListEntity = distributionParcelListClient.findOrderPackageCodeAndStatus(orderPackageCode,"70");
if (!Objects.isNull(distributionParcelListEntity)) {
log.warn("##############unloadPackage: 包件已签收 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "包件已签收");
}
QueryWrapper<TrunklineCarsLoadScanEntity> neloadScanQueryWrapper = new QueryWrapper<>();
neloadScanQueryWrapper.eq("load_id", loadId)
.eq("scan_code", orderPackageCode)
.eq("unload_node_id", warehouseId)
.ne("scan_status", "1");
TrunklineCarsLoadScanEntity scanEntity = trunklineCarsLoadScanService.getOne(neloadScanQueryWrapper);
if (!Objects.isNull(scanEntity)) {
Integer isData1 = scanEntity.getIsData();
if (isData1.equals(0)) {
log.warn("##############unloadPackage: 系统无编码 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "系统无编码");
}
log.warn("##############unloadPackage: 包件已卸车 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId);
return R.fail(405, "包件已卸车");
}
//先判断包件是否在配载计划的装车扫描中
QueryWrapper<TrunklineCarsLoadScanEntity> loadScanQueryWrapper = new QueryWrapper<>();
loadScanQueryWrapper.eq("load_id", loadId)
.eq("scan_code", orderPackageCode);
.eq("scan_code", orderPackageCode)
.eq("scan_status","1");
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(loadScanQueryWrapper);
//判断是否有装车扫描记录
if (Objects.isNull(carsLoadScanEntity)) {
@ -9646,10 +9706,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName);
trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId);
trunklineCarsLoadScanEntity.setUnloadNum(1);
trunklineCarsLoadScanEntity.setIsSupple(0);
trunklineCarsLoadScanEntity.setIsSupple(1);
trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadTime(new Date());
trunklineCarsLoadScanEntity.setRemark("异常补录卸车");
trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity);
loadScanId = trunklineCarsLoadScanEntity.getId();
@ -9683,12 +9744,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName);
trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId);
trunklineCarsLoadScanEntity.setUnloadNum(1);
trunklineCarsLoadScanEntity.setIsSupple(0);
trunklineCarsLoadScanEntity.setIsSupple(1);
trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadTime(new Date());
trunklineCarsLoadScanEntity.setFromWarehouseId(nowWarehouseId);
trunklineCarsLoadScanEntity.setRemark("无装车记录卸车");
trunklineCarsLoadScanEntity.setRemark("无装车记录 异常补录卸车");
trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity);
loadScanId = trunklineCarsLoadScanEntity.getId();
@ -9702,13 +9763,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
try {
carsLoadAsyncService.abnormalListUnloadByLoadIdAndWarehouseId(loadId, warehouseId, warehouseName, loadScanId, AuthUtil.getTenantId(), AuthUtil.getUserId(), AuthUtil.getNickName(), Func.firstLong(AuthUtil.getDeptId()));
} catch (Exception e) {
log.warn("###############unloadPackage: 存入异常列表记录失败");
log.warn("###############unloadPackageNoXz: 存入异常列表记录失败");
}
DistributionParcelListEntity nowParcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, nowWarehouseId);
if(Objects.isNull(nowParcelListEntity)){
log.warn("###############unloadPackage: 包件信息不存在 orderPackageCode={},nowWarehouseId={}",orderPackageCode,nowWarehouseId);
log.warn("###############unloadPackageNoXz: 包件信息不存在 orderPackageCode={},nowWarehouseId={}",orderPackageCode,nowWarehouseId);
return R.fail(405,"包件信息不存在");
}
orderCode = nowParcelListEntity.getOrderCode();
@ -9718,7 +9779,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
DistributionStockArticleEntity nowDistributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, nowWarehouseId);
if(Objects.isNull(nowDistributionStockArticle)){
log.warn("###############unloadPackage: 订单信息不存在 orderCode={},nowWarehouseId={}",orderCode,nowWarehouseId);
log.warn("###############unloadPackageNoXz: 订单信息不存在 orderCode={},nowWarehouseId={}",orderCode,nowWarehouseId);
return R.fail(405,"订单信息不存在");
}
Long articleId = nowDistributionStockArticle.getId();
@ -9805,36 +9866,41 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
}
}else{
//需要补装车扫记录
TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity();
trunklineCarsLoadScanEntity.setWarehouseId(warehouseId);
trunklineCarsLoadScanEntity.setWarehouseName(warehouseName);
trunklineCarsLoadScanEntity.setLoadId(loadId);
trunklineCarsLoadScanEntity.setLoadCode(loadCode);
trunklineCarsLoadScanEntity.setOrderCode("--");
trunklineCarsLoadScanEntity.setScanCode(orderPackageCode);
trunklineCarsLoadScanEntity.setScanStatus("2");
trunklineCarsLoadScanEntity.setNum(1);
trunklineCarsLoadScanEntity.setType(1);
trunklineCarsLoadScanEntity.setIsData(0);
isData=0;
trunklineCarsLoadScanEntity.setLoadingAbnormal(1);
trunklineCarsLoadScanEntity.setUnloadAbnormal(1);
trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName);
trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId);
trunklineCarsLoadScanEntity.setUnloadNum(1);
trunklineCarsLoadScanEntity.setIsSupple(0);
trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadTime(new Date());
trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity);
loadScanId = trunklineCarsLoadScanEntity.getId();
trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1,
1, 0, 1, trayId, trayCode, trayName, null, loadScanId, "无数据,补装车计划,异常装车");
log.info("################unloadPackageNoXz: 无系统编码 orderPackageCode={}",orderPackageCode);
return R.fail(405,"无系统编码");
trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1,
1, 0, 1, trayId, trayCode, trayName, null, loadScanId, "无数据,异常卸车");
//需要补装车扫记录
// TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity();
// trunklineCarsLoadScanEntity.setWarehouseId(warehouseId);
// trunklineCarsLoadScanEntity.setWarehouseName(warehouseName);
// trunklineCarsLoadScanEntity.setLoadId(loadId);
// trunklineCarsLoadScanEntity.setLoadCode(loadCode);
// trunklineCarsLoadScanEntity.setOrderCode("--");
// trunklineCarsLoadScanEntity.setScanCode(orderPackageCode);
// trunklineCarsLoadScanEntity.setScanStatus("2");
// trunklineCarsLoadScanEntity.setNum(1);
// trunklineCarsLoadScanEntity.setType(1);
// trunklineCarsLoadScanEntity.setIsData(0);
// isData=0;
// trunklineCarsLoadScanEntity.setLoadingAbnormal(1);
// trunklineCarsLoadScanEntity.setUnloadAbnormal(1);
// trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName);
// trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId);
// trunklineCarsLoadScanEntity.setUnloadNum(1);
// trunklineCarsLoadScanEntity.setIsSupple(1);
// trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
// trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
// trunklineCarsLoadScanEntity.setUnloadTime(new Date());
// trunklineCarsLoadScanEntity.setRemark("异常补录卸车");
// trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity);
// loadScanId = trunklineCarsLoadScanEntity.getId();
//
// trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1,
// 1, 0, 1, trayId, trayCode, trayName, null, loadScanId, "无数据,补装车计划,异常装车");
//
// trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1,
// 1, 0, 1, trayId, trayCode, trayName, null, loadScanId, "无数据,异常卸车");
}
} else {
@ -9847,7 +9913,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, wid);
if (Objects.isNull(stockArticleEntity)) {
log.warn("##############unloadPackage: 订单信息不存在 orderCode={} wid={}", orderCode, wid);
log.warn("##############unloadPackageNoXz: 订单信息不存在 orderCode={} wid={}", orderCode, wid);
return R.fail(405, "订单信息不存在");
}
Long articleId = stockArticleEntity.getId();
@ -9879,6 +9945,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
trunklineCarsLoadScanEntity.setUnloadTime(new Date());
trunklineCarsLoadScanEntity.setIsSupple(1);
trunklineCarsLoadScanEntity.setRemark("无计划异常补录卸车");
trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity);
isData = 1;
@ -10012,6 +10080,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setScanStatus("2");
carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
carsLoadScanEntity.setUnloadTime(new Date());
carsLoadScanEntity.setUnloadAbnormal(1);
carsLoadScanEntity.setIsSupple(1);
trayCode = carsLoadScanEntity.getTrayCode();
if (!StringUtil.isBlank(trayCode)) {
BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
@ -10209,12 +10279,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
.content(Collections.singletonList(PushData.builder()
.packageCode(orderPackageCode)
.warehouseName(warehouseName)
.waybillNumber(parcelListEntity.getWaybillNumber())
.destinationWarehouse(ObjectUtil.isNotEmpty(parcelListEntity) ? parcelListEntity.getAcceptWarehouseName():"")
.waybillStartWarehouse(ObjectUtil.isNotEmpty(parcelListEntity) ? parcelListEntity.getSendWarehouseName():"")
.orderCode(orderCode)
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
//卸车确认
Long warehouseId1 = parcelListEntity.getWarehouseId();
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
WorkNodeEnums node = WorkNodeEnums.TRANSFER_WAREHOUSE_UNLOADING;
if(NumberUtil.equals(warehouseId1,acceptWarehouseId)){
node = WorkNodeEnums.END_WAREHOUSE_UNLOADING;
}
List<LoadScanBrandDTO> brands = this.baseMapper.fingPackageCodeByLoadId(loadId, warehouseId);
sendFactoryData(brands, node, warehouseId, 2);
}
} catch (Exception e) {
log.error("入库推送失败:{}", e);
@ -10222,15 +10304,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
} catch (Exception e) {
log.warn("#########卸车存入日志失败");
}
JSONObject jsonObject = trunklineCarsLoadScanService.findUnloadNumAudio(loadId,warehouseId);
Integer totalUnloadNum = jsonObject.getInteger("totalUnloadNum");
Integer abnormalUnloadNum = jsonObject.getInteger("abnormalUnloadNum");
StringBuilder audio = new StringBuilder();
audio.append("卸车").append(totalUnloadNum).append("件");
if(!Objects.isNull(abnormalUnloadNum) && !abnormalUnloadNum.equals(0)){
audio.append("异常卸车").append(abnormalUnloadNum).append("件");
}
// if(!Objects.isNull(abnormalUnloadNum) && !abnormalUnloadNum.equals(0)){
// audio.append("异常卸车").append(abnormalUnloadNum).append("件");
// }
List<String> orderPackageCodeList = new ArrayList<>();
@ -10760,27 +10841,28 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//查询已扫描卸车的包件
List<UnloadScanOrderVO> unloadScanOrderList = trunklineCarsLoadScanService.findPackageWithOrderList(loadId, warehouseId);
List<UnloadPackageVO> unloadList = trunklineCarsLoadScanService.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId);
if(CollUtil.isNotEmpty(unloadScanOrderList)){
//把unloadScanOrderList中所有元素转化成以orderCode为key的map
// Map<String, List<UnloadScanOrderVO>> unloadScanOrderMap = unloadScanOrderList.stream().collect(Collectors.toMap(UnloadScanOrderVO::getOrderCode, Function.identity()));
Set<String> orderCodeSet = unloadScanOrderList.stream().map(UnloadScanOrderVO::getOrderCode).collect(Collectors.toSet());
// Set<String> orderCodeSet = unloadScanOrderList.stream().map(UnloadScanOrderVO::getOrderCode).collect(Collectors.toSet());
// Map<String, List<UnloadScanOrderVO>> unloadScanOrderMap =unloadScanOrderList.stream().map(UnloadScanOrderVO::getOrderCode).collect(Collectors.toList())
// Set<String> orderCodeSet = unloadScanOrderMap.keySet();
List<OrderCodeNumVO> orderCodeNumList = trunklineAdvanceDetailService.findTotalNumByOrderCodes(orderCodeSet);
// List<OrderCodeNumVO> orderCodeNumList = trunklineAdvanceDetailService.findTotalNumByOrderCodes(orderCodeSet);
//把orderCodeNumList中所有元素转化成以orderCode为key的map
Map<String, OrderCodeNumVO> orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity()));
List<UnloadPackageVO> unloadList = trunklineCarsLoadScanService.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId);
// Map<String, OrderCodeNumVO> orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity()));
for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) {
String waybillNo = StringUtil.isBlank(unloadScanOrderVO.getWaybillNo())?"null":unloadScanOrderVO.getWaybillNo();
String orderCode = StringUtil.isBlank(unloadScanOrderVO.getOrderCode())?"null":unloadScanOrderVO.getOrderCode();
OrderCodeNumVO orderCodeNumVO = orderCodeNumMap.get(orderCode);
if(!Objects.isNull(orderCodeNumVO)){
unloadScanOrderVO.setTotalNumber(orderCodeNumVO.getTotalNum());
}else{
unloadScanOrderVO.setTotalNumber(0);
}
// OrderCodeNumVO orderCodeNumVO = orderCodeNumMap.get(orderCode);
// if(!Objects.isNull(orderCodeNumVO)){
// unloadScanOrderVO.setTotalNumber(orderCodeNumVO.getTotalNum());
// }else{
// unloadScanOrderVO.setTotalNumber(0);
// }
List<UnloadPackageVO> unloadPackageList = new ArrayList<>();
unloadList.forEach(unloadPackageVO -> {
@ -10833,7 +10915,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("load_id", loadId)
.eq("unload_node_id", warehouseId)
.eq("unload_abnormal", 1);
.eq("unload_abnormal", 1)
.eq("is_data", 0)
.orderByDesc("update_time");
List<TrunklineCarsLoadScanEntity> exceptionList = trunklineCarsLoadScanService.list(queryWrapper);
TrunklineCarsLoadVO trunklineCarsLoadVO = new TrunklineCarsLoadVO();

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

@ -12,7 +12,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Slf4j
@ -169,4 +168,9 @@ public class TrunklineCarsOrderEntityServiceImpl extends BaseServiceImpl<Trunkli
return baseMapper.findListByLoadId(loadId);
}
@Override
public List<CarsLoadPackagePlanVO> findLoadingOrderPlan(Long loadId, Long warehouseId) {
return baseMapper.findLoadingOrderPlan(loadId,warehouseId);
}
}

8
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java

@ -290,8 +290,14 @@ public class WarehouseWaybillController extends BladeController {
myWatchWarehouse.forEach(warehouseEntity -> warehouseIds.add(warehouseEntity.getId()));
}
waybillDTO.setWarehouseIds(warehouseIds);
List<Long> idslist = null;
if (!Objects.isNull(waybillDTO.getIds())){
idslist= new ArrayList<>();
List<Long> ids = Func.toLongList(",", waybillDTO.getIds());
idslist .addAll(ids) ;
}
List<ExportWarehouseWaybillVO> list = warehouseWaybillService.exportWaybillList(waybillDTO);
List<ExportWarehouseWaybillVO> list = warehouseWaybillService.exportWaybillList(waybillDTO,idslist);
fileNameStringBuffer.append(DateUtil.format(DateUtil.now(), DateUtil.PATTERN_DATE));
//导出ls

1
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java

@ -73,5 +73,6 @@ public class WarehouseWaybillDTO extends WarehouseWaybillEntity {
private String checkTimeEndStr;
private Date checkTimeStartDate;
private Date checkTimeEndDate;
private String ids;
}

2
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java

@ -69,7 +69,7 @@ public interface WarehouseWaybillMapper extends BaseMapper<WarehouseWaybillEntit
List<WarehouseWaybillEntity> findWaybillBilllByWaybillNos(@Param("waybillNos") List<String> waybillNos);
List<ExportWarehouseWaybillVO> exportWaybillList(@Param("param") WarehouseWaybillDTO waybillDTO);
List<ExportWarehouseWaybillVO> exportWaybillList(@Param("param") WarehouseWaybillDTO waybillDTO,@Param("idsList") List<Long> idsList);
void deleteByWaybillNo(@Param("waybillNo") String waybillNo);

8
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml

@ -505,7 +505,7 @@
#{item}
</foreach>
</if>
<if test="param.warehouseId != null">
<if test="param.destinationWarehouseIds != null">
and lww.destination_warehouse_id in
<foreach collection="param.destinationWarehouseIds" item="item" open="(" separator="," close=")">
#{item}
@ -1013,6 +1013,12 @@
#{item}
</foreach>
</if>
<if test="idsList != null">
and lww.id in
<foreach collection="idsList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.warehouseIds != null and param.warehouseIds.size() > 0">
and (
lww.departure_warehouse_id in

2
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java

@ -81,7 +81,7 @@ public interface IWarehouseWaybillService extends BaseService<WarehouseWaybillEn
List<WarehouseWaybillEntity> findWaybillBilllByWaybillNos(List<String> waybillNos);
List<ExportWarehouseWaybillVO> exportWaybillList(WarehouseWaybillDTO waybillDTO);
List<ExportWarehouseWaybillVO> exportWaybillList(WarehouseWaybillDTO waybillDTO,List<Long> list);
void deleteByWaybillNo(String waybillNo);

4
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java

@ -888,7 +888,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
}
@Override
public List<ExportWarehouseWaybillVO> exportWaybillList(WarehouseWaybillDTO waybillDTO) {
public List<ExportWarehouseWaybillVO> exportWaybillList(WarehouseWaybillDTO waybillDTO,List<Long> idsList) {
waybillDTO.setDocumentMakingTimeStartDate(CommonUtil.getStartByDateStr(waybillDTO.getDocumentMakingTimeStartStr()));
waybillDTO.setDocumentMakingTimeEndDate(CommonUtil.getEndByDateStr(waybillDTO.getDocumentMakingTimeEndStr()));
@ -899,7 +899,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
waybillDTO.setFreezeTimeStartDate(CommonUtil.getStartByDateStr(waybillDTO.getFreezeTimeStartStr()));
waybillDTO.setFreezeTimeEndDate(CommonUtil.getEndByDateStr(waybillDTO.getFreezeTimeEndStr()));
List<ExportWarehouseWaybillVO> list = baseMapper.exportWaybillList(waybillDTO);
List<ExportWarehouseWaybillVO> list = baseMapper.exportWaybillList(waybillDTO,idsList);
list.forEach(item -> {
item.setPayType(DictBizCache.getValue(DictBizConstant.OPEN_ORDER_PAY_TYPE, item.getPayType()));

Loading…
Cancel
Save