Forráskód Böngészése

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

hy 7 éve
szülő
commit
69ea50b94e
34 módosított fájl, 170 hozzáadás és 148 törlés
  1. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java
  2. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  3. 2 2
      applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml
  4. 6 6
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  5. 19 6
      frontend/saas-portal-web/src/components/conenter/addenterprise.vue
  6. 17 17
      frontend/saas-portal-web/src/components/conenter/home.vue
  7. 23 12
      frontend/saas-portal-web/static/css/main.css
  8. BIN
      frontend/saas-portal-web/static/img/banner.png
  9. BIN
      frontend/saas-portal-web/static/img/banner@2x@2x.png
  10. BIN
      frontend/saas-portal-web/static/img/feature/blue1@2x.png
  11. BIN
      frontend/saas-portal-web/static/img/feature/blue3@2x.png
  12. BIN
      frontend/saas-portal-web/static/img/feature/for2x.png
  13. BIN
      frontend/saas-portal-web/static/img/feature/formin2x.png
  14. BIN
      frontend/saas-portal-web/static/img/feature/mix1x.png
  15. BIN
      frontend/saas-portal-web/static/img/feature/mix2x.png
  16. BIN
      frontend/saas-portal-web/static/img/feature/mix3x.png
  17. BIN
      frontend/saas-portal-web/static/img/feature/mix4x.png
  18. BIN
      frontend/saas-portal-web/static/img/feature/one2x.png
  19. BIN
      frontend/saas-portal-web/static/img/feature/onemin2x.png
  20. BIN
      frontend/saas-portal-web/static/img/feature/three2x.png
  21. BIN
      frontend/saas-portal-web/static/img/feature/threemin2x.png
  22. BIN
      frontend/saas-portal-web/static/img/feature/tow2x.png
  23. BIN
      frontend/saas-portal-web/static/img/feature/towmin2x.png
  24. BIN
      frontend/saas-portal-web/static/img/feature/yellow2@2x.png
  25. BIN
      frontend/saas-portal-web/static/img/feature/yellow4@2x.png
  26. 82 94
      frontend/saas-web/app/view/core/query/QueryPanel.js
  27. 3 2
      frontend/saas-web/app/view/core/report/ReportPanel.js
  28. 2 1
      frontend/saas-web/app/view/money/report/AccountBalance.js
  29. 2 1
      frontend/saas-web/app/view/money/report/OtherIODetail.js
  30. 2 1
      frontend/saas-web/app/view/money/report/PayDetail.js
  31. 2 1
      frontend/saas-web/app/view/money/report/RecDetail.js
  32. 3 1
      frontend/saas-web/app/view/purchase/report/PurchasePay.js
  33. 2 1
      frontend/saas-web/app/view/sale/report/SaleRec.js
  34. 2 1
      frontend/saas-web/app/view/stock/report/Prodiodetail.js

+ 2 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.document.mapper;
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.document.entities.Bankinformation;
+import com.usoftchina.saas.page.PageDefault;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -25,7 +26,7 @@ public interface BankinformationMapper extends CommonBaseMapper<Bankinformation>
 
     List<ComboDTO> getCombo(@Param("companyId") Long companyId);
     String selectBankcode(@Param("bk_bankcode") String bk_bankcode, @Param("companyId") Long companyId);
-    Long selectBankId(String bk_bankcode);
+    Long selectBankId(@Param("bk_bankcode") String bk_bankcode, @Param("companyId") Long companyId);
 
     void check(Map<String, Object> map);
 

+ 1 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java

@@ -95,7 +95,7 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
                 }
             }
 
