diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchDtlController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchDtlController.java index 54a127970..085aa0df3 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchDtlController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchDtlController.java @@ -1,11 +1,11 @@ -/** +/** * @Project: emis * @Title: EmisTmsSiteBatchDtlController.java * @author linfso * @date 2024-03-01 06:38:50 * @Copyright: ShangHai Duta 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:

一级网点TMS组批次明细 控制器

*/ @@ -41,7 +41,7 @@ import com.xdadan.erp.emis.service.IEmisTmsSiteBatchDtlService; /** * 一级网点TMS组批次明细Controller - * + * * @author linfso * @date 2024-03-01 06:38:50 */ @@ -62,7 +62,7 @@ public class EmisTmsSiteBatchDtlController extends EmisBaseController startPage(); // 设置通用权限查询参数 - setPrivParams(emisTmsSiteBatchDtl); +// setPrivParams(emisTmsSiteBatchDtl); List list = emisTmsSiteBatchDtlService.selectEmisTmsSiteBatchDtlList(emisTmsSiteBatchDtl); return getDataTable(list); 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 24629a7b6..94f34ba18 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 @@ -3561,29 +3561,56 @@ public class EmisBaseService { public int createCustomerAddressNew(EmisCustomerAddress emisCustomerAddressNew) throws EmisBizError { checkAdress(emisCustomerAddressNew); - List emisCustomerAddressList = emisCustomerAddressMapper.checkAndQuery(emisCustomerAddressNew); + List emisCustomerAddressList = emisCustomerAddressMapper + .checkAndQuery(emisCustomerAddressNew); if (CollectionUtil.isEmpty(emisCustomerAddressList)) { // 不重复的情况则 创建地址 return emisCustomerAddressMapper.insertEmisCustomerAddress(emisCustomerAddressNew); } else { - if ("1".equals(emisCustomerAddressNew.getAddressType()) && "0086".equals(emisCustomerAddressNew.getCountry())) { - List emisCustomerAddressIds = emisCustomerAddressList.stream().filter(i -> (!emisCustomerAddressNew.getEnterpriseTaxId().equals(i.getEnterpriseTaxId()) || !emisCustomerAddressNew.getEnterpriseName().equals(i.getEnterpriseName()))).map(EmisCustomerAddress::getId).collect(Collectors.toList()); + if ("1".equals(emisCustomerAddressNew.getAddressType()) + && "0086".equals(emisCustomerAddressNew.getCountry())) { + String newEnterpriseTaxId = emisCustomerAddressNew.getEnterpriseTaxId(); + String newEnterpriseName = emisCustomerAddressNew.getEnterpriseName(); + + List emisCustomerAddressIds = emisCustomerAddressList.stream() + .filter(i -> { + String existingTaxId = i.getEnterpriseTaxId(); + String existingName = i.getEnterpriseName(); + + // 如果新数据为空,则过滤掉企业信息不匹配的记录 + if (StringUtil.isBlank(newEnterpriseTaxId) || StringUtil.isBlank(newEnterpriseName)) { + return false; + } + + // 如果现有数据为空,则包含在更新列表中 + if (StringUtil.isBlank(existingTaxId) || StringUtil.isBlank(existingName)) { + return true; + } + + // 比较企业信息是否不匹配 + return !newEnterpriseTaxId.equals(existingTaxId) || !newEnterpriseName.equals(existingName); + }) + .map(EmisCustomerAddress::getId) + .collect(Collectors.toList()); + if (CollectionUtil.isEmpty(emisCustomerAddressIds)) { return 1; } + if (emisCustomerAddressNew.getId() != null) { EmisCustomerAddress emisCustomerAddress = new EmisCustomerAddress(); emisCustomerAddress.setId(emisCustomerAddressNew.getId()); - emisCustomerAddress.setEnterpriseTaxId(emisCustomerAddressNew.getEnterpriseTaxId()); - emisCustomerAddress.setEnterpriseName(emisCustomerAddressNew.getEnterpriseName()); + emisCustomerAddress.setEnterpriseTaxId(newEnterpriseTaxId); + emisCustomerAddress.setEnterpriseName(newEnterpriseName); emisCustomerAddressMapper.updateEmisCustomerAddress(emisCustomerAddress); return 1; } + for (Long id : emisCustomerAddressIds) { EmisCustomerAddress emisCustomerAddress = new EmisCustomerAddress(); emisCustomerAddress.setId(id); - emisCustomerAddress.setEnterpriseTaxId(emisCustomerAddressNew.getEnterpriseTaxId()); - emisCustomerAddress.setEnterpriseName(emisCustomerAddressNew.getEnterpriseName()); + emisCustomerAddress.setEnterpriseTaxId(newEnterpriseTaxId); + emisCustomerAddress.setEnterpriseName(newEnterpriseName); emisCustomerAddressMapper.updateEmisCustomerAddress(emisCustomerAddress); } } @@ -3595,7 +3622,10 @@ public class EmisBaseService { public void checkAdress(EmisCustomerAddress emisCustomerAddressNew) throws EmisBizError { if ("1".equals(emisCustomerAddressNew.getAddressType())) { if ("0086".equals(emisCustomerAddressNew.getCountry())) { - if (StringUtil.isBlank(emisCustomerAddressNew.getEnterpriseTaxId()) || StringUtil.isBlank(emisCustomerAddressNew.getEnterpriseName())) { + // 检查是否来自OMS + boolean fromOms = "1".equals(emisCustomerAddressNew.getParams().get("fromOms")); + if (!fromOms && (StringUtil.isBlank(emisCustomerAddressNew.getEnterpriseTaxId()) + || StringUtil.isBlank(emisCustomerAddressNew.getEnterpriseName()))) { throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "企业名称/企业税号不能为空"); } @@ -3643,7 +3673,7 @@ public class EmisBaseService { */ public boolean validateEnterpriseName(String enterpriseName) { if (com.xdadan.erp.common.utils.StringUtils.isEmpty(enterpriseName)) { - return false; + return true; } // 检查是否包含不允许的字符 @@ -3668,7 +3698,7 @@ public class EmisBaseService { */ public boolean validateEnterpriseTaxId(String enterpriseTaxId) { if (com.xdadan.erp.common.utils.StringUtils.isEmpty(enterpriseTaxId)) { - return false; + return true; } // 检查长度 @@ -4119,7 +4149,17 @@ public class EmisBaseService { int totalDays=(emisTransProduct.getMaxAging()+otherAddDay-1)+weekDays+notCaclDays; log.info("计算预估到达时间:[maxAging="+emisTransProduct.getMaxAging()+",weekDays="+weekDays+",notCaclDays="+notCaclDays); // 预估达到时间 - return DateUtils.addDays(startDate, totalDays); + Date estimateDate = DateUtils.addDays(startDate, totalDays); + + // 判断预估到达时间是否为周末,如果是周末则往后加一天 + Calendar cal = Calendar.getInstance(); + cal.setTime(estimateDate); + int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); + if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) { + estimateDate = DateUtils.addDays(estimateDate, 1); + } + + return estimateDate; } 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 47f6c3d63..5b337ad4b 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 @@ -2166,6 +2166,11 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb sendAddress.setUseSiteCode(emisWaybillSave.getSendSiteCode()); sendAddress.setAddressType("1"); sendAddress.setCustomerCode(customerCode); + sendAddress.setEnterpriseName(emisWaybillSave.getEnterpriseName()); + sendAddress.setEnterpriseTaxId(emisWaybillSave.getEnterpriseTaxId()); + if (emisWaybillSave.getSendCustomerAddressId() != null) { + sendAddress.setId(Long.valueOf(emisWaybillSave.getSendCustomerAddressId())); + } // 收件地址 EmisCustomerAddress recieveAddress = new EmisCustomerAddress(); @@ -2223,7 +2228,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } // 保存客户收件、寄件地址 - createCustomerAddress(sendAddress); + sendAddress.getParams().put("fromOms", "1"); + createCustomerAddressNew(sendAddress); createCustomerAddress(recieveAddress); // 获取泡重比