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);
/**
* 查询包件签收操作时间
* @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 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 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>

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

@ -277,4 +277,10 @@ public interface IDistributionAsyncService {
* @param distributionParcelListEntity
*/
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.mapper.*;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import com.logpm.distribution.vo.DistributionStockPackageVO;
import com.logpm.distribution.vo.DistributionStockupSelfVO;
import com.logpm.distribution.vo.DistrilbutionBillStockVO;
import com.logpm.distribution.vo.*;
import com.logpm.factory.mt.dto.MtReceiveContentDTO;
import com.logpm.factory.mt.dto.MtReceiveDTO;
import com.logpm.factory.mt.dto.MtReceiveImagesDTO;
import com.logpm.factory.mt.feign.IMtOrderMainClinet;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import lombok.AllArgsConstructor;
@ -49,11 +49,7 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@ -1402,11 +1398,114 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
throw new RuntimeException(e);
}
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::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(loadscanEntityList)) {
int loadSum = loadscanEntityList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum();
@ -2347,8 +2346,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
packageIds.add(parcelListEntity.getId());
}
if (Func.isNotEmpty(packageIds)){
distributionAsyncService.handlPakcage(packageIds,myCurrentWarehouse.getId());
//批量推送
distributionAsyncService.sendReviewFactory(distributionSignforEntity.getId(),myCurrentWarehouse.getId());
}
}

Loading…
Cancel
Save