Переглянути джерело

业务处理单问题处理

徐昊 8 місяців тому
батько
коміт
23d7337d2a

+ 39 - 16
src/main/java/fi/em/editPlugin/BusinessProcessingEditPlugin.java

@@ -37,31 +37,49 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
         String operateKey = e.getOperateKey();
         if (btn_cysgzmx.equals(e.getOperateKey())) {
             Object value = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
+            Object nckd_orgv = this.getModel().getValue("nckd_orgv");//获取当前单据付款人
             DynamicObject dynamicObject = (DynamicObject)value;
+            DynamicObject orgv = (DynamicObject)nckd_orgv;
             if (dynamicObject == null){
-                throw new KDBizException("收款处理付款人为空!");
+                throw new KDBizException("收款信息付款人为空!");
+            }
+            if (orgv == null){
+                throw new KDBizException("收款信息收款人为空!");
             }
             String payeenamev = dynamicObject.getString("name");//当前单据付款供应商
+            String orgnumber = orgv.getString("number");
             nckd_agentparameterf7="nckd_cyfgzmxf7";
-            showParameter(nckd_agentparameterf7, btn_cysgzmx,payeenamev,btn_cysgzmx);//调用弹出页面
+            showParameter(nckd_agentparameterf7, btn_cysgzmx,payeenamev,btn_cysgzmx,orgnumber);//调用弹出页面
         }else if (btn_cyfgzmx.equals(e.getOperateKey())) {
             Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前单据付款人
+            Object nckd_orgvs = this.getModel().getValue("nckd_orgvs");//获取当前单据收款人
             DynamicObject dynamicObject = (DynamicObject)value;
+            DynamicObject orgvs = (DynamicObject)nckd_orgvs;
             if (dynamicObject == null){
-                throw new KDBizException("付款处理付款人为空!");
+                throw new KDBizException("付款信息收款人为空!");
+            }
+            if (orgvs == null){
+                throw new KDBizException("付款信息付款人为空!");
             }
             String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
+            String orgnumber = orgvs.getString("number");
             nckd_agentparameterf7="nckd_cysgzmxf7";
-            showParameter(nckd_agentparameterf7, btn_cyfgzmx,payeenamev,btn_cyfgzmx);//调用弹出页面
+            showParameter(nckd_agentparameterf7, btn_cyfgzmx,payeenamev,btn_cyfgzmx,orgnumber);//调用弹出页面
         } else if (btn_pzht.equals(e.getOperateKey())){
-            Object value = this.getModel().getValue("nckd_costcompany");//获取当前单据核算组织
+            Object value = this.getModel().getValue("nckd_orgv");//获取当前单据核算组织
+            Object nckd_payeenamevs = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
             DynamicObject dynamicObject = (DynamicObject)value;
+            DynamicObject payeenamevs = (DynamicObject)nckd_payeenamevs;
             if (dynamicObject == null){
-                throw new KDBizException("费用承担公司为空!");
+                throw new KDBizException("收款信息收款人为空!");
+            }
+            if (payeenamevs == null){
+                throw new KDBizException("收款信息付款人为空!");
             }
             String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
+            String nckdpayeenamevs = payeenamevs.getString("name");//当前单据付款供应商编码
             nckd_agentparameterf7="nckd_pzhtf7";
-            showParameter(nckd_agentparameterf7, btn_pzht,payeenamev,btn_pzht);//调用弹出页面
+            showParameter(nckd_agentparameterf7, btn_pzht,nckdpayeenamevs,btn_pzht,payeenamev);//调用弹出页面
         }else if (btn_skskzh.equals(e.getOperateKey())){
             Object value = this.getModel().getValue("nckd_payeenamev");//获取当前收款信息付款人
             DynamicObject dynamicObject = (DynamicObject)value;
@@ -70,7 +88,7 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
             }
             String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
             nckd_agentparameterf7="nckd_supplierbank";
-            showParameter(nckd_agentparameterf7, btn_skskzh,payeenamev,btn_skskzh);//调用弹出页面
+            showParameter(nckd_agentparameterf7, btn_skskzh,payeenamev,btn_skskzh,"");//调用弹出页面
         }else if (btn_fkfkzh.equals(e.getOperateKey())){
             Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前付款信息付款人
             DynamicObject dynamicObject = (DynamicObject)value;
@@ -79,17 +97,18 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
             }
             String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
             nckd_agentparameterf7="nckd_supplierbank";
-            showParameter(nckd_agentparameterf7, btn_fkfkzh,payeenamev,btn_fkfkzh);//调用弹出页面
+            showParameter(nckd_agentparameterf7, btn_fkfkzh,payeenamev,btn_fkfkzh,"");//调用弹出页面
         }
     }
 