-            Long id = bankinformationMapper.selectBankId(bankinformation.getBk_bankcode());
+            Long id = bankinformationMapper.selectBankId(bankinformation.getBk_bankcode(), BaseContextHolder.getCompanyId());
             if (bktion != null){
                 if (id.equals(bankinformation.getId())){
                     bankinformationMapper.updateByPrimaryKeySelective(bankinformation);

+ 2 - 2
applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -329,8 +329,8 @@
         bk_bankcode = #{bk_bankcode,jdbcType=VARCHAR} and companyId = #{companyId}
     </select>
 
-  <select id="selectBankId" parameterType="java.lang.String" resultType="java.lang.Long">
-        select bk_id from bankinformation where bk_bankcode = #{bk_bankcode,jdbcType=VARCHAR}
+  <select id="selectBankId" resultType="java.lang.Long">
+        select bk_id from bankinformation where bk_bankcode = #{bk_bankcode,jdbcType=VARCHAR} and companyId = #{companyId}
    </select>
 
   <select id="selectamount" parameterType="java.lang.Long" resultType="java.lang.Double">

+ 6 - 6
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java

@@ -226,8 +226,8 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
                     throw new BizException(code, error);
                 }
                 if(amount.doubleValue()<0 && nowbalanceDet.doubleValue()>0){
-                    String msg = BizExceptionCode.MONEY_NOWAMOUNT_POSITIVE.getMessage();
-                    int code = BizExceptionCode.MONEY_NOWAMOUNT_POSITIVE.getCode();
+                    String msg = BizExceptionCode.MONEY_NOWAMOUNT_NEGATIVE.getMessage();
+                    int code = BizExceptionCode.MONEY_NOWAMOUNT_NEGATIVE.getCode();
                     String error = String.format(msg, det.getVd_slkind());
                     throw new BizException(code, error);
                 }
@@ -247,8 +247,8 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
                     throw new BizException(code, error);
                 }
                 if(amount.doubleValue()<0 && nowbalanceDet.doubleValue()>0){
-                    String msg = BizExceptionCode.MONEY_NOWAMOUNT_POSITIVE.getMessage();
-                    int code = BizExceptionCode.MONEY_NOWAMOUNT_POSITIVE.getCode();
+                    String msg = BizExceptionCode.MONEY_NOWAMOUNT_NEGATIVE.getMessage();
+                    int code = BizExceptionCode.MONEY_NOWAMOUNT_NEGATIVE.getCode();
                     String error = String.format(msg, detail.getVcd_slkind());
                     throw new BizException(code, error);
                 }
