Преглед на файлове

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

heqinwei преди 7 години
родител
ревизия
88b1a85fc7
променени са 71 файла, в които са добавени 779 реда и са изтрити 937 реда
  1. 2 2
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Operation.java
  2. 2 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdInOutDTO.java
  3. 1 5
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java
  4. 0 4
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdInOutMapper.java
  5. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOut.java
  6. 9 11
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java
  7. 14 28
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  8. 3 88
      applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml
  9. 2 2
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml
  10. 9 100
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutMapper.xml
  11. 2 2
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseListMapper.xml
  12. 7 91
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseMapper.xml
  13. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java
  14. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  15. 5 0
      applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml
  16. 2 2
      base-servers/gateway-server/src/main/java/com/usoftchina/saas/gateway/config/AuthFilter.java
  17. 5 0
      base-servers/gateway-server/src/main/resources/application.yml
  18. 1 1
      base-servers/socket/socket-server/src/main/resources/application.yml
  19. 18 0
      framework/core/src/main/java/com/usoftchina/saas/base/entity/CommonBaseEntity.java
  20. 154 38
      frontend/saas-web/app/util/BaseUtil.js
  21. 3 3
      frontend/saas-web/app/util/Errors.js
  22. 228 227
      frontend/saas-web/app/util/FormUtil.js
  23. 2 2
      frontend/saas-web/app/view/auth/LoginController.js
  24. 1 1
      frontend/saas-web/app/view/core/base/BasePanelController.js
  25. 11 11
      frontend/saas-web/app/view/core/base/GridPanel.js
  26. 1 1
      frontend/saas-web/app/view/core/chart/ChartBase.js
  27. 1 1
      frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js
  28. 1 1
      frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js
  29. 3 7
      frontend/saas-web/app/view/core/form/FormPanel.js
  30. 27 30
      frontend/saas-web/app/view/core/form/FormPanelController.js
  31. 3 5
      frontend/saas-web/app/view/core/form/field/DetailGridField.js
  32. 4 6
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  33. 1 1
      frontend/saas-web/app/view/core/query/QueryPanelController.js
  34. 2 2
      frontend/saas-web/app/view/core/report/ReportPanel.js
  35. 2 2
      frontend/saas-web/app/view/core/tab/Controller.js
  36. 8 8
      frontend/saas-web/app/view/document/bom/FormController.js
  37. 8 8
      frontend/saas-web/app/view/document/customer/FormController.js
  38. 8 8
      frontend/saas-web/app/view/document/employee/FormController.js
  39. 3 5
      frontend/saas-web/app/view/document/kind/ChildForm.js
  40. 3 6
      frontend/saas-web/app/view/document/kind/Kind.js
  41. 4 6
      frontend/saas-web/app/view/document/kind/KindController.js
  42. 8 8
      frontend/saas-web/app/view/document/product/FormController.js
  43. 8 8
      frontend/saas-web/app/view/document/vendor/FormController.js
  44. 1 1
      frontend/saas-web/app/view/home/InfoCard.js
  45. 1 1
      frontend/saas-web/app/view/main/Main.js
  46. 2 2
      frontend/saas-web/app/view/main/Navigation.js
  47. 1 1
      frontend/saas-web/app/view/money/othreceipts/FormPanelController.js
  48. 1 1
      frontend/saas-web/app/view/money/othspendings/FormPanelController.js
  49. 1 1
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  50. 5 5
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  51. 1 1
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  52. 5 5
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  53. 6 3
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  54. 4 4
      frontend/saas-web/app/view/purchase/purchase/FormPanelController.js
  55. 1 1
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js
  56. 4 4
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanelController.js
  57. 4 0
      frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js
  58. 5 5
      frontend/saas-web/app/view/sale/sale/FormPanelController.js
  59. 5 5
      frontend/saas-web/app/view/sale/saleOut/FormPanelController.js
  60. 2 2
      frontend/saas-web/app/view/stock/make/FormPanelController.js
  61. 5 8
      frontend/saas-web/app/view/sys/account/DataList.js
  62. 1 4
      frontend/saas-web/app/view/sys/config/FormPanel.js
  63. 6 9
      frontend/saas-web/app/view/sys/config/FormPanelController.js
  64. 1 1
      frontend/saas-web/app/view/sys/feedback/FormPanelController.js
  65. 7 9
      frontend/saas-web/app/view/sys/finish/DataList.js
  66. 1 1
      frontend/saas-web/app/view/sys/guide/FormPanel.js
  67. 9 11
      frontend/saas-web/app/view/sys/maxnumbers/DataList.js
  68. 4 7
      frontend/saas-web/app/view/sys/power/FormPanelController.js
  69. 6 9
      frontend/saas-web/app/view/sys/power/TreePanel.js
  70. 2 2
      frontend/saas-web/app/view/viewport/ViewportController.js
  71. 106 103
      frontend/saas-web/overrides/i18n.js

+ 2 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Operation.java

@@ -65,12 +65,12 @@ public enum Operation {
     /**
      * 转采购验收单
      */
-    TURNPURCCHECKIN("msg.TurnPurcCheckin", "msg.TurnPurcCheckinSuccess"),
+    PURCHASEIN("msg.TurnPurcCheckin", "msg.TurnPurcCheckinSuccess"),
 
     /**
      * 转采购验退单
      */
-    TURNPURCCHECKOUT("msg.TurnPurcCheckout", "msg.TurnPurcCheckoutSuccess"),
+    PURCHASEOUT("msg.TurnPurcCheckout", "msg.TurnPurcCheckoutSuccess"),
 
     /**
      * 转出货单

+ 2 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdInOutDTO.java

@@ -73,4 +73,6 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private String pi_remark;
 
+    private Long pi_ioid;
+
 }

+ 1 - 5
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java

@@ -17,15 +17,11 @@ public interface ProdIODetailMapper extends CommonBaseMapper<ProdIODetail> {
 
     int updateByPrimaryKeySelective(ProdIODetail record);
 
-    int updateByPrimaryKeyWithBLOBs(ProdIODetail record);
-
-    int updateByPrimaryKey(ProdIODetail record);
-
     void batchInsert(List<ProdIODetail> list);
 
     void batchUpdate(List<ProdIODetail> list);
 
-    void updatePurchaseYqty(Integer id);
+    void updatePurchaseYqty(Long id);
 
     List<ProdIODetail> selectByFK(Long id);
 

+ 0 - 4
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdInOutMapper.java

@@ -15,10 +15,6 @@ public interface ProdInOutMapper extends CommonBaseMapper<ProdInOut> {
 
     int updateByPrimaryKeySelective(ProdInOut record);
 
-    int updateByPrimaryKeyWithBLOBs(ProdInOut record);
-
-    int updateByPrimaryKey(ProdInOut record);
-
     Integer validateCodeWhenInsert(@Param("pi_inoutno") String pi_inoutno, @Param("companyId") Long companyId);
 
     Integer validateCodeWhenUpdate(@Param("pi_inoutno") String pi_inoutno, @Param("id") Long id,@Param("companyId") Long companyId);

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOut.java

@@ -68,4 +68,6 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
 
     private String pi_remark;
 
+    private Long pi_ioid;
+
 }

+ 9 - 11
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java

@@ -179,7 +179,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
             ProdIODetail detail = BeanMapper.map(item, ProdIODetail.class);
             detail.setUpdaterId(userId);
             detail.setUpdateTime(new Date());
-            detail.setUpdater(userName);
+//            detail.setUpdater(userName);
             if (StringUtils.isEmpty(detail.getId()) || "0".equals(detail.getId().toString())) {
                 detail.setCompanyId(companyId);
                 detail.setCreatorId(userId);
@@ -215,7 +215,6 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         updateYqty(prodInOut);
         //日志记录
         messageLogService.update(baseDTO);
-        messageLogService.customizeLog(baseDTO, Operation.TURNPURCCHECKOUT);
         return baseDTO;
     }
 
@@ -405,7 +404,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         if ("采购验收单".equals(prodInOut.getPi_class())){
             purchasedetailMapper.updatePurchaseYqty(prodInOut.getPi_puid());
         }else if ("采购验退单".equals(prodInOut.getPi_class())){
-            prodIODetailMapper.updatePurchaseYqty(prodInOut.getPi_puid());
+            prodIODetailMapper.updatePurchaseYqty(prodInOut.getPi_ioid());
         }
     }
 
@@ -444,13 +443,14 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         targetPi.setPi_vendname(sourcePi.getPi_vendname());
         targetPi.setPi_puid(sourcePi.getPi_puid());
         targetPi.setPi_pucode(sourcePi.getPi_pucode());
+        targetPi.setPi_ioid(sourcePi.getId());
         //设置公司id
         targetPi.setCompanyId(sourcePi.getCompanyId());
         targetPi.setCreateTime(new Date());
         targetPi.setCreatorId(userId);
-        targetPi.setCreator(userName);
+//        targetPi.setCreator(userName);
         targetPi.setUpdaterId(userId);
-        targetPi.setUpdater(userName);
+//        targetPi.setUpdater(userName);
         targetPi.setUpdateTime(new Date());
 
         //保存数据
@@ -485,9 +485,9 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                  targetPid.setCompanyId(sourcePid.getCompanyId());
                  targetPid.setCreateTime(new Date());
                  targetPid.setCreatorId(userId);
-                 targetPid.setCreator(userName);
+//                 targetPid.setCreator(userName);
                  targetPid.setUpdaterId(userId);
-                 targetPid.setUpdater(userName);
+//                 targetPid.setUpdater(userName);
                  targetPid.setUpdateTime(new Date());
                  //本次转单数
                  targetPid.setPd_outqty(pdInqty-pdYqty);
@@ -501,10 +501,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
 //        getDefaultWarehouseByProduct(pi_id);
         //采购验退单相关计算
         calcProdInout(pi_id,"采购验退单");
-        DocBaseDTO baseDTO = new DocBaseDTO();
-        baseDTO.setId(pi_id);
-        baseDTO.setCode(piInoutno);
-        baseDTO.setName("采购验退单");
+        DocBaseDTO baseDTO = new DocBaseDTO(pi_id, piInoutno, BillCodeSeq.PURCHASEOUT.getName());
+        messageLogService.customizeLog(baseDTO, Operation.PURCHASEOUT);
         return Result.success(baseDTO);
     }
 

+ 14 - 28
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

@@ -11,6 +11,7 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.po.BillCodeSeq;
+import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.document.api.ProductApi;
@@ -144,7 +145,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 detail.setCreateTime(new Date());
                 detail.setCreatorId(userId);
                 detail.setUpdaterId(userId);
-                detail.setUpdater(userName);
+//                detail.setUpdater(userName);
                 detail.setUpdateTime(new Date());
                 insertDetails.add(detail);
             }
@@ -170,12 +171,12 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
             detail.setPd_code(pu_code);
             detail.setPd_delivery(item.getPd_delivery()==null?purchase.getPu_delivery():item.getPd_delivery());
             detail.setUpdaterId(userId);
-            detail.setUpdater(userName);
+//            detail.setUpdater(userName);
             detail.setUpdateTime(new Date());
             if (StringUtils.isEmpty(detail.getId()) || "0".equals(detail.getId().toString())) {
                 detail.setCompanyId(companyId);
                 detail.setCreatorId(userId);
-                detail.setCreator(userName);
+//                detail.setCreator(userName);
                 detail.setCreateTime(new Date());
                 insertDetails.add(detail);
             } else {
@@ -309,7 +310,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         purchase.setPu_acceptstatuscode(Status.CLOSE.name());
         purchase.setPu_acceptstatus(Status.CLOSE.getDisplay());
         //更新更新人信息
-        purchase.setUpdater(BaseContextHolder.getUserName());
+//        purchase.setUpdater(BaseContextHolder.getUserName());
         purchase.setUpdaterId(BaseContextHolder.getUserId());
         purchase.setUpdateTime(new Date());
         purchaseMapper.updateByPrimaryKeySelective(purchase);
@@ -340,7 +341,6 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         Purchase purchase = purchaseMapper.selectByPrimaryKey(id);
         DocBaseDTO docBaseDTO = null;
         Double acceptqty=new Double(0),qty=new Double(0);
-
         if(!Status.CLOSE.name().equals(purchase.getPu_acceptstatuscode())){
             throw new BizException(BizExceptionCode.BIZ_OPEN);
         }
@@ -373,10 +373,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 purchase.setPu_acceptstatuscode(Status.TURNIN.name());
             }
             //更新更新人信息
-            purchase.setUpdater(BaseContextHolder.getUserName());
+//            purchase.setUpdater(BaseContextHolder.getUserName());
             purchase.setUpdaterId(BaseContextHolder.getUserId());
             purchase.setUpdateTime(new Date());
-
             purchaseMapper.updateByPrimaryKeySelective(purchase);
             docBaseDTO = getBaseDTOById(id);
             //日志
@@ -400,9 +399,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         Long userId = BaseContextHolder.getUserId();
         //人员名
         String userName = BaseContextHolder.getUserName();
-
         Purchase purchase = getMapper().selectByPrimaryKey(id);
-
         Integer count=0;
         double pdQty=0, pdYqty=0;
         //检查转单状态
@@ -411,9 +408,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         if ("CLOSED".equals(acceptstatus)){
             return Result.error(ExceptionCode.CLOSED_EXIST);
         }
-
         List<PurchaseDetail> purchaseDetails = purchasedetailMapper.selectByFK(id);
-
         //检查从表
         for (PurchaseDetail purchaseDetail : purchaseDetails) {
             pdQty = purchaseDetail.getPd_qty()==null?0:purchaseDetail.getPd_qty();
@@ -441,18 +436,15 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         prodInOut.setPi_vendname(purchase.getPu_vendname());
         prodInOut.setPi_puid(purchase.getId().intValue());
         prodInOut.setPi_pucode(purchase.getPu_code());
-
         //设置公司id
         prodInOut.setCompanyId(purchase.getCompanyId());
         prodInOut.setCreatorId(userId);
         prodInOut.setCreateTime(new Date());
-        prodInOut.setCreator(userName);
+//        prodInOut.setCreator(userName);
         prodInOut.setUpdaterId(userId);
-        prodInOut.setUpdater(userName);
+//        prodInOut.setUpdater(userName);
         prodInOut.setUpdateTime(new Date());
-
         prodInOutMapper.insertSelective(prodInOut);
-
         //插入验收单从表
         long pi_id = prodInOut.getId();
 
@@ -478,10 +470,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 prodIODetail.setCompanyId(purchaseDetail.getCompanyId());
                 prodIODetail.setCreatorId(userId);
                 prodIODetail.setCreateTime(new Date());
-                prodIODetail.setCreator(userName);
+//                prodIODetail.setCreator(userName);
                 prodIODetail.setUpdaterId(userId);
                 prodIODetail.setUpdateTime(new Date());
-                prodIODetail.setUpdater(userName);
+//                prodIODetail.setUpdater(userName);
                 //本次转单数
                 prodIODetail.setPd_inqty(pdQty-pdYqty);
                 prodIODetailMapper.insertSelective(prodIODetail);
@@ -491,14 +483,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
             }
         }
         //更新默认仓库
-        prodInOutService.getDefaultWarehouseByProduct(pi_id);
-
+//        prodInOutService.getDefaultWarehouseByProduct(pi_id);
         //采购验收单相关计算
         prodInOutService.calcProdInout(pi_id,"采购验收单");
-        DocBaseDTO baseDTO = new DocBaseDTO();
-        baseDTO.setId(pi_id);
-        baseDTO.setCode(piInoutno);
-        baseDTO.setName("采购验收单");
+        DocBaseDTO baseDTO = new DocBaseDTO(pi_id, piInoutno, BillCodeSeq.PURCHASEIN.getName());
+        messageLogService.customizeLog(baseDTO, Operation.PURCHASEIN);
         return Result.success(baseDTO);
     }
 
@@ -517,12 +506,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         purchase.setPu_acceptstatuscode(Status.UNAUDITED.name());
         purchase.setUpdateTime(new Date());
         purchase.setUpdaterId(BaseContextHolder.getUserId());
-        purchase.setUpdater(BaseContextHolder.getUserName());
+//        purchase.setUpdater(BaseContextHolder.getUserName());
        // setUpdateInfo(purchase);
         //更新存在字段
-        purchaseMapper.updateByPrimaryKeySelective(purchase);
-        //更新最新采购单价
-//        productApi.updateLatestPurchasePrice(id);
         //日志
         messageLogService.audit(docBaseDTO);
         return result;

+ 3 - 88
applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -465,91 +465,6 @@
     </set>
     where pd_id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.usoftchina.saas.purchase.po.ProdIODetail">
-    update prodiodetail
-    set pd_piid = #{pd_piid,jdbcType=INTEGER},
-      pd_inoutno = #{pd_inoutno,jdbcType=VARCHAR},
-      pd_piclass = #{pd_piclass,jdbcType=VARCHAR},
-      pd_pdno = #{pd_pdno,jdbcType=INTEGER},
-      pd_ordercode = #{pd_ordercode,jdbcType=VARCHAR},
-      pd_orderdetno = #{pd_orderdetno,jdbcType=INTEGER},
-      pd_prodid = #{pd_prodid,jdbcType=INTEGER},
-      pd_prodcode = #{pd_prodcode,jdbcType=VARCHAR},
-      pd_unit = #{pd_unit,jdbcType=VARCHAR},
-      pd_inqty = #{pd_inqty,jdbcType=DOUBLE},
-      pd_outqty = #{pd_outqty,jdbcType=DOUBLE},
-      pd_orderprice = #{pd_orderprice,jdbcType=DOUBLE},
-      pd_sendprice = #{pd_sendprice,jdbcType=DOUBLE},
-      pd_price = #{pd_price,jdbcType=DOUBLE},
-      pd_total = #{pd_total,jdbcType=DOUBLE},
-      pd_taxrate = #{pd_taxrate,jdbcType=DOUBLE},
-      pd_netprice = #{pd_netprice,jdbcType=DOUBLE},
-      pd_nettotal = #{pd_nettotal,jdbcType=DOUBLE},
-      pd_whid = #{pd_whid,jdbcType=INTEGER},
-      pd_whcode = #{pd_whcode,jdbcType=VARCHAR},
-      pd_whname = #{pd_whname,jdbcType=VARCHAR},
-      pd_inwhid = #{pd_inwhid,jdbcType=INTEGER},
-      pd_inwhcode = #{pd_inwhcode,jdbcType=VARCHAR},
-      pd_inwhname = #{pd_inwhname,jdbcType=VARCHAR},
-      pd_orderid = #{pd_orderid,jdbcType=INTEGER},
-      pd_sdid = #{pd_sdid,jdbcType=INTEGER},
-      pd_status = #{pd_status,jdbcType=INTEGER},
-      companyid = #{companyid,jdbcType=INTEGER},
-      updaterid = #{updaterid,jdbcType=INTEGER},
-      updatetime = #{updatetime,jdbcType=TIMESTAMP},
-      pd_text1 = #{pd_text1,jdbcType=VARCHAR},
-      pd_text2 = #{pd_text2,jdbcType=VARCHAR},
-      pd_text3 = #{pd_text3,jdbcType=VARCHAR},
-      pd_text4 = #{pd_text4,jdbcType=VARCHAR},
-      pd_text5 = #{pd_text5,jdbcType=VARCHAR},
-      pd_ym = #{pd_ym,jdbcType=INTEGER},
-      pd_yqty = #{pd_yqty,jdbcType=DOUBLE},
-      pd_remark = #{pd_remark,jdbcType=LONGVARCHAR},
-      pd_ioid = #{pd_ioid,jdbcType=INTEGER}
-    where pd_id = #{pd_id,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.purchase.po.ProdIODetail">
-    update prodiodetail
-    set pd_piid = #{pd_piid,jdbcType=INTEGER},
-      pd_inoutno = #{pd_inoutno,jdbcType=VARCHAR},
-      pd_piclass = #{pd_piclass,jdbcType=VARCHAR},
-      pd_pdno = #{pd_pdno,jdbcType=INTEGER},
-      pd_ordercode = #{pd_ordercode,jdbcType=VARCHAR},
-      pd_orderdetno = #{pd_orderdetno,jdbcType=INTEGER},
-      pd_prodid = #{pd_prodid,jdbcType=INTEGER},
-      pd_prodcode = #{pd_prodcode,jdbcType=VARCHAR},
-      pd_unit = #{pd_unit,jdbcType=VARCHAR},
-      pd_inqty = #{pd_inqty,jdbcType=DOUBLE},
-      pd_outqty = #{pd_outqty,jdbcType=DOUBLE},
-      pd_orderprice = #{pd_orderprice,jdbcType=DOUBLE},
-      pd_sendprice = #{pd_sendprice,jdbcType=DOUBLE},
-      pd_price = #{pd_price,jdbcType=DOUBLE},
-      pd_total = #{pd_total,jdbcType=DOUBLE},
-      pd_taxrate = #{pd_taxrate,jdbcType=DOUBLE},
-      pd_netprice = #{pd_netprice,jdbcType=DOUBLE},
-      pd_nettotal = #{pd_nettotal,jdbcType=DOUBLE},
-      pd_whid = #{pd_whid,jdbcType=INTEGER},
-      pd_whcode = #{pd_whcode,jdbcType=VARCHAR},
-      pd_whname = #{pd_whname,jdbcType=VARCHAR},
-      pd_inwhid = #{pd_inwhid,jdbcType=INTEGER},
-      pd_inwhcode = #{pd_inwhcode,jdbcType=VARCHAR},
-      pd_inwhname = #{pd_inwhname,jdbcType=VARCHAR},
-      pd_orderid = #{pd_orderid,jdbcType=INTEGER},
-      pd_sdid = #{pd_sdid,jdbcType=INTEGER},
-      pd_status = #{pd_status,jdbcType=INTEGER},
-      companyid = #{companyid,jdbcType=INTEGER},
-      updaterid = #{updaterid,jdbcType=INTEGER},
-      updatetime = #{updatetime,jdbcType=TIMESTAMP},
-      pd_text1 = #{pd_text1,jdbcType=VARCHAR},
-      pd_text2 = #{pd_text2,jdbcType=VARCHAR},
-      pd_text3 = #{pd_text3,jdbcType=VARCHAR},
-      pd_text4 = #{pd_text4,jdbcType=VARCHAR},
-      pd_text5 = #{pd_text5,jdbcType=VARCHAR},
-      pd_ym = #{pd_ym,jdbcType=INTEGER},
-      pd_yqty = #{pd_yqty,jdbcType=DOUBLE},
-      pd_ioid = #{pd_ioid,jdbcType=INTEGER}
-    where pd_id = #{pd_id,jdbcType=INTEGER}
-  </update>
   <insert id="batchInsert" parameterType="java.util.List" >
     insert into prodiodetail (pd_piid, pd_inoutno,
     pd_piclass, pd_pdno, pd_ordercode,
@@ -722,11 +637,11 @@
     </foreach>
   </update>
 
-  <update id="updatePurchaseYqty" parameterType="java.lang.Integer">
+  <update id="updatePurchaseYqty" parameterType="long">
   update prodiodetail a
   set a.pd_yqty =ifnull((select  b.pd_outqty  from  (select pd_ioid,sum(pd_outqty) pd_outqty from  prodiodetail left join prodinout on pd_piid = pi_id where pd_piclass='采购验退单'
-  and pi_puid=#{id,jdbcType=INTEGER}  GROUP BY pd_ioid) b where ifnull(b.pd_ioid ,0)= a.pd_id ),0)
-  where a.pd_piid = (select pi_id from prodinout where pi_puid=#{id,jdbcType=INTEGER} and pi_class='采购验收单')
+  and pi_ioid=#{id,jdbcType=INTEGER}  GROUP BY pd_ioid) b where ifnull(b.pd_ioid ,0)= a.pd_id ),0)
+  where a.pd_piid = #{id,jdbcType=INTEGER}
   </update>
 
 

+ 2 - 2
applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml

@@ -63,10 +63,10 @@
     <result column="companyid" property="companyId" jdbcType="BIGINT" />
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
     <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
-    <result column="updater" jdbcType="VARCHAR" property="updater" />
+    <!--<result column="updater" jdbcType="VARCHAR" property="updater" />-->
     <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
     <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
-    <result column="creator" property="creator" jdbcType="VARCHAR" />
+    <!--<result column="creator" property="creator" jdbcType="VARCHAR" />-->
     <result column="pd_text1" jdbcType="VARCHAR" property="pd_text1" />
     <result column="pd_text2" jdbcType="VARCHAR" property="pd_text2" />
     <result column="pd_text3" jdbcType="VARCHAR" property="pd_text3" />

+ 9 - 100
applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -27,10 +27,8 @@
     <result column="companyid" property="companyId" jdbcType="BIGINT" />
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
     <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
-    <result column="updater" jdbcType="VARCHAR" property="updater" />
     <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
     <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
-    <result column="creator" property="creator" jdbcType="VARCHAR" />
     <result column="pi_text1" jdbcType="VARCHAR" property="pi_text1" />
     <result column="pi_text2" jdbcType="VARCHAR" property="pi_text2" />
     <result column="pi_text3" jdbcType="VARCHAR" property="pi_text3" />
@@ -39,7 +37,7 @@
     <result column="pi_auditdate" jdbcType="TIMESTAMP" property="pi_auditdate" />
     <result column="pi_auditman" jdbcType="VARCHAR" property="pi_auditman" />
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
-
+    <result column="pi_ioid" jdbcType="INTEGER" property="pi_ioid" />
 
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.purchase.po.ProdInOut">
@@ -52,8 +50,8 @@
     pi_id, pi_inoutno, pi_class, pi_date, pi_vendid, pi_vendcode, pi_vendname, pi_custid, 
     pi_custcode, pi_custname, pi_puid, pi_pucode, pi_said, pi_sacode, pi_total, pi_recordmanid, 
     pi_recordman, pi_recorddate, pi_status, pi_statuscode, pi_printstatus, pi_printstatuscode, 
-    companyid, updaterid, updatetime,updater,creatorid,createtime,creator, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
-    pi_auditman,pi_remark
+    companyid, updaterid, updatetime,creatorid,createtime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
+    pi_auditman,pi_remark,pi_ioid
   </sql>
   <sql id="Blob_Column_List">
     pi_address
@@ -149,23 +147,15 @@
       <if test="updateTime != null" >
         updateTime,
       </if>
-      <if test="updater != null" >
-        updater,
-      </if>
       <if test="creatorId != null" >
         creatorId,
       </if>
       <if test="createTime != null" >
         createTime,
       </if>
-      <if test="creator != null" >
-        creator,
-      </if>
-
       <if test="pi_text1 != null">
         pi_text1,
       </if>
-
       <if test="pi_text2 != null">
         pi_text2,
       </if>
@@ -190,6 +180,9 @@
       <if test="pi_remark != null">
         pi_remark,
       </if>
+      <if test="pi_ioid != null">
+        pi_ioid,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
 
@@ -263,19 +256,12 @@
       <if test="updateTime != null" >
         #{updateTime,jdbcType=TIMESTAMP},
       </if>
-      <if test="updater != null" >
-        #{updater,jdbcType=VARCHAR},
-      </if>
       <if test="creatorId != null" >
         #{creatorId,jdbcType=INTEGER},
       </if>
       <if test="createTime != null" >
         #{createTime,jdbcType=TIMESTAMP},
       </if>
-      <if test="creator != null" >
-        #{creator,jdbcType=VARCHAR},
-      </if>
-
       <if test="pi_text1 != null">
         #{pi_text1,jdbcType=VARCHAR},
       </if>
@@ -303,7 +289,9 @@
       <if test="pi_remark != null">
         #{pi_remark,jdbcType=VARCHAR},
       </if>
-
+      <if test="pi_ioid != null">
+        #{pi_ioid,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
 
@@ -382,9 +370,6 @@
       <if test="updateTime != null" >
         updateTime = #{updateTime,jdbcType=TIMESTAMP},
       </if>
-      <if test="updater != null" >
-        updater = #{updater,jdbcType=VARCHAR},
-      </if>
       <if test="pi_text1 != null">
         pi_text1 = #{pi_text1,jdbcType=VARCHAR},
       </if>
@@ -415,82 +400,6 @@
     </set>
     where pi_id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.usoftchina.saas.purchase.po.ProdInOut">
-    update prodinout
-    set pi_inoutno = #{pi_inoutno,jdbcType=VARCHAR},
-      pi_class = #{pi_class,jdbcType=VARCHAR},
-      pi_date = #{pi_date,jdbcType=TIMESTAMP},
-      pi_vendid = #{pi_vendid,jdbcType=INTEGER},
-      pi_vendcode = #{pi_vendcode,jdbcType=VARCHAR},
-      pi_vendname = #{pi_vendname,jdbcType=VARCHAR},
-      pi_custid = #{pi_custid,jdbcType=INTEGER},
-      pi_custcode = #{pi_custcode,jdbcType=VARCHAR},
-      pi_custname = #{pi_custname,jdbcType=VARCHAR},
-      pi_puid = #{pi_puid,jdbcType=INTEGER},
-      pi_pucode = #{pi_pucode,jdbcType=VARCHAR},
-      pi_said = #{pi_said,jdbcType=INTEGER},
-      pi_sacode = #{pi_sacode,jdbcType=VARCHAR},
-      pi_total = #{pi_total,jdbcType=DOUBLE},
-      pi_recordmanid = #{pi_recordmanid,jdbcType=INTEGER},
-      pi_recordman = #{pi_recordman,jdbcType=VARCHAR},
-      pi_recorddate = #{createTime,jdbcType=TIMESTAMP},
-      pi_status = #{pi_status,jdbcType=VARCHAR},
-      pi_statuscode = #{pi_statuscode,jdbcType=VARCHAR},
-      pi_printstatus = #{pi_printstatus,jdbcType=VARCHAR},
-      pi_printstatuscode = #{pi_printstatuscode,jdbcType=VARCHAR},
-
-      companyid = #{companyId,jdbcType=INTEGER},
-      updaterId = #{updaterId,jdbcType=INTEGER},
-      updateTime = #{updateTime,jdbcType=TIMESTAMP},
-      updater = #{updater,jdbcType=VARCHAR},
-      pi_text1 = #{pi_text1,jdbcType=VARCHAR},
-      pi_text2 = #{pi_text2,jdbcType=VARCHAR},
-      pi_text3 = #{pi_text3,jdbcType=VARCHAR},
-      pi_text4 = #{pi_text4,jdbcType=VARCHAR},
-      pi_text5 = #{pi_text5,jdbcType=VARCHAR},
-      pi_address = #{pi_address,jdbcType=LONGVARCHAR},
-      pi_auditdate = #{pi_auditdate,jdbcType=TIMESTAMP},
-      pi_auditman = #{pi_auditman,jdbcType=VARCHAR},
-      pi_remark = #{pi_remark,jdbcType=VARCHAR}
-    where pi_id = #{pi_id,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.purchase.po.ProdInOut">
-    update prodinout
-    set pi_inoutno = #{pi_inoutno,jdbcType=VARCHAR},
-      pi_class = #{pi_class,jdbcType=VARCHAR},
-      pi_date = #{pi_date,jdbcType=TIMESTAMP},
-      pi_vendid = #{pi_vendid,jdbcType=INTEGER},
-      pi_vendcode = #{pi_vendcode,jdbcType=VARCHAR},
-      pi_vendname = #{pi_vendname,jdbcType=VARCHAR},
-      pi_custid = #{pi_custid,jdbcType=INTEGER},
-      pi_custcode = #{pi_custcode,jdbcType=VARCHAR},
-      pi_custname = #{pi_custname,jdbcType=VARCHAR},
-      pi_puid = #{pi_puid,jdbcType=INTEGER},
-      pi_pucode = #{pi_pucode,jdbcType=VARCHAR},
-      pi_said = #{pi_said,jdbcType=INTEGER},
-      pi_sacode = #{pi_sacode,jdbcType=VARCHAR},
-      pi_total = #{pi_total,jdbcType=DOUBLE},
-      pi_recordmanid = #{pi_recordmanid,jdbcType=INTEGER},
-      pi_recordman = #{pi_recordman,jdbcType=VARCHAR},
-      pi_recorddate = #{createTime,jdbcType=TIMESTAMP},
-      pi_status = #{pi_status,jdbcType=VARCHAR},
-      pi_statuscode = #{pi_statuscode,jdbcType=VARCHAR},
-      pi_printstatus = #{pi_printstatus,jdbcType=VARCHAR},
-      pi_printstatuscode = #{pi_printstatuscode,jdbcType=VARCHAR},
-      companyid = #{companyId,jdbcType=INTEGER},
-      updaterId = #{updaterId,jdbcType=INTEGER},
-      updateTime = #{updateTime,jdbcType=TIMESTAMP},
-      updater = #{updater,jdbcType=VARCHAR},
-      pi_text1 = #{pi_text1,jdbcType=VARCHAR},
-      pi_text2 = #{pi_text2,jdbcType=VARCHAR},
-      pi_text3 = #{pi_text3,jdbcType=VARCHAR},
-      pi_text4 = #{pi_text4,jdbcType=VARCHAR},
-      pi_text5 = #{pi_text5,jdbcType=VARCHAR},
-      pi_auditdate = #{pi_auditdate,jdbcType=TIMESTAMP},
-      pi_auditman = #{pi_auditman,jdbcType=VARCHAR},
-      pi_remark = #{pi_remark,jdbcType=VARCHAR}
-    where pi_id = #{id,jdbcType=INTEGER}
-  </update>
 
   <select id="validateCodeWhenInsert"  resultType="int">
     select count(1) from prodinout where pi_inoutno = #{pi_inoutno} and companyid = #{companyId}

+ 2 - 2
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseListMapper.xml

@@ -26,10 +26,10 @@
         <result column="companyid" property="companyId" jdbcType="BIGINT" />
         <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
         <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
-        <result column="updater" jdbcType="VARCHAR" property="updater" />
+        <!--<result column="updater" jdbcType="VARCHAR" property="updater" />-->
         <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
         <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
-        <result column="creator" property="creator" jdbcType="VARCHAR" />
+        <!--<result column="creator" property="creator" jdbcType="VARCHAR" />-->
         <result column="pu_text1" property="pu_text1" jdbcType="VARCHAR" />
         <result column="pu_text2" property="pu_text2" jdbcType="VARCHAR" />
         <result column="pu_text3" property="pu_text3" jdbcType="VARCHAR" />

+ 7 - 91
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseMapper.xml

@@ -27,10 +27,10 @@
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
     <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
 
-    <result column="updater" jdbcType="VARCHAR" property="updater" />
+    <!--<result column="updater" jdbcType="VARCHAR" property="updater" />-->
     <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
     <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
-    <result column="creator" property="creator" jdbcType="VARCHAR" />
+    <!--<result column="creator" property="creator" jdbcType="VARCHAR" />-->
 
     <result column="pu_text1" property="pu_text1" jdbcType="VARCHAR" />
     <result column="pu_text2" property="pu_text2" jdbcType="VARCHAR" />
@@ -46,7 +46,7 @@
     pu_id, pu_code, pu_date, pu_vendid, PU_VENDCODE, PU_VENDNAME, PU_BUYERID, PU_BUYERCODE, 
     PU_BUYERNAME, PU_DELIVERY, PU_TAXTOTAL, PU_TOTAL, PU_REMARK, PU_TOTALUPPER, PU_INDATE, 
     PU_PRINTSTATUS, PU_PRINTSTATUSCODE, PU_ACCEPTSTATUSCODE, PU_ACCEPTSTATUS, PU_STATUSCODE, 
-    PU_STATUS, companyid, updaterId, updateTime,updater,creatorid,createtime,creator, pu_text1, pu_text2, pu_text3, pu_text4,
+    PU_STATUS, companyid, updaterId, updateTime,creatorid,createtime, pu_text1, pu_text2, pu_text3, pu_text4,
     pu_text5
   </sql>
   <sql id="Blob_Column_List" >
@@ -64,34 +64,7 @@
     delete from purchase
     where pu_id = #{id}
   </delete>
-  <insert id="insert" parameterType="com.usoftchina.saas.purchase.po.Purchase" >
-    insert into purchase (pu_id, pu_code, pu_date, 
-      pu_vendid, PU_VENDCODE, PU_VENDNAME, 
-      PU_BUYERID, PU_BUYERCODE, PU_BUYERNAME, 
-      PU_DELIVERY, PU_TAXTOTAL, PU_TOTAL, 
-      PU_REMARK, PU_TOTALUPPER, PU_INDATE, 
-      PU_PRINTSTATUS, PU_PRINTSTATUSCODE, PU_ACCEPTSTATUSCODE, 
-      PU_ACCEPTSTATUS, PU_STATUSCODE, PU_STATUS, 
-      companyid, updaterId, updateTime,
-      ,updater,creatorid,createtime,creator
-      pu_text1, pu_text2, pu_text3, 
-      pu_text4, pu_text5, PU_SHIPADDRESSCODE
-      )
-    values (#{id,jdbcType=INTEGER}, #{puCode,jdbcType=VARCHAR}, #{puDate,jdbcType=TIMESTAMP},
-      #{puVendid,jdbcType=INTEGER}, #{puVendcode,jdbcType=VARCHAR}, #{puVendname,jdbcType=VARCHAR}, 
-      #{puBuyerid,jdbcType=INTEGER}, #{puBuyercode,jdbcType=VARCHAR}, #{puBuyername,jdbcType=VARCHAR}, 
-      #{puDelivery,jdbcType=TIMESTAMP}, #{puTaxtotal,jdbcType=DOUBLE}, #{puTotal,jdbcType=DOUBLE}, 
-      #{puRemark,jdbcType=VARCHAR}, #{puTotalupper,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
-      #{puPrintstatus,jdbcType=VARCHAR}, #{puPrintstatuscode,jdbcType=VARCHAR}, #{puAcceptstatuscode,jdbcType=VARCHAR}, 
-      #{puAcceptstatus,jdbcType=VARCHAR}, #{puStatuscode,jdbcType=VARCHAR}, #{puStatus,jdbcType=VARCHAR}, 
-      #{companyId,jdbcType=INTEGER}, #{updaterId,jdbcType=INTEGER}, #{updateTime,jdbcType=TIMESTAMP},
 
-      #{updater,jdbcType=VARCHAR}, #{creatorid,jdbcType=INTEGER}, #{createtime,jdbcType=TIMESTAMP}, #{creator,jdbcType=VARCHAR},
-
-      #{puText1,jdbcType=VARCHAR}, #{puText2,jdbcType=VARCHAR}, #{puText3,jdbcType=VARCHAR}, 
-      #{puText4,jdbcType=VARCHAR}, #{puText5,jdbcType=VARCHAR}, #{puShipaddresscode,jdbcType=LONGVARCHAR}
-      )
-  </insert>
   <insert id="insertSelective" parameterType="com.usoftchina.saas.purchase.po.Purchase" >
     <selectKey resultType="java.lang.Long" keyProperty="id">
       SELECT LAST_INSERT_ID() AS ID
@@ -167,17 +140,12 @@
       <if test="updateTime != null" >
         updateTime,
       </if>
-
-      <if test="updater != null" >
-        updater,
-      </if><if test="creatorId != null" >
+      <if test="creatorId != null" >
       creatorId,
-      </if><if test="createTime != null" >
+      </if>
+      <if test="createTime != null" >
       createTime,
-      </if><if test="creator != null" >
-      creator,
       </if>
-
       <if test="pu_text1 != null" >
         pu_text1,
       </if>
@@ -268,17 +236,11 @@
         #{updateTime,jdbcType=TIMESTAMP},
       </if>
 
-      <if test="updater != null" >
-        #{updater,jdbcType=VARCHAR},
-      </if><if test="creatorId != null" >
+      <if test="creatorId != null" >
        #{creatorId,jdbcType=INTEGER},
       </if><if test="createTime != null" >
        #{createTime,jdbcType=TIMESTAMP},
-      </if><if test="creator != null" >
-       #{creator,jdbcType=VARCHAR},
       </if>
-
-
       <if test="pu_text1 != null" >
         #{pu_text1,jdbcType=VARCHAR},
       </if>
@@ -368,15 +330,9 @@
       <if test="updaterId != null" >
         updaterId = #{updaterId,jdbcType=INTEGER},
       </if>
-
       <if test="updateTime != null" >
         updateTime = #{updateTime,jdbcType=TIMESTAMP},
       </if>
-
-      <if test="updater != null" >
-        updater = #{updater,jdbcType=VARCHAR},
-      </if>
-
       <if test="pu_text1 != null" >
         pu_text1 = #{pu_text1,jdbcType=VARCHAR},
       </if>
@@ -398,39 +354,6 @@
     </set>
     where pu_id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.purchase.po.Purchase" >
-    update purchase
-    set pu_code = #{pu_code,jdbcType=VARCHAR},
-      pu_date = #{pu_date,jdbcType=TIMESTAMP},
-      pu_vendid = #{pu_vendid,jdbcType=INTEGER},
-      PU_VENDCODE = #{pu_vendcode,jdbcType=VARCHAR},
-      PU_VENDNAME = #{pu_vendname,jdbcType=VARCHAR},
-      PU_BUYERID = #{pu_buyerid,jdbcType=INTEGER},
-      PU_BUYERCODE = #{pu_buyercode,jdbcType=VARCHAR},
-      PU_BUYERNAME = #{pu_buyername,jdbcType=VARCHAR},
-      PU_DELIVERY = #{pu_delivery,jdbcType=TIMESTAMP},
-      PU_TAXTOTAL = #{pu_taxtotal,jdbcType=DOUBLE},
-      PU_TOTAL = #{pu_total,jdbcType=DOUBLE},
-      PU_REMARK = #{pu_remark,jdbcType=VARCHAR},
-      PU_TOTALUPPER = #{pu_totalupper,jdbcType=VARCHAR},
-      PU_INDATE = #{createTime,jdbcType=TIMESTAMP},
-      PU_PRINTSTATUS = #{pu_printstatus,jdbcType=VARCHAR},
-      PU_PRINTSTATUSCODE = #{pu_printstatuscode,jdbcType=VARCHAR},
-      PU_ACCEPTSTATUSCODE = #{pu_acceptstatuscode,jdbcType=VARCHAR},
-      PU_ACCEPTSTATUS = #{pu_acceptstatus,jdbcType=VARCHAR},
-      PU_STATUSCODE = #{pu_statuscode,jdbcType=VARCHAR},
-      PU_STATUS = #{pu_status,jdbcType=VARCHAR},
-      companyid = #{companyId,jdbcType=INTEGER},
-      updaterId = #{updaterId,jdbcType=INTEGER},
-      updateTime = #{updateTime,jdbcType=TIMESTAMP},
-      updater = #{updater,jdbcType=VARCHAR},
-      pu_text1 = #{pu_text1,jdbcType=VARCHAR},
-      pu_text2 = #{pu_text2,jdbcType=VARCHAR},
-      pu_text3 = #{pu_text3,jdbcType=VARCHAR},
-      pu_text4 = #{pu_text4,jdbcType=VARCHAR},
-      pu_text5 = #{pu_text5,jdbcType=VARCHAR}
-    where pu_id = #{id,jdbcType=INTEGER}
-  </update>
   <select id="validateAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
     select GROUP_CONCAT(pu_code) from purchase where pu_statuscode='AUDITED' and pu_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
@@ -446,13 +369,6 @@
   <select id="validateUnAudit" parameterType="long" resultType="java.lang.String">
     select pu_code from purchase where pu_id = #{pu_id} and IFNULL(pu_statuscode,'UNAUDITED')='UNAUDITED'
   </select>
-  <!--<select id="selectByTest" resultMap="BaseResultMap" parameterType="string" >
-    select * from purchase <where>
-    <if test="_parameter != null">
-       ${value}
-    </if>
-  </where>
-  </select>-->
   <select id="validateCodeWhenInsert" resultType="int">
     select count(1) from purchase where pu_code = #{code} and companyId =#{companyId}
   </select>

+ 2 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java

@@ -40,4 +40,6 @@ public interface SaleMapper extends CommonBaseMapper<Sale> {
     void updateNetTotal(Long id);
 
     Integer checkSendStatus(Long id);
+
+    void updateCreator(@Param("userId") Long userId, @Param("userName") String userName, @Param("id") Long id);
 }

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

@@ -100,6 +100,7 @@ public class SaleServiceImpl implements SaleService{
         Long companyId = BaseContextHolder.getCompanyId();
         //人员Id
         Long userId = BaseContextHolder.getUserId();
+        String name = BaseContextHolder.getUserName();
         //获取主表信息
         SaleDTO main = formdata.getMain();
         List<SaleDetailDTO> items = formdata.getItems();
@@ -125,6 +126,7 @@ public class SaleServiceImpl implements SaleService{
             //插入操作
             saleMapper.insertSelective(sale);
             sa_id = sale.getId();
+            saleMapper.updateCreator(userId, name, sa_id);
             //添加从表传输对象
             for (SaleDetailDTO item : items) {
                 SaleDetail detail = BeanMapper.map(item, SaleDetail.class);

+ 5 - 0
applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml

@@ -33,6 +33,8 @@
     <result column="sa_seller" property="sa_seller" jdbcType="VARCHAR" />
     <result column="sa_sellercode" property="sa_sellercode" jdbcType="VARCHAR" />
     <result column="sa_date" property="sa_date" jdbcType="TIMESTAMP"/>
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Base_Column_List" >
     sa_id, sa_code, sa_custid, sa_custcode, sa_custname, sa_toplace, sa_total, sa_totalupper, 
@@ -419,4 +421,7 @@
     select count(1) from saledetail where sd_said = #{id}
     and ifnull(sd_yqty, 0) > 0;
   </select>
+  <update id="updateCreator">
+    update sale set creatorId = #{userId} , creatorName=#{userName} where sa_id=#{id}
+  </update>
 </mapper>

+ 2 - 2
base-servers/gateway-server/src/main/java/com/usoftchina/saas/gateway/config/AuthFilter.java

@@ -104,8 +104,8 @@ public class AuthFilter implements GlobalFilter, Ordered {
      * @return
      */
     private boolean isIgnore(ServerHttpRequest request) {
-        String path = request.getPath().value();
-        return authConfig.getIgnores().stream().anyMatch(ignore -> ignore.equals(path));
+        return authConfig.getIgnores().stream().anyMatch(ignore ->
+                new AntPathRequestMatcher(ignore).matches(request));
     }
 
     private String getAuthHeaderToken(ServerHttpRequest request) {

+ 5 - 0
base-servers/gateway-server/src/main/resources/application.yml

@@ -104,6 +104,10 @@ spring:
         - Path=/api/commons/**
         filters:
         - RewritePath=/api/commons/(?<segment>.*), /$\{segment}
+      - id: SOCKET-SERVER
+        uri: lb:ws://SOCKET-SERVER
+        predicates:
+        - Path=/ws/**
   redis:
     host: 192.168.253.12
     port: 6379
@@ -178,3 +182,4 @@ auth:
     - /api/auth/sso/callback
     - /api/account/account/register
     - /api/auth/info
+    - /ws/**

+ 1 - 1
base-servers/socket/socket-server/src/main/resources/application.yml

@@ -40,7 +40,7 @@ eureka:
   client:
     registryFetchIntervalSeconds: 5
     serviceUrl:
-      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@127.0.0.1:8500/eureka/
 server:
   port: 8680
   tomcat:

+ 18 - 0
framework/core/src/main/java/com/usoftchina/saas/base/entity/CommonBaseEntity.java

@@ -16,6 +16,24 @@ public abstract class CommonBaseEntity extends BaseEntity<Long> {
     protected Long creatorId;
     protected Date updateTime;
     protected Long updaterId;
+    protected String creatorName;
+    protected String updaterName;
+
+    public String getCreatorName() {
+        return creatorName;
+    }
+
+    public void setCreatorName(String creatorName) {
+        this.creatorName = creatorName;
+    }
+
+    public String getUpdaterName() {
+        return updaterName;
+    }
+
+    public void setUpdaterName(String updaterName) {
+        this.updaterName = updaterName;
+    }
 
     @Override
     public Long getId() {

+ 154 - 38
frontend/saas-web/app/util/BaseUtil.js

@@ -1,42 +1,158 @@
 Ext.define('saas.util.BaseUtil', {
 
-    /**
-     * 发起Ajax请求
-     * @param config: 请求参数
-     */
-    request: function (config) {
-        var url = config.url,
-            params = config.params,
-            async = config.async || true,
-            method = config.method || 'GET',
-            timeout = config.timeout || 8000,
-            defaultHeaders = {
-                'Access-Control-Allow-Origin': '*',
-                "Content-Type": 'application/json;charset=UTF-8' 
-            };
-        return new Ext.Promise(function (resolve, reject) {
-            Ext.Ajax.request({
-                url: url,
-                params: params,
-                async: async,
-                method: method,
-                timeout: timeout,
-                headers: Ext.apply(defaultHeaders, config.headers),
-                success: function (response, opts) {
-                    var res = Ext.decode(response.responseText);
-                    if(res.success) {
-                        return resolve(res);
-                    }else {
-                        console.error('server request failure with code ' + res.code + '.');
-                        console.error('failure message: ' + res.message);
-                        return reject(res);
-                    }
-                },
-                failure: function (response, opts) {
-                    console.error('server-side failure with status code ' + response);
-                    return reject(response);
-                }
+    statics: {
+
+        /**
+         * 打开/切换到新页签
+         * @param xtype: view xtype
+         * @param title: 标题
+         * @param id: id
+         * @param config: 绑定到view的其他配置
+         */
+        openTab: function (xtype, title, id, config) {
+            var mainTab = Ext.getCmp('main-tab-panel');
+            var panel = mainTab.query('[tabId="' + id + '"]')[0];
+            if (!panel) {
+                panel = Ext.create('saas.view.core.tab.Panel', {
+                    tabId: id,
+                    title: title,
+                    viewType: xtype,
+                    viewConfig: config
+                });
+
+                Ext.suspendLayouts();
+                mainTab.setActiveTab(mainTab.add(panel));
+                Ext.resumeLayouts(true);
+            } else {
+                panel.viewConfig = config;
+                mainTab.setActiveTab(panel);
+            }
+        },
+
+        /**
+         * 重设tab标题
+         */
+        refreshTabTitle: function (id, title) {
+            var currentTab = this.getCurrentTab();
+            currentTab.tabId = id;
+            currentTab.setTitle(title);
+        },
+
+        /**
+         * 获得当前Tab
+         */
+        getCurrentTab: function () {
+            var mainTab = Ext.getCmp('main-tab-panel');
+            var currentTab = mainTab.getActiveTab();
+
+            return currentTab;
+        },
+
+        /**
+         * 显示toast提示(无需用户操作)
+         * @param content: 内容
+         * @param title: 标题
+         * 
+         */
+        showToast: function (content, title) {
+            Ext.toast({
+                html: content,
+                title: title,
+                closable: false,
+                align: 't',
+                slideDUration: 400,
+                maxWidth: 400
+            });
+        },
+
+        /**
+         * 显示警告(需要选择是、否)
+         * @param title: 标题
+         * @param message: 内容
+         * @return : Promise
+         */
+        showConfirm: function (title, message) {
+            return new Ext.Promise(function (resolve, reject) {
+                Ext.MessageBox.confirm(title, message, function (buttonId) {
+                    return resolve(buttonId);
+                });
+            })
+        },
+
+        warnMsg: function (msg, fn) {
+            Ext.MessageBox.show({
+                title: '提示',
+                msg: msg,
+                buttons: Ext.Msg.YESNO,
+                icon: Ext.Msg.WARNING,
+                fn: fn
+            });
+        },
+
+        deleteWarn: function (msg, fn) {
+            Ext.MessageBox.show({
+                title: '提示',
+                msg: msg || '确定要删除当前表单?',
+                buttons: Ext.Msg.YESNO,
+                icon: Ext.Msg.WARNING,
+                fn: fn,
+                renderTo: Ext.getCmp('main-tab-panel').getActiveTab().getEl()
             });
-        })
-    },
+        },
+
+        /**
+         * 判断字符串是否日期字符串
+         * 需要满足格式 yyyy-MM-dd hh:mm:ss
+         * 或者yyyy-M-d h:m:s
+         * @param str: 字符串
+         * @returns Boolean
+         */
+        isDateString: function (str) {
+            return (/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/).test(str);
+        },
+
+        getCurrentUse: function () {
+            return saas.util.State.get('session').account;
+        },
+
+        /**
+         * 发起Ajax请求
+         * @param config: 请求参数
+         */
+        request: function (config) {
+            var url = config.url,
+                params = config.params,
+                async = config.async || true,
+                    method = config.method || 'GET',
+                    timeout = config.timeout || 8000,
+                    defaultHeaders = {
+                        'Access-Control-Allow-Origin': '*',
+                        "Content-Type": 'application/json;charset=UTF-8'
+                    };
+            return new Ext.Promise(function (resolve, reject) {
+                Ext.Ajax.request({
+                    url: url,
+                    params: params,
+                    async: async,
+                    method: method,
+                    timeout: timeout,
+                    headers: Ext.apply(defaultHeaders, config.headers),
+                    success: function (response, opts) {
+                        var res = Ext.decode(response.responseText);
+                        if (res.success) {
+                            return resolve(res);
+                        } else {
+                            console.error('server request failure with code ' + res.code + '.');
+                            console.error('failure message: ' + res.message);
+                            return reject(res);
+                        }
+                    },
+                    failure: function (response, opts) {
+                        console.error('server-side failure with status code ' + response);
+                        return reject(response);
+                    }
+                });
+            })
+        },
+    }
 });

+ 3 - 3
frontend/saas-web/app/util/Errors.js

@@ -42,16 +42,16 @@ Ext.define('saas.util.Errors', {
                 if (error.code === -32096) {    // READONLY_SESSION
                     // The session is read-only (demo version), let's display a temporary message
                     // and return false since this exception should not be considered as an error.
-                    showToast(error.message);
+                    saas.util.BaseUtil.showToast(error.message);
                     return false;
                 }
                 if (error.code === -32001 && form) {
                     form.setErrors(this.toForm(error));
                 } else {
-                    showToast(error.name + ' Error:' + error.message);
+                    saas.util.BaseUtil.showToast(error.name + ' Error:' + error.message);
                 }
             } else if (Ext.isString(error)) {
-                showToast('Error:' + error);
+                saas.util.BaseUtil.showToast('Error:' + error);
             }
 
             return true;

+ 228 - 227
frontend/saas-web/app/util/FormUtil.js

@@ -1,270 +1,271 @@
 Ext.define('saas.util.FormUtil', {
 
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    statics: {
 
-    // 请求页面组件接口模板
-    baseUrl: '/api/ui/co_view/config?name={viewName}',
-    // 模板替换正则
-    urlRe: /(.*){viewName}(.*)/g,
-    
-    /**
-     * 获得form的字段配置
-     * @param form: form组件
-     * @param url: url
-     */
-    setItems: function(form) {
-        var me = this,
-        viewName = form.viewName,
-        defaultItems = form.defaultItems,
-        brr = [],
-        formModel = form.getViewModel(),
-        url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
-        
-        brr = brr.concat(form.defaultItems);
+        // 请求页面组件接口模板
+        baseUrl: '/api/ui/co_view/config?name={viewName}',
+        // 模板替换正则
+        urlRe: /(.*){viewName}(.*)/g,
 
-        this.BaseUtil.request({url, async: false})
-        .then(function(res) {
-            if(res.success) {
-                var config = res.data || true, items = defaultItems || [];
-                if(config) {
-                    var cusItems = config.items || [];
-                    Ext.Array.each(cusItems, function(cusItem) {
-                        var item = items.find(function(item) {
-                            return item.name == cusItem.name;
-                        });
-                        Ext.apply(item, cusItem);
-                    });
-                    Ext.Array.each(items, function(item) {
-
-                        // 设置必填
-                        if(item.allowBlank==false){
-                            // TODO 需要判断类型
-                            item.beforeLabelTextTpl = "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>";
-                        }
+        /**
+         * 获得form的字段配置
+         * @param form: form组件
+         * @param url: url
+         */
+        setItems: function(form) {
+            var me = this,
+            viewName = form.viewName,
+            defaultItems = form.defaultItems,
+            brr = [],
+            formModel = form.getViewModel(),
+            url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
+            
+            brr = brr.concat(form.defaultItems);
 
-                        if(item.xtype == 'textfield') {
-                            Ext.applyIf(item, {
-                                maxLength: 50
-                            });
-                        }
-                        
-                        if(item.xtype == 'datefield') {
-                            Ext.applyIf(item, {
-                                editable: false,
-                                format: 'Y-m-d'
+            saas.util.BaseUtil.request({url, async: false})
+            .then(function(res) {
+                if(res.success) {
+                    var config = res.data || true, items = defaultItems || [];
+                    if(config) {
+                        var cusItems = config.items || [];
+                        Ext.Array.each(cusItems, function(cusItem) {
+                            var item = items.find(function(item) {
+                                return item.name == cusItem.name;
                             });
-                        }
+                            Ext.apply(item, cusItem);
+                        });
+                        Ext.Array.each(items, function(item) {
 
-                        if(item.xtype == 'numberfield') {
-                            Ext.applyIf(item, {
-                                hideTrigger: true, // 隐藏trigger
-                                mouseWheelEnabled: false // 取消滚轮事件
-                            });
-                            // 设置默认值为0
-                            formModel.set(item.name, 0);
-                        }
+                            // 设置必填
+                            if(item.allowBlank==false){
+                                // TODO 需要判断类型
+                                item.beforeLabelTextTpl = "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>";
+                            }
 
-                        // 如果是从表为其绑定store
-                        if(item.xtype == 'detailGridField') {
-                            var index = form.detailCount;
-                            var columns = item.columns,
-                            cnames = columns.filter(function(c) {
-                                return c.dataIndex && !c.ignore;
-                            }).map(function(c) {
-                                return c.dataIndex
-                            }),
-                            defaultValueColumns = {};
+                            if(item.xtype == 'textfield') {
+                                Ext.applyIf(item, {
+                                    maxLength: 50
+                                });
+                            }
+                            
+                            if(item.xtype == 'datefield') {
+                                Ext.applyIf(item, {
+                                    editable: false,
+                                    format: 'Y-m-d'
+                                });
+                            }
 
-                            Ext.Array.each(columns, function(c) {
+                            if(item.xtype == 'numberfield') {
+                                Ext.applyIf(item, {
+                                    hideTrigger: true, // 隐藏trigger
+                                    mouseWheelEnabled: false // 取消滚轮事件
+                                });
+                                // 设置默认值为0
+                                formModel.set(item.name, 0);
+                            }
 
-                                if(c.dataIndex && c.defaultValue) {
-                                    defaultValueColumns[c.dataIndex] = c.defaultValue;
-                                }
+                            // 如果是从表为其绑定store
+                            if(item.xtype == 'detailGridField') {
+                                var index = form.detailCount;
+                                var columns = item.columns,
+                                cnames = columns.filter(function(c) {
+                                    return c.dataIndex && !c.ignore;
+                                }).map(function(c) {
+                                    return c.dataIndex
+                                }),
+                                defaultValueColumns = {};
 
-                                // 不可锁定
-                                Ext.applyIf(c, {
-                                    lockable: false,
-                                    width: 120
-                                });
+                                Ext.Array.each(columns, function(c) {
 
-                                //必填
-                                Ext.applyIf(c, {
-                                    allowBlank: true
-                                });
-                                if(!c.allowBlank){
-                                    c.cls = 'x-grid-necessary';
-                                }
+                                    if(c.dataIndex && c.defaultValue) {
+                                        defaultValueColumns[c.dataIndex] = c.defaultValue;
+                                    }
 
-                                if(c.xtype == 'textfield') {
-                                    Ext.applyIf(c, {
-                                        maxLength: 50
-                                    });
-                                }else if(c.xtype == 'datecolumn') {
+                                    // 不可锁定
                                     Ext.applyIf(c, {
-                                        format: 'Y-m-d'
+                                        lockable: false,
+                                        width: 120
                                     });
-                                }else if(c.xtype == 'numbercolumn') {
+
+                                    //必填
                                     Ext.applyIf(c, {
-                                        align: 'end'
+                                        allowBlank: true
                                     });
-                                }
-                                
-                                var editor = c.editor;
-                                if(editor) {
-                                    Ext.applyIf(editor, {
-                                        selectOnFocus: true
-                                    });
-                                    if(editor.xtype == 'numberfield') {
-                                        Ext.applyIf(editor, {
-                                            hideTrigger: true, // 隐藏trigger
-                                            mouseWheelEnabled: false // 取消滚轮事件
+                                    if(!c.allowBlank){
+                                        c.cls = 'x-grid-necessary';
+                                    }
+
+                                    if(c.xtype == 'textfield') {
+                                        Ext.applyIf(c, {
+                                            maxLength: 50
                                         });
-                                    }else if(editor.xtype == 'datefield') {
-                                        Ext.apply(editor, {
+                                    }else if(c.xtype == 'datecolumn') {
+                                        Ext.applyIf(c, {
                                             format: 'Y-m-d'
                                         });
+                                    }else if(c.xtype == 'numbercolumn') {
+                                        Ext.applyIf(c, {
+                                            align: 'end'
+                                        });
+                                    }
+                                    
+                                    var editor = c.editor;
+                                    if(editor) {
                                         Ext.applyIf(editor, {
-                                            editable: false
+                                            selectOnFocus: true
                                         });
+                                        if(editor.xtype == 'numberfield') {
+                                            Ext.applyIf(editor, {
+                                                hideTrigger: true, // 隐藏trigger
+                                                mouseWheelEnabled: false // 取消滚轮事件
+                                            });
+                                        }else if(editor.xtype == 'datefield') {
+                                            Ext.apply(editor, {
+                                                format: 'Y-m-d'
+                                            });
+                                            Ext.applyIf(editor, {
+                                                editable: false
+                                            });
+                                        }
                                     }
-                                }
-                            });
-
-                            if(columns[columns.length - 1].flex != 1) {
-                                columns.push({
-                                    flex: 1,
-                                    allowBlank: true
                                 });
-                            }
 
-                            cnames.push(item.detnoColumn);
-
-                            formModel.set('detail' + index + '.detailBindFields', cnames);
-                            item.bind = {
-                                store: '{detail' + index + '.detailStore}'
-                            };     
-                            formModel.set('detail' + index + '.detailStore', Ext.create('Ext.data.Store', {
-                                model:item.storeModel,
-                                data: [],
-                                listeners: {
-                                    add: function(store, records, index, eOpts) {
-                                        Ext.Array.each(records, function(r) {
-                                            for(k in defaultValueColumns) {
-                                                r.set(k, defaultValueColumns[k]);
-                                            }
-                                            r.commit();
-                                        });
-                                    }
+                                if(columns[columns.length - 1].flex != 1) {
+                                    columns.push({
+                                        flex: 1,
+                                        allowBlank: true
+                                    });
                                 }
-                            }));
 
-                            form.detailCount++;
-                        }
-                    });
-                }
-                return form.addItems(items);
-            }else {
-                return []
-            }
-        })
-        .then(function(items) {
-            form.fireEvent('afterSetItems', form, items);
-        })
-        .then(function() {
-            me.loadData(form);
-        })
-        .catch(function(response) {
-            showToast('错误:' + response.message);
-            console.error(response);
-        });
+                                cnames.push(item.detnoColumn);
 
-    },
+                                formModel.set('detail' + index + '.detailBindFields', cnames);
+                                item.bind = {
+                                    store: '{detail' + index + '.detailStore}'
+                                };     
+                                formModel.set('detail' + index + '.detailStore', Ext.create('Ext.data.Store', {
+                                    model:item.storeModel,
+                                    data: [],
+                                    listeners: {
+                                        add: function(store, records, index, eOpts) {
+                                            Ext.Array.each(records, function(r) {
+                                                for(k in defaultValueColumns) {
+                                                    r.set(k, defaultValueColumns[k]);
+                                                }
+                                                r.commit();
+                                            });
+                                        }
+                                    }
+                                }));
 
-    loadData: function(form) {
-        var me = this;
-        form.setLoading(true);
-        if(form.initId && form.initId!=0) {
-            var url = form._readUrl + form.initId;
-            me.BaseUtil.request({url })
-            .then(function(res) {
-                form.setLoading(false);
-                if(res.success) {
-                    var d = res.data;
-                    var o = {
-                        main: d.main
-                    };
-                    if(d.hasOwnProperty('items')) {
-                        o.detail0 = d.items;
-                    }else {
-                        var idx = 1;
-                        while(d.hasOwnProperty('items' + idx)) {
-                            o['detail' + (idx - 1)] = d['items' + idx];
-                            idx++;
-                        }
+                                form.detailCount++;
+                            }
+                        });
                     }
-                    form.initFormData(o);
-                    form.fireEvent('load', form, o);
+                    return form.addItems(items);
+                }else {
+                    return []
                 }
             })
+            .then(function(items) {
+                form.fireEvent('afterSetItems', form, items);
+            })
+            .then(function() {
+                me.loadData(form);
+            })
             .catch(function(response) {
-                form.setLoading(false);
+                saas.util.BaseUtil.showToast('错误:' + response.message);
                 console.error(response);
             });
-        }else{
-            //取后台编号
-            me.BaseUtil.request({
-                url: '/api/commons/number/getMaxnumber',
-                headers: {
-                    "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8'
-                },
-                params: {
-                    caller:form.caller
-                },
-                method: 'POST',
-            }).then(function(res) {
-                form.setLoading(false);
-                if(res.success){
-                    var code = res.data;
-                    var viewModel = form.getViewModel();
-                    var detailGrids = form.query('detailGridField');
 
-                    if(code){
-                        var o = {};
-                        o[form._codeField] = code;
+        },
 
-                        var formData = {main: {}};
-                        Ext.apply(formData.main, o);
-                        Ext.Array.each(detailGrids, function(grid, index) {
-                            var detno = 0;
-                            var detnoColumn = grid.detnoColumn;
-                            var datas = [];
-                            
-                            Ext.Array.each(new Array(5), function() {
-                                detno += 1;
-                                var data = {};
-                                data[detnoColumn] = detno;
-                                datas.push(data);
-                            })
-                            formData['detail' + index] = datas;
-                        });
+        loadData: function(form) {
+            var me = this;
+            form.setLoading(true);
+            if(form.initId && form.initId!=0) {
+                var url = form._readUrl + form.initId;
+                saas.util.BaseUtil.request({url })
+                .then(function(res) {
+                    form.setLoading(false);
+                    if(res.success) {
+                        var d = res.data;
+                        var o = {
+                            main: d.main
+                        };
+                        if(d.hasOwnProperty('items')) {
+                            o.detail0 = d.items;
+                        }else {
+                            var idx = 1;
+                            while(d.hasOwnProperty('items' + idx)) {
+                                o['detail' + (idx - 1)] = d['items' + idx];
+                                idx++;
+                            }
+                        }
+                        form.initFormData(o);
+                        form.fireEvent('load', form, o);
+                    }
+                })
+                .catch(function(response) {
+                    form.setLoading(false);
+                    console.error(response);
+                });
+            }else{
+                //取后台编号
+                saas.util.BaseUtil.request({
+                    url: '/api/commons/number/getMaxnumber',
+                    headers: {
+                        "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8'
+                    },
+                    params: {
+                        caller:form.caller
+                    },
+                    method: 'POST',
+                }).then(function(res) {
+                    form.setLoading(false);
+                    if(res.success){
+                        var code = res.data;
+                        var viewModel = form.getViewModel();
+                        var detailGrids = form.query('detailGridField');
+
+                        if(code){
+                            var o = {};
+                            o[form._codeField] = code;
+
+                            var formData = {main: {}};
+                            Ext.apply(formData.main, o);
+                            Ext.Array.each(detailGrids, function(grid, index) {
+                                var detno = 0;
+                                var detnoColumn = grid.detnoColumn;
+                                var datas = [];
+                                
+                                Ext.Array.each(new Array(5), function() {
+                                    detno += 1;
+                                    var data = {};
+                                    data[detnoColumn] = detno;
+                                    datas.push(data);
+                                })
+                                formData['detail' + index] = datas;
+                            });
 
-                        return formData;
+                            return formData;
+                        }else {
+                            throw new Error('请求单据编号错误');
+                        }
+                    }
+                }).then(function(formData) {
+                    var initData = form.initData;
+                    if(initData) {
+                        Ext.apply(initData.main, formData.main);
+                        form.setFormData(initData);
                     }else {
-                        throw new Error('请求单据编号错误');
+                        form.initFormData(formData);
                     }
-                }
-            }).then(function(formData) {
-                var initData = form.initData;
-                if(initData) {
-                    Ext.apply(initData.main, formData.main);
-                    form.setFormData(initData);
-                }else {
-                    form.initFormData(formData);
-                }
-            }).catch(function(res) {
-                showToast(res.message);
-                form.setLoading(false);
-            })
+                }).catch(function(res) {
+                    saas.util.BaseUtil.showToast(res.message);
+                    form.setLoading(false);
+                })
+            }
         }
     }
 });

+ 2 - 2
frontend/saas-web/app/view/auth/LoginController.js

@@ -39,7 +39,7 @@ Ext.define('saas.view.auth.LoginController', {
             })
             .catch(function(error) {
                 view.isMasked() && view.unmask();
-                showToast(error.message);
+                saas.util.BaseUtil.showToast(error.message);
             });
     },
 
@@ -61,7 +61,7 @@ Ext.define('saas.view.auth.LoginController', {
 				me.fireEvent('login', newSession);
             })
             .catch(function(error) {
-                showToast(error.message);
+                saas.util.BaseUtil.showToast(error.message);
             })
             .then(function() {
                 view.isMasked() && view.unmask();

+ 1 - 1
frontend/saas-web/app/view/core/base/BasePanelController.js

@@ -22,7 +22,7 @@ Ext.define('saas.view.core.base.BasePanelController', {
     add: function(){
         var form = this.getView();
         var id = form.xtype + '_add';
-        openTab(form.xtype,'新增' + form._title,id);
+        saas.util.BaseUtil.openTab(form.xtype,'新增' + form._title,id);
     },
 
     getCondition: function(items) {

+ 11 - 11
frontend/saas-web/app/view/core/base/GridPanel.js

@@ -77,7 +77,7 @@ Ext.define('saas.view.core.base.GridPanel', {
                         text:'新增',
                         handler:function(b){
                             var form = b.ownerCt.ownerCt.ownerCt;
-                            openTab(form._formXtype, '新增' + form._title, form._formXtype+'_add'); 
+                            saas.util.BaseUtil.openTab(form._formXtype, '新增' + form._title, form._formXtype+'_add'); 
                         }
                     }, {
                         text: '导入',
@@ -123,7 +123,7 @@ Ext.define('saas.view.core.base.GridPanel', {
                         text: '删除',
                         handler: function(){
                             var form = this.ownerCt.ownerCt.ownerCt;
-                            deleteWarn(form._deleteMsg,function(btn){
+                            saas.util.BaseUtil.deleteWarn(form._deleteMsg,function(btn){
                                 if(btn == 'yes'){
                                     me.onVastDeal(form._batchDeleteUrl);
                                 }
@@ -154,27 +154,27 @@ Ext.define('saas.view.core.base.GridPanel', {
         var grid = this;
         var data = grid.getGridSelected(type);
         if(!data){
-            showToast('请勾选符合条件的行进行操作。');
+            saas.util.BaseUtil.showToast('请勾选符合条件的行进行操作。');
             return false;
         }
         if(data&&data.length>0){
             var params = JSON.stringify({baseDTOs:data});
-            form.BaseUtil.request({
+            saas.util.BaseUtil.request({
                     url: url,
                     params: params,
                     method: 'POST',
                     async:false
                 })
                 .then(function() {
-                    showToast('操作成功');
+                    saas.util.BaseUtil.showToast('操作成功');
                     grid.store.load();
                 })
                 .catch(function(res) {
                     console.error(res);
-                    showToast('操作失败: ' + res.message);
+                    saas.util.BaseUtil.showToast('操作失败: ' + res.message);
                 });
         }else{
-            showToast('请勾选至少一条明细。');
+            saas.util.BaseUtil.showToast('请勾选至少一条明细。');
         }
     },
 
@@ -194,25 +194,25 @@ Ext.define('saas.view.core.base.GridPanel', {
             if(classList.indexOf('fa-pencil')>-1){
                 var config = {};
                 config.initId = record.get('id');
-                openTab(form._formXtype, '修改'+form._title, form._formXtype+config.initId, config);
+                saas.util.BaseUtil.openTab(form._formXtype, '修改'+form._title, form._formXtype+config.initId, config);
             }else if(classList.indexOf('fa-trash-o')>-1){
                 //删除
                 var id = record.get('id');
                 if(id){
-                    form.BaseUtil.request({
+                    saas.util.BaseUtil.request({
                         url: form._deleteUrl+id,
                         method: 'POST',
                     })
                     .then(function(localJson) {
                         if(localJson.success){
                             //解析参数
-                            showToast('删除成功');
+                            saas.util.BaseUtil.showToast('删除成功');
                             view.ownerCt.store.load();
                         }
                     })
                     .catch(function(res) {
                         console.error(res);
-                        showToast('删除失败: ' + res.message);
+                        saas.util.BaseUtil.showToast('删除失败: ' + res.message);
                     });
                 }
             }

+ 1 - 1
frontend/saas-web/app/view/core/chart/ChartBase.js

@@ -6,7 +6,7 @@ Ext.define('saas.view.core.chart.ChartBase', {
     ],
 
     height: 300,
-    bodyPadding: 5,
+    bodyPadding: '16 0 16 0',
 
     layout: 'fit',
 

+ 1 - 1
frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js

@@ -74,7 +74,7 @@ Ext.define('saas.view.core.dbfind.DbfindGridPanel', {
                         handler:function(b){
                             var grid = me;
                             var trigger = grid.ownerCt.trigger;
-                            openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
+                            saas.util.BaseUtil.openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
                         }
                     }])
                 },{

+ 1 - 1
frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js

@@ -113,7 +113,7 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
                         handler:function(b){
                             var grid = me;
                             var trigger = grid.ownerCt.trigger;
-                            openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
+                            saas.util.BaseUtil.openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
                         }
                     },{
                         xtype:'button',

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

@@ -7,10 +7,6 @@ Ext.define('saas.view.core.form.FormPanel', {
 
     cls: 'x-core-form',
 
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
-
     //字段属性
     _codeField: '',
     _statusField: '',
@@ -53,7 +49,7 @@ Ext.define('saas.view.core.form.FormPanel', {
         auditTexts = me.auditTexts;
 
         me.initViewModel();
-        me.FormUtil.setItems(me);
+        saas.util.FormUtil.setItems(me);
 
         me.defaultBtns = me.defaultBtns || [{
             cls: 'x-formpanel-btn-orange',
@@ -198,8 +194,8 @@ Ext.define('saas.view.core.form.FormPanel', {
         viewModel.set(codeField, '');
         viewModel.set('createTime', Ext.Date.format(new Date(), 'Y-m-d H:i:s'));
         viewModel.set('updateTime', Ext.Date.format(new Date(), 'Y-m-d H:i:s'));
-        viewModel.set('creatorId', getCurrentUse().id);
-        viewModel.set('creator', getCurrentUse().realname);
+        viewModel.set('creatorId', saas.util.BaseUtil.getCurrentUse().id);
+        viewModel.set('creator', saas.util.BaseUtil.getCurrentUse().realname);
 
         if (statusCodeField) {
             var o = {};

+ 27 - 30
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -2,9 +2,6 @@ Ext.define('saas.view.core.form.FormPanelController', {
     extend: 'Ext.app.ViewController',
     alias: 'controller.core-form-formpanel',
 
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
-    FormUtil: Ext.create('saas.util.FormUtil'),
-
     auditBtnClick: function() {
         var me = this,
         form = me.getView(),
@@ -18,7 +15,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
     add: function(){
         var form = this.getView();
         var id = form.xtype + '-add';
-        openTab(form.xtype,'新增' + form._title, id);
+        saas.util.BaseUtil.openTab(form.xtype,'新增' + form._title, id);
     },
 
     onCopy: function() {
@@ -28,7 +25,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
 
         var formData = me.initCopyData(form.getFormData());
 
-        openTab(form.xtype,'新增' + form._title, id, {initData: formData});
+        saas.util.BaseUtil.openTab(form.xtype,'新增' + form._title, id, {initData: formData});
     },
 
     initCopyData: function(formData) {
@@ -47,7 +44,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
 
         for(var k in main) {
             // 主表日期改为当前日期
-            if(isDateString(main[k])) {
+            if(saas.util.BaseUtil.isDateString(main[k])) {
                 main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
             }
         }
@@ -61,7 +58,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
                     // 从表id清空
                     delete d['id'];
                     // 从表日期清空
-                    if(isDateString(d[k])) {
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
                         d[k] = '';
                     }
                 }
@@ -87,9 +84,9 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 return false;
             }
 
-            deleteWarn(form._deleteMsg,function(btn){
+            saas.util.BaseUtil.deleteWarn(form._deleteMsg,function(btn){
                 if(btn == 'yes'){
-                    me.BaseUtil.request({
+                    saas.util.BaseUtil.request({
                         url: form._deleteUrl+id,
                         method: 'POST',
                     })
@@ -98,12 +95,12 @@ Ext.define('saas.view.core.form.FormPanelController', {
                             var mainTab = Ext.getCmp('main-tab-panel');
                             mainTab.getActiveTab().close();
                             //解析参数
-                            showToast('删除成功');
+                            saas.util.BaseUtil.showToast('删除成功');
                         }
                     })
                     .catch(function(res) {
                         console.error(res);
-                        showToast('删除失败: ' + res.message);
+                        saas.util.BaseUtil.showToast('删除失败: ' + res.message);
                     });
                 }
             });
@@ -116,7 +113,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            showToast(form.invalidText);
+            saas.util.BaseUtil.showToast(form.invalidText);
             return false;
         }
 
@@ -151,7 +148,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
             delete params.items1;
         }
 
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._saveUrl,
             params: JSON.stringify(params),
             method: 'POST',
@@ -161,20 +158,20 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 var id = localJson.data.id;
                 var code = localJson.data.code;
                 form.initId = id;
-                form.FormUtil.loadData(form);
-                showToast('保存成功');
+                saas.util.FormUtil.loadData(form);
+                saas.util.BaseUtil.showToast('保存成功');
 
                 var newId = form.xtype + '-' + id;
                 var newTitle = form._title + '(' + code + ')';
 
-                refreshTabTitle(newId, newTitle);
+                saas.util.BaseUtil.refreshTabTitle(newId, newTitle);
 
                 form.fireEvent('aftersave', true, form, localJson);
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('保存失败: ' + res.message);
+            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
             form.fireEvent('aftersave', false, form, res);
         });
     },
@@ -188,7 +185,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var dirty = form.isDirty();
 
         if(id && dirty) {
-            showConfirm('提示', form.dirtyAuditText)
+            saas.util.BaseUtil.showConfirm('提示', form.dirtyAuditText)
             .then(function(yes) {
                 if(yes == 'yes') {
                     me.onSave();
@@ -200,7 +197,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var valid = form.isValid();
 
         if(!valid) {
-            showToast(form.invalidText);
+            saas.util.BaseUtil.showToast(form.invalidText);
             return false;
         }
 
@@ -234,7 +231,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
             delete params.items1;
         }
 
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._auditUrl,
             params: JSON.stringify(params),
             method: 'POST',
@@ -251,11 +248,11 @@ Ext.define('saas.view.core.form.FormPanelController', {
                     var newId = form.xtype + '-' + id;
                     var newTitle = form._title + '(' + code + ')';
 
-                    refreshTabTitle(newId, newTitle);
+                    saas.util.BaseUtil.refreshTabTitle(newId, newTitle);
                 }
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 form.setEditable(false);
-                showToast('审核成功' + (localJson.message ? ': ' + localJson.message : ''));
+                saas.util.BaseUtil.showToast('审核成功' + (localJson.message ? ': ' + localJson.message : ''));
                 form.fireEvent('afteraudit', true, form, localJson);
             }
         })
@@ -270,10 +267,10 @@ Ext.define('saas.view.core.form.FormPanelController', {
                 var newId = form.xtype + '-' + id;
                 var newTitle = form._title + '(' + code + ')';
 
-                refreshTabTitle(newId, newTitle);
-                form.FormUtil.loadData(form);
+                saas.util.BaseUtil.refreshTabTitle(newId, newTitle);
+                saas.util.FormUtil.loadData(form);
             }
-            showToast('审核失败: ' + res.message);
+            saas.util.BaseUtil.showToast('审核失败: ' + res.message);
             form.fireEvent('afteraudit', false, form, res);
         });
     },
@@ -301,20 +298,20 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var id = viewModel.get(form._idField);
         var code = viewModel.get(form._codeField);
 
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._unAuditUrl+id,
             method: 'POST',
         })
         .then(function(localJson) {
             if(localJson.success){
                 //解析参数
-                showToast('反审核成功');
-                form.FormUtil.loadData(form);
+                saas.util.BaseUtil.showToast('反审核成功');
+                saas.util.FormUtil.loadData(form);
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('反审核失败: ' + res.message);
+            saas.util.BaseUtil.showToast('反审核失败: ' + res.message);
         });
     },
 

+ 3 - 5
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -2,8 +2,6 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
     extend: 'Ext.grid.Panel',
     xtype: 'detailGridField',
 
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
-
     cls: 'x-detailgridfield',
 
     border: 1,
@@ -262,10 +260,10 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         var id = selectedRecord.data.id;
 
         if(id&&id!=0&&(typeof id) == 'number') {
-            showConfirm('警告', '确定删除该条明细')
+            saas.util.BaseUtil.showConfirm('警告', '确定删除该条明细')
             .then(function(yes) {
                 if(yes == 'yes') {
-                    me.BaseUtil.request({
+                    saas.util.BaseUtil.request({
                         url: me.deleteDetailUrl+id,
                         params: '',
                         method: 'POST',
@@ -274,7 +272,7 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
                         store.remove(selectedRecord);
                         me.fireEvent('validChange');
                         //解析参数
-                        showToast('删除成功');
+                        saas.util.BaseUtil.showToast('删除成功');
                     })
                     .catch(function() {
                         me.fireEvent('validChange');

+ 4 - 6
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -2,8 +2,6 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
     extend: 'Ext.grid.Panel',
     xtype: 'core-query-querygridpanel',
 
-    //工具类
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
     //字段属性
     baseColumn: [],
     relativeColumn: [],
@@ -268,7 +266,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 idValue = record.get(grid.idField),
                 codeValue = record.get(grid.codeField),
                 id = grid.addXtype + '-' + idValue;
-                openTab(grid.addXtype, grid.addTitle+"("+codeValue+")", id, {
+                saas.util.BaseUtil.openTab(grid.addXtype, grid.addTitle+"("+codeValue+")", id, {
                     initId: idValue
                 });
             }
@@ -318,7 +316,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         var lastIndex = _url.lastIndexOf('/');
         var caller = _url.substring(lastIndex);
         var url = '/api/commons'+caller+'/export';
-        grid.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: url,
             params: '',
             method: 'POST',
@@ -353,7 +351,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         var grid = btns.up('grid');
         var data = grid.getGridSelected();
         if(data&&data.length>0){
-            warnMsg("是否删除所选单据?",function(btn){
+            saas.util.BaseUtil.warnMsg("是否删除所选单据?",function(btn){
                 if(btn == 'yes'){
                     grid.vastOperation("batchDelete");
                 }
@@ -367,7 +365,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         var data = me.getGridSelected();
         if(data&&data.length>0){
             var params = JSON.stringify({baseDTOs:data});
-            me.BaseUtil.request({
+            saas.util.BaseUtil.request({
                 url: me.baseVastUrl+type,
                 params: params,
                 method: 'POST',

+ 1 - 1
frontend/saas-web/app/view/core/query/QueryPanelController.js

@@ -37,7 +37,7 @@ Ext.define('saas.view.core.query.QueryPanelController', {
         queryPanel = me.getView(),
         gridPanel = queryPanel.down('core-query-querygridpanel'),
         id = gridPanel.addXtype + '-add';
-        openTab(gridPanel.addXtype,'新增'+gridPanel.addTitle,id)
+        saas.util.BaseUtil.openTab(gridPanel.addXtype,'新增'+gridPanel.addTitle,id)
     },
     onReSetClick:function(btn){
         btn.ownerCt.ownerCt.reset();

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

@@ -198,11 +198,11 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     exception: function(proxy, response, operation, eOpts) {
                         if(operation.success) {
                             if(response.timedout) {
-                                showToast('请求超时');
+                                saas.util.BaseUtil.showToast('请求超时');
                             }
                         }else {
                             console.error('exception: ', response.responseJson);
-                            showToast('请求错误:' + response.responseJson);
+                            saas.util.BaseUtil.showToast('请求错误:' + response.responseJson);
                         }
                     }
                 }

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

@@ -34,7 +34,7 @@ Ext.define('saas.view.core.tab.Controller', {
                 if (me.fireEvent('beforeclose', me) !== false) {
                     if (me.tabBar) {
                         if(tabView.closeConfirm && tabView.isDirty()) {
-                            showConfirm('提示', '表单数据有修改,确定要退出吗?')
+                            saas.util.BaseUtil.showConfirm('提示', '表单数据有修改,确定要退出吗?')
                             .then(function(yes) {
                                 if(yes == 'yes') {
                                     if (me.tabBar.closeTab(me) === false) {
@@ -49,7 +49,7 @@ Ext.define('saas.view.core.tab.Controller', {
                         }
                     } else {
                         if(tabView.closeConfirm == 'function' && tabView.isDirty()) {
-                            showConfirm('提示', '表单数据有修改,确定要退出吗?')
+                            saas.util.BaseUtil.showConfirm('提示', '表单数据有修改,确定要退出吗?')
                             .then(function(yes) {
                                 if(yes == 'yes') {
                                     me.fireClose();

+ 8 - 8
frontend/saas-web/app/view/document/bom/FormController.js

@@ -344,7 +344,7 @@ Ext.define('saas.view.document.bom.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._openUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -352,14 +352,14 @@ Ext.define('saas.view.document.bom.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 //viewModel.set('base.editable', false);
-                showToast('启用成功');
+                saas.util.BaseUtil.showToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -367,7 +367,7 @@ Ext.define('saas.view.document.bom.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._closeUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -375,13 +375,13 @@ Ext.define('saas.view.document.bom.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 // viewModel.set('base.editable', false);
-                showToast('关闭成功');
+                saas.util.BaseUtil.showToast('关闭成功');
             }
         })
         .catch(function(res) {
-            showToast('关闭失败: ' + res.message);
+            saas.util.BaseUtil.showToast('关闭失败: ' + res.message);
         });
     }
 });

+ 8 - 8
frontend/saas-web/app/view/document/customer/FormController.js

@@ -21,22 +21,22 @@ Ext.define('saas.view.document.customer.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._openUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('启用成功');
+                saas.util.BaseUtil.showToast('启用成功');
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -44,7 +44,7 @@ Ext.define('saas.view.document.customer.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._closeUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -52,13 +52,13 @@ Ext.define('saas.view.document.customer.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('禁用成功');
+                saas.util.BaseUtil.showToast('禁用成功');
             }
         })
         .catch(function(res) {
-            showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
         });
     }
 });

+ 8 - 8
frontend/saas-web/app/view/document/employee/FormController.js

@@ -152,7 +152,7 @@ Ext.define('saas.view.document.employee.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._openUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -160,14 +160,14 @@ Ext.define('saas.view.document.employee.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('启用成功');
+                saas.util.BaseUtil.showToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -175,7 +175,7 @@ Ext.define('saas.view.document.employee.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._closeUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -183,14 +183,14 @@ Ext.define('saas.view.document.employee.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('禁用成功');
+                saas.util.BaseUtil.showToast('禁用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
         });
     }
 });

+ 3 - 5
frontend/saas-web/app/view/document/kind/ChildForm.js

@@ -8,8 +8,6 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
     modal: true,
     width: 500,
     //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
     height: 260,
     listeners:{
       show:function(w){
@@ -370,7 +368,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         var idField = form.down('[name='+belong.keyField+']');
         params[belong.keyField] = idField.value || 0;
         //保存接口
-        this.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: belong.reqUrl,
             params: JSON.stringify(params),
             method: 'POST'
@@ -378,7 +376,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         .then(function(localJson) {
             me.setLoading(false);
             if(localJson.success){
-                showToast('保存成功');
+                saas.util.BaseUtil.showToast('保存成功');
                 var grid = form.ownerCt._parent.lookup('document-kind-Grid');
                 if(grid){
                     grid.store.load();
@@ -394,7 +392,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
         .catch(function(res) {
             me.setLoading(false);
             console.error(res);
-            showToast('保存失败: ' + res.message);
+            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
         });
     },
     onCancel:function(){

+ 3 - 6
frontend/saas-web/app/view/document/kind/Kind.js

@@ -10,9 +10,6 @@ Ext.define('saas.view.document.kind.Kind', {
     viewModel: {
         type: 'document-kind'
     },
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
     defaultType:'',
     requires: [
         'Ext.button.Segmented'
@@ -287,20 +284,20 @@ Ext.define('saas.view.document.kind.Kind', {
                         //  禁用/启用
                         var form = this.ownerCt.ownerCt.ownerCt;
                         var grid = this.ownerCt.ownerCt;
-                        form.BaseUtil.request({
+                        saas.util.BaseUtil.request({
                             url: (!type?form._openUrl:form._closeUrl)+'/'+rec.get('id'),
                             params: '',
                             method: 'POST',
                         })
                         .then(function(localJson) {
                             if(localJson.success){
-                                showToast('操作成功');
+                                saas.util.BaseUtil.showToast('操作成功');
                                 grid.store.load();
                             }
                         })
                         .catch(function(res) {
                             console.error(res);
-                            showToast('操作失败: ' + res.message);
+                            saas.util.BaseUtil.showToast('操作失败: ' + res.message);
                         });
                     }
                 }]

+ 4 - 6
frontend/saas-web/app/view/document/kind/KindController.js

@@ -4,9 +4,7 @@
 Ext.define('saas.view.document.kind.KindController', {
     extend: 'Ext.app.ViewController',
     alias: 'controller.document-kind',
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    
     loadDefualt:function(grid){
         var me=this,view = me.getView(),vm = me.getViewModel(),defaultKind;
         if(view.defaultType!=''){
@@ -78,19 +76,19 @@ Ext.define('saas.view.document.kind.KindController', {
         rec = grid.getStore().getAt(row);
         var keyV=rec.get(view.etc[dataKind].keyField);
         //删除接口
-        this.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: view.etc[dataKind].delUrl+'/'+keyV,
             method: 'POST'
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('删除成功');
+                saas.util.BaseUtil.showToast('删除成功');
                 grid.store.load();
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('删除失败: ' + res.message);
+            saas.util.BaseUtil.showToast('删除失败: ' + res.message);
         });
     },
     createDialog: function(dataKind,record) {

+ 8 - 8
frontend/saas-web/app/view/document/product/FormController.js

@@ -212,7 +212,7 @@ Ext.define('saas.view.document.product.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._openUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -220,14 +220,14 @@ Ext.define('saas.view.document.product.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('启用成功');
+                saas.util.BaseUtil.showToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -235,7 +235,7 @@ Ext.define('saas.view.document.product.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._closeUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -243,14 +243,14 @@ Ext.define('saas.view.document.product.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('禁用成功');
+                saas.util.BaseUtil.showToast('禁用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
         });
     },
     amount_change:function() {

+ 8 - 8
frontend/saas-web/app/view/document/vendor/FormController.js

@@ -20,7 +20,7 @@ Ext.define('saas.view.document.vendor.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._openUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -28,14 +28,14 @@ Ext.define('saas.view.document.vendor.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('启用成功');
+                saas.util.BaseUtil.showToast('启用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('启用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('启用失败: ' + res.message);
         });
     },
     unAudit: function() {
@@ -43,7 +43,7 @@ Ext.define('saas.view.document.vendor.FormController', {
         form = this.getView(),
         viewModel = me.getViewModel();
         
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._closeUrl+'/'+viewModel.data.id,
             params: '',
             method: 'POST',
@@ -51,14 +51,14 @@ Ext.define('saas.view.document.vendor.FormController', {
         .then(function(localJson) {
             if(localJson.success){
                 form.initId = localJson.data.id;
-                form.FormUtil.loadData(form);
+                saas.util.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
-                showToast('禁用成功');
+                saas.util.BaseUtil.showToast('禁用成功');
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('禁用失败: ' + res.message);
+            saas.util.BaseUtil.showToast('禁用失败: ' + res.message);
         });
     }
 });

+ 1 - 1
frontend/saas-web/app/view/home/InfoCard.js

@@ -146,7 +146,7 @@ Ext.define('saas.view.home.InfoCard', {
                 itemSelector: 'div.x-box',
                 listeners: {
                     itemclick: function(th, record, item, index, e, eOpts) {
-                        openTab(record.get('viewType'), record.get('title'), record.get('id'), {
+                        saas.util.BaseUtil.openTab(record.get('viewType'), record.get('title'), record.get('id'), {
                             simpleMode: true,
                             defaultCondition: record.get('condition')
                         });

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

@@ -76,7 +76,7 @@ Ext.define('saas.view.main.Main', {
                             text: '新手导航',
                             iconCls:'x-fa fa-comment-o',
                             handler:function(){
-                               openTab('sys-guide-formpanel','新手导航', 'sys-guide-formpanel-nav');
+                               saas.util.BaseUtil.openTab('sys-guide-formpanel','新手导航', 'sys-guide-formpanel-nav');
                             }
                         },{
                             text: '用户手册',

+ 2 - 2
frontend/saas-web/app/view/main/Navigation.js

@@ -152,7 +152,7 @@ Ext.define('saas.view.main.Navigation', {
                                     tabId = 'maintab-' + type + '-' + id;
 
                                     menu.navItem.classList.remove(menu.navView.overItemCls);
-                                    openTab(viewType, tabTitle, tabId,config);
+                                    saas.util.BaseUtil.openTab(viewType, tabTitle, tabId,config);
                                     menu.hide();
                                 });
                             });
@@ -169,7 +169,7 @@ Ext.define('saas.view.main.Navigation', {
                                     tabId = viewType + '-add';
 
                                     menu.navItem.classList.remove(menu.navView.overItemCls);
-                                    openTab(viewType, tabTitle, tabId);
+                                    saas.util.BaseUtil.openTab(viewType, tabTitle, tabId);
                                     menu.hide();
                                 });
                             });

+ 1 - 1
frontend/saas-web/app/view/money/othreceipts/FormPanelController.js

@@ -200,7 +200,7 @@ Ext.define('saas.view.money.othreceipts.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            showToast(form.invalidText);
+            saas.util.BaseUtil.showToast(form.invalidText);
             return false;
         }
 

+ 1 - 1
frontend/saas-web/app/view/money/othspendings/FormPanelController.js

@@ -174,7 +174,7 @@ Ext.define('saas.view.money.othspendings.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            showToast(form.invalidText);
+            saas.util.BaseUtil.showToast(form.invalidText);
             return false;
         }
 

+ 1 - 1
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -399,7 +399,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';
 
-            showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存并审核?')
+            saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存并审核?')
             .then(function(y) {
                 if(y == 'yes') {
                     controller.audit();

+ 5 - 5
frontend/saas-web/app/view/money/payBalance/FormPanelController.js

@@ -295,19 +295,19 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._turnInUrl+id.value,
             method: 'GET',
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('转单成功');
+                saas.util.BaseUtil.showToast('转单成功');
               
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
         });
      },
 
@@ -320,7 +320,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            showToast(form.invalidText);
+            saas.util.BaseUtil.showToast(form.invalidText);
             return false;
         }
 
@@ -333,7 +333,7 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';
 
-            showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存?')
+            saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存?')
             .then(function(y) {
                 if(y == 'yes') {
                     me.save();

+ 1 - 1
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -369,7 +369,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';
 
-            showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存并审核?')
+            saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次折扣后核销金额,是否仍要保存并审核?')
             .then(function(y) {
                 if(y == 'yes') {
                     controller.audit();

+ 5 - 5
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -373,19 +373,19 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._turnInUrl+id.value,
             method: 'GET',
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('转单成功');
+                saas.util.BaseUtil.showToast('转单成功');
               
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
         });
      },
     onSave: function() {
@@ -397,7 +397,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            showToast(form.invalidText);
+            saas.util.BaseUtil.showToast(form.invalidText);
             return false;
         }
 
@@ -411,7 +411,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';
 
-            showConfirm('提示', '收款金额' + t + '于本次折扣后核销金额,是否仍要保存?')
+            saas.util.BaseUtil.showConfirm('提示', '收款金额' + t + '于本次折扣后核销金额,是否仍要保存?')
                 .then(function(y) {
                     if(y == 'yes') {
                         me.save();

+ 6 - 3
frontend/saas-web/app/view/purchase/purchase/FormPanel.js

@@ -36,9 +36,12 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
     defaultItems: [{
         xtype: 'hidden',
         name: 'id',
-        fieldLabel: 'id',
-        columnWidth: 0
-    }, {
+        fieldLabel: 'id'
+    },{
+        xtype: 'numberfield',
+        name: 'pi_ioid',
+        fieldLabel: 'pi_ioid'
+    },{
         xtype : "hidden", 
         name : "pu_vendid", 
         fieldLabel : "供应商ID"

+ 4 - 4
frontend/saas-web/app/view/purchase/purchase/FormPanelController.js

@@ -288,7 +288,7 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._turnInUrl+id.value,
             method: 'POST',
         })
@@ -297,15 +297,15 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
                 var intValue = localJson.data.id,
                     codeValue= localJson.data.code,
                     name = localJson.data.name;
-                openTab('purchase-purchasein-formpanel',name+"("+codeValue+")",codeValue+intValue, {
+                saas.util.BaseUtil.openTab('purchase-purchasein-formpanel',name+"("+codeValue+")",codeValue+intValue, {
                     initId: intValue
                 });
-                showToast('转单成功');    
+                saas.util.BaseUtil.showToast('转单成功');    
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
         });
      }
 });

+ 1 - 1
frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js

@@ -392,7 +392,7 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
         data = grid.getTrueData();
         Ext.Array.each(data,function(item){
             if(item.pd_orderprice==0){
-                showToast(item.pd_pdno+'行'+item.pd_prodcode+'物料单价为0');
+                saas.util.BaseUtil.showToast(item.pd_pdno+'行'+item.pd_prodcode+'物料单价为0');
             }
         });
         return true;

+ 4 - 4
frontend/saas-web/app/view/purchase/purchaseIn/FormPanelController.js

@@ -309,7 +309,7 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._turnOutUrl+id.value,
             method: 'POST',
         })
@@ -318,16 +318,16 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanelController', {
                 var intValue = localJson.data.id,
                 codeValue= localJson.data.code,
                 name = localJson.data.name;
-                openTab('purchase-purchaseout-formpanel',name+"("+codeValue+")",codeValue+intValue, {
+                saas.util.BaseUtil.openTab('purchase-purchaseout-formpanel',name+"("+codeValue+")",codeValue+intValue, {
                     initId: intValue
                 });
-                showToast('转单成功');
+                saas.util.BaseUtil.showToast('转单成功');
               
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
         });
      }
 });

+ 4 - 0
frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js

@@ -29,6 +29,10 @@ Ext.define('saas.view.purchase.purchaseOut.FormPanel', {
         fieldLabel: 'id',
         allowBlank: true,
         columnWidth: 0
+    },{
+        xtype: 'hidden',
+        name: 'pi_ioid',
+        fieldLabel: 'pi_ioid'
     },{
         xtype : "textfield", 
         name : "pi_class", 

+ 5 - 5
frontend/saas-web/app/view/sale/sale/FormPanelController.js

@@ -291,7 +291,7 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._turnOutUrl+id.value,
             method: 'POST',
         })
@@ -300,16 +300,16 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
                 var intValue = localJson.data.id,
                     codeValue= localJson.data.code,
                     name = localJson.data.name;
-                openTab('sale-saleout-formpanel',name+"("+codeValue+")",codeValue+intValue, {
+                saas.util.BaseUtil.openTab('sale-saleout-formpanel',name+"("+codeValue+")",codeValue+intValue, {
                     initId: intValue
                 });
-                showToast('转单成功');  
-                form.FormUtil.loadData(form);
+                saas.util.BaseUtil.showToast('转单成功');  
+                saas.util.FormUtil.loadData(form);
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
         });
      }
 });

+ 5 - 5
frontend/saas-web/app/view/sale/saleOut/FormPanelController.js

@@ -289,7 +289,7 @@ Ext.define('saas.view.sale.saleout.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._turnInUrl+id.value,
             method: 'POST',
         })
@@ -298,16 +298,16 @@ Ext.define('saas.view.sale.saleout.FormPanelController', {
                 var intValue = localJson.data.id,
                     codeValue= localJson.data.code,
                     name = localJson.data.name;
-                openTab('sale-salein-formpanel',name+"("+codeValue+")",codeValue+intValue, {
+                saas.util.BaseUtil.openTab('sale-salein-formpanel',name+"("+codeValue+")",codeValue+intValue, {
                     initId: intValue
                 });
-                showToast('转单成功');  
-                form.FormUtil.loadData(form);  
+                saas.util.BaseUtil.showToast('转单成功');  
+                saas.util.FormUtil.loadData(form);  
             }
         })
         .catch(function(res) {
             console.error(res);
-            showToast('转单失败: ' + res.message);
+            saas.util.BaseUtil.showToast('转单失败: ' + res.message);
         });
      }
 });

+ 2 - 2
frontend/saas-web/app/view/stock/make/FormPanelController.js

@@ -389,7 +389,7 @@ Ext.define('saas.view.stock.make.FormPanelController', {
         store = viewModel.get('detail0').detailStore,
         loadData = new Array();;
         //请求bom资料
-        form.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._getBomUrl+v,
             method: 'GET',
         })
@@ -417,7 +417,7 @@ Ext.define('saas.view.stock.make.FormPanelController', {
         })
         .catch(function(res) {
             console.error(res);
-            showToast('获取BOM资料失败: ' + res.message);
+            saas.util.BaseUtil.showToast('获取BOM资料失败: ' + res.message);
         });
      }
 });

+ 5 - 8
frontend/saas-web/app/view/sys/account/DataList.js

@@ -9,9 +9,6 @@ Ext.define('saas.view.sys.account.DataList', {
     autoScroll: true,
     frame:true,
     layout:'fit',
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
     dataUrl:'http://192.168.253.31:8560/api/account/account/accountRole/list',                 
 
     tbar: [{
@@ -149,26 +146,26 @@ Ext.define('saas.view.sys.account.DataList', {
         var grid = this;
         var data = grid.getGridSelected(type);
         if(!data){
-            showToast('请勾选符合条件的行进行操作。');
+            saas.util.BaseUtil.showToast('请勾选符合条件的行进行操作。');
             return false;
         }
         if(data&&data.length>0){
             var params = JSON.stringify({baseDTOs:data});
-            form.BaseUtil.request({
+            saas.util.BaseUtil.request({
                     url: url,
                     params: params,
                     method: 'POST',
                     async:false
                 })
                 .then(function() {
-                    showToast('操作成功');
+                    saas.util.BaseUtil.showToast('操作成功');
                     grid.store.load();
                 })
                 .catch(function(response) {
-                    showToast('操作失败');
+                    saas.util.BaseUtil.showToast('操作失败');
                 });
         }else{
-            showToast('请勾选至少一条明细。');
+            saas.util.BaseUtil.showToast('请勾选至少一条明细。');
         }
     },
 

+ 1 - 4
frontend/saas-web/app/view/sys/config/FormPanel.js

@@ -4,9 +4,6 @@ Ext.define('saas.view.sys.config.FormPanel', {
 
     controller: 'sys-config-formpanel',
     viewModel: 'sys-config-formpanel',
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
     
     //字段属性
     _idField: 'id',
@@ -155,7 +152,7 @@ Ext.define('saas.view.sys.config.FormPanel', {
         var me = this,
         viewModel = me.getViewModel();
         var url = me._readUrl;
-        me.BaseUtil.request({url })
+        saas.util.BaseUtil.request({url })
         .then(function(res) {
             if(res.success) {
                 var d = res.data;

+ 6 - 9
frontend/saas-web/app/view/sys/config/FormPanelController.js

@@ -2,9 +2,6 @@ Ext.define('saas.view.sys.config.FormPanelController', {
     extend: 'Ext.app.ViewController',
     alias: 'controller.sys-config-formpanel',
 
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
-    FormUtil: Ext.create('saas.util.FormUtil'),
-
     init: function (form) {
         var me = this;
         this.control({
@@ -22,12 +19,12 @@ Ext.define('saas.view.sys.config.FormPanelController', {
 
         var valid = form.isValid();
         if(!valid) {
-            showToast('表单校验有误,请检查');
+            saas.util.BaseUtil.showToast('表单校验有误,请检查');
             return false;
         }
 
         if(form.getForm().wasDirty==false){
-            showToast('未修改数据,请修改后保存');
+            saas.util.BaseUtil.showToast('未修改数据,请修改后保存');
             return false;
         }
         
@@ -35,17 +32,17 @@ Ext.define('saas.view.sys.config.FormPanelController', {
         var formData = viewModel.data;
         formData.en_name = null;
         formData.updateTime = null;
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: form._saveUrl,
             params: JSON.stringify(formData),
             method: 'POST',
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('保存成功');
+                saas.util.BaseUtil.showToast('保存成功');
                 viewModel = form.getViewModel();
                 var url = form._readUrl;
-                form.BaseUtil.request({url })
+                saas.util.BaseUtil.request({url })
                 .then(function(res) {
                     if(res.success) {
                         var d = res.data;
@@ -59,7 +56,7 @@ Ext.define('saas.view.sys.config.FormPanelController', {
         })
         .catch(function(res) {
             console.error(res);
-            showToast('保存失败: ' + res.message);
+            saas.util.BaseUtil.showToast('保存失败: ' + res.message);
         });
     }
 

+ 1 - 1
frontend/saas-web/app/view/sys/feedback/FormPanelController.js

@@ -7,7 +7,7 @@ Ext.define('saas.view.sys.feedback.FormPanelController', {
         });
     },
     onSubmit:function(){
-        showToast('提交成功!');
+        saas.util.BaseUtil.showToast('提交成功!');
         Ext.destroy(Ext.getCmp("feedbackWin"));
     },
     onClose:function(){

+ 7 - 9
frontend/saas-web/app/view/sys/finish/DataList.js

@@ -1,9 +1,7 @@
 Ext.define('saas.view.sys.finish.DataList', {
     extend: 'Ext.grid.Panel',
     xtype: 'sys-finish-datalist',
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    
     autoScroll: true,
     frame:true,
     layout:'fit',
@@ -21,20 +19,20 @@ Ext.define('saas.view.sys.finish.DataList', {
         listeners: {
             click:function(b){
                 var grid = b.ownerCt.ownerCt;
-                grid.BaseUtil.request({
+                saas.util.BaseUtil.request({
                     url: grid.endAccount,
                     params: '',
                     method: 'POST',
                 })
                 .then(function(localJson) {
                     if(localJson.success){
-                        showToast('结账成功');
+                        saas.util.BaseUtil.showToast('结账成功');
                         grid.store.loadPage(1);
                     }
                 })
                 .catch(function(res) {
                     console.error(res);
-                    showToast('结账失败: ' + res.message);
+                    saas.util.BaseUtil.showToast('结账失败: ' + res.message);
                 });
             }
         }
@@ -44,20 +42,20 @@ Ext.define('saas.view.sys.finish.DataList', {
         listeners: {
             click:function(b){
                 var grid = b.ownerCt.ownerCt;
-                grid.BaseUtil.request({
+                saas.util.BaseUtil.request({
                     url: grid.unEndAccount,
                     params: '',
                     method: 'POST',
                 })
                 .then(function(localJson) {
                     if(localJson.success){
-                        showToast('反结账成功');
+                        saas.util.BaseUtil.showToast('反结账成功');
                         grid.store.loadPage(1);
                     }
                 })
                 .catch(function(res) {
                     console.error(res);
-                    showToast('反结账失败: ' + res.message);
+                    saas.util.BaseUtil.showToast('反结账失败: ' + res.message);
                 });
             }
         }

+ 1 - 1
frontend/saas-web/app/view/sys/guide/FormPanel.js

@@ -230,7 +230,7 @@ Ext.define('saas.view.sys.guide.FormPanel', {
                         me.ownerCt.close();
                         return true;
                     }
-                    openTab(xtype, title, xtype+'_add');
+                    saas.util.BaseUtil.openTab(xtype, title, xtype+'_add');
                     scope.close();
                 }
             },{

+ 9 - 11
frontend/saas-web/app/view/sys/maxnumbers/DataList.js

@@ -9,9 +9,7 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
     autoScroll: true,
     frame:true,
     layout:'fit',
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    
     dataUrl:'/api/commons/number/list',                 
     deleteUrl:'/api/commons/number/delete/',
 
@@ -167,26 +165,26 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
         var grid = this;
         var data = grid.getGridSelected(type);
         if(!data){
-            showToast('请勾选符合条件的行进行操作。');
+            saas.util.BaseUtil.showToast('请勾选符合条件的行进行操作。');
             return false;
         }
         if(data&&data.length>0){
             var params = JSON.stringify({baseDTOs:data});
-            form.BaseUtil.request({
+            saas.util.BaseUtil.request({
                     url: url,
                     params: params,
                     method: 'POST',
                     async:false
                 })
                 .then(function() {
-                    showToast('操作成功');
+                    saas.util.BaseUtil.showToast('操作成功');
                     grid.store.load();
                 })
                 .catch(function(response) {
-                    showToast('操作失败');
+                    saas.util.BaseUtil.showToast('操作失败');
                 });
         }else{
-            showToast('请勾选至少一条明细。');
+            saas.util.BaseUtil.showToast('请勾选至少一条明细。');
         }
     },
 
@@ -223,19 +221,19 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
                 //删除
                 var id = record.get('id');
                 if(id){
-                    grid.BaseUtil.request({
+                    saas.util.BaseUtil.request({
                         url: grid.deleteUrl+id,
                         method: 'POST',
                     })
                     .then(function(localJson) {
                         if(localJson.success){
                             //解析参数
-                            showToast('删除成功');
+                            saas.util.BaseUtil.showToast('删除成功');
                             view.ownerCt.store.load();
                         }
                     })
                     .catch(function() {
-                        showToast('删除失败');
+                        saas.util.BaseUtil.showToast('删除失败');
                     });
                 }
             }

+ 4 - 7
frontend/saas-web/app/view/sys/power/FormPanelController.js

@@ -2,9 +2,6 @@ Ext.define('saas.view.sys.power.FormPanelController', {
     extend: 'Ext.app.ViewController',
     alias: 'controller.sys-power-formpanel',
 
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
-    FormUtil: Ext.create('saas.util.FormUtil'),
-
     init: function (form) {
         var me = this;
         this.control({
@@ -47,23 +44,23 @@ Ext.define('saas.view.sys.power.FormPanelController', {
             })
             params.powerSetList = datas;
 
-            me.BaseUtil.request({
+            saas.util.BaseUtil.request({
                 url: form.saveUrl,
                 params: JSON.stringify(params),
                 method: 'POST',
             })
             .then(function(localJson) {
                 if(localJson.success){
-                    showToast('保存成功');
+                    saas.util.BaseUtil.showToast('保存成功');
                     viewModel.data.powergrid.load();
                 }
             })
             .catch(function(res) {
                 console.error(res);
-                showToast('保存失败: ' + res.message);
+                saas.util.BaseUtil.showToast('保存失败: ' + res.message);
             });
         }else{
-            showToast('没有修改数据,请修改后保存');
+            saas.util.BaseUtil.showToast('没有修改数据,请修改后保存');
         }
     },
 

+ 6 - 9
frontend/saas-web/app/view/sys/power/TreePanel.js

@@ -2,9 +2,6 @@ Ext.define('saas.view.sys.power.TreePanel', {
     extend: 'Ext.tree.Panel',
     xtype: 'sys-power-treepanel',
 
-    //工具类
-    FormUtil: Ext.create('saas.util.FormUtil'),
-    BaseUtil: Ext.create('saas.util.BaseUtil'),
     dataUrl:'/api/account/role/list',
     deleteUrl:'/api/account/role/delete/',
 
@@ -171,7 +168,7 @@ Ext.define('saas.view.sys.power.TreePanel', {
                 var idField = form.down('[name='+belong.keyField+']');
                 params[belong.keyField] = idField.value || 0;
                 //保存接口
-                this.BaseUtil.request({
+                saas.util.BaseUtil.request({
                     url: idField.value?belong.updateUrl:belong.reqUrl,
                     params: JSON.stringify(params),
                     method: 'POST'
@@ -179,7 +176,7 @@ Ext.define('saas.view.sys.power.TreePanel', {
                 .then(function(localJson) {
                     me.setLoading(false);
                     if(localJson.success){
-                        showToast('保存成功');
+                        saas.util.BaseUtil.showToast('保存成功');
                         me._parent.setTree();
                         form.ownerCt.close();
                     }
@@ -187,7 +184,7 @@ Ext.define('saas.view.sys.power.TreePanel', {
                 .catch(function(res) {
                     me.setLoading(false);
                     console.error(res);
-                    showToast('保存失败: ' + res.message);
+                    saas.util.BaseUtil.showToast('保存失败: ' + res.message);
                 });
             }
         });
@@ -199,7 +196,7 @@ Ext.define('saas.view.sys.power.TreePanel', {
         }
         var me = this;
         me.setLoading(true);
-        me.BaseUtil.request({
+        saas.util.BaseUtil.request({
             url: me.deleteUrl + rec.get('id'),
             params: '',
             method: 'POST'
@@ -207,14 +204,14 @@ Ext.define('saas.view.sys.power.TreePanel', {
         .then(function(localJson) {
             me.setLoading(false);
             if(localJson.success){
-                showToast('删除成功');
+                saas.util.BaseUtil.showToast('删除成功');
                 me.setTree();
             }
         })
         .catch(function(res) {
             me.setLoading(false);
             console.error(res);
-            showToast('删除失败: ' + res.message);
+            saas.util.BaseUtil.showToast('删除失败: ' + res.message);
         });
     }
 });

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

@@ -142,7 +142,7 @@ Ext.define('saas.view.viewport.ViewportController', {
 
         view.mask();
         session.logout().catch(function(error) {
-            showToast(error.message);
+            saas.util.BaseUtil.showToast(error.message);
         }).then(function() {
             me.originalRoute = Ext.History.getToken();
             me.terminateSession();
@@ -164,7 +164,7 @@ Ext.define('saas.view.viewport.ViewportController', {
                     me.initiateSession(newSession);
                 })
                 .catch(function(error) {
-                    showToast(error.message);
+                    saas.util.BaseUtil.showToast(error.message);
                 })
                 .then(function() {
                     view.isMasked() && view.unmask();

+ 106 - 103
frontend/saas-web/overrides/i18n.js

@@ -1,112 +1,115 @@
-/**
- * 打开/切换到新页签
- * @param xtype: view xtype
- * @param title: 标题
- * @param id: id
- * @param config: 绑定到view的其他配置
- */
-function openTab(xtype, title, id, config) {
-    var mainTab = Ext.getCmp('main-tab-panel');
-    var panel = mainTab.query('[tabId="' + id + '"]')[0];
-    if(!panel) {
-        panel = Ext.create('saas.view.core.tab.Panel', {
-            tabId: id,
-            title: title,
-            viewType: xtype,
-            viewConfig: config
-        });
+// /**
+//  * 打开/切换到新页签
+//  * @param xtype: view xtype
+//  * @param title: 标题
+//  * @param id: id
+//  * @param config: 绑定到view的其他配置
+//  */
+// function openTab(xtype, title, id, config) {
+//     var mainTab = Ext.getCmp('main-tab-panel');
+//     var panel = mainTab.query('[tabId="' + id + '"]')[0];
+//     if(!panel) {
+//         panel = Ext.create('saas.view.core.tab.Panel', {
+//             tabId: id,
+//             title: title,
+//             viewType: xtype,
+//             viewConfig: config
+//         });
 
-        Ext.suspendLayouts();
-        mainTab.setActiveTab(mainTab.add(panel));
-        Ext.resumeLayouts(true);
-    }else {
-        panel.viewConfig = config;
-        mainTab.setActiveTab(panel);
-    }
-}
+//         Ext.suspendLayouts();
+//         mainTab.setActiveTab(mainTab.add(panel));
+//         Ext.resumeLayouts(true);
+//     }else {
+//         panel.viewConfig = config;
+//         mainTab.setActiveTab(panel);
+//     }
+// }
 
-/**
- * 重设tab标题
- */
-function refreshTabTitle(id, title) {
-    var currentTab = getCurrentTab();
-    currentTab.tabId = id;
-    currentTab.setTitle(title);
-}
+// /**
+//  * 重设tab标题
+//  */
+// function refreshTabTitle(id, title) {
+//     var currentTab = getCurrentTab();
+//     currentTab.tabId = id;
+//     currentTab.setTitle(title);
+// }
 
-/**
- * 获得当前Tab
- */
-function getCurrentTab() {
-    var mainTab = Ext.getCmp('main-tab-panel');
-    var currentTab = mainTab.getActiveTab();
+// /**
+//  * 获得当前Tab
+//  */
+// function getCurrentTab() {
+//     var mainTab = Ext.getCmp('main-tab-panel');
+//     var currentTab = mainTab.getActiveTab();
 
-    return currentTab;
-}
+//     return currentTab;
+// }
 
-/**
- * 显示toast提示(无需用户操作)
- * @param content: 内容
- * @param title: 标题
- * 
- */
-function showToast(content, title) {
-    Ext.toast({
-        html: content,
-        title: title,
-        closable: false,
-        align: 't',
-        slideDUration: 400,
-        maxWidth: 400
-    });
-}
+// /**
+//  * 显示toast提示(无需用户操作)
+//  * @param content: 内容
+//  * @param title: 标题
+//  * 
+//  */
+// function showToast(content, title) {
+//     Ext.toast({
+//         html: content,
+//         title: title,
+//         closable: false,
+//         align: 't',
+//         slideDUration: 400,
+//         maxWidth: 400
+//     });
+// }
 
-/**
- * 显示警告(需要选择是、否)
- * @param title: 标题
- * @param message: 内容
- * @return : Promise
- */
-function showConfirm(title, message) {
-    return new Ext.Promise(function (resolve, reject) {
-        Ext.MessageBox.confirm(title, message, function(buttonId) {
-            return resolve(buttonId);
-        });
-    })
-}
+// /**
+//  * 显示警告(需要选择是、否)
+//  * @param title: 标题
+//  * @param message: 内容
+//  * @return : Promise
+//  */
+// function showConfirm(title, message) {
+//     return new Ext.Promise(function (resolve, reject) {
+//         Ext.MessageBox.confirm(title, message, function(buttonId) {
+//             return resolve(buttonId);
+//         });
+//     })
+// }
 
-function warnMsg(msg, fn){
-	Ext.MessageBox.show({
-     	title: '提示',
-     	msg: msg,
-     	buttons: Ext.Msg.YESNO,
-     	icon: Ext.Msg.WARNING,
-     	fn: fn
-	});
-}
+// function warnMsg(msg, fn){
+// 	Ext.MessageBox.show({
+//      	title: '提示',
+//      	msg: msg,
+//      	buttons: Ext.Msg.YESNO,
+//      	icon: Ext.Msg.WARNING,
+//      	fn: fn
+// 	});
+// }
 
-function deleteWarn(msg, fn){
-	Ext.MessageBox.show({
-     	title: '提示',
-     	msg: msg || '确定要删除当前表单?',
-     	buttons: Ext.Msg.YESNO,
-     	icon: Ext.Msg.WARNING,
-         fn: fn,
-         renderTo: Ext.getCmp('main-tab-panel').getActiveTab().getEl()
-	});
-}
+// function deleteWarn(msg, fn){
+// 	Ext.MessageBox.show({
+//      	title: '提示',
+//      	msg: msg || '确定要删除当前表单?',
+//      	buttons: Ext.Msg.YESNO,
+//      	icon: Ext.Msg.WARNING,
+//          fn: fn,
+//          renderTo: Ext.getCmp('main-tab-panel').getActiveTab().getEl()
+// 	});
+// }
 
-/**
- * 判断字符串是否日期字符串
- * 需要满足格式 yyyy-MM-dd hh:mm:ss
- * 或者yyyy-M-d h:m:s
- * @param str: 字符串
- * @returns Boolean
- */
-function isDateString(str) {
-    return (/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/).test(str);
-}
-
-function getCurrentUse() {
-    return Ext.getCmp('mainView').getViewModel().get('account');
-}
+// /**
+//  * 判断字符串是否日期字符串
+//  * 需要满足格式 yyyy-MM-dd hh:mm:ss
+//  * 或者yyyy-M-d h:m:s
+//  * @param str: 字符串
+//  * @returns Boolean
+//  */
+// function isDateString(str) {
+//     return (/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/).test(str);
+// }
+// function getCurrentUse() {
+//     if(typeof saas == 'undefined') {
+//         return JSON.parse(window.localStorage["app-state-session"]).account;
+//     }else {
+//         return saas.util.State.get('session').account;
+//     }
+// }