|
|
|
@ -1,8 +1,10 @@
|
|
|
|
|
package com.logpm.report.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
|
import cn.hutool.core.convert.Convert; |
|
|
|
|
import cn.hutool.core.date.DateUnit; |
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
|
import cn.hutool.core.util.NumberUtil; |
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
@ -17,6 +19,7 @@ import com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO;
|
|
|
|
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchTaskVO; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
|
|
import org.springblade.core.excel.util.ExcelUtil; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.mp.support.Condition; |
|
|
|
@ -24,8 +27,11 @@ import org.springblade.core.tool.utils.BeanUtil;
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -64,6 +70,40 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
|
|
|
|
|
} |
|
|
|
|
List<QualityDispatchNumberVO> list = numberMapper.number(page, query); |
|
|
|
|
// 查询异常数
|
|
|
|
|
List<QualityDispatchNumberVO> exceptionList = numberMapper.exceptionNumber(query); |
|
|
|
|
Map<String, Integer> exceptionMap = new HashMap<>(); |
|
|
|
|
if (CollUtil.isNotEmpty(exceptionList)) { |
|
|
|
|
if (StrUtil.isEmpty(query.getDeliveryType())) { |
|
|
|
|
exceptionMap = exceptionList.stream().collect(Collectors.toMap(t -> t.getWarehouseName(), t -> Convert.toInt(t.getExceptionNum()))); |
|
|
|
|
} else { |
|
|
|
|
exceptionMap = exceptionList.stream().collect(Collectors.toMap(t -> t.getWarehouseName() + t.getDeliveryType(), t -> Convert.toInt(t.getExceptionNum()))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (QualityDispatchNumberVO qualityDispatchTaskVO : list) { |
|
|
|
|
String planNum = qualityDispatchTaskVO.getPlanNum(); |
|
|
|
|
qualityDispatchTaskVO.setPlanAccuracy("0%"); |
|
|
|
|
String key = qualityDispatchTaskVO.getWarehouseName(); |
|
|
|
|
if (StrUtil.isNotEmpty(query.getDeliveryType())) { |
|
|
|
|
key = key + qualityDispatchTaskVO.getDeliveryType(); |
|
|
|
|
} |
|
|
|
|
if (exceptionMap.containsKey(key)) { |
|
|
|
|
qualityDispatchTaskVO.setExceptionNum(Convert.toStr(exceptionMap.get(key))); |
|
|
|
|
} else { |
|
|
|
|
qualityDispatchTaskVO.setExceptionNum("0"); |
|
|
|
|
} |
|
|
|
|
String exceptionNum = qualityDispatchTaskVO.getExceptionNum(); |
|
|
|
|
if(StrUtil.isNotEmpty(planNum)){ |
|
|
|
|
// 计算 ((planNum-exceptionNum)/planNum)*100 保留两位小数
|
|
|
|
|
int planNumInt = Convert.toInt(planNum); |
|
|
|
|
if (planNumInt > 0) { |
|
|
|
|
BigDecimal div = NumberUtil.div(NumberUtil.sub(planNum, exceptionNum), new BigDecimal(planNum), 2); |
|
|
|
|
String replace = Convert.toStr(div).replace(".00", ""); |
|
|
|
|
qualityDispatchTaskVO.setPlanAccuracy(replace +"%"); |
|
|
|
|
} else { |
|
|
|
|
qualityDispatchTaskVO.setPlanAccuracy("0%"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return page.setRecords(list); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -90,6 +130,8 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<QualityDispatchNumberVO> list = numberMapper.number(page, query); |
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(query.getDeliveryType())) { |
|
|
|
|
List<QualityDispatchNumberExcelVO> excelVOS = new ArrayList<>(); |
|
|
|
|
if (CollUtil.isNotEmpty(list)) { |
|
|
|
@ -108,6 +150,11 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
|
|
|
|
|
@Override |
|
|
|
|
public IPage<QualityDispatchTaskVO> task(QualityDispatchTaskQuery query) { |
|
|
|
|
IPage<QualityDispatchTaskVO> page = Condition.getPage(query); |
|
|
|
|
List<QualityDispatchTaskVO> list = getQualityDispatchTaskVOS(query, page); |
|
|
|
|
return page.setRecords(list); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private @NotNull List<QualityDispatchTaskVO> getQualityDispatchTaskVOS(QualityDispatchTaskQuery query, IPage<QualityDispatchTaskVO> page) { |
|
|
|
|
if (StrUtil.isEmpty(query.getWarehouseName())) { |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
|
|
|
@ -119,7 +166,26 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
|
|
|
|
|
} |
|
|
|
|
List<QualityDispatchTaskVO> list = numberMapper.task(page, query); |
|
|
|
|
// 查询异常数
|
|
|
|
|
return page.setRecords(list); |
|
|
|
|
List<QualityDispatchTaskVO> exceptionList = numberMapper.exceptionTask(query); |
|
|
|
|
Map<String, Integer> exceptionMap = new HashMap<>(); |
|
|
|
|
Map<String, Integer> exceptionMap1 = new HashMap<>(); |
|
|
|
|
if (CollUtil.isNotEmpty(exceptionList)) { |
|
|
|
|
exceptionMap = exceptionList.stream().collect(Collectors.toMap(QualityDispatchTaskVO::getPlanReservationCode, t -> Convert.toInt(t.getExceptionLoadNum()))); |
|
|
|
|
exceptionMap1 = exceptionList.stream().collect(Collectors.toMap(QualityDispatchTaskVO::getPlanReservationCode, t -> Convert.toInt(t.getExceptionSignNum()))); |
|
|
|
|
} |
|
|
|
|
for (QualityDispatchTaskVO qualityDispatchTaskVO : list) { |
|
|
|
|
if (exceptionMap.containsKey(qualityDispatchTaskVO.getPlanReservationCode())) { |
|
|
|
|
qualityDispatchTaskVO.setExceptionLoadNum(Convert.toStr(exceptionMap.get(qualityDispatchTaskVO.getPlanReservationCode()))); |
|
|
|
|
} else { |
|
|
|
|
qualityDispatchTaskVO.setExceptionLoadNum("0"); |
|
|
|
|
} |
|
|
|
|
if (exceptionMap1.containsKey(qualityDispatchTaskVO.getPlanReservationCode())) { |
|
|
|
|
qualityDispatchTaskVO.setExceptionSignNum(Convert.toStr(exceptionMap1.get(qualityDispatchTaskVO.getPlanReservationCode()))); |
|
|
|
|
} else { |
|
|
|
|
qualityDispatchTaskVO.setExceptionSignNum("0"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return list; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -127,16 +193,7 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
|
|
|
|
|
IPage<QualityDispatchTaskVO> page = Condition.getPage(query); |
|
|
|
|
page.setPages(1); |
|
|
|
|
page.setSize(-1); |
|
|
|
|
if (StrUtil.isEmpty(query.getWarehouseName())) { |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
|
|
|
|
query.setWarehouseName(myCurrentWarehouse.getName()); |
|
|
|
|
} else { |
|
|
|
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
|
|
|
|
query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<QualityDispatchTaskVO> list = numberMapper.task(page, query); |
|
|
|
|
List<QualityDispatchTaskVO> list = getQualityDispatchTaskVOS(query, page); |
|
|
|
|
ExcelUtil.export(response, list, QualityDispatchTaskVO.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|