Browse Source

一键签收推送梦天工厂

single_db
汤建军 1 year ago
parent
commit
34f95dc555
  1. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java
  2. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml
  3. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  4. 117
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  5. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java

@ -121,4 +121,10 @@ public interface DistributionLoadscanMapper extends BaseMapper<DistributionLoads
Integer selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId(@Param("reservationId") Long reservationId,@Param("deliveryId") Long deliveryId,@Param("orderId") Long id); Integer selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId(@Param("reservationId") Long reservationId,@Param("deliveryId") Long deliveryId,@Param("orderId") Long id);
/**
* 查询包件签收操作时间
* @param id
* @return
*/
String selectPackageSigningTime(@Param("packageId") Long id);
} }

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml

@ -245,5 +245,8 @@
<select id="selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId" resultType="java.lang.Integer"> <select id="selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId" resultType="java.lang.Integer">
SELECT IF(sum( received_quantity) is null ,0,sum( received_quantity) ) AS signingNumber FROM logpm_distribution_loadscan WHERE is_deleted = 0 AND reservation_id = #{reservationId} AND delivery_id = #{deliveryId} AND order_id = #{orderId} AND scan_status != 1 SELECT IF(sum( received_quantity) is null ,0,sum( received_quantity) ) AS signingNumber FROM logpm_distribution_loadscan WHERE is_deleted = 0 AND reservation_id = #{reservationId} AND delivery_id = #{deliveryId} AND order_id = #{orderId} AND scan_status != 1
</select> </select>
<select id="selectPackageSigningTime" resultType="java.lang.String">
SELECT signing_time FROM logpm_distribution_loadscan WHERE package_id = #{packageId} AND signfor_state = 2 AND scan_state != 1
</select>
</mapper> </mapper>

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java

@ -277,4 +277,10 @@ public interface IDistributionAsyncService {
* @param distributionParcelListEntity * @param distributionParcelListEntity
*/ */
void sendFactory(DistributionParcelListEntity distributionParcelListEntity,String signingTime,Long reservationId,String reservationCode,Long warehouseId); void sendFactory(DistributionParcelListEntity distributionParcelListEntity,String signingTime,Long reservationId,String reservationCode,Long warehouseId);
/**
* 推送文员
*/
void sendReviewFactory(Long signingId,Long warehouseId);
} }

