Browse Source

自提调整签收流程

pull/4/head
汤建军 11 months ago
parent
commit
125f5ace77
  1. 1
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java
  2. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java
  3. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java
  4. 29
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java
  5. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  6. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
  7. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  8. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
  9. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java
  10. 36
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  11. 67
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  12. 46
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java

1
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java

@ -12,6 +12,7 @@ import java.util.Date;
**/
@Data
public class DistributionBillOrderPackVO {
private Long id;
private String orderPackageCode;
private String orderPackageStatus;
private String warehouse;

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java

@ -18,9 +18,12 @@ package com.logpm.distribution.appcontroller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.dto.app.BillLadingAppDTO;
import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
import com.logpm.distribution.service.IDistributionBillLadingScanService;
import com.logpm.distribution.service.IDistrilbutionBillLadingService;
import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
@ -35,9 +38,11 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
/**
@ -55,6 +60,8 @@ public class DistributionBillLadingAppController extends BladeController {
private final IDistrilbutionBillLadingService distrilbutionBillLadingService;
private final IDistributionBillLadingScanService distributionBillLadingScanService;
/**
* 自提信息表 分页列表
*/
@ -179,10 +186,15 @@ public class DistributionBillLadingAppController extends BladeController {
@PostMapping("/addReceivedImage")
@ApiOperation(value = "添加自提单签收图片")
public R updateReceivedImage(@RequestBody BillLadingAppDTO billLadingAppDTO) {
log.debug("=====签收图片自提签收:{}",billLadingAppDTO);
if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) {
return R.fail(3002, "自提id不能为空 !");
}
List<DistributionBillLadingScanEntity> list = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda().eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()));
if (Func.isEmpty(list)){
return R.fail(3002, "请扫描货物后提交签收图片 !");
}
if(ObjectUtils.isNull(billLadingAppDTO.getPrintList()) || billLadingAppDTO.getPrintList().isEmpty()){
throw new ServiceException("图片对象不能为空!!");
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java

@ -225,7 +225,7 @@ public class DistributionStockListController extends BladeController {
}
/**
* 库存品管理 删除
* 库存品管理撤销转
*/
@PostMapping("/cancelAddStockListByPackage")
@ApiOperationSupport(order = 7)

29
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java

@ -251,6 +251,35 @@ public class DistrilbutionBillLadingController extends BladeController {
public R update(@Valid @RequestBody DistrilbutionBillLadingEntity distrilbutionBillLading) {
return R.status(distrilbutionBillLadingService.updateById(distrilbutionBillLading));
}
/**
* 查询提货单是否需要释放资源
*/
@GetMapping("/checkBillLadingIsRelease")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入distrilbutionBillLading")
public Boolean checkBillLadingIsRelease(@RequestParam Long billLadingId) {
Integer flag = distrilbutionBillLadingService.checkBillLadingIsRelease(billLadingId);
switch (flag){
case 1:
return true;
case 2:
log.info("#####################提货单查询错误billLadingId:{}",billLadingId);
return false;
case 3:
log.info("#####################提货单装车未完成:{}",billLadingId);
return false;
case 4:
log.info("#####################提货单未装车:{}",billLadingId);
return false;
}
return false;
}
/**
* 提货单 自己修改 签收
*/

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

@ -123,7 +123,7 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
/**
* 查询自提单计划件数
* @param id
* @param billLadingId
* @return
*/
Integer selectBillLadingPlanNum(@Param("billLadingId") Long billLadingId);

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

@ -146,7 +146,7 @@
LEFT JOIN logpm_distribution_stock lds on lds.stock_article = ldbs.stock_article_id
LEFT JOIN logpm_distrilbution_bill_lading ldbl ON lds.stock_article = ldbl.stock_article_id
<where>
ldbs.is_deleted = 0 and ldbs.bill_lading_id = #{param.billLadingId} and ldbs.order_status in (1,2)
ldbs.is_deleted = 0 and ldbs.bill_lading_id = #{param.billLadingId} and ldbs.order_status in (1,3)
</where>
</select>
@ -155,6 +155,7 @@
lds.outbound_type,
ldpl.order_package_code orderPackageCode,
ldpl.warehouse,
ldpl.id,
ldpl.firsts,
ldpl.SECOND AS `second`,
ldpl.third_product thirdProduct,

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

@ -314,4 +314,10 @@ public interface IDistributionAsyncService {
* @param id
*/
void sendTrunkineLog(Long deliveryId,Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse,Integer a);
/**
* 自提单未扫描数据进行资源释放
* @param l
*/
void releaseBillLadingResource(Long l,Long warehouseId);
}

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

@ -235,4 +235,11 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
* @return
*/
Integer selectBillLadingPlanNum(Long id);
/**
* 查询自提单是否需要进行资源释放
* @param billLadingId
* @return
*/
Integer checkBillLadingIsRelease(Long billLadingId);
}

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

@ -99,4 +99,10 @@ public interface IDistrilbutionBillStockService extends BaseService<Distrilbutio
List<DistributionBillOrderExcel> distrilbutionBillStock(Map<String, Object> distrilbutionBillStock);
List<DistributionBillOrderPackExcel> billOrderPackExcel(Map<String, Object> distrilbutionBillStock);
/**
* 维护自提单订单状态
* @param l
*/
void maintenanceOrderInfo(Long l);
}

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