@@ -530,9 +530,9 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
     @Override
     public void deleteDetail2(Long id) {
         if (null != id) {
-            verificationdetailMapper.deleteByParentPrimaryKey(id);
             Verificationdetail verificationdetail = verificationdetailMapper.selectByPrimaryKey(Integer.valueOf(String.valueOf(id)));
-            Verification verification = verificationMapper.selectByPrimaryKey(verificationdetail.getVcd_vcid());
+            Verification verification = verificationMapper.selectByPrimaryKey(verificationdetail.getVcd_vcid().intValue());
+            verificationdetailMapper.deleteByParentPrimaryKey(id);
             DocBaseDTO baseDTO = new DocBaseDTO();
             baseDTO.setId(id);
             baseDTO.setCode(verification.getVc_code());

+ 19 - 6
frontend/saas-portal-web/src/components/conenter/addenterprise.vue

@@ -18,7 +18,7 @@
                     <ul>
                         <li style="margin: 0">
                             <span class="qy-biaoti"><span class="xingxing">*</span>公司名称</span>
-                            <input class="inpind" ref="qyname" @change= "spaceName" type="text">
+                            <input class="inpind" ref="qyname" @change= "spaceName" type="text" placeholder="请填写公司全称">
                             <dir class="qy-Tips"><span ref="qyno" style="color:red"></span></dir>
                         </li>
                         <li>
@@ -123,7 +123,7 @@ import { setTimeout } from 'timers';
             spaceName(){
                 let qyname = this.$refs.qyname.value.replace(/\s+/g, "");//公司名字过滤空格
                 if(qyname == ''){
-                    this.$refs.qyno.innerHTML = '企业名不能为空';
+                    this.$refs.qyno.innerHTML = '企业名不能为空';
                 } else {
                     if (this.reg.test(qyname)) {
                         this.$refs.qyno.innerHTML = '不能包含非法字符';
@@ -157,7 +157,7 @@ import { setTimeout } from 'timers';
             yzusername(){
                 let name = this.$refs.name.value.replace(/\s+/g, "");//姓名过滤空格
                 if (name == '') {
-                    this.$refs.usname.innerHTML = '姓名不能为空'
+                    this.$refs.usname.innerHTML = '个人姓名不能为空'
                 } else {
                     if (this.reg.test(name)) {
                         this.$refs.usname.innerHTML = '不能包含非法字符'
@@ -172,7 +172,7 @@ import { setTimeout } from 'timers';
             address(){
                 let address = this.$refs.address.value.replace(/\s+/g, "");//过滤空格
                 if (address == '') {
-                    this.$refs.ress.innerHTML = '地址不能为空'
+                    this.$refs.ress.innerHTML = '企业地址不能为空'
                     this.isaddressname = false
                 } else {
                     this.isaddressname = true
@@ -223,8 +223,10 @@ import { setTimeout } from 'timers';
                 // console.log('邮箱',this.isemail)//邮箱正则
                 if (name == '') {
                     this.$refs.tjtishi.innerHTML = '个人姓名不能为空';
+                    this.remotxt()
                 } else if (qyname == '') {
                     this.$refs.tjtishi.innerHTML = '企业名字不能为空';
+                    this.remotxt()
                 } else {
                     switch (this.qymingzi && this.isaddress && this.isname && this.isspaceName && this.isemail && this.isaddressname) {
                         case this.qymingzi:
@@ -257,27 +259,38 @@ import { setTimeout } from 'timers';
                             })
                             this.$refs.tjtishi.innerHTML = '';
                         } else {
-                            this.$refs.tjtishi.innerHTML = '企业名字已在优软云注册';
+                            this.$refs.tjtishi.innerHTML = '该企业已在优软云注册';
+                            this.remotxt()
                         }
                         break;
                         case this.isaddressname:
                         this.$refs.tjtishi.innerHTML = '企业地址不能为空';
+                        this.remotxt()
                         break;
                         case this.isaddress:
                         this.$refs.tjtishi.innerHTML = '企业地址不能包含非法字符';
+                        this.remotxt()
                         break;
                         case this.isname:
                         this.$refs.tjtishi.innerHTML = '个人姓名不能包含非法字符';
+                        this.remotxt()
                         break;
                         case this.isspaceName:
                         this.$refs.tjtishi.innerHTML = '企业名字不能包含非法字符';
+                        this.remotxt()
                         break;
                         case this.isemail:
-                        this.$refs.tjtishi.innerHTML = '请输入正确邮箱';
+                        this.$refs.tjtishi.innerHTML = '请填写正确的邮箱';
+                        this.remotxt()
                         break;
                     }
                 }
             },
+            remotxt(){
+                setTimeout(()=>{
+                    this.$refs.tjtishi.innerHTML = ' ';
+                },3000)
+            },
             //获取省市区
             selected(data){
                 this.province = data.province.value;

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

@@ -85,51 +85,51 @@
       <!-- 特色 -->
       <section id="feature">
         <div class="container ts-worp">
-          <div class="section-title text-center">
+          <div class="section-title text-center" style="margin-bottom: 50px">
             <p class="ts-title">我们的特色</p>
             <p class="ts-text">云端部署 &nbsp;&nbsp; 轻量应用</p>
           </div>
           <!-- 1 -->
           <div class="ts-box">
-            <div class="ts-boximg">
-              <img style="margin-left: 18px;" src="/static/img/feature/mix1x.png" alt="">
+            <div>
+              <img class="left" src="/static/img/feature/for2x.png" alt="">
             </div>
             <div>
-              <img class="ts-img" src="/static/img/feature/blue1@2x.png" alt="">
+              <img class="right" src="/static/img/feature/onemin2x.png" alt="">
             </div>
           </div>
           <!-- 2 -->
-          <div class="ts-box">
+          <div class="ts-box ts-boxtow">
             <div>
-              <img class="ts-img" src="/static/img/feature/yellow2@2x.png" alt="">
+              <img class="left" src="/static/img/feature/towmin2x.png" alt="">
             </div>
-            <div class="ts-boximg">
-              <img style="float: right;" src="/static/img/feature/mix2x.png" alt="">
+            <div>
+              <img class="right" style="margin-right:20px; width:80%" src="/static/img/feature/three2x.png" alt="">
             </div>
           </div>
           <!-- 3 -->
-          <div class="ts-box">
-            <div class="ts-boximg">
-              <img src="/static/img/feature/mix3x.png" alt="">
+          <div class="ts-box" style="padding-bottom:0px">
+            <div>
+              <img class="left" style="width:88%" src="/static/img/feature/one2x.png" alt="">
             </div>
             <div>
-              <img class="ts-img" src="/static/img/feature/blue3@2x.png" alt="">
+              <img class="right" style="margin-top:-30%;" src="/static/img/feature/threemin2x.png" alt="">
             </div>
           </div>
           <!-- 4 -->
-          <div class="ts-box">
+          <div class="ts-box ts-boxtow ts-forbox" style="padding-bottom:0px">
             <div>
-              <img style="width:94%" class="ts-img" src="/static/img/feature/yellow4@2x.png" alt="">
+              <img class="left" style="margin-top:-39%;" src="/static/img/feature/formin2x.png" alt="">
             </div>
-            <div class="ts-boximg">
-              <img style="float: right;" src="/static/img/feature/mix4x.png" alt="">
+            <div>
+              <img class="right" style="margin-right:30px;" src="/static/img/feature/tow2x.png" alt="">
             </div>
           </div>
         </div>
       </section>
 
       <!-- Service section 功能-->
-      <section id="service">
+      <section id="service" style="padding-top: 0">
         <div class="container" style="position: relative;">
           <img class="gn-beijing" src="/static/img/gongneng/xu xian@3x.png" alt="">
           <div class="row">

+ 23 - 12
frontend/saas-portal-web/static/css/main.css

@@ -151,17 +151,32 @@ main > section {
 }
 .ts-box {
     overflow: hidden;
-    position: relative;
-    padding: 150px 0;
-    width: 98%;
+    /* position: relative; */
+    padding: 100px 50px 100px 20px;
+    width: 100%;
+    display: table;
+    background: #F8FAFD;
 }
-.ts-boximg {
-    position: absolute;
-    top: 50px;
+.ts-boxtow {
+    padding: 100px 20px 100px 50px;
+    background: white;
+}
+.ts-box div {
+    display: table-cell;
+    vertical-align: middle;
+}
+.ts-box img {
+    width: 95%;
 }
-.ts-boximg img {
-    width: 65%;
+.ts-forbox img {
+    width: 100%;
 }
+/* .ts-imgmax {
+    width: 100%;
+}
+.ts-imgmin {
+    width: 100%;
+} */
 .ts-title {
     font-family: PingFangSC-Regular !important;
     color: #0D253E !important;
@@ -175,10 +190,6 @@ main > section {
 .right {
     float: right;
 }
-.ts-img {
-    width: 98%;
-    margin-left: 2%;
-}
 .right-text {
     text-align: right;
 }

BIN
frontend/saas-portal-web/static/img/banner.png


BIN
frontend/saas-portal-web/static/img/banner@2x@2x.png


BIN
frontend/saas-portal-web/static/img/feature/blue1@2x.png


BIN
frontend/saas-portal-web/static/img/feature/blue3@2x.png


BIN
frontend/saas-portal-web/static/img/feature/for2x.png


BIN
frontend/saas-portal-web/static/img/feature/formin2x.png


BIN
frontend/saas-portal-web/static/img/feature/mix1x.png


BIN
frontend/saas-portal-web/static/img/feature/mix2x.png


BIN
frontend/saas-portal-web/static/img/feature/mix3x.png


BIN
frontend/saas-portal-web/static/img/feature/mix4x.png


BIN
frontend/saas-portal-web/static/img/feature/one2x.png


BIN
frontend/saas-portal-web/static/img/feature/onemin2x.png


BIN
frontend/saas-portal-web/static/img/feature/three2x.png


BIN
frontend/saas-portal-web/static/img/feature/threemin2x.png


BIN
frontend/saas-portal-web/static/img/feature/tow2x.png


BIN
frontend/saas-portal-web/static/img/feature/towmin2x.png


BIN
frontend/saas-portal-web/static/img/feature/yellow2@2x.png


BIN
frontend/saas-portal-web/static/img/feature/yellow4@2x.png


+ 82 - 94
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -146,120 +146,99 @@ Ext.define('saas.view.core.query.QueryPanel', {
     /**
      * 获得过滤条件
      */
-    getConditions: function(moreQuery) {
+    getConditions: function() {
         var me = this,
-        formItems = me.queryFormItems,
-        moreQueryFormItems = me.moreQueryFormItems,
+        formItems = me.items.items[0].items.items,
         viewModel = me.getViewModel(),
         viewModelData = viewModel.getData(),
         bindItems = viewModelData['form'],
-        moreItems = viewModelData['moreForm'],
         condition,
         conditions = [];
 
-        if(moreQuery) {
-            for(k in moreItems) {
-                var item = Ext.Array.findBy(moreQueryFormItems, function(i) {
-                    return i.name == k;
-                });
-                var field = item.name,
-                func = item.getCondition,
-                value = moreItems[k],
-                condition;
-    
-                if(value&&value!=''){
-                    if(typeof func == 'function') {
-                        condition = {
-                            type: 'condition',
-                            value: func(value)
-                        }
-                    }else {
-                        var xtype = item.xtype || 'textfield',
-                        type = item.fieldType || me.getDefaultFieldType(xtype),
-                        operation = item.operation || me.getDefaultFieldOperation(xtype),
-                        conditionValue = me.getConditionValue(xtype, value);
-            
-                        if(!conditionValue) {
-                            continue;
-                        }
-                        condition = {
-                            type: type,
-                            field: field,
-                            operation: operation,
-                            value: conditionValue
-                        }
+        for(k in bindItems) {
+            var item = Ext.Array.findBy(formItems, function(i) {
+                return i.name == k;
+            });
+            var field = item.name,
+            func = item.getCondition,
+            value = bindItems[k],
+            condition;
+
+            if(value&&value!=''){
+                if(typeof func == 'function') {
+                    condition = {
+                        type: 'condition',
+                        value: func(value)
                     }
-                    conditions.push(condition);
-                }
-            }
-        }else {
-            for(k in bindItems) {
-                var item = Ext.Array.findBy(formItems, function(i) {
-                    return i.name == k;
-                });
-                var field = item.name,
-                func = item.getCondition,
-                value = bindItems[k],
-                condition;
-    
-                if(value&&value!=''){
-                    if(typeof func == 'function') {
-                        condition = {
-                            type: 'condition',
-                            value: func(value)
-                        }
-                    }else {
-                        var xtype = item.xtype || 'textfield',
-                        type = item.fieldType || me.getDefaultFieldType(xtype),
-                        operation = item.operation || me.getDefaultFieldOperation(xtype),
-                        conditionValue = me.getConditionValue(xtype, value);
-            
-                        if(!conditionValue) {
-                            continue;
-                        }
-                        condition = {
-                            type: type,
-                            field: field,
-                            operation: operation,
-                            value: conditionValue
-                        }
+                }else {
+                    var type = item.fieldType || me.getDefaultFieldType(item),
+                    operation = item.operation || me.getDefaultFieldOperation(item),
+                    conditionValue = me.getConditionValue(item, value);
+        
+                    if(!conditionValue) {
+                        continue;
+                    }
+                    condition = {
+                        type: type,
+                        field: field,
+                        operation: operation,
+                        value: conditionValue
                     }
-                    conditions.push(condition);
                 }
+                conditions.push(condition);
             }
         }
 
         return conditions;
     },
 
-    getDefaultFieldType: function(xtype) {
-        var type;
+    /**
+     * 只要arr1和arr2中存在相同项即返回真
+     */
+    isContainsAny: function (arr1, arr2) {
+        for (var i = 0; i < arr2.length; i++) {
+            var a2 = arr2[i];
+            if (!!arr1.find(function (a1) {
+                    return a1 == a2
+                })) {
+                return true;
+            }
+        }
+        return false;
+    },
 
-        if(Ext.Array.contains(['numberfield'], xtype)) {
+    getDefaultFieldType: function (field) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            type;
+
+        if (me.isContainsAny(xtypes, ['numberfield'])) {
             type = 'number';
-        }else if(Ext.Array.contains(['datefield', 'condatefield'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['datefield', 'condatefield', 'conmonthfield'])) {
             type = 'date';
-        }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo', 'radiofield', 'radio'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            type = 'enum';
+        } else if (me.isContainsAny(xtypes, ['combobox', 'multicombo', 'combo', 'radiofield', 'radio'])) {
             type = 'enum';
-        }else {
+        } else {
             type = 'string';
         }
 
         return type;
     },
 
-    getDefaultFieldOperation: function(xtype) {
-        var operation;
+    getDefaultFieldOperation: function (field) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            operation;
 
-        if(Ext.Array.contains(['numberfield'], xtype)) {
-            operation = '=';
-        }else if(Ext.Array.contains(['datefield'], xtype)) {
+        if (me.isContainsAny(xtypes, ['numberfield', 'datefield', 'dbfindtrigger'])) {
             operation = '=';
-        }else if(Ext.Array.contains(['condatefield'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['condatefield', 'conmonthfield'])) {
             operation = 'between';
-        }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['multidbfindtrigger', 'combobox', 'multicombo', 'combo'])) {
             operation = 'in';
-        }else {
+        } else {
             operation = 'like';
         }
 
@@ -269,22 +248,31 @@ Ext.define('saas.view.core.query.QueryPanel', {
     /**
      * 处理部分字段值
      */
-    getConditionValue: function(xtype, value) {
-        var conditionValue;
-        if(xtype == 'datefield') {
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
             conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
-        }else if(xtype == 'condatefield') {
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
             var from = value.from,
-            to = value.to;
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
+            var from = value.from,
+                to = value.to;
 
             conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
-        }else if(xtype == 'combobox' || xtype == 'combo') {
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
             conditionValue = '\'' + value + '\'';
-        }else if(xtype == 'multicombo') {
-            conditionValue = value.map(function(v) {
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
                 return '\'' + v.value + '\'';
-            }).join(',');
-        }else {
+            }).join(',') : '';
+        } else {
             conditionValue = value;
         }
 

+ 3 - 2
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -164,7 +164,8 @@ Ext.define('saas.view.core.report.ReportPanel', {
             ftype: 'groupingsummary',
             hideGroupedHeader: false,
             enableGroupingMenu: false,
-            collapsible: false
+            collapsible: false,
+            groupHeaderTpl: me.groupHeaderTpl || '{columnName}: {name}'
         }];
 
         if (me.showMySummary) {
@@ -533,7 +534,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
         } else if (me.isContainsAny(xtypes, ['datefield', 'condatefield', 'conmonthfield'])) {
             type = 'date';
         } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
-            type = 'string';
+            type = 'enum';
         } else if (me.isContainsAny(xtypes, ['combobox', 'multicombo', 'combo', 'radiofield', 'radio'])) {
             type = 'enum';
         } else {

+ 2 - 1
frontend/saas-web/app/view/money/report/AccountBalance.js

@@ -7,7 +7,8 @@ Ext.define('saas.view.money.report.AccountBalance', {
 
     viewName: 'money-report-accountbalance',
 
-    groupField: 'bankname',
+    groupField: 'bankcode',
+    groupHeaderTpl: '账户名称: {[values.rows[0].data.bankname]}',
     listUrl: '/api/money/report/accountBalance',
     defaultCondition: null,
     reportTitle: '账户收支明细表',

+ 2 - 1
frontend/saas-web/app/view/money/report/OtherIODetail.js

@@ -10,7 +10,8 @@ Ext.define('saas.view.money.report.OtherIODetail', {
 
     viewName: 'money-report-otheriodetail',
 
-    groupField: 'bl_bankname',
+    groupField: 'bl_bankcode',
+    groupHeaderTpl: '资金账户: {[values.rows[0].data.bankname]}',
     listUrl: '/api/money/report/otheriodetail',
     defaultCondition: null,
     reportTitle: '其他收支明细表',

+ 2 - 1
frontend/saas-web/app/view/money/report/PayDetail.js

@@ -6,7 +6,8 @@ Ext.define('saas.view.money.report.PayDetail', {
     viewModel: 'money-report-paydetail',
     viewName: 'money-report-paydetail',
 
-    groupField:'pd_vendname',
+    groupField:'pd_vendcode',
+    groupHeaderTpl: '供应商名称: {[values.rows[0].data.pd_vendcode]}',
     listUrl: '/api/money/report/payDetail',
     defaultCondition: null,
     reportTitle: '应付账款明细表',

+ 2 - 1
frontend/saas-web/app/view/money/report/RecDetail.js

@@ -7,7 +7,8 @@ Ext.define('saas.view.money.report.RecDetail', {
 
     viewName: 'money-report-recdetail',
 
-    groupField: 'rd_custname',
+    groupField: 'rd_custcode',
+    groupHeaderTpl: '客户名称: {[values.rows[0].data.rd_custname]}',
     listUrl: '/api/money/report/recDetail',
     defaultCondition: null,
     reportTitle: '应收账款明细',

+ 3 - 1
frontend/saas-web/app/view/purchase/report/PurchasePay.js

@@ -7,7 +7,8 @@ Ext.define('saas.view.purchase.report.PurchasePay', {
 
     viewName: 'purchase-report-purchasepay',
 //按供应商分组 付款金额合计
-    groupField: 'pu_vendname',
+    groupField: 'pu_vendcode',
+    groupHeaderTpl: '供应商名称: {[values.rows[0].data.pu_vendname]}',
     listUrl: '/api/purchase/report/purchasePay',
     defaultCondition: null,
     reportTitle: '采购付款一览表',
@@ -36,6 +37,7 @@ Ext.define('saas.view.purchase.report.PurchasePay', {
         width: 150
     }, {
         text: '供应商编号',
+        id: 'pu_vendcode',
         dataIndex: 'pu_vendcode',
         width: 150
     }, {

+ 2 - 1
frontend/saas-web/app/view/sale/report/SaleRec.js

@@ -7,7 +7,8 @@ Ext.define('saas.view.sale.report.SaleRec', {
 
     viewName: 'sale-report-salerec',
 
-    groupField: 'rb_custname',
+    groupField: 'rb_custcode',
+    groupHeaderTpl: '客户名称: {[values.rows[0].data.rd_custname]}',
     listUrl: '/api/sale/report/saleRec',
     defaultCondition: null,
     reportTitle: '销售收款报表',

+ 2 - 1
frontend/saas-web/app/view/stock/report/Prodiodetail.js

@@ -8,6 +8,7 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
     viewName: 'stock-report-prodiodetail',
   //  按物料分组
     groupField: 'pd_prodcode',
+    groupHeaderTpl: '物料名称: {[values.rows[0].data.pr_detail]}',
     listUrl: '/api/storage/report/prodioDetail',
     defaultCondition: null,
     reportTitle: '物料出入库明细表',
@@ -22,7 +23,7 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
         emptyText:'输入单号,订单号或物料编号',
         columnWidth: 0.2,
         getCondition:function(v){
-            return "pd_prodcode='"+v+"' or pi_inoutno='"+v+"' or pd_ordercode='"+v+"'";
+            return "(upper(pd_prodcode) like '%" + v.toUpperCase() + "%' or upper(pi_inoutno) like '%" + v.toUpperCase() + "%' or upper(pd_ordercode) like '%" + v.toUpperCase() + "%')";
         }
     },{
         xtype: 'multicombo',