-    public void showParameter(String formId, String actionId,String payeenamev,String controls) {
+    public void showParameter(String formId, String actionId,String payeenamev,String controls,String orgnumber) {
         //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
         FormShowParameter ShowParameter = new FormShowParameter();
         //ListShowParameter ShowParameter = new ListShowParameter();
         ShowParameter.setCustomParam("payeenamev", payeenamev);
         ShowParameter.setCustomParam("controls", controls);
         ShowParameter.setCustomParam("billtype", formId);
+        ShowParameter.setCustomParam("orgnumber", orgnumber);
         //设置弹出页面的编码
         ShowParameter.setFormId(formId);
 //        ShowParameter.setCaption();
@@ -139,6 +158,7 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
                     if(btn_cysgzmx.equals(controls)){
                     String billno = reJo.getString("nckd_cysnumber");
                     String cysfyxm = reJo.getString("nckd_cysfyxm");
+                    String settleorg = reJo.getString("settleorg");
                     QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals,cysfyxm);
                     DynamicObject nckd_cysfyxm = BusinessDataServiceHelper.loadSingle("er_expenseitemedit","id",new QFilter[] {nckd_cysfyxmFilter});
                     Date bizdate = reJo.getDate("nckd_cysdata");
@@ -147,9 +167,10 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
                     int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity1");
                     //set分录字段
                     this.getModel().setValue("nckd_cysnumber", billno, rowIndex);
-                    Object nckd_costcompany = this.getModel().getValue("nckd_costcompany");//获取当前单据付款人
-                    DynamicObject costcompany = (DynamicObject)nckd_costcompany;
-                    this.getModel().setValue("nckd_cysorg", costcompany, rowIndex);
+                    QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals,settleorg);
+                    nckd_orgamountFilter.and("enable", QCP.equals,"1");
+                    DynamicObject nckd_org = BusinessDataServiceHelper.loadSingle(bos_org,"id",new QFilter[] {nckd_orgamountFilter});
+                    this.getModel().setValue("nckd_cysorg", nckd_org, rowIndex);
                     Object nckd_costdept = this.getModel().getValue("nckd_costdept");//获取当前单据付款人
                     DynamicObject costdept = (DynamicObject)nckd_costdept;
                     this.getModel().setValue("nckd_cyssection", costdept, rowIndex);
@@ -202,6 +223,7 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
                         String billno = reJo.getString("nckd_cyfnumber");
                         Date bizdate = reJo.getDate("nckd_cyfdata");
                         String nckdCyffyxm = reJo.getString("nckd_cyffyxm");
+                        String settleorg = reJo.getString("settleorg");
                         QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals,nckdCyffyxm);
                         DynamicObject nckd_cyffyxm = BusinessDataServiceHelper.loadSingle("er_expenseitemedit","id",new QFilter[] {nckd_cysfyxmFilter});
                         BigDecimal settleamount = reJo.getBigDecimal("nckd_cyfgzbalance");
@@ -209,9 +231,10 @@ public class BusinessProcessingEditPlugin extends AbstractListPlugin implements
                         int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity2");
                         //set分录字段
                         this.getModel().setValue("nckd_cyfnumber", billno, rowIndex);
-                        Object nckd_costcompany = this.getModel().getValue("nckd_costcompany");//获取当前单据付款人
-                        DynamicObject costcompany = (DynamicObject)nckd_costcompany;
-                        this.getModel().setValue("nckd_cyforg", costcompany, rowIndex);
+                        QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals,settleorg);
+                        nckd_orgamountFilter.and("enable", QCP.equals,"1");
+                        DynamicObject nckd_org = BusinessDataServiceHelper.loadSingle(bos_org,"id",new QFilter[] {nckd_orgamountFilter});
+                        this.getModel().setValue("nckd_cyforg", nckd_org, rowIndex);
                         Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前单据付款人
                         DynamicObject dynamicObjects = (DynamicObject)value;
                         this.getModel().setValue("nckd_cyfwldw", dynamicObjects, rowIndex);

+ 11 - 1
src/main/java/fi/em/formPlugin/BusinessProcessingPlugin.java

@@ -84,6 +84,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
         String payeenamev = (String) customParams.get("payeenamev");
         String controls = (String) customParams.get("controls");
         String billtype = (String) customParams.get("billtype");
+        String orgnumber = (String) customParams.get("orgnumber");
         if (payeenamev == null || payeenamev.isEmpty()) {
             throw new KDBizException("收款处理付款人为空!");
         }
@@ -96,6 +97,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             nckd_orgamountFilter.and("billstatus", QCP.equals, "C");
             nckd_orgamountFilter.and("payeename", QCP.like, payeenamev);
             nckd_orgamountFilter.and("unsettleamount", QCP.is_notnull, "");
+            nckd_orgamountFilter.and("org.number", QCP.equals, orgnumber);
             DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("nckd_cas_arbill", "id", new QFilter[]{nckd_orgamountFilter});
             for (int c = 0; c < nckd_cas_arbill.length; c++) {
                 //当前单头
@@ -158,6 +160,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     JSONObject obj = new JSONObject();
                     obj.put("nckd_cysnumber", billno);
                     obj.put("nckd_cysdata", bizdate);
+                    obj.put("settleorg", settleorg.getString("number"));
                     if (eExpenseitem != null) {
                         obj.put("nckd_cysfyxm", eExpenseitem.getString("number"));
                     } else {
@@ -182,6 +185,8 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             QFilter nckd_orgamountFilter = new QFilter("asstact.number", QCP.equals, payeenamev);
             nckd_orgamountFilter.and("billstatus", QCP.equals, "C");
             nckd_orgamountFilter.and("unsettleamount", QCP.large_than, new BigDecimal(0));
+            nckd_orgamountFilter.and("unsettleamount", QCP.is_notnull, "");
+            nckd_orgamountFilter.and("org.number", QCP.equals, orgnumber);
             DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ap_finapbill", "id", new QFilter[]{nckd_orgamountFilter});
             for (int c = 0; c < nckd_cas_arbill.length; c++) {
                 //当前单头
@@ -190,6 +195,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                 String billno = dynamicObject.getString("billno");
                 //应收挂账日期
                 Date bizdate = dynamicObject.getDate("bizdate");
+                DynamicObject org = dynamicObject.getDynamicObject("org");
                 //应收挂账金额/冲销金额
                 BigDecimal settleamount = dynamicObject.getBigDecimal("unsettleamount");
                 for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("detailentry")) {
@@ -205,6 +211,8 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     //赋值给新增分录
                     this.getModel().setValue("nckd_cyfnumber", billno, rowIndex);
                     this.getModel().setValue("nckd_cyfdata", bizdate, rowIndex);
+                    this.getModel().setValue("nckd_datefield", bizdate, rowIndex);
+                    this.getModel().setValue("nckd_cyforg", org, rowIndex);
                     this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
                     this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
                     //分录字段
@@ -230,6 +238,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
                     obj.put("nckd_cyfwldw", "");
                     obj.put("nckd_cyfdata", bizdate);
                     obj.put("nckd_cyfgzbalance", settleamount);
+                    obj.put("settleorg", org.getString("number"));
                     if (expenseitem != null) {
                         obj.put("nckd_cyffyxm", expenseitem.getString("number"));
                     } else {
@@ -249,10 +258,11 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
             //历史数据清除
             this.getModel().deleteEntryData("nckd_entryentity");
             //构建查询应收挂账单参数
-            QFilter nckd_orgamountFilter = new QFilter("org.number", QCP.equals, payeenamev);
+            QFilter nckd_orgamountFilter = new QFilter("org.number", QCP.equals,orgnumber);
             nckd_orgamountFilter.and("status", QCP.equals, "C");
             nckd_orgamountFilter.and("nckd_amountfield1", QCP.large_than, new BigDecimal(0));
             nckd_orgamountFilter.and("nckd_amountfield1", QCP.is_notnull, "");
+            nckd_orgamountFilter.and("leaser.number", QCP.equals, payeenamev);
             DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
             for (int c = 0; c < fa_lease_contract.length; c++) {
                 //当前单头

+ 76 - 3
src/main/java/fi/em/formPlugin/YwclF7ListtenerFromPlugin.java

@@ -21,6 +21,10 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
     private final static String nckd_skzh="nckd_skzh";//收款账户
     private final static String nckd_orgvs="nckd_orgvs";//付款资金组织
     private final static String nckd_skzhs="nckd_skzhs";//付款账户
+    private final static String nckd_payeraccbanknum="nckd_payeraccbanknum";//调拨付款账户
+    private final static String nckd_payeeaccbanknum="nckd_payeeaccbanknum";//调拨收款账户
+    private final static String nckd_payeebanknumlb="nckd_payeebanknumlb";//收款信息修改付款账号
+    private final static String nckd_payeebanknumlbs="nckd_payeebanknumlbs";//付款信息修改收款账号
 
     @Override
     public void registerListener(EventObject e) {
@@ -30,6 +34,14 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
         fieldEdit1.addBeforeF7SelectListener(this);
         BasedataEdit fieldEdit2 = this.getView().getControl(nckd_skzhs);
         fieldEdit2.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit3 = this.getView().getControl(nckd_payeraccbanknum);
+        fieldEdit3.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit4 = this.getView().getControl(nckd_payeeaccbanknum);
+        fieldEdit4.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit5 = this.getView().getControl(nckd_payeebanknumlb);
+        fieldEdit5.addBeforeF7SelectListener(this);
+        BasedataEdit fieldEdit6 = this.getView().getControl(nckd_payeebanknumlbs);
+        fieldEdit6.addBeforeF7SelectListener(this);
     }
     @Override
     public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
@@ -41,6 +53,18 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
         if (StringUtils.equals(fieldKey, nckd_skzhs)){
             this.getQFilter(beforeF7SelectEvent,nckd_skzhs);
         }
+        if (StringUtils.equals(fieldKey, nckd_payeraccbanknum)){
+            this.getQFilters(beforeF7SelectEvent,nckd_payeraccbanknum);
+        }
+        if (StringUtils.equals(fieldKey, nckd_payeeaccbanknum)){
+            this.getQFilters(beforeF7SelectEvent,nckd_payeeaccbanknum);
+        }
+        if (StringUtils.equals(fieldKey, nckd_payeebanknumlb)){
+            this.getQFiltersfk(beforeF7SelectEvent,nckd_payeebanknumlb);
+        }
+        if (StringUtils.equals(fieldKey, nckd_payeebanknumlbs)){
+            this.getQFiltersfk(beforeF7SelectEvent,nckd_payeebanknumlbs);
+        }
     }
 
     private void getQFilter(BeforeF7SelectEvent arg0, String type) {
@@ -63,12 +87,61 @@ public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plu
             data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
         }
         QFilter filter;
-        //给库存管理基础资料添加过滤
+        //给基础资料添加过滤
         filter = new QFilter("acctstatus", QCP.equals, "normal");
         filter.and("company.id", QCP.equals,data.getLong("id"));
         ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
         showParameter.getListFilterParameter().setFilter(filter);
     }
-
-
+    private void getQFilters(BeforeF7SelectEvent arg0, String type) {
+        DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_costcompany") ;
+        if(type.equals(nckd_payeraccbanknum)){
+            DynamicObject skdata = (DynamicObject)this.getModel().getValue("nckd_payorg") ;
+            if(skdata ==null){
+                throw new KDBizException("调拨明细付款组织为空!");
+            }
+            long orgid = skdata.getLong("id");
+            QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+            data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
+        } else if (type.equals(nckd_payeeaccbanknum)) {
+            DynamicObject fkdata = (DynamicObject)this.getModel().getValue("nckd_payee") ;
+            if(fkdata ==null){
+                throw new KDBizException("调拨明细收款组织为空!");
+            }
+            long orgid = fkdata.getLong("id");
+            QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+            data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
+        }
+        QFilter filter;
+        //给基础资料添加过滤
+        filter = new QFilter("acctstatus", QCP.equals, "normal");
+        filter.and("company.id", QCP.equals,data.getLong("id"));
+        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+        showParameter.getListFilterParameter().setFilter(filter);
+    }
+    private void getQFiltersfk(BeforeF7SelectEvent arg0, String type) {
+        DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_costcompany") ;
+        if(type.equals(nckd_payeebanknumlb)){
+            DynamicObject skdata = (DynamicObject)this.getModel().getValue("nckd_payeenamev") ;
+            if(skdata ==null){
+                throw new KDBizException("收款信息付款人为空!");
+            }
+            long orgid = skdata.getLong("id");
+            QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+            data= BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_skzjFilter});
+        } else if (type.equals(nckd_payeebanknumlbs)) {
+            DynamicObject fkdata = (DynamicObject)this.getModel().getValue("nckd_payeenamevs") ;
+            if(fkdata ==null){
+                throw new KDBizException("付款信息付款人为空!");
+            }
+            long orgid = fkdata.getLong("id");
+            QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
+            data= BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_skzjFilter});
+        }
+        QFilter filter;
+        //给基础资料添加过滤
+        filter = new QFilter("nckd_id", QCP.equals, data.getLong("id"));
+        ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+        showParameter.getListFilterParameter().setFilter(filter);
+    }
 }

