demand: 虚拟单主单A换主单B,虚拟单、主单B、主单A都需要更新绑定关系。 报价时间交叉验证逻辑bug修复

committer: heyu
This commit is contained in:
aike 2025-07-05 13:19:43 +08:00
parent 1ffcef43a8
commit 4acd952916
2 changed files with 19 additions and 13 deletions

View File

@ -5119,6 +5119,9 @@ public class EmisBaseService {
emisWaybill.setVirtualRemark(virtualRemark);
emisWaybill.setId(masterWaybill.getId());
emisWaybillMapper.updateEmisWaybill(emisWaybill);
if(StringUtil.isNotBlank(emisWaybillOld.getMasterBillCode())){
updateOldMasterBill(emisWaybillSave,emisWaybillOld.getMasterBillCode());
}
}
public EmisWaybill checkVirtualParam(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError {
@ -5181,17 +5184,7 @@ public class EmisBaseService {
String masterBillCode = emisWaybillOld.getMasterBillCode();
if (StringUtil.isNotBlank(masterBillCode)) {
emisWaybillSave.setMasterBillCode(" ");
String virtualBillCode = emisWaybillSave.getBillCode();
EmisWaybill masterWaybill = emisWaybillMapper
.selectEmisWaybillByBillCode(masterBillCode);
List<String> filterVirtualRemark = Arrays.stream(masterWaybill.getVirtualRemark().split(","))
.filter(i -> !i.equals(virtualBillCode)).collect(Collectors.toList());
String virtualRemark = String.join(",", filterVirtualRemark);
if(StringUtil.isBlank(virtualRemark)) {
virtualRemark = " ";
}
masterWaybill.setVirtualRemark(virtualRemark);
emisWaybillMapper.updateEmisWaybill(masterWaybill);
updateOldMasterBill(emisWaybillSave, masterBillCode);
if (!"078".equals(emisWaybillSave.getTransLineType())) {
emisWaybillProblemInfoService.deleteEmisWaybillProblemInfoByBillCode(emisWaybillSave.getBillCode());
}
@ -5201,6 +5194,20 @@ public class EmisBaseService {
}
}
private void updateOldMasterBill(EmisWaybill emisWaybillSave, String masterBillCode) {
String virtualBillCode = emisWaybillSave.getBillCode();
EmisWaybill masterWaybill = emisWaybillMapper
.selectEmisWaybillByBillCode(masterBillCode);
List<String> filterVirtualRemark = Arrays.stream(masterWaybill.getVirtualRemark().split(","))
.filter(i -> !i.equals(virtualBillCode)).collect(Collectors.toList());
String virtualRemark = String.join(",", filterVirtualRemark);
if(StringUtil.isBlank(virtualRemark)) {
virtualRemark = " ";
}
masterWaybill.setVirtualRemark(virtualRemark);
emisWaybillMapper.updateEmisWaybill(masterWaybill);
}
public static void main(String[] args) throws ParseException {
// Date startDate = new Date("202");
Date startDate= new SimpleDateFormat("yyyy-MM-dd").parse("2025-05-11");

View File

@ -183,8 +183,7 @@
and ( disp_area_id=#{dispAreaId} or disp_area_site_code='-1' )
and ( send_area_id=#{sendAreaId} or send_area_site_code='-1')
and (
( start_date <![CDATA[< ]]> #{startDate} and #{startDate} <![CDATA[<= ]]> end_date ) or ( start_date
<![CDATA[< ]]> #{endDate} and #{endDate} <![CDATA[<= ]]> end_date )
start_date &lt;= #{endDate} and end_date &gt;= #{startDate}
)
</select>