Browse Source

2026-04-16

优化
master
fengyuan_yang 1 day ago
parent
commit
0bcf74c608
  1. 22
      src/main/java/com/gaotao/modules/warehouse/controller/LabelTransactionLogController.java
  2. 5
      src/main/java/com/gaotao/modules/warehouse/dao/LabelTransactionLogMapper.java
  3. 5
      src/main/java/com/gaotao/modules/warehouse/service/LabelTransactionLogService.java
  4. 70
      src/main/java/com/gaotao/modules/warehouse/service/impl/LabelTransactionLogServiceImpl.java
  5. 11
      src/main/resources/mapper/warehouse/LabelTransactionLogMapper.xml

22
src/main/java/com/gaotao/modules/warehouse/controller/LabelTransactionLogController.java

@ -101,5 +101,27 @@ public class LabelTransactionLogController extends AbstractController {
return R.error("批量异常关闭失败: " + e.getMessage());
}
}
/**
* 批量单据回冲
*/
@PostMapping("reverse")
@SuppressWarnings("unchecked")
public R reverse(@RequestBody Map<String, Object> params) {
try {
List<Map<String, Object>> reverseList = (List<Map<String, Object>>) params.get("reverseList");
String username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername();
if (reverseList == null || reverseList.isEmpty()) {
return R.error("请选择要回冲的记录");
}
Map<String, Object> result = labelTransactionLogService.batchReverse(reverseList, username);
return R.ok().put("code", 0).put("result", result);
} catch (Exception e) {
logger.error("批量单据回冲失败", e);
return R.error("批量单据回冲失败: " + e.getMessage());
}
}
}

5
src/main/java/com/gaotao/modules/warehouse/dao/LabelTransactionLogMapper.java

@ -21,5 +21,10 @@ public interface LabelTransactionLogMapper {
* 查询标签变动记录总数
*/
int queryTotal(@Param("query") Map<String, Object> params);
/**
* 调用单据回冲存储过程
*/
List<Map<String, Object>> reverseInboundByTransaction(Map<String, Object> params);
}

5
src/main/java/com/gaotao/modules/warehouse/service/LabelTransactionLogService.java

@ -27,5 +27,10 @@ public interface LabelTransactionLogService {
* 批量异常关闭
*/
Map<String, Object> batchClose(List<Map<String, Object>> closeList);
/**
* 批量单据回冲
*/
Map<String, Object> batchReverse(List<Map<String, Object>> reverseList, String username);
}

70
src/main/java/com/gaotao/modules/warehouse/service/impl/LabelTransactionLogServiceImpl.java

@ -170,5 +170,75 @@ public class LabelTransactionLogServiceImpl implements LabelTransactionLogServic
return result;
}
@Override
public Map<String, Object> batchReverse(List<Map<String, Object>> reverseList, String username) {
logger.info("批量单据回冲开始,记录数: {}", reverseList.size());
int successCount = 0;
int failureCount = 0;
List<Map<String, Object>> details = new ArrayList<>();
for (Map<String, Object> reverseItem : reverseList) {
String site = (String) reverseItem.get("site");
String buNo = (String) reverseItem.get("buNo");
String transactionId = (String) reverseItem.get("transactionId");
String transactionType = (String) reverseItem.get("documentType");
Map<String, Object> detail = new HashMap<>();
detail.put("transactionId", transactionId);
try {
Map<String, Object> params = new HashMap<>();
params.put("site", site);
params.put("buNo", buNo);
params.put("transactionId", transactionId);
params.put("transactionType", transactionType);
params.put("username", username);
// 调用存储过程
List<Map<String, Object>> resultList = labelTransactionLogMapper.reverseInboundByTransaction(params);
if (resultList != null && !resultList.isEmpty()) {
Map<String, Object> spResult = resultList.get(0);
String resultCode = spResult.get("resultCode") != null ? spResult.get("resultCode").toString() : "";
String resultMsg = spResult.get("resultMsg") != null ? spResult.get("resultMsg").toString() : "";
if ("200".equals(resultCode)) {
successCount++;
detail.put("status", "success");
detail.put("message", resultMsg);
logger.info("单据回冲成功,transactionId: {}", transactionId);
} else {
failureCount++;
detail.put("status", "failure");
detail.put("message", resultMsg);
logger.warn("单据回冲失败,transactionId: {}, 错误: {}", transactionId, resultMsg);
}
} else {
failureCount++;
detail.put("status", "failure");
detail.put("message", "存储过程未返回结果");
logger.warn("单据回冲失败,transactionId: {}, 错误: 存储过程未返回结果", transactionId);
}
} catch (Exception e) {
logger.error("单据回冲异常,transactionId: {}, error: {}", transactionId, e.getMessage(), e);
detail.put("status", "error");
detail.put("message", "回冲异常: " + e.getMessage());
failureCount++;
}
details.add(detail);
}
logger.info("批量单据回冲完成,成功: {}, 失败: {}", successCount, failureCount);
Map<String, Object> result = new HashMap<>();
result.put("successCount", successCount);
result.put("failureCount", failureCount);
result.put("totalCount", reverseList.size());
result.put("details", details);
return result;
}
}

11
src/main/resources/mapper/warehouse/LabelTransactionLogMapper.xml

@ -160,5 +160,16 @@
</if>
</select>
<!-- 调用变动记录回滚操作存储过程 -->
<select id="reverseInboundByTransaction" statementType="CALLABLE" parameterType="java.util.Map" resultType="java.util.Map">
{call UspReverseInboundByTransaction(
#{site, mode=IN, jdbcType=VARCHAR},
#{buNo, mode=IN, jdbcType=VARCHAR},
#{transactionId, mode=IN, jdbcType=VARCHAR},
#{transactionType, mode=IN, jdbcType=VARCHAR},
#{username, mode=IN, jdbcType=VARCHAR}
)}
</select>
</mapper>
Loading…
Cancel
Save