+ 10 - 6
src/main/java/fi/em/opplugin/BusinessProcessingOpPlugin.java

@@ -2,6 +2,7 @@ package fi.em.opplugin;
 
 import com.alibaba.fastjson.JSONObject;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.exception.KDBizException;
@@ -20,12 +21,15 @@ public class BusinessProcessingOpPlugin extends AbstractOperationServicePlugIn {
             DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
             String detailtype = info.getString("nckd_detailtype");
             if("A".equals(detailtype)){
-                BigDecimal nckdSkmxjehj = info.getBigDecimal("nckd_skmxjehj");
-                BigDecimal nckdYsgzjehj = info.getBigDecimal("nckd_ysgzjehj");
-                double latitudeDou = nckdSkmxjehj.doubleValue();
-                double latitudeDous = nckdYsgzjehj.doubleValue();
-                if(latitudeDou!=latitudeDous){
-                    throw new KDBizException("收款金额与冲销金额不一致!");
+                DynamicObjectCollection nckdEntryentity1 = info.getDynamicObjectCollection("nckd_entryentity1");
+                if(!nckdEntryentity1.isEmpty()){
+                    BigDecimal nckdSkmxjehj = info.getBigDecimal("nckd_skmxjehj");
+                    BigDecimal nckdYsgzjehj = info.getBigDecimal("nckd_ysgzjehj");
+                    double latitudeDou = nckdSkmxjehj.doubleValue();
+                    double latitudeDous = nckdYsgzjehj.doubleValue();
+                    if(latitudeDou!=latitudeDous){
+                        throw new KDBizException("收款金额与冲销金额不一致!");
+                    }
                 }
             } else if ("B".equals(detailtype)) {
                 BigDecimal nckdFkmxjehj = info.getBigDecimal("nckd_fkmxjehj");

+ 254 - 237
src/main/java/fi/rim/fromPlugin/FpzsMainEXPlugin.java

@@ -169,6 +169,7 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
     private static final String ERROR_INVOICE_LIST = "error";
     private static final String IMPORT_INVOICE_LIST = "import";
     private static final String format = "###,##0.00";
+    public static String FileType = "";
 
     public FpzsMainEXPlugin() {
     }
@@ -467,7 +468,7 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
 
         if ("scanner_fail".equals(eventName)) {
             if (ScannerService.scannerFail(this, eventArgs)) {
-                this.scannerProcess("uploadFinish");
+                this.scannerProcess("uploadFinish","");
             }
         } else {
             JSONObject json;
@@ -553,7 +554,7 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
                     String operateType = this.getView().getPageCache().get("operate_type");
                     logger.info("扫描仪上传结束:" + operateType);
                     if (!"operate_attach_scanner".equals(operateType)) {
-                        this.scannerProcess("uploadFinish");
+                        this.scannerProcess("uploadFinish","");
                     }
                 }
             } else if ("datagrid_deleteRow".equals(e.getEventName())) {
@@ -573,11 +574,25 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
                         this.showAttachUpload();
                     }
                 } else if ("dialog".equals(eventName)) {
-                    this.scannerProcess("dialog");
+                    this.scannerProcess("dialog",FileType);
                 } else if ("uploadfile_upload".equals(eventName)) {
                     json = JSON.parseObject(eventArgs);
                     type = json.getString("status");
                     name = json.getString("name");
+                    boolean pdf = name.contains("pdf");
+                    boolean jpg = name.contains("jpg");
+                    boolean jpeg = name.contains("jpeg");
+                    boolean png = name.contains("png");
+                    String FileType="";
+                    if(pdf){
+                        FileType="pdf";
+                    } else if (jpg){
+                        FileType="jpg";
+                    }else if (jpeg){
+                        FileType="jpeg";
+                    }else if (png){
+                        FileType="png";
+                    }
                     cache = json.getString("errcode");
                     description = json.getString("description");
                     if ("success".equals(type) && !"40002".equals(cache)) {
@@ -589,7 +604,7 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
                         ScannerService.recognitionInvoice("fpzs", this.getView().getPageId(), url, name, businessParam, FpzsMainService.getCustomParam(this));
                         traceId = RequestContext.get().getTraceId();
                         if (this.traceMap == null || this.traceMap.get(traceId) == null) {
-                            this.scannerProcess("upload");
+                            this.scannerProcess("upload",FileType);
                         }
 
                         if (this.traceMap == null) {
@@ -623,6 +638,241 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
 
     }
 
+    private void scannerProcess(String type,String FileType) {
+        String pageId = this.getView().getPageId();
+        logger.info("scannerProcess-{}-{} coming", pageId, type);
+        DLock lock = DLock.create("scannerProcess" + pageId, "刷新卡片锁");
+        Throwable var4 = null;
+
+        try {
+            int times = 0;
+            String dialogId = "scanner";
+
+            while(times < 30) {
+                ++times;
+                if (lock.tryLock(500L)) {
+                    times = 100;
+                    JSONObject result = RecognitionCheckTask.queryCacheFile(pageId);
+                    logger.info("scannerProcess-{}:{}", pageId, result);
+                    boolean var41 = false;
+
+                    try {
+                        var41 = true;
+                        CustomControl customcontrol = (CustomControl)this.getControl("progressBar_customcontrol");
+                        DialogService service = new DialogService(customcontrol);
+                        Set<String> urlSet = result.keySet();
+                        Iterator<String> it = urlSet.iterator();
+                        int waiting = 0;
+                        int fail = 0;
+
+                        String repeatFlag;
+                        while(it.hasNext()) {
+                            String url = (String)it.next();
+                            repeatFlag = result.getString(url);
+                            if ("waiting".equals(repeatFlag)) {
+                                ++waiting;
+                            } else if ("fail".equals(repeatFlag)) {
+                                ++fail;
+                            }
+                        }
+
+                        int total = result.size();
+                        logger.info("scannerProcess-{} waiting:{},fail:{},total:{}", new Object[]{pageId, waiting, fail, total});
+                        JSONArray retryArray;
+                        JSONObject attachJson;
+                        JSONObject invoiceInfo;
+                        if ("dialog".equals(type) && (total == 0 || waiting == 0)) {
+                            if (total > 0) {
+                                RecognitionCheckTask.clearCacheFile(pageId);
+                            }
+
+                            if (fail > 0) {
+                                Set<String> urlSet2 = result.keySet();
+                                Iterator<String> it2 = urlSet2.iterator();
+                                retryArray = new JSONArray();
+
+                                label537:
+                                while(true) {
+                                    String url;
+                                    String status;
+                                    do {
+                                        if(!"pdf".equals(FileType) && !"jpg".equals(FileType) && !"png".equals(FileType)){
+                                        if (!it2.hasNext()) {
+                                            if (!retryArray.isEmpty()) {
+//                                                Map<String, Object> customParams = new HashMap(4);
+//                                                customParams.put("retryArray", retryArray);
+//                                                invoiceInfo = FpzsMainService.getBusinessParam(pageId, CollectTypeEnum.PC_UPLOAD.getCode());
+//                                                customParams.put("businessParam", invoiceInfo);
+//                                                FormShowParameter showParameter = this.newPage("rim_inv_recognition_retry", customParams, "retryCallback");
+//                                                showParameter.setCaption("识别失败重试列表");
+//                                                this.getView().showForm(showParameter);
+                                            }
+                                            break label537;
+                                        }
+                                        }
+                                              url = (String)it2.next();
+                                           status = result.getString(url);
+                                    } while(!"fail".equals(status));
+
+                                    attachJson = new JSONObject();
+                                    attachJson.put("fileUrl", url);
+                                    attachJson.put("fileName", url.substring(url.lastIndexOf(47) + 1, url.length()));
+                                    JSONObject cause = RecognitionCheckTask.queryCacheCause(pageId);
+                                    if (cause != null && StringUtils.isNotEmpty(cause.getString(url))) {
+                                        attachJson.put("failDescription", cause.getString(url));
+                                    } else {
+                                        attachJson.put("failDescription", "处理失败");
+                                    }
+
+                                    retryArray.add(attachJson);
+                                }
+                            }
+
+                            if (total > 0 && fail > 0) {
+//                                this.getView().showTipNotification(String.format("上传%s个文件,处理失败%s个", total, fail), 10000);
+                            } else if (total > 0) {
+                                this.getView().showSuccessNotification(String.format("上传%s个文件,处理成功%s个", total, total, 10000));
+                            }
+
+                            service.hide();
+                            repeatFlag = this.getView().getPageId() + "scannerProcessRepeat";
+                            String scannerProcessRepeat = CacheHelper.get(repeatFlag);
+                            if (StringUtils.isNotEmpty(scannerProcessRepeat) && "true".equals(scannerProcessRepeat)) {
+                                this.getView().showSuccessNotification("发票已存在列表");
+                                CacheHelper.remove(repeatFlag);
+                            }
+                        } else {
+                            String[] content = new String[]{"待处理文件剩余" + waiting + "个", "正在处理中(" + (total - waiting) + "/" + total + ")"};
+                            service.show(dialogId, content, 1000);
+                        }
+
+                        JSONObject data = FpzsMainService.getInvoiceDataCache(pageId);
+                            FpzsMainService.updateInvoiceGrid(this, data);
+                        this.updateInvoiceCard(data);
+                        Map<String, String> attIdSerialMap = Maps.newLinkedHashMap();
+                        Iterator var54 = data.entrySet().iterator();
+
+                        label569:
+                        while(true) {
+                            List attachList;
+                            do {
+                                do {
+                                    if (!var54.hasNext()) {
+                                        retryArray = FpzsMainService.getAttachDataCache(pageId);
+                                        if (retryArray.size() != 0) {
+                                            this.getModel().deleteEntryData("attach_grid_entry");
+                                            this.getModel().deleteEntryData("attach_card_entry");
+                                            Iterator var57 = retryArray.iterator();
+
+                                            while(var57.hasNext()) {
+                                                Object attach = var57.next();
+                                                attachJson = (JSONObject)attach;
+                                                String id = attachJson.getString("id");
+                                                this.handleAttachCategory(attachJson);
+                                                Iterator var64 = attIdSerialMap.entrySet().iterator();
+
+                                                while(var64.hasNext()) {
+                                                    Map.Entry<String, String> entry = (Map.Entry)var64.next();
+                                                    if (id.equals(entry.getKey())) {
+                                                        attachJson.put("serial_no", entry.getValue());
+                                                    }
+                                                }
+
+                                                int row = this.getModel().createNewEntryRow("attach_grid_entry");
+                                                this.getModel().setValue("attachid", attachJson.get("id"), row);
+                                                this.getModel().setValue("attach_category_grid", attachJson.get("attach_category"), row);
+                                                this.getModel().setValue("attach_name", attachJson.get("attach_name"), row);
+                                                this.getModel().setValue("serial_no3", attachJson.get("serial_no"), row);
+                                                this.getModel().setValue("attach_type", attachJson.get("attach_type"), row);
+                                                this.getModel().setValue("upload_date", attachJson.getDate("create_time"), row);
+                                                this.getModel().setValue("attach_remark", attachJson.get("remark"), row);
+                                                this.getModel().setValue("attach_path", attachJson.get("attach_url"), row);
+                                                this.getModel().setValue("file_extension", attachJson.get("file_extension"), row);
+                                                this.getModel().setValue("attach_no", attachJson.get("attach_no"), row);
+                                                int attachGridIndex = this.getModel().createNewEntryRow("attach_card_entry");
+                                                String simplify_name = attachJson.getString("simplify_name");
+                                                DynamicObject attachObject;
+                                                if (StringUtils.isEmpty(simplify_name)) {
+                                                    attachObject = BusinessDataServiceHelper.loadSingle(attachJson.getLong("attach_category"), "bdm_attach_type");
+                                                    simplify_name = attachObject.getString("simplify_name");
+                                                }
+
+                                                this.getModel().setValue("attach_category", simplify_name, attachGridIndex);
+                                                this.getModel().setValue("attach_name_grid", attachJson.get("attach_name"), attachGridIndex);
+                                                attachObject = BusinessDataServiceHelper.newDynamicObject("rim_attach");
+                                                attachObject = DynamicObjectUtil.jsonToDynamicObject(attachJson, attachObject);
+                                                String imageUrl = this.getAttachSnapshotUrl(attachObject);
+                                                this.getModel().setValue("attach_image_grid", imageUrl, attachGridIndex);
+                                            }
+                                        }
+
+                                        this.showFlex();
+                                        var41 = false;
+                                        break label569;
+                                    }
+
+                                    Map.Entry<String, Object> entry = (Map.Entry)var54.next();
+                                    invoiceInfo = (JSONObject)entry.getValue();
+                                    attachList = (List)invoiceInfo.get("attachList");
+                                } while(attachList == null);
+                            } while(attachList.size() == 0);
+
+                            Iterator var62 = attachList.iterator();
+
+                            while(var62.hasNext()) {
+                                Map<String, Object> attachInfo = (Map)var62.next();
+                                String id = (String)attachInfo.get("id");
+                                attIdSerialMap.put(id, invoiceInfo.getString("serialNo"));
+                            }
+                        }
+                    } finally {
+                        if (var41) {
+                            String failResultDataStr = CacheHelper.get(this.getView().getPageId().concat("failResult"));
+                            if (StringUtils.isNotBlank(failResultDataStr)) {
+                                FormShowParameter failedListForm = new FormShowParameter();
+                                failedListForm.setFormId("rim_inv_import_fail");
+                                failedListForm.setCustomParam("invoiceFailedList", failResultDataStr);
+                                failedListForm.getOpenStyle().setShowType(ShowType.Modal);
+                                this.getView().showForm(failedListForm);
+                                CacheHelper.remove(this.getView().getPageId().concat("failResult"));
+                            }
+
+                            lock.unlock();
+                        }
+                    }
+
+                    String failResultDataStr = CacheHelper.get(this.getView().getPageId().concat("failResult"));
+                    if (StringUtils.isNotBlank(failResultDataStr)) {
+                        FormShowParameter failedListForm = new FormShowParameter();
+                        failedListForm.setFormId("rim_inv_import_fail");
+                        failedListForm.setCustomParam("invoiceFailedList", failResultDataStr);
+                        failedListForm.getOpenStyle().setShowType(ShowType.Modal);
+                        this.getView().showForm(failedListForm);
+                        CacheHelper.remove(this.getView().getPageId().concat("failResult"));
+                    }
+
+                    lock.unlock();
+                }
+            }
+        } catch (Throwable var44) {
+            var4 = var44;
+            throw var44;
+        } finally {
+            if (lock != null) {
+                if (var4 != null) {
+                    try {
+                        lock.close();
+                    } catch (Throwable var42) {
+                        var4.addSuppressed(var42);
+                    }
+                } else {
+                    lock.close();
+                }
+            }
+
+        }
+
+    }
     private void dealWebSoceketMsag(String eventArgs) {
         logger.info("onMessage:{}", eventArgs);
         JSONObject result = null;
@@ -2669,240 +2919,7 @@ public class FpzsMainEXPlugin extends LicenseFormPlugin implements RowClickEvent
         return "customcontrol_" + type;
     }
 
-    private void scannerProcess(String type) {
-        String pageId = this.getView().getPageId();
-        logger.info("scannerProcess-{}-{} coming", pageId, type);
-        DLock lock = DLock.create("scannerProcess" + pageId, "刷新卡片锁");
-        Throwable var4 = null;
-
-        try {
-            int times = 0;
-            String dialogId = "scanner";
-
-            while(times < 30) {
-                ++times;
-                if (lock.tryLock(500L)) {
-                    times = 100;
-                    JSONObject result = RecognitionCheckTask.queryCacheFile(pageId);
-                    logger.info("scannerProcess-{}:{}", pageId, result);
-                    boolean var41 = false;
-
-                    try {
-                        var41 = true;
-                        CustomControl customcontrol = (CustomControl)this.getControl("progressBar_customcontrol");
-                        DialogService service = new DialogService(customcontrol);
-                        Set<String> urlSet = result.keySet();
-                        Iterator<String> it = urlSet.iterator();
-                        int waiting = 0;
-                        int fail = 0;
-
-                        String repeatFlag;
-                        while(it.hasNext()) {
-                            String url = (String)it.next();
-                            repeatFlag = result.getString(url);
-                            if ("waiting".equals(repeatFlag)) {
-                                ++waiting;
-                            } else if ("fail".equals(repeatFlag)) {
-                                ++fail;
-                            }
-                        }
-
-                        int total = result.size();
-                        logger.info("scannerProcess-{} waiting:{},fail:{},total:{}", new Object[]{pageId, waiting, fail, total});
-                        JSONArray retryArray;
-                        JSONObject attachJson;
-                        JSONObject invoiceInfo;
-                        if ("dialog".equals(type) && (total == 0 || waiting == 0)) {
-                            if (total > 0) {
-                                RecognitionCheckTask.clearCacheFile(pageId);
-                            }
-
-                            if (fail > 0) {
-                                Set<String> urlSet2 = result.keySet();
-                                Iterator<String> it2 = urlSet2.iterator();
-                                retryArray = new JSONArray();
-
-                                label537:
-                                while(true) {
-                                    String url;
-                                    String status;
-                                    do {
-                                        if (!it2.hasNext()) {
-                                            if (!retryArray.isEmpty()) {
-                                                Map<String, Object> customParams = new HashMap(4);
-                                                customParams.put("retryArray", retryArray);
-                                                invoiceInfo = FpzsMainService.getBusinessParam(pageId, CollectTypeEnum.PC_UPLOAD.getCode());
-                                                customParams.put("businessParam", invoiceInfo);
-                                                FormShowParameter showParameter = this.newPage("rim_inv_recognition_retry", customParams, "retryCallback");
-                                                showParameter.setCaption("识别失败重试列表");
-                                                this.getView().showForm(showParameter);
-                                            }
-                                            break label537;
-                                        }
-
-                                        url = (String)it2.next();
-                                        status = result.getString(url);
-                                    } while(!"fail".equals(status));
-
-                                    attachJson = new JSONObject();
-                                    attachJson.put("fileUrl", url);
-                                    attachJson.put("fileName", url.substring(url.lastIndexOf(47) + 1, url.length()));
-                                    JSONObject cause = RecognitionCheckTask.queryCacheCause(pageId);
-                                    if (cause != null && StringUtils.isNotEmpty(cause.getString(url))) {
-                                        attachJson.put("failDescription", cause.getString(url));
-                                    } else {
-                                        attachJson.put("failDescription", "处理失败");
-                                    }
-
-                                    retryArray.add(attachJson);
-                                }
-                            }
-
-                            if (total > 0 && fail > 0) {
-                                this.getView().showTipNotification(String.format("上传%s个文件,处理失败%s个", total, fail), 10000);
-                            } else if (total > 0) {
-                                this.getView().showSuccessNotification(String.format("上传%s个文件,处理成功%s个", total, total, 10000));
-                            }
-
-                            service.hide();
-                            repeatFlag = this.getView().getPageId() + "scannerProcessRepeat";
-                            String scannerProcessRepeat = CacheHelper.get(repeatFlag);
-                            if (StringUtils.isNotEmpty(scannerProcessRepeat) && "true".equals(scannerProcessRepeat)) {
-                                this.getView().showSuccessNotification("发票已存在列表");
-                                CacheHelper.remove(repeatFlag);
-                            }
-                        } else {
-                            String[] content = new String[]{"待处理文件剩余" + waiting + "个", "正在处理中(" + (total - waiting) + "/" + total + ")"};
-                            service.show(dialogId, content, 1000);
-                        }
-
-                        JSONObject data = FpzsMainService.getInvoiceDataCache(pageId);
-                        FpzsMainService.updateInvoiceGrid(this, data);
-                        this.updateInvoiceCard(data);
-                        Map<String, String> attIdSerialMap = Maps.newLinkedHashMap();
-                        Iterator var54 = data.entrySet().iterator();
-
-                        label569:
-                        while(true) {
-                            List attachList;
-                            do {
-                                do {
-                                    if (!var54.hasNext()) {
-                                        retryArray = FpzsMainService.getAttachDataCache(pageId);
-                                        if (retryArray.size() != 0) {
-                                            this.getModel().deleteEntryData("attach_grid_entry");
-                                            this.getModel().deleteEntryData("attach_card_entry");
-                                            Iterator var57 = retryArray.iterator();
-
-                                            while(var57.hasNext()) {
-                                                Object attach = var57.next();
-                                                attachJson = (JSONObject)attach;
-                                                String id = attachJson.getString("id");
-                                                this.handleAttachCategory(attachJson);
-                                                Iterator var64 = attIdSerialMap.entrySet().iterator();
-
-                                                while(var64.hasNext()) {
-                                                    Map.Entry<String, String> entry = (Map.Entry)var64.next();
-                                                    if (id.equals(entry.getKey())) {
-                                                        attachJson.put("serial_no", entry.getValue());
-                                                    }
-                                                }
-
-                                                int row = this.getModel().createNewEntryRow("attach_grid_entry");
-                                                this.getModel().setValue("attachid", attachJson.get("id"), row);
-                                                this.getModel().setValue("attach_category_grid", attachJson.get("attach_category"), row);
-                                                this.getModel().setValue("attach_name", attachJson.get("attach_name"), row);
-                                                this.getModel().setValue("serial_no3", attachJson.get("serial_no"), row);
-                                                this.getModel().setValue("attach_type", attachJson.get("attach_type"), row);
-                                                this.getModel().setValue("upload_date", attachJson.getDate("create_time"), row);
-                                                this.getModel().setValue("attach_remark", attachJson.get("remark"), row);
-                                                this.getModel().setValue("attach_path", attachJson.get("attach_url"), row);
-                                                this.getModel().setValue("file_extension", attachJson.get("file_extension"), row);
-                                                this.getModel().setValue("attach_no", attachJson.get("attach_no"), row);
-                                                int attachGridIndex = this.getModel().createNewEntryRow("attach_card_entry");
-                                                String simplify_name = attachJson.getString("simplify_name");
-                                                DynamicObject attachObject;
-                                                if (StringUtils.isEmpty(simplify_name)) {
-                                                    attachObject = BusinessDataServiceHelper.loadSingle(attachJson.getLong("attach_category"), "bdm_attach_type");
-                                                    simplify_name = attachObject.getString("simplify_name");
-                                                }
-
-                                                this.getModel().setValue("attach_category", simplify_name, attachGridIndex);
-                                                this.getModel().setValue("attach_name_grid", attachJson.get("attach_name"), attachGridIndex);
-                                                attachObject = BusinessDataServiceHelper.newDynamicObject("rim_attach");
-                                                attachObject = DynamicObjectUtil.jsonToDynamicObject(attachJson, attachObject);
-                                                String imageUrl = this.getAttachSnapshotUrl(attachObject);
-                                                this.getModel().setValue("attach_image_grid", imageUrl, attachGridIndex);
-                                            }
-                                        }
-
-                                        this.showFlex();
-                                        var41 = false;
-                                        break label569;
-                                    }
-
-                                    Map.Entry<String, Object> entry = (Map.Entry)var54.next();
-                                    invoiceInfo = (JSONObject)entry.getValue();
-                                    attachList = (List)invoiceInfo.get("attachList");
-                                } while(attachList == null);
-                            } while(attachList.size() == 0);
 
-                            Iterator var62 = attachList.iterator();
-
-                            while(var62.hasNext()) {
-                                Map<String, Object> attachInfo = (Map)var62.next();
-                                String id = (String)attachInfo.get("id");
-                                attIdSerialMap.put(id, invoiceInfo.getString("serialNo"));
-                            }
-                        }
-                    } finally {
-                        if (var41) {
-                            String failResultDataStr = CacheHelper.get(this.getView().getPageId().concat("failResult"));
-                            if (StringUtils.isNotBlank(failResultDataStr)) {
-                                FormShowParameter failedListForm = new FormShowParameter();
-                                failedListForm.setFormId("rim_inv_import_fail");
-                                failedListForm.setCustomParam("invoiceFailedList", failResultDataStr);
-                                failedListForm.getOpenStyle().setShowType(ShowType.Modal);
-                                this.getView().showForm(failedListForm);
-                                CacheHelper.remove(this.getView().getPageId().concat("failResult"));
-                            }
-
-                            lock.unlock();
-                        }
-                    }
-
-                    String failResultDataStr = CacheHelper.get(this.getView().getPageId().concat("failResult"));
-                    if (StringUtils.isNotBlank(failResultDataStr)) {
-                        FormShowParameter failedListForm = new FormShowParameter();
-                        failedListForm.setFormId("rim_inv_import_fail");
-                        failedListForm.setCustomParam("invoiceFailedList", failResultDataStr);
-                        failedListForm.getOpenStyle().setShowType(ShowType.Modal);
-                        this.getView().showForm(failedListForm);
-                        CacheHelper.remove(this.getView().getPageId().concat("failResult"));
-                    }
-
-                    lock.unlock();
-                }
-            }
-        } catch (Throwable var44) {
-            var4 = var44;
-            throw var44;
-        } finally {
-            if (lock != null) {
-                if (var4 != null) {
-                    try {
-                        lock.close();
-                    } catch (Throwable var42) {
-                        var4.addSuppressed(var42);
-                    }
-                } else {
-                    lock.close();
-                }
-            }
-
-        }
-
-    }
 
     private void saveInvoiceDataCache(String cache) {
         FpzsMainService.setInvoiceDataCache(this.getView().getPageId(), cache);

+ 1 - 1
src/main/java/nckd/fi/all/common/utils/CodecUtil.java

@@ -1,4 +1,4 @@
-package webApiPlugin.utils;
+package nckd.fi.all.common.utils;
 
 
 import com.alibaba.fastjson.JSON;

+ 1 - 1
src/main/java/nckd/fi/all/common/utils/FileOutputStreamExample.java

@@ -1,4 +1,4 @@
-package nckd.fi.all.common.utility;
+package nckd.fi.all.common.utils;
 
 import java.io.ByteArrayOutputStream;
 import java.io.FileInputStream;