117
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -15,10 +15,10 @@ import com.logpm.distribution.dto.app.StockupZeroDTO;
import com.logpm.distribution.entity.*; import com.logpm.distribution.entity.*;
import com.logpm.distribution.mapper.*; import com.logpm.distribution.mapper.*;
import com.logpm.distribution.service.*; import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionParcelNumberVO; import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.DistributionStockPackageVO; import com.logpm.factory.mt.dto.MtReceiveContentDTO;
import com.logpm.distribution.vo.DistributionStockupSelfVO; import com.logpm.factory.mt.dto.MtReceiveDTO;
import com.logpm.distribution.vo.DistrilbutionBillStockVO; import com.logpm.factory.mt.dto.MtReceiveImagesDTO;
import com.logpm.factory.mt.feign.IMtOrderMainClinet; import com.logpm.factory.mt.feign.IMtOrderMainClinet;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -49,11 +49,7 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -1402,11 +1398,114 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
break; break;
//其他.....
} }
} }
} }
@Override
@Transactional
public void sendReviewFactory(Long signingId,Long warehouseId) {
String brands= "梦天";//可追加
//查询签收信息
DistributionSignforEntity distributionSignforEntity = distributionSignforMapper.selectById(signingId);
if (Func.isNotEmpty(distributionSignforEntity)){
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distributionSignforEntity.getReservationId());
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distributionSignforEntity.getDeliveryId());
//推送内容
MtReceiveDTO mtReceiveDTO = new MtReceiveDTO();
mtReceiveDTO.setReceiver(distributionReservationEntity.getConsignee());
mtReceiveDTO.setSendTaskId(distributionDeliveryListEntity.getId().toString());
Map<String, List<MtReceiveContentDTO>> brand = null;
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationMapper.selectStockArticleByReservationId(distributionReservationEntity.getId());
if (Func.isNotEmpty(distributionReservationStockarticleEntities)){
//存在订单
List<Long> orderIds = distributionReservationStockarticleEntities.stream().filter(f -> f.getIsZero().equals(IsOrNoConstant.no.getValue())).map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList());
List<DistributionStockArticleEntity> distributionStockArticleEntities = distributionStockArticleService.listByIds(orderIds);
if (Func.isNotEmpty(distributionStockArticleEntities)){
String[] split = Func.split(brands, ",");
//包件信息列表
brand = handkeBrandsPackageList(split, distributionStockArticleEntities, warehouseId,distributionReservationEntity.getId(),distributionDeliveryListEntity.getOrderCode());
}
}
//签收图片信息
List<MtReceiveImagesDTO> mtReceiveImagesDTOS = new ArrayList<>();
List<DistributionSignPrintVO> distributionSignPrintVOS = distributionSignforMapper.selectSignImgsUrl(distributionSignforEntity.getReservationId());
if (Func.isNotEmpty(distributionSignPrintVOS)){
for (DistributionSignPrintVO distributionSignPrintVO : distributionSignPrintVOS) {
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO();
mtReceiveImagesDTO.setImage(distributionSignPrintVO.getUrlRoute());
mtReceiveImagesDTOS.add(mtReceiveImagesDTO);
}
mtReceiveDTO.setReceiveImagesList(mtReceiveImagesDTOS);
}
try {
if (Func.isNotEmpty(brand.get("梦天"))){
mtReceiveDTO.setReceiveContentList(brand.get("梦天"));
orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
//....工厂
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
private Map<String,List<MtReceiveContentDTO>> handkeBrandsPackageList(String[] split, List<DistributionStockArticleEntity> distributionStockArticleEntities, Long warehouseId,Long reservationId,String deliveryCode) {
Map<String,List<MtReceiveContentDTO>> packageList = new HashMap<>();
Map<String, List<DistributionStockArticleEntity>> orderMap = distributionStockArticleEntities.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getBrand));
for (String s : split) {
orderMap.forEach((k,v)->{
if (k.equals(s)){
List<MtReceiveContentDTO> mtReceiveContentDTOS = new ArrayList<>();
for (DistributionStockArticleEntity distributionStockArticleEntity : v) {
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, distributionStockArticleEntity.getId());
for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) {
if (distributionParcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())){
String signingTime = distributionLoadscanMapper.selectPackageSigningTime(distributionParcelListEntity.getId());
MtReceiveContentDTO mtReceiveContentDTO = new MtReceiveContentDTO();
//查询签收时间
mtReceiveContentDTO.setWarehouse(warehouseId.toString());//仓库Id
mtReceiveContentDTO.setOrderCode(distributionStockArticleEntity.getOrderCode());//仓库Id
mtReceiveContentDTO.setUnitNo(distributionParcelListEntity.getOrderPackageCode());//仓库Id
mtReceiveContentDTO.setOperateDate(signingTime);//操作时间
mtReceiveContentDTO.setInvoiceOrderCode(deliveryCode);//发货编号
mtReceiveContentDTOS.add(mtReceiveContentDTO);
}
}
}
packageList.put(s,mtReceiveContentDTOS);
}
});
}
return packageList;
}
private List<MtReceiveContentDTO> handleBrandPackageList(Long warehouseId, List<DistributionStockArticleEntity> mtOrderList, DistributionReservationEntity distributionReservationEntity, DistributionDeliveryListEntity distributionDeliveryListEntity) {
List<MtReceiveContentDTO> mtReceiveContentDTOS = new ArrayList<>();
for (DistributionStockArticleEntity distributionStockArticleEntity : mtOrderList) {
}
return mtReceiveContentDTOS;
}
/** /**
* 维护配送数量和状态 * 维护配送数量和状态
* *

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

@ -1725,7 +1725,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.eq(DistributionLoadscanEntity::getReservationId, rs.getReservationId()) .eq(DistributionLoadscanEntity::getReservationId, rs.getReservationId())
.eq(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue()) .eq(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
); );
if (Func.isNotEmpty(loadscanEntityList)) { if (Func.isNotEmpty(loadscanEntityList)) {
int loadSum = loadscanEntityList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum(); int loadSum = loadscanEntityList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum();
@ -2347,8 +2346,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
packageIds.add(parcelListEntity.getId()); packageIds.add(parcelListEntity.getId());
} }
if (Func.isNotEmpty(packageIds)){ if (Func.isNotEmpty(packageIds)){
distributionAsyncService.handlPakcage(packageIds,myCurrentWarehouse.getId()); distributionAsyncService.handlPakcage(packageIds,myCurrentWarehouse.getId());
//批量推送
distributionAsyncService.sendReviewFactory(distributionSignforEntity.getId(),myCurrentWarehouse.getId());
} }
} }

Loading…
Cancel
Save