diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchMissController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchMissController.java index f033c1628..7c7b3ae64 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchMissController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchMissController.java @@ -172,4 +172,50 @@ public class EmisTmsSiteBatchMissController extends EmisBaseController { emisTmsSiteBatchMissService.confirmBatch(billCodes, remark, req.getBlManual()); return AjaxResult.success("确认成功"); } + + /** + * 批量取消确认组批次:参数通过 params.billCodeList 传入 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchMiss:cancelConfirm')") + @Log(title = "TMS漏组批次信息", businessType = BusinessType.UPDATE) + @PostMapping("/cancelConfirmBatch") + public AjaxResult cancelConfirmBatch(@RequestBody EmisTmsSiteBatchMiss req) throws EmisBizError { + Object listObj = req.getParams() != null ? req.getParams().get("billCodeList") : null; + if (listObj == null) { + return AjaxResult.error("参数缺失:billCodeList"); + } + List billCodes; + if (listObj instanceof List) { + List tmp = (List) listObj; + billCodes = new java.util.ArrayList<>(); + for (Object o : tmp) { + if (o != null) { + String s = String.valueOf(o).trim(); + if (!s.isEmpty()) { + billCodes.add(s); + } + } + } + } else if (listObj instanceof String) { + String str = ((String) listObj).trim(); + if (str.isEmpty()) { + billCodes = java.util.Collections.emptyList(); + } else { + String[] arr = str.split(","); + billCodes = new java.util.ArrayList<>(arr.length); + for (String a : arr) { + if (a != null) { + String s = a.trim(); + if (!s.isEmpty()) { + billCodes.add(s); + } + } + } + } + } else { + return AjaxResult.error("参数格式错误:billCodeList"); + } + emisTmsSiteBatchMissService.cancelConfirmBatch(billCodes); + return AjaxResult.success("取消确认成功"); + } } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java index ec5fdb92b..eb9a33f96 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java @@ -1,10 +1,10 @@ -/** +/** * @Project: emis * @Title: EmisWaybillMapper.java * @author linfso * @date 2024-02-29 08:15:14 * @Copyright: ShangHai Doitinfo 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:

运单列表 Mapper 接口

* Warning : This file is generate by ai tools,don't edit!!! */ @@ -52,14 +52,14 @@ public interface EmisWaybillMapper extends BaseMapper /** * 主键查询 * @param id - * @return + * @return */ public EmisWaybill selectEmisWaybillById(Long id); /** * 查询列表 - * - * @param emisWaybill + * + * @param emisWaybill * @return 集合 */ public List selectEmisWaybillList(EmisWaybill emisWaybill); @@ -99,19 +99,19 @@ public interface EmisWaybillMapper extends BaseMapper public List selectWaitDoCostList(EmisWaybill emisWaybill); /** - * 新增 - * + * 新增 + * * @param emisWaybill - * @return + * @return */ public int insertEmisWaybill(EmisWaybill emisWaybill); /** * 修改 - * - * @param emisWaybill - * @return + * + * @param emisWaybill + * @return */ @DataAuditLog(operateType= OperateType.UPDATE,serviceClass=EmisWaybillServiceImpl.class) public int updateEmisWaybill(EmisWaybill emisWaybill); @@ -121,7 +121,7 @@ public interface EmisWaybillMapper extends BaseMapper /** * 删除 - * + * * @param id 主键 * @return 结果 */ @@ -129,7 +129,7 @@ public interface EmisWaybillMapper extends BaseMapper /** * 批量删除 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ @@ -332,6 +332,14 @@ public interface EmisWaybillMapper extends BaseMapper */ List selectMasterEmisWaybills(EmisWaybill emisWaybill); + /** + * 根据运单号列表批量查询运单信息 + * + * @param billCodes 运单号列表 + * @return 运单列表 + */ + List selectEmisWaybillListByBillCodes(@Param("billCodes") List billCodes); + /** * * @param offset diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchMissService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchMissService.java index 5deeebb6d..b9ba06898 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchMissService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchMissService.java @@ -81,4 +81,13 @@ public interface IEmisTmsSiteBatchMissService { * @param blManual */ void confirmBatch(List billCodes, String remark, String blManual) throws EmisBizError; + + /** + * 批量取消确认组批次: + * 1) 根据运单号列表删除运单组批次状态数据 + * 2) 重新扫描运单组批次状态 + * + * @param billCodes 运单号列表 + */ + void cancelConfirmBatch(List billCodes) throws EmisBizError; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java index de1dc8065..72b1b81db 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java @@ -223,6 +223,28 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements } } + /** + * 批量取消确认组批次:删除运单组批次状态数据并重新扫描 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void cancelConfirmBatch(List billCodes) throws EmisBizError { + if (billCodes == null || billCodes.isEmpty()) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "运单号不能为空"); + } + + // 1) 彻底删除运单组批次状态数据 + emisWaybillBatchStatusMapper.deleteByBillCodes(billCodes); + + // 2) 批量查询运单信息 + List waybills = emisWaybillMapper.selectEmisWaybillListByBillCodes(billCodes); + + // 3) 调用scanSiteBatchByWaybills重新扫描 + if (!waybills.isEmpty()) { + this.scanSiteBatchByWaybills(waybills); + } + } + @Async @Override public void autoScanSiteBatch(String lineCode) { diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillBatchStatusMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillBatchStatusMapper.xml index 0b186db82..5ab9c7dc8 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillBatchStatusMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillBatchStatusMapper.xml @@ -36,15 +36,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - update emis_waybill_batch_status - set del_flag = '1' + + + delete from emis_waybill_batch_status where bill_code in #{billCode} - and del_flag = '0' - + diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index cd53168f0..6393aa1ff 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -601,6 +601,16 @@ limit 10 + + +