提交 9c2f86aa authored 作者: 艾庆国's avatar 艾庆国

线路预警

上级 65f189f8
...@@ -179,6 +179,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -179,6 +179,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList); List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList);
BigDecimal sumTakeWeightByOrderGoodsNo(String orderGoodsNo);
BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo); BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo);
BigDecimal sumUnloadWeightByOrderGoodsNo(String orderGoodsNo); BigDecimal sumUnloadWeightByOrderGoodsNo(String orderGoodsNo);
......
...@@ -569,6 +569,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -569,6 +569,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
} }
@Override
public BigDecimal sumTakeWeightByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.sumTakeWeightByOrderGoodsNo(orderGoodsNo);
}
@Override @Override
public BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo) { public BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.sumLoadWeightByOrderGoodsNo(orderGoodsNo); return baseMapper.sumLoadWeightByOrderGoodsNo(orderGoodsNo);
......
...@@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; ...@@ -5,6 +5,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Getter @Getter
...@@ -15,7 +16,7 @@ public class LineWarnCommonInfoDTO { ...@@ -15,7 +16,7 @@ public class LineWarnCommonInfoDTO {
String orderGoodsNo; //货单编号 String orderGoodsNo; //货单编号
private int taskCount; //任务数量 private BigDecimal taskWeight; //任务数量
private int loadTimeAvg; //平均装车时间(min) private int loadTimeAvg; //平均装车时间(min)
private int unloadTimeAvg; //平均卸车时间(min) private int unloadTimeAvg; //平均卸车时间(min)
......
...@@ -116,6 +116,9 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> { ...@@ -116,6 +116,9 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
Integer sendSystemAddressId, Integer receiveSystemAddressId, Integer sendSystemAddressId, Integer receiveSystemAddressId,
String beginTime); String beginTime);
@Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(10,20,30,40,50,60,70,80,90,100)")
BigDecimal sumTakeWeightByOrderGoodsNo(String orderGoodsNo);
@Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)") @Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)")
BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo); BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo);
......
package com.clx.performance.service.impl.linewarn; package com.clx.performance.service.impl.linewarn;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.linewarn.LineWarnConfigDao; import com.clx.performance.dao.linewarn.LineWarnConfigDao;
import com.clx.performance.dao.linewarn.LineWarnInfoDao; import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO; import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum; import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.linewarn.LineWarnInfoEnum; import com.clx.performance.enums.linewarn.LineWarnInfoEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
...@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service; ...@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -30,6 +33,8 @@ public class LineWarnLoadWarnServiceImpl implements LineWarnLoadWarnService { ...@@ -30,6 +33,8 @@ public class LineWarnLoadWarnServiceImpl implements LineWarnLoadWarnService {
private LineWarnInfoDao lineWarnInfoDao; private LineWarnInfoDao lineWarnInfoDao;
@Autowired @Autowired
private LineWarnCommonService lineWarnCommonService; private LineWarnCommonService lineWarnCommonService;
@Autowired
private OrderChildDao orderChildDao;
@Override @Override
public void loadWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) { public void loadWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) {
...@@ -42,9 +47,15 @@ public class LineWarnLoadWarnServiceImpl implements LineWarnLoadWarnService { ...@@ -42,9 +47,15 @@ public class LineWarnLoadWarnServiceImpl implements LineWarnLoadWarnService {
int needTime = unloadTimeAvg+arriveReceiveExpectTime; int needTime = unloadTimeAvg+arriveReceiveExpectTime;
// 接单最长时间 // 接单最长时间
long difTime = totalTime - needTime; long difTime = totalTime - needTime;
// 任务量
BigDecimal taskWeight = lineWarnCommonInfo.getTaskWeight();
// 任务完成率 // 任务完成率
BigDecimal taskCompleteRatio = BigDecimal.ZERO; BigDecimal taskCompleteRatio = BigDecimal.ZERO;
BigDecimal weight = orderChildDao.sumLoadWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo());
if (weight != null){
taskCompleteRatio = weight.divide(taskWeight, 4, BigDecimal.ROUND_UP).movePointRight(2);
}
List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao
.listByWarnType(LineWarnConfigEnum.WarnType.LOAD.getCode()); .listByWarnType(LineWarnConfigEnum.WarnType.LOAD.getCode());
......
...@@ -113,7 +113,7 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService { ...@@ -113,7 +113,7 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
lineWarnCommonInfo.setPendingOrderTime(lineWarnOrderGoods.getPendingOrderTime()); lineWarnCommonInfo.setPendingOrderTime(lineWarnOrderGoods.getPendingOrderTime());
lineWarnCommonInfo.setArriveReceiveExpectTime(lineWarnOrderGoods.getArriveReceiveExpectTime()); lineWarnCommonInfo.setArriveReceiveExpectTime(lineWarnOrderGoods.getArriveReceiveExpectTime());
lineWarnCommonInfo.setTaskCount(orderGoods.getNeedTruckNum()); lineWarnCommonInfo.setTaskWeight(orderGoods.getExtractWeight());
// 装卸车时间 // 装卸车时间
Integer loadTimeAvg = orderChildDao.loadTimeAvg(orderGoods.getSendAddressId(), orderGoods.getReceiveAddressId(), Integer loadTimeAvg = orderChildDao.loadTimeAvg(orderGoods.getSendAddressId(), orderGoods.getReceiveAddressId(),
orderGoods.getSendSystemAddressId(), orderGoods.getReceiveSystemAddressId(), orderGoods.getSendSystemAddressId(), orderGoods.getReceiveSystemAddressId(),
......
package com.clx.performance.service.impl.linewarn; package com.clx.performance.service.impl.linewarn;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.linewarn.LineWarnConfigDao; import com.clx.performance.dao.linewarn.LineWarnConfigDao;
import com.clx.performance.dao.linewarn.LineWarnInfoDao; import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO; import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum; import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.linewarn.LineWarnInfoEnum; import com.clx.performance.enums.linewarn.LineWarnInfoEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
...@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service; ...@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -31,6 +34,8 @@ public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService { ...@@ -31,6 +34,8 @@ public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService {
private LineWarnInfoDao lineWarnInfoDao; private LineWarnInfoDao lineWarnInfoDao;
@Autowired @Autowired
private LineWarnCommonService lineWarnCommonService; private LineWarnCommonService lineWarnCommonService;
@Autowired
private OrderChildDao orderChildDao;
@Override @Override
public void takeWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) { public void takeWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) {
...@@ -44,9 +49,15 @@ public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService { ...@@ -44,9 +49,15 @@ public class LineWarnTakeWarnServiceImpl implements LineWarnTakeWarnService {
int needTime = DEFAULT_TIME+loadTimeAvg+unloadTimeAvg+arriveReceiveExpectTime; int needTime = DEFAULT_TIME+loadTimeAvg+unloadTimeAvg+arriveReceiveExpectTime;
// 接单最长时间 // 接单最长时间
long difTime = totalTime - needTime; long difTime = totalTime - needTime;
// 任务量
BigDecimal taskWeight = lineWarnCommonInfo.getTaskWeight();
// 任务完成率 // 任务完成率
BigDecimal taskCompleteRatio = BigDecimal.ZERO; BigDecimal taskCompleteRatio = BigDecimal.ZERO;
BigDecimal weight = orderChildDao.sumTakeWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo());
if (weight != null){
taskCompleteRatio = weight.divide(taskWeight, 4, BigDecimal.ROUND_UP).movePointRight(2);
}
List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao
.listByWarnType(LineWarnConfigEnum.WarnType.TAKE.getCode()); .listByWarnType(LineWarnConfigEnum.WarnType.TAKE.getCode());
......
package com.clx.performance.service.impl.linewarn; package com.clx.performance.service.impl.linewarn;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.linewarn.LineWarnConfigDao; import com.clx.performance.dao.linewarn.LineWarnConfigDao;
import com.clx.performance.dao.linewarn.LineWarnInfoDao; import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO; import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
...@@ -30,6 +31,8 @@ public class LineWarnUnloadServiceImpl implements LineWarnUnloadWarnService { ...@@ -30,6 +31,8 @@ public class LineWarnUnloadServiceImpl implements LineWarnUnloadWarnService {
private LineWarnInfoDao lineWarnInfoDao; private LineWarnInfoDao lineWarnInfoDao;
@Autowired @Autowired
private LineWarnCommonService lineWarnCommonService; private LineWarnCommonService lineWarnCommonService;
@Autowired
private OrderChildDao orderChildDao;
@Override @Override
public void unloadWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) { public void unloadWarn(OrderGoods orderGoods, LineWarnCommonInfoDTO lineWarnCommonInfo) {
...@@ -39,9 +42,15 @@ public class LineWarnUnloadServiceImpl implements LineWarnUnloadWarnService { ...@@ -39,9 +42,15 @@ public class LineWarnUnloadServiceImpl implements LineWarnUnloadWarnService {
int needTime = 0; int needTime = 0;
// 接单最长时间 // 接单最长时间
long difTime = totalTime - needTime; long difTime = totalTime - needTime;
// 任务量
BigDecimal taskWeight = lineWarnCommonInfo.getTaskWeight();
// 任务完成率 // 任务完成率
BigDecimal taskCompleteRatio = BigDecimal.ZERO; BigDecimal taskCompleteRatio = BigDecimal.ZERO;
BigDecimal weight = orderChildDao.sumTakeWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo());
if (weight != null){
taskCompleteRatio = weight.divide(taskWeight, 4, BigDecimal.ROUND_UP).movePointRight(2);
}
List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao List<LineWarnConfig> lineWarnConfigList = lineWarnConfigDao
.listByWarnType(LineWarnConfigEnum.WarnType.UNLOAD.getCode()); .listByWarnType(LineWarnConfigEnum.WarnType.UNLOAD.getCode());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论