|
|
@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
@@ -77,7 +78,7 @@ public class UnloadingWeighHandler extends AbstractWaybillOrderHandler<WaybillOr
|
|
|
* @param param
|
|
|
*/
|
|
|
private void firstWeighbridge(WaybillOrderUnloadingWeighParam param, KwtWaybillOrder waybillOrder, KwtWaybillOrderTicket takeTicket) {
|
|
|
- if (param.getGrossAmount() == null) {
|
|
|
+ if (param.getWeighAmount() == null) {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "毛重不能为空!");
|
|
|
}
|
|
|
// 校验运单
|
|
|
@@ -101,7 +102,7 @@ public class UnloadingWeighHandler extends AbstractWaybillOrderHandler<WaybillOr
|
|
|
*/
|
|
|
private void updateWaybillTicketGrossAmount(WaybillOrderUnloadingWeighParam param, KwtWaybillOrderTicket takeTicket) {
|
|
|
//填充卸货单毛重
|
|
|
- takeTicket.setGrossAmount(param.getGrossAmount());
|
|
|
+ takeTicket.setGrossAmount(param.getWeighAmount());
|
|
|
waybillOrderTicketRepository.updateById(takeTicket);
|
|
|
}
|
|
|
|
|
|
@@ -160,7 +161,7 @@ public class UnloadingWeighHandler extends AbstractWaybillOrderHandler<WaybillOr
|
|
|
* @param param
|
|
|
*/
|
|
|
private void laterWeighbridge(WaybillOrderUnloadingWeighParam param, KwtWaybillOrder waybillOrder, KwtWaybillOrderTicket takeTicket) {
|
|
|
- if (StringUtils.isBlank(param.getTareAmount())) {
|
|
|
+ if (StringUtils.isBlank(param.getWeighAmount())) {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "皮重不能为空!");
|
|
|
}
|
|
|
|
|
|
@@ -181,7 +182,7 @@ public class UnloadingWeighHandler extends AbstractWaybillOrderHandler<WaybillOr
|
|
|
*/
|
|
|
private BigDecimal updateTareAmount(WaybillOrderUnloadingWeighParam param, KwtWaybillOrderTicket takeTicket) {
|
|
|
//皮重
|
|
|
- BigDecimal tareAmount = param.getTareAmount();
|
|
|
+ BigDecimal tareAmount = param.getWeighAmount();
|
|
|
//毛重
|
|
|
BigDecimal grossAmount = takeTicket.getGrossAmount();
|
|
|
//卸货净重
|
|
|
@@ -205,7 +206,7 @@ public class UnloadingWeighHandler extends AbstractWaybillOrderHandler<WaybillOr
|
|
|
subtask.setUnloadAmount(unloadAmount);
|
|
|
subtask.setUnloadTime(new Date());
|
|
|
waybillOrderSubtaskRepository.updateById(subtask);
|
|
|
- log.info("物流运单离场过磅成功!运单ID: {}, 皮重: {}, 卸货货净重: {}", param.getWaybillOrderId(), param.getTareAmount(), unloadAmount);
|
|
|
+ log.info("物流运单离场过磅成功!运单ID: {}, 皮重: {}, 卸货净重: {}", param.getWaybillOrderId(), param.getWeighAmount(), unloadAmount);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -239,6 +240,40 @@ public class UnloadingWeighHandler extends AbstractWaybillOrderHandler<WaybillOr
|
|
|
|
|
|
@Override
|
|
|
protected String getRemark(WaybillOrderUnloadingWeighParam param, KwtWaybillOrder waybillOrder) {
|
|
|
- return "车辆[" + waybillOrder.getTruckNo() + "]已到达卸货点[" + param.getWeighbridgeName() + "]称重[" + param.getGrossAmount() + "吨]";
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重写 createNodeTrace,生成两条轨迹记录
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ protected void createNodeTrace(WaybillOrderUnloadingWeighParam param, KwtWaybillOrder waybillOrder) {
|
|
|
+ List<KwtWaybillOrderWeighbridge> weighbridges = waybillOrderWeighbridgeRepository
|
|
|
+ .queryWaybillOrderWeighbridgeByWOrderId(waybillOrder.getId(), WeighbridgeTypeEnum.UNLOADING.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 grossAmount = Objects.isNull(param.getWeighAmount()) ? "0.00" : param.getWeighAmount().setScale(2, RoundingMode.HALF_UP).toPlainString();
|
|
|
+ node2.setRemark("[" + param.getWeighbridgeName() + "]称重[" + grossAmount + "吨]");
|
|
|
+ node2.setCreateTime(fiveSecondsLater);
|
|
|
+ waybillOrderNodeRepository.save(node2);
|
|
|
+ log.info("记录【卸货首次过磅称重】节点轨迹成功,节点ID:{}", node2.getId());
|
|
|
+ } else {
|
|
|
+ // 第一条:称重完成
|
|
|
+ KwtWaybillOrderNode node1 = getWaybillOrderNode(param, waybillOrder);
|
|
|
+ //过磅次数
|
|
|
+ String tareAmount = Objects.isNull(param.getWeighAmount()) ? "0.00" : param.getWeighAmount().setScale(2, RoundingMode.HALF_UP).toPlainString();
|
|
|
+ node1.setRemark("[" + param.getWeighbridgeName() + "]称重[" + tareAmount + "吨]");
|
|
|
+ waybillOrderNodeRepository.save(node1);
|
|
|
+ log.info("记录【卸货过磅称重】节点轨迹成功,节点ID:{}", node1.getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|