diff --git a/lc123/cloud/app/plugin/trd/FWImpl.java b/lc123/cloud/app/plugin/trd/FWImpl.java index 582dbc1..8ebe00b 100644 --- a/lc123/cloud/app/plugin/trd/FWImpl.java +++ b/lc123/cloud/app/plugin/trd/FWImpl.java @@ -3342,6 +3342,324 @@ public class FWImpl { 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 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 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); + } + + /** * 短缺处理推送泛微 */