Răsfoiți Sursa

薪酬计提单新增分录文件导入功能

zhouger 8 luni în urmă
părinte
comite
06708488c6

+ 25 - 2
src/main/java/fi/em/formPlugin/SalaryDistributeEditPlugin.java

@@ -34,6 +34,7 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
     private static String nckd_earlyretired="nckd_earlyretired";//薪酬明细(内退)分录标识
     private static String nckd_retired="nckd_retired";//薪酬明细(退休)分录标识
     private static String nckd_pay="nckd_pay";//人力薪酬分录标识
+    private static String nckd_payretird="nckd_payretird";//人力薪酬(内退)分录标识
     private static String oldentryNum="oldentryNum";
     private static String newentryNum="newentryNum";
 
@@ -46,6 +47,7 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
         viewList.add(nckd_earlyretired);
         viewList.add(nckd_retired);
         viewList.add(nckd_pay);
+        viewList.add(nckd_payretird);
 
         if (Viewflag.isEmpty()) {
             for (String item:viewList) {
@@ -82,6 +84,13 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
             }
             clearEntryData(nckd_pay);
         }
+        //人力薪酬内退分录
+        if (Viewflag.equals(nckd_payretird)){
+            for (String item:viewList) {
+                this.getView().setVisible(false,item);
+            }
+            clearEntryData(nckd_payretird);
+        }
     }
 
     public void afterCreateNewData(EventObject e){
@@ -171,6 +180,16 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
                     this.setVieeVisible(nckd_pay);
                 }
             }
+            //分录类型为人力薪酬(内退)
+            if (entrytype.equals("E")) {
+                if (billIsNotEmpty(data)) {
+                    ConfirmCallBackListener confirmCallBacks = new ConfirmCallBackListener(String.valueOf(false), this);
+                    String confirmTip = "您确定要将分录类型改变为人力薪酬(内退)?操作会清空其他分录的数据,是否继续?";
+                    this.getView().showConfirm(confirmTip,MessageBoxOptions.YesNo, ConfirmTypes.Default, confirmCallBacks);
+                }else {
+                    this.setVieeVisible(nckd_payretird);
+                }
+            }
         }
     }
 
@@ -198,6 +217,10 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
             if (entrytype.equals("D")) {
                 this.setVieeVisible(nckd_pay);
             }
