diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java index 260c1416..232656bc 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java @@ -63,7 +63,7 @@ public class OrderDeclare extends BaseEntity { private String quaLevel; @Schema(description = "数量") - private Double quantity; + private Integer quantity; @Schema(description = "备注") private String remark; @@ -83,4 +83,13 @@ public class OrderDeclare extends BaseEntity { @TableField(exist = false) @Schema(description = "状态名称") private String podStatusName; + + @TableField(exist = false) + @Schema(description = "库存部门") + private String deptNo; + + @TableField(exist = false) + @Schema(description = "库房号") + private String warnNo; + } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java index 9964008e..779cada9 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java @@ -4,6 +4,7 @@ package org.springblade.erpdata.feign; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; +import org.springblade.desk.produce.pojo.entity.OrderDeclare; import org.springblade.erpdata.pojo.vo.MesRbRedoVO; import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO; import org.springblade.erpdata.pojo.vo.QueryBatchVO; @@ -40,12 +41,14 @@ public interface IErpDataProduceClient { String COMPLETE_ORDER = API_PREFIX + "/completeOrder"; String RECEIVE_ORDER = API_PREFIX + "/receiveOrder"; String LOAD_REWORK_NO_PROCESS = API_PREFIX + "/loadReworkNoProcess"; + String SIGN_DELETE = API_PREFIX + "/signDelete"; + String SAVE_DECLARE = API_PREFIX + "/saveDeclare"; /** * 缺件申报-通过零件号获取批次号 */ @GetMapping(QUERY_BATCH) - R queryBatch(@RequestParam("partCode") String partCode); + R> queryBatch(@RequestParam("partCode") String partCode); /** * 返工订单 @@ -152,4 +155,20 @@ public interface IErpDataProduceClient { */ @GetMapping(LOAD_REWORK_NO_PROCESS) R> loadReworkNoProcess(); + + /** + * 删除申请单 + */ + @GetMapping(SIGN_DELETE) + R signDeleteErp(@RequestParam(value = "useCode") String useCode); + + /** + * 提交申请单 + */ + @GetMapping(SAVE_DECLARE) + R saveDeclare(@RequestParam(value = "partCode") String partCode, @RequestParam(value = "batchNo") String batchNo, + @RequestParam(value = "quantity") Integer quantity, @RequestParam(value = "remark") String remark, + @RequestParam(value = "quaLevel") String quaLevel, @RequestParam(value = "deptNo") String deptNo, + @RequestParam(value = "warnNo") String warnNo, @RequestParam(value = "locationNo") String locationNo, + @RequestParam(value = "woCode") String woCode, @RequestParam(value = "userName") String userName); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java index bd405278..7dd2835d 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java @@ -2,6 +2,7 @@ package org.springblade.erpdata.feign; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; +import org.springblade.desk.produce.pojo.entity.OrderDeclare; import org.springblade.erpdata.pojo.vo.MesRbRedoVO; import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO; import org.springblade.erpdata.pojo.vo.QueryBatchVO; @@ -21,7 +22,7 @@ import java.util.Map; public class IErpDataProduceClientFallback implements IErpDataProduceClient { @Override - public R queryBatch(String partCode) { + public R> queryBatch(String partCode) { return R.fail("获取数据失败"); } @@ -89,4 +90,15 @@ public class IErpDataProduceClientFallback implements IErpDataProduceClient { public R> loadReworkNoProcess() { return R.fail("获取数据失败"); } + + @Override + public R signDeleteErp(String useCode) { + return R.fail("获取数据失败"); + } + + @Override + public R saveDeclare(String partCode, String batchNo, Integer quantity, String remark, String quaLevel, String deptNo, String warnNo, String locationNo, String woCode, String userName) { + return R.fail("获取数据失败"); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DeductionPreserveController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DeductionPreserveController.java index cbe00976..9cb51061 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DeductionPreserveController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DeductionPreserveController.java @@ -61,7 +61,7 @@ public class DeductionPreserveController extends BladeController { return R.data(deductionPreserveService.queryData(Condition.getPage(query), deductionPreserve)); } - @GetMapping("DeclarePage") + @GetMapping("orderDeclarePage") @ApiOperationSupport(order = 4) @Operation(summary = "缺件申请列表", description = "") public R> orderDeclarePage(OrderDeclareDto orderDeclareDto, Query query) { @@ -88,7 +88,7 @@ public class DeductionPreserveController extends BladeController { @GetMapping("/queryBatch") @ApiOperationSupport(order = 6) @Operation(summary = "缺件申报-通过零件号获取批次号", description = "") - public R queryBatch(String partCode) { + public R> queryBatch(String partCode) { return R.data(orderDeclareService.queryBatch(partCode)); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java index 682fef26..7b733a21 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java @@ -5,6 +5,8 @@ import org.springblade.desk.produce.pojo.dto.SaveDeclareDto; import org.springblade.desk.produce.pojo.entity.OrderDeclare; import org.springblade.erpdata.pojo.vo.QueryBatchVO; +import java.util.List; + /** * 缺件申请记录 服务类 * @@ -14,7 +16,7 @@ public interface IOrderDeclareService extends BaseService { boolean signDelete(Long id); - QueryBatchVO queryBatch(String partCode); + List queryBatch(String partCode); boolean saveDeclare(SaveDeclareDto saveDeclareDto); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java index 9199ff00..6a91922d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java @@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.desk.produce.mapper.OrderDeclareMapper; import org.springblade.desk.produce.pojo.dto.SaveDeclareDto; import org.springblade.desk.produce.pojo.entity.*; @@ -13,6 +14,7 @@ import org.springblade.desk.produce.service.IOrderDeclareService; import org.springblade.erpdata.feign.IErpDataProduceClient; import org.springblade.erpdata.pojo.vo.QueryBatchVO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.List; @@ -36,14 +38,17 @@ public class OrderDeclareServiceImpl extends BaseServiceImpl queryBatch(String partCode) { if (StringUtils.isBlank(partCode)) { throw new ServiceException("请输入零件号!"); } @@ -51,6 +56,7 @@ public class OrderDeclareServiceImpl extends BaseServiceImpl orderDeclares = saveDeclareDto.getOrderDeclares(); if (CollectionUtils.isEmpty(orderDeclares)) { @@ -58,8 +64,11 @@ public class OrderDeclareServiceImpl extends BaseServiceImpl queryBatch(String partCode) { + public R> queryBatch(String partCode) { return R.data(erpDataProduceService.queryBatch(partCode)); } @@ -102,4 +103,14 @@ public class ErpDataProduceClient implements IErpDataProduceClient { return R.data(erpDataProduceService.loadReworkNoProcess()); } + @Override + public R signDeleteErp(String useCode) { + return R.data(erpDataProduceService.signDeleteErp(useCode)); + } + + @Override + public R saveDeclare(String partCode, String batchNo, Integer quantity, String remark, String quaLevel, String deptNo, String warnNo, String locationNo, String woCode, String userName) { + return R.data(erpDataProduceService.saveDeclare(partCode, batchNo, quantity, remark, quaLevel, deptNo, warnNo, locationNo, woCode, userName)); + } + } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataProduceMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataProduceMapper.java index 8ebe11c5..55868371 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataProduceMapper.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataProduceMapper.java @@ -19,7 +19,7 @@ import java.util.Map; */ public interface ErpDataProduceMapper extends Mapper { - QueryBatchVO queryBatch(String partCode); + List queryBatch(String partCode); List loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size); diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java index 32874b6f..b46c6d04 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java @@ -17,7 +17,7 @@ import java.util.Map; public interface IErpDataProduceService { - QueryBatchVO queryBatch(String partCode); + List queryBatch(String partCode); List loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size); @@ -44,4 +44,8 @@ public interface IErpDataProduceService { boolean receiveOrder(String redono, Integer seqno, String prtno, String splcode, Double amount, String reqqty, String userName, int reworkgyFlag); List loadReworkNoProcess(); + + Boolean signDeleteErp(String useCode); + + String saveDeclare(String partCode, String batchNo, Integer quantity, String remark, String quaLevel, String deptNo, String warnNo, String locationNo, String woCode, String userName); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java index 34e2b9c1..78688631 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java @@ -2,6 +2,7 @@ package org.springblade.erpdata.service.impl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.core.log.exception.ServiceException; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.erpdata.mapper.ErpDataProduceMapper; import org.springblade.erpdata.pojo.vo.MesRbRedoVO; @@ -32,7 +33,7 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService { private final JdbcTemplate jdbcTemplate; @Override - public QueryBatchVO queryBatch(String partCode) { + public List queryBatch(String partCode) { return erpDataProduceMapper.queryBatch(partCode); } @@ -232,4 +233,77 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService { public List loadReworkNoProcess() { return erpDataProduceMapper.loadReworkNoProcess(); } + + @Override + public Boolean signDeleteErp(String useCode) { + SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate) + // 指定存储过程名(包含 DB Link) + .withProcedureName("dba_mgr.pro_rbqjdel") + // 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题) + .withoutProcedureColumnMetaDataAccess() + // 显式声明参数 + .declareParameters( + new SqlParameter("v_invadjcode", Types.VARCHAR), + new SqlOutParameter("v_excnote", Types.VARCHAR), + new SqlOutParameter("v_excflag", Types.VARCHAR) + ); + // 2. 封装输入参数 + Map inParams = new HashMap<>(); + inParams.put("v_invadjcode", useCode); + // 3. 执行并获取结果 Map + Map resultMap = jdbcCall.execute(inParams); + + // 4. 提取输出参数 + String excflag = (String) resultMap.get("v_excflag"); + String excnote = (String) resultMap.get("v_excnote"); + return !"0".equals(excflag); + } + + @Override + public String saveDeclare(String partCode, String batchNo, Integer quantity, String remark, String quaLevel, String deptNo, String warnNo, String locationNo, String woCode, String userName) { + SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate) + // 指定存储过程名(包含 DB Link) + .withProcedureName("dba_mgr.pro_rbqjmtn") + // 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题) + .withoutProcedureColumnMetaDataAccess() + // 显式声明参数 + .declareParameters( + new SqlParameter("v_prtno", Types.VARCHAR), + new SqlParameter("v_splcode", Types.VARCHAR), + new SqlParameter("v_num", Types.INTEGER), + new SqlParameter("v_remark", Types.VARCHAR), + new SqlParameter("v_prtlotno", Types.VARCHAR), + new SqlParameter("v_deptno", Types.VARCHAR), + new SqlParameter("v_warno", Types.VARCHAR), + new SqlParameter("v_warlocno", Types.VARCHAR), + new SqlParameter("v_mtnman", Types.VARCHAR), + new SqlParameter("v_sono", Types.VARCHAR), + new SqlOutParameter("v_excnote", Types.VARCHAR), + new SqlOutParameter("v_excflag", Types.VARCHAR), + new SqlOutParameter("v_invadjcode", Types.VARCHAR) + ); + // 2. 封装输入参数 + Map inParams = new HashMap<>(); + inParams.put("v_prtno", partCode); + inParams.put("v_splcode", batchNo); + inParams.put("v_num", quantity); + inParams.put("v_remark", remark); + inParams.put("v_prtlotno", quaLevel); + inParams.put("v_deptno", deptNo); + inParams.put("v_warno", warnNo); + inParams.put("v_warlocno", locationNo); + inParams.put("v_mtnman", userName); + inParams.put("v_sono", woCode); + // 3. 执行并获取结果 Map + Map resultMap = jdbcCall.execute(inParams); + + // 4. 提取输出参数 + String excflag = (String) resultMap.get("v_excflag"); + String excnote = (String) resultMap.get("v_excnote"); + Object code = resultMap.get("v_invadjcode"); + if (code == null) { + throw new ServiceException("接口回传数据失败,请联系信息中心"); + } + return (String) code; + } }