ソースを参照

Merge branch 'master' of http://111.75.220.136:10030/13246659623/jxyh

13246659623 8 ヶ月 前
コミット
89a86f4918

+ 5 - 4
src/main/java/fi/ar/opplugin/FinarbillPushOpPlugin.java

@@ -13,6 +13,7 @@ import kd.bos.servicehelper.botp.ConvertServiceHelper;
 import kd.bos.metadata.botp.ConvertRuleReader;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -33,15 +34,15 @@ public class FinarbillPushOpPlugin extends AbstractOperationServicePlugIn {
             QFilter filter=new QFilter("nckd_checkboxfield1", QCP.equals,true);
             //未结算金额不为0
             filter.and("unsettleamount", QCP.not_equals,0);
-            DynamicObject[] dynamicObjects=BusinessDataServiceHelper.load(ar_finarbill,"id",new QFilter[]{filter});
+            Map<Object, DynamicObject> dynamicObjects = BusinessDataServiceHelper.loadFromCache(ar_finarbill, new QFilter[]{filter});
             //获取转换规则id
             ConvertRuleReader read=new ConvertRuleReader();
             List<String> loadRuleIds = read.loadRuleIds(ar_finarbill, ar_baddebtlossbill, false);
-            for (int i=0;i< dynamicObjects.length;i++)
+            for (Object idkey:dynamicObjects.keySet())
             {
                 //获取应收挂帐单
-                DynamicObject info= BusinessDataServiceHelper
-                        .loadSingle(dynamicObjects[i].getPkValue(),dynamicObjects[i].getDynamicObjectType().getName());
+                //当前单头
+                DynamicObject info = dynamicObjects.get(idkey);
                 //源单id
                 Long pkid=info.getLong("id");
                 // 下推参数,设置所选数据项

+ 4 - 6
src/main/java/fi/ar/task/FinarbillPushTask.java

@@ -15,7 +15,6 @@ import kd.bos.schedule.api.MessageHandler;
 import kd.bos.schedule.executor.AbstractTask;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.botp.ConvertServiceHelper;
-import sys.sc.task.UpdateImpairmentDailyTask;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -43,14 +42,14 @@ public class FinarbillPushTask extends AbstractTask {
         QFilter filter=new QFilter("nckd_checkboxfield1", QCP.equals,true);
         //未结算金额不为0
         filter.and("unsettleamount", QCP.not_equals,0);
-        DynamicObject[] dynamicObjects= BusinessDataServiceHelper.load(ar_finarbill,"id",new QFilter[]{filter});
+        Map<Object, DynamicObject> dynamicObjects = BusinessDataServiceHelper.loadFromCache(ar_finarbill, new QFilter[]{filter});
         //获取转换规则id
         ConvertRuleReader read=new ConvertRuleReader();
         List<String> loadRuleIds = read.loadRuleIds(ar_finarbill, ar_baddebtlossbill, false);
-        for (DynamicObject dynamicObject : dynamicObjects) {
+        for (Object idkey:dynamicObjects.keySet()) {
             //获取应收挂帐单
-            DynamicObject info = BusinessDataServiceHelper
-                    .loadSingle(dynamicObject.getPkValue(), dynamicObject.getDynamicObjectType().getName());
+            //当前单头
+            DynamicObject info = dynamicObjects.get(idkey);
             //源单id
             Long pkid = info.getLong("id");
             // 下推参数,设置所选数据项
@@ -85,7 +84,6 @@ public class FinarbillPushTask extends AbstractTask {
                 log.info("----------------------------下推坏账处理单失败----------------------");
             }
         }
-
     }
 
     @Override

+ 3 - 3
src/main/java/fi/em/formPlugin/BusinessProcessingConvertPlugIn.java

@@ -12,14 +12,14 @@ public class BusinessProcessingConvertPlugIn extends AbstractConvertPlugIn imple
         //获取页面插件传递过来的操作参数
         String bdsupplier = this.getOption().getVariableValue("bdsupplier");
         String orgnumber = this.getOption().getVariableValue("orgnumber");
-        String type = this.getOption().getVariableValue("type");
+        String type = this.getOption().getVariableValue("type");//1
         if("drawyfgz".equals(type)){
             QFilter numberQFilter = new QFilter("ap_finapbill.org.number", QCP.equals, orgnumber);
-            numberQFilter.and("ap_finapbill.asstact.number", QCP.equals, bdsupplier);
+            numberQFilter.and("ap_finapbill.asstact.id", QCP.equals, Long.valueOf(bdsupplier));
             e.getCustQFilters().add(numberQFilter);
         }else if("drawysgz".equals(type)){
             QFilter numberQFilter = new QFilter("ar_finarbill.org.number", QCP.equals, orgnumber);
-            numberQFilter.and("ar_finarbill.asstact.number", QCP.equals, bdsupplier);
+            numberQFilter.and("ar_finarbill.asstact.id", QCP.equals, Long.valueOf(bdsupplier));
             e.getCustQFilters().add(numberQFilter);
         }else if("drawzlht".equals(type)){
             QFilter numberQFilter = new QFilter("fa_lease_contract.org.number", QCP.equals, orgnumber);

+ 2 - 2
src/main/java/fi/em/formPlugin/BusinessProcessingUnAuditEditPlugin.java

@@ -27,7 +27,7 @@ public class BusinessProcessingUnAuditEditPlugin  extends AbstractListPlugin imp
                 if (orgv == null) {
                     throw new KDBizException("收款信息收款人为空!");
                 }
-                String bdsupplier = dynamicObject.getString("number");//当前单据付款供应商
+                String bdsupplier = dynamicObject.getString("id");//当前单据付款供应商 11
                 draw.getOption().setVariableValue("bdsupplier", bdsupplier);
                 String orgnumber = orgv.getString("number");
                 draw.getOption().setVariableValue("orgnumber", orgnumber);
@@ -44,7 +44,7 @@ public class BusinessProcessingUnAuditEditPlugin  extends AbstractListPlugin imp
                 if (orgvs == null) {
                     throw new KDBizException("付款信息付款人为空!");
                 }
-                String bdsupplier = dynamicObject.getString("number");//当前单据付款供应商
+                String bdsupplier = dynamicObject.getString("id");//当前单据付款供应商
                 draw.getOption().setVariableValue("bdsupplier", bdsupplier);
                 String orgnumber = orgvs.getString("number");
                 draw.getOption().setVariableValue("orgnumber", orgnumber);

+ 4 - 6
src/main/java/fi/em/formPlugin/ReimbursementFormPlugin.java

@@ -109,12 +109,10 @@ public class ReimbursementFormPlugin extends AbstractFormPlugin implements Plugi
         QFilter nckd_orgamountFilter = new QFilter("costdept.number", QCP.equals, costdeptNumber);
         nckd_orgamountFilter.and("billstatus", QCP.equals, "E");
         nckd_orgamountFilter.and("creator.number",QCP.equals,creatorNumber);
-        DynamicObject[] nckd_orgamountaccount = BusinessDataServiceHelper.
-                load(er_prepaybill, "id", new QFilter[]{nckd_orgamountFilter});
-
-        for (int c=0;c<nckd_orgamountaccount.length;c++){
-            //当前循环动因基础资料单头
-            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_orgamountaccount[c].getPkValue(), nckd_orgamountaccount[c].getDynamicObjectType().getName());
+        Map<Object,DynamicObject> nckd_orgamountaccount=BusinessDataServiceHelper.loadFromCache(er_prepaybill, new QFilter[]{nckd_orgamountFilter});
+        for (Object idkey:nckd_orgamountaccount.keySet()){
+            //当前单头
+            DynamicObject dynamicObject = nckd_orgamountaccount.get(idkey);
             //单据编号
             String billno= dynamicObject.getString("billno");
             //循环分录

+ 43 - 17
src/main/java/fi/em/formPlugin/YwclF7ListtenerFromPlugin.java

@@ -14,7 +14,9 @@ import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.sdk.plugin.Plugin;
 import org.apache.commons.lang.StringUtils;
-import java.util.EventObject;
+
+import java.math.BigDecimal;
+import java.util.*;
 
 public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
     private final static String nckd_orgv="nckd_orgv";//收款资金组织
@@ -169,27 +171,51 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
         showParameter.getListFilterParameter().setFilter(filter);
     }
     private void getQFilterdczc(BeforeF7SelectEvent arg0, String type) {
-        DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield1") ;
-        if(data ==null){
-            throw new KDBizException("调出组织为空!");
+        String nckdDetailtype = this.getModel().getValue("nckd_detailtype").toString();
+        if("E".equals(nckdDetailtype)) {
+            DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield1") ;
+            if(data ==null){
+                throw new KDBizException("调出组织为空!");
+            }
+            String number = data.getString("number");
+            QFilter filter;
+            //给基础资料添加过滤
+            filter = new QFilter("assetunit.number", QCP.equals, number);
+            ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+            showParameter.getListFilterParameter().setFilter(filter);
+        }else if ("N".equals(nckdDetailtype)) {
+            DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_costcompany") ;
+            if(data ==null){
+                throw new KDBizException("资产组织为空!");
+            }
+            String number = data.getString("number");
+            QFilter filter;
+            //给基础资料添加过滤
+            filter = new QFilter("assetunit.number", QCP.equals, number);
+            ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+            showParameter.getListFilterParameter().setFilter(filter);
         }
-        String number = data.getString("number");
-        QFilter filter;
-        //给基础资料添加过滤
-        filter = new QFilter("assetunit.number", QCP.equals, number);
-        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
-        showParameter.getListFilterParameter().setFilter(filter);
+
     }
     private void getQFilterdrzc(BeforeF7SelectEvent arg0, String type) {
-        DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield2") ;
-        if(data ==null){
-            throw new KDBizException("调入组织为空!");
+            DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield2") ;
+            if(data ==null){
+                throw new KDBizException("调出组织为空!");
+            }
+        long id = data.getLong("id");
+        QFilter nckd_orgamountFilter = new QFilter("fromorg.id", QCP.equals, id);
+        Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation_dept", new QFilter[]{nckd_orgamountFilter});
+        HashSet<Long> objects = new HashSet<>();
+        for (Object idkey:nckd_cas_arbilMap.keySet()) {
+            //当前单头
+            DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
+            Long id1 = dynamicObject.getLong("toorg.id");
+            objects.add(id1);
+
         }
-        String number = data.getString("number");
-        QFilter filter;
+        QFilter filter = new QFilter("id",QCP.in,objects);
         //给基础资料添加过滤
-        filter = new QFilter("number", QCP.equals, number);
-        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+        ListShowParameter showParameter = (ListShowParameter) arg0.getFormShowParameter();
         showParameter.getListFilterParameter().setFilter(filter);
     }
 }

+ 10 - 27
src/main/java/fi/er/opplugin/PublicreimburOpPlugin.java

@@ -16,6 +16,7 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 //报销单
@@ -118,36 +119,18 @@ public class PublicreimburOpPlugin extends AbstractOperationServicePlugIn {
                     }
                 }
             } else if (StringUtils.equals(e.getOperationKey(),"save")) {
-                List<Long> cardList = new ArrayList<>();
-                List<Long> totalList = new ArrayList<>();
-                //获取当前页面数据
                 DynamicObject info = dynamicObjects[i];
-                Long fid = info.getLong("id");
-                for (DynamicObject entryentity : info.getDynamicObjectCollection("assetentry")) {
-                    DynamicObjectCollection dynamicObjectCollection = entryentity.getDynamicObjectCollection("nckd_real_card");
-                    for(DynamicObject  object : dynamicObjectCollection) {
-                        Long id = (Long) object.get(2);
-                        cardList.add(id);
-                    }
-                }
-                //查询报销单
-                QFilter bxFilter = new QFilter("id", QCP.not_equals,fid);
-                bxFilter.and("nckd_card_list_str", QCP.equals, "1");
-                DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
-                for (int j = 0; j < bxDynamicObjects.length; j++) {
-                    DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
-                    for (DynamicObject entryentity : bxInfo.getDynamicObjectCollection("assetentry")) {
-                        DynamicObjectCollection dynamicObjectCollection = entryentity.getDynamicObjectCollection("nckd_real_card");
-                        for(DynamicObject  dynamicObject : dynamicObjectCollection) {
-                            Long id = (Long) dynamicObject.get(2);
-                            totalList.add(id);
-                        }
+                List<String> list = Arrays.asList("3", "4", "5", "7", "8", "9", "10", "11", "12", "13", "14", "15","16", "17", "18", "19", "20", "21", "24", "30");
+                //获取发票信息分录
+                DynamicObjectCollection invoiceentry = info.getDynamicObjectCollection("invoiceentry");
+                for (DynamicObject entry : invoiceentry) {
+                    //发票类型
+                    String invoicetype = entry.getString("invoicetype");
+                    if (list.contains(invoicetype)) {
+                        info.set("nckd_checkboxfield4", true);
+                        break;
                     }
                 }
-                boolean hasCommonElements = cardList.stream().anyMatch(totalList::contains);
-                if (hasCommonElements) {
-                    throw new KDBizException("实物卡片清单已经生成资产清单,请重新选择!");
-                }
             }
         }
     }

+ 3 - 11
src/main/java/fi/fa/opplugin/AssetMidBillOpPlugin.java

@@ -72,17 +72,9 @@ public class AssetMidBillOpPlugin extends AbstractListPlugin {
                     busProcess.set("nckd_detailtype", "E");//业务类型(E:资产调拨)
                     busProcess.set("nckd_mid_assert", pk);//中间表id
                     busProcess.set("nckd_source_type", "nckd_e_dispatch_mid");//源单类型
-                    //调出方向
-                    if ("0".equals(direction)) {
-                        busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//调出申请人
-                        busProcess.set("nckd_basedatafield4", ChangeDataUtils.getUser(info.getString("nckd_user_in")));//调入负责人
-                        busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//创建人
-                    }//调入方向
-                    else if ("1".equals(direction)) {
-                        busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_in")));//调出申请人
-                        busProcess.set("nckd_basedatafield4", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//调入负责人
-                        busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_in")));//创建人
-                    }
+                    busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//调出申请人
+                    busProcess.set("nckd_basedatafield4", ChangeDataUtils.getUser(info.getString("nckd_user_in")));//调入负责人
+                    busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//创建人
 
                     List<String> codeList = ChangeDataUtils.getCardNumber(info);
                     QFilter filter = new QFilter("number", QCP.in, codeList);

+ 2 - 9
src/main/java/fi/fa/opplugin/FaChangeMidOpPlugin.java

@@ -64,15 +64,8 @@ public class FaChangeMidOpPlugin extends AbstractListPlugin {
                     busProcess.set("nckd_detailtype", "N");//业务类型(E:资产调拨)
                     busProcess.set("nckd_mid_assert", pk);//中间表id
                     busProcess.set("nckd_source_type", "nckd_e_change_mid");//源单类型
-                    //调出方向
-                    if("0".equals(direction)){
-                        busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//创建人
-                        busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//调拨申请人
-                    }//调入方向
-                    else if ("1".equals(direction)) {
-                        busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_in")));//创建人
-                        busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_in")));//调拨申请人
-                    }
+                    busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//创建人
+                    busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_out")));//调拨申请人
 
                     List<String> codeList =ChangeDataUtils.getCardNumber(info);
                     QFilter filter = new QFilter("number", QCP.in,codeList);

+ 10 - 7
src/main/java/fi/fa/webService/DispatchMidController.java

@@ -63,10 +63,10 @@ public class DispatchMidController implements Serializable {
 
             minInfo.set("nckd_changemode", "调出");//减少方式默认调出
             minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
-            minInfo.set("nckd_user_in", jsonObject.getString("recieveUser"));//调入负责人
+            minInfo.set("nckd_user_in", jsonObject.getString("receiveUser"));//调入负责人
             minInfo.set("nckd_org_out", jsonObject.getString("outOrgId"));//调出组织
             minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//调入组织
-            minInfo.set("nckd_used_user", jsonObject.getString("user"));//调入使用人
+            minInfo.set("nckd_used_user", jsonObject.getString("receiveUser"));//调入使用人
             minInfo.set("nckd_direction", jsonObject.getString("direction"));//调入调出类型
             minInfo.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
         } else if ("1".equals(dispatchType)) {
@@ -79,9 +79,9 @@ public class DispatchMidController implements Serializable {
                 minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_change_mid");
             }
             minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
-            minInfo.set("nckd_user_in", jsonObject.getString("recieveUser"));//调入负责人
+            minInfo.set("nckd_user_in", jsonObject.getString("receiveUser"));//调入负责人
             minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//归属机构
-            minInfo.set("nckd_used_user", jsonObject.getString("user"));//调入使用人
+            minInfo.set("nckd_used_user", jsonObject.getString("receiveUser"));//调入使用人
             minInfo.set("nckd_direction", jsonObject.getString("direction"));//调入调出类型
             minInfo.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
         } else if ("2".equals(dispatchType)) {
@@ -106,16 +106,19 @@ public class DispatchMidController implements Serializable {
         minInfo.set("status", "A");//暂存
         //拼接资产信息的组织和编码
         String cardNumber = "";
+        int counts = 0;
         JSONArray assetArray = jsonObject.getJSONArray("asset");
         for (int j = 0; j < assetArray.size(); j++) {
             //判断资产的组织是否相同
             JSONObject asset = assetArray.getJSONObject(j);
             String number = asset.getString("number");
             String orgId = asset.getString("orgId");
+            int count = asset.getString("count") == null ? 1 : Integer.parseInt(asset.getString("count"));
+            counts += count;
             cardNumber = cardNumber + number+ ":" + orgId + ",";
-            if ("2".equals(jsonObject.getString("dispatchType"))) {
-                minInfo.set("nckd_count", asset.getString("count"));//资产数量
-            }
+        }
+        if ("2".equals(jsonObject.getString("dispatchType"))) {
+            minInfo.set("nckd_count", String.valueOf(counts));//资产数量
         }
         minInfo.set("nckd_card_number", cardNumber);
         SaveServiceHelper.save(new DynamicObject[]{minInfo});

+ 6 - 6
src/main/java/kd/bos/login/thirdauth/app/ZSBGAuthtication.java

@@ -1,6 +1,6 @@
 package kd.bos.login.thirdauth.app;
 
-import com.jxbank.sso.des.LockDesUtil;
+//import com.jxbank.sso.des.LockDesUtil;
 import kd.bos.dc.api.model.Account;
 
 import javax.servlet.http.HttpServletRequest;
@@ -24,11 +24,11 @@ public class ZSBGAuthtication extends ThirdAppAuthtication{
         result.setSucceed(false);
         if(user!=null && !"".equals(user)){
             String token = request.getParameter("token");
-            if (LockDesUtil.isTheRightDate(user, token)) {//调用第三方jar包方法验证token和user一致
-                result.setUserType(UserType.WORKER_NUMBER);
-                result.setSucceed(true);
-                result.setUserFlag(user);
-            }
+//            if (LockDesUtil.isTheRightDate(user, token)) {//调用第三方jar包方法验证token和user一致
+//                result.setUserType(UserType.WORKER_NUMBER);
+//                result.setSucceed(true);
+//                result.setUserFlag(user);
+//            }
         }
 
         return result;

+ 0 - 4
src/main/java/sys/sc/formplugin/CreatDatPlugin.java

@@ -1,6 +1,5 @@
 package sys.sc.formplugin;
 
-import com.alipay.api.kms.aliyun.utils.BackoffUtils;
 import com.jcraft.jsch.SftpException;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
@@ -14,10 +13,7 @@ import sys.sc.opplugin.utils.SftpClient;
 
 import java.io.File;
 import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 /**

+ 0 - 37
src/main/java/sys/sc/formplugin/Filetest.java

@@ -1,37 +0,0 @@
-package sys.sc.formplugin;
-
-import kd.bos.script.annotations.KSMethod;
-import kd.bos.script.annotations.KSObject;
-
-import java.io.File;
-
-/**
- * @author cjz
- * @date 2024/9/9 14:12
- * @description:
- */
-@KSObject
-public class Filetest {
-
-
-    @KSMethod
-    public File getFile(String url){
-        return new File(url);
-    }
-
-    @KSMethod
-    public void createNewFile(File file) throws Exception{
-        file.createNewFile();
-    }
-
-    @KSMethod
-    public boolean exists(File file){
-
-        return file.exists();
-    }
-    @KSMethod
-    public boolean mkdirs(File file){
-
-        return file.mkdirs();
-    }
-}

+ 33 - 17
src/main/java/sys/sc/formplugin/TestPlugin.java

@@ -106,11 +106,11 @@ public class TestPlugin  extends AbstractListPlugin {
                     //去掉换行符|$|
                     line = line.replace("|$|", "");
                     //空格符号,根据这个符号分割
-                    String[] fields = line.split("\u0001");
+                    String[] fields = line.split("\u0001",-1);
                     //如果获取的数据行不等于预设字段的行,则跳过这行数据
-                    if (fields.length != selector.size()) {
-                        continue;
-                    }
+//                    if (fields.length != selector.size()) {
+//                        continue;
+//                    }
                     //获取工号
                     String gonghao = fields[0];
                     boolean isUpdated = false;
@@ -123,10 +123,16 @@ public class TestPlugin  extends AbstractListPlugin {
                             String fieldName = selector.get(i);
                             String newValue = fields[i];
                             String existingValue = data.getString(fieldName);
+                            //如果等于行政编码,则去掉第一个字符1
+                            if (i==7||i==9||i==11) {
+                                existingValue=existingValue.substring(1);
+                            }
                             //判断数据是否与之前的数据相同,不相同则更新
                             if (!Objects.equals(existingValue, newValue)) {
-                                data.set(fieldName, newValue);
-                                isUpdated = true;
+                                if (!newValue.isEmpty()) {
+                                    data.set(fieldName, newValue);
+                                    isUpdated = true;
+                                }
                             }
                         }
                         //更新了数据则设置数据更新的时间
@@ -137,8 +143,20 @@ public class TestPlugin  extends AbstractListPlugin {
                     } else {
                         //不存在这条数据则新增一条到data中
                         data = new DynamicObject(dynamicObjectType);
+                        //行政编码不为空则在前面加1
+                        if(!fields[7].isEmpty()) {
+                            fields[7]="1"+fields[7];
+                        }
+                        if (!fields[9].isEmpty()) {
+                            fields[9]="1"+fields[9];
+                        }
+                        if (!fields[11].isEmpty()) {
+                            fields[11]="1"+fields[11];
+                        }
                         for (int i = 0; i < selector.size(); i++) {
-                            data.set(selector.get(i), fields[i]);
+                            if (!fields[i].isEmpty()) {
+                                data.set(selector.get(i), fields[i]);
+                            }
                         }
                         Date now = new Date();
                         data.set("nckd_createdate", now);
@@ -150,7 +168,6 @@ public class TestPlugin  extends AbstractListPlugin {
             for (Map.Entry<String, DynamicObject> entry : existingDataMap.entrySet()) {
                 String gonghao = entry.getKey();
                 DynamicObject data = entry.getValue();
-
                 if (!processedGonghaoSet.contains(gonghao)) {
                     data.set("nckd_isdelete", true);
                     updatedataList.add(data);
@@ -581,11 +598,13 @@ public class TestPlugin  extends AbstractListPlugin {
         }
         //生成数据
         else if ("scsj".equals(e.getOperateKey())) {//从文件读取数据插入基础资料
-            try {
-                generateDataFile(getFileUrl("organduserurl"));
-            } catch (IOException ex) {
-                throw new RuntimeException(ex);
-            }
+            generateDataFile(filePath);
+//            try {
+//                generateDataFile(getFileUrl("organduserurl"));
+//
+//            } catch (IOException ex) {
+//                throw new RuntimeException(ex);
+//            }
         }
         //减值数据,导入数据先删除旧的数据
         if ("jzsj".equals(e.getOperateKey()))
@@ -665,7 +684,6 @@ public class TestPlugin  extends AbstractListPlugin {
                 throw new RuntimeException(ex);
             }
         }
-
         //读取行名行号,存入对应基础资料中
         if("hmhh".equals(e.getOperateKey())) {
             //行名行号表字段
@@ -796,12 +814,10 @@ public class TestPlugin  extends AbstractListPlugin {
             }
         }
 
-
         //获取linux服务器连接
         if ("connect".equals(e.getOperateKey()))
         {
-            InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("produceurl");
-
+            generateDataFile(filePath);
         }
 
     }

+ 0 - 8
src/main/java/sys/sc/opplugin/utils/DatFileCreatUtils.java

@@ -6,21 +6,13 @@ import kd.bos.algo.DataSet;
 
 import kd.bos.algo.Row;
 import kd.bos.dataentity.entity.DynamicObject;
-import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
 import kd.bos.db.DB;
 import kd.bos.db.DBRoute;
-import kd.bos.entity.EntityMetadataCache;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
-import kd.bos.orm.query.multi.QFilterFtlikeTransFunction;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
-import kd.scm.bid.formplugin.report.biddetailquery.QingFiledContent;
 
 import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 /**

+ 2 - 1
src/main/java/sys/sc/opplugin/utils/InterFaceImgUtils.java

@@ -15,7 +15,6 @@ public class InterFaceImgUtils {
     //接口编码
     private String URL;
     DynamicObject jkpzxx;
-
     public InterFaceImgUtils(String URL) {
         this.URL=URL;
         //接口配置信息获取
@@ -50,6 +49,8 @@ public class InterFaceImgUtils {
     public String getServerEndsign() {
         return jkpzxx.getString("nckd_endsign");
     }
+    //获取文件名
+    public String getFileName() {return jkpzxx.getString("nckd_filename");}
 
 
 }

+ 0 - 5
src/main/java/sys/sc/opplugin/utils/SftpClient.java

@@ -45,19 +45,15 @@ public class SftpClient {
         InputStream inputStream = sftpChannel.get(remoteFilePath);
         return inputStream;
     }
-
-
     //上传文件到服务器路径,
     public void fileCreat(String localFilePath,String remoteFilePath) throws SftpException {
         //本地服务器传到服务器文件
         sftpChannel.put(localFilePath,remoteFilePath);
     }
-
     //创建文件夹
     public void creatDir(String path) throws SftpException {
         sftpChannel.mkdir(path);
     }
-
     // 断开连接
     public void disconnect() {
         if (sftpChannel != null && sftpChannel.isConnected()) {
@@ -68,7 +64,6 @@ public class SftpClient {
         }
     }
 
-
     public ChannelSftp getSftpChannel() {
         return sftpChannel;
     }

+ 75 - 78
src/main/java/sys/sc/task/CreatDatDailyTask.java

@@ -7,13 +7,11 @@ import kd.bos.context.RequestContext;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.exception.KDException;
-import kd.bos.openapi.base.util.QFilterUtil;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.schedule.api.MessageHandler;
 import kd.bos.schedule.executor.AbstractTask;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
-import scala.Dynamic;
 import sys.sc.opplugin.utils.DatFileCreatUtils;
 import sys.sc.opplugin.utils.InterFaceImgUtils;
 import sys.sc.opplugin.utils.SftpClient;
@@ -33,9 +31,6 @@ import java.util.Map;
  */
 public class CreatDatDailyTask extends AbstractTask {
     private static final Log log = LogFactory.getLog(CreatDatDailyTask.class);
-
-    //接口配置信息基础资料标识
-    private static String nckd_jkpzxx="nckd_jkpzxx";
     //数据表字段基础资料标识
     private static String nckd_tablebasic="nckd_tablebasic";
     @Override
@@ -45,85 +40,87 @@ public class CreatDatDailyTask extends AbstractTask {
 
     @Override
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
+        //获取调度参数
+        String frequency= (String) map.get("frequency");
         //取已审核的数据
         QFilter filter=new QFilter("status", QCP.equals,"C");
         //数据表基础资料
-        DynamicObject[] tableDy=BusinessDataServiceHelper.load(nckd_tablebasic,"id",new QFilter[]{filter});
+        DynamicObject[] tableDy=BusinessDataServiceHelper
+                .load(nckd_tablebasic,"id,nckd_tableentry,nckd_isable,nckd_entrycode,nckd_dooperation,number,nckd_biazppnum,creatdat",new QFilter[]{filter});
         log.info("----------------------读取数据表基础资料-------------------");
-        for (DynamicObject item:tableDy)
-        {
-            log.info("-------------------------获取服务器连接-----------------");
-            List<String> fileList=new ArrayList<>();
-            //获取表字段当前分录
-            DynamicObjectCollection dynamicObjectCollection=item.getDynamicObjectCollection("nckd_tableentry");
-            for (DynamicObject itemmen:dynamicObjectCollection) {
-                //将打勾的字段到处
-                if (itemmen.getBoolean("nckd_isable")) {
-                    //需要导入的标识写入list中
-                    fileList.add(itemmen.getString("nckd_entrycode"));
+        for (DynamicObject item:tableDy) {
+            //参数执行频率等于表的执行频率则生成文件
+            if (frequency.equals(item.getString("nckd_dooperation"))) {
+                log.info("-------------------------获取服务器连接-----------------");
+                List<String> fileList=new ArrayList<>();
+                //获取表字段当前分录
+                DynamicObjectCollection dynamicObjectCollection=item.getDynamicObjectCollection("nckd_tableentry");
+                for (DynamicObject itemmen:dynamicObjectCollection) {
+                    //将打勾的字段导出
+                    if (itemmen.getBoolean("nckd_isable")) {
+                        //需要导入的标识写入list中
+                        fileList.add(itemmen.getString("nckd_entrycode"));
+                    }
                 }
-            }
-            //获取当前选择的表名
-            String tablenumber=item.getString("number");
-            //业务编码
-            String bizappnum=item.getString("nckd_biazppnum");
-            //接口配置信息获取
-            //读取接口配置信息获取
-            InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("creatdat");
-            //服务器路径
-            String nckd_url=interFaceImgUtils.getServerUrl();
-            if (nckd_url.equals("/var/appstatic/")) {
-                nckd_url="/home/kingdee/cosmic/nginx-appstatic/store/appstatic/";
-            }
-            //分割符号
-            String spiltsign=interFaceImgUtils.getServerSplit();
-            //结束符号
-            String endsign=interFaceImgUtils.getServerEndsign();
-            //上传文件到服务器中
-            //服务器端口
-            String host=interFaceImgUtils.getServerName();
-            //服务器用户名
-            String username=interFaceImgUtils.getServerUser();
-            //服务器密码
-            String password=interFaceImgUtils.getServerPassword();
-            //服务器路径
-            //服务器端口号
-            int port= interFaceImgUtils.getProt();
-            try {
+                //获取当前选择的表名
+                String tablenumber=item.getString("number");
+                //业务编码
+                String bizappnum=item.getString("nckd_biazppnum");
+                //接口配置信息获取
+                //读取接口配置信息获取
+                InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("creatdat");
+                //服务器路径
+                String nckd_url=interFaceImgUtils.getServerUrl();
+                //分割符号
+                String spiltsign=interFaceImgUtils.getServerSplit();
+                //结束符号
+                String endsign=interFaceImgUtils.getServerEndsign();
                 //上传文件到服务器中
-                SftpClient sftpClient=new SftpClient(host,username,password,port);
-                //获取服务器连接
-                sftpClient.connect();
-                //创建文件夹,为当天日期
-                Date currentDate=new Date();
-                //设置日期格式
-                SimpleDateFormat sf=new SimpleDateFormat("yyyyMMdd");
-                String dateStr=sf.format(currentDate);
-                String filePathWithDate=nckd_url+dateStr;
-                //创建文件夹,名为当前日期
-                sftpClient.creatDir(filePathWithDate);
-                //临时文件
-                File localFile = File.createTempFile(tablenumber, ".dat");
-                File dest=new File(localFile.getParent()+File.separator+tablenumber.toUpperCase()+".dat");
-                //重命名文件
-                localFile.renameTo(dest);
-                //文件写入
-                DatFileCreatUtils datFileCreatUtils=new DatFileCreatUtils(tablenumber,bizappnum,fileList,dest.getAbsolutePath(),spiltsign,endsign);
-                //生成dat文件到本地
-                datFileCreatUtils.creatDatFile();
-                //从本地传文件到服务器
-                sftpClient.fileCreat(dest.getAbsolutePath(),filePathWithDate);
-                //上传后删除临时文件
-                localFile.delete();
-                dest.delete();
-                //关闭连接
-                sftpClient.disconnect();
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            } catch (SftpException e) {
-                throw new RuntimeException(e);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
+                //服务器端口
+                String host=interFaceImgUtils.getServerName();
+                //服务器用户名
+                String username=interFaceImgUtils.getServerUser();
+                //服务器密码
+                String password=interFaceImgUtils.getServerPassword();
+                //服务器路径
+                //服务器端口号
+                int port= interFaceImgUtils.getProt();
+                try {
+                    //上传文件到服务器中
+                    SftpClient sftpClient=new SftpClient(host,username,password,port);
+                    //获取服务器连接
+                    sftpClient.connect();
+                    //创建文件夹,为当天日期
+                    Date currentDate=new Date();
+                    //设置日期格式
+                    SimpleDateFormat sf=new SimpleDateFormat("yyyyMMdd");
+                    String dateStr=sf.format(currentDate);
+                    String filePathWithDate=nckd_url+dateStr;
+                    //创建文件夹,名为当前日期
+                    sftpClient.creatDir(filePathWithDate);
+                    //临时文件
+                    File localFile = File.createTempFile(tablenumber, ".dat");
+                    File dest=new File(localFile.getParent()+File.separator+tablenumber.toUpperCase()+".dat");
+                    //重命名文件
+                    localFile.renameTo(dest);
+                    //文件写入
+                    DatFileCreatUtils datFileCreatUtils=new DatFileCreatUtils(tablenumber,bizappnum,fileList,dest.getAbsolutePath(),spiltsign,endsign);
+                    //生成dat文件到本地
+                    datFileCreatUtils.creatDatFile();
+                    //从本地传文件到服务器
+                    sftpClient.fileCreat(dest.getAbsolutePath(),filePathWithDate);
+                    //上传后删除临时文件
+                    localFile.delete();
+                    dest.delete();
+                    //关闭连接
+                    sftpClient.disconnect();
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                } catch (SftpException e) {
+                    throw new RuntimeException(e);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
             }
         }
     }

+ 21 - 18
src/main/java/sys/sc/task/UpdateBankDailyTask.java

@@ -13,6 +13,7 @@ import kd.bos.schedule.api.MessageHandler;
 import kd.bos.schedule.executor.AbstractTask;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
+import sys.sc.opplugin.utils.InterFaceImgUtils;
 import sys.sc.opplugin.utils.SftpClient;
 
 import java.io.BufferedReader;
@@ -28,11 +29,7 @@ import java.util.*;
  */
 public class UpdateBankDailyTask extends AbstractTask {
     private static final Log log = LogFactory.getLog(UpdateBankDailyTask.class);
-    public static String host="192.168.10.69";//服务器ip地址
-    public static String username="root";//用户名
-    public static int port = 22;//端口号
-    public static String password="Kd@86262007";//用户密码
-
+    public InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("produceurl");
 
     @Override
     public MessageHandler getMessageHandle() {
@@ -49,15 +46,28 @@ public class UpdateBankDailyTask extends AbstractTask {
         );
         //行名行号表标识
         String bd_bebank="bd_bebank";
+
+
         try {
             log.info("----------------------获取服务器连接------------------------");
+            //服务器ip
+            String host=interFaceImgUtils.getServerName();
+            //用户名
+            String username=interFaceImgUtils.getServerUser();
+            //用户密码
+            String password=interFaceImgUtils.getServerPassword();
+            //分割符
+            String splitsign=interFaceImgUtils.getServerSplit();
+            //结尾符
+            String endsign=interFaceImgUtils.getServerEndsign();
+            int port= interFaceImgUtils.getProt();
             //获取服务器连接
             SftpClient sftpClient=new SftpClient(host,username,password,port);
             sftpClient.connect();
             List<DynamicObject> createdataList = new ArrayList<>();
             List<DynamicObject> updatedataList = new ArrayList<>();
             //文件路径
-            String fileurl = getFileUrl("hmhhurl");
+            String fileurl = getFileUrl();
             //基础资料
             DynamicObjectType dynamicObjectType = EntityMetadataCache.getDataEntityType(bd_bebank);
             //国家基础资料(中国)
@@ -78,9 +88,9 @@ public class UpdateBankDailyTask extends AbstractTask {
                 String line;
                 while ((line = reader.readLine()) != null) {
                     //去掉换行符|$|
-                    line = line.replace("|$|", "");
+                    line = line.replace(endsign, "");
                     //空格符号,根据这个符号分割
-                    String[] fields = line.split("\u0001");
+                    String[] fields = line.split(splitsign,-1);
                     //如果获取的数据行不等于预设字段的行,则跳过这行数据
 //                        if (fields.length != selector.size()) {
 //                            continue;
@@ -176,15 +186,12 @@ public class UpdateBankDailyTask extends AbstractTask {
     }
 
     //根据接口配置信息获取组织人员,拼接服务器文件路径url,参数为urlcode接口配置信息编码
-    public String getFileUrl(String urlcode)
+    public String getFileUrl()
     {
-        //组织人员接口配置信息获取
-        DynamicObject nckd_jkpzxx= BusinessDataServiceHelper
-                .loadSingle("nckd_jkpzxx", new QFilter[]{new QFilter("number", "=", urlcode)});
         //取文件名
-        String nckd_filename=nckd_jkpzxx.getString("nckd_filename");
+        String nckd_filename=interFaceImgUtils.getFileName();
         //获取文件路径
-        String nckd_url=nckd_jkpzxx.getString("nckd_url");
+        String nckd_url=interFaceImgUtils.getServerUrl();
         //当前日期
         Date currentDate=new Date();
         Calendar calendar = Calendar.getInstance();
@@ -196,10 +203,6 @@ public class UpdateBankDailyTask extends AbstractTask {
         SimpleDateFormat sf=new SimpleDateFormat("yyyyMMdd");
         String datestr=sf.format(newDate);
         //文件路径拼接
-        //真实路径
-        if (nckd_url.equals("/var/appstatic/")) {
-            nckd_url="/home/kingdee/cosmic/nginx-appstatic/store/appstatic/";
-        }
         String realPath = nckd_url+datestr+"/"+nckd_filename;
         return realPath;
     }

+ 70 - 34
src/main/java/sys/sc/task/UpdateDataDailyTask.java

@@ -18,6 +18,7 @@ import kd.bos.sec.user.utils.UserOperationUtils;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import sys.sc.formplugin.ABillServiceHelper;
+import sys.sc.opplugin.utils.InterFaceImgUtils;
 import sys.sc.opplugin.utils.SftpClient;
 
 import java.io.*;
@@ -32,10 +33,18 @@ import java.util.*;
 public class UpdateDataDailyTask extends AbstractTask {
 
     private static final Log log = LogFactory.getLog(UpdateDataDailyTask.class);
-    public static String host="192.168.10.69";//服务器ip地址
-    public static String username="root";//用户名
-    public static int port = 22;//端口号
-    public static String password="Kd@86262007";//用户密码
+    public InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("produceurl");    //服务器ip
+    public String host=interFaceImgUtils.getServerName();
+    //用户名
+    public String username=interFaceImgUtils.getServerUser();
+    //用户密码
+    public String password=interFaceImgUtils.getServerPassword();
+    //分割符
+    public String splitsign=interFaceImgUtils.getServerSplit();
+    //结尾符
+    public String endsign=interFaceImgUtils.getServerEndsign();
+    public int port= interFaceImgUtils.getProt();
+
 
 
     @Override
@@ -93,13 +102,9 @@ public class UpdateDataDailyTask extends AbstractTask {
                 String line;
                 while ((line = reader.readLine()) != null) {
                     //去掉换行符|$|
-                    line = line.replace("|$|", "");
+                    line = line.replace(endsign, "");
                     //空格符号,根据这个符号分割
-                    String[] fields = line.split("\u0001");
-                    //如果获取的数据行不等于预设字段的行,则跳过这行数据
-                    if (fields.length != selector.size()) {
-                        continue;
-                    }
+                    String[] fields = line.split(splitsign,-1);
                     //获取工号
                     String gonghao = fields[0];
                     boolean isUpdated = false;
@@ -112,10 +117,17 @@ public class UpdateDataDailyTask extends AbstractTask {
                             String fieldName = selector.get(i);
                             String newValue = fields[i];
                             String existingValue = data.getString(fieldName);
+                            //如果等于行政编码,则去掉第一个字符1
+                            if (i==7||i==9||i==11) {
+                                existingValue=existingValue.substring(1);
+                            }
                             //判断数据是否与之前的数据相同,不相同则更新
                             if (!Objects.equals(existingValue, newValue)) {
-                                data.set(fieldName, newValue);
-                                isUpdated = true;
+                                if (!newValue.isEmpty()) {
+                                    data.set(fieldName, newValue);
+                                    isUpdated = true;
+                                }
+
                             }
                         }
                         //更新了数据则设置数据更新的时间
@@ -126,6 +138,16 @@ public class UpdateDataDailyTask extends AbstractTask {
                     } else {
                         //不存在这条数据则新增一条到data中
                         data = new DynamicObject(dynamicObjectType);
+                        //行政编码不为空则在前面加1
+                        if(!fields[7].isEmpty()) {
+                            fields[7]="1"+fields[7];
+                        }
+                        if (!fields[9].isEmpty()) {
+                            fields[9]="1"+fields[9];
+                        }
+                        if (!fields[11].isEmpty()) {
+                            fields[11]="1"+fields[11];
+                        }
                         for (int i = 0; i < selector.size(); i++) {
                             data.set(selector.get(i), fields[i]);
                         }
@@ -139,7 +161,6 @@ public class UpdateDataDailyTask extends AbstractTask {
             for (Map.Entry<String, DynamicObject> entry : existingDataMap.entrySet()) {
                 String gonghao = entry.getKey();
                 DynamicObject data = entry.getValue();
-
                 if (!processedGonghaoSet.contains(gonghao)) {
                     data.set("nckd_isdelete", true);
                     updatedataList.add(data);
@@ -184,11 +205,13 @@ public class UpdateDataDailyTask extends AbstractTask {
             log.info("指定的上级组织 'jxyh' 未找到!");
             return;
         }
-        IFormView orgview = ABillServiceHelper.createAddView("bos_adminorg");
         for (DynamicObject record : nckdData) {
             // 判断并创建或更新所在单位
             //所在单位编码
             String szdwbm = record.getString("nckd_szdwcode");
+            if (!szdwbm.isEmpty()) {
+                szdwbm=szdwbm.substring(1);
+            }
             //所在单位名称
             String szdwmc = record.getString("nckd_szdwname");
             DynamicObject org = BusinessDataServiceHelper.loadSingle(
@@ -196,8 +219,9 @@ public class UpdateDataDailyTask extends AbstractTask {
             );
             //没有单位则创建
             if (org == null) {
+                IFormView orgview = ABillServiceHelper.createAddView("bos_adminorg");
                 //组织编码
-                orgview.getModel().setValue("number", szdwbm);
+                orgview.getModel().setValue("number", "1"+szdwbm);
                 //组织名称
                 orgview.getModel().setValue("name", szdwmc);
                 //上级组织
@@ -211,7 +235,6 @@ public class UpdateDataDailyTask extends AbstractTask {
                 OperationResult operationResult = ABillServiceHelper.saveOperate(orgview);
                 //保存不成功
                 if (!operationResult.isSuccess()) {
-
                 }
                 org = orgview.getModel().getDataEntity();
                 //如果存在单位则检查单位名是否一致,不一致则更新
@@ -228,12 +251,15 @@ public class UpdateDataDailyTask extends AbstractTask {
             }
             // 判断一级机构编码 在行政组织中是否存在,不存在则新增
             String yjjgbm = record.getString("nckd_yjbmcode");
+            if (!yjjgbm.isEmpty()) {
+                yjjgbm=yjjgbm.substring(1);
+            }
             String yjjgmc = record.getString("nckd_yjbmname");
             //一级机构
             DynamicObject yjjg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", yjjgbm)});
             if (yjjg == null) {
-                IFormView yjjgView=orgview;
-                yjjgView.getModel().setValue("number", yjjgbm);
+                IFormView yjjgView=ABillServiceHelper.createAddView("bos_adminorg");
+                yjjgView.getModel().setValue("number","1"+yjjgbm);
                 yjjgView.getModel().setValue("name", yjjgmc);
                 yjjgView.getModel().setValue("parent", org); // 父级组织为 org
                 yjjgView.getModel().setValue("orgpattern", xingtaiinfo);
@@ -241,7 +267,7 @@ public class UpdateDataDailyTask extends AbstractTask {
                 yjjgView.getModel().setValue("enable", "1");
                 OperationResult yjjgOperationResult = ABillServiceHelper.saveOperate(yjjgView);
                 if (!yjjgOperationResult.isSuccess()) {
-                    // Handle the failure case here
+
                 }
                 yjjg = yjjgView.getModel().getDataEntity();
             } else if (!yjjg.getString("name").equals(yjjgmc)) {
@@ -254,12 +280,15 @@ public class UpdateDataDailyTask extends AbstractTask {
             }
             // 判断所在部门编码 在行政组织中是否存在,不存在则新增
             String szbmbm = record.getString("nckd_orgidcode");
+            if (!szbmbm.isEmpty()) {
+                szbmbm=szdwbm.substring(1);
+            }
             String szbmmc = record.getString("nckd_orgidname");
             //所在部门
             DynamicObject szbm = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", szbmbm)});
             if (szbm == null) {
-                IFormView szbmView=orgview;
-                szbmView.getModel().setValue("number", szbmbm);
+                IFormView szbmView=ABillServiceHelper.createAddView("bos_adminorg");
+                szbmView.getModel().setValue("number", "1"+szbmbm);
                 szbmView.getModel().setValue("name", szbmmc);
                 szbmView.getModel().setValue("parent", yjjg); // 设置父级为 yjjg
                 szbmView.getModel().setValue("orgpattern", xingtaiinfo);
@@ -354,15 +383,20 @@ public class UpdateDataDailyTask extends AbstractTask {
                     // 更新组织结构
                     DynamicObjectCollection structureInfoCollection = newOrgInfo.getDynamicObjectCollection("structure");
                     if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
-                        DynamicObject structureInfo = structureInfoCollection.get(0);
-                        if(existingDeptEntry.getDynamicObject("orgstructure")!=null){
-                            if (!structureInfo.getPkValue().equals(existingDeptEntry.getDynamicObject("orgstructure").getPkValue())) {
-                                existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
-                                deptUpdated = true;
+                        for (DynamicObject item:structureInfoCollection) {
+                            //不为兼职则更新
+                            if (!item.getBoolean("ispartjob")) {
+                                DynamicObject structureInfo=item;//获取结构信息
+                                if(existingDeptEntry.getDynamicObject("orgstructure")!=null){
+                                    if (!structureInfo.getPkValue().equals(existingDeptEntry.getDynamicObject("orgstructure").getPkValue())) {
+                                        existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
+                                        deptUpdated = true;
+                                    }
+                                }else{
+                                    existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
+                                    deptUpdated = true;
+                                }
                             }
-                        }else{
-                            existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
-                            deptUpdated = true;
                         }
                     }
                     // 标记是否需要保存
@@ -433,8 +467,13 @@ public class UpdateDataDailyTask extends AbstractTask {
                     // 获取组织的分录集合 structure 的第一条数据
                     DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
                     if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
-                        DynamicObject structureInfo = structureInfoCollection.get(0); // 获取第一条结构信息
-                        bumeninfo.set("orgstructure", structureInfo.getPkValue());
+                        for (DynamicObject item:structureInfoCollection) {
+                            //不为兼职则更新
+                            if (!item.getBoolean("ispartjob")) {
+                                DynamicObject structureInfo=item;//获取结构信息
+                                bumeninfo.set("orgstructure",structureInfo.getPkValue());
+                            }
+                        }
                     } else {
                         log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
                     }
@@ -477,9 +516,6 @@ public class UpdateDataDailyTask extends AbstractTask {
         String datestr=sf.format(newDate);
         //文件路径拼接
         //真实路径
-        if (nckd_url.equals("/var/appstatic/")) {
-            nckd_url="/home/kingdee/cosmic/nginx-appstatic/store/appstatic/";
-        }
         String realPath = nckd_url+datestr+"/"+nckd_filename;
         return realPath;
     }

+ 20 - 20
src/main/java/sys/sc/task/UpdateImpairmentDailyTask.java

@@ -2,7 +2,6 @@ package sys.sc.task;
 
 import com.alibaba.druid.support.logging.Log;
 import com.alibaba.druid.support.logging.LogFactory;
-import com.jcraft.jsch.SftpException;
 import kd.bos.context.RequestContext;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
@@ -15,6 +14,7 @@ import kd.bos.schedule.executor.AbstractTask;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.DeleteServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
+import sys.sc.opplugin.utils.InterFaceImgUtils;
 import sys.sc.opplugin.utils.SftpClient;
 
 import java.io.*;
@@ -28,10 +28,19 @@ import java.util.*;
  */
 public class UpdateImpairmentDailyTask extends AbstractTask {
     private static final Log log = LogFactory.getLog(UpdateImpairmentDailyTask.class);
-    public static String host="192.168.10.69";//服务器ip地址
-    public static String username="root";//用户名
-    public static int port = 22;//端口号
-    public static String password="Kd@86262007";//用户密码
+    public InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("produceurl");
+    //服务器ip
+    public String host=interFaceImgUtils.getServerName();
+    //用户名
+    public String username=interFaceImgUtils.getServerUser();
+    //用户密码
+    public String password=interFaceImgUtils.getServerPassword();
+    //分割符
+    public String splitsign=interFaceImgUtils.getServerSplit();
+    //结尾符
+    public String endsign=interFaceImgUtils.getServerEndsign();
+    public int port= interFaceImgUtils.getProt();
+
 
 
     @Override
@@ -67,13 +76,13 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
                 String line;
                 while ((line = reader.readLine()) != null) {
                     //去掉换行符|$|
-                    line = line.replace("|$|", "");
+                    line = line.replace(endsign, "");
                     //空格符号,根据这个符号分割
-                    String[] fields = line.split("\u0001");
+                    String[] fields = line.split(splitsign,-1);
                     //如果获取的数据行不等于预设字段的行,则跳过这行数据
-                    if (fields.length != selector.size()) {
-                        continue;
-                    }
+//                    if (fields.length != selector.size()) {
+//                        continue;
+//                    }
                     //获取单据号
                     String dubil_id = fields[0];
                     DynamicObject data;
@@ -97,13 +106,8 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
                 //转换list为DynamicObject类型
                 SaveServiceHelper.save(dynamicObjectType,dynamicObjectlist);
             }
-            QFilter qFilter=new QFilter("nckd_isdelete",QCP.equals,true);
             //删除所有的数据,再新增
-            for (DynamicObject existingDatum : existingData) {
-                existingDatum.set("nckd_isdelete", true);
-            }
-            SaveServiceHelper.save(existingData);
-            DeleteServiceHelper.delete(dynamicObjectType.getName(),new QFilter[]{qFilter});
+            DeleteServiceHelper.delete(dynamicObjectType.getName(),null);
             log.info("-----------------------减值数据已成功保存---------------------");
             custSave(dynamicObjectlist);
             log.info("------------------------客户数据已成功保存----------------------");
@@ -138,10 +142,6 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
         //转换日期格式
         SimpleDateFormat sf=new SimpleDateFormat("yyyyMMdd");
         String datestr=sf.format(newDate);
-        //真实路径
-        if (nckd_url.equals("/var/appstatic/")) {
-            nckd_url="/home/kingdee/cosmic/nginx-appstatic/store/appstatic/";
-        }
         //文件完整路径
         String realPath = nckd_url+datestr+ File.separator+nckd_filename;
         return realPath;