+            //分录类型为人力薪酬(内退)
+            if (entrytype.equals("E")) {
+                this.setVieeVisible(nckd_payretird);
+            }
         }
         //如果为取消,则
         if (messageBoxClosedEvent.getResult()==MessageBoxResult.No) {
@@ -212,7 +235,7 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
     //判断单据内四个分录是否为空,分录有数据则返回true
     public boolean billIsNotEmpty(DynamicObject data) {
         //四个分录标识
-        List<String> nckd_entryList = Arrays.asList("nckd_staffentry","nckd_earlyretiredentry","nckd_retireentry","nckd_salaryentry");
+        List<String> nckd_entryList = Arrays.asList("nckd_staffentry","nckd_earlyretiredentry","nckd_retireentry","nckd_salaryentry","nckd_salaryentryre");
         for (String item:nckd_entryList) {
             DynamicObjectCollection dynamicObjectCollection=data.getDynamicObjectCollection(item);
             if (!dynamicObjectCollection.isEmpty()) {
@@ -226,7 +249,7 @@ public class SalaryDistributeEditPlugin extends AbstractListPlugin implements Pl
     public void clearEntryData(String nckd_entry)
     {
         //分录标识
-        List<String> nckd_generalemployees =Arrays.asList("nckd_staffentry","nckd_earlyretiredentry","nckd_retireentry","nckd_salaryentry");
+        List<String> nckd_generalemployees =Arrays.asList("nckd_staffentry","nckd_earlyretiredentry","nckd_retireentry","nckd_salaryentry","nckd_salaryentryre");
         for (String item:nckd_generalemployees) {
             //不传入参数默认全部分录清除
             if ("".equals(nckd_entry)){

+ 118 - 13
src/main/java/fi/em/formPlugin/SalaryFileUploadEditPlugin.java

@@ -69,6 +69,9 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
         } else if ("D".equals(nckd_entrytype)) {
             billtype="nckd_salaryentry";
             readExcelByRowOrCell(4,78,inputStream,billtype);
+        } else if ("E".equals(nckd_entrytype)) {
+            billtype="nckd_salaryentryre";
+            readExcelByRowOrCell(4,34,inputStream,billtype);
         } else if (null==nckd_entrytype) {
             throw new KDBizException("请选择分录类型");
         }
@@ -141,7 +144,7 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
                 ,"nckd_se_cpy_hopins","nckd_se_cpy_bhopins","nckd_se_cpy_ljins","nckd_se_cpy_birthins","nckd_se_cpy_dmgins","nckd_se_cpy_hosins"
                 ,"nckd_se_cpy_cmymey");
         //薪酬明细(内退)分录字段标识
-        List<String> nckd_earlyretired=Arrays.asList("nckd_orgfield","nckd_ee_empname","nckd_ee_empnumber","nckd_ee_idnumber","nckd_ee_banknumber"
+        List<String> nckd_earlyretired=Arrays.asList("nckd_ee_institution","nckd_ee_empname","nckd_ee_empnumber","nckd_ee_idnumber","nckd_ee_banknumber"
                 ,"nckd_ee_unit","nckd_ee_org","nckd_ee_department","nckd_ee_allbasicsry","nckd_ee_allowance","nckd_ee_otherallowance","nckd_ee_per_endins"
                 ,"nckd_ee_per_ljins","nckd_ee_per_hopins","nckd_ee_per_bhopins","nckd_ee_per_hosins","nckd_ee_per_cmymey","nckd_ee_unionmey"
                 ,"nckd_ee_tax","nckd_ee_desalary","nckd_ee_netsalary","nckd_ee_otherreduce","nckd_ee_cpy_endins","nckd_ee_cpy_bhopins"
@@ -152,7 +155,7 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
                 ,"nckd_re_unit","nckd_re_org","nckd_re_department","nckd_re_livallowance","nckd_re_otherallowance","nckd_re_reward"
                 ,"nckd_re_salarypayable","nckd_re_desalary","nckd_re_netsalary");
         //人力薪酬分录标识
-        List<String> nckd_pay=Arrays.asList("nckd_sae_institution","nckd_sae_empname","nckd_sae_jobid","nckd_sae_idnumber","nckd_sae_company"
+        List<String> nckd_pay=Arrays.asList("nckd_sae_institution","nckd_sae_empname","nckd_sae_jobid","nckd_sae_idnumber","nckd_sae_banknumber","nckd_sae_company"
                 ,"nckd_sae_institutions","nckd_sae_department","nckd_sae_levelsry","nckd_sae_dutiessry","nckd_sae_updutiessry","nckd_sae_workyearsry"
                 ,"nckd_sae_depyear","nckd_sae_eduasry","nckd_sae_transry","nckd_sae_jobsry","nckd_sae_basicsry","nckd_sae_allbasicsry","nckd_sae_acmsry"
                 ,"nckd_sae_mountsry","nckd_sae_reacmsry","nckd_sae_balyearsry","nckd_sae_blastyearsry","nckd_sae_allsry","nckd_sae_bsnrwd","nckd_sae_cpmrwd"
@@ -166,6 +169,15 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
                 ,"nckd_sae_cpy_hopins","nckd_sae_cpy_bhopins","nckd_sae_cpy_birthins","nckd_sae_cpy_ljins","nckd_sae_cpy_dmgins","nckd_sae_cpy_hosins"
                 ,"nckd_sae_cpy_cmymey");
 
+        //人力薪酬内退分录标识
+        List<String> nckd_payretird=Arrays.asList("nckd_see_institution","nckd_see_empname","nckd_see_jobid","nckd_see_idnumber"
+                ,"nckd_see_banknumber","nckd_see_company","nckd_see_institutions","nckd_see_department","nckd_see_allbasicsry"
+                ,"nckd_see_allowance","nckd_see_otherallowanc","nckd_see_per_endins","nckd_see_per_ljins","nckd_see_per_hopins"
+                ,"nckd_see_per_bhopins","nckd_see_per_hosins","nckd_see_per_cmymey","nckd_see_unionmey","nckd_see_tax"
+                ,"nckd_see_desalary","nckd_see_netsalary","nckd_see_otherreduce","nckd_see_cpy_endins","nckd_see_cpy_bhopins"
+                ,"nckd_see_cpy_ljins","nckd_see_cpy_birthins","nckd_see_cpy_dmgins","nckd_see_cpy_cmymey","nckd_see_cpy_hosins"
+                ,"nckd_see_taxt","nckd_see_alltaxt","nckd_see_charge","nckd_see_finallsys");
+
 
         //将excel数据存入薪酬明细(一般员工)分录
         if(nckd_entry.equals("nckd_staffentry")) {
@@ -395,29 +407,33 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
                 if (!getCellValue(rowList.get(i).getCell(4)).isEmpty()){
                     this.getModel().setValue(nckd_pay.get(3),getCellValue(rowList.get(i).getCell(4)),rowIndex);
                 }
-                //所在单位
-                if (!getCellValue(rowList.get(i).getCell(5)).isEmpty()) {
-                    QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(5)));
-                    DynamicObject entrycostdept= BusinessDataServiceHelper
-                            .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
-                    this.getModel().setValue(nckd_pay.get(4),entrycostdept,rowIndex);
+                //银行账号
+                if (!getCellValue(rowList.get(i).getCell(5)).isEmpty()){
+                    this.getModel().setValue(nckd_pay.get(4),getCellValue(rowList.get(i).getCell(5)),rowIndex);
                 }
-                //一级机构
+                //所在单位
                 if (!getCellValue(rowList.get(i).getCell(6)).isEmpty()) {
                     QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(6)));
                     DynamicObject entrycostdept= BusinessDataServiceHelper
                             .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
                     this.getModel().setValue(nckd_pay.get(5),entrycostdept,rowIndex);
                 }
-                //所在部门
+                //一级机构
                 if (!getCellValue(rowList.get(i).getCell(7)).isEmpty()) {
                     QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(7)));
                     DynamicObject entrycostdept= BusinessDataServiceHelper
                             .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
                     this.getModel().setValue(nckd_pay.get(6),entrycostdept,rowIndex);
                 }
+                //所在部门
+                if (!getCellValue(rowList.get(i).getCell(8)).isEmpty()) {
+                    QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(8)));
+                    DynamicObject entrycostdept= BusinessDataServiceHelper
+                            .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
+                    this.getModel().setValue(nckd_pay.get(7),entrycostdept,rowIndex);
+                }
                 //金额类型字段赋值
-                for (int j=7;j<nckd_pay.size();j++) {
+                for (int j=9;j<nckd_pay.size();j++) {
                     Cell cell=rowList.get(i).getCell(j+1);
                     //空值则跳过
                     if (!Objects.equals(getCellValue(cell), "")) {
@@ -430,10 +446,78 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
             }
 
         }
+
+        //人力薪酬内退分录
+        if (nckd_entry.equals("nckd_salaryentryre")){
+            this.getModel().deleteEntryData("nckd_salaryentryre");
+            for (int i=0;i<rowList.size();i++) {
+                //新增动态单据分录
+                int rowIndex = this.getModel().createNewEntryRow(nckd_entry);
+                //发薪机构
+                if (!getCellValue(rowList.get(i).getCell(1)).isEmpty()) {
+                    QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(1)));
+                    //获取发薪机构
+                    DynamicObject entrycostdept= BusinessDataServiceHelper
+                            .loadSingle(bos_org,"id,entrycostdept",new QFilter[]{filter});
+                    this.getModel().setValue(nckd_payretird.get(0),entrycostdept,rowIndex);
+                }
+                //员工姓名
+                if (!getCellValue(rowList.get(i).getCell(2)).isEmpty()){
+                    this.getModel().setValue(nckd_payretird.get(1),getCellValue(rowList.get(i).getCell(2)),rowIndex);
+                }
+                //员工工号
+                if (!getCellValue(rowList.get(i).getCell(3)).isEmpty()){
+                    this.getModel().setValue(nckd_payretird.get(2),getCellValue(rowList.get(i).getCell(3)),rowIndex);
+                }
+                //证件号
+                if (!getCellValue(rowList.get(i).getCell(4)).isEmpty()){
+                    this.getModel().setValue(nckd_payretird.get(3),getCellValue(rowList.get(i).getCell(4)),rowIndex);
+                }
+                //银行账号
+                if (!getCellValue(rowList.get(i).getCell(5)).isEmpty()){
+                    this.getModel().setValue(nckd_payretird.get(4),getCellValue(rowList.get(i).getCell(5)),rowIndex);
+                }
+                //所在单位
+                if (!getCellValue(rowList.get(i).getCell(6)).isEmpty()){
+                    QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(6)));
+                    DynamicObject entrycostdept= BusinessDataServiceHelper
+                            .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
+                    this.getModel().setValue(nckd_payretird.get(5),entrycostdept,rowIndex);
+                }
+                //一级机构
+                if (!getCellValue(rowList.get(i).getCell(7)).isEmpty())
+                {
+                    QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(7)));
+                    DynamicObject entrycostdept= BusinessDataServiceHelper
+                            .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
+                    this.getModel().setValue(nckd_payretird.get(6),entrycostdept,rowIndex);
+                }
+                //所在部门
+                if (!getCellValue(rowList.get(i).getCell(8)).isEmpty())
+                {
+                    QFilter filter=new QFilter("number", QFilter.equals,getCellValue(rowList.get(i).getCell(8)));
+                    DynamicObject entrycostdept= BusinessDataServiceHelper
+                            .loadSingle(bos_adminorg,"id",new QFilter[]{filter});
+                    this.getModel().setValue(nckd_payretird.get(7),entrycostdept,rowIndex);
+                }
+                //金额类型字段赋值
+                for (int j=8;j<nckd_payretird.size();j++) {
+                    Cell cell=rowList.get(i).getCell(j+1);
+                    //空值则跳过
+                    if (!Objects.equals(getCellValue(cell), "")) {
+                        //金额字段转化为BigDecimal赋值进分录中
+                        String string=getCellValue(cell);
+                        BigDecimal bigDecimal= BigDecimal.valueOf(Double.parseDouble(string));
+                        this.getModel().setValue(nckd_payretird.get(j),bigDecimal,rowIndex);
+                    }
+                }
+            }
+        }
     }
 
 
 
