浏览代码

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

heqinwei 7 年之前
父节点
当前提交
33bdcd4b32
共有 16 个文件被更改,包括 132 次插入94 次删除
  1. 10 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/HomePageController.java
  2. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/HomePageMapper.java
  3. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/HomePageService.java
  4. 7 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/HomePageServiceImpl.java
  5. 32 0
      applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml
  6. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  7. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  8. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  9. 1 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/report/ProdiodetailView.java
  10. 1 0
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml
  11. 34 8
      frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js
  12. 13 17
      frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js
  13. 3 1
      frontend/saas-web/app/view/core/report/ReportPanel.js
  14. 5 51
      frontend/saas-web/app/view/stock/report/DataList.js
  15. 13 6
      frontend/saas-web/app/view/stock/report/DataListController.js
  16. 3 5
      frontend/saas-web/app/view/stock/report/Prodiodetail.js

+ 10 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/HomePageController.java

@@ -104,4 +104,14 @@ public class HomePageController {
         return homePageService.keyData();
     }
 
+    /**
+     * @Description 本月毛利润
+     * @return: com.usoftchina.saas.base.Result
+     * @Author: guq
+     * @Date: 2018/12/10
+     */
+    @GetMapping("/monthProfit")
+    public Result monthProfit() {
+        return homePageService.monthProfit();
+    }
 }

+ 2 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/HomePageMapper.java

@@ -19,4 +19,6 @@ public interface HomePageMapper {
     String getSaleFutureData(Long componyId);
 
     String getKeyData(Long companyId);
+
+    String monthProfit(Long companyId);
 }

+ 2 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/HomePageService.java

@@ -51,4 +51,6 @@ public interface HomePageService {
     Result saleFutureData();
 
     Result keyData();
+
+    Result monthProfit();
 }

+ 7 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/HomePageServiceImpl.java

@@ -86,6 +86,13 @@ public class HomePageServiceImpl implements HomePageService{
         return Result.success(data);
     }
 
+    @Override
+    public Result monthProfit() {
+        Long companyId = BaseContextHolder.getCompanyId();
+        Object data = parseJson(homePageMapper.monthProfit(companyId));
+        return Result.success(data);
+    }
+
     private Object parseJson(String text) {
         Object json = null;
         if (null != text) {

+ 32 - 0
applications/commons/commons-server/src/main/resources/mapper/HomePageMapper.xml

@@ -116,4 +116,36 @@
             )d1
             );
     </select>
+
+    <select id="monthProfit" parameterType="long" resultType="string">
+        select concat('[',five_profit,',',other_profit,']') from (
+      (
+        #前5数据
+        select group_concat('{"x":"',custname,'","y":',profit,',"z":"',shortname,'"}') five_profit   from (
+        select sum((ifnull(pd_netprice,0)- ifnull(pd_price,0))*(ifnull(pd_outqty,0) - ifnull(pd_inqty,0))) profit,
+        pi_custcode,max(pi_custname) custname,max(ifnull(cu_shortname,'')) shortname  from prodinout left join prodiodetail on pi_id=pd_piid left join customer on cu_id=pi_custid
+        where
+        pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId}
+        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,4) t
+        )five_profit_,
+	  (
+	    #其它的数据
+		select concat('{"z":"其它","x":"其它","y":',all_profit - five_profit,'}') other_profit from (
+        #总共
+        (
+        select sum((ifnull(pd_netprice,0)- ifnull(pd_price,0))*(ifnull(pd_outqty,0) - ifnull(pd_inqty,0))) all_profit
+        from prodinout left join prodiodetail on pi_id=pd_piid
+        where
+        pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId} )a1_,
+        #前5总和
+        (
+        select sum(profit) five_profit from (select sum((ifnull(pd_netprice,0)- ifnull(pd_price,0))*(ifnull(pd_outqty,0) - ifnull(pd_inqty,0))) profit,
+        pi_custcode,max(pi_custname) custname,prodinout.companyid from prodinout left join prodiodetail on pi_id=pd_piid left join customer on cu_id=pi_custid
+         where
+        pi_class in('出货单', '销售退货单') and pi_statuscode='AUDITED' and DATE_FORMAT(pi_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and prodinout.companyid=#{componyId}
+        GROUP BY pi_custcode,prodinout.companyid order by profit desc  limit 0,4) b)a2_
+       )
+       ) other_profit_
+      )
+    </select>
 </mapper>

+ 2 - 2
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java

@@ -524,8 +524,8 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
                     customerDTO.setCu_sellercode(employees.get(0).getEm_code());
                     customerDTO.setCu_sellername(employees.get(0).getEm_name());
                 }
-                customerDTO.setCu_status(Status.OPEN.getDisplay());
-                customerDTO.setCu_statuscode(Status.OPEN.name());
+                customerDTO.setCu_status(Status.ENABLE.getDisplay());
+                customerDTO.setCu_statuscode(Status.ENABLE.name());
                 //编号不存在
                 if (i == 0) {
                     customerDTO.setId(0l);

+ 2 - 2
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -588,8 +588,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                         break;
                     }
                     product.setPr_whid(warehouse.getId());
-                    product.setPr_status(Status.OPEN.getDisplay());
-                    product.setPr_statuscode(Status.OPEN.name());
+                    product.setPr_status(Status.ENABLE.getDisplay());
+                    product.setPr_statuscode(Status.ENABLE.name());
                 }
                 //编号不存在
                 if (i == 0) {

+ 2 - 2
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java

@@ -453,8 +453,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
                 List<DataImportDetail> data = datas.get(code);
                 DataImportDetail main = dataImportMapper.selectMainBycode(code, id, companyId);
                 Vendor vendor = JSONObject.parseObject(main.getDd_maindata(), Vendor.class);
-                vendor.setVe_status(Status.OPEN.getDisplay());
-                vendor.setVe_statuscode(Status.OPEN.name());
+                vendor.setVe_status(Status.ENABLE.getDisplay());
+                vendor.setVe_statuscode(Status.ENABLE.name());
                 //编号不存在
                 if (i == 0) {
                     vendor.setId(0l);

+ 1 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/report/ProdiodetailView.java

@@ -30,5 +30,6 @@ public class ProdiodetailView implements Serializable{
     private String pd_remark;
     private Integer companyid;
 
+    private String pd_whname;
 
 }

+ 1 - 0
applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml

@@ -20,6 +20,7 @@
     <result column="pd_price" jdbcType="DOUBLE" property="pd_price" />
     <result column="pd_remark" jdbcType="VARCHAR" property="pd_remark" />
     <result column="companyid" jdbcType="INTEGER" property="companyid" />
+    <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />
   </resultMap>
 
 

+ 34 - 8
frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js

@@ -190,9 +190,7 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     listeners: {
         blur:function(f,e){
             var me = f;
-            var count = f.store.getCount();
-            var searchCount = false;//校验数据库是否有该字段
-            var dbfinds = me.dbfinds;
+            var dbfinds = me.dbfinds,data;
             if(f.value&&f.value!=''){
                 //添加默认条件
                 var searchField = null;
@@ -211,7 +209,7 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
                 }
                 dbCondition.push({
                     type: 'condition',
-                    value: searchField + "='"+me.value+"'"
+                    value: searchField + " like '%"+me.value+"%'"
                 });
                 Ext.Ajax.request({
                     url: me.dataUrl,
@@ -228,14 +226,11 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
                     success: function(response, opts) {
                         data = Ext.decode(response.responseText);
                         data = data.data?data.data.list:[];
-                        if(data.length>0){
-                            searchCount = true
-                        }
                     },
                     failure: function(response, opts) {}
                 }); 
             }
-            if(!f.value||f.value==''||!searchCount){
+            if(!f.value||f.value==''||data.length>1||data.length==0){
                 if(dbfinds&&dbfinds.length>0){
                     if(me.belong=='grid'){
                         for (let index = 0; index < dbfinds.length; index++) {
@@ -269,6 +264,37 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
                         }
                     }
                 }
+            }else if(data.length==1){
+                var dbfinds = me.dbfinds;
+                if(dbfinds&&dbfinds.length>0){
+                    if(me.belong=='grid'){
+                        for (let index = 0; index < dbfinds.length; index++) {
+                            var item = dbfinds[index];
+                            var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
+                            var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
+                            nowRec.set(item.to,data[0][item.from]);
+                            if(me.name==item.to){
+                                me.column.getEditor().setValue(data[0][item.from]);
+                            }
+                        }
+                    }else if(me.belong=='form'){
+                        for (let index = 0; index < dbfinds.length; index++) {
+                            var item = dbfinds[index];
+                            var field = me.ownerCt.down('[name='+item.to+']');
+                            if(field){
+                                var val = data[0][item.from];
+                                if(field.xtype=='dbfindtrigger'){
+                                    field.setRawValue(val);
+                                    field.setValue(val);
+                                    field.value = val;
+                                    field.lastTriggerValue=val;
+                                }else{
+                                    field.setValue(val);
+                                }    
+                            }
+                        }
+                    }
+                }
             }
         },
         select:function(combo,record,eOpts){

+ 13 - 17
frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js

@@ -172,9 +172,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
 
     listeners: {
         blur:function(f,e){
-            var me = f;
-            var count = f.store.getCount();
-            var searchCount = false;//校验数据库是否有该字段
+            var me = f,data;
             var dbfinds = me.dbfinds;
             if(f.value&&f.value!=''){
                 //添加默认条件
@@ -194,7 +192,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
                 }
                 dbCondition.push({
                     type: 'condition',
-                    value: searchField + "='"+me.value+"'"
+                    value: searchField + " like '%"+me.value+"%'"
                 });
                 Ext.Ajax.request({
                     url: me.dataUrl,
@@ -211,14 +209,11 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
                     success: function(response, opts) {
                         data = Ext.decode(response.responseText);
                         data = data.data?data.data.list:[];
-                        if(data.length>0){
-                            searchCount = true
-                        }
                     },
                     failure: function(response, opts) {}
                 }); 
             }
-            if(!f.value||f.value==''||!searchCount){
+            if(!f.value||f.value==''||data.length>1||data.length==0){
                 if(dbfinds&&dbfinds.length>0){
                     if(me.belong=='grid'){
                         for (let index = 0; index < dbfinds.length; index++) {
@@ -238,17 +233,18 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
                                 me.column.getEditor().setValue('');
                             }
                         }
-                    }else if(me.belong=='form'){
+                    }
+                }
+            }else if(data.length==1){
+                if(dbfinds&&dbfinds.length>0){
+                    if(me.belong=='grid'){
                         for (let index = 0; index < dbfinds.length; index++) {
                             var item = dbfinds[index];
-                            var field = me.ownerCt.down('[name='+item.to+']');
-                            if(field){
-                                if(field.xtype=='dbfindtrigger'){
-                                    field.setValue(null);
-                                    field.lastTriggerValue=null;
-                                }else{
-                                    field.setValue(null);
-                                }    
+                            var rec = me.column.ownerCt.ownerCt.selModel.getLastSelected();
+                            var nowRec = me.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
+                            nowRec.set(item.to,data[0][item.from]);
+                            if(me.name==item.to){
+                                me.column.getEditor().setValue(data[0][item.from]);
                             }
                         }
                     }

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

@@ -348,7 +348,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 me.initSummaryType(c);
                 summarys.push({
                     field: c.dataIndex,
-                    operation: c.summaryType == 'last' ? 'sum' : c.summaryType,
+                    operation: c._summaryType == 'last' ? 'sum' : c._summaryType,
                 });
             }
         })
@@ -374,6 +374,8 @@ Ext.define('saas.view.core.report.ReportPanel', {
             column.summaryType = function (records, values) {
                 return values[values.length - 1];
             }
+        }else {
+            column._summaryType = summaryType;
         }
     },
 

+ 5 - 51
frontend/saas-web/app/view/stock/report/DataList.js

@@ -47,7 +47,7 @@ Ext.define('saas.view.stock.report.DataList', {
         }
     }],
 
-    reportColumns2: [{
+    reportColumns: [{
         text: "物料编号",
         width: 200,
         dataIndex: "rc_prodCode",
@@ -68,6 +68,8 @@ Ext.define('saas.view.stock.report.DataList', {
     }, {
         text: "仓库名称",
         dataIndex: "rc_whName",
+        hidden: true,
+        toggle: true,
         width: 110,
     }, {
         text: "数量",
@@ -87,6 +89,8 @@ Ext.define('saas.view.stock.report.DataList', {
     }, {
         text: "单价",
         xtype: 'numbercolumn',
+        hidden: true,
+        toggle: true,
         align: 'end',
         dataIndex: "rc_price",
         width: 120,
@@ -117,54 +121,4 @@ Ext.define('saas.view.stock.report.DataList', {
     }, {
         flex: 1
     }],
-
-    reportColumns: [{
-        text: "物料编号",
-        width: 200,
-        dataIndex: "rc_prodCode",
-        xtype: "",
-    }, {
-        text: "物料名称",
-        width: 200,
-        dataIndex: "rc_prodDetail",
-    }, {
-        text: "物料规格",
-        dataIndex: "rc_prodSpec",
-        width: 150,
-    }, {
-        text: "数量",
-        xtype: 'numbercolumn',
-        dataIndex: "rc_number",
-        width: 120,
-        renderer: function (v) {
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
-            return Ext.util.Format.number(v, format);
-        }
-    },{
-        text: "单位",
-        dataIndex: "rc_prodUnit",
-        width: 80,
-    }, {
-        text: "金额",
-        xtype: 'numbercolumn',
-        dataIndex: "rc_amount",
-        width: 120,
-        renderer: function (v) {
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
-            return Ext.util.Format.number(v, format);
-        },
-        summaryType: 'sum',
-        summaryRenderer: function(v) {
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
-            return Ext.util.Format.number(v, format);
-        }
-    }, {
-        flex: 1
-    }]
 })

+ 13 - 6
frontend/saas-web/app/view/stock/report/DataListController.js

@@ -7,8 +7,16 @@ Ext.define('saas.view.stock.report.DataListController', {
         reportPanel = me.getView(),
         form = reportPanel.down('form'),
         grid = reportPanel.down('grid'),
-        store = grid.store,
-        columns = [];
+        columns = grid.columns,
+        toggleColumns = [],
+        store = grid.store;
+
+        for(var x = 0; x < columns.length; x++) {
+            var c = columns[x];
+            if(c.toggle) {
+                toggleColumns.push(c);
+            }
+        }
         
         var whCodeField = form.getForm().findField('wh_code');
         var con = form.items.items[3];
@@ -19,16 +27,15 @@ Ext.define('saas.view.stock.report.DataListController', {
         if(newValue) {
             con.columnWidth = 0.4;
             reportPanel.queryMode = 'DETAIL';
-            columns = reportPanel.reportColumns2;
         }else {
             con.columnWidth = 0.65;
             reportPanel.queryMode = 'MAIN';
-            columns = reportPanel.reportColumns;
         }
         
         form.updateLayout();
-        store.load(function() {
-            grid.reconfigure(store, columns);
+        toggleColumns.map(function(c) {
+            c.setHidden(!newValue);
         });
+        store.load();
     }
 });

+ 3 - 5
frontend/saas-web/app/view/stock/report/Prodiodetail.js

@@ -50,8 +50,6 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
         fieldLabel: '单据日期',
         columnWidth: 0.4
     }],
-  //  单号	单据类型	客户/供应商编号	客户/供应商名称	单据日期	序号	
-  //物料类型	物料编号	物料名称	物料规格	单位	入库数量	出库数量	成本单价	备注
     reportColumns: [{
         text: 'id',
         dataIndex: 'id',
@@ -97,9 +95,9 @@ Ext.define('saas.view.stock.report.Prodiodetail', {
         dataIndex: 'pr_spec',
         width: 150
     }, {
-        text: '单位',
-        dataIndex: 'pr_unit',
-        width: 80
+        text: '仓库',
+        dataIndex: 'pd_whname',
+        width: 150
     }, {
         text: '入库数量',
         xtype: 'numbercolumn',