Quellcode durchsuchen

员工收款信息表

zhouger vor 6 Monaten
Ursprung
Commit
6b13b835d4

+ 71 - 0
src/main/java/fi/em/formPlugin/SalaryBankNumEditPlugin.java

@@ -0,0 +1,71 @@
+package fi.em.formPlugin;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+
+/**
+ * @author cjz
+ * @date 2024/10/25 16:37
+ * @description:根据人力薪酬分录自动带出人员银行账户
+ */
+public class SalaryBankNumEditPlugin extends AbstractFormPlugin {
+
+    private static String nckd_sae_jobid="nckd_sae_jobid";//人力薪酬一般员工工号标识
+    private static String nckd_sae_banknumber="nckd_sae_banknumber";//人力薪酬一般员工银行账号标识
+    private static String nckd_see_jobid="nckd_see_jobid";//人力薪酬内退工号标识
+    private static String nckd_see_banknumber="nckd_see_banknumber";//人力薪酬内退银行账号标识
+    private static String nckd_salaryentry="nckd_salaryentry";//人力薪酬一般员工分录标识
+    private static String nckd_salaryentryre="nckd_salaryentryre";//人力薪酬内退分录标识
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.beforePropertyChanged(e);
+        String name = e.getProperty().getName();//获取字段标识
+        //获取当前单据
+        DynamicObject dynamicObject=this.getModel().getDataEntity(true);
+        //人力薪酬一般员工工号带出银行账号
+        if (nckd_sae_jobid.equals(name)) {
+            //人力一般分录
+            DynamicObjectCollection dynamicObjectCollection=dynamicObject.getDynamicObjectCollection(nckd_salaryentry);
+            for (DynamicObject item:dynamicObjectCollection) {
+                //人力一般工号
+                String sae_jobid=item.getString(nckd_sae_jobid);
+                QFilter qFilter=new QFilter("nckd_payeenum.number", QCP.equals,sae_jobid);
+                //查询员工收款信息表
+                DynamicObject dynamicObjects= BusinessDataServiceHelper
+                        .loadSingle("nckd_payinformation","id,nckd_payaccount",new QFilter[]{qFilter});
+                //存在数据则设值
+                if (dynamicObjects!=null) {
+                    //设置银行账号
+                    this.getModel().setValue(nckd_sae_banknumber,dynamicObjects.getString("nckd_payaccount"));
+                }
+            }
+        }
+
+        //人力薪酬内退工号带出银行账号
+        if (nckd_see_jobid.equals(name)) {
+            //人力内退分录
+            DynamicObjectCollection dynamicObjectCollection=dynamicObject.getDynamicObjectCollection(nckd_salaryentryre);
+            for (DynamicObject item:dynamicObjectCollection) {
+                //人力一般工号
+                String sae_jobid=item.getString(nckd_see_jobid);
+                QFilter qFilter=new QFilter("nckd_payeenum.number", QCP.equals,sae_jobid);
+                //查询员工收款信息表
+                DynamicObject dynamicObjects= BusinessDataServiceHelper
+                        .loadSingle("nckd_payinformation","id,nckd_payaccount",new QFilter[]{qFilter});
+                //存在数据则设值
+                if (dynamicObjects!=null) {
+                    //设置银行账号
+                    this.getModel().setValue(nckd_see_banknumber,dynamicObjects.getString("nckd_payaccount"));
+                }
+            }
+        }
+    }
+
+
+}

+ 112 - 0
src/main/java/sys/sc/formplugin/PayInfoImportPlugin.java

