【泛微盘点新增接口】

This commit is contained in:
tanfengling@x-ri.com 2025-10-25 18:16:17 +08:00
parent b77118320b
commit 479af662f4
1 changed files with 318 additions and 0 deletions

View File

@ -3342,6 +3342,324 @@ public class FWImpl {
return fwRestfulUtils.doBillAction(mainArr, detailRootArr, "采购费用申请流程", fw_wfid_zgyfd, billno, tqq9_fwrequestid); return fwRestfulUtils.doBillAction(mainArr, detailRootArr, "采购费用申请流程", fw_wfid_zgyfd, billno, tqq9_fwrequestid);
} }
/**
* 盘点表推送泛微
*/
public static String pushFwImInvCountBill(DynamicObject bill) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String tqq9_fwrequestid = bill.getString("tqq9_fwrequestid");//泛微流程ID
String billno = bill.getString("billno");//流程编号
DynamicObject creator = bill.getDynamicObject("creator");//创建人
creator = BusinessDataServiceHelper.loadSingle(creator.getPkValue(), "bos_user", "tqq9_fwuserid,id,number");
String sqr = creator.getString("tqq9_fwuserid");//申请人
String bm = null;//部门
DynamicObject tqq9_dept = bill.getDynamicObject("tqq9_dept");//创建部门
if (tqq9_dept != null) {
String number = tqq9_dept.getString("number");
bm = FWUtils.getFwOrgNumberByKdOrgNumber(number);
}
Date createtime = bill.getDate("createtime");
String sqrq = sdf.format(createtime);//申请日期
DynamicObject org = bill.getDynamicObject("org");//库存组织
String orgNumber = org.getString("number");
String ywgz = FWUtils.getFwOrgNumberByKdOrgNumber(orgNumber);//业务归属
String kczz = ywgz;//库存组织
String djlx = null;//单据类型
DynamicObject billtype = bill.getDynamicObject("billtype");//单据类型
if (null != billtype) {
djlx = billtype.getString("name");
}
String zcrq = null;//账存日期
Date invaccdate = bill.getDate("invaccdate");
if (null != invaccdate) {
zcrq = sdf.format(invaccdate);
}
String kgbm = null;// 库管部门
DynamicObject dept = bill.getDynamicObject("dept");
if (null != dept) {
String number = dept.getString("number");
kgbm = FWUtils.getFwOrgNumberByKdOrgNumber(number);
}
String kgy = null;//库管员
DynamicObject operator = bill.getDynamicObject("operator");
if (null != operator) {
DynamicObject kgyUser = BusinessDataServiceHelper.loadSingle("bos_user", "tqq9_fwuserid,id,number",
new QFilter[]{new QFilter("number", QCP.equals, operator.getString("operatornumber"))});
kgy = kgyUser.getString("tqq9_fwuserid");
}
int sjbftj = 0;//数据备份条件 0-即时库存 1-截止日期库存
//即时库存 invacc
//截止日期库存 enddateinvacc
String backupcondition = bill.getString("backupcondition");
if ("invacc".equals(backupcondition)) {
sjbftj = 0;
} else if ("enddateinvacc".equals(backupcondition)) {
sjbftj = 1;
}
String pdr = null;//盘点人
DynamicObject checker = bill.getDynamicObject("checker");
if (null != checker) {
DynamicObject kgyUser = BusinessDataServiceHelper.loadSingle("bos_user", "tqq9_fwuserid,id,number",
new QFilter[]{new QFilter("number", QCP.equals, checker.getString("operatornumber"))});
pdr = kgyUser.getString("tqq9_fwuserid");
}
String fpr = null;//复盘人
DynamicObject checker2nd = bill.getDynamicObject("checker2nd");
if (null != checker2nd) {
DynamicObject kgyUser = BusinessDataServiceHelper.loadSingle("bos_user", "tqq9_fwuserid,id,number",
new QFilter[]{new QFilter("number", QCP.equals, checker2nd.getString("operatornumber"))});
fpr = kgyUser.getString("tqq9_fwuserid");
}
String bz = bill.getString("comment");//备注
int pdszmrzsz = 0;//盘点数值默认值设置 0-账存数量
String pdfabh = bill.getString("schemenumber");//盘点方案编号
String pdfamc = bill.getString("schemename");//盘点方案名称
String pdfs = null;
String counttype = bill.getString("counttype");//盘点方式 定期盘点 A
if ("A".equals(counttype)) {
pdfs = "定期盘点";
}
//0- 1-
int sfqyfp = 0;//是否启用复盘
boolean enablecheck = bill.getBoolean("enablecheck");
if (enablecheck) {
sfqyfp = 0;
} else {
sfqyfp = 1;
}
int sfbdzcy;//是否不调整差异
boolean nogenotherinout = bill.getBoolean("nogenotherinout");
if (nogenotherinout) {
sfbdzcy = 0;
} else {
sfbdzcy = 1;
}
//取数节点 主表 选择框-下拉框 0-截止日期初始 1-截止日期结存
//截止日期初始 start
//截止日期结存 end
int qsjd = 0;
String accessnode = bill.getString("accessnode");
if ("start".equals(accessnode)) {
qsjd = 0;
} else if ("end".equals(accessnode)) {
qsjd = 1;
}
int sfpcbd = 0;//是否排除补单
boolean excludeenddate = bill.getBoolean("excludeenddate");
if (excludeenddate) {
sfpcbd = 0;
} else {
sfpcbd = 1;
}
JSONObject detail1 = new JSONObject();
JSONArray recordsArr1 = new JSONArray();
DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry");
for (DynamicObject entry : entries) {
String wlbm = null;//物料编码
String wlmc = null;//物料名称
String ggxh = null;//规格型号
DynamicObject material = entry.getDynamicObject("material");//物料编码
if (null != material) {
wlbm = material.getString("masterid.number");
wlmc = material.getString("masterid.number");
ggxh = material.getString("masterid.modelnum");
}
String ph = entry.getString("lotnumber");//批号
String scrq = null;//生产日期
Date producedate = entry.getDate("producedate");
if (null != producedate) {
scrq = sdf.format(producedate);
}
String dqrq = null;//到期日期
Date expirydate = entry.getDate("expirydate");
if (null != expirydate) {
dqrq = sdf.format(expirydate);
}
String jldw = null;//计量单位
DynamicObject unit = entry.getDynamicObject("unit");
if (null != unit) {
jldw = unit.getString("name");
}
BigDecimal pdsl = entry.getBigDecimal("qty");//盘点数量
BigDecimal zcsl = entry.getBigDecimal("qtyacc");//账存数量
BigDecimal dzsl = entry.getBigDecimal("adjustqty");//调整数量
BigDecimal fpsl = entry.getBigDecimal("checkqty");//复盘数量
BigDecimal pysl = entry.getBigDecimal("gainqty");//盘盈数量
BigDecimal pksl = entry.getBigDecimal("lossqty");//盘亏数量
String ck = null;
DynamicObject warehouse = entry.getDynamicObject("warehouse");//仓库
if (null != warehouse) {
ck = warehouse.getString("number");
}
JSONObject e1 = new JSONObject();
e1.put("fieldName", "wlbm");
e1.put("fieldValue", wlbm);
JSONObject e2 = new JSONObject();
e2.put("fieldName", "wlmc");
e2.put("fieldValue", wlmc);
JSONObject e3 = new JSONObject();
e3.put("fieldName", "ggxh");
e3.put("fieldValue", ggxh);
JSONObject e4 = new JSONObject();
e4.put("fieldName", "ph");
e4.put("fieldValue", ph);
JSONObject e5 = new JSONObject();
e5.put("fieldName", "scrq");
e5.put("fieldValue", scrq);
JSONObject e6 = new JSONObject();
e6.put("fieldName", "dqrq");
e6.put("fieldValue", dqrq);
JSONObject e7 = new JSONObject();
e7.put("fieldName", "jldw");
e7.put("fieldValue", jldw);
JSONObject e8 = new JSONObject();
e8.put("fieldName", "pdsl");
e8.put("fieldValue", pdsl == null || pdsl.compareTo(BigDecimal.ZERO) == 0 ? 0 : pdsl);
JSONObject e9 = new JSONObject();
e9.put("fieldName", "zcsl");
e9.put("fieldValue", zcsl == null || zcsl.compareTo(BigDecimal.ZERO) == 0 ? 0 : zcsl);
JSONObject e10 = new JSONObject();
e10.put("fieldName", "dzsl");
e10.put("fieldValue", dzsl == null || dzsl.compareTo(BigDecimal.ZERO) == 0 ? 0 : dzsl);
JSONObject e11 = new JSONObject();
e11.put("fieldName", "fpsl");
e11.put("fieldValue", fpsl == null || fpsl.compareTo(BigDecimal.ZERO) == 0 ? 0 : fpsl);
JSONObject e12 = new JSONObject();
e12.put("fieldName", "pysl");
e12.put("fieldValue", pysl == null || pysl.compareTo(BigDecimal.ZERO) == 0 ? 0 : pysl);
JSONObject e13 = new JSONObject();
e13.put("fieldName", "pksl");
e13.put("fieldValue", pksl == null || pksl.compareTo(BigDecimal.ZERO) == 0 ? 0 : pksl);
JSONObject e14 = new JSONObject();
e14.put("fieldName", "ck");
e14.put("fieldValue", ck);
List<JSONObject> elist = Arrays.asList(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14);
JSONArray recordsArr = new JSONArray();
recordsArr.addAll(elist);
JSONObject recordObj = new JSONObject();
recordObj.put("recordOrder", 0);
recordObj.put("workflowRequestTableFields", recordsArr);
recordsArr1.add(recordObj);
}
detail1.put("tableDBName", "formtable_main_114_dt1");
detail1.put("workflowRequestTableRecords", recordsArr1);
if (StringUtils.isNotBlank(tqq9_fwrequestid)) {
detail1.put("deleteAll", "1");
}
JSONArray detailRootArr = new JSONArray();
detailRootArr.add(detail1);
//构建主表数据
JSONObject m1 = new JSONObject();//
m1.put("fieldName", "KDBillType");
m1.put("fieldValue", "im_invcountbill");
JSONObject m2 = new JSONObject();//
m2.put("fieldName", "lcbh");
m2.put("fieldValue", billno);
JSONObject m3 = new JSONObject();//
m3.put("fieldName", "sqr");
m3.put("fieldValue", sqr);
JSONObject m4 = new JSONObject();//
m4.put("fieldName", "bm");
m4.put("fieldValue", bm);
JSONObject m5 = new JSONObject();//
m5.put("fieldName", "sqrq");
m5.put("fieldValue", sqrq);
JSONObject m6 = new JSONObject();//
m6.put("fieldName", "ywgz");
m6.put("fieldValue", ywgz);
JSONObject m7 = new JSONObject();//
m7.put("fieldName", "kczz");
m7.put("fieldValue", kczz);
JSONObject m8 = new JSONObject();//
m8.put("fieldName", "djlx");
m8.put("fieldValue", djlx);
JSONObject m9 = new JSONObject();//
m9.put("fieldName", "zcrq");
m9.put("fieldValue", zcrq);
JSONObject m10 = new JSONObject();//
m10.put("fieldName", "kgbm");
m10.put("fieldValue", kgbm);
JSONObject m11 = new JSONObject();//
m11.put("fieldName", "kgy");
m11.put("fieldValue", kgy);
JSONObject m12 = new JSONObject();//
m12.put("fieldName", "sjbftj");
m12.put("fieldValue", sjbftj);
JSONObject m13 = new JSONObject();//
m13.put("fieldName", "pdr");
m13.put("fieldValue", pdr);
JSONObject m14 = new JSONObject();//
m14.put("fieldName", "fpr");
m14.put("fieldValue", fpr);
JSONObject m15 = new JSONObject();//
m15.put("fieldName", "bz");
m15.put("fieldValue", bz);
JSONObject m16 = new JSONObject();//
m16.put("fieldName", "pdszmrzsz");
m16.put("fieldValue", pdszmrzsz);
JSONObject m17 = new JSONObject();//
m17.put("fieldName", "pdfabh");
m17.put("fieldValue", pdfabh);
JSONObject m18 = new JSONObject();//
m18.put("fieldName", "pdfamc");
m18.put("fieldValue", pdfamc);
JSONObject m19 = new JSONObject();//
m19.put("fieldName", "pdfs");
m19.put("fieldValue", pdfs);
JSONObject m20 = new JSONObject();//
m20.put("fieldName", "sfqyfp");
m20.put("fieldValue", sfqyfp);
JSONObject m21 = new JSONObject();//
m21.put("fieldName", "sfbdzcy");
m21.put("fieldValue", sfbdzcy);
JSONObject m22 = new JSONObject();//
m22.put("fieldName", "qsjd");
m22.put("fieldValue", qsjd);
JSONObject m23 = new JSONObject();//
m23.put("fieldName", "sfpcbd");
m23.put("fieldValue", sfpcbd);
List<JSONObject> mlist = new ArrayList<>(Arrays.asList(m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16,
m17, m18, m19, m20, m21, m22, m23));
JSONArray mainArr = new JSONArray();
mainArr.addAll(mlist);
String fw_wfid_pdb = ConfigUtils.getThirdConfigByNumber("FW_WFID_PDB");
FWRestfulUtils fwRestfulUtils = new FWRestfulUtils();
//如果单据上纯在泛微流程id重新提交调用泛微提交接口如果没有泛微流程id就调用新增接口
return fwRestfulUtils.doBillAction(mainArr, detailRootArr, "盘点结果确认审批流程", fw_wfid_pdb, billno, tqq9_fwrequestid);
}
/** /**
* 短缺处理推送泛微 * 短缺处理推送泛微
*/ */