Ver Fonte

Merge branch 'master' of http://111.75.220.136:10030/turborao/jyyy

lisheng há 1 dia atrás
pai
commit
b3c9982af1

+ 53 - 0
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/plugin/workflow/ApprovalPageFieldEnablePlugin.java

@@ -0,0 +1,53 @@
+package nckd.jimin.jyyy.bd.plugin.workflow;
+
+import kd.bos.form.IFormView;
+import kd.bos.form.IPageCache;
+import kd.bos.workflow.design.plugin.AbstractWorkflowPlugin;
+import kd.bos.workflow.engine.WfUtils;
+import java.util.EventObject;
+import static kd.bos.workflow.taskcenter.plugin.util.ApprovalPluginUtil.isPCShow;
+
+/**
+ * 会签节点审批意见不允许修改
+ * 表单标识:审批处理页面(nckd_wf_approvalpage__ext)
+ * @author wanghaiwu_kd
+ * @date 2025/11/20
+ */
+public class ApprovalPageFieldEnablePlugin extends AbstractWorkflowPlugin {
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+
+        IFormView view = this.getView();
+        boolean isPcShow = isPCShow(view.getFormShowParameter());
+
+        if (!WfUtils.isNullObject(view)) {
+            IPageCache pageCache;
+            String fieldName = "";
+
+            if (isPcShow) {
+                pageCache = view.getPageCache();
+
+                fieldName = "msg_approval";
+            } else {
+                IFormView parentView = view.getParentView();
+                if (WfUtils.isNullObject(parentView)) {
+                    return;
+                }
+                pageCache = parentView.getPageCache();
+
+                fieldName = "approvalmsg";
+            }
+
+            String entityName = pageCache.get("entitynumber");
+            String curnode = pageCache.get("CURNODE");
+
+            //控制审批意见锁定:商旅对账单
+            //approvalmsg
+            if (curnode.contains("YunzhijiaTask")
+                    && ("nckd_bustravelcheckbill".equals(entityName) || "nckd_bustravelcheckbill_mob".equals(entityName))) {
+                this.getView().setEnable(false, fieldName);
+            }
+        }
+    }
+}

+ 71 - 50
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/webapi/SynSupplierApiPlugin.java