@@ -0,0 +1,112 @@
+package sys.sc.formplugin;
+
+import com.grapecity.documents.excel.Q;
+import com.icbc.api.internal.util.internal.util.fastjson.JSON;
+import com.icbc.api.internal.util.internal.util.fastjson.JSONObject;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.api.ApiResult;
+import kd.bos.entity.plugin.ImportLogger;
+import kd.bos.form.plugin.impt.BatchImportPlugin;
+import kd.bos.form.plugin.impt.ImportBillData;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author cjz
+ * @date 2024/10/25 9:38
+ * @description:引入数据前校验插件
+ */
+public class PayInfoImportPlugin extends BatchImportPlugin {
+
+    //保存前校验
+    @Override
+    protected ApiResult save(List<ImportBillData> rowdatas, ImportLogger logger) {
+        Iterator<ImportBillData> it = rowdatas.iterator();
+        //工号list
+        List<String> payeenumlist=new ArrayList<>();
+        //银行账号list
+        List<String> payaccountlist=new ArrayList<>();
+        //获取所有工号的list
+        for (ImportBillData item:rowdatas) {
+            Map<String,Object> billData = item.getData();
+            //收款人工号
+            String str=billData.get("nckd_payeenum").toString();
+            JSONObject jsonObject = JSON.parseObject(str);
+            String payeenum=jsonObject.getString("number");
+            //使用状态
+            String nckd_datastatus = (String) billData.get("nckd_datastatus");
+            payeenumlist.add(payeenum+nckd_datastatus);
+
+            //银行账号
+            String nckd_payaccount= (String) billData.get("nckd_payaccount");
+            payaccountlist.add(nckd_payaccount);
+
+        }
+        //文件校验
+        while (it.hasNext()) {
+            ImportBillData data = it.next();
+            Map<String,Object> billData = data.getData();
+            String temp = "";
+            //校验是否有银行账号重复
+            for (int i = 0; i <payeenumlist.size()-1; i++) {
+                temp = payeenumlist.get(i);
+                for (int j = i + 1; j < payeenumlist.size(); j++) {
+                    if (temp.equals(payeenumlist.get(j))) {
+                        String validMsg =("第" + (i + 1) + "行与第" + (j + 1) + "行重复,同一个工号不能有两条启用数据,值是:" + temp.substring(0,temp.length()-1));
+                        // 有校验提示,校验不通过,记录日志,移除数据
+                        logger.log(data.getStartIndex(), validMsg).fail();
+                        it.remove();
+                    }
+                }
+            }
+            //检验是否有相同的银行账号
+            String tmp="";
+            for (int i=0;i<payaccountlist.size();i++) {
+                tmp=payaccountlist.get(i);
+                for (int j=i+1;j< payaccountlist.size();j++) {
+                    if (tmp.equals(payaccountlist.get(j))) {
+                        String validMsg="第"+(i+1)+"行与第"+(j+1)+"行银行账号重复,值为"+tmp;
+                        logger.log(data.getStartIndex(),validMsg).fail();
+                        it.remove();
+                    }
+                }
+            }
+            //收款人工号
+            String str=billData.get("nckd_payeenum").toString();
+            JSONObject jsonObject = JSON.parseObject(str);
+            String payeenum=jsonObject.getString("number");
+            //使用状态
+            String nckd_datastatus = (String) billData.get("nckd_datastatus");
+            //与表中已存在的数据进行校验,相同工号只能有一个启用数据
+            QFilter qFilter=new QFilter("nckd_payeenum.number",QCP.equals,payeenum);
+            qFilter.and("nckd_datastatus",QCP.equals,nckd_datastatus);
+            DynamicObject[] dynamicObjects=BusinessDataServiceHelper
+                    .load("nckd_payinformation","id",new QFilter[]{qFilter});
+            if (dynamicObjects.length>0) {
+                String validMsg="同一个工号存在多个已启用的数据,工号为:"+payeenum;
+                logger.log(data.getStartIndex(),validMsg).fail();
+                it.remove();
+            }
+            //银行账号
+            String nckd_payaccount= (String) billData.get("nckd_payaccount");
+            payaccountlist.add(nckd_payaccount);
+            QFilter filter=new QFilter("nckd_payaccount",QCP.equals,nckd_payaccount);
+            DynamicObject[] dylist=BusinessDataServiceHelper
+                    .load("nckd_payinformation","id",new QFilter[]{filter});
+            if (dylist.length>0) {
+                String validMsg="存在相同的银行账号:"+nckd_payaccount;
+                logger.log(data.getStartIndex(),validMsg).fail();
+                it.remove();
+            }
+        }
+        return super.save(rowdatas, logger);
+    }
+
+
+}

+ 93 - 0
src/main/java/sys/sc/formplugin/PayInformationPlugin.java

