Browse Source

库存品数量调整、商配计划包件回显

dev-warehouse
kilo 2 years ago
parent
commit
e80b0719b6
  1. 38
      blade-biz-common/src/main/java/org/springblade/common/serviceConstant/ServiceConstant.java
  2. 2
      blade-gateway/src/main/resources/application-dev.yml
  3. 6
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java
  4. 10
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockArticleEntity.java
  5. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockListEntity.java
  6. 24
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java
  7. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
  8. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java
  9. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionStockArticleDTO.java
  10. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  11. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliverySelfMapper.xml
  12. 22
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  13. 99
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  14. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.java
  15. 71
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml
  16. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml
  17. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  18. 132
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  19. 54
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

38
blade-biz-common/src/main/java/org/springblade/common/serviceConstant/ServiceConstant.java

@ -190,6 +190,44 @@ public interface ServiceConstant {
String RESERVATION_STATE_CANCEL = "4";
/**
* 包件状态 --- 未入库
*/
String PACKAGE_STATUS_NOT_WAREHOUSING="10";
/**
* 包件状态 --- 已入库
*/
String PACKAGE_STATUS_WAREHOUSING="20";
/**
* 包件状态 --- 中转入库
*/
String PACKAGE_STATUS_TRANSFER="30";
/**
* 包件状态 --- 已预约
*/
String PACKAGE_STATUS_RESERVATION="40";
/**
* 包件状态 --- 已备货
*/
String PACKAGE_STATUS_STOCK_UP="50";
/**
* 包件状态 --- 已装车
*/
String PACKAGE_STATUS_LOADING="60";
/**
* 包件状态 --- 已签收
*/
String PACKAGE_STATUS_SING_FOR="70";
//订单状态 未入库
String ORDER_STATE_ONE = "10";
//已入库

2
blade-gateway/src/main/resources/application-dev.yml

@ -7,5 +7,5 @@ blade:
#version: 3.0.0
#负载均衡优先调用的ip段
prior-ip-pattern:
- 192.168.2.*
- 192.168.10.*
- 127.0.0.1

6
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java

@ -185,4 +185,10 @@ public class DistributionParcelListEntity extends TenantEntity {
private String orderPackageStatus;
// /**
// * 配送状态
// */
// @ApiModelProperty(value = "配送状态")
// private String orderPackageStatus;
}

10
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockArticleEntity.java

@ -273,6 +273,12 @@ public class DistributionStockArticleEntity extends TenantEntity {
@TableField(exist = false)
private List<DistributionParcelListEntity> packageList;
/**
* 订单是否出现包件修改
*/
@TableField(exist = false)
private Boolean isUpdate = false;
//-------------2023-07-16 新增在库订单字段
/**
@ -418,4 +424,8 @@ public class DistributionStockArticleEntity extends TenantEntity {
private String factoryTrain;
}

2
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockListEntity.java

@ -72,7 +72,7 @@ public class DistributionStockListEntity extends TenantEntity {
/**
* 服务类型
*/
@ApiModelProperty(value = "预留5")
@ApiModelProperty(value = "服务类型")
private String serviceType;
/**
* 订单自编号

24
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java

@ -25,6 +25,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
@ -70,6 +71,7 @@ public class BasicdataWarehouseController extends BladeController {
BasicdataWarehouseEntity detail = warehouseService.getOne(Condition.getQueryWrapper(basicdataWarehouseEntity));
return R.data(detail);
}
/**
* 仓库 分页
*/
@ -77,18 +79,21 @@ public class BasicdataWarehouseController extends BladeController {
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入warehouseWarehouse")
public R<IPage<BasicdataWarehouseEntity>> list(@ApiIgnore @RequestParam Map<String, Object> warehouseWarehouse, Query query) {
Object startDate = warehouseWarehouse.get("startDate");
Object endDate = warehouseWarehouse.get("endDate");
warehouseWarehouse.put("startDate",null);
warehouseWarehouse.put("endDate",null);
Object startDate = warehouseWarehouse.get("startDate");
Object endDate = warehouseWarehouse.get("endDate");
warehouseWarehouse.put("startDate", null);
warehouseWarehouse.put("endDate", null);
String deptId = AuthUtil.getUser().getDeptId();
QueryWrapper<BasicdataWarehouseEntity> qw = Condition.getQueryWrapper(warehouseWarehouse, BasicdataWarehouseEntity.class);
qw
.apply(startDate != null,"date_format (start_date,'%Y-%m-%d') >= date_format ({0},'%Y-%m-%d')",startDate)
.apply(endDate != null,"date_format (end_date,'%Y-%m-%d') <= date_format ({0},'%Y-%m-%d')",endDate);
qw.apply(startDate != null, "date_format (start_date,'%Y-%m-%d') >= date_format ({0},'%Y-%m-%d')", startDate)
.apply(endDate != null, "date_format (end_date,'%Y-%m-%d') <= date_format ({0},'%Y-%m-%d')", endDate);
qw.lambda().eq(BasicdataWarehouseEntity::getTenantId, AuthUtil.getTenantId());
qw.lambda().eq(BasicdataWarehouseEntity::getDepartment, deptId);
IPage<BasicdataWarehouseEntity> page = warehouseService.page(Condition.getPage(query), qw);
//TODO 这里将仓库的行政区域放到Service中通过缓存进行陪陪结果后返回给前端
page.getRecords().forEach(basicdataWarehouseEntity -> {
});
// IPage<BasicdataWarehouseEntity> pages = warehouseService.page(Condition.getPage(query), Condition.getQueryWrapper(warehouseWarehouse, BasicdataWarehouseEntity.class));
return R.data(page);
}
@ -158,6 +163,7 @@ public class BasicdataWarehouseController extends BladeController {
/**
* 删除
*
* @param ids 单条记录和多条记录均可使用
* @return
*/
@ -166,9 +172,9 @@ public class BasicdataWarehouseController extends BladeController {
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
boolean result = warehouseService.removeWarehouse(ids);
if (result){
if (result) {
return R.status(result);
}else {
} else {
return R.fail("请先删除该仓库下所有资源!!!");
}
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java

@ -277,8 +277,8 @@ public class DistributionDeliveryListController extends BladeController {
@PutMapping("/updateDeliveryList")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "customArgs")
public R<?> UpdateDeliveryList(@RequestBody DistributionDeliveryListDTO deliveryListDTO) {
R<?> result = distributionDeliveryListService.UpdateDeliveryListInfo(deliveryListDTO);
public R<?> updateDeliveryList(@RequestBody DistributionDeliveryListDTO deliveryListDTO) {
R<?> result = distributionDeliveryListService.updateDeliveryListInfo(deliveryListDTO);
return result;
}

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

@ -231,7 +231,7 @@ public class DistributionStockArticleController extends BladeController {
*/
@GetMapping("/stockArticleInfo")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
@ApiOperation(value = "获取批量在库订单信息", notes = "传入ids")
public R getStockArticleInfo(@ApiParam(value = "主键集合", required = true) String ids) {
R<List<DistributionStockArticleVO>> result = distributionStockArticleService.getStockArticleInfo(ids);
return result;
@ -242,11 +242,12 @@ public class DistributionStockArticleController extends BladeController {
*/
@GetMapping("/selectStockArticleAndParcel")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R selectStockArticleAndParcel( @RequestParam String typeService,@RequestParam String genre) {
@ApiOperation(value = "查询订单和订单的包件信息", notes = "传入ids")
public R selectStockArticleAndParcel(@RequestParam(required = false) String typeService,@RequestParam(required = false) String genre,@RequestParam(required = false)String id) {
HashMap<String, Object> query = new HashMap<>();
query.put("typeService",typeService);
query.put("genre",genre);
query.put("id",id);
R<List<DistributionStockArticleVO>> result = distributionStockArticleService.selectStockArticleAndParcel(query);
return result;
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionStockArticleDTO.java

@ -39,11 +39,11 @@ public class DistributionStockArticleDTO extends DistributionStockArticleEntity
private String ids;
// /**
// * 包件信息
// */
// @ApiModelProperty(value = "包件信息")
// private DistributionParcelListDTO distributionParcelListDTO;
/**
* 包件信息
*/
@ApiModelProperty(value = "包件信息")
private List<DistributionParcelListDTO> distributionParcelListDTO;
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -625,9 +625,11 @@
INNER JOIN logpm_distribution_signfor AS lds ON lddl.id = lds.delivery_id
INNER JOIN logpm_distribution_reservation_stockarticle AS ldrs ON lds.reservation_id = ldrs.reservation_id
INNER JOIN logpm_distribution_stock_article AS ldsa ON ldsa.id = ldrs.stock_article_id
WHERE
lddl.id = #{id}
<where>
<if test="id!= '' and id!=null">
lddl.id = #{id}
</if>
</where>
</select>
<select id="selectcinventoryTotal" resultType="java.lang.Integer">
SELECT COALESCE (sum(ldr.reservation_stock_list_num) ,0)

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

@ -28,7 +28,7 @@
<result column="reserve5" property="reserve5"/>
</resultMap>
<delete id="deleteDeliverySelf">
DELETE FROM logpn_distribution_delivery_self WHERE delivery_id = #{id}
DELETE FROM logpm_distribution_delivery_self WHERE delivery_id = #{id}
</delete>
@ -40,6 +40,7 @@
<select id="exportDistributionDeliverySelf" resultType="com.logpm.distribution.excel.DistributionDeliverySelfExcel">
SELECT * FROM logpm_distribution_delivery_self ${ew.customSqlSegment}
</select>
<select id="getDeliverySelfInfo" resultType="com.logpm.distribution.vo.DistributionDeliverySelfVO">
SELECT
ldds.*

22
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java

@ -19,7 +19,9 @@ package com.logpm.distribution.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.dto.DistributionReservationDTO;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.excel.DistributionReservationExcel;
import com.logpm.distribution.vo.DistributionReservationVO;
import com.logpm.distribution.vo.DistributionStockArticleVO;
@ -84,4 +86,24 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
Integer getReservationNumByReservationIdAndStockListId(@Param("reservationId") Long reservationId, @Param("stockListId")Long stockListId);
/**
* 查询配送任务下的预约单信息
* @param id
* @return
*/
List<DistributionReservationDTO> getDeliverReservationInfo(@Param("id")String id);
/**
* 根据客户名称查询出该客户下的所有订单信息
* @param k
* @return
*/
List<DistributionStockArticleEntity> getStockArticleListInfo(@Param("consignee")String k,@Param("deliveryId") Long id);
/**
* 根据客户查询预约信息
* @param k
* @return
*/
DistributionReservationEntity selectByConsignee(String k);
}

99
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -323,5 +323,104 @@
and ldr.is_deleted = 0
and ldrs.stocklist_id = #{stockListId}
</select>
<select id="getDeliverReservationInfo" resultType="com.logpm.distribution.dto.DistributionReservationDTO">
SELECT
ldr.id,
ldr.tenant_id,
ldr.is_deleted,
ldr.mall_id,
ldr.mall_name,
ldr.store_id,
ldr.store_name,
ldr.serve_type,
ldr.delivery_way,
ldr.delivery_type,
ldr.other_fee,
ldr.reservation_status,
ldr.stockup_status,
ldr.period_of_time
FROM
logpm_distribution_delivery_list AS lddl
INNER JOIN logpm_distribution_signfor AS lds ON lddl.id = lds.delivery_id
INNER JOIN logpm_distribution_stockup_info AS ldsi ON lds.reservation_id = ldsi.reservation_id
INNER JOIN logpm_distribution_reservation AS ldr ON ldr.id = lds.reservation_id
<where>
<if test="id!='' and id != null">
lddl.id = #{id}
</if>
</where>
</select>
<select id="getStockArticleListInfo"
resultType="com.logpm.distribution.entity.DistributionStockArticleEntity">
SELECT
ldsa.*
FROM
logpm_distribution_signfor AS lds
INNER JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id
INNER JOIN logpm_distribution_reservation_stockarticle AS ldrs ON ldr.id = ldrs.reservation_id
INNER JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id
<where>
<if test="consignee != null and consignee!= '' ">
and ldr.consignee = #{consignee}
</if>
<if test="deliveryId != null and deliveryId!= '' ">
and lds.delivery_id = #{deliveryId}
</if>
</where>
</select>
<select id="selectByConsignee" resultType="com.logpm.distribution.entity.DistributionReservationEntity">
SELECT
id,
tenant_id,
create_user,
create_time,
update_user,
update_time,
status,
is_deleted,
create_dept,
stock_article_id,
mall_id,
mall_name,
store_id,
store_name,
consignee,
delivery_address,
reservation_date,
serve_type,
delivery_way,
delivery_type,
collect_fee,
other_fee,
replace_fee,
delivery_phone,
reservation_status,
order_source,
stockup_status,
goods_area_name,
goods_area_id,
reserve1,
reserve2,
reserve3,
reserve4,
reserve5,
remarks,
shopping_id,
period_of_time,
fee,
reservation_num,
reservation_code,
service_number,
cancel_reason,
is_urgent,
reservation_stock_list_num
FROM
logpm_distribution_reservation
<where>
<if test="consignee != null and consignee!= ''">
consignee=#{consignee}
</if>
</where>
</select>
</mapper>

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.java

@ -75,4 +75,20 @@ public interface DistributionReservationPackageMapper extends BaseMapper<Distrib
* @return
*/
List<DistributionParcelListEntity> getReservationPackageList(@Param("id")String reservationId);
/**
* 查询配送任务下订单的包件信息
* @param id
* @param id1
* @return
*/
List<DistributionParcelListEntity> getDeliveryReservationPackage(@Param("deliveryId")Long id,@Param("stockArticleId") Long id1);
/**
* 删除预约客户下订单的包件信息
* @param id
* @param id1
* @return
*/
Integer deletePackageByRidAndSid(@Param("reservationId") Long id,@Param("stockArticleId") Long id1);
}

71
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml

@ -26,6 +26,14 @@
<delete id="deleteReservationPackage">
DELETE FROM logpm_distribution_reservation_package WHERE reservation_id = #{id}
</delete>
<delete id="deletePackageByRidAndSid">
DELETE
FROM
logpm_distribution_reservation_package
WHERE
stock_article_id = #{stockArticleId}
AND reservation_id = #{reservationId}
</delete>
<select id="selectDistributionReservationPackagePage" resultMap="distributionReservationPackageResultMap">
@ -52,17 +60,74 @@
</where>
</select>
<select id="getReservationPackageList" resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
SELECT
ldpl.*
ldpl.*
FROM
`logpm_distribution_reservation_package` ldrp
INNER JOIN logpm_distribution_parcel_list ldpl ON ldrp.parce_list_id = ldpl.id
`logpm_distribution_reservation_package` ldrp
INNER JOIN logpm_distribution_parcel_list ldpl ON ldrp.parce_list_id = ldpl.id
<where>
<if test="id != '' and id !=null">
and ldrp.reservation_id = #{id}
</if>
</where>
</select>
<select id="getDeliveryReservationPackage"
resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
SELECT
ldpl.id,
ldpl.tenant_id,
ldpl.create_user,
ldpl.create_time,
ldpl.update_user,
ldpl.update_time,
ldpl.STATUS,
ldpl.is_deleted,
ldpl.create_dept,
ldpl.reserve1,
ldpl.reserve2,
ldpl.reserve3,
ldpl.reserve4,
ldpl.reserve5,
ldpl.warehouse_id,
ldpl.warehouse,
ldpl.conditions,
ldpl.packet_bar_code,
ldpl.cargo_title,
ldpl.shelf_title,
ldpl.goods_allocation,
ldpl.pallet,
ldpl.firsts,
ldpl.SECOND,
ldpl.third_product,
ldpl.material_id,
ldpl.quantity,
ldpl.train_number,
ldpl.stock_article_id,
ldpl.order_self_numbering,
ldpl.service_number,
ldpl.material_name,
ldpl.material_code,
ldpl.material_unit,
ldpl.brand_id,
ldpl.brand_name,
ldpl.delivery_state
FROM
( SELECT reservation_id FROM logpm_distribution_signfor
<where>
<if test="deliveryId != '' and deliveryId != null">
delivery_id = #{deliveryId}
</if>
</where>
) AS a
INNER JOIN logpm_distribution_reservation_package AS ldrp ON ldrp.reservation_id = a.reservation_id
INNER JOIN logpm_distribution_parcel_list AS ldpl ON ldrp.parce_list_id = ldpl.id
<where>
<if test="stockArticleId != '' and stockArticleId != null">
ldrp.stock_article_id = #{stockArticleId}
</if>
</where>
</select>
</mapper>

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml

@ -139,7 +139,6 @@
ldsa.signin_quantity,
ldsa.grounding_status,
ldsa.allocation,
ldsa.order_status,
ldsa.resource,
ldsa.trays,
ldsa.is_opai,
@ -157,6 +156,9 @@
FROM
logpm_distribution_stock_article AS ldsa
<where>
<if test="ew.id != '' and ew.id !=null">
AND ldsa.id = #{ew.id}
</if>
<if test="ew.genre !='' and ew.genre!=null">
AND ldsa.genre = #{ew.genre}
</if>

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

@ -156,6 +156,6 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
* @param deliveryListDTO
* @return
*/
R<?> UpdateDeliveryListInfo(DistributionDeliveryListDTO deliveryListDTO);
R<?> updateDeliveryListInfo(DistributionDeliveryListDTO deliveryListDTO);
}

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

@ -16,6 +16,7 @@
*/
package com.logpm.distribution.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.logpm.distribution.dto.*;
@ -72,6 +73,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
private final DistributionReservationMapper distributionReservationMapper;
private final IDistributionReservationStockarticleService distributionReservationStockarticleService;
private final IDistributionReservationPackageService distributionReservationPackageService;
private final DistributionReservationPackageMapper distributionReservationPackageMapper;
private final DistributionParcelListMapper distributionParcelListMapper;
private final IDistributionParcelListService distributionParcelListService;
private final DistributionLoadscanMapper distributionLoadscanMapper;
@ -1110,6 +1112,11 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
List<DistributionStockArticleVO> stockArticleVOS = distributionDeliveryListMapper.getDeliveryStockArticleInfo(id);
stockArticleVOS.forEach(s->{
//这里查询出订单选取的包件信息
DistributionReservationPackageDTO reservationPackageDTO = new DistributionReservationPackageDTO();
reservationPackageDTO.setReservationId(reservationVOS.getId());
reservationPackageDTO.setStockArticleId(s.getId());
List<DistributionParcelListEntity> parcelListEntities = distributionReservationPackageMapper.getDeliveryReservationPackage(deliveryListEntity.getId(),s.getId());
s.setParcelListVOS(parcelListEntities);
});
deliveryListVO.setStockArticleList(stockArticleVOS);
//2、查询出备货信息
@ -1161,7 +1168,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
@Override
@Transactional
public R<?> UpdateDeliveryListInfo(DistributionDeliveryListDTO deliveryListDTO) {
public R<?> updateDeliveryListInfo(DistributionDeliveryListDTO deliveryListDTO) {
if ( Func.isEmpty(deliveryListDTO)){
log.error("deliveryListDTO参数异常+{"+deliveryListDTO+"}");
return R.fail("服务器正忙!!");
@ -1182,6 +1189,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionDeliveryTripartiteMapper.deleteDeliveryTripartite(deliveryListEntity.getId());
break;
}
//这里对司机配置信息进行判断,如果不存在该信息则为外协配送的方式
if (Func.isEmpty(allocationInfo)){
//这里就表示是三方配送
DistributionDeliveryTripartiteDTO tripartite = deliveryListDTO.getTripartite();
@ -1217,9 +1225,15 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//根据门店进行分组
Map<String, List<DistributionStockArticleDTO>> storeClient = stockArticle.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getStoreName));
List<DistributionStockArticleDTO> distributionStockArticleDTOS = storeClient.get("");
Map<String, List<DistributionStockArticleDTO>> mallClient = distributionStockArticleDTOS.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getMallName));
Map<String, List<DistributionStockArticleDTO>> mallClient = null;
if (!Func.isEmpty(distributionStockArticleDTOS)){
mallClient = distributionStockArticleDTOS.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getMallName));
Map<String, List<DistributionStockArticleDTO>> finalMallClient = mallClient;
storeClient.forEach((k, v)-> finalMallClient.merge(k,v,(v1, v2)->v2));
}else {
mallClient = storeClient;
}
//3、维护订单和客户
storeClient.forEach((k,v)->mallClient.merge(k,v,(v1,v2)->v2));
//查询该配送任务下原有的客户
List<DistributionReservationEntity> reservationEntityList = distributionReservationMapper.getDeliveryReservation(deliveryListEntity.getId());
//将原客户和新的进行比对,如果有那么则进行客户修改,最后剩下的订单信息都属于是新客户
@ -1228,17 +1242,121 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
mallClient.forEach((k,v)->{
if (!k.equals("")){
if (Func.isNotEmpty(originalClient.get(k))){
//这里实际上就是包件发生了变化
//1、订单发生变化
//2、包件发生变化
//3、订单包件均发生变化
//查询原来这个客户下的所有订单信息
List<DistributionStockArticleEntity> stockArticleEntities = distributionReservationMapper.getStockArticleListInfo(k,deliveryListEntity.getId());
Map<Long, List<DistributionStockArticleEntity>> orderInfo = stockArticleEntities.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getId));
v.forEach(o->{
//这里就需要判断这个订单是否存在原来的订单信息中
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectByConsignee(k);
if (Func.isEmpty(orderInfo.get(o.getId()))){
//从原来的客户信息中未查询到该订单信息,需要为该客户进行订单信息的维护
//根据客户进行预约信息的查询
DistributionReservationStockarticleEntity reservationStockarticleEntity = new DistributionReservationStockarticleEntity();
reservationStockarticleEntity.setReservationId(reservationEntity.getId());
reservationStockarticleEntity.setStockArticleId(o.getId());
reservationStockarticleEntity.setIsHaveData(o.getIsHaveData());
//这里需要考虑这个订单的包件问题,
//统计包件数量
AtomicInteger packageTotal = new AtomicInteger();
if (o.getPackageList().size()==0){
//进行包件全选的操作
//查询出该订单下的所有包件信息,进行包件信息的维护
LambdaQueryWrapper<DistributionParcelListEntity> qw = new QueryWrapper<DistributionParcelListEntity>().lambda().eq(DistributionParcelListEntity::getStockArticleId, o.getId());
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.getBaseMapper().selectList(qw);
parcelListEntities.forEach(p->{
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
reservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
reservationPackageEntity.setStockArticleId(p.getStockArticleId());
reservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
//统计包件的数量
packageTotal.getAndAdd(p.getQuantity());
//TODO 这里还需要对包件状态进行修改
});
}else {
//进行选中包件的数据维护
List<DistributionParcelListEntity> packageList = o.getPackageList();
packageList.forEach(p->{
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
reservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
reservationPackageEntity.setStockArticleId(p.getStockArticleId());
reservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
//统计包件的数量
packageTotal.getAndAdd(p.getQuantity());
//TODO 这里还需要对包件状态进行修改
});
}
reservationStockarticleEntity.setReservationNum(packageTotal.get());
distributionReservationStockarticleService.save(reservationStockarticleEntity);
}else {
//查看该订单是否发生包件修改操作
AtomicInteger packageTotal = new AtomicInteger();
if (o.getIsUpdate()){
//订单发生修改包件的操作,先对该预约下的订单进行解绑
Integer i = distributionReservationPackageMapper.deletePackageByRidAndSid(reservationEntity.getId(),o.getId());
//构建新的
if (o.getPackageList().size()==0){
//订单全选
LambdaQueryWrapper<DistributionParcelListEntity> qw = new QueryWrapper<DistributionParcelListEntity>().lambda().eq(DistributionParcelListEntity::getStockArticleId, o.getId());
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.getBaseMapper().selectList(qw);
parcelListEntities.forEach(p->{
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
reservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
reservationPackageEntity.setStockArticleId(p.getStockArticleId());
reservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
//统计包件的数量
packageTotal.getAndAdd(p.getQuantity());
//TODO 这里还需要对包件状态进行修改
});
//需要修改该客户下的订单中间表信息
}else {
//有选取订单的操作
List<DistributionParcelListEntity> packageList = o.getPackageList();
packageList.forEach(p->{
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
reservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
reservationPackageEntity.setStockArticleId(p.getStockArticleId());
reservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
//统计包件的数量
packageTotal.getAndAdd(p.getQuantity());
//TODO 这里还需要对包件状态进行修改
});
}
//修改预约订单中间表和客户信息
//修改客户预约信息
//为客户的订单进行修改操作
//这里就将该订单下的包件信息进行删除后重新进行数据添加维护
//删除原有的包件信息,
}else {
//这里就不执行操作
}
}
//这里如果获取不到说明增加了该客户下的一个订单
//执行新订单的维护,将原来的订单信息进行移除
List<DistributionParcelListEntity> packageList = o.getPackageList();
//删除原来订单和包件之间的关系,建立新的包件和订单之间的关系
//1、通过客户名称查询出预约信息
//2、通过预约信息解除该订单下原有的包件信息
//3、重新建立包件和预约的关联关系
});
originalClient.remove(k);
}else {
//必定是新增订单,且新增了客户
DistributionReservationDTO reservation = deliveryListDTO.getReservation();
DistributionReservationEntity reservationEntity = Func.copy(reservation, DistributionReservationEntity.class);
reservationEntity.setReservationStatus(ServiceConstant.RESERVATION_STATE_WAIT_DELIVERY);
@ -1278,6 +1396,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
reservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
distributionReservationPackageService.save(reservationPackageEntity);
packageTotal.getAndAdd(p.getQuantity());
//TODO 这里还需要对包件状态进行修改
});
}else {
//查询出该订单下的所有包件,完成预约和包件的维护
@ -1292,6 +1412,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
reservationPackageEntity.setPacketBarCode(dp.getPacketBarCode());
distributionReservationPackageService.save(reservationPackageEntity);
packageTotal.getAndAdd(dp.getQuantity());
//TODO 这里还需要对包件状态进行修改
});
}
//完成预约和订单之间数据关系

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

@ -201,9 +201,13 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
this.save(reservationEntity);
//获取新增预约信息的编号
Long reservationId = reservationEntity.getId();
//货区订单列表信息
List<DistributionStockArticleEntity> stockArticleList = distributionReservationDTO.getStockArticleList();
//获取库存品列表信息
List<DistributionStockListEntity> inventoryList = distributionReservationDTO.getInventoryList();
//订单数量统计
AtomicInteger stockArticleCount = new AtomicInteger();
List<String> arrayList = new ArrayList<>();
//服务号拼接
HashSet serviceNumber = new HashSet();
@ -233,6 +237,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationPackageService.save(distributionReservationPackageEntity);
//此时订单下的所有包件都处于预约状态,可用数为0
packageNum.getAndAdd(p.getQuantity());
//修改订单下的包件状态
p.setOrderPackageStatus(ServiceConstant.PACKAGE_STATUS_RESERVATION);
distributionParcelListService.updateById(p);
});
s.setAvailableQuantity(0);
} else {
@ -244,6 +251,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationPackageEntity.setStockArticleId(s.getId());
distributionReservationPackageMapper.insert(distributionReservationPackageEntity);
packageNum.getAndAdd(p.getQuantity());
p.setOrderPackageStatus(ServiceConstant.PACKAGE_STATUS_RESERVATION);
distributionParcelListService.updateById(p);
});
//设置订单可用数量为
s.setAvailableQuantity(s.getHandQuantity() - s.getReservationNum());
@ -280,8 +289,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
inventoryList.forEach(i -> {
//如果库存品存在占用数量,这里就直接进行累加
//对库存品的数量进行维护,将预约单的库存品数量进行冻结
int count = i.getOutboundQuantity() + i.getReservationNum();
i.setQuantityOccupied(count);
// int count = i.getOutboundQuantity() + i.getReservationNum();
// i.setQuantityOccupied(count);
Integer quantityOccupied = i.getQuantityOccupied();
i.setQuantityOccupied(quantityOccupied+i.getReservationNum());
distributionStockListService.updateById(i);
Long stocklistId = i.getId();
arrayList.add(i.getOrderSelfNumbering());
@ -420,7 +431,6 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionStockupEntity stockupentity = Func.copy(stockup, DistributionStockupEntity.class);
List<Long> ids = Func.toLongList(reservationIds);
boolean flag = Func.isEmpty(stockupentity);
boolean aj = Func.isNotEmpty(stockup);
DistributionStockupEntity distributionStockupEntity = Func.copy(stockup, DistributionStockupEntity.class);
Integer stockListTotal = distributionReservationStocklistMapper.getStockListTotal(ids);
if (!flag){
@ -436,6 +446,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionStockupEntity.setTypeService(ServiceConstant.DELIVERY_TYPE_CUSTOMER);
distributionStockupService.save(distributionStockupEntity);
}else {
//这里就是未填写备货信息
if (stockListTotal > 0 ){
return R.fail("配送库存品请填写备货信息!!!");
}
@ -614,12 +625,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
}
//对配送信息进行修改
distributionDeliveryListEntity.setState(ServiceConstant.DELIVERY_TYPE_CUSTOMER);
distributionDeliveryListEntity.setLoadingTeamName(stockup.getLoaderName());
distributionDeliveryListEntity.setForkliftName(stockup.getForkliftName());
distributionDeliveryListEntity.setForkliftId(stockup.getForkliftId().toString());
distributionDeliveryListEntity.setLoadingTeamId(stockup.getLoaderId());
distributionDeliveryListEntity.setLeadTime(allocationDTO.getStockup().getStockupDate());
distributionDeliveryListEntity.setLoadingTeamType(stockup.getLoadAndUnload());
// distributionDeliveryListEntity.setLoadingTeamName(stockup.getLoaderName());
// distributionDeliveryListEntity.setForkliftName(stockup.getForkliftName());
// distributionDeliveryListEntity.setForkliftId(stockup.getForkliftId().toString());
// distributionDeliveryListEntity.setLoadingTeamId(stockup.getLoaderId());
// distributionDeliveryListEntity.setLeadTime(allocationDTO.getStockup().getStockupDate());
// distributionDeliveryListEntity.setLoadingTeamType(stockup.getLoadAndUnload());
distributionDeliveryListEntity.setCustomersNumber(reservationIds.split(",").length);
distributionDeliveryListEntity.setOrderNumber(orderNum.get());
distributionDeliveryListEntity.setType(ServiceConstant.DELIVERY_TYPE_CUSTOMER);
@ -859,10 +870,17 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//根据门店进行分组
Map<String, List<DistributionStockArticleDTO>> storeClient = stockArticle.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getStoreName));
List<DistributionStockArticleDTO> distributionStockArticleDTOS = storeClient.get("");
Map<String, List<DistributionStockArticleDTO>> mallClient = distributionStockArticleDTOS.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getMallName));
//3、维护订单和客户
storeClient.forEach((k,v)->mallClient.merge(k,v,(v1,v2)->v2));
//统计客户数
Map<String, List<DistributionStockArticleDTO>> mallClient = null;
if (!Func.isEmpty(distributionStockArticleDTOS)){
mallClient = distributionStockArticleDTOS.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getMallName));
//3、维护订单和客户
Map<String, List<DistributionStockArticleDTO>> finalMallClient = mallClient;
storeClient.forEach((k, v)-> finalMallClient.merge(k,v,(v1, v2)->v2));
}else {
mallClient = storeClient;
}
//统计客户数.
AtomicInteger clientNum = new AtomicInteger();
////统计包件总数
AtomicInteger packageTotal = new AtomicInteger();
@ -902,6 +920,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
orderTotal.getAndIncrement();
//TODO 这里还需要对库存品进行筛选
DistributionStockArticleEntity stockArticleEntity = Func.copy(a, DistributionStockArticleEntity.class);
if (stockArticleEntity.getMallId()==-1){
stockArticleEntity.setMallId(null);
}
if (stockArticleEntity.getStoreId()==-1){
stockArticleEntity.setStoreId(null);
}
//维护订单数据,订单状态直接变更未待配送
stockArticleEntity.setOrderStatus(ServiceConstant.ORDER_STATE_WAIT_DELIVERY);
distributionStockArticleService.updateById(stockArticleEntity);
@ -920,7 +944,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
// o.lambda().eq(DistributionParcelListEntity::getStockArticleId, stockArticleEntity.getId());
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(o);
parcelListEntityList.forEach(p -> {
packageCount.getAndIncrement();
packageCount.getAndAdd(p.getQuantity());
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
reservationPackageEntity.setStockArticleId(stockArticleEntity.getId());
@ -931,7 +955,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
} else {
//订单选择了指定包件进行配送
packageList.forEach(p -> {
packageCount.getAndIncrement();
packageCount.getAndAdd(p.getQuantity());
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
reservationPackageEntity.setPacketBarCode(p.getPacketBarCode());

Loading…
Cancel
Save