Browse Source

待签收列表异常审核完善、预约状态维护、装车任务修复

single_db
汤建军 1 year ago
parent
commit
3184278323
  1. 11
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java
  2. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryListDTO.java
  3. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java
  4. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml
  5. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  6. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java
  7. 24
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  8. 55
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  9. 41
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

11
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java

@ -151,11 +151,22 @@ public class DistributionSignforEntity extends TenantEntity {
*/ */
@ApiModelProperty(value = "装车件数") @ApiModelProperty(value = "装车件数")
private Integer loadedNumber; private Integer loadedNumber;
/**
* 装车件数
*/
@ApiModelProperty(value = "装车件数")
private Integer loadedinNumber;
/** /**
* 签收数 * 签收数
*/ */
@ApiModelProperty(value = "签收数") @ApiModelProperty(value = "签收数")
private Integer receivedQuantity; private Integer receivedQuantity;
/**
* 签收数
*/
@ApiModelProperty(value = "签收数")
private Integer receivedinQuantity;
/** /**
* 送货司机(id) * 送货司机(id)
*/ */

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryListDTO.java

@ -98,6 +98,13 @@ public class DistributionDeliveryListDTO extends DistributionDeliveryListEntity
*/ */
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;
/**
* 是否修改司机
*/
@ApiModelProperty(value = "是否修改司机")
private Integer isDeliveryDriverUpdate;
/** /**
* 仓库ids * 仓库ids
*/ */

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

@ -148,4 +148,18 @@ public interface DistributionLoadscanMapper extends BaseMapper<DistributionLoads
* @return * @return
*/ */
Integer getLoadCountNum(@Param("deliveryId") Long deliveryId); Integer getLoadCountNum(@Param("deliveryId") Long deliveryId);
/**
*
* @param reservationId
* @return
*/
Integer selectLoadingNumByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询当前客户签收数
* @param reservationId
* @return
*/
Integer selectSigningNumByReservationId(@Param("reservationId")Long reservationId);
} }

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

@ -271,5 +271,14 @@
AND ldl.is_abnormal_loading = 1 AND ldl.is_abnormal_loading = 1
</select> </select>
<select id="selectLoadingNumByReservationId" resultType="java.lang.Integer">
SELECT (IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2) is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2)))
+
(IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1)is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1)))
</select>
<select id="selectSigningNumByReservationId" resultType="java.lang.Integer">
SELECT (IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2 AND signfor_state = 2) is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2 AND signfor_state = 2)))
+
(IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1 AND signfor_state = 2)is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1 AND signfor_state = 2)))
</select>
</mapper> </mapper>

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

@ -1056,7 +1056,7 @@
LEFT JOIN logpm_distribution_loadscan AS ldl ON ldla.package_id = ldl.package_id LEFT JOIN logpm_distribution_loadscan AS ldl ON ldla.package_id = ldl.package_id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldla.package_id = ldpl.id LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldla.package_id = ldpl.id
WHERE WHERE
ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId} AND ldl.scan_status = 1 ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId} AND ldl.scan_status != 1
</select> </select>
<select id="selectSignImgsUrl" resultType="com.logpm.distribution.vo.DistributionSignPrintVO"> <select id="selectSignImgsUrl" resultType="com.logpm.distribution.vo.DistributionSignPrintVO">
SELECT * FROM logpm_distribution_sign_print WHERE reservation_id = #{reservationId} and is_deleted = 0 SELECT * FROM logpm_distribution_sign_print WHERE reservation_id = #{reservationId} and is_deleted = 0

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

@ -265,4 +265,10 @@ public interface IDistributionReservationService extends BaseService<Distributio
*/ */
R cancelReservationPackage(DistributionCancelReservationPackageDTO distributionCancelReservationPackageDTO); R cancelReservationPackage(DistributionCancelReservationPackageDTO distributionCancelReservationPackageDTO);
/**
* 维护预约数量
* @param reservationId
*/
void maintenanceReservationNum(Long reservationId);
} }

24
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -580,7 +580,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectById(distrilbutionloadingscanDTO.getLoadingId()); distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectById(distrilbutionloadingscanDTO.getLoadingId());
if (Func.isEmpty(distributionDeliverySelfEntity)){ if (Func.isEmpty(distributionDeliverySelfEntity)){
//通过装车扫描传递的车次ID发生变化,提示文员进行计划变更 //通过装车扫描传递的车次ID发生变化,提示文员进行计划变更
return Resp.scanFail(13000,"任务发生改变,请刷新装车任务", "任务发生改变,请刷新装车任务",null); return Resp.scanFail(13000,null, null,null);
} }
} }
} else { } else {
@ -2576,16 +2576,32 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (Func.isEmpty(myCurrentWarehouse)) { if (Func.isEmpty(myCurrentWarehouse)) {
return R.fail("无仓库信息!!!"); return R.fail("无仓库信息!!!");
} }
// if (Func.isEmpty(deliveryListDTO.getIsDeliveryDriverUpdate())){
// return R.fail("服务器正忙!!!");
// }
//首先对配送任务进行修改 //首先对配送任务进行修改
//查询出配送任务的基本信息 //查询出配送任务的基本信息
DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListDTO.getId()); DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListDTO.getId());
Long deliveryListEntityId = deliveryListEntity.getId(); Long deliveryListEntityId = deliveryListEntity.getId();
// if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.peisongzhong.getValue())) { if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.peisongzhong.getValue())) {
// return R.fail("正在配送中..."); return R.fail("正在配送中...");
// } }
if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.yiwancheng.getValue())) { if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.yiwancheng.getValue())) {
return R.fail("配送已完成..."); return R.fail("配送已完成...");
} }
if (deliveryListDTO.getIsDeliveryDriverUpdate().equals(IsOrNoConstant.yes)){
//查看是否满足进行司机修改
//查询是否存在有装车数据,存在装车则不满足司机切换
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, deliveryListDTO.getId())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(loadscanEntityList) && loadscanEntityList.size() > 0){
//此配送任务存在装车 无法进行司机切换
log.error("配送任务存在装车数据,无法进行司机切换");
return R.fail("任务已装车联系司机滞留货物后进行司机切换...");
}
}
//查询出原来配送信息的备货任务 //查询出原来配送信息的备货任务
DistributionStockupVO deliveryStockupInfo = distributionStockupMapper.getDeliveryStockupInfo(deliveryListEntity.getId()); DistributionStockupVO deliveryStockupInfo = distributionStockupMapper.getDeliveryStockupInfo(deliveryListEntity.getId());

