Browse Source

fix:修复审核的结算单审核爆粗的问题

fix-sign
pref_mail@163.com 4 months ago
parent
commit
20678f555f
  1. 39
      blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/AdvanceDetailDTO.java
  2. 13
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java
  3. 1
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java
  4. 3
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java
  5. 16
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml
  6. 100
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java

39
blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/AdvanceDetailDTO.java

@ -0,0 +1,39 @@
package com.logpm.statistics.dto;
import lombok.Data;
/**
* 预收明细
*/
@Data
public class AdvanceDetailDTO {
/**
* 运单ID
*/
private Long waybillId;
/**
* 运单号
*/
private String waybillNo;
/**
* 订单号
*/
private String orderCode;
/**
* 收入结算品类
*/
private String incomeCategoryName;
/**
* 支出结算品类
*/
private String costCategoryName;
/**
* 数量
*/
private Integer quantity;
}

13
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java

@ -2027,18 +2027,11 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
String dictValue = first.get().getDictKey();
switch (dictValue) {
case "2": // 营业部客服
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (ObjectUtils.isNull(myCurrentWarehouse)) {
throw new ServiceException("请选择仓库!");
}
//TODO 待处理!!
//查询是否必须回复
AftersalesProcessorEntity one = aftersalesProcessorService.getOne(Wrappers.<AftersalesProcessorEntity>query().lambda().
eq(AftersalesProcessorEntity::getWorkOrderId, aftersalesWorkOrderDTO.getId())
.eq(AftersalesProcessorEntity::getBusinessId, myCurrentWarehouse.getId())
.eq(AftersalesProcessorEntity::getBusinessName, myCurrentWarehouse.getName())
.eq(AftersalesProcessorEntity::getTypesOf, ProcessorTypesOfStatusConstant.chulifang.getValue())
);
List<AftersalesProcessorVO> list1 = new ArrayList<>();
@ -2050,12 +2043,6 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
aftersalesWorkOrderVO.setProcessorVOList(list1);
break;
}
} else {
//不存在
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (ObjectUtils.isNull(myCurrentWarehouse)) {
throw new ServiceException("请选择仓库!");
}
}
}
//查询调查数据

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

@ -221,6 +221,7 @@ public class BasicdataWarehouseController extends BladeController {
return R.status(flag);
}
private void checkWarehouseInformation(BasicdataWarehouseEntity warehouseWarehouse) {
// 查询现在数据库已经存在的仓库信息

3
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java

@ -2,6 +2,7 @@ package com.logpm.statistics.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.statistics.dto.AdvanceDetailDTO;
import com.logpm.statistics.dto.MerchantStatisticsDTO;
import com.logpm.statistics.entity.StatisticsOrderInfoEntity;
import com.logpm.statistics.vo.StatisticsOrderInfoExportVO;
@ -45,4 +46,6 @@ public interface StatisticsOrderInfoMapper extends BaseMapper<StatisticsOrderInf
List<Long> findRencilitionOrderIdsByWaybillId(@Param("waybillId") Long waybillId);
void deleteDataByWaybillId(@Param("waybillId") Long waybillId);
List<AdvanceDetailDTO> selectAdvinceDetail(@Param("waybillIds") Set<Long> waybillIds, @Param("orderCodes") Set<String> orderCodes);
}

16
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml

@ -562,6 +562,22 @@
where waybill_id = #{waybillId}
group by reconciliation_order_id
</select>
<select id="selectAdvinceDetail" resultType="com.logpm.statistics.dto.AdvanceDetailDTO">
SELECT waybill_id,waybill_no,order_code,income_category_name,cost_category_name,quantity
from logpm_trunkline_advance_detail
where
waybill_id in
<foreach collection="waybillIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and
order_code in
<foreach collection="orderCodes" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<delete id="deleteDataByWaybillId" >
delete from logpm_statistics_order_info

100
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java

