Parcourir la source

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

heqinwei il y a 7 ans
Parent
commit
0e12d71e4d
23 fichiers modifiés avec 156 ajouts et 125 suppressions
  1. 3 1
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 2 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/StockTakingMapper.java
  3. 8 4
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/StocktakingServiceImpl.java
  4. 11 0
      applications/storage/storage-server/src/main/resources/mapper/StockTakingMapper.xml
  5. 0 20
      frontend/saas-web/app/Application.scss
  6. 9 0
      frontend/saas-web/app/view/core/form/FormPanel.js
  7. 19 0
      frontend/saas-web/app/view/core/form/FormPanelController.js
  8. 5 6
      frontend/saas-web/app/view/core/tab/Controller.js
  9. 1 1
      frontend/saas-web/app/view/core/tab/Panel.js
  10. 9 6
      frontend/saas-web/app/view/main/Main.js
  11. 41 18
      frontend/saas-web/app/view/main/Main.scss
  12. 17 42
      frontend/saas-web/app/view/main/MainController.js
  13. 4 6
      frontend/saas-web/app/view/main/Navigation.scss
  14. 1 4
      frontend/saas-web/app/view/stock/inventory/EditDataList.js
  15. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot
  16. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js
  17. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg
  18. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf
  19. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff
  20. 25 13
      frontend/saas-web/packages/font-saas/sass/etc/icons.scss
  21. 1 4
      frontend/saas-web/packages/font-saas/sass/src/all.scss
  22. BIN
      frontend/saas-web/resources/images/default/logo-default.png
  23. BIN
      frontend/saas-web/resources/images/favicon.png

+ 3 - 1
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -92,9 +92,11 @@ public enum BizExceptionCode implements BaseExceptionCode {
 
     //库存
     EMPTY_DATA(76100,"数据为空,请填写后再保存"),
+    STORAGE_POST_ERROR(76200,""),
     UNENOUGH_DETAIL_STOCK(76300, "行%s库存不足"),
     UNENOUGH_STOCK(76400, "%s :库存不足"),
-    STORAGE_POST_ERROR(76200,""),
+    UNPOSTSTOCKPROFIT_EXISTS(76500, "存在当前仓库+物料未审核的盘盈盘亏单"),
+    STOCKPROFIT_NULL(76600, "没有需要生成的盘盈盘亏单")
     ;
     private int code;
     private String message;

+ 2 - 0
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/StockTakingMapper.java

@@ -22,4 +22,6 @@ public interface StockTakingMapper extends CommonBaseMapper<StockTaking> {
     void insertFormProductWh(@Param("con") String con,@Param("companyId") Long companyId);
 
     Double getPurcpriceByProduct(Long id);
+
+    int checkUnPostStockProfit(@Param("companyId") Long companyId);
 }

+ 8 - 4
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/StocktakingServiceImpl.java

@@ -87,6 +87,11 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
         Long companyId = BaseContextHolder.getCompanyId();
         Long userId = BaseContextHolder.getUserId();
         String userName = BaseContextHolder.getUserName();
+        //检查是否有当前盘点物料+仓库未审核的盘盈盘亏单
+        int count = getMapper().checkUnPostStockProfit(companyId);
+        if (count>0) {
+            throw new BizException(BizExceptionCode.UNPOSTSTOCKPROFIT_EXISTS);
+        }
         //生成入库单
         List<StockTaking> inlist  = getMapper().selectStockTakingBycondition("st_num>0",companyId);
         if (inlist.size()>0){
@@ -98,8 +103,6 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             prodIn.setPi_status("未审核");
             prodIn.setPi_statuscode("UNAUDITED");
             prodIn.setCompanyId(companyId);
-            prodIn.setCreateTime(new Date());
-            prodIn.setCreatorId(userId);
             prodIn.setPi_remark("盘盈单");
             prodInOutMapper.insertSelective(prodIn);
             long inid = prodIn.getId();
@@ -142,8 +145,6 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             prodOut.setPi_status("未审核");
             prodOut.setPi_statuscode("UNAUDITED");
             prodOut.setCompanyId(companyId);
-            prodOut.setCreateTime(new Date());
-            prodOut.setCreatorId(userId);
             prodOut.setPi_remark("盘亏单");
             prodInOutMapper.insertSelective(prodOut);
             long outid = prodOut.getId();
@@ -171,6 +172,9 @@ public class StocktakingServiceImpl extends CommonBaseServiceImpl<StockTakingMap
             DocBaseDTO baseDTOOUT = new DocBaseDTO(outid,piOutno,"其它出库单");
             resultMap.put("outData",baseDTOOUT);
         }
+        if (inlist.size()==0 && outlist.size()==0){
+            throw new BizException(BizExceptionCode.STOCKPROFIT_NULL);
+        }
         return resultMap;
     }
 

