星空对接接口开发:对同步星空接口添加主榜单生成简单生产入库表头逻辑

This commit is contained in:
16358 2025-07-01 15:29:47 +08:00
parent c76854cb9f
commit a6db6a4c41
4 changed files with 78 additions and 1 deletions

View File

@ -211,6 +211,9 @@ public class Poundmst extends BaseEntity
@Excel(name = "生产车间编号")
private String sccjNum;
//和钢喀钢组织编码
private String oaOrgNumber;
//直供商id
private String zgsId;
@ -225,6 +228,14 @@ public class Poundmst extends BaseEntity
this.zgsId = zgsId;
}
public String getOaOrgNumber() {
return oaOrgNumber;
}
public void setOaOrgNumber(String oaOrgNumber) {
this.oaOrgNumber = oaOrgNumber;
}
public String getZgsName() {
return zgsName;
}

View File

@ -6,7 +6,9 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.bill.domain.PoundBill;
import com.ruoyi.bill.domain.Poundappli;
import com.ruoyi.bill.domain.Poundmst;
import com.ruoyi.bill.service.IPoundBillService;
import com.ruoyi.bill.service.IPoundmstService;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.webApi.saveRequestBody.billHandlerUtil.BillHandler;
import com.ruoyi.webApi.saveRequestBody.billHandlerUtil.BillHandlers;
@ -14,6 +16,8 @@ import com.ruoyi.webApi.pushRequestBody.billHandlerUtil.PushBillHandler;
import com.ruoyi.webApi.pushRequestBody.billHandlerUtil.PushBillHandlers;
import com.ruoyi.webApi.pushRequestBody.requestbody.DynamicFormPushRequest;
import com.ruoyi.webApi.saveRequestBody.requestbody.DynamicFormRequest;
import com.ruoyi.webApi.saveRequestBody.requestbody.RequestData;
import com.ruoyi.webApi.saveRequestBody.requestbody.model.SPModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -28,6 +32,7 @@ import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Date;
import java.util.UUID;
@ -47,6 +52,9 @@ public class ApiPostBack {
@Autowired
private IPoundBillService poundBillService;
@Autowired
private IPoundmstService poundmstService;
private static final ObjectMapper objectMapper = new ObjectMapper();
//单据保存更新
@ -105,6 +113,42 @@ public class ApiPostBack {
poundBillService.updateById(poundBill);
}
//单据保存更新特殊逻辑 主榜单->简单生产入库单表头
public void makePoundmstFormData(String id) throws IOException {
Poundmst poundmst = poundmstService.selectPoundmstById(id);
if (poundmst == null) throw new RuntimeException("主磅单不存在!");
String url = sysConfigService.selectConfigByKey("OA_Url") +
"/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc";
//构建请求体
DynamicFormRequest request = new DynamicFormRequest("SP_InStock");
RequestData data = new RequestData();
data.setNeedReturnFields(Arrays.asList("FID"));
SPModel model = new SPModel(poundmst);
data.setModel(model);
request.setData(data);
String jsonInputString;
try {
jsonInputString = objectMapper.writeValueAsString(request);
} catch (JsonProcessingException e) {
throw new RuntimeException("JSON序列化失败" + e.getMessage());
}
String resultJSON = sendPostRequest(url, jsonInputString);
JSONObject jsonObject = JSONObject.parseObject(resultJSON);
// 获取 Result.NeedReturnData 数组,更新fid ,fentryid的值
JSONArray needReturnDataArray = jsonObject.getJSONObject("Result").getJSONArray("NeedReturnData");
String fid = "0";
for (int i = 0; i < needReturnDataArray.size(); i++) {
JSONObject needReturnDataItem = needReturnDataArray.getJSONObject(i);
// 取得 FID
fid = needReturnDataItem.getString("FID");
}
poundmst.setFid(fid);
poundmstService.updateById(poundmst);
}
//单据下推
public void pushPoundBillFormData(String id) throws IOException {
PoundBill poundBill = poundBillService.selectPoundBillById(id);

View File

@ -1,6 +1,7 @@
package com.ruoyi.webApi.saveRequestBody.requestbody.model;
import com.ruoyi.bill.domain.PoundBill;
import com.ruoyi.bill.domain.Poundmst;
import com.ruoyi.webApi.saveRequestBody.requestbody.FNumberRef;
import com.ruoyi.webApi.saveRequestBody.requestbody.Ref;
import com.ruoyi.webApi.saveRequestBody.requestbody.entity.SPEntity;
@ -70,6 +71,22 @@ public class SPModel extends RequestModel {
};
}
public SPModel(Poundmst bill) {
setFID(bill.getFid());
this.FBillType = new Ref<>(new FNumberRef("JDSCRK01_SYS"));
this.FDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
this.FStockOrgId = new Ref<>(new FNumberRef(bill.getOaOrgNumber()));
this.FPrdOrgId = new Ref<>(new FNumberRef(bill.getOaOrgNumber()));
this.FCurrId = new Ref<>(new FNumberRef("PRE001"));
this.FOwnerTypeId0 = "BD_OwnerOrg";
this.FOwnerId0 = new Ref<>(new FNumberRef(bill.getOaOrgNumber()));
this.F_YWBD = bill.getPoundid();
this.F_SJYWBD = bill.getPoundid();
this.F_ZGS = bill.getZgsId();
this.F_FHDW = bill.getSendunitid();
this.F_SHDW = bill.getRecunitid();
}
public SPEntity[] getFEntity() {
return FEntity;
}

View File

@ -51,13 +51,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="fid" column="fid" />
<result property="fentity_fentryid" column="fentity_fentryid" />
<result property="oabilltype" column="oabilltype" />
<result property="oaOrgNumber" column="oaOrgNumber" />
<result property="cangKuName" column="cangKuName" />
<result property="cangKuNumber" column="cangKuNumber" />
<result property="sccjNum" column="sccjNum" />
</resultMap>
<sql id="selectPoundmstVo">
select id, usrcode, srcbllknd, srcbllid, bsndt, bsnid, bllstt, itmno, itmcode, itmname, specification, msrunit, trnunitid, trnunitname, bsunitid, bsunitname, sendunitid, sendunitname, recunitid, recunitname, poundid, poundname, boilerno, steeno, unitlen, carnosum, carmqtysum, qty, resQty, indexid, steeltype, linetype, lzno, bbno, crtorgid, isinuse, crtdt, crtopr, lstedtdt, lstedtopr, remark, zgsId, zgsName, fid, fentity_fentryid, oabilltype, cangKuName, cangKuNumber, sccjNum from t_data_poundmst
select id, usrcode, srcbllknd, srcbllid, bsndt, bsnid, bllstt, itmno, itmcode, itmname, specification, msrunit, trnunitid, trnunitname, bsunitid, bsunitname, sendunitid, sendunitname, recunitid, recunitname, poundid, poundname, boilerno, steeno, unitlen, carnosum, carmqtysum, qty, resQty, indexid, steeltype, linetype, lzno, bbno, crtorgid, isinuse, crtdt, crtopr, lstedtdt, lstedtopr, remark, zgsId, zgsName, fid, fentity_fentryid, oabilltype, oaOrgNumber, cangKuName, cangKuNumber, sccjNum from t_data_poundmst
</sql>
<select id="selectPoundmstList" parameterType="Poundmst" resultMap="PoundmstResult">
@ -105,6 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fid != null "> and fid = #{fid}</if>
<if test="fentity_fentryid != null "> and fentity_fentryid = #{fentity_fentryid}</if>
<if test="oabilltype != null and oabilltype != ''"> and oabilltype = #{oabilltype}</if>
<if test="oaOrgNumber != null and oaOrgNumber != ''"> and oaOrgNumber = #{oaOrgNumber}</if>
<if test="cangKuName != null and cangKuName != ''"> and cangKuName = #{cangKuName}</if>
<if test="cangKuNumber != null and cangKuNumber != ''"> and cangKuNumber = #{cangKuNumber}</if>
<if test="sccjNum != null and sccjNum != ''"> and sccjNum = #{sccjNum}</if>
@ -165,6 +167,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fid != null">fid,</if>
<if test="fentity_fentryid != null">fentity_fentryid,</if>
<if test="oabilltype != null">oabilltype,</if>
<if test="oaOrgNumber != null">oaOrgNumber,</if>
<if test="cangKuName != null">cangKuName,</if>
<if test="cangKuNumber != null">cangKuNumber,</if>
<if test="sccjNum != null">sccjNum,</if>
@ -217,6 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fid != null">#{fid},</if>
<if test="fentity_fentryid != null">#{fentity_fentryid},</if>
<if test="oabilltype != null">#{oabilltype},</if>
<if test="oaOrgNumber != null">#{oaOrgNumber},</if>
<if test="cangKuName != null">#{cangKuName},</if>
<if test="cangKuNumber != null">#{cangKuNumber},</if>
<if test="sccjNum != null">#{sccjNum},</if>
@ -277,6 +281,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fid != null">fid = #{fid},</if>
<if test="fentity_fentryid != null">fentity_fentryid = #{fentity_fentryid},</if>
<if test="oabilltype != null">oabilltype = #{oabilltype},</if>
<if test="oaOrgNumber != null">oaOrgNumber = #{oaOrgNumber},</if>
<if test="cangKuName != null">cangKuName = #{cangKuName},</if>
<if test="cangKuNumber != null">cangKuNumber = #{cangKuNumber},</if>
<if test="sccjNum != null">sccjNum = #{sccjNum},</if>