@ -3,6 +3,7 @@ package com.logpm.distribution.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
@ -1804,6 +1805,41 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
/**
* @param l
*/
@Override
@Transactional
public void releaseBillLadingResource(Long l,Long warehouseId) {
List<DistrilbutionBillPackageEntity> list = billPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, l)
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2)
);
if (Func.isNotEmpty(list)){
List<Long> ids = list.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
//查询包件
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(ids);
List<Long> packageIds = distributionParcelListEntities.stream().filter(f -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(f.getOrderPackageLoadingStatus())|| !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())).map(DistributionParcelListEntity::getId).collect(Collectors.toList());
distributionParcelListService.update(new UpdateWrapper<DistributionParcelListEntity>().lambda()
.set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.daiyuyue.getValue())
.set(DistributionParcelListEntity::getOrderPackageLoadingStatus,OrderPackageLoadingStatusConstant.weizhuancghe.getValue())
.set(DistributionParcelListEntity::getOrderPackageStatus,OrderPackageStatusConstant.yiruku.getValue())
.set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.daibeihuo.getValue())
.in(DistributionParcelListEntity::getId,packageIds)
);
billPackageService.update(new UpdateWrapper<DistrilbutionBillPackageEntity>().lambda()
.set(DistrilbutionBillPackageEntity::getPacketBarStatus,2)
.eq(DistrilbutionBillPackageEntity::getBillLadingId,l)
.in(DistrilbutionBillPackageEntity::getParceListId,packageIds)
);
String collect = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getOrderCode).distinct().collect(Collectors.joining(","));
distributionStockArticleService.maintenanceOrderInfo(collect,warehouseId);
//维护自提单订单信息
distrilbutionBillStockService.maintenanceOrderInfo(l);
}
}
/**
* 定制品 修改备货时间

67
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -103,7 +103,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
private final IDistributionBillLadingScanService distributionBillLadingScanService;
private final IDistrilbutionBillStockService distrilbutionBillStockService;
private final IDistributionStockupScanService distributionStockupScanService;
@ -693,10 +692,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
public DistrilbutionBillLadingEntity selectByBillLadingCode(String searchCode) {
String method = "##########类DistrilbutionBi().selectByBillLadingCode,";
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
if (Func.isEmpty(myCurrentWarehouse)) {
return null;
}
return baseMapper.selectByBillLadingCode( myCurrentWarehouse.getId(),searchCode);
return baseMapper.selectByBillLadingCode(myCurrentWarehouse.getId(), searchCode);
}
/**
@ -708,6 +707,36 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return baseMapper.selectBillLadingPlanNum(id);
}
/**
* @param billLadingId
* @return
*/
@Override
public Integer checkBillLadingIsRelease(Long billLadingId) {
String method = "###################################DistributionBillLadingServiceImpl.checkBillLadingIsRelease";
DistrilbutionBillLadingEntity billLadingEntity = this.getById(billLadingId);
if (Func.isEmpty(billLadingEntity)) {
log.info(method + "自提单查询失败:{}", billLadingId);
return 2;
}
Integer integer = this.selectBillLadingPlanNum(billLadingEntity.getId());
//查询是否存在自提扫描
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId));
boolean a = false;
if (Func.isEmpty(ladingScanEntities)) {
int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
//提货扫描数量和计划保持一致无需进行资源释放
if (integer == sum) {
return 1;
}else {
return 3;
}
} else {
return 4;
}
}
@Transactional
private Integer cancelBillLodingPackage(List<Long> ids) {
String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding,";
@ -727,16 +756,16 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//取消包件
UpdateWrapper<DistrilbutionBillPackageEntity> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda()
.in(DistrilbutionBillPackageEntity::getBillLadingId,ids)
.set(DistrilbutionBillPackageEntity::getPacketBarStatus,"3")
.in(DistrilbutionBillPackageEntity::getBillLadingId, ids)
.set(DistrilbutionBillPackageEntity::getPacketBarStatus, "3")
;
distrilbutionBillPackageService.update(updateWrapper);
//取消订单
UpdateWrapper<DistrilbutionBillStockEntity> orderUpdateWrapper = new UpdateWrapper<>();
orderUpdateWrapper.lambda()
.in(DistrilbutionBillStockEntity::getBillLadingId,ids)
.set(DistrilbutionBillStockEntity::getOrderStatus,"3")
.in(DistrilbutionBillStockEntity::getBillLadingId, ids)
.set(DistrilbutionBillStockEntity::getOrderStatus, "3")
;
distrilbutionBillStockService.update(orderUpdateWrapper);
@ -753,8 +782,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (Func.isNotEmpty(distributionStockListEntities)) {
//已经备货的库存品 存在库存品包件
distributionStockListEntities.forEach(ddd -> {
//恢复库存品数量
distributionStockListService.updateInventoryQuantityOccupied(ddd.getStockListId(),ddd.getQuantity());
//恢复库存品数量
distributionStockListService.updateInventoryQuantityOccupied(ddd.getStockListId(), ddd.getQuantity());
//进行库存品包件取消
if (ddd.getStockStatus().equals("3")) {
disStockListDetailService.cancelInventoryPackageByReservationIdAnStockListId(ddd.getStockListId(), ddd.getBillLadingId());
@ -1790,7 +1819,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
DistrilbutionBillStockEntity one2 = distrilbutionBillStockService.getOne(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId)
.apply("order_status in (1 , 2)")
.apply("order_status in (1 , 3)")
.eq(DistrilbutionBillStockEntity::getStockArticleId, list4.get(0).getStockArticleId())
);
if (ObjectUtils.isNull(one2)) {
@ -1879,7 +1908,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionAsyncService.getStockUPstate(Long.parseLong(a));
log.info(coding + " > > 签收成功!!");
return Resp.scanSuccess("签收成功", "");
}
@ -1942,6 +1970,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
@Transactional(rollbackFor = Exception.class)
public Boolean updateOwn(String ids) {
String[] split = ids.split(",");
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
return false;
}
for (int i = 0; i < split.length; i++) {
String s = split[i];
//查询是不是上传图片
@ -1962,6 +1994,19 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billLadingEntity.setConditions(BillLadingStatusConstant.yiqianshou.getValue());
billLadingEntity.setId(Long.parseLong(s));
this.updateById(billLadingEntity);
//查询自提单是否完成扫描
Integer integer = this.selectBillLadingPlanNum(Long.parseLong(s));
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda().eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s)));
if (Func.isNotEmpty(ladingScanEntities)){
int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
if (integer != sum){
//存在资源释放操作
distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId());
}
}else {
distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId());
}
//修改订单状态
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, s)

