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. 69
      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 = "装车件数")
private Integer loadedNumber;
/**
* 装车件数
*/
@ApiModelProperty(value = "装车件数")
private Integer loadedinNumber;
/**
* 签收数
*/
@ApiModelProperty(value = "签收数")
private Integer receivedQuantity;
/**
* 签收数
*/
@ApiModelProperty(value = "签收数")
private Integer receivedinQuantity;
/**
* 送货司机(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 = "备注")
private String remarks;
/**
* 是否修改司机
*/
@ApiModelProperty(value = "是否修改司机")
private Integer isDeliveryDriverUpdate;
/**
* 仓库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
*/
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
</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>

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_parcel_list AS ldpl ON ldla.package_id = ldpl.id
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 id="selectSignImgsUrl" resultType="com.logpm.distribution.vo.DistributionSignPrintVO">
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);
/**
* 维护预约数量
* @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());
if (Func.isEmpty(distributionDeliverySelfEntity)){
//通过装车扫描传递的车次ID发生变化,提示文员进行计划变更
return Resp.scanFail(13000,"任务发生改变,请刷新装车任务", "任务发生改变,请刷新装车任务",null);
return Resp.scanFail(13000,null, null,null);
}
}
} else {
@ -2576,16 +2576,32 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (Func.isEmpty(myCurrentWarehouse)) {
return R.fail("无仓库信息!!!");
}
// if (Func.isEmpty(deliveryListDTO.getIsDeliveryDriverUpdate())){
// return R.fail("服务器正忙!!!");
// }
//首先对配送任务进行修改
//查询出配送任务的基本信息
DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListDTO.getId());
Long deliveryListEntityId = deliveryListEntity.getId();
// if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.peisongzhong.getValue())) {
// return R.fail("正在配送中...");
// }
if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.peisongzhong.getValue())) {
return R.fail("正在配送中...");
}
if (deliveryListEntity.getDeliveryStatus().equals(DeliveryStatusConstant.yiwancheng.getValue())) {
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());

69
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
private IBasicdataClientClient basicdataClientClient;
@Autowired
private DistributionLoadscanMapper distributionLoadscanMapper;
@ -3503,39 +3506,45 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
throw new RuntimeException("服务器正忙!!!");
}
DistributionReservationEntity reservationEntity = this.getById(reservationId);
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper.selectReservationLoadingNum(reservationId);
int loadingQuantity = 0;
int signingQuantity = 0;
int reservationQuantity =(reservationEntity.getReservationNum() + reservationEntity.getReservationStockListNum());
if (Func.isNotEmpty(reservationLoadingNum)){
//存在装车数量
loadingQuantity += reservationLoadingNum.getInventoryLoadingQuantity() + reservationLoadingNum.getPackageLoadingQuantity();
}
DistributionLoadingNumDTO reservationSignNum = distributionReservationMapper.selectReservationSigningNum(reservationId);
if (Func.isNotEmpty(reservationSignNum)){
signingQuantity += reservationSignNum.getPackageSigningQuantity() + reservationSignNum.getInventorySigningQuantity();
}
if (reservationQuantity != 0){
if (loadingQuantity == reservationQuantity){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
if (loadingQuantity == 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
boolean loadStatus = false;
boolean signStatus = false;
if (Func.isNotEmpty(distributionParcelListEntities)){
loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = distributionParcelListEntities.stream().anyMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
}
if (Func.isNotEmpty(disStockListDetailEntities)){
loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
}
if (signingQuantity == reservationQuantity){
if (loadStatus){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
//判断是否都为完成装车
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId);
if (Func.isEmpty(loadingNum)){
if (loadingNum > 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}
}
}
if (signStatus){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
//判断是否都为完成装车
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId);
//判断当前客户是否签收完成了
if (signingNum > 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
}
if (signingQuantity == 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
}
}else {
log.error(method+"预约单无配送包件,reservationId:{}",reservationId);
}
this.updateById(reservationEntity);
@ -3612,7 +3621,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
* 维护预约单计划数量
* @param reservationId
*/
private void maintenanceReservationNum(Long reservationId) {
@Override
@Transactional
public void maintenanceReservationNum(Long reservationId) {
DistributionReservationEntity reservationEntity = this.getById(reservationId);
if (Func.isNotEmpty(reservationEntity)){
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);
}
}
//统计客户装车数
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);
}
@ -1656,6 +1673,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity());
distributionLoadscanEntity.setIsAbnormalSigning(2);
distributionLoadscanEntity.setIsAbnormalLoading(2);
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
@ -3269,9 +3287,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
public R loadingAbnormalPackageListDetail(Long 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());
loadscanAbnormalVOS.forEach(p -> {
@ -3399,7 +3414,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelListService.updateById(parcelListEntity);
distributionLoadscanAbnormalEntity.setAuditingStatus(2);
distributionLoadscanAbnormalEntity.setAuditingTime(new Date());
distributionLoadscanAbnormalEntity.setAuditingUser(AuthUtil.getUser().getUserName());
distributionLoadscanAbnormalEntity.setAuditingUser(AuthUtil.getUser().getNickName());
distributionLoadscanAbnormalService.updateById(distributionLoadscanAbnormalEntity);
reservationEntity.setReservationNum(reservationEntity.getReservationNum() + distributionLoadscanAbnormalEntity.getLoadingQuantity());
distributionReservationMapper.updateById(reservationEntity);
@ -3460,7 +3475,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelListService.updateById(parcelListEntity);
a.setAuditingStatus(2);
a.setAuditingTime(new Date());
a.setAuditingUser(AuthUtil.getUser().getUserName());
a.setAuditingUser(AuthUtil.getUser().getNickName());
distributionLoadscanAbnormalService.updateById(a);
reservationEntity.setReservationNum(reservationEntity.getReservationNum() + a.getLoadingQuantity());
distributionReservationMapper.updateById(reservationEntity);
@ -3468,10 +3483,22 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
} else {
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("操作成功");

Loading…
Cancel
Save