diff --git a/lc123/cloud/app/plugin/form/sys/MaterialBillPlugin.java b/lc123/cloud/app/plugin/form/sys/MaterialBillPlugin.java index a24adb3..a1c8b82 100644 --- a/lc123/cloud/app/plugin/form/sys/MaterialBillPlugin.java +++ b/lc123/cloud/app/plugin/form/sys/MaterialBillPlugin.java @@ -87,6 +87,7 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { //获取实体中所有变更的属性 List iDataEntityProperties = dataEntity.getDataEntityState().GetDirtyProperties(); if (iDataEntityProperties.size() > 0) { + DynamicObjectCollection changeEntries = dataEntity.getDynamicObjectCollection("tqq9_changeentry"); for (IDataEntityProperty prop : iDataEntityProperties) { String name = prop.getName();//字段标识 if ("status".equals(name) || "useorg".equals(name) || "modifytime".equals(name) || "tqq9_changereason".equals(name)) { @@ -96,6 +97,7 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (displayNameLocaleStr == null) { continue; } + DynamicObject changeEntry = changeEntries.addNew(); String displayName = displayNameLocaleStr.get("zh_CN");//字段名称 String propTypeName = prop.getPropertyType().getName(); DynamicProperty property = MetadataServiceHelper.getDataEntityType("bd_material").getProperty(name); @@ -130,10 +132,22 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { changeFields.append(",").append(name); // changeContent.append("字段:" + displayName + "(" + name + "),变更前:" + oldValue.substring(1) + ",变更后:" + newValue.substring(1) + ";"); changeContent.append("字段:" + displayName + ",变更前:" + oldValue.substring(1) + ",变更后:" + newValue.substring(1) + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue.substring(1) + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", null);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { if (dynamicObjectColl1 != null && dynamicObjectColl1.size() > 0) { @@ -145,6 +159,12 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { oldValue = oldValue + "," + objName; } changeContent.append("字段:" + displayName + ",变更前:" + oldValue.substring(1) + ",变更后:空;"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", null);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } } else { @@ -158,16 +178,34 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (!oldValue.equals(newValue)) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", null);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { if (dynamicObject1 != null) { String oldValue = dynamicObject1.getString("name"); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;"); changeFields.append(",").append(name); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", null);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } } @@ -179,15 +217,33 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (!oldValue.equals(newValue)) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", null);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { if (oldValue != null) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", null);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } @@ -197,6 +253,12 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (newValue != oldValue) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else if ("java.lang.Long".equals(propTypeName)) { long newValue = dataEntity.getLong(name); @@ -204,6 +266,12 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (newValue != oldValue) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else if ("java.math.BigDecimal".equals(propTypeName)) { BigDecimal newValue = dataEntity.getBigDecimal(name); @@ -213,15 +281,33 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (oldValue.compareTo(newValue) != 0) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", null);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { if (oldValue != null) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", null);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } } else if ("boolean".equals(propTypeName)) { @@ -230,6 +316,12 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (newValue != oldValue) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { String newValue = dataEntity.getString(name); @@ -242,15 +334,33 @@ public class MaterialBillPlugin extends AbstractBillPlugIn { if (!oldValue.equals(newValue)) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", null);//修改前值 + changeEntry.set("tqq9_newvalue", newValue);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } else { if (StringUtils.isNotBlank(oldValue)) { changeFields.append(",").append(name); changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;"); + + changeEntry.set("tqq9_fieldname", displayName);//字段名称 + changeEntry.set("tqq9_fieldnumber", name);//字段标识 + changeEntry.set("tqq9_oldvalue", oldValue);//修改前值 + changeEntry.set("tqq9_newvalue", null);//修改后值 + changeEntry.set("tqq9_updatedate", new Date());//修改事件 } } } diff --git a/lc123/cloud/app/plugin/operate/sys/MaterialAuditOp.java b/lc123/cloud/app/plugin/operate/sys/MaterialAuditOp.java index 8d40fd6..cf3c533 100644 --- a/lc123/cloud/app/plugin/operate/sys/MaterialAuditOp.java +++ b/lc123/cloud/app/plugin/operate/sys/MaterialAuditOp.java @@ -2,6 +2,7 @@ package tqq9.lc123.cloud.app.plugin.operate.sys; import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.operate.result.IOperateInfo; import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; @@ -34,28 +35,26 @@ public class MaterialAuditOp extends AbstractOperationServicePlugIn { DynamicObject[] dataEntities = e.getDataEntities(); for (DynamicObject material : dataEntities) { material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), material.getDynamicObjectType().getName()); -// DynamicObject tqq9_audit = material.getDynamicObject("tqq9_auditor"); -// QFilter qf = new QFilter("id", "=", tqq9_audit.getPkValue()); -// DynamicObject tqq9_auditor = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{qf}); -// //将待审批人赋值给修改人、审核人 -// if (tqq9_auditor != null) { -// material.set("modifier", tqq9_auditor); -// material.set("approverid", tqq9_auditor); -// SaveServiceHelper.save(new DynamicObject[]{material}); -// } String tqq9_srcnumber = material.getString("tqq9_srcnumber"); //查询是否有源单编码,如果有就是物料变更,如果没有就是正常物料审核 if (StringUtils.isNotBlank(tqq9_srcnumber)) { //物料变更逻辑 - String tqq9_changefields = material.getString("tqq9_changefields_tag"); - if (StringUtils.isNotBlank(tqq9_changefields)) { + DynamicObjectCollection changeEntries = material.getDynamicObjectCollection("tqq9_changeentry"); + if (changeEntries != null && changeEntries.size() > 0) { QFilter f = new QFilter("number", "=", tqq9_srcnumber); boolean exists = QueryServiceHelper.exists("bd_material", new QFilter[]{f}); if (exists) { DynamicObject srcMaterial = BusinessDataServiceHelper.loadSingle("bd_material", new QFilter[]{f}); - String[] fieldArr = tqq9_changefields.split(","); - for (String changeField : fieldArr) { - srcMaterial.set(changeField, material.get(changeField)); + DynamicObjectCollection srcChangeEntries = srcMaterial.getDynamicObjectCollection("tqq9_changeentry"); + for (DynamicObject changeEntry : changeEntries) { + String tqq9_fieldnumber = changeEntry.getString("tqq9_fieldnumber"); + srcMaterial.set(tqq9_fieldnumber, material.get(tqq9_fieldnumber)); + DynamicObject srcChangeEntry = srcChangeEntries.addNew(); + srcChangeEntry.set("tqq9_fieldname", changeEntry.getString("tqq9_fieldname"));//字段名称 + srcChangeEntry.set("tqq9_fieldnumber", changeEntry.getString("tqq9_fieldnumber"));//字段标识 + srcChangeEntry.set("tqq9_oldvalue", changeEntry.getString("tqq9_oldvalue"));//修改前值 + srcChangeEntry.set("tqq9_newvalue", changeEntry.getString("tqq9_newvalue"));//修改后值 + srcChangeEntry.set("tqq9_updatedate", changeEntry.getDate("tqq9_updatedate"));//修改事件 } SaveServiceHelper.save(new DynamicObject[]{srcMaterial}); OperationResult opResult = OperationServiceHelper.executeOperate("unaudit", "bd_material", new DynamicObject[]{material}, OperateOption.create()); @@ -65,7 +64,6 @@ public class MaterialAuditOp extends AbstractOperationServicePlugIn { log.info("删除物料修改信息[" + material.getString("number") + "]的结果:" + opResult.isSuccess()); } } - } } else { //物料新增审核,封装商品逻辑:查询对应的商品是否存在 diff --git a/lc123/cloud/app/plugin/trd/FWImpl.java b/lc123/cloud/app/plugin/trd/FWImpl.java index e91e9a0..db5453c 100644 --- a/lc123/cloud/app/plugin/trd/FWImpl.java +++ b/lc123/cloud/app/plugin/trd/FWImpl.java @@ -5725,9 +5725,6 @@ public class FWImpl { JSONObject m4 = new JSONObject(); m4.put("fieldName", "sqrq"); m4.put("fieldValue", sqrq); -// JSONObject m5 = new JSONObject(); -// m5.put("fieldName", "ywgz"); -// m5.put("fieldValue", "4"); JSONObject m6 = new JSONObject(); m6.put("fieldName", "wlmc"); m6.put("fieldValue", wlmc); @@ -5866,6 +5863,7 @@ public class FWImpl { m38, m39, m41, m42, m43, m44, m45, m46, m47, m48, m49, m51, m52, m53)); //区分新建审核与修改审批 + JSONArray detailRootArr = new JSONArray(); String requestName = "新增物料流程"; String wfID = ConfigUtils.getThirdConfigByNumber("FW_WFID_XZWL"); String requestid = bill.getString("tqq9_fwrequestid"); @@ -5875,14 +5873,36 @@ public class FWImpl { wfID = ConfigUtils.getThirdConfigByNumber("FW_WFID_WLBG"); requestid = bill.getString("tqq9_fwupdid"); - JSONObject bgbzObj = new JSONObject(); - bgbzObj.put("fieldName", "bgbz"); - bgbzObj.put("fieldValue", bgbz); - mlist.add(bgbzObj); - JSONObject bgyyObj = new JSONObject(); - bgyyObj.put("fieldName", "bgyy"); - bgyyObj.put("fieldValue", bgyy); - mlist.add(bgyyObj); + JSONObject detail_change = new JSONObject(); + JSONArray recordsArr_change = new JSONArray(); + DynamicObjectCollection changeEntries = bill.getDynamicObjectCollection(""); + for (DynamicObject changeEntry : changeEntries) { + String bgzd = changeEntry.getString("tqq9_fieldname"); + String bgq = changeEntry.getString("tqq9_oldvalue"); + String bgh = changeEntry.getString("tqq9_newvalue"); + JSONObject c1 = new JSONObject(); + c1.put("fieldName", "bgzd"); + c1.put("fieldValue", bgzd); + JSONObject c2 = new JSONObject(); + c2.put("fieldName", "bgq"); + c2.put("fieldValue", bgq); + JSONObject c3 = new JSONObject(); + c3.put("fieldName", "bgh"); + c3.put("fieldValue", bgh); + List clist = Arrays.asList(c1, c2, c3); + JSONArray recordsArr = new JSONArray(); + recordsArr.addAll(clist); + + JSONObject recordObj = new JSONObject(); + recordObj.put("recordOrder", 0); + recordObj.put("workflowRequestTableFields", recordsArr); + + recordsArr_change.add(recordObj); + } + detail_change.put("tableDBName", "formtable_main_113_dt1"); + detail_change.put("workflowRequestTableRecords", recordsArr_change); + + detailRootArr.add(detail_change); } @@ -5890,7 +5910,7 @@ public class FWImpl { mainArr.addAll(mlist); FWRestfulUtils fwRestfulUtils = new FWRestfulUtils(); //如果单据上纯在泛微流程id,重新提交调用泛微提交接口,如果没有泛微流程id,就调用新增接口 - return fwRestfulUtils.doBillAction(mainArr, null, requestName, wfID, lcbh, requestid, sqr); + return fwRestfulUtils.doBillAction(mainArr, detailRootArr, requestName, wfID, lcbh, requestid, sqr); }