+
     /**
      * @headList 读取的excel表头数据
      * @rowList 读取excel的表数据
@@ -507,12 +591,12 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
         //人力薪酬
         if (billtype.equals("nckd_salaryentry")) {
             flag=headList.get(0).getCell(9).getStringCellValue();
-            if (!flag.equals("职务工资")) {
+            if (!flag.equals("级别工资")) {
                 throw new KDBizException("上传的文件格式有误,请检查!");
             }
             for (int i=0;i<rowList.size();i++) {
                 //校验金额字段
-                for (int j=8;j<rowList.get(i).getLastCellNum();j++) {
+                for (int j=9;j<rowList.get(i).getLastCellNum();j++) {
                     Cell cell=rowList.get(i).getCell(j);
                     //单元格不为空
                     if (!Objects.equals(getCellValue(cell), "")) {
@@ -524,6 +608,27 @@ public class SalaryFileUploadEditPlugin extends AbstractBillPlugIn implements Up
                 }
             }
         }
+        //人力薪酬(内退)
+        if (billtype.equals("nckd_salaryentryre"))
+        {
+            flag=headList.get(0).getCell(9).getStringCellValue();
+            if (!flag.equals("内退生活费")) {
+                throw new KDBizException("上传的文件格式有误,请检查!");
+            }
+            for (int i=0;i<rowList.size();i++) {
+                //校验金额字段
+                for (int j=9;j<rowList.get(i).getLastCellNum();j++) {
+                    Cell cell=rowList.get(i).getCell(j);
+                    //单元格不为空
+                    if (!Objects.equals(getCellValue(cell), "")) {
+                        if (cell.getCellType()!=CellType.NUMERIC){
+                            //输入金额字段的类型不为数字则提示
+                            throw new KDBizException("第"+(i+1)+"行第"+j+"列的数据:"+headList.get(i).getCell(j).getStringCellValue()+"字段有误,请检查!");
+                        }
+                    }
+                }
+            }
+        }
     }