Browse Source

批量签收BUG修复

dist.1.3.0
汤建军 6 months ago
parent
commit
321bc94abe
  1. 13
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java
  2. 32
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  3. 31
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  4. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

13
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java

@ -475,4 +475,17 @@ public interface DistributionSignforMapper extends BaseMapper<DistributionSignfo
* @param nub
*/
void deductionSignforPacjageNum(@Param("deliveryId")Long deliveryId,@Param("reservationId") Long reservationId,@Param("nub") int nub);
/**
* 自动维护签收表装车和签收数量
* @param reservationId
*/
void autoDpdateSignfor(@Param("reservationId")Long reservationId);
/**
* 查询签收数量
* @param reservationId
* @return
*/
Integer signforNum(@Param("reservationId")Long reservationId);
}

32
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml

@ -105,6 +105,35 @@
lds.is_deleted =0 and lds.reservation_id = #{reservationId} and loaded_number !=0 and lds.delivery_id =
#{deliveryId}
</update>
<update id="autoDpdateSignfor">
UPDATE logpm_distribution_signfor AS lds
SET lds.loaded_number = ( SELECT IFNULL( sum( loaded_nub ), 0 ) FROM logpm_distribution_loadscan WHERE reservation_id = lds.reservation_id AND scan_status != 1 AND is_deleted = 0 ),
lds.loadedin_number = ( SELECT IFNULL( sum( package_nub ), 0 ) FROM logpm_distribution_loadscaninvn WHERE reservation_id = lds.reservation_id AND scan_status != 1 AND is_deleted = 0 ),
lds.received_quantity = (
SELECT
IFNULL( sum( received_quantity ), 0 )
FROM
logpm_distribution_loadscan
WHERE
reservation_id = lds.reservation_id
AND scan_status != 1
AND signfor_state = 2
AND is_deleted = 0
),
lds.receivedin_quantity = (
SELECT
IFNULL( sum( received_quantity ), 0 )
FROM
logpm_distribution_loadscaninvn
WHERE
reservation_id = lds.reservation_id
AND scan_status != 1
AND signfor_state = 2
AND is_deleted = 0
)
WHERE
lds.reservation_id = #{reservationId}
</update>
<delete id="deleteByReservationAndDeliveryId">
DELETE FROM logpm_distribution_signfor
<where>
@ -2314,5 +2343,8 @@
AND ldla.delivery_list_id = #{deliveryId}
AND ldla.is_deleted = 0
</select>
<select id="signforNum" resultType="java.lang.Integer">
SELECT received_quantity+receivedin_quantity FROM logpm_distribution_signfor WHERE reservation_id = #{reservationId}
</select>
</mapper>

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