+ 11 - 0
applications/storage/storage-server/src/main/resources/mapper/StockTakingMapper.xml

@@ -261,5 +261,16 @@
     select pr_purcprice from product where pr_id = #{id}
   </select>
 
+  <select id="checkUnPostStockProfit" resultType="int">
+    select
+    count(*)
+    from
+    (select pd_prodid,pd_whid from prodiodetail left join prodinout on pd_piid = pi_id
+    where prodinout.companyId=#{companyId,jdbcType=INTEGER} and (pi_remark='盘盈单' or pi_remark='盘亏单')) b
+    left join
+    (select st_prodid,st_whid from stocktaking where companyId=#{companyId} ) a
+    on a.st_prodid = b.pd_prodid and a.st_whid = b.pd_whid
+  </select>
+
 
 </mapper>

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

@@ -153,26 +153,6 @@ body.launching {
   }
 }
 
-.x-btn-menu-active{
-  .x-btn-wrap{
-    .x-btn-button{
-      .x-btn-inner{
-        color:#fff !important;
-      }
-    }
-  }
-}
-
-.x-main-master{
-  .x-btn-wrap{
-    .x-btn-button{
-      .x-btn-inner{
-        color:#999 !important;
-      }
-    }
-  }
-}
-
 .x-keyboard-mode .x-btn-focus.x-btn-default-toolbar-small {
   background: inherit;
   opacity: 1;

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

@@ -52,6 +52,15 @@ 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: '新增',

+ 19 - 0
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -12,6 +12,25 @@ Ext.define('saas.view.core.form.FormPanelController', {
         status == 'AUDITED' ? me.onUnAudit() : me.onAudit();
     },
 
+    refresh: function() {
+        var me = this,
+        form = me.getView(),
+        xtype = form.xtype,
+        _config = form._config,
+        currentTab = saas.util.BaseUtil.getCurrentTab();
+        
+        var view = {
+            _config: _config,
+            xtype: xtype
+        };
+        Ext.apply(view, _config);
+        
+        Ext.suspendLayouts();
+        currentTab.removeAll();
+        currentTab.add(view);
+        Ext.resumeLayouts(true);
+    },
+
     add: function(){
         var form = this.getView();
         var id = form.xtype + '-add';

+ 5 - 6
frontend/saas-web/app/view/core/tab/Controller.js

@@ -15,13 +15,11 @@ Ext.define('saas.view.core.tab.Controller', {
         };
         Ext.apply(view, viewConfig);
 
-        tab.tabView = tab.add(view);
+        tab.add(view);
     },
 
-    onTabChange: function(component) {
-        var me = this,
-        tabPanel = me.getView(),
-        tabView = tabPanel.tabView;
+    onTabActivate: function(component) {
+        var tabView = component.down('panel');
 
         if(typeof tabView.refresh == 'function') {
             tabView.refresh();
@@ -29,7 +27,8 @@ Ext.define('saas.view.core.tab.Controller', {
 
         if(!component.resetCloseClick) {
             component.tab.onCloseClick = function() {
-                var me = this;
+                var me = this,
+                tabView = component.down('panel');
          
                 if (me.fireEvent('beforeclose', me) !== false) {
                     if (me.tabBar) {

+ 1 - 1
frontend/saas-web/app/view/core/tab/Panel.js

@@ -5,6 +5,6 @@ Ext.define('saas.view.core.tab.Panel', {
     layout: 'fit',
     
     listeners: {
-        activate: 'onTabChange'
+        activate: 'onTabActivate'
     }
 });

+ 9 - 6
frontend/saas-web/app/view/main/Main.js

@@ -31,18 +31,20 @@ Ext.define('saas.view.main.Main', {
                     reference: 'mainLogo',
                     width: 180,
                     cls: 'main-logo-wrap',
-                    html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">企云服</div></div>',
+                    html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">U企云服</div></div>',
                     bind: {
                         width: '{navWidth}'
                     }
                 },
                 {
-                    margin: '0 0 0 8',
+                    margin: '0 8 0 8',
+                    padding: '7 0 7 0',
                     ui: 'header',
-                    iconCls:'x-fa fa-navicon',
-                    id: 'main-navigation-btn',
+                    iconCls:'x-sa sa-arrows-left',
+                    id: 'main-navigation-toggle-btn',
                     handler: 'onToggleNavigationSize'
                 },{
+                    padding: '0 0 0 0',
                     reference: 'mainprofile',
                     arrowVisible: false,
                     cls:'x-main-master',
@@ -50,6 +52,7 @@ Ext.define('saas.view.main.Main', {
                     bind: {
                         text: '{company.name}'
                     },
+                    arrowVisible: true,
                     menu: {
                         items: [{
                             xtype: 'menuseparator'
@@ -66,7 +69,7 @@ Ext.define('saas.view.main.Main', {
                     }
                 },
                 {
-                    iconCls:'x-fa fa-question',
+                    iconCls:'x-sa sa-help',
                     cls:'sa-nav-button',
                     ui: 'header',
                     arrowVisible: false,
@@ -114,7 +117,7 @@ Ext.define('saas.view.main.Main', {
                 {
                     //margin: '0 0 0 0',
                     xtype: 'tbtext',
-                    cls:'nav-realname',
+                    cls:'sa-nav-button nav-realname',
                     bind: {
                         html: '{account.realname}'
                     },

+ 41 - 18
frontend/saas-web/app/view/main/Main.scss

@@ -66,21 +66,21 @@ $treelist-nav-ui: (
         background: #34BAF6;
 
         img {
-            width: 54px;
-            height: 54px;
-            top: 5px;
-            left: 16px;
+            width: 32px;
+            height: 32px;
+            top: 16px;
+            left: 42px;
             position: relative;
         }
 
         .logo-text {
             // font-family: 'pingFangSC-Regular';
-            font-size: 18px;
+            font-size: 14px;
             color: #FFFFFF;
             text-align: left;
-            top: 23px;
+            top: 30px;
             position: absolute;
-            right: 28px;
+            left: 76px;
         }
     }
 }
@@ -221,25 +221,34 @@ body > .x-mask {
     filter: grayscale(100%);
     filter: gray;
 }
- .sa-nav-menu{
+.sa-nav-menu {
     background: #f8fbff;
     border: 1px solid #34baf6;
     margin-top: 10px;
- }
- .sa-nav-button{
+}
+
+.sa-nav-button {
+    color: #34BAF6;
+    padding: 0;
     box-shadow: none !important;
- }
- .sa-nav-menu.x-menu-item-text-default,
- .sa-nav-menu  .sa-navicon {
+
+    .x-btn-icon-el {
+        color: #34BAF6;
+    }
+}
+
+.sa-nav-menu.x-menu-item-text-default,
+.sa-nav-menu .sa-navicon {
     //font-family: PingFangSC-Regular;
     //font-size: 14px;
     color: #34BAF6;
     letter-spacing: 0;
     text-align: center;
- }
- .x-menu.sa-nav-menu .x-menu-bodyWrap{
+}
+
+.x-menu.sa-nav-menu .x-menu-bodyWrap {
     margin-left: -0.5px;
- }
+}
 /* .x-main-menu .x-fa.sa-navicon{
     color: #34BAF6;
 }  */
@@ -365,12 +374,26 @@ body > .x-mask {
     }
 }
 
-.x-main-master{
+.x-main-master,
+.x-main-master.x-btn-menu-active,
+.x-main-master.x-btn-pressed {
     .x-btn-wrap{
+        &:after {
+            color: #34BAF6,
+        }
         .x-btn-button{
             .x-btn-inner{
-                color:#999 !important;
+                font-size: 16px;
+                padding: 0;
+                color:#34BAF6 !important;
             }
         }
     }
 }
+
+#main-navigation-toggle-btn {
+    .x-btn-icon-el-header-small {
+        font-size: 12px;
+        color: #34BAF6;
+    }
+}

+ 17 - 42
frontend/saas-web/app/view/main/MainController.js

@@ -35,54 +35,29 @@ Ext.define('saas.view.main.MainController', {
         navigationList = refs.navigationTreeList,
         navCollapsed = !navigationList.navCollapsed,
         new_width = navCollapsed ? viewModel.get('smallNavWidth') : viewModel.get('navWidth'),
-        newLogoImgStyle = navCollapsed ? {
-            width: 50,
-            height: 50,
-            top: 7,
-            left: 6
-        } : {
-            width: 54,
-            height: 54,
-            top: 5,
-            left: 16
-        },
+        newLogoImgStyle = navCollapsed ? { width: 40, height: 40, top: 10, left: 10 } : { width: 32, height: 32, top: 16, left: 42 },
         newLogoTextStyle = navCollapsed ? {
-            5: {
-                opacity: 0
-            },
-            10: {
-                opacity: 0
-            },
-            100: {
-                opacity: 0,
-                display: 'none'
-            }
-        } : {
-            25: {
-                opacity: 0 
-            },
-            50: {
-                opacity: 1
-            }
-        },
-        newNavIconStyle = navCollapsed ? {
-            marginLeft: 6,
-            fontSize: 28
-        } : {
-            marginLeft: 22,
-            fontSize: 24
-        },
-        newNavTextStyle = navCollapsed ? {
-            opacity: 0
+            5: { opacity: 0 },
+            10: { opacity: 0 },
+            100: { opacity: 0, display: 'none' }
         } : {
-            opacity: 1
+            25: { opacity: 0 },
+            50: { opacity: 1 }
         },
-        ope = navCollapsed ? 'addCls' : 'removeCls';
-        
+        newNavIconStyle = navCollapsed ? { marginLeft: 6, fontSize: 28 } : { marginLeft: 22, fontSize: 24 },
+        newNavTextStyle = navCollapsed ? { opacity: 0 } : { opacity: 1 },
+        ope = navCollapsed ? 'addCls' : 'removeCls',
+        toggleIconCls = navCollapsed ? 'sa-arrows-right' : 'sa-arrows-left';
+
         var mainLogo = refs.mainLogo;
         var logoImg = mainLogo.el.dom.getElementsByTagName('img')[0];
         var logoText = mainLogo.el.dom.getElementsByClassName('logo-text')[0];
         var navItems = navigationList.el.dom.getElementsByClassName('x-navitem');
+        var toggleIcon = Ext.getCmp('main-navigation-toggle-btn');
+
+        Ext.suspendLayouts();
+        
+        toggleIcon.setIconCls('x-sa ' + toggleIconCls);
 
         mainLogo.animate({dynamic: true, duration: 500, to: {width: new_width}});
         Ext.fly(logoImg).animate({dynamic: true, duration: 500, to: newLogoImgStyle});
@@ -102,7 +77,7 @@ Ext.define('saas.view.main.MainController', {
         navigationList.el[ope]('nav-collapsed');
 
         navigationList.navCollapsed = navCollapsed;
-
+        Ext.resumeLayouts(true);
     },
 
     selectCompany: function(item) {

+ 4 - 6
frontend/saas-web/app/view/main/Navigation.scss

@@ -1,5 +1,6 @@
 $nav-font-size: 16px;
-$nav-font-color: #FFFFFF;
+$nav-font-color: #9697AC;
+$nav-font-color-over: #fff;
 
 .x-navpanel {
     overflow: visible;
@@ -48,8 +49,6 @@ $nav-font-color: #FFFFFF;
                                     display: flex;
     
                                     .nav-inner-icon {
-                                        opacity: 0.4;
-
                                         color: $nav-font-color;
                                         font-size: 24px;
                                         text-align: center;
@@ -67,7 +66,6 @@ $nav-font-color: #FFFFFF;
                                         color: $nav-font-color;
                                         letter-spacing: 4px;
                                         text-align: left;
-                                        opacity: 0.46;
                                         line-height: 60px;
                                         height: 60px;
                                     }
@@ -82,11 +80,11 @@ $nav-font-color: #FFFFFF;
                                 .nav-inner-wrap {
 
                                     .nav-inner-icon {
-                                        opacity: 1;
+                                        color: $nav-font-color-over;
                                     }
 
                                     .nav-inner-text {
-                                        opacity: 1;
+                                        color: $nav-font-color-over;
                                     }
                                 }
                             }

+ 1 - 4
frontend/saas-web/app/view/stock/inventory/EditDataList.js

@@ -433,14 +433,11 @@ Ext.define('saas.view.stock.inventory.EditDataList', {
                         initId: intValue
                     });
                 }
-                if(!localJson.data.outData && !localJson.data.inData){
-                    saas.util.BaseUtil.showErrorToast('没有需要生成的盘盈盘亏单');
-                }
             }
         })
         .catch(function(res) {
             console.error(res);
-            saas.util.BaseUtil.showToast('生成盘点单失败: ' + res.message);
+            saas.util.BaseUtil.showErrorToast('生成盘点单失败: ' + res.message);
         });    
     },
     onbuild:function(){

BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg


BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf


BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff


+ 25 - 13
frontend/saas-web/packages/font-saas/sass/etc/icons.scss

@@ -1,27 +1,39 @@
 
-.sa-purchase:before { content: "\e613"; }
+.sa-purchase:before { content: "\e800"; }
 
-.sa-xiu:before { content: "\e605"; }
+.sa-tuichu:before { content: "\e811"; }
 
-.sa-weibiaoti1:before { content: "\ef04"; }
+.sa-feedback:before { content: "\e810"; }
 
-.sa-document:before { content: "\e654"; }
+.sa-document:before { content: "\e804"; }
 
-.sa-switch-on:before { content: "\e622"; }
+.sa-switch-on:before { content: "\e807"; }
 
-.sa-edit:before { content: "\e6ec"; }
+.sa-edit:before { content: "\e806"; }
 
-.sa-sale:before { content: "\e638"; }
+.sa-help:before { content: "\e813"; }
 
-.sa-arrows-left:before { content: "\ef02"; }
+.sa-sale:before { content: "\e801"; }
 
-.sa-warehouse:before { content: "\e63c"; }
+.sa-userBook:before { content: "\e80b"; }
 
-.sa-setting:before { content: "\e64b"; }
+.sa-arrows-left:before { content: "\e809"; }
 
-.sa-saas:before { content: "\ef03"; }
+.sa-serviceOnline:before { content: "\e80c"; }
 
-.sa-money:before { content: "\e6fa"; }
+.sa-accountCenter:before { content: "\e812"; }
 
-.sa-arrows-right:before { content: "\ef01"; }
+.sa-warehouse:before { content: "\e802"; }
+
+.sa-setting:before { content: "\e803"; }
+
+.sa-saas:before { content: "\e808"; }
+
+.sa-money:before { content: "\e805"; }
+
+.sa-question:before { content: "\e80d"; }
+
+.sa-arrows-right:before { content: "\e80a"; }
+
+.sa-userGuite:before { content: "\e80e"; }
 

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 4
frontend/saas-web/packages/font-saas/sass/src/all.scss


BIN
frontend/saas-web/resources/images/default/logo-default.png


BIN
frontend/saas-web/resources/images/favicon.png


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff