Merge pull request 'demand: TMS系统 - 客户管理 - 现金客户额度 - 超期已用额度 与运单明细单号运费不一致;' (#64) from develop into master

Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/64
This commit is contained in:
heyu 2025-06-24 14:58:11 +08:00
commit 4839acc678
2 changed files with 111 additions and 7 deletions

View File

@ -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<EmisTmsSiteBatch> 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<EmisSite> 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<EmisSupplier> 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<EmisSite> 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("批量修改成功");
}
}

View File

@ -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);
}