46
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java

@ -18,26 +18,33 @@ package com.logpm.distribution.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistrilbutionBillPackageEntity;
import com.logpm.distribution.entity.DistrilbutionBillStockEntity;
import com.logpm.distribution.excel.DistributionBillOrderExcel;
import com.logpm.distribution.excel.DistributionBillOrderPackExcel;
import com.logpm.distribution.excel.DistrilbutionBillStockExcel;
import com.logpm.distribution.mapper.DistrilbutionBillStockMapper;
import com.logpm.distribution.service.IDistrilbutionBillPackageService;
import com.logpm.distribution.service.IDistrilbutionBillStockService;
import com.logpm.distribution.vo.*;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.User;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -53,6 +60,8 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
private final IUserClient userClient;
private final IDistrilbutionBillPackageService distrilbutionBillPackageService;
@Override
public IPage<DistrilbutionBillStockVO> selectDistrilbutionBillStockPage(IPage<DistrilbutionBillStockVO> page, DistrilbutionBillStockVO distrilbutionBillStock) {
return page.setRecords(baseMapper.selectDistrilbutionBillStockPage(page, distrilbutionBillStock));
@ -170,4 +179,41 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
});
return distributionBillOrderPackExcels;
}
/**
* @param l
*/
@Override
@Transactional
public void maintenanceOrderInfo(Long l) {
List<DistrilbutionBillStockEntity> entityList = this.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, l)
.ne(DistrilbutionBillStockEntity::getOrderStatus, "2")
);
List<Long> ids = new ArrayList<>();
if (Func.isNotEmpty(entityList)){
for (DistrilbutionBillStockEntity distrilbutionBillStockEntity : entityList) {
List<DistrilbutionBillPackageEntity> packageEntities = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, l)
.eq(DistrilbutionBillPackageEntity::getStockArticleId, distrilbutionBillStockEntity.getStockArticleId())
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2)
);
if (Func.isEmpty(packageEntities)){
//取消订单
ids.add(distrilbutionBillStockEntity.getId());
}else {
int sum = packageEntities.stream().mapToInt(DistrilbutionBillPackageEntity::getPacketNumber).sum();
if (sum == 0){
ids.add(distrilbutionBillStockEntity.getId());
}
}
}
}
if (Func.isNotEmpty(ids)){
this.update(new UpdateWrapper<DistrilbutionBillStockEntity>().lambda()
.set(DistrilbutionBillStockEntity::getOrderStatus, "2")
.in(DistrilbutionBillStockEntity::getId, ids)
);
}
}
}

Loading…
Cancel
Save