模具申报下发erp-sjx

master
sunjianxi 4 days ago
parent 84267e50e4
commit 1a29662a48
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldApply.java
  2. 17
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java
  3. 6
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java
  4. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java
  5. 8
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java
  6. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java
  7. 54
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java

@ -104,4 +104,6 @@ public class MoldApply extends BaseEntity {
*/ */
@TableField(value = "MEMO") @TableField(value = "MEMO")
private String memo; private String memo;
private Long parentId;
} }

@ -1,19 +1,18 @@
package org.springblade.erpdata.feign; package org.springblade.erpdata.feign;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import org.springblade.common.constant.LauncherConstant; import org.springblade.common.constant.LauncherConstant;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.erpdata.pojo.vo.*; import org.springblade.erpdata.pojo.vo.*;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
/** /**
@ -26,7 +25,7 @@ import java.util.Map;
) )
public interface IErpDataProduceClient { public interface IErpDataProduceClient {
String API_PREFIX = "/feign/erpdata/produce"; String API_PREFIX = "/feign/client/erpdata/produce";
String QUERY_BATCH = API_PREFIX + "/queryBatch"; String QUERY_BATCH = API_PREFIX + "/queryBatch";
String REWORK_ORDER = API_PREFIX + "/loadReworkOrder"; String REWORK_ORDER = API_PREFIX + "/loadReworkOrder";
String REWORK_ORDER_SIZE = API_PREFIX + "/loadReworkOrderSize"; String REWORK_ORDER_SIZE = API_PREFIX + "/loadReworkOrderSize";
@ -47,6 +46,7 @@ public interface IErpDataProduceClient {
String CHECK_COMPLETE = API_PREFIX + "/checkComplete"; String CHECK_COMPLETE = API_PREFIX + "/checkComplete";
String PRO_RBINVIOGEN = API_PREFIX + "/proRbinviogen"; String PRO_RBINVIOGEN = API_PREFIX + "/proRbinviogen";
String PRO_RBTRANSFERLEV = API_PREFIX + "/proRbtransferlev"; String PRO_RBTRANSFERLEV = API_PREFIX + "/proRbtransferlev";
String CREATE_MOLD_PLAN = API_PREFIX + "/createMoldPlan";
/** /**
@ -215,4 +215,15 @@ public interface IErpDataProduceClient {
@RequestParam(value = "recDept", required = false) String recDept, @RequestParam(value = "roamNo", required = false) String roamNo, @RequestParam(value = "recDept", required = false) String recDept, @RequestParam(value = "roamNo", required = false) String roamNo,
@RequestParam(value = "deliverKey", required = false) String deliverKey, @RequestParam(value = "testQty") Integer testQty, @RequestParam(value = "deliverKey", required = false) String deliverKey, @RequestParam(value = "testQty") Integer testQty,
@RequestParam(value = "lossQty") Integer lossQty, @RequestParam(value = "scrapQty") Integer scrapQty); @RequestParam(value = "lossQty") Integer lossQty, @RequestParam(value = "scrapQty") Integer scrapQty);
@GetMapping(CREATE_MOLD_PLAN)
R<String> createMoldPlan(@RequestParam(value = "partCode", required = false)String partCode,
@RequestParam(value = "moCode", required = false)String moCode,
@RequestParam(value = "plantype", required = false)String plantype,
@RequestParam(value = "quantity", required = false)Integer quantity,
@RequestParam(value = "needDate", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date needDate,
@RequestParam(value = "level", required = false)String level,
@RequestParam(value = "keeper", required = false)String keeper,
@RequestParam(value = "createMan", required = false)String createMan,
@RequestParam(value = "memo", required = false)String memo);
} }

@ -2,7 +2,6 @@ package org.springblade.erpdata.feign;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.erpdata.pojo.vo.*; import org.springblade.erpdata.pojo.vo.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -119,4 +118,9 @@ public class IErpDataProduceClientFallback implements IErpDataProduceClient {
return R.fail("获取数据失败"); return R.fail("获取数据失败");
} }
@Override
public R<String> createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level, String keeper, String createMan, String memo) {
return R.fail("获取数据失败");
}
} }

@ -1,14 +1,20 @@
package org.springblade.desk.order.service.impl; package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.desk.order.mapper.MoldApplyMapper; import org.springblade.desk.order.mapper.MoldApplyMapper;
import org.springblade.desk.order.mapper.MoldDemandMapper;
import org.springblade.desk.order.pojo.entity.MoldApply; import org.springblade.desk.order.pojo.entity.MoldApply;
import org.springblade.desk.order.pojo.entity.MoldDemand;
import org.springblade.desk.order.pojo.enums.MoldApplyEnum; import org.springblade.desk.order.pojo.enums.MoldApplyEnum;
import org.springblade.desk.order.service.IMoldApplyService; import org.springblade.desk.order.service.IMoldApplyService;
import org.springblade.erpdata.feign.IErpDataProduceClient;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.util.Date;
@ -23,6 +29,11 @@ import java.util.List;
@Service @Service
public class MoldApplyServiceImpl extends BaseServiceImpl<MoldApplyMapper, MoldApply> implements IMoldApplyService { public class MoldApplyServiceImpl extends BaseServiceImpl<MoldApplyMapper, MoldApply> implements IMoldApplyService {
private final MoldDemandMapper moldDemandMapper;
@Resource
private IErpDataProduceClient erpDataProduceClient;
@Override @Override
public IPage<MoldApply> selectPage(IPage<MoldApply> page, MoldApply entity) { public IPage<MoldApply> selectPage(IPage<MoldApply> page, MoldApply entity) {
List<MoldApply> dataList = baseMapper.selectPage(page, entity); List<MoldApply> dataList = baseMapper.selectPage(page, entity);
@ -46,8 +57,21 @@ public class MoldApplyServiceImpl extends BaseServiceImpl<MoldApplyMapper, MoldA
@Override @Override
public boolean saveBatchByPage(List<MoldApply> applyList) { public boolean saveBatchByPage(List<MoldApply> applyList) {
User createMan = UserCache.getUser(AuthUtil.getUserId());
for (MoldApply moldApply : applyList) { for (MoldApply moldApply : applyList) {
MoldDemand moldDemand = moldDemandMapper.selectById(moldApply.getId());
moldApply.setId(null);
moldApply.setStatus(MoldApplyEnum.STATUS_CREATE.getCode()); moldApply.setStatus(MoldApplyEnum.STATUS_CREATE.getCode());
User keeper = UserCache.getUser(moldApply.getKeeper());
String erpWoCode = erpDataProduceClient.createMoldPlan(moldApply.getPartCode(),moldApply.getToolCode(),
moldApply.getPlanTypeCode(),moldApply.getApplyNum().intValue(),
moldApply.getNeedDate(),moldApply.getQuaLevel(),
keeper.getRealName(),createMan.getRealName(),moldApply.getMemo()).getData();
moldDemand.setMafStatus(11002);
moldDemand.setErpWoCode(erpWoCode);
moldDemand.setKeeper(moldApply.getKeeper());
moldDemand.setReleaser(moldApply.getReleaser());
moldDemandMapper.updateById(moldDemand);
} }
return saveBatch(applyList); return saveBatch(applyList);

@ -5,10 +5,8 @@ import lombok.AllArgsConstructor;
import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.erpdata.pojo.vo.*; import org.springblade.erpdata.pojo.vo.*;
import org.springblade.erpdata.service.IErpDataProduceService; import org.springblade.erpdata.service.IErpDataProduceService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Date; import java.util.Date;
@ -129,4 +127,10 @@ public class ErpDataProduceClient implements IErpDataProduceClient {
return R.data(erpDataProduceService.proRbtransferlev(hrCode, ypCode, woCode, cardNo, partCode, batchNo, createMan, createTime, handoverUnit, handoverQty, recDept, roamNo, deliverKey, testQty, lossQty, scrapQty)); return R.data(erpDataProduceService.proRbtransferlev(hrCode, ypCode, woCode, cardNo, partCode, batchNo, createMan, createTime, handoverUnit, handoverQty, recDept, roamNo, deliverKey, testQty, lossQty, scrapQty));
} }
@Override
public R<String> createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level, String keeper, String createMan, String memo) {
return R.data(erpDataProduceService.createMoldPlan(partCode, moCode, plantype, quantity, needDate, level, keeper, createMan, memo));
}
} }

@ -3,7 +3,6 @@ package org.springblade.erpdata.service;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.erpdata.pojo.vo.*; import org.springblade.erpdata.pojo.vo.*;
import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -60,4 +59,7 @@ public interface IErpDataProduceService {
ErpReturnDataVO proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty); ErpReturnDataVO proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty);
ErpReturnDataVO proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, String createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty); ErpReturnDataVO proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, String createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty);
String createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level,
String keeper, String createMan, String memo);
} }

@ -3,6 +3,7 @@ package org.springblade.erpdata.service.impl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException; import org.springblade.core.log.exception.ServiceException;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.erpdata.mapper.ErpDataProduceMapper; import org.springblade.erpdata.mapper.ErpDataProduceMapper;
@ -465,4 +466,57 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService {
erpReturnDataVO.setExcnote((String) resultMap.get("v_excnote")); erpReturnDataVO.setExcnote((String) resultMap.get("v_excnote"));
return erpReturnDataVO; return erpReturnDataVO;
} }
@Override
public String createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level,
String keeper, String createMan, String memo) {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbtoolreqm")
// 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数
.declareParameters(
new SqlParameter("v_prtno", Types.VARCHAR), // IN
new SqlParameter("v_toolcode", Types.VARCHAR), // IN
new SqlParameter("v_plntype", Types.VARCHAR), // IN
new SqlParameter("v_tlreqqty", Types.INTEGER), // IN
new SqlParameter("v_tlreqdat", Types.DATE), // IN
new SqlParameter("v_prtmdept", Types.VARCHAR), // IN
new SqlParameter("v_prtlotno", Types.VARCHAR), // IN
new SqlParameter("v_WARCTLR", Types.VARCHAR), // IN
new SqlParameter("v_operator", Types.VARCHAR), // IN
new SqlParameter("v_remark", Types.VARCHAR), // IN
new SqlParameter("v_stat", Types.VARCHAR), // IN
new SqlParameter("v_toolid1", Types.VARCHAR), // IN
new SqlOutParameter("v_excnote", Types.VARCHAR),// OUT
new SqlOutParameter("v_excflag", Types.VARCHAR), // OUT
new SqlOutParameter("v_toolid", Types.VARCHAR) // OUT
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_prtno", partCode);
inParams.put("v_toolcode", moCode);
inParams.put("v_plntype", plantype);
inParams.put("v_tlreqqty", quantity);
inParams.put("v_tlreqdat", needDate);
inParams.put("v_prtmdept", "3600");
inParams.put("v_prtlotno", level);
inParams.put("v_WARCTLR", keeper);
inParams.put("v_operator", createMan);
inParams.put("v_remark", StringUtils.isBlank(memo) ? "" : memo);
inParams.put("v_stat", "0");
inParams.put("v_toolid1", "");
// 3. 执行并获取结果 Map
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 提取输出参数
String excflag = (String) resultMap.get("v_excflag");
String excnote = (String) resultMap.get("v_excnote");
String wxno = (String) resultMap.get("v_toolid");
return wxno;
}
} }

Loading…
Cancel
Save