diff --git a/src/main/java/com/gaotao/modules/scrap/controller/ScrapController.java b/src/main/java/com/gaotao/modules/scrap/controller/ScrapController.java new file mode 100644 index 0000000..0794ba1 --- /dev/null +++ b/src/main/java/com/gaotao/modules/scrap/controller/ScrapController.java @@ -0,0 +1,53 @@ +package com.gaotao.modules.scrap.controller; + +import com.gaotao.common.utils.R; +import com.gaotao.modules.scrap.entity.ScrapLabelDto; +import com.gaotao.modules.scrap.entity.ScrapConfirmDto; +import com.gaotao.modules.scrap.service.ScrapService; +import com.gaotao.modules.sys.controller.AbstractController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 报废相关控制器 + */ +@RequestMapping("scrap") +@RestController +public class ScrapController extends AbstractController { + + @Autowired + private ScrapService scrapService; + + /** + * 扫描报废标签 + */ + @PostMapping("scanScrapLabel") + public R scanScrapLabel(@RequestBody ScrapLabelDto dto) { + try { + ScrapLabelDto labelInfo = scrapService.scanScrapLabel(dto); + if (labelInfo != null) { + return R.ok().put("labelInfo", labelInfo); + } else { + return R.error("标签验证失败"); + } + } catch (Exception e) { + return R.error("扫描标签失败: " + e.getMessage()); + } + } + + /** + * 确认报废 + */ + @PostMapping("confirmScrap") + public R confirmScrap(@RequestBody ScrapConfirmDto dto) { + try { + scrapService.confirmScrap(dto); + return R.ok().put("message", "报废成功"); + } catch (Exception e) { + return R.error("报废失败: " + e.getMessage()); + } + } +} diff --git a/src/main/java/com/gaotao/modules/scrap/dao/ScrapMapper.java b/src/main/java/com/gaotao/modules/scrap/dao/ScrapMapper.java new file mode 100644 index 0000000..1256b6f --- /dev/null +++ b/src/main/java/com/gaotao/modules/scrap/dao/ScrapMapper.java @@ -0,0 +1,12 @@ +package com.gaotao.modules.scrap.dao; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 报废数据访问层 + */ +@Mapper +public interface ScrapMapper { + // 目前主要依赖IFS接口,暂时不需要数据库操作 + // 后续可以根据需要添加数据库查询方法 +} diff --git a/src/main/java/com/gaotao/modules/scrap/entity/ScrapConfirmDto.java b/src/main/java/com/gaotao/modules/scrap/entity/ScrapConfirmDto.java new file mode 100644 index 0000000..8eaae11 --- /dev/null +++ b/src/main/java/com/gaotao/modules/scrap/entity/ScrapConfirmDto.java @@ -0,0 +1,18 @@ +package com.gaotao.modules.scrap.entity; + +import lombok.Data; +import java.util.Date; +import java.util.List; + +/** + * 报废确认DTO + */ +@Data +public class ScrapConfirmDto { + private String site; + private String scrapReason; + private List labels; + private String operatorId; + private String operatorName; + private Date scrapDate; +} diff --git a/src/main/java/com/gaotao/modules/scrap/entity/ScrapLabelDto.java b/src/main/java/com/gaotao/modules/scrap/entity/ScrapLabelDto.java new file mode 100644 index 0000000..5174075 --- /dev/null +++ b/src/main/java/com/gaotao/modules/scrap/entity/ScrapLabelDto.java @@ -0,0 +1,20 @@ +package com.gaotao.modules.scrap.entity; + +import lombok.Data; +import java.math.BigDecimal; + +/** + * 报废标签DTO + */ +@Data +public class ScrapLabelDto { + private String labelCode; + private String site; + private String partNo; + private String partDesc; + private BigDecimal quantity; + private String unit; + private String batchNo; + private String locationId; + private String warehouseId; +} diff --git a/src/main/java/com/gaotao/modules/scrap/service/ScrapService.java b/src/main/java/com/gaotao/modules/scrap/service/ScrapService.java new file mode 100644 index 0000000..5f0789e --- /dev/null +++ b/src/main/java/com/gaotao/modules/scrap/service/ScrapService.java @@ -0,0 +1,20 @@ +package com.gaotao.modules.scrap.service; + +import com.gaotao.modules.scrap.entity.ScrapLabelDto; +import com.gaotao.modules.scrap.entity.ScrapConfirmDto; + +/** + * 报废服务接口 + */ +public interface ScrapService { + + /** + * 扫描报废标签 + */ + ScrapLabelDto scanScrapLabel(ScrapLabelDto dto); + + /** + * 确认报废 + */ + void confirmScrap(ScrapConfirmDto dto); +} diff --git a/src/main/java/com/gaotao/modules/scrap/service/impl/ScrapServiceImpl.java b/src/main/java/com/gaotao/modules/scrap/service/impl/ScrapServiceImpl.java new file mode 100644 index 0000000..7fb7144 --- /dev/null +++ b/src/main/java/com/gaotao/modules/scrap/service/impl/ScrapServiceImpl.java @@ -0,0 +1,166 @@ +package com.gaotao.modules.scrap.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gaotao.common.exception.XJException; +import com.gaotao.common.utils.HttpUtils; +import com.gaotao.modules.scrap.entity.*; +import com.gaotao.modules.scrap.service.ScrapService; +import com.gaotao.modules.scrap.dao.ScrapMapper; +import com.gaotao.modules.trans.entity.TransHeader; +import com.gaotao.modules.trans.entity.TransDetail; +import com.gaotao.modules.trans.entity.TransDetailDto; +import com.gaotao.modules.trans.service.TransHeaderService; +import com.gaotao.modules.trans.service.TransDetailService; +import com.gaotao.modules.trans.service.TransNoControlService; +import com.gaotao.modules.sys.entity.SysUserEntity; +import com.gaotao.modules.sys.controller.AbstractController; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import lombok.extern.slf4j.Slf4j; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; + +/** + * 报废服务实现类 + */ +@Slf4j +@Service +public class ScrapServiceImpl extends AbstractController implements ScrapService { + + @Autowired + private ScrapMapper scrapMapper; + + @Autowired + private TransHeaderService transHeaderService; + + @Autowired + private TransDetailService transDetailService; + + @Autowired + private TransNoControlService transNoControlService; + + @Value("${custom.ifs-url}") + private String ifsUrl; + @Value("${custom.ifs-ifsDBName}") + private String ifsDBName; + @Value("${custom.ifs-domainUserID}") + private String domainUserID; + + @Override + public ScrapLabelDto scanScrapLabel(ScrapLabelDto dto) { + try { + // 从IFS接口获取标签信息 + Map params = Map.of( + "ifsDBName", ifsDBName, + "domainUserID", domainUserID, + "ifsSiteID", dto.getSite(), + "labelCode", dto.getLabelCode() + ); + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonBody = objectMapper.writeValueAsString(params); + String ifsResponse = HttpUtils.doGetWithBody(ifsUrl + "LabelInfo", jsonBody, null); + + // 解析IFS响应 + Map ifsData = objectMapper.readValue(ifsResponse, new TypeReference>() {}); + + // 构建标签信息 + ScrapLabelDto labelInfo = new ScrapLabelDto(); + labelInfo.setLabelCode(dto.getLabelCode()); + labelInfo.setSite(dto.getSite()); + labelInfo.setPartNo((String) ifsData.get("partNo")); + labelInfo.setPartDesc((String) ifsData.get("partDesc")); + labelInfo.setQuantity(new BigDecimal(ifsData.get("quantity").toString())); + labelInfo.setUnit((String) ifsData.get("unit")); + labelInfo.setBatchNo((String) ifsData.get("batchNo")); + labelInfo.setLocationId((String) ifsData.get("locationId")); + labelInfo.setWarehouseId((String) ifsData.get("warehouseId")); + + return labelInfo; + + } catch (Exception e) { + log.error("扫描报废标签异常: {}", e.getMessage()); + throw new XJException("扫描报废标签失败: " + e.getMessage()); + } + } + + @Override + @Transactional + public void confirmScrap(ScrapConfirmDto dto) { + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + + // 1. 生成报废出库事务记录 + TransDetailDto outData = new TransDetailDto(); + outData.setSite(dto.getSite()); + outData.setWarehouseId("1"); // 使用默认仓库ID + outData.setRemark("物料报废 - " + dto.getScrapReason()); + outData.setOrderRef1(dto.getScrapReason()); // 存储报废原因 + + // 生成报废出库事务号 + TransHeader outTransHeader = transHeaderService.genTrans(outData, "SCRAP"); // 报废事务类型 + outTransHeader.setStatus("COMPLETED"); + outTransHeader.setStatusDb("COMPLETED"); + transHeaderService.updateById(outTransHeader); + + // 2. 保存报废明细 + for (int i = 0; i < dto.getLabels().size(); i++) { + ScrapLabelDto label = dto.getLabels().get(i); + + TransDetail outDetail = new TransDetail(); + outDetail.setSite(dto.getSite()); + outDetail.setTransNo(outTransHeader.getTransNo()); + outDetail.setItemNo((double) i); + outDetail.setPartNo(label.getPartNo()); + outDetail.setTransQty(label.getQuantity()); + outDetail.setBatchNo(label.getBatchNo()); + outDetail.setLocationId(label.getLocationId()); + outDetail.setOrderRef1(dto.getScrapReason()); // 存储报废原因 + outDetail.setOrderRef2(label.getLabelCode()); // 存储标签编码 + outDetail.setRemark("物料报废"); + + transDetailService.save(outDetail); + } + + // 3. 调用IFS接口同步报废信息 + try { + Map ifsParams = Map.of( + "ifsDBName", ifsDBName, + "domainUserID", domainUserID, + "ifsSiteID", dto.getSite(), + "transNo", outTransHeader.getTransNo(), + "scrapReason", dto.getScrapReason(), + "labels", dto.getLabels() + ); + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonBody = objectMapper.writeValueAsString(ifsParams); + String ifsResponse = HttpUtils.doPost(ifsUrl + "ScrapSync", jsonBody, null); + + log.info("IFS报废同步响应: {}", ifsResponse); + + } catch (Exception e) { + log.error("IFS报废同步失败: {}", e.getMessage()); + // 注意:这里不抛出异常,因为WMS事务已经完成,IFS同步失败不影响WMS操作 + } + + // 4. 更新库存(这里需要调用库存服务) + // updateInventoryStock(dto); + } + + /** + * 更新库存(需要根据实际的库存服务实现) + */ + private void updateInventoryStock(ScrapConfirmDto dto) { + // TODO: 实现库存更新逻辑 + // 减少对应仓库和库位的库存 + } +} diff --git a/src/main/java/com/gaotao/modules/transit/controller/TransitController.java b/src/main/java/com/gaotao/modules/transit/controller/TransitController.java new file mode 100644 index 0000000..6d15a7a --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/controller/TransitController.java @@ -0,0 +1,71 @@ +package com.gaotao.modules.transit.controller; + +import com.gaotao.common.utils.R; +import com.gaotao.modules.transit.entity.TransitRecordDto; +import com.gaotao.modules.transit.entity.TransitLabelDto; +import com.gaotao.modules.transit.entity.TransitReceiveDto; +import com.gaotao.modules.transit.service.TransitService; +import com.gaotao.modules.sys.controller.AbstractController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 移库相关控制器 + */ +@RequestMapping("transit") +@RestController +public class TransitController extends AbstractController { + + @Autowired + private TransitService transitService; + + /** + * 获取移库记录 + */ + @PostMapping("getTransitRecord") + public R getTransitRecord(@RequestBody TransitRecordDto dto) { + try { + TransitRecordDto record = transitService.getTransitRecord(dto.getTransactionId(), dto.getSite()); + if (record != null) { + return R.ok().put("data", record); + } else { + return R.error("未找到移库记录"); + } + } catch (Exception e) { + return R.error("查询移库记录失败: " + e.getMessage()); + } + } + + /** + * 扫描移库标签 + */ + @PostMapping("scanTransitLabel") + public R scanTransitLabel(@RequestBody TransitLabelDto dto) { + try { + TransitLabelDto labelInfo = transitService.scanTransitLabel(dto); + if (labelInfo != null) { + return R.ok().put("labelInfo", labelInfo); + } else { + return R.error("标签验证失败"); + } + } catch (Exception e) { + return R.error("扫描标签失败: " + e.getMessage()); + } + } + + /** + * 确认移库接收 + */ + @PostMapping("confirmTransitReceive") + public R confirmTransitReceive(@RequestBody TransitReceiveDto dto) { + try { + transitService.confirmTransitReceive(dto); + return R.ok().put("message", "移库接收成功"); + } catch (Exception e) { + return R.error("移库接收失败: " + e.getMessage()); + } + } +} diff --git a/src/main/java/com/gaotao/modules/transit/dao/TransitMapper.java b/src/main/java/com/gaotao/modules/transit/dao/TransitMapper.java new file mode 100644 index 0000000..49f2f56 --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/dao/TransitMapper.java @@ -0,0 +1,30 @@ +package com.gaotao.modules.transit.dao; + +import com.gaotao.modules.trans.entity.TransHeader; +import com.gaotao.modules.trans.entity.TransDetail; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 移库数据访问层 + */ +@Mapper +public interface TransitMapper { + + /** + * 获取移库头信息 + */ + TransHeader getTransitHeader(@Param("transNo") String transNo, @Param("site") String site); + + /** + * 获取移库明细 + */ + List getTransitDetails(@Param("transNo") String transNo, @Param("site") String site); + + /** + * 根据标签获取移库明细 + */ + TransDetail getTransitDetailByLabel(@Param("labelCode") String labelCode, @Param("transNo") String transNo, @Param("site") String site); +} diff --git a/src/main/java/com/gaotao/modules/transit/entity/TransitDetailDto.java b/src/main/java/com/gaotao/modules/transit/entity/TransitDetailDto.java new file mode 100644 index 0000000..289f1eb --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/entity/TransitDetailDto.java @@ -0,0 +1,19 @@ +package com.gaotao.modules.transit.entity; + +import lombok.Data; +import java.math.BigDecimal; + +/** + * 移库明细DTO + */ +@Data +public class TransitDetailDto { + private String partNo; + private String partDesc; + private BigDecimal quantity; + private String unit; + private String batchNo; + private String fromLocation; + private String toLocation; + private String labelCode; +} diff --git a/src/main/java/com/gaotao/modules/transit/entity/TransitLabelDto.java b/src/main/java/com/gaotao/modules/transit/entity/TransitLabelDto.java new file mode 100644 index 0000000..54c4d31 --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/entity/TransitLabelDto.java @@ -0,0 +1,20 @@ +package com.gaotao.modules.transit.entity; + +import lombok.Data; +import java.math.BigDecimal; + +/** + * 移库标签DTO + */ +@Data +public class TransitLabelDto { + private String labelCode; + private String transNo; + private String site; + private String partNo; + private String partDesc; + private BigDecimal quantity; + private String unit; + private String batchNo; + private String locationId; +} diff --git a/src/main/java/com/gaotao/modules/transit/entity/TransitReceiveDto.java b/src/main/java/com/gaotao/modules/transit/entity/TransitReceiveDto.java new file mode 100644 index 0000000..147d887 --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/entity/TransitReceiveDto.java @@ -0,0 +1,18 @@ +package com.gaotao.modules.transit.entity; + +import lombok.Data; +import java.util.Date; +import java.util.List; + +/** + * 移库接收DTO + */ +@Data +public class TransitReceiveDto { + private String site; + private String transNo; + private List labels; + private String operatorId; + private String operatorName; + private Date receiveDate; +} diff --git a/src/main/java/com/gaotao/modules/transit/entity/TransitRecordDto.java b/src/main/java/com/gaotao/modules/transit/entity/TransitRecordDto.java new file mode 100644 index 0000000..3517f6f --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/entity/TransitRecordDto.java @@ -0,0 +1,21 @@ +package com.gaotao.modules.transit.entity; + +import lombok.Data; +import java.util.Date; +import java.util.List; + +/** + * 移库记录DTO + */ +@Data +public class TransitRecordDto { + private String transactionId; + private String site; + private String transNo; + private String fromWarehouse; + private String toWarehouse; + private String status; + private Date transDate; + private String remark; + private List detailList; +} diff --git a/src/main/java/com/gaotao/modules/transit/service/TransitService.java b/src/main/java/com/gaotao/modules/transit/service/TransitService.java new file mode 100644 index 0000000..9c73229 --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/service/TransitService.java @@ -0,0 +1,26 @@ +package com.gaotao.modules.transit.service; + +import com.gaotao.modules.transit.entity.TransitRecordDto; +import com.gaotao.modules.transit.entity.TransitLabelDto; +import com.gaotao.modules.transit.entity.TransitReceiveDto; + +/** + * 移库服务接口 + */ +public interface TransitService { + + /** + * 获取移库记录 + */ + TransitRecordDto getTransitRecord(String transactionId, String site); + + /** + * 扫描移库标签 + */ + TransitLabelDto scanTransitLabel(TransitLabelDto dto); + + /** + * 确认移库接收 + */ + void confirmTransitReceive(TransitReceiveDto dto); +} diff --git a/src/main/java/com/gaotao/modules/transit/service/impl/TransitServiceImpl.java b/src/main/java/com/gaotao/modules/transit/service/impl/TransitServiceImpl.java new file mode 100644 index 0000000..1c69a5a --- /dev/null +++ b/src/main/java/com/gaotao/modules/transit/service/impl/TransitServiceImpl.java @@ -0,0 +1,164 @@ +package com.gaotao.modules.transit.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gaotao.common.exception.XJException; +import com.gaotao.common.utils.HttpUtils; +import com.gaotao.modules.transit.entity.*; +import com.gaotao.modules.transit.service.TransitService; +import com.gaotao.modules.transit.dao.TransitMapper; +import com.gaotao.modules.trans.entity.TransHeader; +import com.gaotao.modules.trans.entity.TransDetail; +import com.gaotao.modules.trans.entity.TransDetailDto; +import com.gaotao.modules.trans.service.TransHeaderService; +import com.gaotao.modules.trans.service.TransDetailService; +import com.gaotao.modules.trans.service.TransNoControlService; +import com.gaotao.modules.sys.entity.SysUserEntity; +import com.gaotao.modules.sys.controller.AbstractController; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import lombok.extern.slf4j.Slf4j; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; + +/** + * 移库服务实现类 + */ +@Slf4j +@Service +public class TransitServiceImpl extends AbstractController implements TransitService { + + @Autowired + private TransitMapper transitMapper; + + @Autowired + private TransHeaderService transHeaderService; + + @Autowired + private TransDetailService transDetailService; + + @Autowired + private TransNoControlService transNoControlService; + + @Value("${custom.ifs-url}") + private String ifsUrl; + @Value("${custom.ifs-ifsDBName}") + private String ifsDBName; + @Value("${custom.ifs-domainUserID}") + private String domainUserID; + + @Override + public TransitRecordDto getTransitRecord(String transactionId, String site) { + try { + // 从IFS接口获取移库记录 + Map params = Map.of( + "ifsDBName", ifsDBName, + "domainUserID", domainUserID, + "ifsSiteID", site, + "transactionId", transactionId + ); + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonBody = objectMapper.writeValueAsString(params); + //String ifsResponse = HttpUtils.doGetWithBody(ifsUrl + "TransitRecord", jsonBody, null); + + // 解析IFS响应 + //Map ifsData = objectMapper.readValue(ifsResponse, new TypeReference>() {}); + + // 构建返回数据 + TransitRecordDto recordDto = new TransitRecordDto(); + recordDto.setTransactionId(transactionId); + recordDto.setSite(site); + recordDto.setTransNo("transNo"); + recordDto.setFromWarehouse("fromWarehouse"); + recordDto.setToWarehouse("toWarehouse"); + + return recordDto; + + } catch (Exception e) { + log.error("获取移库记录异常: {}", e.getMessage()); + throw new XJException("获取移库记录失败: " + e.getMessage()); + } + } + + @Override + public TransitLabelDto scanTransitLabel(TransitLabelDto dto) { + // 简化处理,直接返回标签信息,不进行验证 + TransitLabelDto labelInfo = new TransitLabelDto(); + labelInfo.setLabelCode(dto.getLabelCode()); + labelInfo.setTransNo(dto.getTransNo()); + labelInfo.setSite(dto.getSite()); + labelInfo.setPartNo("待确认"); + labelInfo.setQuantity(new BigDecimal("1")); + labelInfo.setUnit("个"); + labelInfo.setBatchNo(""); + labelInfo.setLocationId(""); + + return labelInfo; + } + + @Override + @Transactional + public void confirmTransitReceive(TransitReceiveDto dto) { + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + + // 1. 生成移入事务记录 + TransDetailDto inData = new TransDetailDto(); + inData.setSite(dto.getSite()); + inData.setWarehouseId("1"); // 使用默认仓库ID + inData.setRemark("移库接收"); + inData.setOrderRef1(dto.getTransNo()); // 关联原移库单号 + + // 生成移入事务号 + TransHeader inTransHeader = transHeaderService.genTrans(inData, "TRIN"); // 移入事务类型 + inTransHeader.setStatus("COMPLETED"); + inTransHeader.setStatusDb("COMPLETED"); + transHeaderService.updateById(inTransHeader); + + // 2. 保存移入明细 + for (int i = 0; i < dto.getLabels().size(); i++) { + TransitLabelDto label = dto.getLabels().get(i); + + TransDetail inDetail = new TransDetail(); + inDetail.setSite(dto.getSite()); + inDetail.setTransNo(inTransHeader.getTransNo()); + inDetail.setItemNo((double) i); + inDetail.setPartNo(label.getPartNo()); + inDetail.setTransQty(label.getQuantity()); + inDetail.setBatchNo(label.getBatchNo()); + inDetail.setLocationId(label.getLocationId()); + inDetail.setOrderRef1(dto.getTransNo()); // 关联原移库单号 + inDetail.setRemark("移库接收"); + + transDetailService.save(inDetail); + } + + // 3. 更新原移库单状态为已完成 + TransHeader originalHeader = transitMapper.getTransitHeader(dto.getTransNo(), dto.getSite()); + if (originalHeader != null) { + originalHeader.setStatus("COMPLETED"); + originalHeader.setStatusDb("COMPLETED"); + transHeaderService.updateById(originalHeader); + } + + // 4. 更新库存(这里需要调用库存服务) + // updateInventoryStock(dto); + } + + /** + * 更新库存(需要根据实际的库存服务实现) + */ + private void updateInventoryStock(TransitReceiveDto dto) { + // TODO: 实现库存更新逻辑 + // 1. 减少移出仓库库存 + // 2. 增加移入仓库库存 + } +} diff --git a/src/main/resources/mapper/transit/TransitMapper.xml b/src/main/resources/mapper/transit/TransitMapper.xml new file mode 100644 index 0000000..f806b6f --- /dev/null +++ b/src/main/resources/mapper/transit/TransitMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + +