Browse Source

Merge remote-tracking branch 'origin/dev' into dev

zhoudw 7 years ago
parent
commit
687395b26d

+ 44 - 41
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/MoneyReportServiceImpl.java

@@ -98,7 +98,6 @@ public class MoneyReportServiceImpl implements MoneyReportService {
         }
 
         String res = null;
-        VendOrCustAdd vendOrCustAdd = new VendOrCustAdd();
         List<Map<String, Double>> list1 = new ArrayList<>();
         if ("Supplier".equals(type)) {
             list = vendorAcountViewMapper.selectByCondition(con, companyId);
@@ -107,26 +106,28 @@ public class MoneyReportServiceImpl implements MoneyReportService {
                 Integer vid = new Integer(0);
                 vid = vendorAcountViewMapper.getId(vendorAcountView.getPi_vendcode(), Long.valueOf(vendorAcountView.getCompanyId()));
                 Integer ym = Integer.valueOf(req.getYm());
-                vendOrCustAdd = vendorAcountViewMapper.selectVendAdd(vid, ym, Long.valueOf(vendorAcountView.getCompanyId()));
-                vendOrCustAdd.setNowbalance((vendOrCustAdd.getBeginamount() == null ? new Double(0) : vendOrCustAdd.getBeginamount())
-                        + (vendOrCustAdd.getNowamount() == null ? new Double(0) : vendOrCustAdd.getNowamount())
-                        - (vendOrCustAdd.getNowpay() == null ? new Double(0) : vendOrCustAdd.getNowpay()));
-                //封装成list
-                Map<String, Double> map1 = new HashMap<>();
-                map1.put("beginamount", vendOrCustAdd.getBeginamount());
-                list1.add(map1);
-
-                Map<String, Double> map2 = new HashMap<>();
-                map2.put("nowamount", vendOrCustAdd.getNowamount());
-                list1.add(map2);
-
-                Map<String, Double> map3 = new HashMap<>();
-                map3.put("nowpay", vendOrCustAdd.getNowpay());
-                list1.add(map3);
-
-                Map<String, Double> map4 = new HashMap<>();
-                map4.put("nowbalance", vendOrCustAdd.getNowbalance());
-                list1.add(map4);
+                VendOrCustAdd vendOrCustAdd = vendorAcountViewMapper.selectVendAdd(vid, ym, Long.valueOf(vendorAcountView.getCompanyId()));
+                if (vendOrCustAdd != null) {
+                    vendOrCustAdd.setNowbalance((vendOrCustAdd.getBeginamount() == null ? new Double(0) : vendOrCustAdd.getBeginamount())
+                            + (vendOrCustAdd.getNowamount() == null ? new Double(0) : vendOrCustAdd.getNowamount())
+                            - (vendOrCustAdd.getNowpay() == null ? new Double(0) : vendOrCustAdd.getNowpay()));
+                    //封装成list
+                    Map<String, Double> map1 = new HashMap<>();
+                    map1.put("beginamount", vendOrCustAdd.getBeginamount());
+                    list1.add(map1);
+
+                    Map<String, Double> map2 = new HashMap<>();
+                    map2.put("nowamount", vendOrCustAdd.getNowamount());
+                    list1.add(map2);
+
+                    Map<String, Double> map3 = new HashMap<>();
+                    map3.put("nowpay", vendOrCustAdd.getNowpay());
+                    list1.add(map3);
+
+                    Map<String, Double> map4 = new HashMap<>();
+                    map4.put("nowbalance", vendOrCustAdd.getNowbalance());
+                    list1.add(map4);
+                }
             }
         } else if("payDetail".equals(type)){
             list = paydetailViewMapper.selectByCondition(con, companyId);
@@ -154,26 +155,28 @@ public class MoneyReportServiceImpl implements MoneyReportService {
 
                 vid = customerCheckViewMapper.getId(customerCheckView.getPi_custcode(), Long.valueOf(customerCheckView.getCompanyId()));
                 Integer ym = Integer.valueOf(req.getYm());
-                vendOrCustAdd = customerCheckViewMapper.selectCustAdd(vid, ym, Long.valueOf(customerCheckView.getCompanyId()));
-                vendOrCustAdd.setNowbalance((vendOrCustAdd.getBeginamount() == null ? new Double(0) : vendOrCustAdd.getBeginamount())
-                        + (vendOrCustAdd.getNowamount() == null ? new Double(0) : vendOrCustAdd.getNowamount())
-                        - (vendOrCustAdd.getNowpay() == null ? new Double(0) : vendOrCustAdd.getNowpay()));
-                //封装成list
-                Map<String, Double> map1 = new HashMap<>();
-                map1.put("beginamount", vendOrCustAdd.getBeginamount());
-                list1.add(map1);
-
-                Map<String, Double> map2 = new HashMap<>();
-                map2.put("nowamount", vendOrCustAdd.getNowamount());
-                list1.add(map2);
-
-                Map<String, Double> map3 = new HashMap<>();
-                map3.put("nowpay", vendOrCustAdd.getNowpay());
-                list1.add(map3);
-
-                Map<String, Double> map4 = new HashMap<>();
-                map4.put("nowbalance", vendOrCustAdd.getNowbalance());
-                list1.add(map4);
+                VendOrCustAdd vendOrCustAdd = customerCheckViewMapper.selectCustAdd(vid, ym, Long.valueOf(customerCheckView.getCompanyId()));
+                if (vendOrCustAdd != null) {
+                    vendOrCustAdd.setNowbalance((vendOrCustAdd.getBeginamount() == null ? new Double(0) : vendOrCustAdd.getBeginamount())
+                            + (vendOrCustAdd.getNowamount() == null ? new Double(0) : vendOrCustAdd.getNowamount())
+                            - (vendOrCustAdd.getNowpay() == null ? new Double(0) : vendOrCustAdd.getNowpay()));
+                    //封装成list
+                    Map<String, Double> map1 = new HashMap<>();
+                    map1.put("beginamount", vendOrCustAdd.getBeginamount());
+                    list1.add(map1);
+
+                    Map<String, Double> map2 = new HashMap<>();
+                    map2.put("nowamount", vendOrCustAdd.getNowamount());
+                    list1.add(map2);
+
+                    Map<String, Double> map3 = new HashMap<>();
+                    map3.put("nowpay", vendOrCustAdd.getNowpay());
+                    list1.add(map3);
+
+                    Map<String, Double> map4 = new HashMap<>();
+                    map4.put("nowbalance", vendOrCustAdd.getNowbalance());
+                    list1.add(map4);
+                }
             }
         }else if ("accountdetails".equals(type)){
             list = accountDetailsViewMapper.selectByCondition(con, companyId);

+ 5 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -552,6 +552,11 @@ public class SaleServiceImpl implements SaleService{
     @Override
     public DocBaseDTO saleTurnPurchase(Long id) {
         Sale sale = saleMapper.selectByPrimaryKey(id);
+
+        //检查销售订单是否关闭
+        if(sale.getSa_sendstatuscode().equals("CLOSE")){
+            throw new BizException(BizExceptionCode.SALE_CLOSE.getCode(),BizExceptionCode.SALE_CLOSE.getMessage());
+        }
         List<SaleList> dateilList = saleListMapper.selectSaleListByCondition("sa_id="+id,BaseContextHolder.getCompanyId());
 
         //判断是否已转采购单

+ 32 - 31
frontend/saas-portal-web/src/components/conenter/home.vue

@@ -339,37 +339,24 @@
       }
     },
     created(){
-      console.log('1');
-      document.cookie='uid=4sjrtiHZOu3sG71-9lOyB1jEPXOxBgJ_3jjuugBiDcZs9xlBhPHqdaypVsfMCD42Vnkf8n4lqYvq5Ux7dZ8CnPtKpXynrTXaF3HU7xqLKvyKJY5hp1PubmQcAsE7TQAuNlXd1aSjqY4nxAoXNKXqri2l2s6-FJ1nYOGpSPLIJoCd56Tvs14W4Az7WpFDtNHke2vs0V4_fEC8t2t1q5H2ihUDUDQqbjcVPcZJEWy3dyUUpdlfvHQtS-Ve2eOm6TES-wlXAIqyovp35Pu2LIqxPZdexh5Vb5LUjbsJV1bNe_LCx87mxhd-7E01mpaALMHuK3GJwyvEnuKf_GkPzb2eygn2r3wpgt18uUBGCEDTGBYYyTZTtrqpvigkWX8YIMIKhp0ftp2G90minOjRqySApPSAwAqTXF44x7OQK6GkMFw98BVoJqGHAWkc7knzz_sjywCg2L8nDceAq2Js26MorJfm6JBUAfvp2D0VY1R2NiyK7VFKYCR8XO7x8ubTNE4u13fCvTKY1mQYTtgSoL-h3eXOWJn7oe0iL-z_OLqWbS9N3LIadLKPHLxUfqay-PUdxnmNICBZEaX7KcOVTxlH3SgzsUeFCQoyQ1D3yFIiu6vuTdv0fzBSo4gPZ1gj1n7NNC7ghs0.';
-      document.domain = '192.168.253.31'
-      // $.ajax({
-      //          type: "GET",
-      //          url: "http://192.168.253.31:8560/api/auth/info",
-      //          dataType: 'jsonp',
-      //          xhrFields: {
-      //                 withCredentials: true
-      //         },
-      //       crossDomain: true,
-      //      success:function(a,b,c){
-      //         debugger
-      //         console.log(a)
-      // },
-      //      error:function(a,b,c){
-      //         debugger
-      //         console.log(a)
-      //     }
-      // })
-
-      // this.$ajax({
-      //         url: 'http://192.168.253.31:8560/api/auth/info',
-      //         method: 'get',
-      //       })
-      //        .then(res=>{
-      //           console.log("请求成功",res)
-      //       })
-      //       .catch(err=>{
-      //           console.log("请求失败",err)
-      //       })
+      var uid = this.getCookie('uid');
+      if(uid){
+        this.$ajax({
+          url: '/api/auth/info',
+          method: 'get',
+          async:false,
+          withCredentials:true
+        })
+        .then(res=>{
+          const data=res.data.data,session = data.token, account = data.account
+          account.companies = account.companies || []
+          session.account = account
+          Session.set(session);
+        })
+        .catch(err=>{
+          console.log("请求失败",err)
+        })
+      }
     },
     mounted() {
       this.clientId = Math.random().toString(36).substr(2)
@@ -392,6 +379,20 @@
       }
     },
     methods: {
+        getCookie(cookieName){  
+          var cookieValue="";  
+          if (document.cookie && document.cookie != '') {   
+              var cookies = document.cookie.split(';');  
+              for (var i = 0; i < cookies.length; i++) {   
+                  var cookie = cookies[i];  
+                  if (cookie.substring(0, cookieName.length + 2).trim() == cookieName.trim() + "=") {  
+                        cookieValue = cookie.substring(cookieName.length + 2, cookie.length);   
+                        break;  
+                  }  
+              }  
+          }   
+          return cookieValue;  
+      }, 
       tab(i){
         this.Nowindex = i;
       },

+ 5 - 0
frontend/saas-web/app/Application.scss

@@ -465,4 +465,9 @@ div::-webkit-scrollbar-track {
       background-size: 16px 16px;
       background-position: center;
   }
+}
+
+/** tab **/
+.x-tab-default.x-tab-active .x-tab-close-btn {
+  color: #34BAF6;
 }

