Browse Source

Merge remote-tracking branch 'origin/master' into master

master
zhaoqiaobo 8 months ago
parent
commit
814075b73b
  1. 2
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataVehicleEntity.java
  2. 9
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  3. 6
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionSignforClient.java
  4. 8
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java
  5. 2
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOldSignPushClient.java
  6. 6
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java
  7. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java
  8. 79
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.xml
  9. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java
  10. 5
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java
  11. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionSignforAppController.java
  12. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  13. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionSignforClient.java
  14. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java
  15. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  16. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  17. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java
  18. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  19. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
  20. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  21. 83
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  22. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  23. 11
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java
  24. 79
      blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java
  25. 7
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessData2FactoryHandler.java
  26. 5
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessDataClerkCheck2FactoryHandler.java
  27. 4
      blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
  28. 3
      blade-service/logpm-factory/src/main/java/com/logpm/factory/props/MtFactoryProperties.java
  29. 4
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java
  30. 6
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyUnloadCarComHandler.java
  31. 11
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/OrderStatusHandler.java
  32. 5
      blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/OrderServiceImpl.java
  33. 11
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java
  34. 101
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  35. 7
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  36. 5
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  37. 7
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  38. 3
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java
  39. 2
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java
  40. 10
      blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java
  41. 3
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java
  42. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  43. 20
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  44. 202
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  45. 11
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/ExecutorConfig.java
  46. 5
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java
  47. 214
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

2
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataVehicleEntity.java

@ -251,7 +251,7 @@ public class BasicdataVehicleEntity extends TenantEntity {
* 车辆年审有效期
*/
@ApiModelProperty(value = "车辆年审有效期")
private Integer reviewValidity;
private String reviewValidity;
/**
* 车辆保险开始时间
*/

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

@ -204,4 +204,13 @@ public interface IDistributionParcelListClient {
@PostMapping(API_PREFIX + "/addZeroParcelList")
void addZeroParcelList(@RequestBody List<DistributionParcelListEntity> addParcelListEntityList);
@PostMapping(API_PREFIX + "/findListByIds")
List<DistributionParcelListEntity> findListByIds(@RequestBody List<Long> orderPackageIdList);
@PostMapping(API_PREFIX + "/clearPallet")
void clearPallet(@RequestBody List<Long> orderPackageIdList);
}

6
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionSignforClient.java

@ -24,6 +24,8 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
/**
* 签收管理 Feign接口类
*
@ -52,7 +54,7 @@ public interface IDistributionSignforClient {
@GetMapping(TOP+"push0ldSystemSignInfo")
void push0ldSystemSignInfo(@RequestParam("current") Long signingId);
Map<String ,Object> push0ldSystemSignInfo(@RequestParam("current") Long signingId);
/**
@ -61,5 +63,5 @@ public interface IDistributionSignforClient {
* @return
*/
@GetMapping(CLERKCHECKPUSHDATA)
Boolean clerkCheckPushData(@RequestParam("id") Long id);
Map<String,Object> clerkCheckPushData(@RequestParam("id") Long id);
}

8
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java

@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 配送在库订单 Feign接口类
@ -194,4 +195,11 @@ public interface IDistributionStockArticleClient {
@GetMapping(API_PREFIX + "/addHandQuantityAndIncomingNum")
void addHandQuantityAndIncomingNum(@RequestParam Long stockId, @RequestParam Integer enterNum);
@GetMapping(API_PREFIX + "/findListByIds")
List<DistributionStockArticleEntity> findListByIds(@RequestBody Set<Long> stockArticleIdSet);
@GetMapping(API_PREFIX + "/clearTraysByIds")
void clearTraysByIds(@RequestBody List<Long> clearStockArticleIdList);
}

2
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOldSignPushClient.java

