Browse Source

增值服务PDA全部配送列表调整、修改收货单位维护ID和Code

dist.1.3.0
汤建军 9 months ago
parent
commit
0f8733eea6
  1. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionAddvalueAppController.java
  2. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java
  3. 28
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  4. 139
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  5. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAddvalueService.java
  6. 555
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionAddvalueAppController.java

@ -2,6 +2,7 @@ package com.logpm.distribution.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.dto.DistributionAddvaluePackageDTO;
import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO;
import com.logpm.distribution.service.impl.DistributionAddvalueServiceImpl;
import com.logpm.distribution.vo.DistributionAddvaluePackageVO;
@ -67,7 +68,7 @@ public class DistributionAddvalueAppController {
@ApiOperationSupport(order = 3)
@ApiOperation(value = "查询该客户下的所有配送包件信息", notes = "DistributionAppDeliveryListDTO")
public R getAllPackageList(@Valid @RequestBody DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageVO> allPackageList = distributionAddvalueService.getAllPackageList(distributionAppAddvalueDTO);
List<DistributionAddvaluePackageDTO> allPackageList = distributionAddvalueService.getAllPackageList(distributionAppAddvalueDTO);
return R.data(200,allPackageList,"成功");
}

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

@ -18,6 +18,7 @@ package com.logpm.distribution.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataClientEntity;
import com.logpm.basicdata.entity.BasicdataClientUserEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataClientClient;
@ -411,7 +412,13 @@ public class DistributionStockArticleController extends BladeController {
newStockArticle.setCustomerTelephone(stockArticleEntity.getCustomerTelephone());
newStockArticle.setCustomerAddress(stockArticleEntity.getCustomerAddress());
} else {
BasicdataClientEntity client = basicdataClientClient.findByName(mallName);
if (Func.isEmpty(client)){
throw new RuntimeException("客户信息错误!!!");
}
newStockArticle.setMallName(mallName);
newStockArticle.setMallId(client.getId());
newStockArticle.setMallCode(client.getClientCode());
newStockArticle.setConsigneeUnit(consigneeUnit);
}
String content = oldStockArticle.compareCustomerInfo(newStockArticle);

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

@ -185,19 +185,19 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
List<DisStockListDetailEntity> selectInventoryListByReservation(@Param("reservationId") Long reservationId);
/**
* 查询客户下的库存品信息
* @param reservationId
* @return
*/
List<DistributionAddvaluePackageVO> selectAppInventoryListByReservation(@Param("reservationId") Long reservationId);
// /**
// * 查询客户下的库存品信息
// * @param reservationId
// * @return
// */
// List<DistributionAddvaluePackageVO> selectAppInventoryListByReservation(@Param("reservationId") Long reservationId);
/**
* 查询客户下的包件信息
* @param reservationId
* @return
*/
List<DistributionAddvaluePackageVO> selectAppPackageListByReservationId(@Param("reservationId")Long reservationId);
// /**
// * 查询客户下的包件信息
// * @param reservationId
// * @return
// */
// List<DistributionAddvaluePackageVO> selectAppPackageListByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询出客户下的库存品订单维度信息
@ -263,8 +263,8 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
*/
List<DistributionParcelNumberDTO> selectZeroPackageListByReservationId(@Param("reservationId")Long reservationId);
//查询零担品类包件信息
List<DistributionAddvaluePackageVO> selectAppZeroPackageListByReservationId(@Param("reservationId")Long reservationId);
// //查询零担品类包件信息
// List<DistributionAddvaluePackageVO> selectAppZeroPackageListByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询商场客户的预约单

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

@ -900,57 +900,58 @@
WHERE
ldr.id = #{reservationId} and ldsld.stock_package_status in ('1','3')
</select>
<select id="selectAppInventoryListByReservation"
resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">
SELECT
ldsld.stock_list_id AS stockArticleId,
ldsld.id AS packageId,
ldsld.stock_package_code AS orderPackageCode,
ldsld.tenant_id AS tenantId,
ldsl.description_goods AS materialName,
ldsld.num AS quantity,
2 conditions,
ldsl.create_user AS createUser,
ldsl.create_dept AS createDept,
ldsl.create_time AS createTime,
ldsl.update_user AS updateUser,
ldsl.update_time AS updateTime,
ldsl.status AS status,
ldsl.is_deleted AS isDeleted,
ldsl.tenant_id AS tenantId,
ldsld.reservation_id AS reservationId
FROM
logpm_distribution_reservation AS ldr
INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldr.id = ldsld.reservation_id
INNER JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldsld.stock_list_id
WHERE
ldr.id = #{reservationId} and ldsld.stock_package_status in ('1','3')
</select>
<select id="selectAppPackageListByReservationId"
resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">
SELECT
ldpl.stock_article_id AS stockArticleId,
ldpl.order_package_code AS orderPackageCode,
ldpl.material_name AS materialName,
ldpl.order_code AS orderCode,
ldpl.quantity AS quantity,
1 AS conditions,
ldpl.create_user AS createUser,
ldpl.create_dept AS createDept,
ldpl.create_time AS createTime,
ldpl.update_user AS updateUser,
ldpl.update_time AS updateTime,
ldpl.status AS status,
ldpl.is_deleted AS isDeleted,
ldpl.tenant_id AS tenantId,
ldrs.reservation_id AS reservationId,
ldpl.id AS packageId
FROM
logpm_distribution_reservation_package AS ldrs
INNER JOIN logpm_distribution_parcel_list AS ldpl ON ldrs.parce_list_id = ldpl.id
WHERE
ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId}
</select>
<!-- <select id="selectAppInventoryListByReservation"-->
<!-- resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">-->
<!-- SELECT-->
<!-- ldsld.stock_list_id AS stockArticleId,-->
<!-- ldsld.id AS packageId,-->
<!-- ldsld.stock_package_code AS orderPackageCode,-->
<!-- ldsld.tenant_id AS tenantId,-->
<!-- ldsl.description_goods AS materialName,-->
<!-- ldsld.num AS quantity,-->
<!-- 2 conditions,-->
<!-- ldsl.create_user AS createUser,-->
<!-- ldsl.create_dept AS createDept,-->
<!-- ldsl.create_time AS createTime,-->
<!-- ldsl.update_user AS updateUser,-->
<!-- ldsl.update_time AS updateTime,-->
<!-- ldsl.status AS status,-->
<!-- ldsl.is_deleted AS isDeleted,-->
<!-- ldsl.tenant_id AS tenantId,-->
<!-- ldsld.reservation_id AS reservationId-->
<!-- FROM-->
<!-- logpm_distribution_reservation AS ldr-->
<!-- INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldr.id = ldsld.reservation_id-->
<!-- INNER JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldsld.stock_list_id-->
<!-- WHERE-->
<!-- ldr.id = #{reservationId} and ldsld.stock_package_status in ('1','3')-->
<!-- </select>-->
<!-- <select id="selectAppPackageListByReservationId"-->
<!-- resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">-->
<!-- SELECT-->
<!-- ldpl.stock_article_id AS stockArticleId,-->
<!-- ldpl.order_package_code AS orderPackageCode,-->
<!-- ldpl.material_name AS materialName,-->
<!-- ldpl.order_code AS orderCode,-->
<!-- ldpl.quantity AS quantity,-->
<!-- 1 AS conditions,-->
<!-- ldpl.create_user AS createUser,-->
<!-- ldpl.create_dept AS createDept,-->
<!-- ldpl.create_time AS createTime,-->
<!-- ldpl.update_user AS updateUser,-->
<!-- ldpl.update_time AS updateTime,-->
<!-- ldpl.status AS status,-->
<!-- ldpl.is_deleted AS isDeleted,-->
<!-- ldpl.tenant_id AS tenantId,-->
<!-- ldrs.reservation_id AS reservationId,-->
<!-- ldpl.id AS packageId-->
<!-- FROM-->
<!-- logpm_distribution_reservation_package AS ldrs-->
<!-- LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrs.parce_list_id = ldpl.id-->
<!-- LEFT JOIN logpm_distribution_reservation AS ldr ON ldrs.reservation_id = ldr.id-->
<!-- WHERE-->
<!-- ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId}-->
<!-- </select>-->
<select id="selectStockListByReservationId"
resultType="com.logpm.distribution.entity.DistributionReservationStocklistEntity">
SELECT
@ -1250,24 +1251,24 @@
ldrzp.reservation_id=#{reservationId} and ldrs.stock_article_status in ('1','3') AND ldrzp.zero_package_status
IN ( '1', '3' )
</select>
<select id="selectAppZeroPackageListByReservationId"
resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">
SELECT
ldrzp.parcel_list_id,
ldrzp.quantity AS reservationNum,
ldrzp.reservation_id AS reservationId,
3 AS conditions,
ldsa.order_code AS orderCode,
ldsa.id AS stockArticleId,
ldpl.id AS packageId
FROM
logpm_distribution_reservation_stockarticle AS ldrs
INNER JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id
LEFT JOIN logpm_distribution_reservation_zero_package AS ldrzp ON ldrs.stock_article_id = ldrzp.stock_article_id
AND ldrs.reservation_id = ldrzp.reservation_id
INNER JOIN logpm_distribution_parcel_list As ldpl ON ldrzp.parcel_list_id = ldpl.id
WHERE ldrs.reservation_id =#{reservationId}
</select>
<!-- <select id="selectAppZeroPackageListByReservationId"-->
<!-- resultType="com.logpm.distribution.vo.DistributionAddvaluePackageVO">-->
<!-- SELECT-->
<!-- ldrzp.parcel_list_id,-->
<!-- ldrzp.quantity AS reservationNum,-->
<!-- ldrzp.reservation_id AS reservationId,-->
<!-- 3 AS conditions,-->
<!-- ldsa.order_code AS orderCode,-->
<!-- ldsa.id AS stockArticleId,-->
<!-- ldpl.id AS packageId-->
<!-- FROM-->
<!-- logpm_distribution_reservation_stockarticle AS ldrs-->
<!-- INNER JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id-->
<!-- LEFT JOIN logpm_distribution_reservation_zero_package AS ldrzp ON ldrs.stock_article_id = ldrzp.stock_article_id-->
<!-- AND ldrs.reservation_id = ldrzp.reservation_id-->
<!-- INNER JOIN logpm_distribution_parcel_list As ldpl ON ldrzp.parcel_list_id = ldpl.id-->
<!-- WHERE ldrs.reservation_id =#{reservationId}-->
<!-- </select>-->
<select id="selectReservationLoadingNum" resultType="com.logpm.distribution.dto.DistributionLoadingNumDTO">
SELECT
IF

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAddvalueService.java

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.logpm.distribution.dto.DistributionAddvalueDTO;
import com.logpm.distribution.dto.DistributionAddvaluePackageDTO;
import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO;
import com.logpm.distribution.entity.DistributionAddvalueEntity;
import com.logpm.distribution.entity.DistributionAddvaluePackageEntity;
@ -90,7 +91,7 @@ public interface IDistributionAddvalueService extends IService<DistributionAddva
* @param distributionAppAddvalueDTO
* @return
*/
List<DistributionAddvaluePackageVO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO);
List<DistributionAddvaluePackageDTO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO);
/**
* 修改增值服务列表

555
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java

@ -68,33 +68,33 @@ import java.util.stream.Collectors;
public class DistributionAddvalueServiceImpl extends BaseServiceImpl<DistributionAddvalueMapper, DistributionAddvalueEntity> implements IDistributionAddvalueService {
@Autowired
private DistributionAddvalueMapper distributionAddvalueMapper;
private DistributionAddvalueMapper distributionAddvalueMapper;
@Autowired
private DistributionReservationMapper distributionReservationMapper;
private DistributionReservationMapper distributionReservationMapper;
@Autowired
private IDistributionStockListService distributionStockListService;
private IDistributionStockListService distributionStockListService;
@Autowired
private DistributionDeliveryListMapper distributionDeliveryListMapper;
private DistributionDeliveryListMapper distributionDeliveryListMapper;
@Autowired
// private IDistributionAddvalueService distributionAddvalueService;
private IDistributionAddvaluePackageService distributionAddvaluePackageService;
private IDistributionAddvaluePackageService distributionAddvaluePackageService;
@Autowired
private IDistributionAddvalueDetailService distributionAddvalueDetailService;
private IDistributionAddvalueDetailService distributionAddvalueDetailService;
@Autowired
private DistributionAddvalueDetailMapper distributionAddvalueDetailMapper;
private DistributionAddvalueDetailMapper distributionAddvalueDetailMapper;
@Autowired
private DistributionAddvaluePackageMapper distributionAddvaluePackageMapper;
private DistributionAddvaluePackageMapper distributionAddvaluePackageMapper;
@Autowired
private IDistributionLoadscanService distributionLoadscanService;
private IDistributionLoadscanService distributionLoadscanService;
@Autowired
private IBasicdataPriceClient basicdataPriceClient;
private IBasicdataPriceClient basicdataPriceClient;
@Autowired
private IBasicdataClientClient basicdataClientClient;
private IBasicdataClientClient basicdataClientClient;
@Autowired
private IBasicdataFactoryCategoryClient basicdataFactoryCategoryClient;
private IBasicdataFactoryCategoryClient basicdataFactoryCategoryClient;
@Autowired
@Lazy
private IDistributionSignforService distributionSignforService;
private IDistributionSignforService distributionSignforService;
@Override
@ -122,107 +122,38 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
@Override
public R scanAddvaluePackage(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
Long reservationId = distributionAppAddvalueDTO.getReservationId();
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(reservationId);
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
if (Func.isEmpty(parcelListEntityList) && Func.isEmpty(detailEntities)) {
//该客户不存在包件信息
return Resp.scanFail("客户信息有误!!!", "客户信息有误");
if (Objects.isNull(distributionAppAddvalueDTO.getReservationId())){
log.error("#####################参数缺失reservationId");
}
List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds();
Integer isManual = distributionAppAddvalueDTO.getIsManual();
List<DistributionParcelListEntity> collect1 = parcelListEntityList.stream().filter(p -> packageListIds.contains(p.getId())).collect(Collectors.toList());
if (collect1.size() == 1) {
return Resp.scanFail("重复扫描", "重复扫描");
List<DistributionAddvaluePackageDTO> allPackageList = this.getAllPackageList(distributionAppAddvalueDTO);
if (allPackageList.isEmpty()) {
log.error("#####################预约计划下无包件信息reservationId:{}",distributionAppAddvalueDTO.getReservationId());
}
List<DisStockListDetailEntity> collect2 = detailEntities.stream().filter(i -> packageListIds.contains(i.getId())).collect(Collectors.toList());
if (collect2.size() == 1) {
return Resp.scanFail("重复扫描", "重复扫描");
if (Objects.isNull(distributionAppAddvalueDTO.getBarcode())){
log.error("#####################参数缺失Barcode");
}
List<DistributionParcelListEntity> packageInfo = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
// DistributionAddvaluePackageEntity distributionAddvaluePackageEntiy = new DistributionAddvaluePackageEntity();
if (Func.isNotEmpty(packageInfo) && packageInfo.size() == 1) {
DistributionParcelListEntity parcelListEntity = packageInfo.get(0);
DistributionAddvaluePackageEntity distributionAddvaluePackageEntiy = Func.copy(parcelListEntity, DistributionAddvaluePackageEntity.class);
assert distributionAddvaluePackageEntiy != null;
distributionAddvaluePackageEntiy.setConditions(1);
distributionAddvaluePackageEntiy.setId(null);
distributionAddvaluePackageEntiy.setQuantity(parcelListEntity.getQuantity());
distributionAddvaluePackageEntiy.setPackageId(parcelListEntity.getId());
distributionAddvaluePackageEntiy.setMaterialName(parcelListEntity.getMaterialName());
distributionAddvaluePackageEntiy.setReservationId(distributionAppAddvalueDTO.getReservationId());
distributionAddvaluePackageEntiy.setStockArticleId(parcelListEntity.getStockArticleId());
distributionAddvaluePackageEntiy.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
distributionAddvaluePackageEntiy.setRecordType("1");
if (isManual.equals(2)) {
distributionAddvaluePackageEntiy.setRecordType("1");
List<DistributionAddvaluePackageDTO> scanList = allPackageList.stream().filter(f -> distributionAppAddvalueDTO.getBarcode().equals(f.getOrderPackageCode())).collect(Collectors.toList());
if (!scanList.isEmpty()) {
//存在
if (scanList.size() == 1){
return R.data(scanList.get(0));
}else {
log.error("增值服务扫描计划内包件错误,同一包件存在多个");
}
//查询包件的结算单位
}
//不存在这里就需要进行系统是否存在该包件进行判断
log.error("增值服务扫描计划内包件错误,不存在此包件");
//判断怎么不存在
return Resp.scanFail("计划内无此包件信息","计划内无此包件信息");
return Res.scanSuccess("扫描成功", "扫描成功", distributionAddvaluePackageEntiy);
} else if (packageInfo.isEmpty()) {
//包件列表不存在,这里查询看库存品是否存在?
List<DisStockListDetailEntity> inventoryInfo = detailEntities.stream().filter(i -> Func.isNotEmpty(i.getStockPackageCode()) && i.getStockPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(inventoryInfo) && inventoryInfo.size() == 1) {
DisStockListDetailEntity disStockListDetailEntity = inventoryInfo.get(0);
DistributionStockListEntity stockListEntity = distributionStockListService.getById(disStockListDetailEntity.getStockListId());
DistributionAddvaluePackageEntity distributionAddvaluePackageEntiy = Func.copy(disStockListDetailEntity, DistributionAddvaluePackageEntity.class);
assert distributionAddvaluePackageEntiy != null;
distributionAddvaluePackageEntiy.setConditions(2);
distributionAddvaluePackageEntiy.setQuantity(disStockListDetailEntity.getNum());
distributionAddvaluePackageEntiy.setPackageId(disStockListDetailEntity.getId());
distributionAddvaluePackageEntiy.setMaterialName(stockListEntity.getDescriptionGoods());
distributionAddvaluePackageEntiy.setReservationId(distributionAppAddvalueDTO.getReservationId());
distributionAddvaluePackageEntiy.setStockArticleId(disStockListDetailEntity.getStockListId());
distributionAddvaluePackageEntiy.setOrderPackageCode(disStockListDetailEntity.getStockPackageCode());
distributionAddvaluePackageEntiy.setRecordType("1");
if (isManual.equals(2)) {
distributionAddvaluePackageEntiy.setRecordType("1");
}
return Res.scanSuccess("扫描成功", "扫描成功", distributionAddvaluePackageEntiy);
} else if (inventoryInfo.size() == 0) {
//该客户下既不存在该包件,也不存在该库存品 ---
//查询是否属于该配送任务
List<DistributionParcelListEntity> parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distributionAppAddvalueDTO.getDeliveryId());
if (Func.isNotEmpty(parcelListEntities)) {
List<DistributionParcelListEntity> collect = parcelListEntities.stream().filter(s -> s.getOrderPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(collect)) {
return Resp.scanFail("扫描失败", "窜货");
}
} else {
//查询是否该配送任务中是否存在该库存品包件信息
List<DisStockListDetailEntity> stockListDetailEntities = distributionDeliveryListMapper.selectInventoryListByDeliveryListId(distributionAppAddvalueDTO.getDeliveryId());
if (Func.isNotEmpty(stockListDetailEntities)) {
List<DisStockListDetailEntity> detailEntityList = stockListDetailEntities.stream().filter(s -> s.getStockPackageCode().equals(distributionAppAddvalueDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(detailEntityList)) {
return Resp.scanFail("扫描失败", "窜货");
}
} else {
return Resp.scanFail("扫描失败", "此码无效");
}
}
} else {
log.error("出现一个客户下重复库存品包件码的情况");
return Resp.scanFail("扫描失败", "窜货");
}
} else {
log.error("出现一个客户下重复包件码的情况");
return Resp.scanFail("扫描失败", "窜货");
}
return null;
}
}
@Override
@Transactional
public R saveAddvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageDTO> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
List<DistributionAddvaluePackageDTO> packageDTOList = packageEntityList.stream().filter(p -> Func.isNotEmpty(p.getQuantity()) && p.getQuantity() > 0).collect(Collectors.toList());
if (Func.isEmpty(packageDTOList)) {
return Resp.scanFail("操作失败", "无可用包件信息");
}
//查询是否重复添加
DistributionAddvalueEntity addvalueEntity = distributionAddvalueMapper.selectOne(Wrappers.<DistributionAddvalueEntity>query().lambda()
.eq(DistributionAddvalueEntity::getAddvalueId, distributionAppAddvalueDTO.getAddvalueType())
@ -257,6 +188,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
} else {
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance());
}
break;
case "3":
if (Func.isEmpty(distributionAppAddvalueDTO.getDistance())) {
@ -265,24 +197,29 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance());
}
break;
case "4":
case "5":
if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) {
return Resp.scanFail("添加失败", "请输入件数");
} else {
distributionAddvalueDetailEntity.setNum(packageEntityList.stream().mapToInt(DistributionAddvaluePackageEntity::getQuantity).sum());
}
break;
case "6":
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
return Resp.scanFail("添加失败", "请输入件数");
} else {
distributionAddvalueDetailEntity.setFee(distributionAppAddvalueDTO.getFee());
}
break;
// case "4":
// case "5":
// if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) {
// return Resp.scanFail("添加失败", "请输入件数");
// } else {
// distributionAddvalueDetailEntity.setNum(packageEntityList.stream().mapToInt(DistributionAddvaluePackageEntity::getQuantity).sum());
// }
// break;
// case "6":
// if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
// return Resp.scanFail("添加失败", "请输入件数");
// } else {
// distributionAddvalueDetailEntity.setFee(distributionAppAddvalueDTO.getFee());
// }
// break;
default:
return Resp.scanFail("添加失败", "服务器正忙");
}
List<DistributionAddvaluePackageDTO> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
List<DistributionAddvaluePackageDTO> packageDTOList = packageEntityList.stream().filter(p -> Func.isNotEmpty(p.getQuantity()) && p.getQuantity() > 0).collect(Collectors.toList());
if (Func.isEmpty(packageDTOList)) {
return Resp.scanFail("操作失败", "无可用包件信息");
}
DistributionAddvalueEntity distributionAddvalueEntity = new DistributionAddvalueEntity();
distributionAddvalueEntity.setAddvalueId(distributionAppAddvalueDTO.getAddvalueType());
distributionAddvalueEntity.setCode(reservationEntity.getReservationCode());
@ -299,96 +236,29 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueDetailService.save(distributionAddvalueDetailEntity);
List<DistributionAddvaluePackageEntity> addvaluePackageEntities = new ArrayList<>();
BigDecimal totalFee = new BigDecimal(BigInteger.ZERO);
packageEntityList.stream().forEach(p -> {
AtomicReference<Integer> totalNum = new AtomicReference<>(new Integer(0));
packageEntityList.forEach(p -> {
if (Func.isEmpty(p.getUnitPrice())){
p.setUnitPrice(BigDecimal.ZERO);
}
p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId());
p.setQuantity(p.getZeroQuantity());
p.setScanUserName(AuthUtil.getNickName());
DistributionAddvaluePackageEntity addvaluePackageEntity = Func.copy(p, DistributionAddvaluePackageEntity.class);
//构建增值服务包件的收入
BigDecimal unitPrice = new BigDecimal(BigInteger.ZERO);
//查询此包件匹配的计划模板
//获取结算单价
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(p.getClientId().toString()).brandId(p.getBrandId().toString()).build());
if (Func.isEmpty(priceDispatchAddClientVOS)) {
//此客户品牌下无单价信息
unitPrice = new BigDecimal(BigInteger.ZERO);
}
switch (p.getConditions()) {
case 1:
//查询订制品结算品类
BasicdataFactoryCategoryEntity entity1 = new BasicdataFactoryCategoryEntity();
entity1.setFirsts(p.getFirsts());
entity1.setSeconds(p.getSecond());
entity1.setThirds(p.getThirdProduct());
entity1.setMaterielName(p.getMaterialName());
entity1.setBrandId(p.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)){
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity1)){
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity1,distributionAppAddvalueDTO);
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean packageFlag = parcelListEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean packageFlag = parcelListEntityList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()).contains(p.getPackageId());
if (!packageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 2:
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)){
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity2)){
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity2,distributionAppAddvalueDTO);
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
// boolean inventoryPackageFlag = detailEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean inventoryPackageFlag = detailEntities.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList()).contains(p.getPackageId());
if (!inventoryPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 3:
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)){
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity3)){
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity3,distributionAppAddvalueDTO);
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getId).collect(Collectors.toList()).contains(p.getPackageId());
if (!zeroPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
}
addvaluePackageEntity.setScanUserName(AuthUtil.getNickName());
addvaluePackageEntity.setUnitPrice(unitPrice);
addvaluePackageEntity.setUnitPrice(p.getUnitPrice());
addvaluePackageEntity.setRecordType("1");
//计算收入
addvaluePackageEntity.setFee(unitPrice.multiply(BigDecimal.valueOf(p.getQuantity())));
addvaluePackageEntity.setFee(p.getUnitPrice().multiply(BigDecimal.valueOf(p.getQuantity())));
addvaluePackageEntities.add(addvaluePackageEntity);
totalFee.add(addvaluePackageEntity.getFee());
totalNum.updateAndGet(v -> v + p.getQuantity());
});
distributionAddvaluePackageService.saveBatch(addvaluePackageEntities);
//最后进行该增值服务项的费用统计
distributionAddvalueDetailService.update(Wrappers.<DistributionAddvalueDetailEntity>update().lambda()
.eq(DistributionAddvalueDetailEntity::getId,distributionAddvalueDetailEntity.getId())
.set(DistributionAddvalueDetailEntity::getFee,totalFee)
.eq(DistributionAddvalueDetailEntity::getId, distributionAddvalueDetailEntity.getId())
.set(DistributionAddvalueDetailEntity::getFee, totalFee)
.set(DistributionAddvalueDetailEntity::getNum, totalNum.get())
);
return Resp.scanSuccess("添加成功", "添加成功");
}
@ -399,7 +269,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
public R savePCAddvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageDTO> packageEntityList = new ArrayList<>();
if (!Func.isEmpty(distributionAppAddvalueDTO.getPackageEntityList())){
if (!Func.isEmpty(distributionAppAddvalueDTO.getPackageEntityList())) {
packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
}
@ -435,24 +305,24 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
} else {
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance());
}
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())){
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
return Resp.scanFail("添加失败", "请输入超区费用");
}else {
} else {
totalFee = totalFee.add(distributionAppAddvalueDTO.getFee());
}
Map<String, Object> addValueDTO = new HashMap<>();
addValueDTO.put("reservationId",distributionAppAddvalueDTO.getReservationId().toString());
addValueDTO.put("reservationId", distributionAppAddvalueDTO.getReservationId().toString());
//超区需要默认当前所有包件
List<DistributionAddvaluePackageDTO> superZoneList = distributionSignforService.checkAddValuePCPackageList(distributionAppAddvalueDTO.getReservationId());
if (!Func.isEmpty(superZoneList)){
if (!Func.isEmpty(superZoneList)) {
packageEntityList = superZoneList;
//进行费用均摊
BigDecimal fee = distributionAppAddvalueDTO.getFee();
if (fee.equals(BigDecimal.ZERO)){
currencyUnitPrice = BigDecimal.ZERO;
}else {
currencyUnitPrice = fee.divide(BigDecimal.valueOf(packageEntityList.size()));
}
//进行费用均摊
BigDecimal fee = distributionAppAddvalueDTO.getFee();
if (fee.equals(BigDecimal.ZERO)) {
currencyUnitPrice = BigDecimal.ZERO;
} else {
currencyUnitPrice = fee.divide(BigDecimal.valueOf(packageEntityList.size()));
}
}
break;
case "3":
@ -463,19 +333,19 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
}
break;
case "6":
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())){
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
return Resp.scanFail("添加失败", "请输入专车费用");
}else {
} else {
totalFee = totalFee.add(distributionAppAddvalueDTO.getFee());
}
List<DistributionAddvaluePackageDTO> specialCarList = distributionSignforService.checkAddValuePCPackageList(distributionAppAddvalueDTO.getReservationId());
if (!Func.isEmpty(specialCarList)){
if (!Func.isEmpty(specialCarList)) {
packageEntityList = specialCarList;
//进行费用均摊
BigDecimal fee = distributionAppAddvalueDTO.getFee();
if (fee.equals(BigDecimal.ZERO)){
if (fee.equals(BigDecimal.ZERO)) {
currencyUnitPrice = BigDecimal.ZERO;
}else {
} else {
currencyUnitPrice = fee.divide(BigDecimal.valueOf(packageEntityList.size()));
}
@ -524,7 +394,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
packageDTOList.stream().forEach(p -> {
BigDecimal unitPrice = null;
if (Func.isEmpty(addvaluePackageEntityMap.get(p.getPackageId()))) {
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())){
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) {
Integer conditions = p.getConditions();
//获取结算单价
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(p.getClientId().toString()).brandId(p.getBrandId().toString()).build());
@ -542,12 +412,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
entity1.setMaterielName(p.getMaterialName());
entity1.setBrandId(p.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)){
if (Func.isEmpty(factoryCategoryEntity1)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity1)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity1)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity1,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity1, distributionAppAddvalueDTO);
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
@ -561,12 +431,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)){
if (Func.isEmpty(factoryCategoryEntity2)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity2)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity2)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity2,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity2, distributionAppAddvalueDTO);
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
// boolean inventoryPackageFlag = detailEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
@ -579,12 +449,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(p.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)){
if (Func.isEmpty(factoryCategoryEntity3)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity3)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity3)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity3,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity3, distributionAppAddvalueDTO);
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
@ -594,7 +464,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
}
break;
}
}else {
} else {
unitPrice = finalCurrencyUnitPrice;
}
p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId());
@ -612,22 +482,22 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
});
if (!addvaluePackageEntities.isEmpty()) {
BigDecimal finalTotalFee = totalFee;
addvaluePackageEntities.forEach(p ->{
addvaluePackageEntities.forEach(p -> {
finalTotalFee.add(p.getFee());
});
distributionAddvalueDetailEntity.setFee(totalFee);
distributionAddvalueDetailService.updateById(distributionAddvalueDetailEntity);
distributionAddvaluePackageService.saveBatch(addvaluePackageEntities);
return Resp.scanSuccess("添加成功", "添加成功");
}else {
} else {
return Resp.scanFail("添加失败", "添加失败");
}
}
private List<DistributionAddvaluePackageDTO> handleAddvaluePackageEntity(List<DistributionAddvaluePackageVO> records) {
List<DistributionAddvaluePackageDTO> packageDTOList= new ArrayList<>();
records.forEach(r->{
List<DistributionAddvaluePackageDTO> packageDTOList = new ArrayList<>();
records.forEach(r -> {
DistributionAddvaluePackageDTO dto = Func.copy(r, DistributionAddvaluePackageDTO.class);
packageDTOList.add(dto);
@ -639,19 +509,19 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
List<PriceDispatchAddClientVO> collect = priceDispatchAddClientVOS.stream().filter(f -> f.getCategoryId().equals(factoryCategoryEntity.getId())).collect(Collectors.toList());
BigDecimal unitPrice = null;
if (!collect.isEmpty()){
if (collect.size() > 1){
log.info("存在多个相同分类的单价CategoryId:{}",factoryCategoryEntity.getId());
if (!collect.isEmpty()) {
if (collect.size() > 1) {
log.info("存在多个相同分类的单价CategoryId:{}", factoryCategoryEntity.getId());
}
PriceDispatchAddClientVO priceDispatchAddClientVO = collect.get(0);
switch (distributionAppAddvalueDTO.getAddvalueType()){
switch (distributionAppAddvalueDTO.getAddvalueType()) {
case "1":
//获取上楼费用
//比对是否超过了楼层
if (priceDispatchAddClientVO.getDispatchStairsCarryingCharge() >= distributionAppAddvalueDTO.getFloolNum()) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}else {
} else {
unitPrice = BigDecimal.valueOf(priceDispatchAddClientVO.getUpstairsDeliveryPrice());
}
break;
@ -672,56 +542,139 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
unitPrice = BigDecimal.valueOf(priceDispatchAddClientVO.getSortPrice());
break;
default:
log.info(">>>>>>>>>>>>>>对应客户未进行单价维护:{}",priceDispatchAddClientVO.getCategoryId());
log.info(">>>>>>>>>>>>>>对应客户未进行单价维护:{}", priceDispatchAddClientVO.getCategoryId());
unitPrice = new BigDecimal(BigInteger.ZERO);
break;
}
}else {
} else {
return BigDecimal.ZERO;
}
return unitPrice;
}
@Override
public List<DistributionAddvaluePackageVO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
public List<DistributionAddvaluePackageDTO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
// List<DistributionAddvaluePackageEntity> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds();
// List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds();
// Long reservationId = distributionAppAddvalueDTO.getReservationId();
//// List<DistributionAddvaluePackageVO> parcelListEntities = distributionReservationMapper.selectAppPackageListByReservationId(reservationId);
//// List<DistributionAddvaluePackageVO> zeroPackageList = distributionReservationMapper.selectAppZeroPackageListByReservationId(reservationId);
//// List<DistributionAddvaluePackageVO> detailEntities = distributionReservationMapper.selectAppInventoryListByReservation(reservationId);
// if (Func.isNotEmpty(zeroPackageList)) {
// zeroPackageList.forEach(zp -> {
// //查询最大输入数量
// DistributionLoadscanEntity loadscanEntities = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionAppAddvalueDTO.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, zp.getPackageId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
// zp.setMaxQuantity(0);
// if (Func.isNotEmpty(loadscanEntities)) {
// zp.setMaxQuantity(loadscanEntities.getReceivedQuantity());
// }
// });
// }
// parcelListEntities.addAll(detailEntities);
// parcelListEntities.addAll(zeroPackageList);
// if (Func.isEmpty(parcelListEntities)) {
// log.error("################该客户下包件信息:{}", parcelListEntities);
// log.error("################该客户下库存品包件信息:{}", detailEntities);
//// return R.fail("服务器正忙....");
// }
// if (Func.isNotEmpty(parcelListEntities)) {
// parcelListEntities.stream().forEach(p -> {
// p.setRecordType("1");
// //进行客户信息完善
//
//
//
// });
// }
// if (Func.isNotEmpty(zeroPackageList)) {
// zeroPackageList.stream().forEach(p -> {
// p.setRecordType("1");
// });
// }
String method = "#####################################DistributionAddvalueServiceImpl.getAllPackageList";
Long reservationId = distributionAppAddvalueDTO.getReservationId();
List<DistributionAddvaluePackageVO> parcelListEntities = distributionReservationMapper.selectAppPackageListByReservationId(reservationId);
List<DistributionAddvaluePackageVO> zeroPackageList = distributionReservationMapper.selectAppZeroPackageListByReservationId(reservationId);
List<DistributionAddvaluePackageVO> detailEntities = distributionReservationMapper.selectAppInventoryListByReservation(reservationId);
if (Func.isNotEmpty(zeroPackageList)) {
zeroPackageList.forEach(zp -> {
//查询最大输入数量
DistributionLoadscanEntity loadscanEntities = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionAppAddvalueDTO.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, zp.getPackageId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
zp.setMaxQuantity(0);
if (Func.isNotEmpty(loadscanEntities)) {
zp.setMaxQuantity(loadscanEntities.getReceivedQuantity());
}
});
}
parcelListEntities.addAll(detailEntities);
parcelListEntities.addAll(zeroPackageList);
if (Func.isEmpty(parcelListEntities)) {
log.error("################该客户下包件信息:{}", parcelListEntities);
log.error("################该客户下库存品包件信息:{}", detailEntities);
// return R.fail("服务器正忙....");
if (Objects.isNull(distributionAppAddvalueDTO.getReservationId())) {
log.error(method + "参数缺失ReservationId");
return null;
}
if (Func.isNotEmpty(parcelListEntities)) {
parcelListEntities.stream().forEach(p -> {
p.setRecordType("1");
//进行客户信息完善
});
}
if (Func.isNotEmpty(zeroPackageList)) {
zeroPackageList.stream().forEach(p -> {
p.setRecordType("1");
List<DistributionAddvaluePackageDTO> superZoneList = distributionSignforService.checkAddValuePCPackageList(reservationId);
if (!superZoneList.isEmpty()) {
//进行单价获取
AtomicReference<BigDecimal> unitPrice = new AtomicReference<>(BigDecimal.ZERO);
superZoneList.forEach(s -> {
Integer conditions = s.getConditions();
//获取结算单价
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(s.getClientId().toString()).brandId(s.getBrandId().toString()).build());
if (Func.isEmpty(priceDispatchAddClientVOS)) {
//此客户品牌下无单价信息
unitPrice.set(BigDecimal.ZERO);
}
switch (conditions) {
case 1:
//查询订制品结算品类
BasicdataFactoryCategoryEntity entity1 = new BasicdataFactoryCategoryEntity();
entity1.setFirsts(s.getFirsts());
entity1.setSeconds(s.getSecond());
entity1.setThirds(s.getThirdProduct());
entity1.setMaterielName(s.getMaterialName());
entity1.setBrandId(s.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)) {
unitPrice.set(BigDecimal.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity1)) {
//获取单价
unitPrice.set(getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity1, distributionAppAddvalueDTO));
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean packageFlag = parcelListEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean packageFlag = parcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()).contains(s.getPackageId());
if (!packageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 2:
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(s.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)) {
unitPrice.set(BigDecimal.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity2)) {
//获取单价
unitPrice.set(getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity2, distributionAppAddvalueDTO));
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
// boolean inventoryPackageFlag = detailEntities.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean inventoryPackageFlag = detailEntities.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList()).contains(s.getPackageId());
if (!inventoryPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
case 3:
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(s.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)) {
unitPrice.set(BigDecimal.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity3)) {
//获取单价
unitPrice.set(getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity3, distributionAppAddvalueDTO));
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));
boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getId).collect(Collectors.toList()).contains(s.getPackageId());
if (!zeroPackageFlag) {
throw new RuntimeException("不属于该客户包件");
}
break;
}
s.setUnitPrice(unitPrice.get());
});
}
return parcelListEntities;
return superZoneList;
}
@Override
@ -908,16 +861,16 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
@Transactional
public R cancelSignAddValuePackage(DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageDTO> packageEntityList = new ArrayList<>();
if (distributionAppAddvalueDTO.getAddvalueType().equals("2") || distributionAppAddvalueDTO.getAddvalueType().equals("6")){
if (distributionAppAddvalueDTO.getAddvalueType().equals("2") || distributionAppAddvalueDTO.getAddvalueType().equals("6")) {
//专车和超区进行全部包件查询
Map<String, Object> addValueDTO = new HashMap<>();
addValueDTO.put("reservationId",distributionAppAddvalueDTO.getReservationId().toString());
addValueDTO.put("reservationId", distributionAppAddvalueDTO.getReservationId().toString());
//超区需要默认当前所有包件
List<DistributionAddvaluePackageDTO> superZoneList = distributionSignforService.checkAddValuePCPackageList(distributionAppAddvalueDTO.getReservationId());
if (!superZoneList.isEmpty()) {
packageEntityList = superZoneList;
}
}else {
} else {
packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
}
if (Func.isEmpty(packageEntityList)) {
@ -925,12 +878,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
}
//查询增值服务详情
DistributionAddvalueDetailEntity distributionAddvalueDetailEntity = distributionAddvalueDetailMapper.selectById(distributionAppAddvalueDTO.getAddvalueDetailId());
if (Func.isEmpty(distributionAddvalueDetailEntity)){
log.error("################查询增值服务详情错误id:{}",distributionAppAddvalueDTO.getAddvalueDetailId());
if (Func.isEmpty(distributionAddvalueDetailEntity)) {
log.error("################查询增值服务详情错误id:{}", distributionAppAddvalueDTO.getAddvalueDetailId());
}
DistributionAddvalueEntity addvalueEntity = this.getById(distributionAddvalueDetailEntity.getAddvalueId());
if (Func.isEmpty(addvalueEntity)){
log.error("################查询增值服务错误id:{}",distributionAddvalueDetailEntity.getAddvalueId());
if (Func.isEmpty(addvalueEntity)) {
log.error("################查询增值服务错误id:{}", distributionAddvalueDetailEntity.getAddvalueId());
}
AtomicReference<BigDecimal> newFee = new AtomicReference<>(BigDecimal.ZERO);
List<Long> packageIds = packageEntityList.stream().map(DistributionAddvaluePackageDTO::getPackageId).collect(Collectors.toList());
@ -944,8 +897,8 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
);
if (!addvaluePackageEntities.isEmpty()) {
List<DistributionAddvaluePackageEntity> entityList = addvaluePackageEntities.stream().filter(f -> packageIds.contains(f.getPackageId())).collect(Collectors.toList());
entityList.forEach(l->{
newFee.set(distributionAddvalueDetailEntity.getFee().subtract(l.getUnitPrice()));
entityList.forEach(l -> {
newFee.set(distributionAddvalueDetailEntity.getFee().subtract(l.getUnitPrice()));
});
}
@ -956,22 +909,22 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueDetailEntity.setNum(distributionAddvalueDetailEntity.getNum() - sum);
distributionAddvalueDetailMapper.updateById(distributionAddvalueDetailEntity);
if (Objects.equals(packageIds.size(),addvaluePackageEntities.size())){
if (Objects.equals(packageIds.size(), addvaluePackageEntities.size())) {
//此增值服务项进行全部取消
//这里就需要对整个增值服务项进行删除
distributionAddvalueDetailMapper.deleteAddvalueDetailById(distributionAppAddvalueDTO.getAddvalueDetailId());
distributionAddvalueMapper.deleteAddvalue(distributionAppAddvalueDTO.getReservationId(), distributionAppAddvalueDTO.getAddvalueType());
}
//查看取消增值服务的保健是否存在该项增值服务中,存在才能继续执行
boolean isExistence = packageIds.stream().allMatch(id -> addvaluePackageEntities.stream().map(DistributionAddvaluePackageEntity::getPackageId).collect(Collectors.toList()).contains(id));
if (isExistence) {
packageIds.forEach(id -> {
distributionAddvaluePackageMapper.deleteAddvaluePackageByDetailId(distributionAppAddvalueDTO.getReservationId(), id, distributionAppAddvalueDTO.getAddvalueDetailId());
});
} else {
log.error("###########该包件不存在增值服务项包件列表中");
return R.fail("取消包件失败,该包件不存在增值服务项列表中");
}
//查看取消增值服务的保健是否存在该项增值服务中,存在才能继续执行
boolean isExistence = packageIds.stream().allMatch(id -> addvaluePackageEntities.stream().map(DistributionAddvaluePackageEntity::getPackageId).collect(Collectors.toList()).contains(id));
if (isExistence) {
packageIds.forEach(id -> {
distributionAddvaluePackageMapper.deleteAddvaluePackageByDetailId(distributionAppAddvalueDTO.getReservationId(), id, distributionAppAddvalueDTO.getAddvalueDetailId());
});
} else {
log.error("###########该包件不存在增值服务项包件列表中");
return R.fail("取消包件失败,该包件不存在增值服务项列表中");
}
return R.success("操作成功");
@ -1048,13 +1001,13 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
increasePackage.forEach(ip -> {
if (Func.isNotEmpty(packageDTOMap.get(ip))) {
//新增包件
BigDecimal unitPrice = null;
BigDecimal unitPrice = null;
//计算包件单价
DistributionAddvaluePackageDTO distributionAddvaluePackageDTO = packageDTOMap.get(ip);
List<PriceDispatchAddClientVO> priceDispatchAddClientVOS = basicdataPriceClient.dispatchAddPrice(BasicdatPriceApiVO.builder().clientId(distributionAddvaluePackageDTO.getClientId().toString()).brandId(distributionAddvaluePackageDTO.getClientId().toString()).build());
//查询价格模板
if (Func.isEmpty(priceDispatchAddClientVOS)){
if (Func.isEmpty(priceDispatchAddClientVOS)) {
unitPrice = BigDecimal.ZERO;
}
DistributionAddvaluePackageDTO dto = packageDTOMap.get(ip);
@ -1068,12 +1021,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
entity1.setMaterielName(dto.getMaterialName());
entity1.setBrandId(dto.getBrandId());
BasicdataFactoryCategoryEntity factoryCategoryEntity1 = basicdataFactoryCategoryClient.findEntityByThreeCategory(entity1);
if (Func.isEmpty(factoryCategoryEntity1)){
if (Func.isEmpty(factoryCategoryEntity1)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity1)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity1)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity1,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity1, distributionAppAddvalueDTO);
}
//判定该包件是否属于该客户
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
@ -1087,12 +1040,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity2 = new BasicdataFactoryCategoryEntity();
entity2.setMaterielName(dto.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity2 = basicdataFactoryCategoryClient.findEntityByMaterielName(entity2);
if (Func.isEmpty(factoryCategoryEntity2)){
if (Func.isEmpty(factoryCategoryEntity2)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity2)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity2)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity2,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity2, distributionAppAddvalueDTO);
}
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionAppAddvalueDTO.getReservationId());
boolean inventoryPackageFlag = detailEntities.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList()).contains(dto.getPackageId());
@ -1104,12 +1057,12 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
BasicdataFactoryCategoryEntity entity3 = new BasicdataFactoryCategoryEntity();
entity3.setMaterielName(dto.getMaterialName());
BasicdataFactoryCategoryEntity factoryCategoryEntity3 = basicdataFactoryCategoryClient.findEntityByCategoryName(entity3);
if (Func.isEmpty(factoryCategoryEntity3)){
if (Func.isEmpty(factoryCategoryEntity3)) {
unitPrice = new BigDecimal(BigInteger.ZERO);
}
if (!Func.isEmpty(priceDispatchAddClientVOS)&&Func.isNotEmpty(factoryCategoryEntity3)){
if (!Func.isEmpty(priceDispatchAddClientVOS) && Func.isNotEmpty(factoryCategoryEntity3)) {
//获取单价
unitPrice = getUnitPrice(priceDispatchAddClientVOS,factoryCategoryEntity3,distributionAppAddvalueDTO);
unitPrice = getUnitPrice(priceDispatchAddClientVOS, factoryCategoryEntity3, distributionAppAddvalueDTO);
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
// boolean zeroPackageFlag = distributionParcelNumberDTOS.stream().allMatch(pack -> !Func.equals(pack.getId(), p.getPackageId()));

Loading…
Cancel
Save