demand: TMS系统 - 客户管理 - 现金客户额度 - 超期已用额度 与运单明细单号运费不一致;
committer: heyu
This commit is contained in:
parent
659179197a
commit
9a9aa336e6
@ -4839,58 +4839,67 @@ public class EmisBaseService {
|
||||
emisWaybillMapper.updateEmisWaybill(emisWaybill);
|
||||
}
|
||||
|
||||
public EmisWaybill checkVirtualParam(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError {
|
||||
if (StringUtil.isBlank(emisWaybillSave.getMasterBillCode())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "主单号不能为空");
|
||||
}
|
||||
if (!"002".equals(emisWaybillSave.getTransLineType()) && !"012".equals(emisWaybillSave.getTransLineType()) && !"014".equals(emisWaybillSave.getTransLineType())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "虚拟单只支持线路为缅甸快递/缅甸快递进口/柬埔寨快递进口");
|
||||
}
|
||||
EmisWaybill masterWaybill = emisWaybillMapper
|
||||
.selectEmisWaybillByBillCode(emisWaybillSave.getMasterBillCode());
|
||||
if (Objects.isNull(masterWaybill)) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "主单号不存在");
|
||||
}
|
||||
if (!emisWaybillSave.getReceiveCountry().equals(masterWaybill.getReceiveCountry())
|
||||
|| !emisWaybillSave.getTransLineType().equals(masterWaybill.getTransLineType()) || !emisWaybillSave.getProductType().equals(masterWaybill.getProductType())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "主单和虚拟单线路不一致");
|
||||
}
|
||||
if ("1".equals(masterWaybill.getBlVirtual())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "虚拟单不能作为主单");
|
||||
}
|
||||
if (emisWaybillOld == null || !"1".equals(emisWaybillOld.getBlVirtual())) {
|
||||
if (masterWaybill.getVirtualRemark().split(",").length >= masterWaybill.getParcelQty()) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, emisWaybillSave.getMasterBillCode() + "最多只能绑定" + masterWaybill.getParcelQty() + "个虚拟单");
|
||||
}
|
||||
}
|
||||
public EmisWaybill checkVirtualParam(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError {
|
||||
if (StringUtil.isBlank(emisWaybillSave.getMasterBillCode())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "主单号不能为空");
|
||||
}
|
||||
if (!"002".equals(emisWaybillSave.getTransLineType()) && !"012".equals(emisWaybillSave.getTransLineType())
|
||||
&& !"014".equals(emisWaybillSave.getTransLineType())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "虚拟单只支持线路为缅甸快递/缅甸快递进口/柬埔寨快递进口");
|
||||
}
|
||||
EmisWaybill masterWaybill = emisWaybillMapper
|
||||
.selectEmisWaybillByBillCode(emisWaybillSave.getMasterBillCode());
|
||||
if (Objects.isNull(masterWaybill)) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "主单号不存在");
|
||||
}
|
||||
if (!emisWaybillSave.getReceiveCountry().equals(masterWaybill.getReceiveCountry())
|
||||
|| !emisWaybillSave.getTransLineType().equals(masterWaybill.getTransLineType())
|
||||
|| !emisWaybillSave.getProductType().equals(masterWaybill.getProductType())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "主单和虚拟单线路不一致");
|
||||
}
|
||||
if ("1".equals(masterWaybill.getBlVirtual())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "虚拟单不能作为主单");
|
||||
}
|
||||
if (!emisWaybillSave.getMasterBillCode().equals(emisWaybillOld.getMasterBillCode())) {
|
||||
String virtualRemark = masterWaybill.getVirtualRemark() == null ? "" : masterWaybill.getVirtualRemark();
|
||||
long count = Arrays.stream(virtualRemark.split(","))
|
||||
.filter(s -> s != null && !s.trim().isEmpty())
|
||||
.count();
|
||||
if (count >= masterWaybill.getParcelQty()) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,
|
||||
emisWaybillSave.getMasterBillCode() + "最多只能绑定" + masterWaybill.getParcelQty() + "个虚拟单");
|
||||
}
|
||||
}
|
||||
|
||||
List<EmisTmsSiteBatch> batchList = emisTmsSiteBatchMapper.selectEmisTmsSiteBatchListByBillCodes(
|
||||
Lists.newArrayList(Collections.singleton(emisWaybillSave.getMasterBillCode())));
|
||||
if (CollectionUtil.isNotEmpty(batchList)) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "该单号已经录入批次,请先在组批次中剔除该运单");
|
||||
}
|
||||
return masterWaybill;
|
||||
}
|
||||
List<EmisTmsSiteBatch> batchList = emisTmsSiteBatchMapper.selectEmisTmsSiteBatchListByBillCodes(
|
||||
Lists.newArrayList(Collections.singleton(emisWaybillSave.getMasterBillCode())));
|
||||
if (CollectionUtil.isNotEmpty(batchList)) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "该单号已经录入批次,请先在组批次中剔除该运单");
|
||||
}
|
||||
return masterWaybill;
|
||||
}
|
||||
|
||||
public void handleVirtualForUpdate(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError {
|
||||
if (!StringUtils.isEmpty(emisWaybillSave.getBlVirtual()) && "1".equals(emisWaybillSave.getBlVirtual())) {
|
||||
handleVirtual(emisWaybillSave,emisWaybillOld);
|
||||
} else {
|
||||
String masterBillCode = emisWaybillOld.getMasterBillCode();
|
||||
if (StringUtil.isNotBlank(masterBillCode)) {
|
||||
String virtualBillCodeLastSix = emisWaybillSave.getBillCode().substring(emisWaybillSave.getBillCode().length() - 6);
|
||||
EmisWaybill masterWaybill = emisWaybillMapper
|
||||
.selectEmisWaybillByBillCode(masterBillCode);
|
||||
List<String> filterVirtualRemark = Arrays.stream(masterWaybill.getVirtualRemark().split(",")).filter(i -> !i.equals(virtualBillCodeLastSix)).collect(Collectors.toList());
|
||||
String virtualRemark = String.join(",", filterVirtualRemark);
|
||||
masterWaybill.setVirtualRemark(virtualRemark);
|
||||
emisWaybillMapper.updateEmisWaybill(masterWaybill);
|
||||
emisWaybillProblemInfoService.deleteEmisWaybillProblemInfoByBillCode(emisWaybillSave.getBillCode());
|
||||
// 重新计算提成
|
||||
emisCommissionProfitService.reCalcProfitByBillCode(emisWaybillSave.getBillCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
public void handleVirtualForUpdate(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError {
|
||||
if (!StringUtils.isEmpty(emisWaybillSave.getBlVirtual()) && "1".equals(emisWaybillSave.getBlVirtual())) {
|
||||
handleVirtual(emisWaybillSave, emisWaybillOld);
|
||||
} else {
|
||||
String masterBillCode = emisWaybillOld.getMasterBillCode();
|
||||
if (StringUtil.isNotBlank(masterBillCode)) {
|
||||
String virtualBillCodeLastSix = emisWaybillSave.getBillCode()
|
||||
.substring(emisWaybillSave.getBillCode().length() - 6);
|
||||
EmisWaybill masterWaybill = emisWaybillMapper
|
||||
.selectEmisWaybillByBillCode(masterBillCode);
|
||||
List<String> filterVirtualRemark = Arrays.stream(masterWaybill.getVirtualRemark().split(","))
|
||||
.filter(i -> !i.equals(virtualBillCodeLastSix)).collect(Collectors.toList());
|
||||
String virtualRemark = String.join(",", filterVirtualRemark);
|
||||
masterWaybill.setVirtualRemark(virtualRemark);
|
||||
emisWaybillMapper.updateEmisWaybill(masterWaybill);
|
||||
emisWaybillProblemInfoService.deleteEmisWaybillProblemInfoByBillCode(emisWaybillSave.getBillCode());
|
||||
// 重新计算提成
|
||||
emisCommissionProfitService.reCalcProfitByBillCode(emisWaybillSave.getBillCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws ParseException {
|
||||
// Date startDate = new Date("202");
|
||||
|
||||
@ -3128,7 +3128,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
||||
|
||||
// 虚拟件逻辑
|
||||
if ("1".equals(emisWaybillSave.getBlVirtual())) {
|
||||
updateMasterWaybill(emisWaybillSave,null);
|
||||
updateMasterWaybill(emisWaybillSave,new EmisWaybill());
|
||||
}
|
||||
|
||||
//插入新单
|
||||
|
||||
@ -590,6 +590,7 @@
|
||||
<!-- or a.dispatch_underling_site_code=#{params.privSiteCode}-->
|
||||
<!-- )-->
|
||||
<!-- </if>-->
|
||||
order by a.send_date desc
|
||||
limit 10
|
||||
</select>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user