diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchController.java index b49685b38..462686cd0 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchController.java @@ -39,6 +39,11 @@ import com.xdadan.erp.common.utils.poi.ExcelUtil; import com.xdadan.erp.emis.domain.EmisTmsSiteBatch; import com.xdadan.erp.emis.service.IEmisTmsSiteBatchService; +import com.xdadan.erp.emis.service.IEmisSupplierService; +import com.xdadan.erp.emis.service.IEmisSiteService; +import com.xdadan.erp.emis.domain.EmisSupplier; +import com.xdadan.erp.emis.domain.EmisSite; +import java.text.SimpleDateFormat; /** * 一级网点TMS组批次Controller @@ -52,6 +57,10 @@ public class EmisTmsSiteBatchController extends EmisBaseController { @Autowired private IEmisTmsSiteBatchService emisTmsSiteBatchService; + @Autowired + private IEmisSupplierService emisSupplierService; + @Autowired + private IEmisSiteService emisSiteService; /** * 查询一级网点TMS组批次列表 @@ -202,4 +211,85 @@ public class EmisTmsSiteBatchController extends EmisBaseController { return toAjax(emisTmsSiteBatchService.deleteEmisTmsSiteBatchByIds(ids)); } + + /** + * 批量修改一级网点TMS组批次 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatch:batchEdit')") + @Log(title = "一级网点TMS组批次", businessType = BusinessType.UPDATE) + @PutMapping("/batchEdit") + public AjaxResult batchEdit(@RequestBody List batchList) throws EmisBizError { + if (CollectionUtils.isEmpty(batchList)) { + return AjaxResult.error("批次列表不能为空"); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); + for (EmisTmsSiteBatch batch : batchList) { + // 运输方式首字母 + String prefix = "E"; + if (batch.getTransType() != null) { + switch (batch.getTransType()) { + case "1": + prefix = "E"; + break; + case "2": + prefix = "A"; + break; + case "3": + prefix = "L"; + break; + case "4": + prefix = "S"; + break; + case "5": + prefix = "R"; + break; + case "6": + prefix = "D"; + break; + } + } + // 起始网点三字码 + String startSiteCode3 = ""; + if (batch.getStartSiteCode() != null) { + EmisSite startSite = new EmisSite(); + startSite.setSiteCode(batch.getStartSiteCode()); + List startSites = emisSiteService.selectEmisSiteList(startSite); + if (!CollectionUtils.isEmpty(startSites)) { + startSiteCode3 = startSites.get(0).getSizeCode3(); + } + } + // 供应商英文名 + String supplierNameEn = ""; + if (batch.getSupplierCode() != null) { + EmisSupplier supplier = new EmisSupplier(); + supplier.setCode(batch.getSupplierCode()); + List suppliers = emisSupplierService.selectEmisSupplierList(supplier); + if (!CollectionUtils.isEmpty(suppliers)) { + supplierNameEn = suppliers.get(0).getNameEn(); + } + } + // 下一网点三字码 + String nextSiteCode3 = ""; + if (batch.getNextSiteCode() != null) { + EmisSite nextSite = new EmisSite(); + nextSite.setSiteCode(batch.getNextSiteCode()); + List nextSites = emisSiteService.selectEmisSiteList(nextSite); + if (!CollectionUtils.isEmpty(nextSites)) { + nextSiteCode3 = nextSites.get(0).getSizeCode3(); + } + } + // etd日期 + String etdStr = ""; + if (batch.getEtd() != null) { + etdStr = sdf.format(batch.getEtd()); + } + // 车牌号 + String carNo = batch.getCarNo() == null ? "" : batch.getCarNo(); + // 拼接batchName + String batchName = prefix + startSiteCode3 + supplierNameEn + nextSiteCode3 + etdStr + carNo; + batch.setBatchName(batchName); + emisTmsSiteBatchService.updateEmisTmsSiteBatch(batch); + } + return AjaxResult.success("批量修改成功"); + } } 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 0458792a2..9be027760 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 @@ -2845,13 +2845,23 @@ public class EmisBaseService { } if ("002".equals(waybill.getTransLineType()) && StringUtil.isNotBlank(waybill.getVirtualRemark())) { - // 取每个虚拟单号的后六位,用逗号拼接 - String[] codes = waybill.getVirtualRemark().split(","); - String shortCodes = Arrays.stream(codes) - .filter(s -> s != null && s.length() >= 6) - .map(s -> s.substring(s.length() - 6)) - .collect(Collectors.joining(",")); - remark = remark + " " + "该运单为主单,对应虚拟单为" + shortCodes + ","; + Date sendDate = waybill.getSendDate(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date limitDate = null; + try { + limitDate = sdf.parse("2025-06-23 20:00:00"); + } catch (ParseException e) { + // ignore + } + if (sendDate != null && limitDate != null && sendDate.after(limitDate)) { + // 取每个虚拟单号的后六位,用逗号拼接 + String[] codes = waybill.getVirtualRemark().split(","); + String shortCodes = Arrays.stream(codes) + .filter(s -> s != null && s.length() >= 6) + .map(s -> s.substring(s.length() - 6)) + .collect(Collectors.joining(",")); + remark = remark + " " + "该运单为主单,对应虚拟单为" + shortCodes + ","; + } } // if (StringUtil.isNotBlank(waybill.getMasterBillCode())) { // remark = remark + " " + "该运单为虚拟单,对应主单为" + waybill.getMasterBillCode(); @@ -4792,6 +4802,10 @@ public class EmisBaseService { return; } updateMasterWaybill(emisWaybillSave,emisWaybillOld); + if ("1".equals(emisWaybillOld.getBlVirtual() + )) { + return; + } // 做问题件录入 scanProblemInfo(emisWaybillSave,emisWaybillOld); }