@ -20,7 +20,7 @@ public interface IOldSignPushClient {
String API_PREFIX = "/client";
@PostMapping(API_PREFIX + "/pushOldSystemSignInfo")
Boolean pushOldSystemSignInfo(@RequestBody SignPushDataDTO signPushDataDTO);
Map<String,Object> pushOldSystemSignInfo(@RequestBody SignPushDataDTO signPushDataDTO);

6
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java

@ -83,8 +83,10 @@ public class BasicdataVehicleController extends BladeController {
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入basicdataVehicle")
public R<BasicdataVehicleVO> detail(BasicdataVehicleDTO basicdataVehicle) {
BasicdataVehicleEntity detail = basicdataVehicleService.getOne(Condition.getQueryWrapper(basicdataVehicle));
public R<BasicdataVehicleVO> detail(@Param("id") Long id) {
// BasicdataVehicleEntity detail = basicdataVehicleService.getOne(Condition.getQueryWrapper(basicdataVehicle));
BasicdataVehicleEntity detail = basicdataVehicleService.getVehicleDetail(id);
//查询历史照片
BasicdataVehicleVO basicdataVehicleVO = new BasicdataVehicleVO();
BeanUtils.copyProperties(detail,basicdataVehicleVO);

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

@ -62,4 +62,11 @@ public interface BasicdataVehicleMapper extends BaseMapper<BasicdataVehicleEntit
List<BasicdataVehicleVO> selectBasicdataDictionary(@Param("vehicleNub") String vehicleNub);
List<BasicdataVehicleEntity> findCarListByName(@Param("carNumber") String carNumber);
/**
* 查询车辆详情
* @param id
* @return
*/
BasicdataVehicleEntity getVehicleDetail(@Param("id")Long id);
}

79
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.xml

@ -252,6 +252,85 @@
and vehicle_nub like concat('%',#{carNumber},'%')
limit 10
</select>
<select id="getVehicleDetail" resultType="com.logpm.basicdata.entity.BasicdataVehicleEntity">
SELECT
lbv.id id,
lbv.tenant_id tenantId,
lbv.create_user createUser,
lbv.create_time createTime,
lbv.update_user updateUser,
lbv.update_time updateTime,
lbv.STATUS STATUS,
lbv.create_dept createDept,
lbv.vehicle_nub vehicleNub,
lbv.vehicle_source vehicleSource,
lbv.is_head isHead,
lbv.trailer_type trailerType,
lbv.vehicle_model vehicleModel,
lbv.car_type carType,
lbv.carrier_name carrierName,
lbv.vehicle_commander vehicleCommander,
lbv.vehicle_height vehicleHeight,
lbv.payment_method paymentMethod,
lbv.approved_volume approvedVolume,
lbv.license_plate_color licensePlateColor,
lbv.vehicle_color vehicleColor,
lbv.energy_type energyType,
lbv.license_plate_type licensePlateType,
lbv.notes notes,
lbv.vehicle_owner vehicleOwner,
lbv.vehicle_brand vehicleBrand,
lbv.vehicle_code vehicleCode,
lbv.engine_code engineCode,
lbv.vehicle_quality vehicleQuality,
lbv.curb_weight curbWeight,
lbv.load_mass loadMass,
lbv.outer_width outerWidth,
lbv.expiration_time expirationTime,
lbv.road_transport roadTransport,
lbv.business_license businessLicense,
lbv.vehicle_unit vehicleUnit,
lbv.vehicle_unit_phone vehicleUnitPhone,
lbv.vehicle_owner_phone vehicleOwnerPhone,
lbv.vehicle_owner_card vehicleOwnerCard,
lbv.driving_license_photo drivingLicensePhoto,
lbv.driving_license_photo_back drivingLicensePhotoBack,
lbv.license_photo licensePhoto,
lbv.vehicle_photo vehiclePhoto,
lbv.vehicle_rear_photo vehicleRearPhoto,
lbv.road_transport_photo roadTransportPhoto,
lbv.vehicle_people_photo vehiclePeoplePhoto,
lbv.insurance_card_photo insuranceCardPhoto,
lbv.carrier_id carrierId,
lbv.review_time reviewTime,
lbv.review_validity reviewValidity,
lbv.insurance_start_time insuranceStartTime,
lbv.insurance_end_time insuranceEndTime,
lbv.body_advertising bodyAdvertising,
lbv.advertisements_new_times advertisementsNewTimes,
lbv.vehicle_parking_company vehicleParkingCompany,
lbv.with_gps withGps,
lbv.gps_service_provider gpsServiceProvider,
lbv.gps_model gpsModel,
(
SELECT
group_concat( lbvp.photo_url )
FROM
logpm_basicdata_vehicle_photo lbvp
WHERE
lbvp.master_id = lbv.id
AND lbvp.create_time &lt;= DATE_SUB( CURDATE(), INTERVAL 1 YEAR )
ORDER BY
lbvp.create_time
LIMIT 3
) historicPhotos,
( SELECT GROUP_CONCAT( driver_id SEPARATOR ',' ) FROM logpm_basicdata_drivermiddle lbd WHERE lbd.brand_id = lbv.id AND lbd.is_deleted = 0 ) vehicleOwners
FROM
logpm_basicdata_vehicle lbv
WHERE
lbv.id = #{id}
AND is_deleted = 0
</select>
</mapper>

7
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java

@ -92,4 +92,11 @@ public interface IBasicdataVehicleService extends BaseService<BasicdataVehicleEn
* @param data
*/
void importDriverArtery(List<BasicdataVehicleImportExcel> data);
/**
* 查询车辆详情
* @param id
* @return
*/
BasicdataVehicleEntity getVehicleDetail(Long id);
}

5
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java

@ -286,4 +286,9 @@ public class BasicdataVehicleServiceImpl extends BaseServiceImpl<BasicdataVehicl
}
@Override
public BasicdataVehicleEntity getVehicleDetail(Long id) {
return baseMapper.getVehicleDetail(id);
}
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionSignforAppController.java

@ -224,7 +224,7 @@ public class DistributionSignforAppController {
}
/**
* 司机签收管理 确认签收
* 上传签收图片
*/
@PostMapping("/signforack")
@ApiOperationSupport(order = 2)

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

@ -492,4 +492,14 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
distributionParcelNumberService.saveBatch(addList);
}
@Override
public List<DistributionParcelListEntity> findListByIds(List<Long> orderPackageIdList) {
return distributionParcelListService.listByIds(orderPackageIdList);
}
@Override
public void clearPallet(List<Long> orderPackageIdList) {
distributionParcelListService.clearPalletByIds(orderPackageIdList);
}
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionSignforClient.java

@ -51,6 +51,7 @@ import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -98,8 +99,8 @@ public class DistributionSignforClient implements IDistributionSignforClient {
* @param signingId
*/
@Override
public void push0ldSystemSignInfo(Long signingId) {
distributionSignforService.push0ldSystemSignInfo(signingId);
public Map<String ,Object> push0ldSystemSignInfo(Long signingId) {
return distributionSignforService.push0ldSystemSignInfo(signingId);
}
@ -109,7 +110,7 @@ public class DistributionSignforClient implements IDistributionSignforClient {
* @return
*/
@Override
public Boolean clerkCheckPushData(Long id) {
public Map<String,Object> clerkCheckPushData(Long id) {
return distributionSignforService.clerkCheckPushData(id);

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java

@ -389,4 +389,14 @@ public class DistributionStockArticleClient implements IDistributionStockArticle
distributionStockArticleService.addHandQuantityAndIncomingNum(stockId,enterNum);
}
@Override
public List<DistributionStockArticleEntity> findListByIds(Set<Long> stockArticleIdSet) {
return distributionStockArticleService.listByIds(stockArticleIdSet);
}
@Override
public void clearTraysByIds(List<Long> clearStockArticleIdList) {
distributionStockArticleService.clearTraysByIds(clearStockArticleIdList);
}
}

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -367,6 +367,7 @@
association_value ) AS t2 ON t.cargo_number = t2.association_value
where ldslNew.is_deleted = 0
AND ldslNew.warehouse_id=#{warehouseId}
AND ldslNew.market_name=#{mallName}
GROUP BY
ldslNew.cargo_number
</select>

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

@ -52,7 +52,7 @@
dbl.total_cost AS totalCost,
dbl.pick_up_plate AS pickUpPlate,
dbl.pickup_batch AS pickupBatch,
( SELECT count( quantity ) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = dbl.id ) AS stopNum,
( SELECT IFNULL(SUM(quantity),0 FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = dbl.id ) AS stopNum,
(
SELECT
group_concat( splice )

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java

@ -64,8 +64,8 @@ public class ClerkCheckPushDataQueueHandler {
log.info(">>>>>>>>>>>>> clerkCheckPushDataHandler 签收ID为空");
return;
}
Boolean b = distributionSignforService.clerkCheckPushData(t);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 推送老系统签收队列 成功状态: {}",b);
Map<String,Object> map1= distributionSignforService.clerkCheckPushData(t);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 推送老系统签收队列 成功状态: {}",map1);
} catch (Exception e) {
log.error(">>>>> 推送老系统签收信息报错", e);
}

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

@ -254,4 +254,5 @@ public interface IDistributionParcelListService extends BaseService<Distribution
String findAllAllocationByNoParcelListIds(List<Long> parcelListIdList, String orderCode);
void clearAllocationByIds(List<Long> clearTrayList);
}

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

@ -335,11 +335,11 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
* 推送老系统
* @param signingId
*/
void push0ldSystemSignInfo(Long signingId);
Map<String ,Object> push0ldSystemSignInfo(Long signingId);
SignforPageCountVO selectDistributionSignforPageCount( DistributionSignforVO distributionSignfor);
Boolean clerkCheckPushData(Long id);
Map<String,Object> clerkCheckPushData(Long id);
/**
* 导出签收详情列表

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

@ -904,8 +904,9 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
List<String> materialUnit = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialUnit).distinct().collect(Collectors.toList());
List<Long> mallId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMarketId).distinct().collect(Collectors.toList());
List<String> materialName = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialName).distinct().collect(Collectors.toList());
List<String> brandName = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getBrandName).distinct().collect(Collectors.toList());
List<Long> brandId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getBrandId).distinct().collect(Collectors.toList());
if (materialId.size() != 1 || materialCode.size() != 1 || materialUnit.size() != 1 || mallId.size() != 1 || materialName.size() != 1 || brandId.size() != 1) {
if (materialId.size() != 1 || materialCode.size() != 1 || materialUnit.size() != 1 || mallId.size() != 1 || materialName.size() != 1 || brandName.size() != 1) {
//该批次包件出现多种物料包件
return null;
}
@ -941,6 +942,7 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
// distributionStockListEntity.setCategory(Optional.ofNullable(distributionParcelList.getBrandId()+"").orElse(null));//品分类
// 品牌
distributionStockListEntity.setBrandId(brandId.get(0));
distributionStockListEntity.setBrandName(brandName.get(0));
distributionStockListEntity.setUnpackingQuantity(0);
distributionStockListEntity.setSourceType("1"); //类型

83
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -59,6 +59,7 @@ import com.logpm.warehouse.feign.IWarehouseUpdownStockUpAreaClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.jetbrains.annotations.NotNull;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.Inventory.InventoryLoadingStatusConstant;
@ -950,7 +951,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
log.error("signforack############未进行签收上传图片");
return R.fail("无签收数据");
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
log.info("=============签收图片数据为:{}", distributionSignfor.getMap());
if (ObjectUtils.isNotNull(distributionSignfor.getMap())) {
List<DistributionSignPrintEntity> distributionSignPrintList = new ArrayList<>();
@ -1592,13 +1593,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
* @param signingId
*/
@Override
public void push0ldSystemSignInfo(Long signingId) {
public Map<String, Object> push0ldSystemSignInfo(Long signingId) {
try {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 推送老系统签收队列");
//得到审核的任务ID
if (ObjectUtil.isEmpty(signingId)) {
log.info(">>>>>>>>>>>>> clerkCheckPushDataHandler 签收ID为空");
return;
return null;
}
//得到签收对象
@ -1608,20 +1609,20 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (ObjectUtil.isEmpty(distributionSignforEntity)) {
log.info(">>>>>>>>>>>> clerkCheckPushDataHandler distributionSignforEntity {}", distributionSignforEntity);
return;
return null;
}
// 得到配送计划
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distributionSignforEntity.getDeliveryId());
if (ObjectUtil.isEmpty(distributionDeliveryListEntity)) {
log.info(">>>>>>>>>>> clerkCheckPushDataHandler distributionDeliveryListEntity {}", distributionDeliveryListEntity);
return;
return null;
}
// 得到配送客户
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distributionSignforEntity.getReservationId());
if (ObjectUtil.isEmpty(distributionReservationEntity)) {
log.info(">>>>>>>>>>>> clerkCheckPushDataHandler distributionReservationEntity {}", distributionReservationEntity);
return;
return null;
}
@ -1727,12 +1728,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
Boolean b = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
Map<String, Object> map = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
return map;
} catch (Exception e) {
log.error(">>>>> 推送老系统签收信息报错", e);
}
return null;
}
@ -2466,7 +2468,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
signforExcel.setDeliveryStatusName(d.getSijiSigningStatus());
signforExcel.setExamineUserName(d.getExamineUserName());
signforExcel.setWarehouseName(d.getWarehouseName());
int unsigneds =d.getReservationNum() - d.getReceivedQuantity();
int unsigneds = d.getReservationNum() - d.getReceivedQuantity();
signforExcel.setUnsigneds(unsigneds);
a.add(signforExcel);
@ -2809,7 +2811,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
return Resp.scanSuccessWithData("签收成功", str, orderPackageCodes);
} catch (Exception e) {
log.error(">>>>> 签收异常报错", e);
throw new CustomerException("签收异常报错"+e.getMessage());
throw new CustomerException("签收异常报错" + e.getMessage());
}
}
@ -3220,7 +3222,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
return Resp.scanFail(12000, "请先进行签收扫描后上传图片", "请先进行签收扫描后上传图片", null);
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
log.info("=============签收图片数据为:{}", distributionSignfor.getMap());
if (ObjectUtils.isNotNull(distributionSignfor.getMap())) {
List<DistributionSignPrintEntity> distributionSignPrintList = new ArrayList<>();
@ -3271,7 +3273,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (Func.isEmpty(distributionDeliveryListEntity)) {
return R.fail(403, "配送错误!!!");
}
if (distributionDeliveryListEntity.getKind().equals("2")){
if (distributionDeliveryListEntity.getKind().equals("2")) {
return Resp.scanFail("请调整配送计划", "请调整配送计划");
}
List<Long> packageLockIds = new ArrayList<>();
@ -3390,7 +3392,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setIsAbnormalLoading(2);
distributionLoadscanEntity.setIsAbnormalSigning(2);
distributionLoadscanEntity.setAbnormalNote("异常签收");
loadscanEntity =distributionLoadscanEntity;
loadscanEntity = distributionLoadscanEntity;
log.info("异常签收>>>>>>>>>>>>>>>reservationId:{},deliveryId:{},orderPackageCode:{}", distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getOrderPackageCode());
//进行签收数量的修改
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
@ -4937,10 +4939,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
String method = "######################DistributionSignforServiceImpl.oneclickPDA";
BladeUser user = AuthUtil.getUser();
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
//进行防重复提交
if (Objects.isNull(myCurrentWarehouse)) {
return R.fail(403, "仓库信息不能为空");
// throw new CustomerException(403, "仓库信息不能为/**/空");
}
int loadingPackageNum = 0;
int loadingInventoryNum = 0;
int signingPackageNum = 0;
@ -4965,6 +4970,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
log.error(method + "reservationEntity参数错误:{}", reservationEntity);
return R.fail("服务器正忙~~");
}
Long batchLock = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "reservationId:" );
if (!Objects.isNull(batchLock)){
return R.fail("请不要重复操作");
}
List<Long> packageLockIds = new ArrayList<>();
//查询数据
DistributionSignforEntity distributionSignforEntity = baseMapper.selectOne(new QueryWrapper<DistributionSignforEntity>().lambda()
@ -5272,8 +5281,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
loadingPackageNum += parcelListEntityList.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
signingPackageNum += parcelListEntityList.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) {
if (OrderPackageStatusConstant.yiqianshou.getValue().equals(parcelListEntity.getOrderPackageStatus())){
log.info("司机一键签收 >>>>>包件已签收:{}",parcelListEntity.getOrderPackageCode());
if (OrderPackageStatusConstant.yiqianshou.getValue().equals(parcelListEntity.getOrderPackageStatus())) {
log.info("司机一键签收 >>>>>包件已签收:{}", parcelListEntity.getOrderPackageCode());
continue;
}
//查询是否进行装车
@ -5448,6 +5457,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionSignforEntity.setDriverRemarks(distributionSignfor.getDriverRemarks());
}
this.updateById(distributionSignforEntity);
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "reservationId:", distributionSignfor.getReservationId(),60L);
return R.status(true);
}
@ -6097,8 +6107,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.sijiqianshou.getValue());
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
distributionLoadscanEntity.setSigningUser(user.getNickName());
loadingNumber += distributionLoadscanEntity.getLoadedNub()+signforEntity.getLoadedNumber();
signingNumber += distributionLoadscanEntity.getReceivedQuantity()+signforEntity.getReceivedQuantity();
loadingNumber += distributionLoadscanEntity.getLoadedNub() + signforEntity.getLoadedNumber();
signingNumber += distributionLoadscanEntity.getReceivedQuantity() + signforEntity.getReceivedQuantity();
//进行签收数量的统计
distributionLoadscanService.updateById(distributionLoadscanEntity);
JSONObject jsonObject = new JSONObject();
@ -6445,13 +6455,15 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
@Override
public Boolean clerkCheckPushData(Long id) {
public Map<String, Object> clerkCheckPushData(Long id) {
Map<String, Object> resultMap = new HashMap<>();
try {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 推送老系统签收队列");
//得到审核的任务ID
if (ObjectUtil.isEmpty(id)) {
log.info(">>>>>>>>>>>>> clerkCheckPushDataHandler 签收ID为空");
return false;
resultMap.put("result", false);
return resultMap;
}
//得到签收对象
@ -6461,20 +6473,29 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (ObjectUtil.isEmpty(distributionSignforEntity)) {
log.info(">>>>>>>>>>>> clerkCheckPushDataHandler distributionSignforEntity {}", distributionSignforEntity);
return false;
resultMap.put("result", false);
resultMap.put("msg", "没有签收对象 distributionSignforEntity");
return resultMap;
}
// 得到配送计划
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distributionSignforEntity.getDeliveryId());
if (ObjectUtil.isEmpty(distributionDeliveryListEntity)) {
log.info(">>>>>>>>>>> clerkCheckPushDataHandler distributionDeliveryListEntity {}", distributionDeliveryListEntity);
return false;
resultMap.put("result", false);
resultMap.put("msg", "没有配送计划 distributionDeliveryListEntity");
return resultMap;
}
// 得到配送客户
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distributionSignforEntity.getReservationId());
if (ObjectUtil.isEmpty(distributionReservationEntity)) {
log.info(">>>>>>>>>>>> clerkCheckPushDataHandler distributionReservationEntity {}", distributionReservationEntity);
return false;
resultMap.put("result", false);
resultMap.put("msg", "没有配送客户 distributionReservationEntity");
return resultMap;
}
@ -6582,14 +6603,16 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
log.info(">>>> clerkCheckPushData SignPushDataDTO :{}", delivery);
Boolean b = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
return b;
resultMap = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
return resultMap;
} catch (Exception e) {
resultMap.put("result", false);
resultMap.put("msg", "数据准备错误"+e.getMessage());
log.error(">>>>> 推送老系统签收信息报错", e);
}
return resultMap;
return false;
}
@Override
@ -6747,7 +6770,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
List<DistributionAddvaluePackageDTO> list = new ArrayList<>();
if (!addvaluePackageVOS.isEmpty()) {
addvaluePackageVOS.forEach(a->{
addvaluePackageVOS.forEach(a -> {
DistributionAddvaluePackageDTO dto = Func.copy(a, DistributionAddvaluePackageDTO.class);
list.add(dto);
});
@ -6853,11 +6876,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (k.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())
&& k.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) {
String content = "包件在" + warehouse.getName() + "由" + user.getNickName() + "完成复核,配送车次号:" + trainNumber + "预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(warehouse, AuthUtil.getUser(), k.getOrderPackageCode(), content, WorkNodeEnums.CLERK_REVIEW.getCode(),trainNumber,new Date());
JSONObject js = handleLogJSONObject(warehouse, AuthUtil.getUser(), k.getOrderPackageCode(), content, WorkNodeEnums.CLERK_REVIEW.getCode(), trainNumber, new Date());
aaa.add(js);
} else {
String content = "包件在" + warehouse.getName() + "由" + user.getNickName() + "复核取消计划无操作包件,配送车次号:" + trainNumber + "预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(warehouse, AuthUtil.getUser(), k.getOrderPackageCode(), content, WorkNodeEnums.CANCEL_DISTRIBUTION.getCode(),trainNumber,new Date());
JSONObject js = handleLogJSONObject(warehouse, AuthUtil.getUser(), k.getOrderPackageCode(), content, WorkNodeEnums.CANCEL_DISTRIBUTION.getCode(), trainNumber, new Date());
aaa.add(js);
}
});
@ -6927,8 +6950,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node, String trainNumber, Date warehouseEntryTimeEnd) {
JSONObject trunklinePackageTrackLog = new JSONObject();
trunklinePackageTrackLog.put("tenantId", user.getTenantId());
@ -6951,6 +6972,4 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
}

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -109,6 +109,7 @@ import com.logpm.oldproject.dto.SignPushDataUnitDTO;
import com.logpm.oldproject.feign.IOldSignPushClient;
import com.logpm.trunkline.feign.ITrunklinePackageTrackLogClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.sun.org.apache.xpath.internal.operations.Bool;
import lombok.extern.log4j.Log4j2;
import org.apache.logging.log4j.util.Strings;
import org.jetbrains.annotations.NotNull;
@ -1266,8 +1267,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
// 转换仓库ID
// modifyWarehouseId(delivery);
Boolean b = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
return b;
Map<String,Object> map = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
Boolean flag = (Boolean) map.get("result");
return flag;
} catch (Exception e) {
log.error(">>>>> 推送老系统自提签收信息报错", e);
return false;
@ -3575,7 +3577,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))
.eq(DistributionBillLadingScanEntity::getMaterialType, "2")
);
if (ladingScanEntities.isEmpty()){
return R.fail("无签收数据!!");
@ -3596,7 +3597,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (Func.isNotEmpty(ladingScanEntities)) {
int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
int sum = ladingScanEntities.stream().filter(f->f.getMaterialType().equals("2")).mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
// if (sum == 0){
// //未进行任何签收扫描的操作这里需要进行拦截
// throw new ServiceException("无签收数据");

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

@ -328,23 +328,24 @@ public class NodeDataPushListener {
HttpRequest post = HttpUtil.createPost(mengTianProperties.getHost() + url);
post.header("ClientId", "mt.ht");
post.header("OperationCode", operationCode);
post.timeout(5000);
post.timeout(30000);
post.body(body);
// 存入日志表
entity.setContent(body);
entity.setOperationCode(operationCode);
entity.setSendUrl(mengTianProperties.getHost() + url);
String resBody = "";
try {
HttpResponse execute = post.execute();
String resBody = execute.body();
resBody = execute.body();
log.info("推送工厂结果:{}", resBody);
JSONObject entries = JSONUtil.parseObj(resBody);
String resultCode = entries.getStr("Result");
entity.setResultContent(resBody);
entity.setSendStatus(StrUtil.isEmpty(resultCode) ? "0" : resultCode);
entity.setSendStatus(StrUtil.isEmpty(resultCode) ? "-1" : resultCode);
} catch (Exception e) {
entity.setResultContent(e.getMessage());
entity.setSendStatus("0");
entity.setResultContent(resBody);
entity.setSendStatus("-1");
}
factoryNodePushService.save(entity);
}

79
blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

@ -127,78 +127,69 @@ public class FactoryXxlJob {
// 获取请求日志 按照状态来识别
List<OrderLogEntity> ls = orderLogService.lambdaQuery().eq(OrderLogEntity::getType, 1).eq(OrderLogEntity::getStatus, 1).list();
// //XxlJobLogger.log("日志集合 {}", ls);
//XxlJobLogger.log("目前存在的数据 {}", newList);
// 解析数据
ls.forEach(orderLogEntity -> {
// 查询所有的数据库内容 只包含客户单号
List<StationOrderEntity> allDataList = stationOrderService.list();
XxlJobLogger.log("allDataList{}", allDataList.size());
// List<String> newList = new ArrayList<>();
// if (allDataList.size() != 0) {
// newList.addAll(allDataList.stream().map(StationOrderEntity::getTcWlb008).collect(Collectors.toList()));
// XxlJobLogger.log("newList{}", newList.size());
//
// }
XxlJobLogger.log("allDataList {}", allDataList.size());
// 解析数据
ls.forEach(orderLogEntity -> {
//XxlJobLogger.log("日志对象 {}", orderLogEntity);
Map<String, List> map = orderService.dataRelative(orderLogEntity);
List<StationOrderEntity> dataList = map.get(StationOrderEntity.class.getName());
List<StationOrderEntity> dataList = (List<StationOrderEntity>) map.get(StationOrderEntity.class.getName());
if (dataList.isEmpty()) {
//XxlJobLogger.log("本次解析操作没有数据");
//更新数据库请求日志状态
// 更新数据库请求日志状态
orderLogEntity.setStatus(0);
orderLogService.updateById(orderLogEntity);
return;
}
dataList = checkDataExit(dataList, allDataList);
if (dataList != null && dataList.size() != 0) {
//XxlJobLogger.log("保存对象StationOrderEntity {}", dataList);
if (!dataList.isEmpty()) {
stationOrderService.saveBatch(dataList);
}
//XxlJobLogger.log("日志对象 {}", dataList.get(0).getId());
List<StaorderPackagesEntity> staorderPackagesEntityList = map.get(StaorderPackagesEntity.class.getName());
List<StaorderPackagesEntity> allDataStaorderPackagesEntity = staorderPackagesService.lambdaQuery().select(StaorderPackagesEntity::getPackagenum).list();
List<String> allStaorderPackagesEntityUnionId = allDataStaorderPackagesEntity.stream().map(StaorderPackagesEntity::getPackagenum).collect(Collectors.toList());
List<StaorderPackagesEntity> staorderPackagesEntityList = (List<StaorderPackagesEntity>) map.get(StaorderPackagesEntity.class.getName());
allStaorderPackagesEntityUnionId.forEach(t -> {
for (int i = 0; i < staorderPackagesEntityList.size(); i++) {
if (staorderPackagesEntityList.get(i).getPackagenum().equals(t)) {
staorderPackagesEntityList.remove(i);
break;
}
}
});
/*************** SNM 存在 相同的车次 多次推送 重复的包件的操作**************/
// 需要移除 当前合同号下的已经存在的包件
List<StationOrderEntity> finalDataList = dataList;
List<StaorderPackagesEntity> filteredStaorderPackagesEntityList = staorderPackagesEntityList.stream()
.filter(staorderPackagesEntity -> {
dataList.forEach(v -> {
for (int i = 0; i < staorderPackagesEntityList.size(); i++) {
if (staorderPackagesEntityList.get(i).getTcPoa014().equals(v.getTcWlb008())) {
staorderPackagesEntityList.get(i).setOrderId(v.getId());
List<StaorderPackagesEntity> list = staorderPackagesService.lambdaQuery()
.eq(StaorderPackagesEntity::getTcPoa014, staorderPackagesEntity.getTcPoa014()).list();
// 验证查询处理的包件中是否包含当前循环的包件
boolean exists = list.stream()
.anyMatch(t -> t.getPackagenum().equals(staorderPackagesEntity.getPackagenum()));
log.info("staorderPackagesEntity.getPackagenum() {}", staorderPackagesEntity.getPackagenum());
log.info("exists {}" , exists);
if (!exists) {
// 更新订单ID
for (StationOrderEntity v : finalDataList) {
if (v.getTcWlb008().equals(staorderPackagesEntity.getTcPoa014())) {
staorderPackagesEntity.setOrderId(v.getId());
}
}
});
}
boolean isExist = !exists ;
log.info("isExist {}", isExist);
return isExist;
})
.collect(Collectors.toList());
log.info("filteredStaorderPackagesEntityList {}", filteredStaorderPackagesEntityList.size());
// 插入数据库
if (staorderPackagesEntityList != null && !staorderPackagesEntityList.isEmpty()) {
//XxlJobLogger.log("保存对象StaorderPackagesEntity {}", staorderPackagesEntityList);
staorderPackagesService.saveBatch(staorderPackagesEntityList);
if (!filteredStaorderPackagesEntityList.isEmpty()) {
staorderPackagesService.saveBatch(filteredStaorderPackagesEntityList);
}
//更新数据库请求日志状态
// 更新数据库请求日志状态
orderLogEntity.setStatus(0);
orderLogService.updateById(orderLogEntity);
});
// 调用接口写入到老系统的数据库
if (ObjectUtil.equal(sendDataProperties.getSend(), "old")) {
log.info("推送到老系统");
@ -212,6 +203,7 @@ public class FactoryXxlJob {
return ReturnT.SUCCESS;
}
private Timestamp initTimestamp() {
Calendar calendar = Calendar.getInstance();
@ -224,7 +216,7 @@ public class FactoryXxlJob {
}
@Transactional(rollbackFor = Exception.class)
public Boolean resoveFactoryData() {
public void resoveFactoryData() {
Map<Long, List<StaorderPackagesEntity>> map = new HashMap<>();
//TODO 调用Service 获取需要处理的数据
//查询要处理的订单信息
@ -420,7 +412,6 @@ public class FactoryXxlJob {
});
}
return true;
}
@Transactional(rollbackFor = Exception.class)

7
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessData2FactoryHandler.java

@ -1,12 +1,11 @@
package com.logpm.factory.mt.receiver;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
@ -30,6 +29,8 @@ public class BusinessData2FactoryHandler {
@Autowired
private IMtFactoryDataService mtFactoryDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@RabbitHandler
public void sendOrderPackageScan(Map map, Message message, Channel channel) throws IOException, NoSuchAlgorithmException {
@ -44,7 +45,9 @@ public class BusinessData2FactoryHandler {
String destinationWarehouse = object.getString("destinationWarehouse");
try {
if(mtFactoryProperties.getSendEnable()){
mtFactoryDataService.qianshouScanForNewSystem(orderPackageCode, operationTime, distributionContactId, destinationWarehouse);
}
} catch (Exception e) {
log.error(">>>>>>", e);
}

5
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessDataClerkCheck2FactoryHandler.java

@ -3,6 +3,7 @@ package com.logpm.factory.mt.receiver;
import com.alibaba.fastjson.JSONObject;
import com.logpm.factory.mt.dto.MtReceiveDTO;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
@ -29,6 +30,8 @@ public class BusinessDataClerkCheck2FactoryHandler {
@Autowired
private IMtFactoryDataService mtFactoryDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@RabbitHandler
public void sendOrderPackageScan(Map map, Message message, Channel channel) throws IOException, NoSuchAlgorithmException {
@ -38,7 +41,9 @@ public class BusinessDataClerkCheck2FactoryHandler {
MtReceiveDTO mtReceiveDTO = JSONObject.parseObject(json,MtReceiveDTO.class);
try {
if(mtFactoryProperties.getSendEnable()){
mtFactoryDataService.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
} catch (Exception e) {
log.error(">>>>>>", e);
}

4
blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java

@ -660,6 +660,10 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
}else{
distributionStockArticleEntity.setTotalNumber(total);
distributionStockArticleEntity.setGenre(1);
String reservationStatus = distributionStockArticleEntity.getReservationStatus();
if("30".equals(reservationStatus)){
distributionStockArticleEntity.setReservationStatus("20");
}
distributionStockArticleClient.saveOrUpdate(distributionStockArticleEntity);
}

3
blade-service/logpm-factory/src/main/java/com/logpm/factory/props/MtFactoryProperties.java

@ -19,5 +19,8 @@ public class MtFactoryProperties {
private String userpwd ;
/** 是否推送梦天 */
private Boolean sendEnable = true;
}

4
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java

@ -6,6 +6,7 @@ import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.oupai.service.IOuPaiFactoryService;
import com.logpm.factory.pan.service.IPanFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.feign.ITrunklineAdvanceClient;
import com.rabbitmq.client.Channel;
@ -37,6 +38,7 @@ import java.util.Objects;
public class HwyOrderStatusHandler {
private final IPanFactoryDataService panFactoryDataService;
private final MtFactoryProperties mtFactoryProperties;
private final IMtFactoryDataService mtFactoryDataService;
private final IOuPaiFactoryService ouPaiFactoryService;
private final ITrunklineAdvanceClient trunklineAdvanceClient;
@ -70,12 +72,14 @@ public class HwyOrderStatusHandler {
}
break;
case FactoryConstant.MENGT:
if(mtFactoryProperties.getSendEnable()){
r = mtFactoryDataService.handleStatusData(orderStatusDTO);
if (r.getCode() == 400 || r.getCode() == 200) {
log.info("TAG {} ##################hwyOrderStatusHandler: 该条数据不用处理 orderNo={}", FactoryConstant.MENGT, orderSelfNum);
} else {
throw new CustomerException(r.getCode(), r.getMsg());
}
}
break;
case FactoryConstant.OUPAI:
r = ouPaiFactoryService.handleStatusData(orderStatusDTO);

6
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyUnloadCarComHandler.java

@ -14,6 +14,7 @@ import com.logpm.factory.mt.entity.MtPushData;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.mt.service.IMtFactoryOrderMainService;
import com.logpm.factory.mt.service.IMtPushDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.logpm.factory.snm.vo.MTOrderPackageRelationVO;
import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.vo.NodePushMsg;
@ -61,6 +62,9 @@ public class HwyUnloadCarComHandler {
@Autowired
private IMtPushDataService mtPushDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@RabbitHandler
public void unloadCarComDataHandler(NodePushMsg nodePushMsg, Message message, Channel channel) {
@ -68,7 +72,9 @@ public class HwyUnloadCarComHandler {
BrandEnums brand = nodePushMsg.getBrand();
switch (brand) {
case MTMM:
if(mtFactoryProperties.getSendEnable()){
pushMentTian(nodePushMsg);
}
break;
}
}

11
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/OrderStatusHandler.java

@ -7,13 +7,18 @@ import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.oupai.service.IOuPaiFactoryService;
import com.logpm.factory.pan.service.IPanFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.logpm.factory.zb.service.IZbFactoryDataService;
import com.logpm.oldproject.entity.AdvanceEntity;
import com.logpm.oldproject.feign.IAdvanceClient;
import com.logpm.oldproject.feign.ITrayClient;
import com.logpm.oldproject.feign.ITrayScanClient;
import com.logpm.oldproject.feign.ITrayScanDesClient;
import com.logpm.warehouse.feign.*;
import com.logpm.warehouse.feign.IWarehouseTaryAllocationClient;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
@ -50,6 +55,8 @@ public class OrderStatusHandler {
private IMtFactoryDataService mtFactoryDataService;
@Autowired
private IZbFactoryDataService zbFactoryDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@Autowired
private IOuPaiFactoryService ouPaiFactoryService;
@ -105,12 +112,14 @@ public class OrderStatusHandler {
}
break;
case FactoryConstant.MENGT:
if(mtFactoryProperties.getSendEnable()){
r = mtFactoryDataService.handleStatusData(orderStatusDTO);
if (r.getCode() == 400 || r.getCode() == 200) {
log.info("TAG {} ##################orderStatusHandler: 该条数据不用处理 orderNo={}", FactoryConstant.MENGT, orderSelfNum);
} else {
throw new CustomerException(r.getCode(), r.getMsg());
}
}
break;
case FactoryConstant.ZHIBANG:
r = zbFactoryDataService.handleStatusData(orderStatusDTO);

5
blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/OrderServiceImpl.java

@ -121,6 +121,7 @@ public class OrderServiceImpl implements IOrderService {
@Override
public Map<String,List> dataRelative(OrderLogEntity orderLogEntity) {
logger.info(">>>>>>>>>>>>>> 待解析数据{}", orderLogEntity.getResBody());
Map<String,List> map = new HashMap<>();
String resBody = orderLogEntity.getResBody();
@ -136,9 +137,13 @@ public class OrderServiceImpl implements IOrderService {
List<StationOrderEntity> rs = new ArrayList<>();
List<ResponseStaorderPackagesInfoVo> PACKAGE_LIST = new ArrayList<>();
logger.info(">>>>>>>>>>>>>> responseStationOrderVo.getData() {}", responseStationOrderVo.getData());
responseStationOrderVo.getData().forEach(responseStationOrderInfoVo -> {
StationOrderEntity stationOrderEntity = new StationOrderEntity();
if(!ObjectUtils.isEmpty(responseStationOrderInfoVo.getPACKAGE_LIST())){
PACKAGE_LIST.addAll(responseStationOrderInfoVo.getPACKAGE_LIST());
}
try {
buildStationOrderEntityByRelative(responseStationOrderInfoVo, stationOrderEntity);
} catch (NoSuchFieldException e) {

11
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/SignPushClient.java

@ -26,11 +26,11 @@ public class SignPushClient implements IOldSignPushClient {
@Autowired
private OldSystemProperties oldSystemProperties;
@Override
public Boolean pushOldSystemSignInfo(SignPushDataDTO signPushDataDTO) {
public Map<String,Object> pushOldSystemSignInfo(SignPushDataDTO signPushDataDTO) {
//todo 这里存在调用老系统的接口 将数据会写给老系统
int timeoutMilliseconds = 60000;
Map<String,Object> resultMap = new HashMap<>();
Boolean result =false;
log.info(">>>> pushOldSystemSignInfo 程序执行 start time: {}",System.currentTimeMillis());
String authCode = oldLogin(signPushDataDTO.getWarehouseId()+"");
@ -41,21 +41,24 @@ public class SignPushClient implements IOldSignPushClient {
log.info(">>>> pushOldSystemSignInfo request url:{} data:{}",url,data);
String body = HttpRequest.post(url).body(data).header("token", authCode).setConnectionTimeout(timeoutMilliseconds).execute().body();
log.info(">>>> pushOldSystemSignInfo body :{}",body);
if (StringUtil.isNotBlank(body)) {
JSONObject res = JSON.parseObject(body);
if ("200".equals(res.getString("code"))) {
result= true;
}else {
String msg = res.getString("msg");
resultMap.put("msg",msg);
log.info(">>>> pushOldSystemSignInfo response msg:{}",msg);
log.info(">>>> pushOldSystemSignInfo 推送配送ID signPushDataDTO ID:{}",signPushDataDTO.getId());
}
}
log.info(">>>> pushOldSystemSignInfo response url:{} body:{}",url,body);
log.info(">>>> pushOldSystemSignInfo 程序执行 end time : {} >> return result :{} ",System.currentTimeMillis(),result);
resultMap.put("result",result);
return result;
return resultMap;
}
@Override

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

@ -82,20 +82,22 @@ public class DistributionDatarepair {
Map<Long, List<DistributionParcelListEntity>> packageMap = deliveryParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWarehouseId));
packageMap.forEach((k, v) -> {
String orderPackageCodes = v.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.joining(","));
stringBuffer.append("仓库:"+k).append("包件下架"+orderPackageCodes);;
Map<String,Object> map = new HashMap<>();
map.put("orderPackageCode",orderPackageCodes);
map.put("warehouseId",k);
stringBuffer.append("仓库:" + k).append("包件下架" + orderPackageCodes);
;
Map<String, Object> map = new HashMap<>();
map.put("orderPackageCode", orderPackageCodes);
map.put("warehouseId", k);
warehouseUpdownTypeClient.downDeliveryPackage(map);
});
}
log.info("执行包件下架操作>>>>>>>>>>>>>"+stringBuffer.toString());
log.info("执行包件下架操作>>>>>>>>>>>>>" + stringBuffer.toString());
return ReturnT.SUCCESS;
}
/**
* 对已签收包件进行解托
*
* @return
*/
@XxlJob("downTrayOldPackage")
@ -108,144 +110,158 @@ public class DistributionDatarepair {
Map<Long, List<DistributionParcelListEntity>> packageMap = deliveryParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWarehouseId));
packageMap.forEach((k, v) -> {
String orderPackageCodes = v.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.joining(","));
stringBuffer.append("仓库:"+k).append("包件解托"+orderPackageCodes);;
warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCodes, k,"签收下架解托");
stringBuffer.append("仓库:" + k).append("包件解托" + orderPackageCodes);
;
warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCodes, k, "签收下架解托");
});
}
log.info("执行包件下架操作>>>>>>>>>>>>>"+stringBuffer.toString());
log.info("执行包件下架操作>>>>>>>>>>>>>" + stringBuffer.toString());
return ReturnT.SUCCESS;
}
/**
* 维护配送状态
*
* @return
*/
@XxlJob("maintenanceDeliveryStatus")
public ReturnT<String> maintenanceDeliveryStatus(String params) {
//维护配送的状态
String method = "######################DistributionDatarepair.maintenanceDeliveryStatus";
log.info(method+"维护配送订单id:{}",params);
log.info(method + "维护配送订单id:{}", params);
deliveryListClient.maintenanceDeliveryInfo(params);
log.info(method+"维护配送订单结束");
log.info(method + "维护配送订单结束");
return ReturnT.SUCCESS;
}
/**
* 维护预约单信息
*
* @return
*/
@XxlJob("maintenanceReservationInfo")
public ReturnT<String> maintenanceReservationInfo(String params) {
//维护配送的状态
String method = "######################DistributionDatarepair.maintenanceDeliveryStatus";
log.info(method+"维护配送订单id:{}",params);
log.info(method + "维护配送订单id:{}", params);
distributionReservationClient.maintenanceReservationInfo(params);
log.info(method+"维护配送订单结束");
log.info(method + "维护配送订单结束");
return ReturnT.SUCCESS;
}
/**
* 维护指定取消预约信息
*
* @return
*/
@XxlJob("maintenanceCancelReservation")
public ReturnT<String> maintenanceCancelReservation(String params) {
//维护配送的状态
String method = "######################DistributionDatarepair.maintenanceDeliveryStatus";
log.info(method+"维护配送订单id:{}",params);
log.info(method + "维护配送订单id:{}", params);
distributionReservationClient.maintenanceCancelReservation(params);
log.info(method+"维护配送订单结束");
log.info(method + "维护配送订单结束");
return ReturnT.SUCCESS;
}
/**
* 维护指定取消预约信息
*
* @return
*/
@XxlJob("maintenanceDeliveryInfo")
public ReturnT<String> maintenanceDeliveryInfo(String params) {
//维护配送的状态
String method = "######################DistributionDatarepair.maintenanceDeliveryStatus";
log.info(method+"维护配送订单id:{}",params);
log.info(method + "维护配送订单id:{}", params);
deliveryListClient.maintenanceDeliveryInfoByWarehouseId(params);
log.info(method+"维护配送订单结束");
log.info(method + "维护配送订单结束");
return ReturnT.SUCCESS;
}
/**
* 推送老系统系统
*
* @return
*/
@XxlJob("pushNotification")
public ReturnT<String> pushNotification(String params) {
// 得到当前仓库所有的签收任务
Integer parmeId = null;
if(StringUtil.isNotBlank(params)){
if (StringUtil.isNotBlank(params)) {
parmeId = Integer.parseInt(params);
}
List<JSONObject> allSignfor = warehouseMappingDataMapper.findAllSignfor(parmeId);
for (JSONObject entries : allSignfor) {
Long id = entries.getLong("singnforId");
Boolean b = distributionSignforClient.clerkCheckPushData(id);
if(b!=null&&b){
Map<String, Object> map = distributionSignforClient.clerkCheckPushData(id);
log.info(">>> 推送反馈信息 map :{}",map);
Boolean b = (Boolean) map.get("result");
if (b != null && b) {
warehouseMappingDataMapper.updateClearSignforStatus(id, entries.getLong("warehouseId"), 1);
log.info(">>> 推送成功 {}",id);
}else{
log.error(">>> 推送失败 id="+id);
log.info(">>> 推送成功 {}", id);
} else {
String remarks = (String) map.get("msg");
//进行错误记录
warehouseMappingDataMapper.updateClearSignforRemarks(id, remarks);
log.error(">>> 推送失败 id=" + id);
}
}
return ReturnT.SUCCESS;
}
/**
* 推送单个 老系统系统
*
* @return
*/
@XxlJob("pushSingleNotification")
public ReturnT<String> pushSingleNotification(String params) {
Boolean b = distributionSignforClient.clerkCheckPushData(Long.parseLong(params));
if(b!=null&&b){
Map<String, Object> map = distributionSignforClient.clerkCheckPushData(Long.parseLong(params));
Long id = Long.parseLong(params);
Boolean b = (Boolean) map.get("result");
log.info(">>> 推送反馈信息 map :{}",map);
if (b != null && b) {
warehouseMappingDataMapper.updateClearSignforStatusBysignforId(Long.parseLong(params), 1);
log.info(">>> 推送成功 {}",Long.parseLong(params));
}else{
log.error(">>> 推送失败 id="+Long.parseLong(params));
log.info(">>> 推送成功 {}", Long.parseLong(params));
} else {
String remarks = (String) map.get("msg");
warehouseMappingDataMapper.updateClearSignforRemarks(id, remarks);
log.error(">>> 推送失败 id=" + Long.parseLong(params));
}
return ReturnT.SUCCESS;
}
/**
* 推送自提签收老系统系统
*
* @return
*/
@XxlJob("pushBillNotification")
public ReturnT<String> pushBillNotification(String params) {
// 得到当前仓库所有的签收任务
Long parmeId = null;
if(StringUtil.isNotBlank(params)){
if (StringUtil.isNotBlank(params)) {
parmeId = Long.parseLong(params);
}
List<JSONObject> allSignfor = warehouseMappingDataMapper.findAllBillSign(parmeId);
for (JSONObject entries : allSignfor) {
try {
Long id = entries.getLong("billId");
Boolean b =distrilbutionBillLadingClient.clerkBillCheckPushData(id);
if(b!=null&&b){
Boolean b = distrilbutionBillLadingClient.clerkBillCheckPushData(id);
if (b != null && b) {
warehouseMappingDataMapper.updateClearBillSignforStatus(entries.getLong("id"), entries.getLong("warehouseId"), 1);
log.info(">>> pushBillNotification 成功 id={}",id);
}else{
log.error(">>> pushBillNotification 失败 id="+id);
log.info(">>> pushBillNotification 成功 id={}", id);
} else {
log.error(">>> pushBillNotification 失败 id=" + id);
}
Thread.sleep(1000*60);
Thread.sleep(1000 * 60);
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
@ -257,22 +273,17 @@ public class DistributionDatarepair {
}
/**
* 推送自提签收信息至工厂
*
* @return
*/
@XxlJob("sendFactorySignforInfo")
public ReturnT<String> sendFactorySignforInfo(String params) {
// 得到当前仓库所有的签收任务
Boolean b =distrilbutionBillLadingClient.sendFactorySignforInfo(params);
Boolean b = distrilbutionBillLadingClient.sendFactorySignforInfo(params);
return ReturnT.SUCCESS;
}
}

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

@ -123,5 +123,12 @@ public interface WarehouseMappingDataMapper {
List<StockAllocationInfoVO> findStockAllocationInfo();
void updateClearSignforStatusBysignforId(@Param("singnforId")Long singnforId, @Param("dealStatus") Integer dealStatus);
/**
* 修改备注
* @param id
* @param remarks
*/
void updateClearSignforRemarks(@Param("singnforId")Long id,@Param("remarks") String remarks);
}

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

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

7
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java

@ -1613,6 +1613,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
private void saveOrderPackage(DistributionStockArticleEntity distributionStockArticleEntity, BasicdataWarehouseEntity basicdataWarehouseEntity, String waybillNo,String operationTime,Integer oldWarehouseId,Integer inventoryId) {
String orderCode = distributionStockArticleEntity.getOrderCode();
String reservationStatus = distributionStockArticleEntity.getReservationStatus();
Long warehouseId = basicdataWarehouseEntity.getId();
//查询订单下的所有包件
@ -1771,6 +1772,12 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
log.warn("#################handleDataToPlatform: 保存包件信息失败 orderCode={}", entity.getOrderCode());
}else{
log.info("################handleDataToPlatform: 保存包件成功 OrderPackageCode={}",vo.getPacketBarCode());
if("30".equals(reservationStatus)){
distributionStockArticleEntity.setReservationStatus("20");
distributionStockArticleClient.saveOrUpdate(distributionStockArticleEntity);
}
// distributionStockArticleClient.updateOrderInfo(orderCode,distributionStockArticleEntity.getWarehouseId());
// Integer handQuantity = distributionStockArticleEntity.getHandQuantity();
// Integer totalNumber = distributionStockArticleEntity.getTotalNumber();

3
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java

@ -74,7 +74,8 @@ public class AsyncServiceImpl implements IAsyncService {
// 当前第几次查询
int current = finalNum + 1;
// 当前查询需要查询几条数据
long lastNum = remaindNum > pageSize ? pageSize : remaindNum;
// long lastNum = remaindNum > pageSize ? pageSize : remaindNum;
long lastNum = pageSize;
// 分页查询对象
Page<T> page = new Page(current, lastNum);
// 执行查询操作返回数据

2
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java

@ -196,7 +196,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
trainCustomQuery(query, queryWrapper);
// 仓库权限
ReportUtil.buildReportWarehouseAuth(vo.getWarehouseName(), query.getWarehouseNameRange(), queryWrapper, warehouseClient);
reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表",20L, ReportExcelUtil.SHEETDATANUM);
reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表",2000L, ReportExcelUtil.SHEETDATANUM);
}
@Override

10
blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java

@ -23,14 +23,12 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
/**
* excel导出工具类
@ -109,7 +107,7 @@ public class ReportExcelUtil {
throw new ServiceException("导出数据不能大于50w,请增加检索条件");
}
// 每个 sheet 放多少条数据
Double sheetDataNum = onceSheetDataNum.doubleValue();
Long sheetDataNum = Math.min(count, onceSheetDataNum);
// 总共要几个 sheet
int sheetNum = (int) Math.ceil((count / sheetDataNum));
// 总共需要查询数据库几次
@ -129,9 +127,11 @@ public class ReportExcelUtil {
for (int i = 0; i < sheetNum; i++) {
// sheet编号
int finalI = i + 1;
// long ceilNum = Math.min(count, 100)
// 还剩多少条数据
long l = count - (sheetDataNum * num);
// 每页需要查几次
long l = count - (pageSize * num);
long ceil = l > pageSize ? (int) Math.ceil(onceSheetDataNum / pageSize.doubleValue()) : (int) Math.ceil(l / pageSize.doubleValue());
long ceil = (int) Math.ceil(l / pageSize.doubleValue());
for (int j = 0; j < ceil; j++) {
// 已经查询过几次了
int finalNum = num;

3
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java

@ -54,7 +54,8 @@ public class PackageFanoutListener {
Integer workNode = jsonObject.getInt("workNode");
if (WorkNodeEnums.SIGN_DIRECT_SHIPPER.getCode().equals(workNode)
|| WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode().equals(workNode)
|| WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode().equals(workNode)) {
|| WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode().equals(workNode)
|| WorkNodeEnums.DISTRIBUTION_ABNORMAL_SIGN_FOR.getCode().equals(workNode)) {
JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes");
List<String> orderPackageCodeList = orderPackageCodes.toList(String.class);

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

@ -62,10 +62,9 @@
<select id="findUnloadTrayGoodsList" resultType="com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity">
select ltcls.*
from logpm_trunkline_cars_order ltco
left join logpm_trunkline_cars_load_scan ltcls on ltcls.order_code = ltco.order_code and ltcls.load_id = ltco.load_id
where ltco.load_id = #{loadId}
and ltco.final_node_id = #{warehouseId}
from logpm_trunkline_cars_load_scan ltcls
where ltcls.load_id = #{loadId}
and ltcls.final_node_id = #{warehouseId}
and ltcls.tray_code = #{trayCode}
and ltcls.scan_status = '1'
</select>

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

@ -190,16 +190,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
}
//收货单位-----根据三方商场找到对应的clientId
Long clientId = basicdataTripartiteMallClient.getClientIdByNameAndBrandAndCode(dealerName,StringUtil.isBlank(dealerCode)?"":dealerCode, brand);
BasicdataClientVO basicdataClientEntity = basicdataClientClient.findEntityVoById(clientId);
if (!Objects.isNull(basicdataClientEntity)) {
openOrderVO.setConsigneeClientId(clientId);
TrunklineAdvanceEntity advanceEntity = list.get(0);
openOrderVO.setConsignee(basicdataClientEntity.getClientName());
openOrderVO.setConsigneeName(basicdataClientEntity.getLinkman());
openOrderVO.setConsigneeMobile(basicdataClientEntity.getPhone());
openOrderVO.setConsigneeAddress(basicdataClientEntity.getDetailedly());
if(!Objects.isNull(advanceEntity)){
String consigneePerson = advanceEntity.getConsigneePerson();
if(!StringUtil.isBlank(consigneePerson)){
@ -209,6 +200,17 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
}
}
//收货单位-----根据三方商场找到对应的clientId
Long clientId = basicdataTripartiteMallClient.getClientIdByNameAndBrandAndCode(dealerName,StringUtil.isBlank(dealerCode)?"":dealerCode, brand);
BasicdataClientVO basicdataClientEntity = basicdataClientClient.findEntityVoById(clientId);
if (!Objects.isNull(basicdataClientEntity)) {
openOrderVO.setConsigneeClientId(clientId);
openOrderVO.setConsignee(basicdataClientEntity.getClientName());
openOrderVO.setConsigneeName(basicdataClientEntity.getLinkman());
openOrderVO.setConsigneeMobile(basicdataClientEntity.getPhone());
openOrderVO.setConsigneeAddress(basicdataClientEntity.getDetailedly());
List<String> destinationArray = new ArrayList<>();
String badeRegionAreaId = basicdataClientEntity.getBladeRegionAreaId();
String bladeRegionProvinceId = basicdataClientEntity.getBladeRegionProvinceId();

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

@ -1102,7 +1102,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
queryWrapper.eq("load_id", loadId)
.eq("unload_node_id", warehouseId)
.eq("type", 2)
.ne("scan_status", "1");
.ne("scan_status", "1")
.isNull("unload_tray_code");
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper);
if(CollUtil.isNotEmpty(carsLoadScanEntityList)){
@ -1142,6 +1143,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticleEntity.setIncomingNum(unloadNum);
newStockArticleEntity.setWarehouse(warehouseEntity.getName());
newStockArticleEntity.setWarehouseId(warehouseEntity.getId());
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
newStockArticleEntity.setCarsLoadNum(0);
Long orderId = distributionStockArticleClient.addData(newStockArticleEntity);
if (orderId != 0) {
@ -2471,6 +2474,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long loadScanId = null;
TrunklineCarsLoadScanEntity trunklineCarsLoadScan = trunklineCarsLoadScanService.findEntityByLoadIdAndOrderPackageCode(loadId, orderPackageCode);
if(!Objects.isNull(trunklineCarsLoadScan)){
String scanStatus = trunklineCarsLoadScan.getScanStatus();
if("1".equals(scanStatus)){
log.warn("##################loadingScan: 包件已装车 orderPackageCode={}", orderPackageCode);
return Resp.scanFail(405,"包件已装车","包件已装车");
}
}
//判断包条码是不是在库
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId);
TrunklineCarsLoadScanEntity carsLoadScanEntity = new TrunklineCarsLoadScanEntity();
@ -4274,6 +4287,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticleEntity.setGroundingStatus("10");
newStockArticleEntity.setOrderReceiveStatus("10");
newStockArticleEntity.setFreezeStatus("10");
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
orderId = distributionStockArticleClient.addData(newStockArticleEntity);
finalOrderCodes.put(e, orderId);
}
@ -4393,6 +4408,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticleEntity.setGroundingStatus("10");
newStockArticleEntity.setOrderReceiveStatus("10");
newStockArticleEntity.setFreezeStatus("10");
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
orderId = distributionStockArticleClient.addData(newStockArticleEntity);
finalOrderCodes1.put(e, orderId);
}
@ -7126,6 +7143,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setIncomingNum(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentOrderId = distributionStockArticleClient.addData(currentStockArticleEntity);
currentStockArticleEntity.setId(currentOrderId);
} else {
@ -7301,6 +7320,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setIncomingNum(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentOrderId = distributionStockArticleClient.addData(currentStockArticleEntity);
currentStockArticleEntity.setId(currentOrderId);
} else {
@ -7448,6 +7469,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
stockArticleEntity.setTransferQuantity(0);
stockArticleEntity.setSigninQuantity(0);
stockArticleEntity.setIncomingNum(0);
stockArticleEntity.setAllocation(null);
stockArticleEntity.setTrays(null);
currentOrderId = distributionStockArticleClient.addData(stockArticleEntity);
stockArticleEntity.setId(currentOrderId);
} else {
@ -7529,6 +7552,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticle.setId(null);
newStockArticle.setWarehouseId(warehouseId);
newStockArticle.setWarehouse(basicdataWarehouseEntity.getName());
newStockArticle.setAllocation(null);
newStockArticle.setTrays(null);
orderId = distributionStockArticleClient.addData(newStockArticle);
} else {
orderId = newStockArticle.getId();
@ -8463,6 +8488,179 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
public R unloadZeroWithTray(Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark,String unloadTrayName,String unloadTrayCode) {
log.info("#############unloadZero: 卸车零担");
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
if (Objects.isNull(carsLoadEntity)) {
log.warn("#############unloadZero: 配载计划信息不存在 loadId={}", loadId);
return R.fail(405, "配载计划信息不存在");
}
String loadCode = carsLoadEntity.getCarsNo();
TrunklineCarsLoadLineEntity loadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if (Objects.isNull(loadLineEntity)) {
log.warn("############unloadZero: 配载计划节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
return R.fail(405, "配载计划节点信息不存在");
}
String unloadStatus = loadLineEntity.getUnloadStatus();
if (!"0".equals(unloadStatus)) {
log.warn("############unloadZero: 当前网点已经卸车确认 loadId={} warehouseId={}", loadId, warehouseId);
return R.fail(405, "当前网点已经卸车确认");
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("#############unloadZero: 仓库信息不存在 warehouseId={}", warehouseId);
return R.fail(405, "仓库信息不存在");
}
String warehouseName = basicdataWarehouseEntity.getName();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if (Objects.isNull(waybillEntity)) {
log.warn("#############unloadZero: 运单信息不存在 waybillNo={}", waybillNo);
return R.fail(405, "运单信息不存在");
}
Long trayId = null;
String trayName = null;
if (!StringUtil.isBlank(trayCode)) {
BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if (!Objects.isNull(trayEntity)) {
trayId = trayEntity.getId();
trayName = trayEntity.getPalletName();
}
}
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("waybill_no", waybillNo)
.eq("load_id", loadId)
.eq("final_node_id", warehouseId)
.eq("order_code", orderCode);
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(queryWrapper);
if (Objects.isNull(carsLoadScanEntity)) {
log.warn("#############unloadZero: 零担信息不存在 waybillNo={} order_code={} loadId={} finalNodeId={}", waybillNo, orderCode, loadId, warehouseId);
return R.fail(405, "零担信息不存在");
}
Integer isAbnormal = 0;
Integer num = carsLoadScanEntity.getNum();
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
Long waybillId = carsLoadScanEntity.getWaybillId();
String scanCode = carsLoadScanEntity.getScanCode();
Long loadScanId = carsLoadScanEntity.getId();
if (enterNun > num) {
log.warn("#############unloadZero: 零担信息卸车数量大于装车件数 enterNun={} num={}", enterNun, num);
return R.fail(405, "零担信息卸车数量大于装车件数");
}
carsLoadScanEntity.setUnloadNum(enterNun);
carsLoadScanEntity.setUnloadNodeId(warehouseId);
carsLoadScanEntity.setUnloadNodeName(warehouseName);
carsLoadScanEntity.setUnloadAbnormal(0);
carsLoadScanEntity.setScanStatus("2");
carsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
carsLoadScanEntity.setUnloadTime(new Date());
carsLoadScanEntity.setUnloadTrayName(unloadTrayName);
carsLoadScanEntity.setUnloadTrayCode(unloadTrayCode);
trunklineCarsLoadScanService.updateById(carsLoadScanEntity);
trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode,
scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark);
if (unbindTray == 1) {
if (!StringUtil.isBlank(trayCode)) {
trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, fromWarehouseId, "干线卸车零担解托");
}
}
DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId);
if (Objects.isNull(newStockArticleEntity)) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
newStockArticleEntity = new DistributionStockArticleEntity();
BeanUtil.copy(stockArticleEntity, newStockArticleEntity);
newStockArticleEntity.setId(null);
newStockArticleEntity.setOrderReceiveStatus("20");
newStockArticleEntity.setOrderStatus("10");
newStockArticleEntity.setHandQuantity(enterNun);
newStockArticleEntity.setIncomingNum(enterNun);
newStockArticleEntity.setWarehouse(basicdataWarehouseEntity.getName());
newStockArticleEntity.setWarehouseId(basicdataWarehouseEntity.getId());
newStockArticleEntity.setCarsLoadNum(0);
Long orderId = distributionStockArticleClient.addData(newStockArticleEntity);
if (orderId != 0) {
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, fromWarehouseId);
List<DistributionParcelNumberEntity> ls = new ArrayList<>();
for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) {
DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity, newParcelListEntity);
newParcelListEntity.setId(null);
newParcelListEntity.setWarehouseId(warehouseId);
newParcelListEntity.setWarehouse(warehouseName);
newParcelListEntity.setStockArticleId(orderId);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
if(warehouseId.equals(acceptWarehouseId)){
newParcelListEntity.setIsTransfer(0);
}else{
newParcelListEntity.setIsTransfer(1);
}
Long orderPackageId = distributionParcelListClient.addReturnId(newParcelListEntity);
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setStockArticleId(orderId);
parcelNumberEntity.setParcelListId(orderPackageId);
parcelNumberEntity.setQuantity(newParcelListEntity.getQuantity());
parcelNumberEntity.setHandQuantity(0);
parcelNumberEntity.setDeliveryQuantity(0);
parcelNumberEntity.setSigninQuantity(0);
parcelNumberEntity.setOutboundQuantity(0);
parcelNumberEntity.setWarehouseId(warehouseId);
ls.add(parcelNumberEntity);
}
distributionParcelNumberClient.addBatch(ls);
}
} else {
Integer handQuantity = newStockArticleEntity.getHandQuantity() + enterNun;
Integer incomingNum = newStockArticleEntity.getIncomingNum() + enterNun;
Integer totalNumber = newStockArticleEntity.getTotalNumber();
if (incomingNum.equals(totalNumber)) {
if (handQuantity.equals(totalNumber)) {
newStockArticleEntity.setOrderStatus("20");
} else {
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("30");
} else {
if (incomingNum.equals(handQuantity)) {
newStockArticleEntity.setOrderStatus("10");
} else {
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("20");
}
newStockArticleEntity.setHandQuantity(handQuantity);
newStockArticleEntity.setIncomingNum(incomingNum);
distributionStockArticleClient.saveOrUpdate(newStockArticleEntity);
}
updateNumByLoadId(loadId);
// 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("件");
// }
return R.success("卸车成功");
}
public R unloadZeroNoXz(Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark) {
log.info("#############unloadZero: 卸车零担");
@ -8737,7 +8935,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String waybillNo = carsLoadScanEntity.getWaybillNo();
Integer num = carsLoadScanEntity.getNum();
String orderCode = carsLoadScanEntity.getOrderCode();
unloadZero(loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "托盘零担正常卸车",palletName,trayCode);
unloadZeroWithTray(loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "托盘零担正常卸车",palletName,trayCode);
}
}

11
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/ExecutorConfig.java

@ -1,6 +1,7 @@
package com.logpm.warehouse.config;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC;
import org.springblade.core.secure.utils.AuthUtil;
@ -66,7 +67,17 @@ public class ExecutorConfig {
RequestContextHolder.setRequestAttributes(context);
// 未当前的异步线程绑定租户ID 和切换数据源
log.info(">>>> 异步线程创建,绑定租户数据源 {}",tenantId);
log.info(">>>> 异步线程创建,绑定租户数据源 {}",tenantId);
if(StringUtils.isBlank(tenantId)){
//这里为null 存在问题
log.info(">>>> 异步线程创建,没有用户信息 {}",AuthUtil.getUserId());
log.info(">>>> 异步线程创建,没有用户信息 {}",AuthUtil.getUser());
log.info(">>>> 异步线程创建,没有用户信息 {}",context);
DynamicDataSourceContextHolder.push("627683");
}else{
// 未当前的异步线程绑定租户ID 和切换数据源
DynamicDataSourceContextHolder.push(tenantId);
}
runnable.run();
} finally {
RequestContextHolder.resetRequestAttributes();

5
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java

@ -22,10 +22,7 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
@Log4j2
@Service

214
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

@ -3937,17 +3937,229 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
@Override
public void changeTrayWarehouseInfo(String trayCode, Long warehouseId) {
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if(Objects.isNull(basicdataTrayEntity)){
log.warn("#############changeTrayWarehouseInfo: 托盘信息不存在 trayCode={}",trayCode);
throw new CustomerException(403,"托盘信息不存在");
}
String palletName = basicdataTrayEntity.getPalletName();
QueryWrapper<WarehouseTrayTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_code",trayCode)
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryWrapper);
trayTypeEntity.setWarehouseId(warehouseId);
updateById(trayTypeEntity);
Long trayTypeId = trayTypeEntity.getId();
warehouseTrayGoodsService.updeteWarehouseIdByTrayTypeId(trayTypeId,warehouseId);
QueryWrapper<WarehouseTrayGoodsEntity> trayGoodsEntityQueryWrapper = new QueryWrapper<>();
trayGoodsEntityQueryWrapper.eq("tray_type_id",trayTypeId);
List<WarehouseTrayGoodsEntity> trayGoodsEntities = warehouseTrayGoodsService.list(trayGoodsEntityQueryWrapper);
List<DistributionStockArticleEntity> updateStockArticleList = new ArrayList<>();
List<Long> clearStockArticleIdList = new ArrayList<>();
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
//把trayGoodsEntities中所有元素的associationType进行分组
Map<String, List<WarehouseTrayGoodsEntity>> map = trayGoodsEntities.stream().collect(Collectors.groupingBy(WarehouseTrayGoodsEntity::getAssociationType));
map.keySet().forEach(associationType -> {
List<WarehouseTrayGoodsEntity> warehouseTrayGoodsEntities = map.get(associationType);
if("1".equals(associationType)){
//把warehouseTrayGoodsEntities中所有的associationId放入一个Set
Set<Long> orderIdSet = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toSet());
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByIds(orderIdSet);
stockArticleEntityList.forEach(stockArticleEntity -> {
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.remove(palletName);
if(CollUtil.isNotEmpty(trayList)){
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}else{
clearStockArticleIdList.add(stockArticleEntity.getId());
}
}
}
});
}else if ("3".equals(associationType)){
//把trayGoodsEntities中的所有元素的associationId放入一个List
List<Long> orderPackageIdList = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toList());
//清除原来仓库的包件上的托盘信息
distributionParcelListClient.clearPallet(orderPackageIdList);
//查询原仓库有哪些包件
List<DistributionParcelListEntity> oldParceList = distributionParcelListClient.findListByIds(orderPackageIdList);
//把oldParceList中的所有元素的stockArticleId放入一个set
Set<Long> stockArticleIdSet = oldParceList.stream().map(DistributionParcelListEntity::getStockArticleId).collect(Collectors.toSet());
List<DistributionStockArticleEntity> oldStockArticleList = distributionStockArticleClient.findListByIds(stockArticleIdSet);
oldStockArticleList.forEach(stockArticleEntity -> {
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.remove(palletName);
if(CollUtil.isNotEmpty(trayList)){
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}else{
clearStockArticleIdList.add(stockArticleEntity.getId());
}
}
}
});
}
});
// if(CollUtil.isNotEmpty(updateStockArticleList)){
// distributionStockArticleClient.updateByBatchId(updateStockArticleList);
// }
//
// if(CollUtil.isNotEmpty(clearStockArticleIdList)){
// distributionStockArticleClient.clearTraysByIds(clearStockArticleIdList);
// }
List<WarehouseTrayGoodsEntity> updateTrayGoodsList = new ArrayList<>();
//处理新的
map.keySet().forEach(associationType -> {
List<WarehouseTrayGoodsEntity> warehouseTrayGoodsEntities = map.get(associationType);
//把warehouseTrayGoodsEntities转化成以associationValue为key的Map
Map<String, WarehouseTrayGoodsEntity> warehouseTrayGoodsMap = warehouseTrayGoodsEntities.stream()
.collect(Collectors.toMap(
WarehouseTrayGoodsEntity::getAssociationValue, // key
entity -> entity, // value
(existing, replacement) -> existing // 如果key重复,保留第一个值
));
if("1".equals(associationType)){
//把warehouseTrayGoodsEntities中所有元素的associationValue放入一个Set
Set<String> orderCodeSet = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).collect(Collectors.toSet());
FindParamterDTO findParamterDTO = new FindParamterDTO();
findParamterDTO.setOrderCodeSet(orderCodeSet);
findParamterDTO.setWarehouseId(warehouseId);
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO);
stockArticleEntityList.forEach(stockArticleEntity -> {
WarehouseTrayGoodsEntity warehouseTrayGoodsEntity = warehouseTrayGoodsMap.get(stockArticleEntity.getOrderCode());
if(!Objects.isNull(warehouseTrayGoodsEntity)){
warehouseTrayGoodsEntity.setAssociationId(stockArticleEntity.getId());
warehouseTrayGoodsEntity.setWarehouseId(warehouseId);
updateTrayGoodsList.add(warehouseTrayGoodsEntity);
}
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(!trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.add(palletName);
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}
}else{
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(palletName);
updateStockArticleList.add(updateStockArticle);
}
});
}else if ("3".equals(associationType)){
//把warehouseTrayGoodsEntities中所有元素的associationValue放入一个Set
Set<String> orderPackageCodeSet = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).collect(Collectors.toSet());
FindParamterDTO findParamterDTO = new FindParamterDTO();
findParamterDTO.setOrderPackageCodeList(new ArrayList<>(orderPackageCodeSet));
findParamterDTO.setWarehouseId(warehouseId);
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO);
//把parcelListEntityList转化成以orderPackageCode为key的Map
Map<String, DistributionParcelListEntity> parcelListEntityMap = parcelListEntityList.stream()
.collect(Collectors.toMap(
DistributionParcelListEntity::getOrderPackageCode, // key
entity -> entity, // value
(existing, replacement) -> existing // 如果key重复,保留第一个值
));
warehouseTrayGoodsEntities.forEach(warehouseTrayGoodsEntity -> {
DistributionParcelListEntity parcelList = parcelListEntityMap.get(warehouseTrayGoodsEntity.getAssociationValue());
if(!Objects.isNull(parcelList)){
warehouseTrayGoodsEntity.setAssociationId(parcelList.getId());
warehouseTrayGoodsEntity.setWarehouseId(warehouseId);
updateTrayGoodsList.add(warehouseTrayGoodsEntity);
DistributionParcelListEntity updateParceEntity = new DistributionParcelListEntity();
updateParceEntity.setId(parcelList.getId());
updateParceEntity.setPallet(palletName);
updateParceList.add(updateParceEntity);
}
});
//把parcelListEntityList中所有元素的orderCode放入一个Set
Set<String> orderCodeSet = parcelListEntityList.stream().map(DistributionParcelListEntity::getOrderCode).collect(Collectors.toSet());
findParamterDTO.setOrderCodeSet(orderCodeSet);
findParamterDTO.setWarehouseId(warehouseId);
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO);
stockArticleEntityList.forEach(stockArticleEntity -> {
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.remove(palletName);
if(CollUtil.isNotEmpty(trayList)){
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}else{
clearStockArticleIdList.add(stockArticleEntity.getId());
}
}
}
});
}
});
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateStockArticleList)){
distributionStockArticleClient.updateByBatchId(updateStockArticleList);
}
if(CollUtil.isNotEmpty(clearStockArticleIdList)){
distributionStockArticleClient.clearTraysByIds(clearStockArticleIdList);
}
if(CollUtil.isNotEmpty(updateTrayGoodsList)){
warehouseTrayGoodsService.updateBatchById(updateTrayGoodsList);
}
}
@Override

Loading…
Cancel
Save