@ -20,6 +20,7 @@ import com.logpm.basicdata.vo.PriceDispatchVO;
import com.logpm.basicdata.vo.PriceWarehouseAdditionalVO;
import com.logpm.basicdata.vo.PriceWarehouseBasicVO;
import com.logpm.basicdata.vo.PriceWarehouseVO;
import com.logpm.statistics.dto.AdvanceDetailDTO;
import com.logpm.statistics.dto.AftersalesOrderDTO;
import com.logpm.statistics.dto.ChangesRecordDTO;
import com.logpm.statistics.dto.MerchantStatisticsDTO;
@ -99,12 +100,16 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl<StatisticsOr
//把records中所有的orderInfoId放入一个集合
List<Long> orderInfoIdList = records.stream().map(StatisticsOrderInfoVO::getOrderInfoId).collect(Collectors.toList());
// 得到运单ID
// 得到运单ID集合
Set<Long> waybillIds = records.stream().map(StatisticsOrderInfoVO::getWaybillId).collect(Collectors.toSet());
// 查询运单明细集合
List<WaybillDetailByWaybillNoVo> waybillDetailByWaybillId = baseMapper.findWaybillDetailByWaybillId(waybillIds);
//得到运单号
Set<String> orderCodeSet = records.stream().map(StatisticsOrderInfoVO::getOrderCode).collect(Collectors.toSet());
// 通过运单号进行分组
Map<Long, List<WaybillDetailByWaybillNoVo>> waybillDetailByWaybillIdMap = waybillDetailByWaybillId.stream().collect(Collectors.groupingBy(WaybillDetailByWaybillNoVo::getWaybillId));
@ -122,10 +127,28 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl<StatisticsOr
orderPackageInfoMap = null;
}
List<AdvanceDetailDTO> advanceDetailDTOS=baseMapper.selectAdvinceDetail(waybillIds, orderCodeSet);
records.forEach(statisticsOrderInfoVO -> {
// Long waybillId = statisticsOrderInfoVO.getWaybillId();
Long waybillId = statisticsOrderInfoVO.getWaybillId();
String orderCode = statisticsOrderInfoVO.getOrderCode();
// 查询站存单上的
List<AdvanceDetailDTO> advanceDetailDTOList = advanceDetailDTOS.stream().
filter(advanceDetailDTO -> advanceDetailDTO.getWaybillId().equals(waybillId) && advanceDetailDTO.getOrderCode().equals(orderCode)).collect(Collectors.toList());
// 对advanceDetailDTOList 按照 incomeCategoryName 进分组 并统计数量
Map<String, List<AdvanceDetailDTO>> collect = advanceDetailDTOList.stream().collect(Collectors.groupingBy(AdvanceDetailDTO::getIncomeCategoryName));
Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId();
if(orderPackageInfoMap!=null){
@ -137,31 +160,82 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl<StatisticsOr
BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO);
if(StringUtil.isNotBlank(statisticsOrderInfoVO.getGoodsName())){
String[] split = statisticsOrderInfoVO.getGoodsName().split(",");
// String[] split = statisticsOrderInfoVO.getGoodsName().split(",");
List<WaybillDetailByWaybillNoVo> waybillDetailByWaybillNoVos = waybillDetailByWaybillIdMap.get(statisticsOrderInfoVO.getWaybillId());
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = new StringBuffer();
StringBuffer sb3 = new StringBuffer();
for (String s : split) {
if(collect.isEmpty()){
Optional<WaybillDetailByWaybillNoVo> first = waybillDetailByWaybillNoVos.stream().filter(waybillDetailByWaybillNoVo -> waybillDetailByWaybillNoVo.getProductName().equals(s)).findFirst();
if(!waybillDetailByWaybillNoVos.isEmpty()){
if(first.isPresent()){
WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo = first.get();
for (WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo : waybillDetailByWaybillNoVos) {
if(!sb3.toString().isEmpty()){
sb3.append(",");
}
sb3.append(waybillDetailByWaybillNoVo.getProductName());
if(!sb.toString().isEmpty()){
sb.append(",");
}
sb.append(waybillDetailByWaybillNoVo.getNum());
if(!sb1.toString().isEmpty()){
sb1.append(",");
}
sb1.append(waybillDetailByWaybillNoVo.getPrice());
if(!sb.toString().isEmpty()){
sb.append(",");
}
sb.append(waybillDetailByWaybillNoVo.getNum());
if(!sb1.toString().isEmpty()){
sb1.append(",");
}
sb1.append(waybillDetailByWaybillNoVo.getPrice());
}
}else{
collect.keySet().forEach(s -> {
if(!sb3.toString().isEmpty()){
sb3.append(",");
}
sb3.append(s);
List<AdvanceDetailDTO> advanceDetailDTOS1 = collect.get(s);
Optional<WaybillDetailByWaybillNoVo> first = waybillDetailByWaybillNoVos.stream().filter(waybillDetailByWaybillNoVo -> waybillDetailByWaybillNoVo.getProductName().equals(s)).findFirst();
if(first.isPresent()){
WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo = first.get();
if(!sb.toString().isEmpty()){
sb.append(",");
}
//统计 advanceDetailDTOS1 这个集合种 quantity 的和值
int sum = advanceDetailDTOS1.stream().mapToInt(AdvanceDetailDTO::getQuantity).sum();
sb.append(sum);
if(!sb1.toString().isEmpty()){
sb1.append(",");
}
sb1.append(waybillDetailByWaybillNoVo.getPrice());
}
});
}
statisticsOrderInfoVO.setGoodsName(sb3.toString());
statisticsOrderInfoVO.setGoodsNum(sb.toString());
statisticsOrderInfoVO.setGoodsPrice(sb1.toString());
}

Loading…
Cancel
Save