|
|
|
@ -15,6 +15,7 @@ import org.springblade.core.tool.utils.Func;
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.math.MathContext; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
@ -319,70 +320,73 @@ public class WarehouseIndexServiceImpl implements IWarehouseIndexService {
|
|
|
|
|
IndexSignforDataVO indexSignforDayDataVO = new IndexSignforDataVO(); |
|
|
|
|
indexSignforDayDataVO.setType(1); |
|
|
|
|
//查询当天签收数据
|
|
|
|
|
Integer daySignforNum = warehouseIndexMapper.findSignforDataByDay(indexDTO); |
|
|
|
|
String daySignforNum = warehouseIndexMapper.findSignforDataByDay(indexDTO); |
|
|
|
|
indexSignforDayDataVO.setSignNum(daySignforNum); |
|
|
|
|
//查询当天未签收件数
|
|
|
|
|
Integer dayUnSignforNum = warehouseIndexMapper.findUnSignforDataByDay(indexDTO); |
|
|
|
|
String dayUnSignforNum = warehouseIndexMapper.findUnSignforDataByDay(indexDTO); |
|
|
|
|
indexSignforDayDataVO.setUnSignNum(dayUnSignforNum); |
|
|
|
|
//计算签收率
|
|
|
|
|
if (daySignforNum > 0 && (daySignforNum + dayUnSignforNum) > 0) { |
|
|
|
|
Double daySignforScale = (double) (daySignforNum / (daySignforNum + dayUnSignforNum) * 100); |
|
|
|
|
indexSignforDayDataVO.setSignScale(daySignforScale); |
|
|
|
|
} else { |
|
|
|
|
indexSignforDayDataVO.setSignScale(0.00); |
|
|
|
|
if (!"0".equals(daySignforNum) && !"0".equals(dayUnSignforNum) ) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(daySignforNum); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(dayUnSignforNum); |
|
|
|
|
BigDecimal divide = bd1.divide(bd1.add(bd2),4,BigDecimal.ROUND_HALF_EVEN); |
|
|
|
|
String signScale = divide.toString(); |
|
|
|
|
indexSignforDayDataVO.setSignScale(signScale); |
|
|
|
|
} |
|
|
|
|
//查询当天文员复核数
|
|
|
|
|
Integer dayClerkSignforNum = warehouseIndexMapper.findClerkSignforNumByDay(indexDTO); |
|
|
|
|
String dayClerkSignforNum = warehouseIndexMapper.findClerkSignforNumByDay(indexDTO); |
|
|
|
|
indexSignforDayDataVO.setClerkSignNum(dayClerkSignforNum); |
|
|
|
|
//查询当天计划数
|
|
|
|
|
Integer dayPlanByday = warehouseIndexMapper.findPlanNumByDay(indexDTO); |
|
|
|
|
String dayPlanByday = warehouseIndexMapper.findPlanNumByDay(indexDTO); |
|
|
|
|
//计算文员签收率
|
|
|
|
|
if (dayClerkSignforNum > 0 && (dayPlanByday + dayClerkSignforNum) > 0) { |
|
|
|
|
Double dayClerkSignforScale = (double) (dayClerkSignforNum / (dayPlanByday + dayClerkSignforNum)); |
|
|
|
|
indexSignforDayDataVO.setClerkSignforScale(dayClerkSignforScale); |
|
|
|
|
} else { |
|
|
|
|
indexSignforDayDataVO.setClerkSignforScale(0.00); |
|
|
|
|
|
|
|
|
|
if (!"0".equals(dayClerkSignforNum) && !"0".equals(dayPlanByday)) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(dayClerkSignforNum); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(dayPlanByday); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),4,BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexSignforDayDataVO.setClerkSignforScale(signScale); |
|
|
|
|
} |
|
|
|
|
//文员超时复核数
|
|
|
|
|
Integer dayClerkOverTimeSignfoNum = warehouseIndexMapper.findClerkOverTimeNumByDay(indexDTO); |
|
|
|
|
String dayClerkOverTimeSignfoNum = warehouseIndexMapper.findClerkOverTimeNumByDay(indexDTO); |
|
|
|
|
indexSignforDayDataVO.setClerkOverTimeSignfoNum(dayClerkOverTimeSignfoNum); |
|
|
|
|
indexSignforDayDataVO.setClerkSignNum(dayClerkSignforNum); |
|
|
|
|
list.add(indexSignforDayDataVO); |
|
|
|
|
IndexSignforDataVO indexSignforMonthDataVO = new IndexSignforDataVO(); |
|
|
|
|
indexSignforMonthDataVO.setType(2); |
|
|
|
|
//查询当月签收数据
|
|
|
|
|
Integer monthSignforNum = warehouseIndexMapper.findSignforDataByMonth(indexDTO); |
|
|
|
|
String monthSignforNum = warehouseIndexMapper.findSignforDataByMonth(indexDTO); |
|
|
|
|
indexSignforMonthDataVO.setSignNum(monthSignforNum); |
|
|
|
|
//查询当月未签收数据
|
|
|
|
|
Integer monthUnSignforNum = warehouseIndexMapper.findUnSignforDataByMonth(indexDTO); |
|
|
|
|
String monthUnSignforNum = warehouseIndexMapper.findUnSignforDataByMonth(indexDTO); |
|
|
|
|
indexSignforMonthDataVO.setUnSignNum(monthUnSignforNum); |
|
|
|
|
//计算签收率
|
|
|
|
|
if (monthSignforNum > 0 && (monthUnSignforNum + monthSignforNum) > 0) { |
|
|
|
|
Double monthSignforScale = (double) (monthSignforNum / (monthUnSignforNum + monthSignforNum)); |
|
|
|
|
indexSignforMonthDataVO.setSignScale(monthSignforScale); |
|
|
|
|
} else { |
|
|
|
|
indexSignforMonthDataVO.setSignScale(0.00); |
|
|
|
|
if (!"0".equals(monthSignforNum) &&!"0".equals(monthUnSignforNum)) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(monthSignforNum); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(monthUnSignforNum); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),4, BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexSignforMonthDataVO.setSignScale(signScale); |
|
|
|
|
} |
|
|
|
|
//查询当月文员复核数
|
|
|
|
|
Integer monthClerkSignforNum = warehouseIndexMapper.findClerkSignforNumByMonth(indexDTO); |
|
|
|
|
String monthClerkSignforNum = warehouseIndexMapper.findClerkSignforNumByMonth(indexDTO); |
|
|
|
|
indexSignforMonthDataVO.setClerkSignNum(monthClerkSignforNum); |
|
|
|
|
Integer monthPlanByday = warehouseIndexMapper.findPlanNumByMonth(indexDTO); |
|
|
|
|
if (monthClerkSignforNum > 0 && (monthPlanByday + monthClerkSignforNum) > 0) { |
|
|
|
|
Double monthClerkSignforScale = (double) (monthClerkSignforNum / (monthPlanByday + monthClerkSignforNum)); |
|
|
|
|
indexSignforMonthDataVO.setClerkSignforScale(monthClerkSignforScale); |
|
|
|
|
} else { |
|
|
|
|
indexSignforMonthDataVO.setClerkSignforScale(0.00); |
|
|
|
|
String monthPlan = warehouseIndexMapper.findPlanNumByMonth(indexDTO); |
|
|
|
|
if (!"0".equals(monthClerkSignforNum) &&!"0".equals(monthPlan)) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(monthClerkSignforNum); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(monthPlan); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),4, BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexSignforMonthDataVO.setClerkSignforScale(signScale); |
|
|
|
|
} |
|
|
|
|
//查询当月文员复核
|
|
|
|
|
Integer monthClerkOverTimeSignfoNum = warehouseIndexMapper.findClerkOverTimeNumByMonth(indexDTO); |
|
|
|
|
String monthClerkOverTimeSignfoNum = warehouseIndexMapper.findClerkOverTimeNumByMonth(indexDTO); |
|
|
|
|
indexSignforMonthDataVO.setClerkOverTimeSignfoNum(monthClerkOverTimeSignfoNum); |
|
|
|
|
if (monthClerkOverTimeSignfoNum > 0 && monthPlanByday > 0) { |
|
|
|
|
Double monthClerkOverTimeScale = (double) (monthClerkOverTimeSignfoNum / monthPlanByday); |
|
|
|
|
indexSignforMonthDataVO.setClerkOverTimeScale(monthClerkOverTimeScale); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
indexSignforMonthDataVO.setClerkOverTimeScale(0.00); |
|
|
|
|
if (!"0".equals(monthClerkOverTimeSignfoNum) && !"0".equals(monthPlan)) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(monthClerkOverTimeSignfoNum); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(monthPlan); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),4, BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexSignforMonthDataVO.setClerkOverTimeScale(signScale); |
|
|
|
|
} |
|
|
|
|
list.add(indexSignforMonthDataVO); |
|
|
|
|
|
|
|
|
@ -391,24 +395,25 @@ public class WarehouseIndexServiceImpl implements IWarehouseIndexService {
|
|
|
|
|
IndexSignforDataVO indexBillLadingSignforDayDataVO = new IndexSignforDataVO(); |
|
|
|
|
indexBillLadingSignforDayDataVO.setType(3); |
|
|
|
|
//查询自提签收包件信息
|
|
|
|
|
Integer dayBillLadingSignfor = warehouseIndexMapper.findBillLadingSignforByDay(indexDTO); |
|
|
|
|
String dayBillLadingSignfor = warehouseIndexMapper.findBillLadingSignforByDay(indexDTO); |
|
|
|
|
indexBillLadingSignforDayDataVO.setSignNum(dayBillLadingSignfor); |
|
|
|
|
//查询自提未签收树
|
|
|
|
|
Integer dayBillLadingUnSignfor = warehouseIndexMapper.findBillLadingUnSignforByDay(indexDTO); |
|
|
|
|
String dayBillLadingUnSignfor = warehouseIndexMapper.findBillLadingUnSignforByDay(indexDTO); |
|
|
|
|
indexBillLadingSignforDayDataVO.setUnSignNum(dayBillLadingUnSignfor); |
|
|
|
|
//计算当天的签收率
|
|
|
|
|
if (dayBillLadingSignfor > 0 && (dayBillLadingSignfor + dayBillLadingUnSignfor) > 0) { |
|
|
|
|
Double dayBillLadingSignforScale = (double) (dayBillLadingSignfor / (dayBillLadingSignfor + dayBillLadingUnSignfor)); |
|
|
|
|
indexBillLadingSignforDayDataVO.setClerkSignforScale(dayBillLadingSignforScale); |
|
|
|
|
} else { |
|
|
|
|
indexBillLadingSignforDayDataVO.setClerkSignforScale(0.00); |
|
|
|
|
if (!"0".equals(dayBillLadingSignfor) &&!"0".equals(dayBillLadingUnSignfor) ) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(dayBillLadingSignfor); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(dayBillLadingUnSignfor); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),4, BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexBillLadingSignforDayDataVO.setClerkSignforScale(signScale); |
|
|
|
|
} |
|
|
|
|
//查询当天文员复核数
|
|
|
|
|
Integer dayBillLadingSignforNum = warehouseIndexMapper.findBillLadingSignForNumByDay(indexDTO); |
|
|
|
|
String dayBillLadingSignforNum = warehouseIndexMapper.findBillLadingSignForNumByDay(indexDTO); |
|
|
|
|
indexBillLadingSignforDayDataVO.setClerkSignNum(dayBillLadingSignforNum); |
|
|
|
|
|
|
|
|
|
//查询当天签收超时数
|
|
|
|
|
Integer dayBillLadingverTimeNum = warehouseIndexMapper.findBillLadingOverTimeNumByDay(indexDTO); |
|
|
|
|
String dayBillLadingverTimeNum = warehouseIndexMapper.findBillLadingOverTimeNumByDay(indexDTO); |
|
|
|
|
indexBillLadingSignforDayDataVO.setClerkOverTimeSignfoNum(dayBillLadingverTimeNum); |
|
|
|
|
list.add(indexBillLadingSignforDayDataVO); |
|
|
|
|
|
|
|
|
@ -417,37 +422,37 @@ public class WarehouseIndexServiceImpl implements IWarehouseIndexService {
|
|
|
|
|
indexBillLadingSignforMonthDataVO.setType(4); |
|
|
|
|
|
|
|
|
|
//查询自提当月签收情况
|
|
|
|
|
Integer monthBillLadingSignfor = warehouseIndexMapper.findBillLadingSignforByMonth(indexDTO); |
|
|
|
|
String monthBillLadingSignfor = warehouseIndexMapper.findBillLadingSignforByMonth(indexDTO); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setSignNum(monthBillLadingSignfor); |
|
|
|
|
//查询自提当月未签数量
|
|
|
|
|
Integer monthBillLadingUnSignfor = warehouseIndexMapper.findBillLadingUnSignforByMonth(indexDTO); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setUnSignNum(monthBillLadingSignfor); |
|
|
|
|
String monthBillLadingUnSignfor = warehouseIndexMapper.findBillLadingUnSignforByMonth(indexDTO); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setUnSignNum(monthBillLadingUnSignfor); |
|
|
|
|
//计算当月的签收率
|
|
|
|
|
if (monthBillLadingSignfor > 0 && (monthBillLadingSignfor + monthBillLadingUnSignfor) > 0) { |
|
|
|
|
Double monthBillLadingSignforScale = (double) (monthBillLadingSignfor / (monthBillLadingSignfor + monthBillLadingUnSignfor)); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setSignScale(monthBillLadingSignforScale); |
|
|
|
|
} else { |
|
|
|
|
indexBillLadingSignforMonthDataVO.setSignScale(0.00); |
|
|
|
|
if ( !"0".equals(monthBillLadingSignfor) && !"0".equals(monthBillLadingUnSignfor) ) { |
|
|
|
|
BigDecimal bd1 = new BigDecimal(monthBillLadingSignfor); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(monthBillLadingUnSignfor); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),4, BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setSignScale(signScale); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//查询当月文员签收数
|
|
|
|
|
Integer monthBillLadingSignforNum = warehouseIndexMapper.findBillLadingSignForNumByMonth(indexDTO); |
|
|
|
|
String monthBillLadingSignforNum = warehouseIndexMapper.findBillLadingSignForNumByMonth(indexDTO); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setClerkSignNum(monthBillLadingSignforNum); |
|
|
|
|
//查询当月文员超时签收数
|
|
|
|
|
Integer monthBillLadingOverTimeNum = warehouseIndexMapper.findBillLadingOverTimeNumByDay(indexDTO); |
|
|
|
|
String monthBillLadingOverTimeNum = warehouseIndexMapper.findBillLadingOverTimeNumByDay(indexDTO); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setClerkOverTimeSignfoNum(monthBillLadingOverTimeNum); |
|
|
|
|
//查询当月计划总数
|
|
|
|
|
Integer monthBillLadingPlanNum = warehouseIndexMapper.findBillLadingPlanNumByDay(indexDTO); |
|
|
|
|
if (monthBillLadingOverTimeNum > 0 && monthBillLadingPlanNum > 0) { |
|
|
|
|
String monthBillLadingPlanNum = warehouseIndexMapper.findBillLadingPlanNumByDay(indexDTO); |
|
|
|
|
if (!"0".equals(monthBillLadingOverTimeNum) && !"0".equals(monthBillLadingPlanNum) ) { |
|
|
|
|
//计算当月的超时签收率
|
|
|
|
|
Double monthBillLadingClerkOverTimeSignfoNum = (double) (monthBillLadingOverTimeNum / monthBillLadingPlanNum); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setClerkOverTimeScale(monthBillLadingClerkOverTimeSignfoNum); |
|
|
|
|
} else { |
|
|
|
|
indexBillLadingSignforMonthDataVO.setClerkSignforScale(0.00); |
|
|
|
|
BigDecimal bd1 = new BigDecimal(monthBillLadingOverTimeNum); |
|
|
|
|
BigDecimal bd2 = new BigDecimal(monthBillLadingPlanNum); |
|
|
|
|
BigDecimal multiply = bd1.divide(bd1.add(bd2),1, BigDecimal.ROUND_CEILING); |
|
|
|
|
String signScale = multiply.toString(); |
|
|
|
|
indexBillLadingSignforMonthDataVO.setClerkOverTimeScale(signScale); |
|
|
|
|
} |
|
|
|
|
list.add(indexBillLadingSignforMonthDataVO); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return list; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|