|
|
@@ -293,7 +293,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
|
|
|
KwtForkliftWaybillOrder forklift = forkliftWaybillOrderRepository.queryForkliftWaybillOrderByWOrderId(waybillOrder.getId());
|
|
|
if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.ORDER_TAKING.getCode())) {
|
|
|
- //如果铲车司机未接单,则二次过磅的时候,直接返回,不走其它流程
|
|
|
+ //如果铲车司机已接单,则二次过磅的时候,直接返回,不走其它流程
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -378,67 +378,68 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 重写 createNodeTrace,生成两条轨迹记录
|
|
|
+ * 重写 createNodeTrace,生成轨迹记录
|
|
|
*/
|
|
|
@Override
|
|
|
protected void createNodeTrace(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
|
|
|
List<KwtWaybillOrderWeighbridge> weighbridges = waybillOrderWeighbridgeRepository
|
|
|
.queryWaybillOrderWeighbridgeByWOrderId(waybillOrder.getId(), WeighbridgeTypeEnum.LOADING.getCode());
|
|
|
if (CollectionUtils.isEmpty(weighbridges)) {
|
|
|
- // 第一条:称重完成
|
|
|
- KwtWaybillOrderNode node1 = getWaybillOrderNode(param, waybillOrder);
|
|
|
- node1.setRemark("车辆[" + waybillOrder.getTruckNo() + "]已到达装货点");
|
|
|
- waybillOrderNodeRepository.save(node1);
|
|
|
- log.info("记录【已装货】节点轨迹成功,节点ID:{}", node1.getId());
|
|
|
- // 间隔5秒钟,防止时间相同
|
|
|
- Date fiveSecondsLater = new Date(System.currentTimeMillis() + 5000);
|
|
|
-
|
|
|
- // 第二条:称重信息
|
|
|
- KwtWaybillOrderNode node2 = getWaybillOrderNode(param, waybillOrder);
|
|
|
- String tareAmount = Objects.isNull(param.getWeighAmount()) ? "0.00" : param.getWeighAmount().setScale(2, RoundingMode.HALF_UP).toPlainString();
|
|
|
- node2.setRemark("[" + param.getWeighbridgeName() + "]首次称重[" + tareAmount + "吨]");
|
|
|
- node2.setCreateTime(fiveSecondsLater);
|
|
|
- waybillOrderNodeRepository.save(node2);
|
|
|
- log.info("记录【过磅称重】节点轨迹成功,节点ID:{}", node2.getId());
|
|
|
+ // 首次过磅
|
|
|
+ createArrivedAndFirstWeighNodes(param, waybillOrder);
|
|
|
} else {
|
|
|
- // 第一条:称重完成
|
|
|
- KwtWaybillOrderNode node1 = getWaybillOrderNode(param, waybillOrder);
|
|
|
- //过磅次数
|
|
|
- int size = weighbridges.size() + 1;
|
|
|
- String grossAmount = Objects.isNull(param.getWeighAmount()) ? "0.00" : param.getWeighAmount().setScale(2, RoundingMode.HALF_UP).toPlainString();
|
|
|
- node1.setRemark("第" + size + "次称重,[" + param.getWeighbridgeName() + "]称重[" + grossAmount + "吨]");
|
|
|
- waybillOrderNodeRepository.save(node1);
|
|
|
- log.info("记录【过磅称重】节点轨迹成功,节点ID:{}", node1.getId());
|
|
|
-
|
|
|
- // 间隔5秒钟,防止时间相同
|
|
|
-// Date fiveSecondsLater = new Date(System.currentTimeMillis() + 5000);
|
|
|
-// if (this.targetStatus == null) {
|
|
|
-// throw new BusinessPlatfromException(ErrorCodeEnum.SYSTEM_ERROR, "[离场过磅]是否空载离场数据为空!");
|
|
|
-// }
|
|
|
-// String remark = buildRemark(waybillOrder, param, this.targetStatus);
|
|
|
-// KwtWaybillOrderNode node2 = getWaybillOrderNode(param, waybillOrder);
|
|
|
-// node2.setRemark(remark);
|
|
|
-// node2.setCreateTime(fiveSecondsLater);
|
|
|
-// waybillOrderNodeRepository.save(node2);
|
|
|
-// log.info("记录【多次过磅】节点轨迹成功,节点ID:{}", node2.getId());
|
|
|
+ // 后续过磅
|
|
|
+ createMultipleWeighNode(param, waybillOrder, weighbridges);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 构建节点备注信息
|
|
|
+ * 首次过磅
|
|
|
+ * @param param
|
|
|
+ * @param waybillOrder
|
|
|
*/
|
|
|
- private String buildRemark(KwtWaybillOrder waybillOrder, WaybillOrderCmeIntoWeighParam param, Integer targetStatus) {
|
|
|
- switch (targetStatus) {
|
|
|
- case 1: // 空载离场
|
|
|
- return "司机[" + waybillOrder.getDriverName() + "]空载待离场";
|
|
|
- case 2: // 正常离场
|
|
|
- String grossAmount = Objects.isNull(param.getWeighAmount()) ? "0.00" : param.getWeighAmount().setScale(2, RoundingMode.HALF_UP).toPlainString();
|
|
|
- return "[" + param.getWeighbridgeName() + "]称重[" + grossAmount + "吨]";
|
|
|
- case 3: // 超载离场
|
|
|
- return "司机[" + waybillOrder.getDriverName() + "]已超载,卸货中";
|
|
|
- default:
|
|
|
- return "";
|
|
|
- }
|
|
|
+ private void createArrivedAndFirstWeighNodes(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
|
|
|
+ // 第一条:称重完成
|
|
|
+ KwtWaybillOrderNode node1 = getWaybillOrderNode(param, waybillOrder);
|
|
|
+ node1.setRemark("车辆[" + waybillOrder.getTruckNo() + "]已到达装货点");
|
|
|
+ waybillOrderNodeRepository.save(node1);
|
|
|
+ log.info("记录【已装货】节点轨迹成功,节点ID:{}", node1.getId());
|
|
|
+ // 间隔5秒钟,防止时间相同
|
|
|
+ Date fiveSecondsLater = new Date(System.currentTimeMillis() + 5000);
|
|
|
+
|
|
|
+ // 第二条:称重信息
|
|
|
+ KwtWaybillOrderNode node2 = getWaybillOrderNode(param, waybillOrder);
|
|
|
+ String tareAmount = getWeighAmount(param);
|
|
|
+ node2.setRemark("[" + param.getWeighbridgeName() + "]首次称重[" + tareAmount + "吨]");
|
|
|
+ node2.setCreateTime(fiveSecondsLater);
|
|
|
+ waybillOrderNodeRepository.save(node2);
|
|
|
+ log.info("记录【过磅称重】节点轨迹成功,节点ID:{}", node2.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 后续过磅
|
|
|
+ * @param param
|
|
|
+ * @param waybillOrder
|
|
|
+ * @param weighbridges
|
|
|
+ */
|
|
|
+ private void createMultipleWeighNode(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, List<KwtWaybillOrderWeighbridge> weighbridges) {
|
|
|
+ KwtWaybillOrderNode node = getWaybillOrderNode(param, waybillOrder);
|
|
|
+ //过磅次数
|
|
|
+ int size = weighbridges.size() + 1;
|
|
|
+ String grossAmount = getWeighAmount(param);
|
|
|
+ node.setRemark("第" + size + "次称重,[" + param.getWeighbridgeName() + "]称重[" + grossAmount + "吨]");
|
|
|
+ waybillOrderNodeRepository.save(node);
|
|
|
+ log.info("记录【过磅称重】节点轨迹成功,节点ID:{}", node.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取称重重量
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private static String getWeighAmount(WaybillOrderCmeIntoWeighParam param) {
|
|
|
+ return Objects.isNull(param.getWeighAmount()) ? "0.00" : param.getWeighAmount().setScale(2, RoundingMode.HALF_UP).toPlainString();
|
|
|
}
|
|
|
|
|
|
/**
|