@@ -0,0 +1,93 @@
+package sys.sc.formplugin;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.events.ChangeData;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.form.operate.AbstractOperate;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+
+/**
+ * @author cjz
+ * @date 2024/10/24 15:09
+ * @description:员工收款信息表(人力薪酬)
+ */
+public class PayInformationPlugin extends AbstractFormPlugin {
+
+    private static String nckd_payeenum="nckd_payeenum";//收款人工号标识
+    private static String nckd_adminnum="nckd_adminnum";//管理员工号标识
+    private static String bos_user="bos_user";//人员表标识
+
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.beforePropertyChanged(e);
+        String name = e.getProperty().getName();//获取字段标识
+        //获取当前单据
+        DynamicObject dynamicObject=this.getModel().getDataEntity(true);
+        //选择收款人工号后自动带出收款人姓名
+        if (nckd_payeenum.equals(name))
+        {
+            ChangeData[] changeSet = e.getChangeSet();//获取值
+            ChangeData changeData = changeSet[0];
+            DynamicObject payObj= (DynamicObject) changeData.getNewValue();
+            QFilter filter=new QFilter("number", QCP.equals,payObj.get("number"));
+            DynamicObject payeeuser= BusinessDataServiceHelper.loadSingle(bos_user,QCP.equals,new QFilter[]{filter});
+            //设置收款人姓名
+            this.getModel().setValue("nckd_payeename",payeeuser);
+        }
+        //选择管理员工号后自动带出管理人姓名
+        if (nckd_adminnum.equals(name))
+        {
+            ChangeData[] changeSet = e.getChangeSet();//获取值
+            ChangeData changeData = changeSet[0];
+            DynamicObject payObj= (DynamicObject) changeData.getNewValue();
+            QFilter filter=new QFilter("number", QCP.equals,payObj.get("number"));
+            DynamicObject adminuser= BusinessDataServiceHelper.loadSingle(bos_user,QCP.equals,new QFilter[]{filter});
+            //设置收款人姓名
+            this.getModel().setValue("nckd_adminname",adminuser);
+        }
+
+    }
+
+    //保存前校验
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        super.beforeDoOperation(args);
+        AbstractOperate op = (AbstractOperate)args.getSource();
+        String operateKey = op.getOperateKey();
+        //获取当前单据
+        DynamicObject dynamicObject=this.getModel().getDataEntity(true);
+        //获取工号
+        DynamicObject payeenumDy=dynamicObject.getDynamicObject("nckd_payeenum");
+        String payeenum=payeenumDy.getString("number");
+        //数据状态
+        String nckd_datastatus=dynamicObject.getString("nckd_datastatus");
+        //银行账号
+        String nckd_payaccount=dynamicObject.getString("nckd_payaccount");
+        //保存前加校验,每个工号只有一个启用数据
+        if ("bar_save".equals(operateKey)) {
+            //工号启用校验
+            QFilter qFilter=new QFilter("nckd_payeenum.number",QCP.equals,payeenum);
+            qFilter.and("nckd_datastatus",QCP.equals,nckd_datastatus);
+            DynamicObject[] dynamicObjects=BusinessDataServiceHelper
+                    .load("nckd_payinformation","id",new QFilter[]{qFilter});
+            if (dynamicObjects.length>0) {
+                this.getView().showMessage("同一个工号存在多个已启用的数据,工号为:"+payeenum);
+                //取消保存操作
+                args.setCancel(true);
+            }
+            //银行账号校验
+            QFilter filter=new QFilter("nckd_payaccount",QCP.equals,nckd_payaccount);
+            DynamicObject[] dylist=BusinessDataServiceHelper
+                    .load("nckd_payinformation","id",new QFilter[]{filter});
+            if (dylist.length>0) {
+                this.getView().showMessage("存在相同的银行账号:"+nckd_payaccount);
+                //取消保存操作
+                args.setCancel(true);
+            }
+        }
+    }
+}

+ 1 - 19
src/main/java/sys/sc/formplugin/TestPlugin.java

@@ -798,25 +798,7 @@ public class TestPlugin  extends AbstractListPlugin {
         //
         if("testaaa".equals(e.getOperateKey()))
         {
-            //组织人员接口配置信息获取
-            DynamicObject nckd_jkpzxx= BusinessDataServiceHelper
-                    .loadSingle("nckd_jkpzxx", new QFilter[]{new QFilter("number", "=", "organduserurl")});
-            //取文件名
-            String nckd_filename=nckd_jkpzxx.getString("nckd_filename");
-            //获取文件路径
-            String nckd_url=nckd_jkpzxx.getString("nckd_url");
-            //当前日期
-            Date currentDate=new Date();
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(currentDate);
-            calendar.add(Calendar.DATE, -1); // 将日期减少一天
-            //日期减少一天
-            Date newDate = calendar.getTime();
-            //转换日期格式
-            SimpleDateFormat sf=new SimpleDateFormat("yyyyMMdd");
-            String datestr=sf.format(newDate);
-            //文件完整路径
-            String realPath = nckd_url+datestr+"/"+nckd_filename+"_"+datestr+".dat";
+
 
         }
 

+ 0 - 6
src/main/java/sys/sc/task/UpdateImpairmentDailyTask.java

@@ -82,10 +82,6 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
                     line = line.replace(endsign, "");
                     //空格符号,根据这个符号分割
                     String[] fields = line.split(splitsign,-1);
-                    //如果获取的数据行不等于预设字段的行,则跳过这行数据
-//                    if (fields.length != selector.size()) {
-//                        continue;
-//                    }
                     //获取单据号
                     String dubil_id = fields[0];
                     DynamicObject data;
@@ -117,8 +113,6 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
-
-
     }
 
     @Override