diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java index af6d05767..f36fe3f16 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java @@ -456,6 +456,8 @@ public class WaybillOrder implements Serializable { voItem.setDeclareGoodsList(declareGoodsCvt.cvtToVoList(dbDecareGoodsList)); voItem.setDeclareAttachmentList(declareAttachmentCvt.cvtToVoList(dbDeclareAttachmentList)); + voItem.setStartSiteCode(dbWaybill.getStartSiteCode()); + voItem.setStartSiteName(dbWaybill.getStartSiteName()); // 收件人 Reciever reciever = new Reciever(); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index b296bc070..4e0d40b92 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -4781,11 +4781,11 @@ public class EmisBaseService { } } - public void handleVirtual(EmisWaybill emisWaybillSave) throws EmisBizError { + public void handleVirtual(EmisWaybill emisWaybillSave,EmisWaybill emisWaybillOld) throws EmisBizError { if (!"1".equals(emisWaybillSave.getBlVirtual())) { return; } - updateMasterWaybill(emisWaybillSave); + updateMasterWaybill(emisWaybillSave,emisWaybillOld); // 做问题件录入 scanProblemInfo(emisWaybillSave); } @@ -4819,8 +4819,8 @@ public class EmisBaseService { emisTmsScanRecordService.scan(scanInfoProm, dispatchOrSendManCode, emisWaybillSave.getSendSiteCode()); } - public void updateMasterWaybill(EmisWaybill emisWaybillSave) throws EmisBizError { - EmisWaybill masterWaybill = checkVirtualParam(emisWaybillSave); + public void updateMasterWaybill(EmisWaybill emisWaybillSave,EmisWaybill emisWaybillOld) throws EmisBizError { + EmisWaybill masterWaybill = checkVirtualParam(emisWaybillSave, emisWaybillOld); String virtualRemark = masterWaybill.getVirtualRemark(); String virtualBillCode = emisWaybillSave.getBillCode(); String virtualBillCodeLastSix = virtualBillCode.substring(virtualBillCode.length() - 6); @@ -4839,7 +4839,7 @@ public class EmisBaseService { emisWaybillMapper.updateEmisWaybill(emisWaybill); } - public EmisWaybill checkVirtualParam(EmisWaybill emisWaybillSave) throws EmisBizError { + public EmisWaybill checkVirtualParam(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError { if (StringUtil.isBlank(emisWaybillSave.getMasterBillCode())) { throw new EmisBizError(EmisBizErrorType.FAIL, "主单号不能为空"); } @@ -4858,6 +4858,11 @@ public class EmisBaseService { 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() + "个虚拟单"); + } + } List batchList = emisTmsSiteBatchMapper.selectEmisTmsSiteBatchListByBillCodes( Lists.newArrayList(Collections.singleton(emisWaybillSave.getMasterBillCode()))); @@ -4869,7 +4874,7 @@ public class EmisBaseService { public void handleVirtualForUpdate(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError { if (!StringUtils.isEmpty(emisWaybillSave.getBlVirtual()) && "1".equals(emisWaybillSave.getBlVirtual())) { - handleVirtual(emisWaybillSave); + handleVirtual(emisWaybillSave,emisWaybillOld); } else { String masterBillCode = emisWaybillOld.getMasterBillCode(); if (StringUtil.isNotBlank(masterBillCode)) { diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java index 0e7364525..1a2a6dcdb 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java @@ -141,7 +141,9 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements } // 校验虚拟单逻辑 - checkVirtualParam(getEmisWaybillNewFromJson(emisWaybillAjustApply)); + if ("1".equals(getEmisWaybillNewFromJson(emisWaybillAjustApply).getBlVirtual())) { + checkVirtualParam(getEmisWaybillNewFromJson(emisWaybillAjustApply),emisWaybillOld); + } // 插入数据 emisWaybillAjustApplyMapper.insertEmisWaybillAjustApply(emisWaybillAjustApply); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index d9ff0287f..548ff7fa9 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -3128,7 +3128,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 虚拟件逻辑 if ("1".equals(emisWaybillSave.getBlVirtual())) { - updateMasterWaybill(emisWaybillSave); + updateMasterWaybill(emisWaybillSave,null); } //插入新单 diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index ae26f01b5..85bf867b7 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -392,7 +392,7 @@ select - a.id,a.order_sn, a.cust_order_id, a.bill_code,a.bill_code_sub, a.order_status, a.waybill_status,a.bl_virtual,a.master_bill_code,a.virtual_remark, + a.id,a.order_sn, a.cust_order_id, a.bill_code,a.bill_code_sub, a.order_status, a.waybill_status,a.bl_virtual,a.master_bill_code,a.virtual_remark,a.start_site_code, a.order_type, a.order_date, a.user_id, a.customer_code, a.customer_name, a.open_id, a.receive_name, a.receive_company, a.receive_mobile, a.receive_tel, a.receive_country, a.receive_province, a.receive_city, a.receive_county, a.receive_town, a.receive_address, a.receive_postcode, a.receive_pcd, a.send_name, a.send_company, @@ -445,6 +445,7 @@ x.site_name as next_site_name, y.site_name as last_site_name, z.type_name as problem_type_name, + start.site_name as start_site_name, k.trans_type as trans_type @@ -485,6 +486,7 @@ left join emis_customer_user a3 on a.customer_code=a3.customer_code and a3.del_flag='0' left join emis_site seaway1 on a.departure_port=seaway1.site_code and seaway1.del_flag='0' left join emis_site seaway2 on a.destination_port=seaway2.site_code and seaway2.del_flag='0' + left join emis_site start on a.start_site_code=start.site_code and start.del_flag='0' @@ -568,17 +570,27 @@