仓库修改

liweidong
wusiyu 1 day ago
parent f5780f250e
commit f1ffdc2dc9
  1. 9
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java
  2. 6
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java
  3. 6
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java
  4. 3
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java
  5. 59
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java
  6. 21
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StBuyOrderServiceImpl.java
  7. 28
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StWmsRequestServiceImpl.java

@ -6,6 +6,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.wms.pojo.dto.ErpStPurOtherDTO;
import org.springblade.wms.pojo.entity.StRealtimeStock;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.format.annotation.DateTimeFormat;
@ -50,6 +51,8 @@ public interface IErpDataWmsClient {
String SEND_RBFIRT_CHK = API_PREFIX + "/sendRbfirtChk";
String SEND_PUR_OTHER_REST = API_PREFIX + "/sendPurOtherRest";
/**
* 到期送检发送erp
*/
@ -116,4 +119,10 @@ public interface IErpDataWmsClient {
@PostMapping(GET_MAINTEN_STATUS)
R<MeasuringToolMaintainVO> getMaintenStatus(@RequestParam("goodsCode")String goodsCode, @RequestParam("shCode")String shCode,
@RequestParam("location")String location, @RequestParam("createTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date createTime);
/**
* 额外计划发送erp
*/
@PostMapping(SEND_PUR_OTHER_REST)
R<String> sendPurOtherRest(@RequestBody ErpStPurOtherDTO dto) throws BusinessException;
}

@ -4,6 +4,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.wms.pojo.dto.ErpStPurOtherDTO;
import org.springblade.wms.pojo.entity.StRealtimeStock;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Component;
@ -78,4 +79,9 @@ public class IErpDataWmsClientFallback implements IErpDataWmsClient{
return R.fail("获取数据失败");
}
@Override
public R<String> sendPurOtherRest(@RequestBody ErpStPurOtherDTO dto) {
return R.fail("获取数据失败");
}
}

@ -9,6 +9,7 @@ import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.erpdata.service.IErpDataWmsService;
import org.springblade.wms.pojo.dto.ErpStPurOtherDTO;
import org.springblade.wms.pojo.entity.StRealtimeStock;
import org.springframework.web.bind.annotation.RestController;
@ -81,4 +82,9 @@ public class ErpDataWmsClient implements IErpDataWmsClient{
public R<MeasuringToolMaintainVO> getMaintenStatus(String goodsCode, String shCode, String location, Date createTime) {
return R.data(erpDataWmsService.getMaintenStatus(goodsCode, shCode, location, createTime));
}
@Override
public R<String> sendPurOtherRest(ErpStPurOtherDTO dto) throws BusinessException {
return R.data(erpDataWmsService.sendPurOtherRest(dto));
}
}

@ -4,6 +4,7 @@ import org.springblade.common.exception.BusinessException;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.wms.pojo.dto.ErpStPurOtherDTO;
import org.springblade.wms.pojo.entity.StRealtimeStock;
import java.util.Date;
@ -38,4 +39,6 @@ public interface IErpDataWmsService {
MeasuringToolMaintainVO getMaintenStatus(String goodsCode, String shCode, String location, Date createTime);
String sendRbfirtChk(String goodsCode, String goodsName) throws BusinessException;
String sendPurOtherRest(ErpStPurOtherDTO dto) throws BusinessException;
}

@ -10,6 +10,7 @@ import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.erpdata.service.IErpDataWmsService;
import org.springblade.wms.pojo.dto.ErpStPurOtherDTO;
import org.springblade.wms.pojo.entity.StRealtimeStock;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.SqlOutParameter;
@ -17,6 +18,7 @@ import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.sql.Types;
import java.util.Date;
import java.util.HashMap;
@ -94,7 +96,7 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
public String sendErpBuyRequest(String extraBill, Double qty, String ldapName) throws BusinessException{
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbinvdeptreqmtn")
.withProcedureName("dba_mgr.pro_rbinvdeptreqmtnmes2")
// 关闭元数据访问(DBLink 必须加)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数(顺序必须和存储过程一致)
@ -341,6 +343,61 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
return excflag;
}
@Override
public String sendPurOtherRest(ErpStPurOtherDTO dto) throws BusinessException {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withProcedureName("dba_mgr.pro_rbpurotherrp")
.withoutProcedureColumnMetaDataAccess()
// 严格按存储过程定义顺序声明参数
.declareParameters(
// 全部IN输入参数
new SqlParameter("v_prtno", Types.VARCHAR),
new SqlParameter("v_prtlotno", Types.VARCHAR),
new SqlParameter("v_reqdat", Types.VARCHAR),
new SqlParameter("v_reqqty", Types.NUMERIC),
new SqlParameter("v_reqdate", Types.VARCHAR),
new SqlParameter("v_plnarea", Types.VARCHAR),
new SqlParameter("v_reqstat", Types.VARCHAR),
new SqlParameter("v_reqctlr", Types.VARCHAR),
new SqlParameter("v_checkman", Types.VARCHAR),
new SqlParameter("v_checkdate", Types.VARCHAR),
new SqlParameter("v_note", Types.VARCHAR),
// OUT输出参数
new SqlOutParameter("v_excnote", Types.VARCHAR),
new SqlOutParameter("v_excflag", Types.VARCHAR),
new SqlOutParameter("v_orderno", Types.VARCHAR)
);
// 封装入参,空值统一转空字符串避免Oracle null报错
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_prtno", dto.getPrtno() == null ? "" : dto.getPrtno());
inParams.put("v_prtlotno", dto.getPrtlotno() == null ? "" : dto.getPrtlotno());
inParams.put("v_reqdat", dto.getReqdat() == null ? "" : dto.getReqdat());
inParams.put("v_reqqty", dto.getReqqty() == null ? BigDecimal.ZERO : dto.getReqqty());
inParams.put("v_reqdate", dto.getReqdate() == null ? "" : dto.getReqdate());
inParams.put("v_plnarea", dto.getPlnarea() == null ? "" : dto.getPlnarea());
inParams.put("v_reqstat", dto.getReqstat() == null ? "" : dto.getReqstat());
inParams.put("v_reqctlr", dto.getReqctlr() == null ? "" : dto.getReqctlr());
inParams.put("v_checkman", dto.getCheckman() == null ? "" : dto.getCheckman());
inParams.put("v_checkdate", dto.getCheckdate() == null ? "" : dto.getCheckdate());
inParams.put("v_note", dto.getNote() == null ? "" : dto.getNote());
// 执行存储过程
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 提取输出参数
String excflag = (String) resultMap.get("v_excflag");
String excnote = (String) resultMap.get("v_excnote");
String orderNo = (String) resultMap.get("v_orderno");
// 业务异常判断
if ("0".equals(excflag)) {
throw new BusinessException("MES生成额外计划发送ERP失败,请联系信息部!!! " + excnote);
}
return orderNo;
}
@Override
public StGoodsExtStatusVO getGoodsExtStatus(String goodsCode){
return erpDataWmsMapper.getGoodsExtStatus(goodsCode);

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
@ -311,10 +312,10 @@ public class StBuyOrderServiceImpl extends BaseServiceImpl<StBuyOrderMapper, StB
// dto.setReqdept(AuthUtil.getUser().getDeptId().toString()); // 当前人部门"3400"
dto.setReqdept("3400"); // 当前人部门"3400"
dto.setReqdat(bo.getNeedDate() == null ? "" : DateUtil.format(bo.getNeedDate(), "yyyy-MM-dd"));
Double ratio = goods.getConversionRatio();
if (ratio != null && ratio != 0) {
dto.setReqqty(BigDecimal.valueOf(Optional.ofNullable(bo.getBuyQty() * ratio).orElse(0D)));
}
// Double ratio = goods.getConversionRatio();
// if (ratio != null && ratio != 0) {
// dto.setReqqty(BigDecimal.valueOf(Optional.ofNullable(bo.getBuyQty() * ratio).orElse(0D)));
// }
dto.setReqqty(BigDecimal.valueOf(Optional.ofNullable(bo.getBuyQty()).orElse(0D)));
dto.setReqdate(bo.getDeclareDate() == null ? "" : DateUtil.format(bo.getDeclareDate(), "yyyy-MM-dd"));
dto.setPlnarea(bo.getPlanArea());
@ -326,10 +327,18 @@ public class StBuyOrderServiceImpl extends BaseServiceImpl<StBuyOrderMapper, StB
User checkMan = userR.getData();
dto.setCheckman(checkMan.getAccount() == null ? "" : checkMan.getAccount());
pdList.add(dto);
try {
String orderNo = erpDataWmsClient.sendPurOtherRest(dto).getData();
httpUpdateBo(dto.getBoId(), orderNo);
} catch (BusinessException e) {
throw new RuntimeException("额外计划发送erp失败:" + e.getMessage());
}
}
// 调用 ERP 接口(原逻辑)
stHttpRequestService.sendPurOtherRest(pdList);
// 调用 ERP 接口
// stHttpRequestService.sendPurOtherRest(pdList);
// 更新订单状态为已提交(原逻辑)
for (StBuyOrder bo : list) {

@ -202,11 +202,11 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl<StWmsRequestMapper,
StBuyOrder stBuyOrder = stBuyOrderService.getById(request.getBoId());
Double reqQty = request.getRequestQty();
StGoods goods = stGoodsMapper.selectById(stBuyOrder.getGoodsId());
Double ratio = goods.getConversionRatio();
if (reqQty != null && ratio != null && ratio != 0) {
reqQty = reqQty * ratio;
}
// StGoods goods = stGoodsMapper.selectById(stBuyOrder.getGoodsId());
// Double ratio = goods.getConversionRatio();
// if (reqQty != null && ratio != null && ratio != 0) {
// reqQty = reqQty * ratio;
// }
R<User> ruser = userClient.userInfoById(request.getCreateUser());
User user = ruser.getData();
@ -241,11 +241,11 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl<StWmsRequestMapper,
Double oldQty = oldRequest.getRequestQty();
Double newQty = stWmsRequest.getRequestQty();
Double ratio = goods.getConversionRatio();
if (ratio != null && ratio != 0) {
oldQty = oldQty * ratio;
newQty = newQty * ratio;
}
// Double ratio = goods.getConversionRatio();
// if (ratio != null && ratio != 0) {
// oldQty = oldQty * ratio;
// newQty = newQty * ratio;
// }
try {
erpDataWmsClient.createOrReplace(
stBuyOrder.getExtraBill(),
@ -276,10 +276,10 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl<StWmsRequestMapper,
StGoods goods = stGoodsMapper.selectById(stBuyOrder.getGoodsId());
Double reqQty = stWmsRequest.getRequestQty();
Double ratio = goods.getConversionRatio();
if (reqQty != null && ratio != null && ratio != 0) {
reqQty = reqQty * ratio;
}
// Double ratio = goods.getConversionRatio();
// if (reqQty != null && ratio != null && ratio != 0) {
// reqQty = reqQty * ratio;
// }
if (stWmsRequest == null) continue;
try {
erpDataWmsClient.createOrReplace(

Loading…
Cancel
Save