|
@@ -253,7 +253,7 @@ public class CommonService {
|
|
|
* @param appConsignUrl app托运地址
|
|
* @param appConsignUrl app托运地址
|
|
|
* @param pcCarriageUrl PC承运地址
|
|
* @param pcCarriageUrl PC承运地址
|
|
|
* @param appCarriageUrl app承运地址
|
|
* @param appCarriageUrl app承运地址
|
|
|
- * @param type 1代表给托运创建人发 2代表给承运创建人发
|
|
|
|
|
|
|
+ * @param type 1代表给托运创建人发 2代表给承运创建人发
|
|
|
*/
|
|
*/
|
|
|
public void newSendLogisticsOrderToMessage(KwtLogisticsOrderUnit consignUnit, KwtLogisticsOrderUnit carriageUnit,
|
|
public void newSendLogisticsOrderToMessage(KwtLogisticsOrderUnit consignUnit, KwtLogisticsOrderUnit carriageUnit,
|
|
|
String orderNo, Long createBy, Long entId,
|
|
String orderNo, Long createBy, Long entId,
|
|
@@ -269,25 +269,25 @@ public class CommonService {
|
|
|
Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
|
|
Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
map.put("orderNo", orderNo);
|
|
map.put("orderNo", orderNo);
|
|
|
if (flag && createBy.equals(consignUnit.getContactsId())) {
|
|
if (flag && createBy.equals(consignUnit.getContactsId())) {
|
|
|
- sendLogisticsConsignMessage(consignUnit, map, pcConsignUrl, appConsignUrl,consignMessageEnum);
|
|
|
|
|
- sendLogisticsCarriageMessage(carriageUnit, map, pcCarriageUrl, appCarriageUrl,carriageMessageEnum);
|
|
|
|
|
|
|
+ sendLogisticsConsignMessage(consignUnit, map, pcConsignUrl, appConsignUrl, consignMessageEnum);
|
|
|
|
|
+ sendLogisticsCarriageMessage(carriageUnit, map, pcCarriageUrl, appCarriageUrl, carriageMessageEnum);
|
|
|
} else if (flag && createBy.equals(carriageUnit.getContactsId())) {
|
|
} else if (flag && createBy.equals(carriageUnit.getContactsId())) {
|
|
|
- sendLogisticsCarriageMessage(carriageUnit, map, pcCarriageUrl, appCarriageUrl,carriageMessageEnum);
|
|
|
|
|
- sendLogisticsConsignMessage(consignUnit, map, pcConsignUrl, appConsignUrl,consignMessageEnum);
|
|
|
|
|
|
|
+ sendLogisticsCarriageMessage(carriageUnit, map, pcCarriageUrl, appCarriageUrl, carriageMessageEnum);
|
|
|
|
|
+ sendLogisticsConsignMessage(consignUnit, map, pcConsignUrl, appConsignUrl, consignMessageEnum);
|
|
|
} else {
|
|
} else {
|
|
|
- sendLogisticsConsignMessage(consignUnit, map, pcConsignUrl, appConsignUrl,consignMessageEnum);
|
|
|
|
|
- sendLogisticsCarriageMessage(carriageUnit, map, pcCarriageUrl, appCarriageUrl,carriageMessageEnum);
|
|
|
|
|
|
|
+ sendLogisticsConsignMessage(consignUnit, map, pcConsignUrl, appConsignUrl, consignMessageEnum);
|
|
|
|
|
+ sendLogisticsCarriageMessage(carriageUnit, map, pcCarriageUrl, appCarriageUrl, carriageMessageEnum);
|
|
|
if (type.equals("1")) {
|
|
if (type.equals("1")) {
|
|
|
- sendLogisticsCreateByMessage(createBy, entId, map,pcConsignUrl,appConsignUrl,consignMessageEnum);
|
|
|
|
|
|
|
+ sendLogisticsCreateByMessage(createBy, entId, map, pcConsignUrl, appConsignUrl, consignMessageEnum);
|
|
|
} else {
|
|
} else {
|
|
|
- sendLogisticsCreateByMessage(createBy, entId, map, pcCarriageUrl, appCarriageUrl,carriageMessageEnum);
|
|
|
|
|
|
|
+ sendLogisticsCreateByMessage(createBy, entId, map, pcCarriageUrl, appCarriageUrl, carriageMessageEnum);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void sendLogisticsCreateByMessage(Long createBy, Long entId, Map<String, Object> map, String pcUrl, String appUrl,MessageEnum messageEnum) {
|
|
|
|
|
|
|
+ private void sendLogisticsCreateByMessage(Long createBy, Long entId, Map<String, Object> map, String pcUrl, String appUrl, MessageEnum messageEnum) {
|
|
|
UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(createBy);
|
|
UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(createBy);
|
|
|
//给订单创建人发消息
|
|
//给订单创建人发消息
|
|
|
List<UserInfo> userInfos = new ArrayList<>();
|
|
List<UserInfo> userInfos = new ArrayList<>();
|
|
@@ -311,7 +311,7 @@ public class CommonService {
|
|
|
streamBridge.send("sckw-message", JSON.toJSONString(msg));
|
|
streamBridge.send("sckw-message", JSON.toJSONString(msg));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void sendLogisticsCarriageMessage(KwtLogisticsOrderUnit carriageUnit, Map<String, Object> map, String pcUrl, String appUrl,MessageEnum messageEnum) {
|
|
|
|
|
|
|
+ private void sendLogisticsCarriageMessage(KwtLogisticsOrderUnit carriageUnit, Map<String, Object> map, String pcUrl, String appUrl, MessageEnum messageEnum) {
|
|
|
//给业务联系人发消息[承运方]
|
|
//给业务联系人发消息[承运方]
|
|
|
List<UserInfo> userInfoList = new ArrayList<>();
|
|
List<UserInfo> userInfoList = new ArrayList<>();
|
|
|
UserInfo userInfo = new UserInfo();
|
|
UserInfo userInfo = new UserInfo();
|
|
@@ -332,7 +332,7 @@ public class CommonService {
|
|
|
streamBridge.send("sckw-message", JSON.toJSONString(sckwMessage));
|
|
streamBridge.send("sckw-message", JSON.toJSONString(sckwMessage));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void sendLogisticsConsignMessage(KwtLogisticsOrderUnit consignUnit, Map<String, Object> map, String pcUrl, String appUrl,MessageEnum messageEnum) {
|
|
|
|
|
|
|
+ private void sendLogisticsConsignMessage(KwtLogisticsOrderUnit consignUnit, Map<String, Object> map, String pcUrl, String appUrl, MessageEnum messageEnum) {
|
|
|
//给业务联系人发消息[托运方]
|
|
//给业务联系人发消息[托运方]
|
|
|
List<UserInfo> list = new ArrayList<>();
|
|
List<UserInfo> list = new ArrayList<>();
|
|
|
UserInfo userInfo = new UserInfo();
|
|
UserInfo userInfo = new UserInfo();
|
|
@@ -419,7 +419,10 @@ public class CommonService {
|
|
|
sckwMessage.setRequestId(UUIDUtils.get32UUID())
|
|
sckwMessage.setRequestId(UUIDUtils.get32UUID())
|
|
|
.setMessageEnum(MessageEnum.INITIATING_LOGISTICS_CONSIGNMENT)
|
|
.setMessageEnum(MessageEnum.INITIATING_LOGISTICS_CONSIGNMENT)
|
|
|
.setParams(map)
|
|
.setParams(map)
|
|
|
- .setMsgUrls(new HashMap<>(){{put("app",consignLogisticsOrderUrl);put("pc",carriageLogisticsOrderUrl);}})
|
|
|
|
|
|
|
+ .setMsgUrls(new HashMap<>() {{
|
|
|
|
|
+ put("app", consignLogisticsOrderUrl);
|
|
|
|
|
+ put("pc", carriageLogisticsOrderUrl);
|
|
|
|
|
+ }})
|
|
|
.setUserInfos(userInfoList)
|
|
.setUserInfos(userInfoList)
|
|
|
.setCreateBy(LoginUserHolder.getUserId());
|
|
.setCreateBy(LoginUserHolder.getUserId());
|
|
|
log.info("发起物流托运-[贸易订单物流托运确认/承运订单分包托运确认]-[承运方]-业务联系人:{}", JSON.toJSONString(sckwMessage));
|
|
log.info("发起物流托运-[贸易订单物流托运确认/承运订单分包托运确认]-[承运方]-业务联系人:{}", JSON.toJSONString(sckwMessage));
|
|
@@ -435,7 +438,10 @@ public class CommonService {
|
|
|
message.setRequestId(UUIDUtils.get32UUID())
|
|
message.setRequestId(UUIDUtils.get32UUID())
|
|
|
.setMessageEnum(MessageEnum.NEW_CARRIAGE_ORDER)
|
|
.setMessageEnum(MessageEnum.NEW_CARRIAGE_ORDER)
|
|
|
.setParams(map)
|
|
.setParams(map)
|
|
|
- .setMsgUrls(new HashMap<>(){{put("app",consignLogisticsOrderUrl);put("pc",carriageLogisticsOrderUrl);}})
|
|
|
|
|
|
|
+ .setMsgUrls(new HashMap<>() {{
|
|
|
|
|
+ put("app", consignLogisticsOrderUrl);
|
|
|
|
|
+ put("pc", carriageLogisticsOrderUrl);
|
|
|
|
|
+ }})
|
|
|
.setUserInfos(list)
|
|
.setUserInfos(list)
|
|
|
.setCreateBy(LoginUserHolder.getUserId());
|
|
.setCreateBy(LoginUserHolder.getUserId());
|
|
|
log.info("发起物流托运-[贸易订单物流托运确认/承运订单分包托运确认]-[托运方]-业务联系人:{}", JSON.toJSONString(message));
|
|
log.info("发起物流托运-[贸易订单物流托运确认/承运订单分包托运确认]-[托运方]-业务联系人:{}", JSON.toJSONString(message));
|
|
@@ -463,10 +469,10 @@ public class CommonService {
|
|
|
carriageUnit.setContactsId(Long.parseLong(addOrderDTO.getAcceptContactsId()));
|
|
carriageUnit.setContactsId(Long.parseLong(addOrderDTO.getAcceptContactsId()));
|
|
|
carriageUnit.setFirmName(addOrderDTO.getConsignCompany());
|
|
carriageUnit.setFirmName(addOrderDTO.getConsignCompany());
|
|
|
carriageUnit.setTopEntId(acceptMap == null ? null : acceptMap.getId());
|
|
carriageUnit.setTopEntId(acceptMap == null ? null : acceptMap.getId());
|
|
|
- newSendLogisticsOrderToMessage(checkUnit,carriageUnit,lOrderNo,createBy,entId
|
|
|
|
|
- ,messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
|
|
- messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
|
|
- MessageEnum.NEW_LOGISTICS_ORDER,MessageEnum.NEW_CARRIAGE_ORDER,"1"
|
|
|
|
|
|
|
+ newSendLogisticsOrderToMessage(checkUnit, carriageUnit, lOrderNo, createBy, entId
|
|
|
|
|
+ , messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
|
|
+ messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
|
|
+ MessageEnum.NEW_LOGISTICS_ORDER, MessageEnum.NEW_CARRIAGE_ORDER, "1"
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -491,7 +497,10 @@ public class CommonService {
|
|
|
sckwMessage.setRequestId(UUIDUtils.get32UUID())
|
|
sckwMessage.setRequestId(UUIDUtils.get32UUID())
|
|
|
.setMessageEnum(messageEnum)
|
|
.setMessageEnum(messageEnum)
|
|
|
.setParams(map)
|
|
.setParams(map)
|
|
|
- .setMsgUrls(new HashMap<>(){{put("app",consignLogisticsOrderUrl);put("pc",carriageLogisticsOrderUrl);}})
|
|
|
|
|
|
|
+ .setMsgUrls(new HashMap<>() {{
|
|
|
|
|
+ put("app", consignLogisticsOrderUrl);
|
|
|
|
|
+ put("pc", carriageLogisticsOrderUrl);
|
|
|
|
|
+ }})
|
|
|
.setUserInfos(userInfoList)
|
|
.setUserInfos(userInfoList)
|
|
|
.setCreateBy(LoginUserHolder.getUserId());
|
|
.setCreateBy(LoginUserHolder.getUserId());
|
|
|
log.info("托运订单/承运订单自建物流订单-业务联系人:{}", JSON.toJSONString(sckwMessage));
|
|
log.info("托运订单/承运订单自建物流订单-业务联系人:{}", JSON.toJSONString(sckwMessage));
|
|
@@ -740,6 +749,52 @@ public class CommonService {
|
|
|
streamBridge.send("sckw-message", JSON.toJSONString(message));
|
|
streamBridge.send("sckw-message", JSON.toJSONString(message));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param loadAmount 装货量
|
|
|
|
|
+ * @param deficitAmount 亏吨量
|
|
|
|
|
+ * @param loss 合理损耗
|
|
|
|
|
+ * @desc 计算扣亏量
|
|
|
|
|
+ **/
|
|
|
|
|
+ public BigDecimal deficitAmount(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal entrustAmount, BigDecimal loss, String lossUnit) {
|
|
|
|
|
+ //亏吨<=0
|
|
|
|
|
+ if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
|
|
|
|
|
+ return new BigDecimal(Global.AMOUNT);
|
|
|
|
|
+ }
|
|
|
|
|
+ //合理损耗
|
|
|
|
|
+ loss = loss == null ? new BigDecimal("0.00") : loss;
|
|
|
|
|
+ if (loss.doubleValue() > 0 && StringUtils.isNotBlank(lossUnit)) {
|
|
|
|
|
+ if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.PERCENT.getCode()))) {
|
|
|
|
|
+ loss = loss.divide(new BigDecimal(TaxRateTypeEnum.PERCENT.getValue()));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.MILLIMETER.getCode()))) {
|
|
|
|
|
+ loss = loss.divide(new BigDecimal(TaxRateTypeEnum.MILLIMETER.getValue()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 一、罚款值计算:
|
|
|
|
|
+ * 1、合理损耗值=实装量*合理损耗(‰)
|
|
|
|
|
+ * 1.1 亏吨量= 实装量-实卸量
|
|
|
|
|
+ * 2、扣亏量=亏吨量-合理损耗值【要求大于0,如果小于0则扣亏货量取0】
|
|
|
|
|
+ * 3、罚款值=扣亏量 * 扣亏货值
|
|
|
|
|
+ *
|
|
|
|
|
+ * 二、运价计算:
|
|
|
|
|
+ * 1、按装货量:总运价=实装量*运价
|
|
|
|
|
+ * 2、按卸货量:总运价=实卸量*运价-罚款值
|
|
|
|
|
+ * 3、按趟次:总运价=运价*趟次【后期加】
|
|
|
|
|
+ */
|
|
|
|
|
+ loadAmount = loadAmount == null ? new BigDecimal("0.00") : loadAmount;
|
|
|
|
|
+ //已委托量
|
|
|
|
|
+ entrustAmount = entrustAmount == null ? new BigDecimal("0.00") : entrustAmount;
|
|
|
|
|
+ //合理损耗值
|
|
|
|
|
+ BigDecimal multiply = loadAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
|
|
|
+ //亏吨量
|
|
|
|
|
+ deficitAmount = deficitAmount == null ? new BigDecimal("0.00") : deficitAmount;
|
|
|
|
|
+ //扣亏量/吨
|
|
|
|
|
+ deficitAmount = deficitAmount.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : deficitAmount.subtract(multiply);
|
|
|
|
|
+ return deficitAmount;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* @param loadAmount 装货量
|
|
* @param loadAmount 装货量
|
|
|
* @param deficitAmount 亏吨量
|
|
* @param deficitAmount 亏吨量
|
|
@@ -748,7 +803,7 @@ public class CommonService {
|
|
|
* @author zk
|
|
* @author zk
|
|
|
* @date 2023/7/27
|
|
* @date 2023/7/27
|
|
|
**/
|
|
**/
|
|
|
- public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
|
|
|
|
|
|
|
+ public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss, String lossUnit) {
|
|
|
//亏吨<=0
|
|
//亏吨<=0
|
|
|
if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
|
|
if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
|
|
|
return new BigDecimal(Global.AMOUNT);
|
|
return new BigDecimal(Global.AMOUNT);
|