@ -3690,10 +3690,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (StringUtils.isNotBlank(parcelListEntity.getOrderPackageCode())) {
//包件下架解托
warehouseUpdownTypeClient.downPackageOrDelTray(parcelListEntity.getOrderPackageCode(), myCurrentWarehouse.getId(), "签收下架解托");
}
List<JSONObject> jsonObjects = new ArrayList<>();
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", distributionLoadscanEntity.getOrderPackageCode());
@ -3770,20 +3767,20 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getNickName());
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.buluzhuangche.getValue());
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getNickName());
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId());
distributionLoadscanEntity.setIsAbnormalLoading(2);
distributionLoadscanEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionLoadscanEntity.setWarehouseName(myCurrentWarehouse.getName());
distributionLoadscanEntity.setIsAbnormalSigning(2);
distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.sijiqianshou.getValue());
distributionLoadscanEntity.setAbnormalNote("异常签收");
distributionLoadscanEntity.setIsZero(0);
if (StringUtils.isNotBlank(parcelListEntity.getOrderPackageCode())) {
warehouseUpdownTypeClient.downPackageOrDelTray(parcelListEntity.getOrderPackageCode(), myCurrentWarehouse.getId(), "签收下架解托");
}
if (Func.isEmpty(loadscanEntity)) {
loadingId = distributionLoadscanEntity.getId();
distributionLoadscanService.save(distributionLoadscanEntity);
@ -5414,24 +5411,17 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (packageLoadingData.isEmpty() && inventoryLoadingData.isEmpty()) {
return Resp.scanFail("当前客户未进行装车操作", "当前客户未进行装车操作");
}
int signNum = 0;
if (!packageLoadingData.isEmpty()) {
signNum += packageLoadingData.stream().mapToInt(DistributionLoadscanEntity::getReceivedQuantity).sum();
receivedQuantity += packageLoadingData.stream().mapToInt(DistributionLoadscanEntity::getPackageNub).sum();
//进行订制品和零担的批量签收
handlePackageLoadingData(packageLoadingData, user, distributionLoadscanEntityLists, orderCodes);
}
if (!inventoryLoadingData.isEmpty()) {
signNum += inventoryLoadingData.stream().mapToInt(DistributionLoadscaninvnEntity::getReceivedQuantity).sum();
receivedinQuantity += inventoryLoadingData.stream().mapToInt(DistributionLoadscaninvnEntity::getPackageNub).sum();
//进行订制品和零担的批量签收
handleInventoryLoadingData(inventoryLoadingData, user, distributionLoadscaninvnEntityLists);
}
if (signNum > 0){
distributionSignforMapper.deductionSignforPacjageNum(distributionSignforEntity.getDeliveryId(), distributionSignforEntity.getReservationId(), signNum);
}
//维护签收数量
distributionSignforEntity.setReceivedinQuantity(receivedinQuantity);
distributionSignforEntity.setReceivedQuantity(receivedQuantity);
@ -5850,6 +5840,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (Func.isNotEmpty(distributionSignfor.getDriverRemarks())) {
distributionSignforEntity.setDriverRemarks(distributionSignfor.getDriverRemarks());
}
//查询当前客户的签收数量
//维护预约信息
distributionReservationService.maintenanceReservationInfo(reservationEntity.getId());
//更新装车时间
@ -5858,8 +5851,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
Integer m = distributionSignforMapper.updateSignUser(distributionDeliveryListEntity.getId(), distributionSignfor.getReservationId(), AuthUtil.getUser());
//维护配送任务状态
distributionDeliveryListService.maintenanceDeliveryInfo(distributionDeliveryListEntity.getId());
this.updateById(distributionSignforEntity);
distributionSignforMapper.autoDpdateSignfor(distributionSignforEntity.getReservationId());
//批量维护订单信息
if (Func.isNotEmpty(orderCodes)) {
String orderCode = orderCodes.stream().distinct().collect(Collectors.joining(","));
@ -5883,7 +5875,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + ":reservationId:", distributionSignfor.getReservationId(), 60L);
NodeFanoutMsg<org.springblade.common.model.DistributionSignforVO> nodeFanoutMsg = buildNodeFanoutMsgByOneClick(distributionDeliveryListEntity, reservationEntity, distributionLoadscaninvnEntityLists, distributionLoadscanEntityLists);
iDistributionNodeWorkService.signFor(nodeFanoutMsg, AuthUtil.getUser());
return Resp.scanSuccess((distributionSignforEntity.getReceivedinQuantity() + distributionSignforEntity.getReceivedQuantity()) + "件", (distributionSignforEntity.getReceivedinQuantity() + distributionSignforEntity.getReceivedQuantity()) + "件");
Integer num = baseMapper.signforNum(distributionSignforEntity.getReservationId());
return Resp.scanSuccess(num + "件", num + "件");
}
private DistributionDeliverySelfEntity getDriver(DistributionDeliveryListEntity distributionDeliveryListEntity, BladeUser user, Boolean isDriverFlag) {

3
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

@ -33,6 +33,7 @@ import com.logpm.warehouse.dto.*;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import com.logpm.warehouse.excel.WarehouseRetentionRecordExcel;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.logpm.warehouse.mapper.WarehouseRetentionRecordMapper;
import com.logpm.warehouse.service.IWarehouseNodeWorkService;
import com.logpm.warehouse.service.IWarehouseRetentionRecordService;
@ -99,6 +100,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
private final BladeRedis redis;
private final IWarehouseNodeWorkService warehouseNodeWorkService;
private final IDistributionStockListClient stockListClient;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
@Override
@ -490,6 +492,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
);
}
result = distributionParcelListClient.maintainInWarehouse(warehouseRetentionScanEntity.getOrderPackageId(), warehouseRetentionScanEntity.getTaskCode());
warehouseUpdownTypeClient.downPackageOrDelTray(warehouseRetentionScanEntity.getOrderPackageCode(), warehouseRetentionScanEntity.getWarehouseId(), "自主回库进行下架 解托");
break;
case 2: // 回库指定数量的零担包件

Loading…
Cancel
Save