55
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -212,6 +212,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired @Autowired
private IBasicdataClientClient basicdataClientClient; private IBasicdataClientClient basicdataClientClient;
@Autowired
private DistributionLoadscanMapper distributionLoadscanMapper;
@ -3503,39 +3506,45 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
throw new RuntimeException("服务器正忙!!!"); throw new RuntimeException("服务器正忙!!!");
} }
DistributionReservationEntity reservationEntity = this.getById(reservationId); DistributionReservationEntity reservationEntity = this.getById(reservationId);
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper.selectReservationLoadingNum(reservationId); List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
int loadingQuantity = 0; List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
int signingQuantity = 0; boolean loadStatus = false;
int reservationQuantity =(reservationEntity.getReservationNum() + reservationEntity.getReservationStockListNum()); boolean signStatus = false;
if (Func.isNotEmpty(reservationLoadingNum)){ if (Func.isNotEmpty(distributionParcelListEntities)){
//存在装车数量 loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
loadingQuantity += reservationLoadingNum.getInventoryLoadingQuantity() + reservationLoadingNum.getPackageLoadingQuantity(); signStatus = distributionParcelListEntities.stream().anyMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
} }
DistributionLoadingNumDTO reservationSignNum = distributionReservationMapper.selectReservationSigningNum(reservationId);
if (Func.isNotEmpty(reservationSignNum)){ if (Func.isNotEmpty(disStockListDetailEntities)){
signingQuantity += reservationSignNum.getPackageSigningQuantity() + reservationSignNum.getInventorySigningQuantity(); loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
} }
if (reservationQuantity != 0){ if (loadStatus){
if (loadingQuantity == reservationQuantity){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue()); reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else { }else {
//判断是否都为完成装车
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId);
if (Func.isEmpty(loadingNum)){
if (loadingNum > 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue()); reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
} }else {
if (loadingQuantity == 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue()); reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
} }
}
if (signingQuantity == reservationQuantity){ }
if (signStatus){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
//判断是否都为完成装车
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId);
//判断当前客户是否签收完成了
if (signingNum > 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue()); reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else { }else {
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue()); reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
} }
if (signingQuantity == 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
}
}else {
log.error(method+"预约单无配送包件,reservationId:{}",reservationId);
} }
this.updateById(reservationEntity); this.updateById(reservationEntity);
@ -3612,7 +3621,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
* 维护预约单计划数量 * 维护预约单计划数量
* @param reservationId * @param reservationId
*/ */
private void maintenanceReservationNum(Long reservationId) { @Override
@Transactional
public void maintenanceReservationNum(Long reservationId) {
DistributionReservationEntity reservationEntity = this.getById(reservationId); DistributionReservationEntity reservationEntity = this.getById(reservationId);
if (Func.isNotEmpty(reservationEntity)){ if (Func.isNotEmpty(reservationEntity)){
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationMapper.selectStockArticleByReservationId(reservationId); List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationMapper.selectStockArticleByReservationId(reservationId);

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

@ -633,6 +633,23 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
signforEntity.setIsHaveAbnormalPackage(2); signforEntity.setIsHaveAbnormalPackage(2);
} }
} }
//统计客户装车数
Integer lad = distributionLoadscanMapper.selectCount(new QueryWrapper<DistributionLoadscanEntity>().lambda().eq(DistributionLoadscanEntity::getReservationId, signforEntity.getReservationId())).intValue();
Integer nad = distributionLoadscaninvnMapper.selectCount(new QueryWrapper<DistributionLoadscaninvnEntity>().lambda().eq(DistributionLoadscaninvnEntity::getReservationId, signforEntity.getReservationId())).intValue();
signforEntity.setLoadedNumber(lad);
signforEntity.setLoadedinNumber(nad);
//统计客户签收数
Integer lsad = distributionLoadscanMapper.selectCount(new QueryWrapper<DistributionLoadscanEntity>().lambda()
.eq(DistributionLoadscanEntity::getReservationId, signforEntity.getReservationId())
.eq(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())).intValue();
Integer nsad = distributionLoadscaninvnMapper.selectCount(new QueryWrapper<DistributionLoadscaninvnEntity>().lambda()
.eq(DistributionLoadscaninvnEntity::getReservationId, signforEntity.getReservationId())
.eq(DistributionLoadscaninvnEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
.ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())).intValue();
signforEntity.setReceivedQuantity(lsad);
signforEntity.setReceivedinQuantity(nsad);
this.updateById(signforEntity); this.updateById(signforEntity);
} }
@ -1656,6 +1673,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setSignforState(2); distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity()); distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity());
distributionLoadscanEntity.setIsAbnormalSigning(2); distributionLoadscanEntity.setIsAbnormalSigning(2);
distributionLoadscanEntity.setIsAbnormalLoading(2);
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId()); distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId()); distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
@ -3269,9 +3287,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override @Override
public R loadingAbnormalPackageListDetail(Long id) { public R loadingAbnormalPackageListDetail(Long id) {
DistributionSignforEntity signforEntity = this.getById(id); DistributionSignforEntity signforEntity = this.getById(id);
if (!Func.equals(signforEntity.getIsHaveAbnormalPackage(), 2)) {
return R.fail(8000, "客户无异常装车包件");
}
//这里就需要进行该客户的异常包件列表进行查询 //这里就需要进行该客户的异常包件列表进行查询
List<DistributionLoadscanAbnormalVO> loadscanAbnormalVOS = baseMapper.selectAbnormalPackageList(signforEntity.getReservationId(), signforEntity.getDeliveryId()); List<DistributionLoadscanAbnormalVO> loadscanAbnormalVOS = baseMapper.selectAbnormalPackageList(signforEntity.getReservationId(), signforEntity.getDeliveryId());
loadscanAbnormalVOS.forEach(p -> { loadscanAbnormalVOS.forEach(p -> {
@ -3399,7 +3414,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelListService.updateById(parcelListEntity); distributionParcelListService.updateById(parcelListEntity);
distributionLoadscanAbnormalEntity.setAuditingStatus(2); distributionLoadscanAbnormalEntity.setAuditingStatus(2);
distributionLoadscanAbnormalEntity.setAuditingTime(new Date()); distributionLoadscanAbnormalEntity.setAuditingTime(new Date());
distributionLoadscanAbnormalEntity.setAuditingUser(AuthUtil.getUser().getUserName()); distributionLoadscanAbnormalEntity.setAuditingUser(AuthUtil.getUser().getNickName());
distributionLoadscanAbnormalService.updateById(distributionLoadscanAbnormalEntity); distributionLoadscanAbnormalService.updateById(distributionLoadscanAbnormalEntity);
reservationEntity.setReservationNum(reservationEntity.getReservationNum() + distributionLoadscanAbnormalEntity.getLoadingQuantity()); reservationEntity.setReservationNum(reservationEntity.getReservationNum() + distributionLoadscanAbnormalEntity.getLoadingQuantity());
distributionReservationMapper.updateById(reservationEntity); distributionReservationMapper.updateById(reservationEntity);
@ -3460,7 +3475,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelListService.updateById(parcelListEntity); distributionParcelListService.updateById(parcelListEntity);
a.setAuditingStatus(2); a.setAuditingStatus(2);
a.setAuditingTime(new Date()); a.setAuditingTime(new Date());
a.setAuditingUser(AuthUtil.getUser().getUserName()); a.setAuditingUser(AuthUtil.getUser().getNickName());
distributionLoadscanAbnormalService.updateById(a); distributionLoadscanAbnormalService.updateById(a);
reservationEntity.setReservationNum(reservationEntity.getReservationNum() + a.getLoadingQuantity()); reservationEntity.setReservationNum(reservationEntity.getReservationNum() + a.getLoadingQuantity());
distributionReservationMapper.updateById(reservationEntity); distributionReservationMapper.updateById(reservationEntity);
@ -3468,10 +3483,22 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
} else { } else {
return R.fail(3000, "无需审批"); return R.fail(3000, "无需审批");
} }
//批量审核
} }
DistributionSignforEntity signforEntity = this.getOne(Wrappers.<DistributionSignforEntity>query().lambda()
.eq(DistributionSignforEntity::getReservationId, reservationId.get(0))
);
//维护签收的异常签收状态 //维护签收的异常签收状态
this.maintenanceSignfor(reservationId.get(0)); this.maintenanceSignfor(signforEntity.getReservationId());
//维护预约单状态
distributionReservationService.maintenanceReservationInfo(reservationId.get(0));
//维护预约单数量
distributionReservationService.maintenanceReservationNum(reservationId.get(0));
//维护配送任务状态
distributionDeliveryListService.maintenanceDeliveryInfo(signforEntity.getDeliveryId());
//维护配送任务数量
distributionDeliveryListService.maintenanceDeliveryNum(signforEntity.getDeliveryId());
return R.success("操作成功"); return R.success("操作成功");

Loading…
Cancel
Save