@@ -44,6 +44,7 @@ public class SynSupplierApiPlugin implements Serializable {
     //所有核算组织map
     private static Map<String, String> allKdOrgName = null;
     private static Map<String, Long> allKdOrgId = null;
+    private static List<Long> allOrgIds = null;
 
     //默认组织
     private static DynamicObject defaultOrg = null;
@@ -123,11 +124,14 @@ public class SynSupplierApiPlugin implements Serializable {
 
         allKdOrgId = new HashMap<>();
         allKdOrgName = new HashMap<>();
+        allOrgIds = new ArrayList<>();
 
         DynamicObject[] orgList = BusinessDataServiceHelper.load("bos_org", "id, number, name", orgFilter.toArray());
         for(DynamicObject org : orgList){
             allKdOrgId.put(org.getString("number"), org.getLong("id"));
             allKdOrgName.put(org.getString("number"), org.getString("name"));
+
+            allOrgIds.add(org.getLong("id"));
         }
 
         //供应商状态:
@@ -166,7 +170,6 @@ public class SynSupplierApiPlugin implements Serializable {
             dataSource = "mdm";
         }
 
-
         if(StringUtils.isEmpty(supplierNumber)){
             returnMap.put("code", "500");
             returnMap.put("msg", "供应商编码为空!");
@@ -282,7 +285,7 @@ public class SynSupplierApiPlugin implements Serializable {
             String bankName = "";
             String bankCode = "";
             String primaryAccount = "";
-            String isDefault = "0";
+            boolean noDefault = true;
 
             //判断银行账号是否存在
             DynamicObjectCollection bankEntry  =  supplier.getDynamicObjectCollection("entry_bank");
@@ -302,6 +305,7 @@ public class SynSupplierApiPlugin implements Serializable {
 
             for(int index = 0; index < bankArray.size(); index++){
                 boolean iscontinue = false;
+                String isDefault = "0";
 
                 JSONObject entrybank = bankArray.getJSONObject(index);
 
@@ -342,8 +346,9 @@ public class SynSupplierApiPlugin implements Serializable {
                     continue;
                 }
 
-                if("0".equals(isDefault) && ("Y".equals(primaryAccount) || index == bankArray.size() - 1)){
+                if(noDefault && ("Y".equals(primaryAccount) || index == bankArray.size() - 1)){
                     isDefault = "1";
+                    noDefault = false;
                 }
 
                 DynamicObject bank = new DynamicObject(bankEntryType);
@@ -358,7 +363,7 @@ public class SynSupplierApiPlugin implements Serializable {
                 bankEntry.add(bank);
             }
 
-            if("0".equals(isDefault) && bankEntry.size() > 0){
+            if(noDefault && bankEntry.size() > 0){
                 for(DynamicObject bank : bankEntry){
                     bank.set("isdefault_bank", "1");
 
@@ -465,54 +470,70 @@ public class SynSupplierApiPlugin implements Serializable {
             return returnMap;
         }
 
-        List<Long> assignOrgIds = new ArrayList<>();
-        List<String> orgCodeList = new ArrayList<>();
-        List<String> orgCodeKdList = new ArrayList<>();
-
-        //分配公司信息
-//        JSONArray assignOrgArray = jsonData.getJSONArray("venBukrsE");
-        if(assignOrgArray != null && assignOrgArray.size() > 0){
-            for(int index = 0; index < assignOrgArray.size(); index++){
-                JSONObject assignOrg = assignOrgArray.getJSONObject(index);
-
-                String orgCode = assignOrg.getString("venBukrsCode");
-
-                if(!orgCodeList.contains(orgCode)) {
-                    orgCodeList.add(orgCode);
-
-                    if(allKdOrgId.containsKey(orgCode)){
-                        assignOrgIds.add(allKdOrgId.get(orgCode));
-                        orgCodeKdList.add(allKdOrgName.get(orgCode));
-                    }
-                }
-            }
-
-            if(assignOrgIds.size() > 0) {
-                String assignResult = assignOrg2Supplier(supplierId, assignOrgIds);
-
-                if (assignResult.isEmpty()) {
-                    returnMap.put("code", "0000");
-                    returnMap.put("msg", "同步成功、分配成功");
-
-                    return returnMap;
-                } else {
-                    returnMap.put("code", "500");
-                    returnMap.put("msg", "同步成功、分配失败");
-
-                    return returnMap;
-                }
-            }
-
-            if(orgCodeKdList.size() != orgCodeList.size()){
-                List<String> differenceList = orgCodeKdList.stream().filter(item -> !orgCodeKdList.contains(item)).collect(Collectors.toList());
-                if(differenceList.size() > 0){
-                    String unAssignOrgString = String.join(",", differenceList);
+//        List<Long> assignOrgIds = new ArrayList<>();
+//        List<String> orgCodeList = new ArrayList<>();
+//        List<String> orgCodeKdList = new ArrayList<>();
+//
+//        //分配公司信息
+////        JSONArray assignOrgArray = jsonData.getJSONArray("venBukrsE");
+//        if(assignOrgArray != null && assignOrgArray.size() > 0){
+//            for(int index = 0; index < assignOrgArray.size(); index++){
+//                JSONObject assignOrg = assignOrgArray.getJSONObject(index);
+//
+//                String orgCode = assignOrg.getString("venBukrsCode");
+//
+//                if(!orgCodeList.contains(orgCode)) {
+//                    orgCodeList.add(orgCode);
+//
+//                    if(allKdOrgId.containsKey(orgCode)){
+//                        assignOrgIds.add(allKdOrgId.get(orgCode));
+//                        orgCodeKdList.add(allKdOrgName.get(orgCode));
+//                    }
+//                }
+//            }
+//
+//            if(assignOrgIds.size() > 0) {
+//                String assignResult = assignOrg2Supplier(supplierId, allOrgIds);
+//
+//                if (assignResult.isEmpty()) {
+//                    returnMap.put("code", "0000");
+//                    returnMap.put("msg", "同步成功、分配成功");
+//
+//                    return returnMap;
+//                } else {
+//                    returnMap.put("code", "500");
+//                    returnMap.put("msg", "同步成功、分配失败");
+//
+//                    return returnMap;
+//                }
+//            }
+//
+//            if(orgCodeKdList.size() != orgCodeList.size()){
+//                List<String> differenceList = orgCodeKdList.stream().filter(item -> !orgCodeKdList.contains(item)).collect(Collectors.toList());
+//                if(differenceList.size() > 0){
+//                    String unAssignOrgString = String.join(",", differenceList);
+//
+//                    returnMap.put("code", "500");
+//                    returnMap.put("msg", "部分组织分配失败:" + unAssignOrgString + ", 这些组织在星瀚中未匹配到或不是CU!");
+//
+//                    return returnMap;
+//                }
+//            }
+//        }
+
+        if(allOrgIds.size() > 0) {
+            String assignResult = assignOrg2Supplier(supplierId, allOrgIds);
+
+            if (assignResult.isEmpty()) {
+                returnMap.put("code", "0000");
+                returnMap.put("msg", "同步成功、分配成功");
 
-                    returnMap.put("code", "500");
-                    returnMap.put("msg", "部分组织分配失败:" + unAssignOrgString + ", 这些组织在星瀚中未匹配到或不是CU!");
+                return returnMap;
+            } else {
+                returnMap.put("code", "500");
+                returnMap.put("msg", "同步成功、分配失败");
 
-                    return returnMap;
-                }
+                return returnMap;
             }
         }
 

+ 10 - 2
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/webapi/SRMSynPayApiPlugin.java

@@ -611,6 +611,14 @@ public class SRMSynPayApiPlugin implements Serializable {
 
             DynamicObjectCollection prepayEntrys = prepayBillInfo.getDynamicObjectCollection("expenseentryentity");
             DynamicObject prepayEntry = prepayEntrys.get(0);
+
+            for(DynamicObject preEntry : prepayEntrys){
+                if(preEntry.getString("seq").equals(srmseq)){
+                    prepayEntry = preEntry;
+                    break;
+                }
+            }
+
             DynamicObjectCollection prepayAccounts = prepayBillInfo.getDynamicObjectCollection("accountentry");
             DynamicObject prepayAccount = prepayAccounts.get(0);
 
@@ -629,8 +637,8 @@ public class SRMSynPayApiPlugin implements Serializable {
             entry.set("loandescriptionv1", prepayBillInfo.getString("description"));//事由
             entry.set("loancurrency", currency);//币种
             entry.set("loanexchangerate", exchangeRate);//汇率
-            entry.set("loanamount", prepayAccount.getBigDecimal("oriaccbalamount"));//借款余额
-            entry.set("currloanamount", prepayAccount.getBigDecimal("accbalamount"));//借款余额(本位币)
+            entry.set("loanamount", prepayEntry.getBigDecimal("orgiexpebalanceamount"));//借款余额
+            entry.set("currloanamount", prepayEntry.getBigDecimal("expebalanceamount"));//借款余额(本位币)
             entry.set("accloanamount", checkAmountOri);//冲销金额
             entry.set("curraccloanamount", checkAmountOri.multiply(exchangeRate));//冲销金额(本位币)
             entry.set("sourcebillid", prepayBillInfo.getString("id"));//源单id

+ 59 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/hom/explugin/ActivityDomainServiceEx.java

@@ -0,0 +1,59 @@
+package nckd.jimin.jyyy.hr.hom.explugin;
+
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.hr.hbp.business.servicehelper.HRBaseServiceHelper;
+import kd.hr.hbp.common.constants.HRBaseConstants;
+import kd.sdk.hr.hom.business.activity.IActivityDomainService;
+import nckd.jimin.jyyy.hr.wtc.wtis.task.SyncPunchCardTask;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Tyx 2025-11-03
+ * 协作活动埋点处理扩展类
+ */
+public class ActivityDomainServiceEx implements IActivityDomainService {
+    private static HRBaseServiceHelper ACTIVIHANDLE_HELPER = new HRBaseServiceHelper("hom_activityoverview");
+    private static Log logger = LogFactory.getLog(ActivityDomainServiceEx.class);
+    private static String SSAP_NUMBER = "ssap";
+    @Override
+    public void triggerTrdActivity(DynamicObject dynamicObject, DynamicObject dynamicObject1, Long aLong) {
+
+    }
+
+    @Override
+    public Long triggerTrdActivityNew(DynamicObject activityDy, DynamicObject onbrdbillDyn, Long instanceId) {
+        logger.info("-------- begin triggerTrdActivityNew -------- ");
+        String activityNumber = activityDy.getString(HRBaseConstants.NUMBER);
+        // 如果活动编码为宿舍安排编码ssap,则返回宿舍安排这个协作任务的主键ID;
+        if (SSAP_NUMBER.equals(activityNumber)) {
+            logger.info("当前活动编码:{}", activityNumber);
+//            QFilter filter = new QFilter("activity.id", QCP.equals, activityDy.getPkValue());
+//            filter.and("onbrdid.id", QCP.equals, onbrdbillDyn.getPkValue());
+//            DynamicObject dyn = ACTIVIHANDLE_HELPER.queryOne("entryid", filter);
+//            return dyn.getLong("id");
+            QFilter filter = new QFilter("onbrd", QCP.equals,onbrdbillDyn.get("id"));
+            DynamicObject dynamicObject = ACTIVIHANDLE_HELPER.loadDynamicObject(filter);
+            DynamicObjectCollection entryentity = dynamicObject.getDynamicObjectCollection("entryentity");
+            List<Long> collect = entryentity.stream().filter(row -> row.get("activity.id").equals(activityDy.get("id"))).map(rowData -> rowData.getLong("id")).collect(Collectors.toList());
+            Long aLong = collect.get(0);
+            logger.info("当前查询通用协作ID:{}", aLong);
+            return aLong;
+        }
+        else {
+            return null;
+        }
+    }
+
+    @Override
+    public void handleTrdActivity(List<Long> list) {
+
+    }
+}