+ 9 - 9
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -52,15 +52,6 @@ Ext.define('saas.view.core.form.FormPanel', {
         me.initFormItems();
 
         me.defaultBtns = me.defaultBtns || [{
-            cls: 'x-formpanel-btn-blue',
-            xtype: 'button',
-            text: '刷新',
-            hidden: true,
-            bind: {
-                hidden: '{!id}'
-            },
-            handler: 'refresh'
-        }, {
             cls: 'x-formpanel-btn-blue',
             xtype: 'button',
             text: '新增',
@@ -104,6 +95,15 @@ Ext.define('saas.view.core.form.FormPanel', {
                 hidden:'{!showAuditBtn}'
             },
             handler: "auditBtnClick",
+        }, {
+            cls: 'x-formpanel-btn-white',
+            xtype: 'button',
+            text: '刷新',
+            hidden: true,
+            bind: {
+                hidden: '{!id}'
+            },
+            handler: 'refresh'
         }, {
             cls:'x-formpanel-btn-white',
             text:'打印',

+ 46 - 16
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -410,10 +410,47 @@ Ext.define('saas.view.core.form.FormPanelController', {
         caller = form.caller,
         id = viewModel.get(form._idField);
 
-        saas.util.BaseUtil.request({
-            url: '/api/commons/jasperReport/printByDefault',
-            // url: 'http://192.168.253.58:8920/jasperReport/printByDefault',
-            method: 'POST',
+        me.beforePrint(caller).then(function(flag) {
+            if(!flag) {
+                return false;
+            }
+            saas.util.BaseUtil.request({
+                url: '/api/commons/jasperReport/printByDefault',
+                // url: 'http://192.168.253.58:8920/jasperReport/printByDefault',
+                method: 'POST',
+                headers: {
+                    "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8'
+                },
+                params: {
+                    caller: caller,
+                    id: id
+                }
+            }).then(function(res) {
+                var data = res.data,
+                printurl = data.printurl,
+                printtype = data.printtype,
+                reportName = data.reportName,
+                title = data.title,
+                whereCondition = data.whereCondition,
+                companyId = saas.util.BaseUtil.getCurrentUser().companyId;
+    
+                var url = printurl + '?' + 'reportName=' + reportName + '&' + 'companyId=' + companyId + '&whereCondition=' + whereCondition
+    
+                window.open(url);
+            }).catch(function(res) {
+                console.error(res.message);
+                saas.util.BaseUtil.showErrorToast('获取打印报表错误:' + res.message);
+            });
+        });
+    },
+
+    /**
+     * 判断权限
+     */
+    beforePrint: function(caller) {
+        return saas.util.BaseUtil.request({
+            url: '/api/commons/' + caller + '/print',
+            method: 'GET',
             headers: {
                 "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8'
             },
@@ -422,17 +459,10 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 id: id
             }
         }).then(function(res) {
-            var data = res.data,
-            printurl = data.printurl,
-            printtype = data.printtype,
-            reportName = data.reportName,
-            title = data.title,
-            whereCondition = data.whereCondition,
-            companyId = saas.util.BaseUtil.getCurrentUser().companyId;
-
-            var url = printurl + '?' + 'reportName=' + reportName + '&' + 'companyId=' + companyId + '&whereCondition=' + whereCondition
-
-            window.open(url);
+            return res.success;
+        }).catch(function(res) {
+            console.error(res.message);
+            saas.util.BaseUtil.showErrorToast('未通过权限验证:' + res.message);
         });
-    },
+    }
 });

+ 33 - 27
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -84,42 +84,48 @@ Ext.define('saas.view.core.report.ReportPanel', {
                                     includeSummary: true
                                 }
                             }, {
-                                text: 'Excel xml',
-                                cfg: {
-                                    type: 'excel03',
-                                    ext: 'xml'
-                                }
-                            }, {
-                                text: 'Excel xml (包含分组合计)',
-                                cfg: {
-                                    type: 'excel03',
-                                    ext: 'xml',
-                                    includeGroups: true,
-                                    includeSummary: true
-                                }
-                            }, {
+                            //     text: 'Excel xml',
+                            //     cfg: {
+                            //         type: 'excel03',
+                            //         ext: 'xml'
+                            //     }
+                            // }, {
+                            //     text: 'Excel xml (包含分组合计)',
+                            //     cfg: {
+                            //         type: 'excel03',
+                            //         ext: 'xml',
+                            //         includeGroups: true,
+                            //         includeSummary: true
+                            //     }
+                            // }, {
                                 text: 'CSV',
                                 cfg: {
                                     type: 'csv'
                                 }
                             }, {
-                                text: 'TSV',
-                                cfg: {
-                                    type: 'tsv',
-                                    ext: 'csv'
-                                }
-                            }, {
-                                text: 'HTML',
-                                cfg: {
-                                    type: 'html'
-                                }
-                            }, {
-                                text: 'HTML (包含分组合计)',
+                                text: 'CSV (包含分组合计)',
                                 cfg: {
-                                    type: 'html',
+                                    type: 'csv',
                                     includeGroups: true,
                                     includeSummary: true
                                 }
+                            //     text: 'TSV',
+                            //     cfg: {
+                            //         type: 'tsv',
+                            //         ext: 'csv'
+                            //     }
+                            // }, {
+                            //     text: 'HTML',
+                            //     cfg: {
+                            //         type: 'html'
+                            //     }
+                            // }, {
+                            //     text: 'HTML (包含分组合计)',
+                            //     cfg: {
+                            //         type: 'html',
+                            //         includeGroups: true,
+                            //         includeSummary: true
+                            //     }
                             }]
                         }
                     }]

+ 1 - 1
frontend/saas-web/app/view/core/report/ReportPanelController.js

@@ -30,7 +30,7 @@ Ext.define('saas.view.core.report.ReportPanelController', {
                 }
                 //font:
             },
-            fileName: title + Ext.Date.format(new Date(),'Y-m-d_H-i-s') +'.' + (btn.cfg.ext || btn.cfg.type)
+            fileName: title + Ext.Date.format(new Date(),'Y-m-d H-i-s') +'.' + (btn.cfg.ext || btn.cfg.type)
         }, btn.cfg);
         grid.store.exportPageSize = 5000;
         grid.store.exportNumber = 1;

+ 45 - 1
frontend/saas-web/app/view/viewport/ViewportController.js

@@ -73,7 +73,13 @@ Ext.define('saas.view.viewport.ViewportController', {
             // There is no authenticated user, let's redirect to the login page but keep track
             // of the original route to restore the requested route after user authentication.
             me.originalRoute = route;
-            me.redirectTo('login', {replace: true});
+            //没有session时  判断cookie中的uid
+            var hasValidCookie = Ext.util.Cookies.get('uid')?me.getAccountCookie():false;
+            if(!hasValidCookie){
+                me.redirectTo('login', {replace: true});
+            }else{
+                me.redirectTo('main', {replace: true});
+            }
             return;
         }
 
@@ -85,6 +91,44 @@ Ext.define('saas.view.viewport.ViewportController', {
         }
     },
 
+    getAccountCookie:function(){
+        var hasValidCookie = false;
+        Ext.Ajax.request({
+            url: 'http://192.168.253.31:8560/api/auth/info',
+            withCredentials: true,
+            async:false,
+            dataType: 'json',
+            headers:{
+                'Authorization':'',
+                'Access-Control-Allow-Origin': '<origin> | *'
+            },
+            method: 'GET',
+            success: function(response, opts) {
+                var res = Ext.decode(response.responseText);
+                var data = res.data;
+                var token = data.token;
+                data.expire = token.expire;
+                data.timestamp = token.timestamp;
+                data.token = token.token;
+                delete data['token'];
+                if(data.conpanyId){
+                    session = data? saas.model.Session.loadData(data) : null;
+                    if (session && session.isValid()) {
+                        me.setRequestToken(session.get('token'));
+                        me.saveSession(session);
+                    }
+                    hasValidCookie = true
+                }else{
+                    window.location.href = Ext.manifest.server.accountCenter
+                }
+            },
+            failure: function(response, opts) {
+                showErrorToast('解析cookie失败:'+response.message)
+            }
+        });
+        return hasValidCookie;
+    },
+
     setRequestToken: function(token) {
         var headers = Ext.Ajax.getDefaultHeaders() || {};
         if (token) {