Procházet zdrojové kódy

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

chenw před 7 roky
rodič
revize
243d9bdddc
100 změnil soubory, kde provedl 675 přidání a 548 odebrání
  1. 7 2
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 10 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Status.java
  3. 4 57
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java
  4. 2 0
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/CustomerDTO.java
  5. 6 0
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/VendorDTO.java
  6. 1 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Customer.java
  7. 2 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/CustomerList.java
  8. 6 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java
  9. 2 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/VendorList.java
  10. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/DataImportMapper.java
  11. 28 31
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  12. 6 6
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BomServiceImpl.java
  13. 11 8
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  14. 19 18
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  15. 9 7
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  16. 6 7
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java
  17. 3 0
      applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml
  18. 1 0
      applications/document/document-server/src/main/resources/mapper/CustomerListMapper.xml
  19. 13 2
      applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml
  20. 1 1
      applications/document/document-server/src/main/resources/mapper/DataImportMapper.xml
  21. 1 1
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  22. 17 4
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  23. 4 4
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/VerificationController.java
  24. 1 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/VerificationMapper.java
  25. 2 5
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java
  26. 2 5
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java
  27. 8 31
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java
  28. 17 30
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  29. 11 2
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  30. 6 0
      applications/money/money-server/src/main/resources/mapper/BankinformationMapper.xml
  31. 8 1
      applications/money/money-server/src/main/resources/mapper/BanksubledgerMapper.xml
  32. 1 1
      applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml
  33. 2 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdIODetailDTO.java
  34. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdIODetail.java
  35. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOutList.java
  36. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/report/PurchaseReportDetail.java
  37. 5 4
      applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml
  38. 2 0
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml
  39. 1 0
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml
  40. 12 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/SaleApplication.java
  41. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/ProdInOutMapper.java
  42. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java
  43. 30 2
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  44. 12 4
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  45. 11 6
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml
  46. 7 2
      applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml
  47. 2 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdIODetailDTO.java
  48. 2 2
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdIODetail.java
  49. 2 1
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java
  50. 6 5
      applications/storage/storage-server/src/main/resources/mapper/ProdIODetailMapper.xml
  51. 1 0
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutListMapper.xml
  52. 41 0
      frontend/saas-portal-web/build/build-dev.js
  53. 4 2
      frontend/saas-portal-web/build/webpack.prod.conf.js
  54. 3 4
      frontend/saas-portal-web/config/dev.env.js
  55. 2 2
      frontend/saas-portal-web/config/test.env.js
  56. 2 1
      frontend/saas-portal-web/package.json
  57. 9 1
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  58. 7 0
      frontend/saas-portal-web/src/components/conenter/company.vue
  59. 7 12
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  60. 58 3
      frontend/saas-portal-web/src/components/conenter/problem.vue
  61. 20 5
      frontend/saas-web/app.json
  62. 9 0
      frontend/saas-web/app/view/core/base/BasePanel.scss
  63. 1 1
      frontend/saas-web/app/view/core/base/GridPanel.js
  64. 2 1
      frontend/saas-web/app/view/core/base/ImportWindow.js
  65. 12 0
      frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js
  66. 12 0
      frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js
  67. 1 1
      frontend/saas-web/app/view/core/dbfind/types/BomDbfindTrigger.js
  68. 13 30
      frontend/saas-web/app/view/core/dbfind/types/CustomerDbfindTrigger.js
  69. 17 55
      frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js
  70. 18 58
      frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js
  71. 4 21
      frontend/saas-web/app/view/core/dbfind/types/VendorDbfindTrigger.js
  72. 1 1
      frontend/saas-web/app/view/core/dbfind/types/WarehouseDbfindTrigger.js
  73. 10 1
      frontend/saas-web/app/view/core/form/FormPanelController.js
  74. 2 5
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  75. 10 0
      frontend/saas-web/app/view/core/query/QueryGridPanel.scss
  76. 3 2
      frontend/saas-web/app/view/document/bom/BasePanel.js
  77. 2 2
      frontend/saas-web/app/view/document/bom/FormPanel.js
  78. 4 3
      frontend/saas-web/app/view/document/customer/BasePanel.js
  79. 3 3
      frontend/saas-web/app/view/document/customer/FormPanel.js
  80. 10 3
      frontend/saas-web/app/view/document/kind/ChildForm.js
  81. 3 2
      frontend/saas-web/app/view/document/product/BasePanel.js
  82. 3 3
      frontend/saas-web/app/view/document/product/FormPanel.js
  83. 4 3
      frontend/saas-web/app/view/document/vendor/BasePanel.js
  84. 3 3
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  85. 3 2
      frontend/saas-web/app/view/home/infoCardList/Payment.js
  86. 3 2
      frontend/saas-web/app/view/home/infoCardList/Recment.js
  87. 3 2
      frontend/saas-web/app/view/home/infoCardList/UnauditCheckIn.js
  88. 3 2
      frontend/saas-web/app/view/home/infoCardList/UnauditSaleOut.js
  89. 1 1
      frontend/saas-web/app/view/main/Main.js
  90. 12 10
      frontend/saas-web/app/view/main/Navigation.js
  91. 1 0
      frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js
  92. 1 0
      frontend/saas-web/app/view/money/othreceipts/QueryPanel.js
  93. 1 0
      frontend/saas-web/app/view/money/othspendings/QueryPanel.js
  94. 6 0
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  95. 1 0
      frontend/saas-web/app/view/money/payBalance/QueryPanel.js
  96. 7 0
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  97. 1 0
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  98. 7 49
      frontend/saas-web/app/view/money/verification/FormPanelController.js
  99. 1 0
      frontend/saas-web/app/view/money/verification/QueryPanel.js
  100. 4 0
      frontend/saas-web/app/view/purchase/purchase/FormPanelController.js

+ 7 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -34,6 +34,10 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
     BIZ_RELUPDATE_CODEANDNAME(79311,"存在关联单据,不允许更新编号,名称"),
     BIZ_RELUPDATE_AMOUNT(79312,"存在关联单据,不允许更新期初应收,期初预收,期初日期"),
+    BIZ_BANNED(79313, "只能禁用已开启的单据"),
+    BIZ_ENABLE(79314, "只能开启已禁用的单据"),
+
+
     NO_OPRATIONDATA(79400,"无可操作单据"),
     NULL_DATA(23232,"无数据"),
 
@@ -75,13 +79,14 @@ public enum BizExceptionCode implements BaseExceptionCode {
     SALE_NULL_BILL(72002, "单据不存在或者明细为空"),
     SALEOUT_ALL_TURNIN(72003, "该出货单已全部转退货,无法转销售退货单"),
     SALEOUT_POSTSTATUS_ERROR(72004,"当前单据状态无法进行此操作。"),
-    SALEOUT_POST_ERROR(72005,""),
+    SALEOUT_POST_ERROR(72005,"编号:<u>%s</u>处理失败,%s"),
     SALEOUT_UNAUDIT_ERROR(72006,"销售订单已转出货单,无法反审核"),
     SALE_ORDER_HASAUDIT(72003, "存在已审核单据,单据编号:%s"),
     SALE_EXISTS_PURCHASE(72004, "存在已转的采购单据,单据编号:%s"),
     SALE_ALREADY_UNAUDIT(72007, "单据状态为未审核,无法反审核"),
     SALE_CUST_CLOSE(72008, "客户已关闭,无法审核"),
-
+    SALE_ORDER_ISUNAUDIT(72009, "存在未审核单据,单据编号:%s"),
+    SALE_ORDER_ISCOLSED(72010, "存在已关闭单据,单据编号:%s"),
     //资金
     PAYBALANCE_OUTNOWBALANCE(74001,"本次核销金额不能大于未核销金额"),
     PAYBALANCE_UNIQUESOURCECODE(74002, "保存失败!不能选择重复的源单"),

+ 10 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Status.java

@@ -17,6 +17,16 @@ public enum Status {
     OPEN("已开启"),
 
 
+    /**
+     * 已禁用
+     */
+    BANNED("已禁用"),
+
+    /**
+     * 已启用
+     */
+    ENABLE("已启用"),
+
     /**
      * 已审核
      */

+ 4 - 57
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java

@@ -45,66 +45,13 @@ public class ExcelServiceImpl implements ExcelService{
         Map<String, Object> map = new HashMap<>();
         SXSSFWorkbook workbook = new SXSSFWorkbook();
         DataTemplet dataTemplet = dataTempletMapper.selectByCaller(caller, companyId);
+        //列
         String cols = dataTemplet.getDt_columns();
-      /*  String cols = "[{\"description\":\"物料编号\",\"necessary\":\"true\"},{\"description\":\"物料名称\",\"necessary\":\"true\"},{\"description\":\"物料类型\",\"necessary\":\"true\"},{\"description\":\"仓库编号\",\"necessary\":\"true\"},{\"description\":\"仓库名称\",\"necessary\":\"true\"}]";
-        cols = "[{\"description\":\"物料编号\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_code\",\"codefield\":true}," +
-                "{\"description\":\"物料名称\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_detail\",\"codefield\":false}," +
-                "{\"description\":\"更新时间\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"updateTime\",\"codefield\":false,\"type\":\"date\"}," +
-                "{\"description\":\"规格\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_spec\",\"codefield\":false}," +
-                "{\"description\":\"类型\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_kind\",\"codefield\":false}," +
-                "{\"description\":\"型号\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_orispeccode\",\"codefield\":false}" +
-                ",{\"description\":\"品牌\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_brand\",\"codefield\":false}," +
-                "{\"description\":\"单位\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_unit\",\"codefield\":false}," +
-                "{\"description\":\"仓库编号\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_whcode\",\"codefield\":false}," +
-                "{\"description\":\"仓库名称\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_whname\",\"codefield\":false}," +
-                "{\"description\":\"最新采购单价\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_purcprice\",\"codefield\":false}" +
-                ",{\"description\":\"最新出货单价\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_saleprice\",\"codefield\":false}," +
-                "{\"description\":\"替代料仓库编号\",\"necessary\":\"true\",\"position\":\"detail\",\"field\":\"pd_whcode\",\"codefield\":false}," +
-                "{\"description\":\"替代料仓库名称\",\"necessary\":\"false\",\"position\":\"detail\",\"field\":\"pd_whname\",\"codefield\":false}," +
-                "{\"description\":\"期初数量\",\"necessary\":\"true\",\"position\":\"detail\",\"field\":\"pd_num\",\"codefield\":false}," +
-                "{\"description\":\"单位成本\",\"necessary\":\"true\",\"position\":\"detail\",\"field\":\"pd_price\",\"codefield\":false}]";
-      */
         JSONArray array = (JSONArray) JSONArray.parse(cols);
+        //模板数据
         String remark = dataTemplet.getDt_description();
-        //String exampledata = dataTemplet.getDt_exampledata();
-        //JSONArray datas = (JSONArray) JSONArray.parse(exampledata);
-        JSONArray datas = new JSONArray();
-        JSONObject data = new JSONObject();
-        data.put("物料编号", "code1");
-        data.put("物料名称", "name1");
-        data.put("规格", "spec1");
-        data.put("型号", "kind1");
-        data.put("品牌", "brand1");
-        data.put("更新时间", "2018-09-08");
-        data.put("单位", "nuit1");
-        data.put("类型", "leixin1");
-        data.put("仓库编号", "whcode1");
-        data.put("仓库名称", "whname1");
-        data.put("最新采购单价", "100");
-        data.put("最新出货单价", "22");
-        data.put("替代料仓库编号", "tcode1");
-        data.put("替代料仓库名称", "tname1");
-        data.put("期初数量", "22");
-        data.put("单位成本", "22");
-        datas.add(data);
-        JSONObject data2 = new JSONObject();
-        data2.put("物料编号", "code2");
-        data2.put("物料名称", "name2");
-        data2.put("规格", "spec2");
-        data2.put("型号", "kind2");
-        data2.put("品牌", "brand2");
-        data2.put("单位", "nuit2");
-        data2.put("类型", "leixin2");
-        data2.put("仓库编号", "whcode2");
-        data2.put("仓库名称", "whname2");
-        data2.put("最新采购单价", "100");
-        data2.put("最新出货单价", "22");
-        data2.put("替代料仓库编号", "tcode2");
-        data2.put("替代料仓库名称", "tname2");
-        data2.put("期初数量", "22");
-        data2.put("单位成本", "22");
-        datas.add(data2);
-        System.out.println(datas.toJSONString());
+        String exampledata = dataTemplet.getDt_exampledata();
+        JSONArray datas = (JSONArray) JSONArray.parse(exampledata);
         createWorkbook(workbook, 1, array, datas, remark);
         map.put("workbook", workbook);
         map.put("title", dataTemplet.getDt_title());

+ 2 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/CustomerDTO.java

@@ -57,4 +57,6 @@ public class CustomerDTO extends CommonBaseDTO implements Serializable {
     private Double cu_recamount;
 
     private Double cu_preamount;
+
+    private String cu_remark;
 }

+ 6 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/VendorDTO.java

@@ -17,6 +17,8 @@ public class VendorDTO extends CommonBaseDTO implements Serializable{
     private String ve_type;
     @ApiModelProperty(value = "状态")
     private String ve_status;
+    @ApiModelProperty(value = "备注")
+    private String ve_remark;
 
     public String getVe_code() {
         return ve_code;
@@ -49,4 +51,8 @@ public class VendorDTO extends CommonBaseDTO implements Serializable{
     public void setVe_status(String ve_status) {
         this.ve_status = ve_status;
     }
+
+    public String getVe_remark(){return ve_remark;}
+
+    public void setVe_remark(String cu_remark) { this.ve_remark = ve_remark; }
 }

+ 1 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Customer.java

@@ -54,4 +54,5 @@ public class Customer extends CommonBaseEntity implements Serializable {
 
     private Double cu_preamount;
 
+    private String cu_remark;
 }

+ 2 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/CustomerList.java

@@ -58,6 +58,8 @@ public class CustomerList extends CommonBaseEntity{
     private Double cu_recamount;
 
     private Double cu_preamount;
+
+    private String cu_remark;
 //customeraddress
 
     private Long ca_cuid;

+ 6 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java

@@ -97,6 +97,12 @@ public class Vendor extends CommonBaseEntity implements Serializable{
 
     private Double ve_preamount;
 
+    private String ve_remark;
+
+    public String getVe_remark(){return ve_remark;}
+
+    public void setVe_remark(String ve_remark){this.ve_remark = ve_remark;}
+
     public Double getVe_payamount() {
         return ve_payamount;
     }

+ 2 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/VendorList.java

@@ -91,6 +91,8 @@ public class VendorList implements Serializable {
      */
     private String ve_text5;
 
+    private String ve_remark;
+
     /* 从表字段 */
 
     private Integer vc_veid;

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

@@ -14,7 +14,7 @@ public interface DataImportMapper {
 
     List<DataImportDetail> selectDataById(Integer id);
 
-    DataImportDetail selectProductBycode(@Param("code") String code, @Param("id") int id, @Param("companyid") Long companyId);
+    DataImportDetail selectMainBycode(@Param("code") String code, @Param("id") int id, @Param("companyid") Long companyId);
 
     void updateDataImport(Integer id);
 

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

@@ -16,6 +16,7 @@ import com.usoftchina.saas.document.mapper.BanksubledgerMapper;
 import com.usoftchina.saas.document.service.BankinformationService;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -61,6 +62,8 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
             }
             bankinformation.setBk_thisamount(bankinformation.getBk_beginamount());
             bankinformationMapper.insertSelective(bankinformation);
+            Banksubledger banksubledger = this.changBanksubledger(bankinformation);
+            banksubledgerMapper.insertSelective(banksubledger);
         }else {
             bankinformation.setUpdaterId(BaseContextHolder.getUserId());
             bankinformation.setUpdaterName(BaseContextHolder.getUserName());
@@ -93,37 +96,7 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
             }else {
                 bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
             }
-        }
-
-
-        //中间表
-        Banksubledger banksubledger = new Banksubledger();
-        Date date = bankinformation.getBk_date();
-        String dateString = date2String(date, "yyyyMMdd");
-        int ym = Integer.parseInt(dateString);
-
-        String date1 = date2String(date, "yyyyMM");
-        date1 = date1 + "01 00:00:00";
-        Date d = null;
-        try {
-            d = string2Date(date1, "yyyy-MM-dd hh:mm:ss");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
-        banksubledger.setBl_ym(ym);
-        banksubledger.setBl_bankid(Math.toIntExact(bankinformation.getId()));
-        banksubledger.setBl_bankcode(bankinformation.getBk_bankcode());
-        banksubledger.setBl_bankname(bankinformation.getBk_bankname());
-        banksubledger.setBl_code("期初余额");
-        banksubledger.setBl_kind("期初余额");
-        banksubledger.setBl_date(d);
-        banksubledger.setBl_orderamount(bankinformation.getBk_beginamount());
-
-        if(bankinformation.getId() == 0){
-            banksubledgerMapper.insertSelective(banksubledger);
-        }else{
+            Banksubledger banksubledger = this.changBanksubledger(bankinformation);
             banksubledgerMapper.updateByPrimaryKeySelective(banksubledger);
         }
         return true;
@@ -191,6 +164,30 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
         return getMapper().getCombo(BaseContextHolder.getCompanyId());
     }
 
+    //插入中间表
+    public Banksubledger changBanksubledger(Bankinformation bankinformation){
+        Banksubledger banksubledger = new Banksubledger();
+        Date date = bankinformation.getBk_date();
+        banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+        banksubledger.setBl_ym(DateUtils.getYm(date));
+        banksubledger.setBl_bankid(Math.toIntExact(bankinformation.getId()));
+        banksubledger.setBl_bankcode(bankinformation.getBk_bankcode());
+        banksubledger.setBl_bankname(bankinformation.getBk_bankname());
+        banksubledger.setBl_code("期初余额");
+        banksubledger.setBl_kind("期初余额");
+
+        String date1 = date2String(date, "yyyy-MM");
+        date1 = date1 + "-01 00:00:00";
+        Date d = null;
+        try {
+            d = string2Date(date1, "yyyy-MM-dd hh:mm:ss");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        banksubledger.setBl_date(d);
+        banksubledger.setBl_orderamount(bankinformation.getBk_beginamount());
+        return banksubledger;
+    }
 
     /**
      * String转Date类型

+ 6 - 6
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BomServiceImpl.java

@@ -209,8 +209,8 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
 
             bom = new Bom();
             bom.setId(id);
-            bom.setBo_status(Status.CLOSE.getDisplay());
-            bom.setBo_statuscode(Status.CLOSE.name());
+            bom.setBo_status(Status.BANNED.getDisplay());
+            bom.setBo_statuscode(Status.BANNED.name());
             bom.setUpdaterId(BaseContextHolder.getUserId());
             bom.setUpdateTime(new Date());
 
@@ -232,12 +232,12 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
             if(bom == null){
                 throw new BizException(BizExceptionCode.NO_DATA);
             }
-            if (Status.CLOSE.name().equals(bom.getBo_statuscode())){
+            if (Status.BANNED.name().equals(bom.getBo_statuscode())){
                 String code = bom.getBo_mothercode();
                 bom = new Bom();
                 bom.setId(id);
-                bom.setBo_statuscode(Status.OPEN.name());
-                bom.setBo_status(Status.OPEN.getDisplay());
+                bom.setBo_statuscode(Status.ENABLE.name());
+                bom.setBo_status(Status.ENABLE.getDisplay());
                 bom.setUpdateTime(new Date());
                 bom.setUpdaterId(BaseContextHolder.getUserId());
                 getMapper().updateByPrimaryKeySelective(bom);
@@ -246,7 +246,7 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
                 messageLogService.customizeLog(docBaseDTO, Operation.ENABLE);
                 return docBaseDTO;
             }else {
-                throw new BizException(BizExceptionCode.BIZ_OPEN);
+                throw new BizException(BizExceptionCode.BIZ_ENABLE);
             }
         }else {
             throw new BizException(BizExceptionCode.ILLEGAL_ID);

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

@@ -306,6 +306,9 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         subledger.setCompanyId(BaseContextHolder.getCompanyId());
         subledger.setSl_date(DateUtils.getFirstDay(customer.getCu_begindate()));
         subledger.setSl_ym(DateUtils.getYm(customer.getCu_begindate()));
+        subledger.setCreateTime(new Date());
+        subledger.setCreatorId(BaseContextHolder.getUserId());
+        subledger.setCreatorName(BaseContextHolder.getUserName());
         if (amount > new Double(0)){
             subledger.setSl_amount(amount);
         }else {
@@ -399,11 +402,11 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         DocBaseDTO docBaseDTO = null;
         if (null!=id) {
             Customer customer = getMapper().selectByPrimaryKey(id);
-            if(Status.CLOSE.name().equals(customer.getCu_statuscode())){
-                throw new BizException(BizExceptionCode.BIZ_CLOSE);
+            if(Status.BANNED.name().equals(customer.getCu_statuscode())){
+                throw new BizException(BizExceptionCode.BIZ_BANNED);
             }
-            customer.setCu_statuscode(Status.CLOSE.name());
-            customer.setCu_status(Status.CLOSE.getDisplay());
+            customer.setCu_statuscode(Status.BANNED.name());
+            customer.setCu_status(Status.BANNED.getDisplay());
             getMapper().updateByPrimaryKeySelective(customer);
             docBaseDTO = getBaseDTOById(id);
             //日志
@@ -434,11 +437,11 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         DocBaseDTO docBaseDTO = null;
         if (null!=id) {
             Customer customer = getMapper().selectByPrimaryKey(id);
-            if(Status.OPEN.name().equals(customer.getCu_statuscode())){
-                throw new BizException(BizExceptionCode.BIZ_OPEN);
+            if(Status.ENABLE.name().equals(customer.getCu_statuscode())){
+                throw new BizException(BizExceptionCode.BIZ_ENABLE);
             }
-            customer.setCu_statuscode(Status.OPEN.name());
-            customer.setCu_status(Status.OPEN.getDisplay());
+            customer.setCu_statuscode(Status.ENABLE.name());
+            customer.setCu_status(Status.ENABLE.getDisplay());
             getMapper().updateByPrimaryKeySelective(customer);
             docBaseDTO = getBaseDTOById(id);
             //日志

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

@@ -326,8 +326,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             String code = getMapper().getCodeById(id);
             Product product = new Product();
             product.setId(id);
-            product.setPr_status(Status.CLOSE.getDisplay());
-            product.setPr_statuscode(Status.CLOSE.name());
+            product.setPr_status(Status.BANNED.getDisplay());
+            product.setPr_statuscode(Status.BANNED.name());
             product.setUpdaterId(BaseContextHolder.getUserId());
             product.setUpdateTime(new Date());
             getMapper().updateByPrimaryKeySelective(product);
@@ -349,12 +349,12 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             if (product == null) {
                 throw new BizException(BizExceptionCode.NO_DATA);
             }
-            if (!Status.CLOSE.getDisplay().equals(product.getPr_status())){
-                throw new BizException(BizExceptionCode.BIZ_OPEN);
+            if (!Status.ENABLE.getDisplay().equals(product.getPr_status())){
+                throw new BizException(BizExceptionCode.BIZ_ENABLE);
             }else{
                 product.setId(id);
-                product.setPr_statuscode(Status.OPEN.name());
-                product.setPr_status(Status.OPEN.getDisplay());
+                product.setPr_statuscode(Status.ENABLE.name());
+                product.setPr_status(Status.ENABLE.getDisplay());
                 product.setUpdaterId(BaseContextHolder.getUserId());
                 product.setUpdateTime(new Date());
                 getMapper().updateByPrimaryKeySelective(product);
@@ -549,7 +549,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                 List<ProductDetail> productDetails = new ArrayList<>();
                 int i = getMapper().validateCodeWhenInsert(code, companyId);
                 List<DataImportDetail> data = datas.get(code);
-                DataImportDetail main = dataImportMapper.selectProductBycode(code, id, companyId);
+                DataImportDetail main = dataImportMapper.selectMainBycode(code, id, companyId);
                 Product product = JSONObject.parseObject(main.getDd_maindata(), Product.class);
                 Warehouse warehouse = null;
                 //验证仓库
@@ -563,6 +563,17 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                     product.setPr_status(Status.OPEN.getDisplay());
                     product.setPr_statuscode(Status.OPEN.name());
                 }
+                //编号不存在
+                if (i == 0) {
+                    product.setId(0l);
+                    //编号存在、需要更新
+                } else if (update){
+                    Long pr_id = getMapper().selectIdByCode(code, companyId);
+                    product.setId(pr_id);
+                    //编号存在、不需要处理
+                } else {
+                    continue;
+                }
                 //添加从表
                 if (data.size() > 0) {
                     detno = 1;
@@ -584,17 +595,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                         }
                     }
                 }
-                //编号不存在
-                if (i == 0) {
-                    product.setId(0l);
-                //编号存在、需要更新
-                } else if (update){
-                    Long pr_id = getMapper().selectIdByCode(code, companyId);
-                    product.setId(pr_id);
-                //编号存在、不需要处理
-                } else {
-                    continue;
-                }
+
                 listDTO.setMain(product);
                 listDTO.setItems(productDetails);
                 list.add(listDTO);

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

@@ -2,7 +2,6 @@ package com.usoftchina.saas.document.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
@@ -276,6 +275,9 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         }
         subledger.setSl_orderamount(Math.abs(amount));
         subledger.setSl_namount(Math.abs(amount));
+        subledger.setCreateTime(new Date());
+        subledger.setCreatorId(BaseContextHolder.getUserId());
+        subledger.setCreatorName(BaseContextHolder.getUserName());
         Long sl_id = subledgerMapper.selectByKindCodeVendid("期初余额","期初余额",
                 Math.toIntExact(main.getId()),BaseContextHolder.getCompanyId(),YM);
 
@@ -330,8 +332,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         if(id != null && id > 0){
             Vendor vendor = new Vendor();
             vendor.setId(id);
-            vendor.setVe_status(Status.CLOSE.getDisplay());
-            vendor.setVe_statuscode(Status.CLOSE.name());
+            vendor.setVe_status(Status.BANNED.getDisplay());
+            vendor.setVe_statuscode(Status.BANNED.name());
             vendor.setUpdaterId(BaseContextHolder.getUserId());
             vendor.setUpdateTime(new Date());
 
@@ -358,19 +360,19 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             if(vendor == null){
                 throw new BizException(BizExceptionCode.NO_DATA);
             }
-            if (Status.CLOSE.name().equals(vendor.getVe_statuscode())){
+            if (Status.BANNED.name().equals(vendor.getVe_statuscode())){
                 String code = vendor.getVe_code();
                 vendor = new Vendor();
                 vendor.setId(id);
-                vendor.setVe_statuscode(Status.OPEN.name());
-                vendor.setVe_status(Status.OPEN.getDisplay());
+                vendor.setVe_statuscode(Status.ENABLE.name());
+                vendor.setVe_status(Status.ENABLE.getDisplay());
                 getMapper().updateByPrimaryKeySelective(vendor);
                 //记录LOG
                 DocBaseDTO docBaseDTO = generateMsgObj(id, code);
                 messageLogService.customizeLog(docBaseDTO, Operation.ENABLE);
                 return docBaseDTO;
             }else {
-                throw new BizException(BizExceptionCode.BIZ_OPEN);
+                throw new BizException(BizExceptionCode.BIZ_ENABLE);
             }
         }else {
             throw new BizException(BizExceptionCode.ILLEGAL_ID);

+ 6 - 7
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java

@@ -21,7 +21,6 @@ import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 import java.util.HashMap;
@@ -172,8 +171,8 @@ public class WarehouseServiceImpl extends CommonBaseServiceImpl<WarehouseMapper,
             }
             Warehouse warehouse = new Warehouse();
             warehouse.setId(id);
-            warehouse.setWh_status(Status.CLOSE.getDisplay());
-            warehouse.setWh_statuscode(Status.CLOSE.name());
+            warehouse.setWh_status(Status.BANNED.getDisplay());
+            warehouse.setWh_statuscode(Status.BANNED.name());
             warehouse.setUpdaterId(BaseContextHolder.getUserId());
             warehouse.setUpdateTime(new Date());
 
@@ -195,12 +194,12 @@ public class WarehouseServiceImpl extends CommonBaseServiceImpl<WarehouseMapper,
             if(warehouse == null){
                 throw new BizException(BizExceptionCode.NO_DATA);
             }
-            if (Status.CLOSE.name().equals(warehouse.getWh_statuscode())){
+            if (Status.BANNED.name().equals(warehouse.getWh_statuscode())){
                 String code = warehouse.getWh_code();
                 warehouse = new Warehouse();
                 warehouse.setId(id);
-                warehouse.setWh_statuscode(Status.OPEN.name());
-                warehouse.setWh_status(Status.OPEN.getDisplay());
+                warehouse.setWh_statuscode(Status.ENABLE.name());
+                warehouse.setWh_status(Status.ENABLE.getDisplay());
                 warehouse.setUpdaterId(BaseContextHolder.getUserId());
                 warehouse.setUpdateTime(new Date());
 
@@ -210,7 +209,7 @@ public class WarehouseServiceImpl extends CommonBaseServiceImpl<WarehouseMapper,
                 messageLogService.customizeLog(docBaseDTO, Operation.ENABLE);
                 return docBaseDTO;
             }else {
-                throw new BizException(BizExceptionCode.BIZ_OPEN);
+                throw new BizException(BizExceptionCode.BIZ_ENABLE);
             }
         }else {
             throw new BizException(BizExceptionCode.ILLEGAL_ID);

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

@@ -209,6 +209,9 @@
         #{creatorName,jdbcType=VARCHAR},
       </if>
     </trim>
+    <selectKey resultType="Long" keyProperty="id" order="AFTER">
+      SELECT LAST_INSERT_ID()
+    </selectKey>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.document.entities.Bankinformation" >
     update bankinformation

+ 1 - 0
applications/document/document-server/src/main/resources/mapper/CustomerListMapper.xml

@@ -36,6 +36,7 @@
     <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
     <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
     <result column="createTime" property="createTime" jdbcType="TIMESTAMP"/>
+    <result column="cu_remark" property="cu_remark" jdbcType="VARCHAR"/>
   </resultMap>
 
 

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

@@ -29,13 +29,14 @@
     <result column="cu_leftamount" jdbcType="DOUBLE" property="cu_leftamount" />
     <result column="cu_recamount" jdbcType="DOUBLE" property="cu_recamount" />
     <result column="cu_preamount" jdbcType="DOUBLE" property="cu_preamount" />
+    <result column="cu_remark" jdbcType="VARCHAR" property="cu_remark" />
   </resultMap>
   <sql id="Base_Column_List">
     cu_id, cu_code, cu_name, cu_uu, cu_type, cu_begindate, cu_beginaramount, cu_beginprerecamount, 
     cu_promisedays, cu_taxrate, cu_sellerid, cu_sellercode, cu_sellername, cu_credit, 
     cu_status, cu_statuscode, companyid,
     updaterid, updatetime, cu_text1, cu_text2, cu_text3, cu_text4, cu_text5, cu_leftamount, 
-    cu_recamount,cu_preamount
+    cu_recamount,cu_preamount,cu_remark
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     select
@@ -141,6 +142,9 @@
       <if test="creatorName != null" >
         creatorName,
       </if>
+      <if test="cu_remark!=null">
+        cu_remark,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
 
@@ -231,6 +235,9 @@
       <if test="creatorName != null" >
         #{creatorName,jdbcType=VARCHAR},
       </if>
+      <if test="cu_remark !=null">
+        #{cu_remark,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.document.entities.Customer">
@@ -314,6 +321,9 @@
       <if test="cu_preamount != null">
         cu_preamount = #{cu_preamount,jdbcType=DOUBLE},
       </if>
+      <if test="cu_remark != null">
+        cu_remark = #{cu_remark,jdbcType=VARCHAR},
+      </if>
     </set>
     where cu_id = #{id,jdbcType=INTEGER}
   </update>
@@ -344,7 +354,8 @@
       cu_text5 = #{cu_text5,jdbcType=VARCHAR},
       cu_leftamount = #{cu_leftamount,jdbcType=DOUBLE},
       cu_recamount = #{cu_recamount,jdbcType=DOUBLE},
-      cu_preamount = #{cu_preamount,jdbcType=DOUBLE}
+      cu_preamount = #{cu_preamount,jdbcType=DOUBLE},
+      cu_remark = #{cu_remark,jdbcType=VARCHAR}
     where cu_id = #{id,jdbcType=INTEGER}
   </update>
 

+ 1 - 1
applications/document/document-server/src/main/resources/mapper/DataImportMapper.xml

@@ -91,7 +91,7 @@
   where dd_diid = #{id}
 </select>
 
-  <select id="selectProductBycode" resultMap="DetailMap">
+  <select id="selectMainBycode" resultMap="DetailMap">
     select * from  data_importdetail
     where dd_codevalue = #{code} and dd_diid=#{id} and ifnull(dd_success,0)=0 and dd_maindata is not null and companyid=#{companyid}
   </select>

+ 1 - 1
applications/document/document-server/src/main/resources/mapper/ProductMapper.xml

@@ -902,7 +902,7 @@
         DELETE FROM PRODIODETAIL WHERE PD_PIID IN (SELECT PI_ID FROM PRODINOUT WHERE PI_INOUTNO=#{code} AND PRODINOUT.COMPANYID = #{companyId}) AND PRODIODETAIL.COMPANYID = #{companyId}
     </delete>
 
-    <select id="selectIdByCode" parameterType="long">
+    <select id="selectIdByCode" resultType="long">
         select pr_id from product where pr_code=#{code} and companyId=#{companyId}
     </select>
 </mapper>

+ 17 - 4
applications/document/document-server/src/main/resources/mapper/VendorMapper.xml

@@ -29,6 +29,7 @@
         <result column="ve_leftamount" property="ve_leftamount" jdbcType="DOUBLE" />
         <result column="ve_beginym" property="ve_beginym" jdbcType="INTEGER" />
         <result column="ve_preamount" property="ve_preamount" jdbcType="DOUBLE" />
+        <result column="ve_remark" property="ve_remark" jdbcType="VARCHAR" />
     </resultMap>
     <resultMap id="VendorDTOResultMapper" type="com.usoftchina.saas.document.dto.VendorDTO">
         <id column="ve_id" property="id" jdbcType="INTEGER" />
@@ -36,6 +37,7 @@
         <result column="ve_name" property="ve_name" jdbcType="VARCHAR" />
         <result column="ve_type" property="ve_type" jdbcType="VARCHAR" />
         <result column="ve_status" property="ve_status" jdbcType="VARCHAR" />
+        <result column="ve_remark" property="ve_remark" jdbcType="VARCHAR" />
     </resultMap>
 
     <select id="getVendorsByCondition" resultMap="VendorDTOResultMapper">
@@ -85,6 +87,7 @@
         <result column="vc_text4" property="vc_text4" jdbcType="VARCHAR" />
         <result column="vc_text5" property="vc_text5" jdbcType="VARCHAR" />
         <result column="vc_default" property="vc_default" jdbcType="VARCHAR" />
+        <result column="ve_remark" property="ve_remark" jdbcType="VARCHAR" />
     </resultMap>
 
     <select id="getListDataByCondition" resultMap="VendorListResultMapper">
@@ -102,7 +105,7 @@
         ve_id, ve_code, ve_name, ve_uu, ve_type, ve_begindate, ve_beginapamount, ve_beginprepayamount,
         ve_promisedays, ve_taxrate, ve_nsrzh, ve_bankaccount, ve_bankcode, ve_status, ve_statuscode,
         companyId, updaterId, updateTime, ve_text1,
-        ve_text2, ve_text3, ve_text4, ve_text5, ve_payamount, ve_leftamount, ve_beginym, ve_preamount
+        ve_text2, ve_text3, ve_text4, ve_text5, ve_payamount, ve_leftamount, ve_beginym, ve_preamount,ve_remark
     </sql>
     <select id="selectByPrimaryKey" resultMap="VendorResultMapper" parameterType="java.lang.Long" >
         select
@@ -124,7 +127,7 @@
         updateTime, ve_text1, ve_text2,
         ve_text3, ve_text4, ve_text5,
         ve_payamount, ve_leftamount, ve_beginym ,ve_preamount,
-        creatorId,createTime,creatorName
+        creatorId,createTime,creatorName,ve_remark
         )
         values (#{ve_code,jdbcType=VARCHAR}, #{ve_name,jdbcType=VARCHAR},
         #{ve_uu,jdbcType=VARCHAR}, #{ve_type,jdbcType=VARCHAR}, #{ve_begindate,jdbcType=TIMESTAMP},
@@ -136,7 +139,7 @@
         #{ve_text3,jdbcType=VARCHAR}, #{ve_text4,jdbcType=VARCHAR}, #{ve_text5,jdbcType=VARCHAR},
         #{ve_payamount,jdbcType=DOUBLE}, #{ve_leftamount,jdbcType=DOUBLE}, #{ve_beginym,jdbcType=INTEGER},
         #{ve_preamount,jdbcType=DOUBLE},
-        #{creatorId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{creatorName,jdbcType=VARCHAR}
+        #{creatorId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{creatorName,jdbcType=VARCHAR},#{ve_remark,jdbcType=VARCHAR}
         )
     </insert>
     <insert id="insertSelective" parameterType="com.usoftchina.saas.document.entities.Vendor" >
@@ -232,6 +235,9 @@
             <if test="creatorName != null" >
                 creatorName,
             </if>
+            <if test="ve_remark!=null">
+                ve_remark
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides="," >
             <if test="ve_code != null" >
@@ -321,6 +327,9 @@
             <if test="creatorName != null" >
                 #{creatorName,jdbcType=VARCHAR},
             </if>
+            <if test="ve_remark != null">
+                #{ve_remark,jdbcType=VARCHAR}
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.document.entities.Vendor" >
@@ -404,6 +413,9 @@
             <if test="ve_preamount !=null" >
                 #{ve_preamount,jdbcType=DOUBLE},
             </if>
+            <if test="ve_remark != null" >
+                ve_remark = #{ve_remark,jdbcType=VARCHAR},
+            </if>
         </set>
         where ve_id = #{id}
     </update>
@@ -434,7 +446,8 @@
         ve_payamount = #{ve_payamount,jdbcType=DOUBLE},
         ve_leftamount = #{ve_leftamount,jdbcType=DOUBLE},
         ve_beginym = #{ve_beginym,jdbcType=INTEGER},
-        ve_preamount =#{ve_preamount,jdbcType=DOUBLE}
+        ve_preamount =#{ve_preamount,jdbcType=DOUBLE},
+        ve_remark = #{ve_remark,jdbcType=VARCHAR}
         where ve_id = #{id}
     </update>
 

+ 4 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/VerificationController.java

@@ -69,7 +69,7 @@ public class VerificationController {
      * @param id
      * @return
      */
-    @RequestMapping("/delete/{id}")
+    @PostMapping("/delete/{id}")
     public Result delete(@PathVariable("id") Long id) {
         verificationService.delete(id);
         return Result.success();
@@ -80,7 +80,7 @@ public class VerificationController {
      * @param id
      * @return
      */
-    @RequestMapping("/deleteDetail1/{id}")
+    @PostMapping("/deleteDetail1/{id}")
     public Result deleteDetail1(@PathVariable("id") Long id) {
         verificationService.deleteDetail1(id);
         return Result.success();
@@ -91,7 +91,7 @@ public class VerificationController {
      * @param id
      * @return
      */
-    @RequestMapping("/deleteDetail2/{id}")
+    @PostMapping("/deleteDetail2/{id}")
     public Result deleteDetail2(@PathVariable("id") Long id) {
         verificationService.deleteDetail2(id);
         return Result.success();
@@ -121,7 +121,7 @@ public class VerificationController {
         return Result.success();
     }
 
-    @RequestMapping("/batchDelete")
+    @PostMapping("/batchDelete")
     public Result batchDelete(@RequestBody BatchDealBaseDTO body) {
         verificationService.batchDelete(body);
         return Result.success();

+ 1 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/VerificationMapper.java

@@ -37,7 +37,7 @@ public interface VerificationMapper extends CommonBaseMapper<Verification> {
 
     String selectCodeById(Long id);
 
-    String validateResAudit(Long id);
+    String validateResAudit(@Param("id") Long id);
 
     int validateSetAcount(@Param("detno") int detno,@Param("companyid")Long companyid);
 }

+ 2 - 5
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java

@@ -433,11 +433,8 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
             banksubledger.setBl_income(othreceiptsdetail.getOrd_nowbalance());
             banksubledger.setBl_remark(othreceiptsdetail.getOrd_remark());
             banksubledger.setBl_orderamount(othreceiptsdetail.getOrd_nowbalance());
-            if (banksubledgerMapper.selectCode(banksubledger.getBl_code()) == null){
-                banksubledgerMapper.insertSelective(banksubledger);
-            }else {
-                banksubledgerMapper.updateByPrimaryKeySelective(banksubledger);
-            }
+            banksubledger.setBl_item(othreceiptsdetail.getOrd_type());
+            banksubledgerMapper.insertSelective(banksubledger);
         }
     }
 

+ 2 - 5
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java

@@ -428,11 +428,8 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
             banksubledger.setBl_income(othspendingsdetail.getOsd_nowbalance());
             banksubledger.setBl_remark(othspendingsdetail.getOsd_remark());
             banksubledger.setBl_orderamount(othspendingsdetail.getOsd_nowbalance() * -1);
-            if (banksubledgerMapper.selectCode(banksubledger.getBl_code()) == null){
-                banksubledgerMapper.insertSelective(banksubledger);
-            }else {
-                banksubledgerMapper.updateByPrimaryKeySelective(banksubledger);
-            }
+            banksubledger.setBl_item(othspendingsdetail.getOsd_type());
+            banksubledgerMapper.insertSelective(banksubledger);
         }
     }
 

+ 8 - 31
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java

@@ -173,22 +173,6 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
                 }
             }
         }
-        //付款金额合计
-        Double amountTotal = new Double(0);
-        for (Paybalancedet det: paybalancedet) {
-            amountTotal = amountTotal + det.getPd_amount();
-        }
-        //更新本次预付款金额
-        Paybalance updatePay = new Paybalance();
-        updatePay.setId(paybalance.getId());
-
-        //折扣
-        Double discounts = paybalance.getPb_discounts();
-        if(discounts == null){
-            discounts = 0.0;
-        }
-        updatePay.setPb_preamount(amountTotal + discounts - nowbalanceTotal);
-        paybalanceMapper.updateByPrimaryKeySelective(updatePay);
     }
 
     @Override
@@ -562,19 +546,19 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
         subledger.setSl_ym(DateUtils.getYm(paybalance.getPb_date()));
         Double pdamount = paybalance.getPb_pdamount()==null?new Double(0):paybalance.getPb_pdamount();
         Double preamount = paybalance.getPb_preamount()==null?new Double(0):paybalance.getPb_preamount();
-        Double pbdamount = new Double(0);
-        subledger.setSl_amount(-pdamount);
-        subledger.setSl_yamount(preamount);
+        Double pbdamount = paybalance.getPb_pbdamount()==null?new Double(0):paybalance.getPb_pbdamount();
+        subledger.setSl_amount(-pbdamount);
         subledger.setSl_orderamount(pdamount);
 
         if(preamount!=0){
-            pbdamount = paybalance.getPb_pbdamount()==null?new Double(0):paybalance.getPb_pbdamount();
+            subledger.setSl_yamount(pbdamount);
+            subledger.setSl_namount(pdamount-pbdamount);
+        }else{
+            subledger.setSl_yamount(new Double(0));
+            subledger.setSl_namount(pdamount);
         }
-        subledger.setSl_namount(pdamount-pbdamount);
         subledger.setSl_remark(subledger.getSl_remark());
         subledger.setSl_preamount(preamount);
-
-
         subledgerMapper.insertSelective(subledger);
     }
 
@@ -605,14 +589,7 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
             banksubledger.setBl_manname(paybalance.getPb_manname());
             banksubledger.setBl_remark(paybalancedet.getPd_remark());
             banksubledger.setBl_orderamount(paybalancedet.getPd_amount() * -1);
-
-            List<String> bankList = banksubledgerMapper.selectCode(banksubledger.getBl_code());
-            if (bankList.size() == 0){
-                banksubledgerMapper.insertSelective(banksubledger);
-            }else {
-                banksubledgerMapper.updateByPrimaryKeySelective(banksubledger);
-            }
-
+            banksubledgerMapper.insertSelective(banksubledger);
         }
     }
 

+ 17 - 30
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java

@@ -21,6 +21,7 @@ import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import java.util.Date;
@@ -53,6 +54,7 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
     private CommonService commonService;
 
     @Override
+    @Transactional
     public DocBaseDTO insert(Rec rec) {
         Recbalance recbalance = rec.getMain();
         List<Recbalancedet> recbalancedet = rec.getItems1();
@@ -164,32 +166,17 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
             }
         }
         //不能选择重复的源单
-        for  ( int  i  =   0 ; i  <  recbalancedetail.size()  -   1 ; i ++ )  {
-            for  ( int  j  =  recbalancedetail.size()  -   1 ; j  >  i; j -- )  {
-                if  (recbalancedetail.get(j).getRbd_slcode().equals(recbalancedetail.get(i).getRbd_slcode()))  {
+        for  ( int  i  =   0 ; i  <  recbalancedetail.size()  -   1 ; i ++ ) {
+            for (int j = recbalancedetail.size() - 1; j > i; j--) {
+                if (recbalancedetail.get(j).getRbd_slcode().equals(recbalancedetail.get(i).getRbd_slcode())) {
                     throw new BizException(500, BizExceptionCode.PAYBALANCE_UNIQUESOURCECODE.getMessage());
                 }
             }
         }
-        //付款金额合计
-        Double amountTotal = new Double(0);
-        for (Recbalancedet det: recbalancedet) {
-            amountTotal = amountTotal + det.getRd_amount();
-        }
-        //更新本次预付款金额
-        Recbalance updatePay = new Recbalance();
-        updatePay.setId(recbalance.getId());
-
-        //折扣
-        Double discount = recbalance.getRb_discounts();
-        if (discount == null){
-            discount = 0.0;
-        }
-        updatePay.setRb_preamount(amountTotal + discount - nowbalanceTotal);
-        recbalanceMapper.updateByPrimaryKeySelective(updatePay);
     }
 
     @Override
+    @Transactional
     public void delete(int id) {
         DocBaseDTO baseDTO = getBaseDTOById(Long.valueOf(id));
 
@@ -214,6 +201,7 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
     }
 
     @Override
+    @Transactional
     public void deleteItem(int id) {
         DocBaseDTO baseDTO = getBaseDTOById(Long.valueOf(id));
         recbalancedetMapper.deleteItem(id);
@@ -223,6 +211,7 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
     }
 
     @Override
+    @Transactional
     public void deleteItems(int id) {
         DocBaseDTO baseDTO = getBaseDTOById(Long.valueOf(id));
         recbalancedetailMapper.deleteItem(id);
@@ -232,6 +221,7 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
     }
 
     @Override
+    @Transactional
     public DocBaseDTO audit(Rec rec) {
         Long companyId = BaseContextHolder.getCompanyId();
         Recbalance recbalance = rec.getMain();
@@ -566,15 +556,17 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         subledger.setSl_ym(DateUtils.getYm(recbalance.getRb_date()));
         Double rdamount = recbalance.getRb_rdamount()==null?new Double(0):recbalance.getRb_rdamount();
         Double preamount = recbalance.getRb_preamount()==null?new Double(0):recbalance.getRb_preamount();
-        Double pbdamount = new Double(0);
-        subledger.setSl_amount(-rdamount);
-        subledger.setSl_yamount(preamount);
+        Double rbdamount = recbalance.getRb_rbdamount()==null?new Double(0):recbalance.getRb_rbdamount();
+        subledger.setSl_amount(-rbdamount);
         subledger.setSl_orderamount(rdamount);
 
         if(preamount!=0){
-            pbdamount = recbalance.getRb_rbdamount()==null?new Double(0):recbalance.getRb_rbdamount();
+            subledger.setSl_yamount(rbdamount);
+            subledger.setSl_namount(rdamount-rbdamount);
+        }else{
+            subledger.setSl_yamount(new Double(0));
+            subledger.setSl_namount(rdamount);
         }
-        subledger.setSl_namount(rdamount-pbdamount);
         subledger.setSl_remark(subledger.getSl_remark());
         subledger.setSl_preamount(preamount);
 
@@ -609,12 +601,7 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
             banksubledger.setBl_manname(recbalance.getRb_manname());
             banksubledger.setBl_remark(recbalancedet.getRd_remark());
             banksubledger.setBl_orderamount(amount);
-            if (banksubledgerMapper.selectCode(banksubledger.getBl_code()) == null){
-                banksubledgerMapper.insertSelective(banksubledger);
-            }else {
-                banksubledgerMapper.updateByPrimaryKeySelective(banksubledger);
-            }
-
+            banksubledgerMapper.insertSelective(banksubledger);
         }
     }
     private DocBaseDTO getBaseDTOById(Long id) {

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

@@ -21,6 +21,7 @@ import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.service.VerificationService;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.BeanMapper;
+import com.usoftchina.saas.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -286,11 +287,13 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         Double amount1 = verification.getVc_amount1()==null?new Double(0):verification.getVc_amount1();
         Double amount2 = verification.getVc_amount2()==null?new Double(0):verification.getVc_amount2();
         subledger.setSl_date(verification.getVc_date());
+        subledger.setSl_ym(DateUtils.getYm(verification.getVc_date()));
         subledger.setSl_amount(-amount2);
         subledger.setSl_orderamount(new Double(0));
         subledger.setSl_yamount(new Double(0));
         subledger.setSl_remark(verification.getVc_remark());
         subledger.setSl_discount(new Double(0));
+        subledger.setSl_ym(DateUtils.getYm(verification.getVc_date()));
         if(kind.equals("receipts_offset_receivable") || kind.equals("prepaid_offset_payable")){
             subledger.setSl_preamount(-amount1);
         }else{
@@ -793,6 +796,9 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         //更新存在字段
         verificationMapper.updateByPrimaryKeySelective(verification);
 
+        subledgerMapper.deleteByPrimaryKey(nowverification.getVc_code(),nowverification.getVc_kind(),
+                BaseContextHolder.getCompanyId());
+
         //更新出入库状态
         this.updateProdInoutStatus(id);
 
@@ -981,7 +987,7 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
             Long id = docBaseDTO.getId();
 
             //更新客户或者供应商的金额
-            Verification nowverification = verificationMapper.selectByPrimaryKey(id);
+            Verification nowverification = verificationMapper.selectByPrimaryKey(Math.toIntExact(id));
             VerificationDTO verificationDTO = BeanMapper.map(nowverification,VerificationDTO.class);
             updateAuditCustomer(verificationDTO);
             updateAuditVendor(verificationDTO);
@@ -1022,7 +1028,7 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
             Long id = docBaseDTO.getId();
 
             //更新客户或者供应商的金额
-            Verification nowverification = verificationMapper.selectByPrimaryKey(id);
+            Verification nowverification = verificationMapper.selectByPrimaryKey(Math.toIntExact(id));
             VerificationDTO verificationDTO = BeanMapper.map(nowverification,VerificationDTO.class);
             updateResAuditCustomer(verificationDTO);
             updateResAuditVendor(verificationDTO);
@@ -1050,6 +1056,9 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
             verification.setUpdateTime(new Date());
             verificationMapper.updateByPrimaryKeySelective(verification);
 
+            subledgerMapper.deleteByPrimaryKey(nowverification.getVc_code(),nowverification.getVc_kind(),
+                    BaseContextHolder.getCompanyId());
+
             this.updateProdInoutStatus(id);
         }
     }

+ 6 - 0
applications/money/money-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -69,6 +69,9 @@
       <if test="bk_bankcode != null" >
         bk_bankcode,
       </if>
+      <if test="bk_bankid != null" >
+        bk_bankid,
+      </if>
       <if test="bk_bankname != null" >
         bk_bankname,
       </if>
@@ -131,6 +134,9 @@
       <if test="bk_bankcode != null" >
         #{bk_bankcode,jdbcType=VARCHAR},
       </if>
+      <if test="bk_bankid != null" >
+        #{bk_bankid,jdbcType=VARCHAR},
+      </if>
       <if test="bk_bankname != null" >
         #{bk_bankname,jdbcType=VARCHAR},
       </if>

+ 8 - 1
applications/money/money-server/src/main/resources/mapper/BanksubledgerMapper.xml

@@ -109,7 +109,7 @@
     </select>
     <delete id="deleteByPrimaryKey">
     delete from banksubledger
-    where bl_id = #{code,jdbcType=VARCHAR} and bl_kind = #{kind, jdbcType=VARCHAR}
+    where bl_code = #{code,jdbcType=VARCHAR} and bl_kind = #{kind, jdbcType=VARCHAR}
     and companyid = #{companyid}
   </delete>
     <delete id="deleteByExample" parameterType="com.usoftchina.saas.money.po.BanksubledgerExample">
@@ -448,4 +448,11 @@
     where bk_bankcode = #{bankcode,jdbcType=VARCHAR} and companyId = #{companyId}
   </select>
 
+    <select id="checkbankSubledgerExist" resultType="java.lang.Integer">
+        select count(1) from banksubledger where bl_kind = #{bl_kind} and
+        bl_code= #{bl_code} and companyid = #{companyid} and bl_bankid= #{bl_bankid}
+    </select>
+
+
+
 </mapper>

+ 1 - 1
applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml

@@ -593,7 +593,7 @@
   <select id="selectCodeById" resultType="string" parameterType="java.lang.Long">
     select vc_code from Verification where vc_id=#{id}
   </select>
-  <select id="validateResAudit" parameterType="long" resultType="java.lang.String">
+  <select id="validateResAudit"  resultType="java.lang.String">
     select vc_code from Verification where vc_id = #{id} and IFNULL(vc_statuscode,'UNAUDITED')='UNAUDITED'
   </select>
 

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

@@ -49,6 +49,8 @@ public class ProdIODetailDTO extends CommonBaseDTO implements Serializable {
 
     private Double pd_nettotal;
 
+    private Double pd_ordertotal;
+
     private Integer pd_whid;
 
     private String pd_whcode;

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

@@ -44,6 +44,8 @@ public class ProdIODetail extends CommonBaseEntity implements Serializable {
 
     private Double pd_nettotal;
 
+    private Double pd_ordertotal;
+
     private Integer pd_whid;
 
     private String pd_whcode;

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

@@ -102,6 +102,8 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private Double pd_nettotal;
 
+    private Double pd_ordertotal;
+
     private Integer pd_whid;
 
     private String pd_whcode;

+ 1 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/report/PurchaseReportDetail.java

@@ -119,6 +119,7 @@ public class PurchaseReportDetail extends CommonBaseEntity implements Serializab
 
     private Double pd_accepttotal;
 
+    private String pd_remark;
     //private ProductDTO productDTO;
     private Long pr_id;
     private String pr_code;

+ 5 - 4
applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -21,6 +21,7 @@
     <result column="pd_taxrate" jdbcType="DOUBLE" property="pd_taxrate" />
     <result column="pd_netprice" jdbcType="DOUBLE" property="pd_netprice" />
     <result column="pd_nettotal" jdbcType="DOUBLE" property="pd_nettotal" />
+    <result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />
     <result column="pd_whid" jdbcType="INTEGER" property="pd_whid" />
     <result column="pd_whcode" jdbcType="VARCHAR" property="pd_whcode" />
     <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />
@@ -654,15 +655,15 @@
 
   <update id="calcProdIn">
     update prodiodetail set pd_netprice = ifnull(pd_orderprice,0)/(1+ifnull(pd_taxrate,0)/100) where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodiodetail set pd_total = round(ifnull(pd_orderprice,0)*ifnull(pd_inqty,0),2),pd_nettotal = round(pd_netprice*ifnull(pd_inqty,0),2)  where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodinout set pi_total = round((select sum(pd_total) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ),2)  where pi_id = #{pi_id,jdbcType=INTEGER};
+    update prodiodetail set pd_ordertotal = round(ifnull(pd_orderprice,0)*ifnull(pd_inqty,0),2),pd_nettotal = round(pd_netprice*ifnull(pd_inqty,0),2)  where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_total = round((select sum(pd_ordertotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ),2)  where pi_id = #{pi_id,jdbcType=INTEGER};
     update prodinout set pi_nettotal = round((select sum(pd_nettotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ),2)  where pi_id = #{pi_id,jdbcType=INTEGER};
   </update>
 
   <update id="calcProdOut">
     update prodiodetail set pd_netprice = ifnull(pd_orderprice,0)/(1+ifnull(pd_taxrate,0)/100) where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodiodetail set pd_total = round(ifnull(pd_orderprice,0)*ifnull(pd_outqty,0),2),pd_nettotal = round(pd_netprice*ifnull(pd_outqty,0),2)  where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodinout set pi_total = round((select sum(pd_total) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ),2)  where pi_id = #{pi_id,jdbcType=INTEGER};
+    update prodiodetail set pd_ordertotal = round(ifnull(pd_orderprice,0)*ifnull(pd_outqty,0),2),pd_nettotal = round(pd_netprice*ifnull(pd_outqty,0),2)  where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_total = round((select sum(pd_ordertotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ),2)  where pi_id = #{pi_id,jdbcType=INTEGER};
     update prodinout set pi_nettotal = round((select sum(pd_nettotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ),2)  where pi_id = #{pi_id,jdbcType=INTEGER};
   </update>
 

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

@@ -48,6 +48,7 @@
     <result column="pd_taxrate" jdbcType="DOUBLE" property="pd_taxrate" />
     <result column="pd_netprice" jdbcType="DOUBLE" property="pd_netprice" />
     <result column="pd_nettotal" jdbcType="DOUBLE" property="pd_nettotal" />
+    <result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />
     <result column="pd_whid" jdbcType="INTEGER" property="pd_whid" />
     <result column="pd_whcode" jdbcType="VARCHAR" property="pd_whcode" />
     <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />
@@ -148,6 +149,7 @@
     <result column="pd_taxrate" jdbcType="DOUBLE" property="pd_taxrate" />
     <result column="pd_netprice" jdbcType="DOUBLE" property="pd_netprice" />
     <result column="pd_nettotal" jdbcType="DOUBLE" property="pd_nettotal" />
+    <!--<result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />-->
     <result column="pd_whid" jdbcType="INTEGER" property="pd_whid" />
     <result column="pd_whcode" jdbcType="VARCHAR" property="pd_whcode" />
     <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />

+ 1 - 0
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml

@@ -70,6 +70,7 @@
     <result column="pd_text4" property="pd_text4" jdbcType="VARCHAR" />
     <result column="pd_text5" property="pd_text5" jdbcType="VARCHAR" />
     <result column="pd_yqty" property="pd_yqty" jdbcType="DOUBLE" />
+    <result column="pd_remark" property="pd_remark" jdbcType="VARCHAR" />
     <result column="pr_id" property="pr_id"/>
     <result column="pr_code" property="pr_code"/>
     <result column="pr_detail" property="pr_detail"/>

+ 12 - 1
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/SaleApplication.java

@@ -6,6 +6,8 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
 
 /**
@@ -17,9 +19,18 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 @EnableEurekaClient
 @EnableFeignClients("com.usoftchina.saas")
 @EnableAuthClient
-public class SaleApplication  {
+public class SaleApplication extends WebMvcConfigurerAdapter {
     public static void main(String[] args) {
         SpringApplication.run(SaleApplication.class, args);
     }
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+
+        registry.addMapping("/**")
+                .allowCredentials(true)
+                .allowedHeaders("*")
+                .allowedOrigins("*")
+                .allowedMethods("*");
+    }
 
 }

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

@@ -34,6 +34,8 @@ public interface ProdInOutMapper extends CommonBaseMapper<ProdInOut> {
 
     String validateAudit(List<DocBaseDTO> baseDTOs);
 
+    String validateClose(List<DocBaseDTO> baseDTOs);
+
     String validateBatchUnAudit(List<DocBaseDTO> baseDTOs);
 
     String validateBatchClose(List<DocBaseDTO> baseDTOs);

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

@@ -56,4 +56,6 @@ public interface SaleMapper extends CommonBaseMapper<Sale> {
     Integer checkCustomer(Long id);
 
     String validateCustAudit(List<DocBaseDTO> baseDTOs);
+
+    String validateClose(List<DocBaseDTO> baseDTOs);
 }

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

@@ -283,6 +283,20 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 baseDTOs.getBaseDTOs().size() == 0) {
             return "没有可审核单据。";
         }
+        //存在已审核单据,单据编号:XXXX
+        String msg = prodInOutMapper.validateAudit(baseDTOs.getBaseDTOs());
+        if (null != msg) {
+            String message = BizExceptionCode.SALE_ORDER_HASAUDIT.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
+            throw new BizException(code, String.format(message, msg));
+        }
+        //存在已关闭单据,单据编号:XXXX
+        msg = prodInOutMapper.validateClose(baseDTOs.getBaseDTOs());
+        if (null != msg) {
+            String message = BizExceptionCode.SALE_ORDER_ISCOLSED.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_ISCOLSED.getCode();
+            throw new BizException(code, String.format(message, msg));
+        }
         StringBuffer errorMsg = new StringBuffer();
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             try{
@@ -291,7 +305,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleAudit(prodInOutDTO);
             }catch (Exception e){
-                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                msg = BizExceptionCode.DEAL_FAILED.getMessage();
                 errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
@@ -337,6 +351,20 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 baseDTOs.getBaseDTOs().size() == 0) {
             return "无可反审核单据。";
         }
+        //存在未审核单据,单据编号:XXXX
+        String msg = prodInOutMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
+        if (null != msg) {
+            String message = BizExceptionCode.SALE_ORDER_ISUNAUDIT.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_ISUNAUDIT.getCode();
+            throw new BizException(code, String.format(message, msg));
+        }
+        //存在已关闭单据,单据编号:XXXX
+        msg = prodInOutMapper.validateClose(baseDTOs.getBaseDTOs());
+        if (null != msg) {
+            String message = BizExceptionCode.SALE_ORDER_ISCOLSED.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_ISCOLSED.getCode();
+            throw new BizException(code, String.format(message, msg));
+        }
         StringBuffer errorMsg = new StringBuffer();
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             try {
@@ -345,7 +373,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleUnAudit(prodInOutDTO);
             }catch (Exception e){
-                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                msg = BizExceptionCode.DEAL_FAILED.getMessage();
                 errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }

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

@@ -328,13 +328,21 @@ public class SaleServiceImpl implements SaleService{
                 baseDTOs.getBaseDTOs().size() == 0) {
             return;
         }
-      /*  String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
+        //存在未审核单据,单据编号:XXXX
+        String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
         if (null != msg) {
-            String message = BizExceptionCode.SALE_ORDER_HASAUDIT.getMessage();
-            int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
+            String message = BizExceptionCode.SALE_ORDER_ISUNAUDIT.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_ISUNAUDIT.getCode();
+            throw new BizException(code, String.format(message, msg));
+        }
+        //存在已关闭单据,单据编号:XXXX
+        msg = saleMapper.validateClose(baseDTOs.getBaseDTOs());
+        if (null != msg) {
+            String message = BizExceptionCode.SALE_ORDER_ISCOLSED.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_ISCOLSED.getCode();
             throw new BizException(code, String.format(message, msg));
         }
-        saleMapper.BatchcheckSendStatus();*/
+        //saleMapper.BatchcheckSendStatus();
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             unAudit(base.getId());
         }

+ 11 - 6
applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -494,31 +494,36 @@
     select count(1) from prodinout where pi_inoutno = #{code} and pi_id != #{id}
   </select>
   <select id="validateUnAudit" parameterType="long" resultType="java.lang.String">
-    select pi_inoutno from prodinout where pi_id = #{id} and IFNULL(pi_statuscode,'UNAUDITED')!='AUDITED'
+    select pi_inoutno from prodinout where pi_id = #{id} and IFNULL(pi_statuscode,' ')!='AUDITED'
   </select>
   <select id="validateAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
-    select GROUP_CONCAT(pi_inoutno) from prodinout where pi_statuscode='AUDITED' and pi_id in
+    select GROUP_CONCAT(pi_inoutno) from prodinout where IFNULL(pi_statuscode,' ')='AUDITED' and pi_id in
+    <foreach collection="list" item="item" open="(" close=")" separator=",">
+      #{item.id}
+    </foreach>
+  </select>
+  <select id="validateClose" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
+    select GROUP_CONCAT(pi_inoutno) from prodinout where IFNULL(pi_statuscode,' ')='CLOSE' and pi_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
       #{item.id}
     </foreach>
   </select>
-
   <select id="validateBatchUnAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
-    select GROUP_CONCAT(pi_inoutno) from prodinout where pi_statuscode='UNAUDITED' and pi_id in
+    select GROUP_CONCAT(pi_inoutno) from prodinout where IFNULL(pi_statuscode,' ')='UNAUDITED' and pi_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
       #{item.id}
     </foreach>
   </select>
 
   <select id="validateBatchClose" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
-    select GROUP_CONCAT(pi_inoutno) from prodinout where pi_statuscode!='AUDITED' and pi_id in
+    select GROUP_CONCAT(pi_inoutno) from prodinout where IFNULL(pi_statuscode,' ')!='AUDITED' and pi_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
       #{item.id}
     </foreach>
   </select>
 
   <select id="validateBatchOpen" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
-    select GROUP_CONCAT(pi_inoutno) from prodinout where pi_statuscode!='CLOSE' and pi_id in
+    select GROUP_CONCAT(pi_inoutno) from prodinout where IFNULL(pi_statuscode,' ')!='CLOSE' and pi_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
       #{item.id}
     </foreach>

+ 7 - 2
applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml

@@ -356,7 +356,12 @@
       #{item.id}
     </foreach>
   </select>
-
+  <select id="validateClose" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
+      select GROUP_CONCAT(sa_code) from sale where IFNULL(sa_sendstatuscode,' ')='CLOSE' and sa_id in
+    <foreach collection="list" item="item" open="(" close=")" separator=",">
+      #{item.id}
+    </foreach>
+  </select>
   <select id="validateCustAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
     select GROUP_CONCAT(sa_code) from sale left join customer on cu_id=sa_custid  where sa_statuscode='AUDITED' and sa_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
@@ -364,7 +369,7 @@
     </foreach>
   </select>
   <select id="validateBatchUnAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
-    select GROUP_CONCAT(sa_code) from sale where sa_statuscode='UNAUDITED' and sa_id in
+    select GROUP_CONCAT(sa_code) from sale where IFNULL(sa_statuscode,'UNAUDITED') = 'UNAUDITED' and sa_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
       #{item.id}
     </foreach>

+ 2 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdIODetailDTO.java

@@ -49,6 +49,8 @@ public class ProdIODetailDTO extends CommonBaseDTO implements Serializable {
 
     private Double pd_nettotal;
 
+    private Double pd_ordertotal;
+
     private Long pd_whid;
 
     private String pd_whcode;

+ 2 - 2
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdIODetail.java

@@ -45,6 +45,8 @@ public class ProdIODetail extends CommonBaseEntity implements Serializable {
 
     private Double pd_nettotal;
 
+    private Double pd_ordertotal;
+
     private Long pd_whid;
 
     private String pd_whcode;
@@ -81,8 +83,6 @@ public class ProdIODetail extends CommonBaseEntity implements Serializable {
 
     private Long pd_ioid;
 
-    private Double pd_ordertotal;
-
     private ProductDTO productDTO;
 
 }

+ 2 - 1
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java

@@ -96,6 +96,8 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private Double pd_nettotal;
 
+    private Double pd_ordertotal;
+
     private Integer pd_whid;
 
     private String pd_whcode;
@@ -130,7 +132,6 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private String pd_remark;
 
-    private Double pd_ordertotal;
 
     private Long pd_ioid;
 

+ 6 - 5
applications/storage/storage-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -21,6 +21,7 @@
     <result column="pd_taxrate" jdbcType="DOUBLE" property="pd_taxrate" />
     <result column="pd_netprice" jdbcType="DOUBLE" property="pd_netprice" />
     <result column="pd_nettotal" jdbcType="DOUBLE" property="pd_nettotal" />
+    <result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />
     <result column="pd_whid" jdbcType="INTEGER" property="pd_whid" />
     <result column="pd_whcode" jdbcType="VARCHAR" property="pd_whcode" />
     <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />
@@ -739,19 +740,19 @@
 
   <update id="calcProdIn">
     update prodiodetail set pd_netprice = ifnull(pd_orderprice,0)/(1+ifnull(pd_taxrate,0)/100) where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodiodetail set pd_total = ifnull(pd_orderprice,0)*ifnull(pd_inqty,0),pd_nettotal = pd_netprice*ifnull(pd_inqty,0) where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodinout set pi_total = (select sum(pd_total) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
+    update prodiodetail set pd_ordertotal = ifnull(pd_orderprice,0)*ifnull(pd_inqty,0),pd_nettotal = pd_netprice*ifnull(pd_inqty,0) where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_total = (select sum(pd_ordertotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
     update prodinout set pi_nettotal = (select sum(pd_nettotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
   </update>
 
   <update id="calcProdOut">
     update prodiodetail set pd_netprice = ifnull(pd_orderprice,0)/(1+ifnull(pd_taxrate,0)/100) where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodiodetail set pd_total = ifnull(pd_orderprice,0)*ifnull(pd_outqty,0),pd_nettotal = pd_netprice*ifnull(pd_outqty,0) where pd_piid = #{pi_id,jdbcType=INTEGER};
-    update prodinout set pi_total = (select sum(pd_total) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
+    update prodiodetail set pd_ordertotal = ifnull(pd_orderprice,0)*ifnull(pd_outqty,0),pd_nettotal = pd_netprice*ifnull(pd_outqty,0) where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_total = (select sum(pd_ordertotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
     update prodinout set pi_nettotal = (select sum(pd_nettotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
   </update>
 
   <delete id="deleteByInOutNo" >
       DELETE FROM prodiodetail WHERE PD_INOUTNO=#{code} AND PD_PICLASS=#{type} AND COMPANYID=#{companyId}
   </delete>
-</mapper>
+</mapper>

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

@@ -48,6 +48,7 @@
     <result column="pd_taxrate" jdbcType="DOUBLE" property="pd_taxrate" />
     <result column="pd_netprice" jdbcType="DOUBLE" property="pd_netprice" />
     <result column="pd_nettotal" jdbcType="DOUBLE" property="pd_nettotal" />
+    <result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />
     <result column="pd_whid" jdbcType="INTEGER" property="pd_whid" />
     <result column="pd_whcode" jdbcType="VARCHAR" property="pd_whcode" />
     <result column="pd_whname" jdbcType="VARCHAR" property="pd_whname" />

+ 41 - 0
frontend/saas-portal-web/build/build-dev.js

@@ -0,0 +1,41 @@
+'use strict'
+require('./check-versions')()
+
+process.env.NODE_ENV = 'development'
+
+const ora = require('ora')
+const rm = require('rimraf')
+const path = require('path')
+const chalk = require('chalk')
+const webpack = require('webpack')
+const config = require('../config')
+const webpackConfig = require('./webpack.prod.conf')
+
+const spinner = ora('building for development...')
+spinner.start()
+
+rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
+  if (err) throw err
+  webpack(webpackConfig, (err, stats) => {
+    spinner.stop()
+    if (err) throw err
+    process.stdout.write(stats.toString({
+      colors: true,
+      modules: false,
+      children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
+      chunks: false,
+      chunkModules: false
+    }) + '\n\n')
+
+    if (stats.hasErrors()) {
+      console.log(chalk.red('  Build failed with errors.\n'))
+      process.exit(1)
+    }
+
+    console.log(chalk.cyan('  Build complete.\n'))
+    console.log(chalk.yellow(
+      '  Tip: built files are meant to be served over an HTTP server.\n' +
+      '  Opening index.html over file:// won\'t work.\n'
+    ))
+  })
+})

+ 4 - 2
frontend/saas-portal-web/build/webpack.prod.conf.js

@@ -13,7 +13,9 @@ const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
 
 const env = process.env.NODE_ENV === 'testing'
   ? require('../config/test.env')
-  : require('../config/prod.env')
+  : (process.env.NODE_ENV === 'development'
+    ? require('../config/dev.env')
+    : require('../config/prod.env'))
 
 const webpackConfig = merge(baseWebpackConfig, {
   module: {
@@ -48,7 +50,7 @@ const webpackConfig = merge(baseWebpackConfig, {
       filename: utils.assetsPath('css/[name].[contenthash].css'),
       // Setting the following option to `false` will not extract CSS from codesplit chunks.
       // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
-      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 
+      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
       // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
       allChunks: true,
     }),

+ 3 - 4
frontend/saas-portal-web/config/dev.env.js

@@ -6,11 +6,10 @@ module.exports = merge(prodEnv, {
   NODE_ENV: '"development"',
   BASE_URL: {
     // 前端地址
-    web: '"http://192.168.0.181"',
+    web: '"https://trade-dev.usoftchina.com:5443"',
     // 后端接口网关
-    api: '"http://192.168.0.181:8560"',
-    // api:'"http://192.168.253.31:8560"',
+    api: '"https://saas-api-dev.usoftchina.com:5443"',
     // 账户中心接口
-    sso: '"http://192.168.253.12:32323"'
+    sso: '"https://sso-dev.usoftchina.com:5443"'
   }
 })

+ 2 - 2
frontend/saas-portal-web/config/test.env.js

@@ -6,9 +6,9 @@ module.exports = merge(devEnv, {
   NODE_ENV: '"testing"',
   BASE_URL: {
     // 前端地址
-    web: '"https://trade-dev.usoftchina.com:5443"',
+    web: '"https://trade-test.usoftchina.com:5443"',
     // 后端接口网关
-    api: '"https://saas-api-dev.usoftchina.com:5443"',
+    api: '"https://saas-api-test.usoftchina.com:5443"',
     // 账户中心接口
     sso: '"https://sso-dev.usoftchina.com:5443"'
   }

+ 2 - 1
frontend/saas-portal-web/package.json

@@ -11,7 +11,8 @@
     "e2e": "node test/e2e/runner.js",
     "test": "npm run unit && npm run e2e",
     "build": "node build/build.js",
-    "build-test": "node build/build-test.js"
+    "build-test": "node build/build-test.js",
+    "build-dev": "node build/build-dev.js"
   },
   "dependencies": {
     "axios": "^0.18.0",

+ 9 - 1
frontend/saas-portal-web/src/components/conenter/addgongsi.vue

@@ -80,6 +80,7 @@
 </template>
 
 <script>
+import Session from '@/utils/session'
 import VDistpicker from 'v-distpicker'
     export default {
         data(){
@@ -112,7 +113,7 @@ import VDistpicker from 'v-distpicker'
                 document.documentElement.scrollTop = 0;
                 this.$router.push({name:'company',}); 
             },
-            //测企业名称
+            //测企业名称
             spaceName(){
                 let qyname = this.$refs.qyname.value.replace(/\s+/g, "");//公司名字过滤空格
                 if(qyname == ''){
@@ -235,6 +236,13 @@ import VDistpicker from 'v-distpicker'
                                 }
                             })
                             .then(res=>{
+                                let id = res.data.data
+                                let logoUrl = null
+                                let name = qyname
+                                let addenterprise = {'id':id, 'logoUrl': logoUrl, 'name': name}
+                                let session = JSON.parse(window.localStorage.getItem('app-state-session'))
+                                session.account.companies.push(addenterprise)
+                                Session.set(session);
                                 document.documentElement.scrollTop = 0;
                                 this.$router.push({name:'company'})
                             })

+ 7 - 0
frontend/saas-portal-web/src/components/conenter/company.vue

@@ -263,6 +263,13 @@
                     if (res.data.success) {
                         // this.saasid = res.data.data
                         // this.ktsass = false;
+                        let id = res.data.data
+                        let name = qyname
+                        let logoUrl = null
+                        let addenterprise = {'id':id, 'logoUrl': logoUrl, 'name': name}
+                        let session = JSON.parse(window.localStorage.getItem('app-state-session'))
+                        session.account.companies.push(addenterprise)
+                        Session.set(session);
                         this.$router.go(0);
                     } else {
                         let msg = res.data.message

+ 7 - 12
frontend/saas-portal-web/src/components/conenter/enterprise.vue

@@ -76,26 +76,17 @@
                     <div class="gs-anquanxinxi">
                         <div class="over aq-title"><span class="left">登录密码</span><button class="right dianji">更换密码</button></div>
                         <div class="aq-text">
-                            <p>飞飞有限公司生生世世生生世世生生世世生生世生生世世生生世世生生世世生生世世生生世世生生世世生生世世生世
-                                呜呜呜呜呜呜
+                            <p>安全性高的密码可以使账号更安全,建议您定期更换密码,并且设置一个包含数字和字母,长度超过8位以上的密码。
                             </p>
                         </div>
                     </div>
                     <div class="gs-anquanxinxi">
                         <div class="over aq-title"><span class="left">手机验证</span><button class="right dianji">修改手机号</button></div>
                         <div class="aq-text">
-                            <p>飞飞有限公司生生世世生生世世生生世世生生世生生世世生生世世生生世世生生世世生生
+                            <p>您绑定的手机:{{mobile}}。若已丢失或停用,请立即更换,避免账户被盗。
                             </p>
                         </div>
                     </div>
-                    <div class="gs-anquanxinxi">
-                        <div class="over aq-title"><span class="left">邮箱认证</span><button class="right dianji">绑定邮箱</button></div>
-                        <div class="aq-text">
-                            <p>飞飞有限公司生生世世生生世世生生
-                            </p>
-                        </div>
-                    </div>
-                    
                 </div>
             </div>
             
@@ -112,13 +103,17 @@ import { setTimeout } from 'timers';
                 nowindex: 0,//tab切换
                 tianjiaqiye: true,//添加企业切换
                 mytoken: JSON.parse(localStorage.getItem('app-state-session')).account,//本地储存的用户信息
+                mobile: null,
                 tab: [
                     {name: '企业信息'},
                     {name: '个人信息'},
-                    // {name: '安全信息'},
+                    {name: '安全信息'},
                     ],
             }
         },
+        mounted(){
+            let mob = this.mytoken.mobile;
+        },
         computed :{
             setTokenPage() {
                 return this.$url.web + '/set-token.html'

+ 58 - 3
frontend/saas-portal-web/src/components/conenter/problem.vue

@@ -21,7 +21,10 @@
                         <li>
                           <span class="left bz-yuandian"></span>
                           <span class="left">方式不同吧好像是差不多 </span>
-                          <img class="right bz-copy" src="/static/img/Triangle Copy 4.png" alt="">
+                          <img @click="shows" class="right bz-copy" :class="isrotate ? 'rotates' : 'norotate'" src="/static/img/Triangle Copy 4.png" alt="">
+                          <div class="Text-content" :class="isshow ? 'dispays' : 'hides'">
+                            <p>警方圣诞快乐JFK的实力积分积分累积角度考虑实际疯狂的世界佛教埃及空军看见反抗类毒素解放就</p>
+                          </div>
                         </li>
                         <li>
                           <span class="left bz-yuandian"></span>
@@ -46,16 +49,64 @@
 
 <script>
     export default {
-        
+        data(){
+          return {
+            isshow: false,
+            isrotate: false
+          }
+        },
+        methods: {
+          shows(){
+            this.isshow = !this.isshow
+            this.isrotate = !this.isrotate
+          }
+        }
     }
 </script>
 
 <style scoped>
+.dispays {
+  /* display: block; */
+  height: 60px;
+  transition: All 0.4s ease-in-out;
+  -webkit-transition: All 0.4s ease-in-out;
+  -moz-transition: All 0.4s ease-in-out;
+  -o-transition: All 0.4s ease-in-out;
+}
+.hides {
+  /* display: none; */
+  height: 0;
+  margin-bottom: -13px;
+  transition: All 0.4s ease-in-out;
+  -webkit-transition: All 0.4s ease-in-out;
+  -moz-transition: All 0.4s ease-in-out;
+  -o-transition: All 0.4s ease-in-out;
+}
+.Text-content {
+  float: left;
+  width: 90%;
+  margin-left: 4%;
+  margin-top: 2%;
+}
+.rotates {
+  transform: rotate(0deg);
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+}
+.norotate {
+  transform: rotate(-90deg);
+  -webkit-transform: rotate(-90deg);
+  -moz-transform: rotate(-90deg);
+  -o-transform: rotate(-90deg);
+  -ms-transform: rotate(-90deg);
+}
 .bz-container {
     width: 55%;
     margin: 0 auto;
     font-size: 14px;
-    margin-top: 180px;
+    margin-top: 11%;
     margin-bottom: 190px;
 }
 .bz-titlebox {
@@ -78,5 +129,9 @@
 .bz-copy {
     margin-right: 7px;
     cursor: pointer;
+    transition: All 0.4s ease-in-out;
+    -webkit-transition: All 0.4s ease-in-out;
+    -moz-transition: All 0.4s ease-in-out;
+    -o-transition: All 0.4s ease-in-out;
 }
 </style>

+ 20 - 5
frontend/saas-web/app.json

@@ -306,12 +306,27 @@
      * Settings specific to testing builds.
      */
     "testing": {
+        "output": {
+            "appCache": {
+                "enable": true,
+                "path": "cache.appcache"
+            }
+        },
+        "loader": {
+            "cache": "${build.timestamp}"
+        },
+        "cache": {
+            "enable": true
+        },
+        "compressor": {
+            "type": "yui"
+        },
         "server": {
-            "accountCenter":"http://192.168.0.181:8000",
-            "accountEnterprise":"http://192.168.0.181:8000/#/enterprise",
+            "accountCenter": "https://saas-test.usoftchina.com:5443",
+            "accountEnterprise": "https://saas-test.usoftchina.com:5443/#/enterprise",
             "basePath": {
-                "https": "https://saas-api-dev.usoftchina.com:5443",
-                "http": "http://192.168.0.181:8560"
+                "https": "https://saas-api-test.usoftchina.com:5443",
+                "http": "http://192.168.0.181:8575"
             },
             "urlPattern": "^\/api\/"
         }
@@ -329,7 +344,7 @@
             "accountEnterprise":"http://192.168.0.181:8000/#/enterprise",
             "basePath": {
                 "https": "https://saas-api-dev.usoftchina.com:5443",
-                "http": "http://192.168.0.181:8560"
+                "http": "http://192.168.253.58:8560"
             },
             "urlPattern": "^\/api\/"
         }

+ 9 - 0
frontend/saas-web/app/view/core/base/BasePanel.scss

@@ -19,6 +19,15 @@
         border-bottom-color: #fff !important;
         border-bottom-width: 1px !important;
     }
+    .x-btn-menu-active{
+        .x-btn-wrap{
+            .x-btn-button{
+                .x-btn-inner{
+                    color:#fff;
+                }
+            }
+        }
+    }
 }
 .core-base-gridpanel{
     .x-grid-body{

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

@@ -53,7 +53,7 @@ Ext.define('saas.view.core.base.GridPanel', {
                                 }
                             }else {
                                 console.error('exception: ', response.responseJson);
-                                saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson.message);
+                                saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson?response.responseJson.message:'请求超时');
                             }
                         }
                     }

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

@@ -166,7 +166,8 @@ Ext.define('saas.view.core.base.ImportWindow', {
                         handler:function(b){
                             var caller = b.ownerCt.ownerCt.ownerCt.ownerCt.caller;
                             //获取模版
-                            window.location.href = '/api/commons/excel/import/templet?caller='+caller;
+                            var serverOptions = Ext.manifest.server;
+                            window.location.href = (serverOptions.basePath.http?serverOptions.basePath.http:serverOptions.basePath) + '/api/commons/excel/import/templet?caller='+caller;
                         }
                     }
                 },{

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

@@ -27,6 +27,18 @@ Ext.define('saas.view.core.dbfind.DbfindGridPanel', {
                         type: 'json',
                         rootProperty: 'data.list',
                         totalProperty: 'data.total',
+                    },
+                    listeners: {
+                        exception: function(proxy, response, operation, eOpts) {
+                            if(operation.success) {
+                                if(response.timedout) {
+                                    saas.util.BaseUtil.showErrorToast('请求超时');
+                                }
+                            }else {
+                                console.error('exception: ', response.responseJson);
+                                saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson.message);
+                            }
+                        }
                     }
                 },
                 listeners: {

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

@@ -66,6 +66,18 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
                         type: 'json',
                         rootProperty: 'data.list',
                         totalProperty: 'data.total',
+                    },
+                    listeners: {
+                        exception: function(proxy, response, operation, eOpts) {
+                            if(operation.success) {
+                                if(response.timedout) {
+                                    saas.util.BaseUtil.showErrorToast('请求超时');
+                                }
+                            }else {
+                                console.error('exception: ', response.responseJson);
+                                saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson.message);
+                            }
+                        }
                     }
                 },
                 listeners: {

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

@@ -18,7 +18,7 @@ Ext.define('saas.view.core.dbfind.types.BomDbfindTrigger', {
         width: 200
     }],
     
-    defaultCondition: "bo_statuscode='OPEN'",
+    defaultCondition: "bo_statuscode='ENABLE'",
     //窗口字段设置
     dbSearchFields: [{
         emptyText: '输入BOM编号或名称',

+ 13 - 30
frontend/saas-web/app/view/core/dbfind/types/CustomerDbfindTrigger.js

@@ -8,7 +8,7 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
     dataUrl: '/api/document/customer/dbfind',
     addXtype: 'document-customer-formpanel',
     addTitle: '客户资料',
-    defaultCondition: "cu_statuscode='OPEN'",
+    defaultCondition: "cu_statuscode='ENABLE'",
     
     dbtpls: [{
         field: 'cu_code',
@@ -31,34 +31,22 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
         conditionCode: 'id',
         text: "客户ID",
         dataIndex: "id",
-        hidden:true,
-        xtype: "",
+        hidden:true
     }, {
         conditionCode: 'cu_code',
         text: "客户编号",
         dataIndex: "cu_code",
-        width: 150,
-        xtype: "",
+        width: 150
     }, {
         conditionCode: 'cu_name',
         text: "客户名称",
         dataIndex: "cu_name",
-        width: 200,
-        xtype: "",
+        width: 200
     }, {
         conditionCode: 'cu_type',
         text: "客户类型",
         dataIndex: "cu_type",
-        width: 110,
-        xtype: "",
-    }, {
-        text: "业务员编号",
-        dataIndex: "cu_sellercode",
-        width:150
-    }, {
-        text: "业务员",
-        dataIndex: "cu_sellername",
-        width:110
+        width: 110
     }, {
         text: "税率",
         dataIndex: "cu_taxrate",
@@ -68,21 +56,16 @@ Ext.define('saas.view.core.dbfind.types.CustomerDbfindTrigger', {
             return Ext.util.Format.number(v, '0');
         }
     }, {
-        text: "结算天数",
-        dataIndex: "cu_promisedays",
-        width:110,
-        xtype: 'numbercolumn',
-        renderer: function (v) {
-            return Ext.util.Format.number(v, '0');
-        }
+        text: "业务员编号",
+        dataIndex: "cu_sellercode",
+        width:150
     }, {
-        text: "额度",
-        dataIndex: "cu_credit",
-        width:110,
-        xtype: 'numbercolumn',
+        text: "业务员",
+        dataIndex: "cu_sellername",
+        width:110
     }, {
-        text: "客户地址",
-        dataIndex: "ca_address",
+        text: "备注",
+        dataIndex: "cu_remark",
         width: 250
     }]
 

+ 17 - 55
frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js

@@ -13,7 +13,7 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     },{
         field:'pr_detail',width:200
     }],
-    defaultCondition: "pr_statuscode='OPEN'",
+    defaultCondition: "pr_statuscode='ENABLE'",
     dbSearchFields:[{
         emptyText:'输入物料编号、名称或规格',
         xtype : "textfield", 
@@ -28,38 +28,33 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
     dbColumns:[{
         text: "物料ID",
         hidden: true,
-        dataIndex: "id",
+        dataIndex: "id"
     }, {
         text: "物料编号",       
         dataIndex: "pr_code",
-        width: 150,
+        width: 150
     }, {
         text: "物料名称",
         width: 200,
-        dataIndex: "pr_detail",
+        dataIndex: "pr_detail"
     }, {
-        text: "规格",
+        text: "型号规格",
         dataIndex: "pr_spec",
-        width: 150,
+        width: 150
+    }, {
+        text: "类型",
+        dataIndex: "pr_kind",
+        width: 110
     }, {
         text: "单位",
         dataIndex: "pr_spec",
-        width: 80,
-    },{
-        text: "仓库id",
-        dataIndex: "pr_whid",
-        hidden: true,
-    },{
-        text: "仓库编号",
-        dataIndex: "pr_whcode",
-        hidden: true,
+        width: 80
     },{
-        text: "仓库",
-        dataIndex: "pr_whname",
-        width: 200,
-        hidden: true
+        text: "品牌",
+        dataIndex: "pr_brand",
+        width: 110
     },{
-        text: "库存",
+        text: "库存",
         dataIndex: "po_onhand",
         width: 110,
         xtype: 'numbercolumn',
@@ -68,43 +63,10 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
             var xr = (new Array(arr[1].length)).fill('0');
             var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
-        },                            
-        align:'end'
-    },{
-        text: "类型",
-        dataIndex: "pr_kind",
-        width: 110,
-    },{
-        text: "型号",
-        dataIndex: "pr_orispeccode",
-        width: 150,
-    },{
-        text: "品牌",
-        dataIndex: "pr_brand",
-        width: 110,
-    },{
-        text: "供应商",
-        dataIndex: "pr_vendname",
-        width: 250,
-    },{
-        text: "最小包装",
-        dataIndex: "pr_zxbzs",
-        width: 110,
-        xtype: 'numbercolumn',
-        align: 'end',
-        renderer : function(v) {
-            if(!v) {
-                return 0;
-            }
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
-            return Ext.util.Format.number(v, format);
         }
     },{
-        text: "L/T",
+        text: "采购提前期",
         dataIndex: "pr_leadtime",
-        width: 80
+        xtype:'hidden'
     }]
-
 });

+ 18 - 58
frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js

@@ -40,7 +40,7 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
         field: 'pr_detail',
         width: 200
     }],
-    defaultCondition: "pr_statuscode='OPEN'",
+    defaultCondition: "pr_statuscode='ENABLE'",
     dbSearchFields: [{
         emptyText: '输入物料编号、名称或规格',
         width: 200,
@@ -56,86 +56,46 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     dbColumns: [{
         text: "物料ID",
         hidden: true,
-        dataIndex: "id",
+        dataIndex: "id"
     }, {
-        text: "物料编号",
+        text: "物料编号",       
         dataIndex: "pr_code",
-        width: 150,
+        width: 150
     }, {
         text: "物料名称",
         width: 200,
-        dataIndex: "pr_detail",
+        dataIndex: "pr_detail"
     }, {
-        text: "规格",
+        text: "型号规格",
         dataIndex: "pr_spec",
-        width: 150,
-    }, {
-        text: "单位",
-        dataIndex: "pr_unit",
-        width: 80
-    }, {
-        text: "最新采购单价",
-        dataIndex: "pr_purcprice",
-        xtype: 'numbercolumn',
-        hidden:true,
-    }, {
-        text: "仓库id",
-        dataIndex: "pr_whid",
-        hidden: true,
-    }, {
-        text: "仓库编号",
-        dataIndex: "pr_whcode",
-        hidden: true,
-    }, {
-        text: "仓库",
-        dataIndex: "pr_whname",
-        width: 200,
-        hidden: true
-    }, {
-        text: "总库存数",
-        dataIndex: "po_onhand",
-        width: 110,
-        xtype: 'numbercolumn',
-        renderer: function (v) {
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length)).fill('0');
-            var format = '0,000.' + xr.join();
-            return Ext.util.Format.number(v, format);
-        }
+        width: 150
     }, {
         text: "类型",
         dataIndex: "pr_kind",
         width: 110
     }, {
-        text: "型号",
-        dataIndex: "pr_orispeccode",
-        width: 150
-    }, {
+        text: "单位",
+        dataIndex: "pr_spec",
+        width: 80
+    },{
         text: "品牌",
         dataIndex: "pr_brand",
         width: 110
-    }, {
-        text: "供应商",
-        dataIndex: "pr_vendname",
-        width: 200
-    }, {
-        text: "最小包装",
-        dataIndex: "pr_zxbzs",
+    },{
+        text: "库存",
+        dataIndex: "po_onhand",
         width: 110,
         xtype: 'numbercolumn',
         renderer : function(v) {
-            if(!v) {
-                return 0;
-            }
             var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
+            var xr = (new Array(arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         },
     }, {
-        text: "L/T",
+        text: "采购提前期",
         dataIndex: "pr_leadtime",
-        width: 80
+        xtype:'hidden'
     }]
 
 });

+ 4 - 21
frontend/saas-web/app/view/core/dbfind/types/VendorDbfindTrigger.js

@@ -9,7 +9,7 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
     dataUrl:'/api/document/vendor/list',
     addXtype: 'document-vendor-formpanel',
     addTitle: '供应商资料',
-    defaultCondition:"ve_statuscode='OPEN'",
+    defaultCondition:"ve_statuscode='ENABLE'",
 
     //联想设置
     dbtpls:[{
@@ -61,27 +61,10 @@ Ext.define('saas.view.core.dbfind.types.VendorDbfindTrigger', {
             var format = '0.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
-    },{
-        text: "结算天数",
-        dataIndex: "ve_promisedays",
-        width: 110,
-        xtype: 'numbercolumn',
-        align: 'end', 
-        renderer : function(v) {
-            return Ext.util.Format.number(v, '0');
-        }
     }, {
-        text: "纳税人识别号",
-        dataIndex: "ve_nsrzh",
-        width: 150
-    }, {
-        text: "开户银行",
-        dataIndex: "ve_bankcode",
-        width: 150
-    }, {
-        text: "银行账户",
-        dataIndex: "ve_bankaccount",
-        width: 200
+        text: "备注",
+        dataIndex: "ve_remark",
+        width: 250
     }]
 
 });

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

@@ -9,7 +9,7 @@ Ext.define('saas.view.core.dbfind.types.WarehouseDbfindTrigger', {
     // dataUrl:'http://localhost:9480/warehouse/list',
     addXtype: 'other-warehouse',
     addTitle: '仓库资料',
-    defaultCondition: "wh_statuscode='OPEN'",
+    defaultCondition: "wh_statuscode='ENABLE'",
     dbtpls: [{
         field: 'wh_code',
         width: 150

+ 10 - 1
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -180,28 +180,31 @@ Ext.define('saas.view.core.form.FormPanelController', {
             delete params.items1;
         }
 
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._saveUrl,
             params: JSON.stringify(params),
             method: 'POST',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 var id = localJson.data.id;
                 var code = localJson.data.code;
                 form.initId = id;
                 saas.util.FormUtil.loadData(form);
-                saas.util.BaseUtil.showSuccessToast('保存成功');
 
                 var newId = form.xtype + '-' + id;
                 var newTitle = form._title + '(' + code + ')';
 
                 saas.util.BaseUtil.refreshTabTitle(newId, newTitle);
 
+                saas.util.BaseUtil.showSuccessToast('保存成功');
                 form.fireEvent('aftersave', true, form, localJson);
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
             form.fireEvent('aftersave', false, form, res);
@@ -263,12 +266,14 @@ Ext.define('saas.view.core.form.FormPanelController', {
             delete params.items1;
         }
 
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._auditUrl,
             params: JSON.stringify(params),
             method: 'POST',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 // 未保存直接审核会返回id
                 if(localJson.data) {
@@ -289,6 +294,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             if(res.data) {
                 var id = localJson.data.id;
@@ -330,11 +336,13 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var id = viewModel.get(form._idField);
         var code = viewModel.get(form._codeField);
 
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._unAuditUrl + '/' + id,
             method: 'POST',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 //解析参数
                 saas.util.BaseUtil.showSuccessToast('反审核成功');
@@ -342,6 +350,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             saas.util.BaseUtil.showErrorToast('反审核失败: ' + res.message);
         });

+ 2 - 5
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -93,7 +93,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                                 if(response.timedout) {
                                     saas.util.BaseUtil.showErrorToast('请求超时');
                                 }else{
-                                    saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson.message);
+                                    saas.util.BaseUtil.showErrorToast('查询失败:' + response.responseJson?response.responseJson.message:'请求超时');
                                 }
                             }
                         }
@@ -316,10 +316,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
     onExport: function () {
         var grid = this.up('grid');
         //导出接口权限设置
-        var _url = grid.baseVastUrl.substring(0,grid.baseVastUrl.length-1);
-        var lastIndex = _url.lastIndexOf('/');
-        var caller = _url.substring(lastIndex);
-        var url = '/api/commons'+caller+'/export';
+        var url = '/api/commons/'+grid.caller+'/export';
         saas.util.BaseUtil.request({
             url: url,
             params: '',

+ 10 - 0
frontend/saas-web/app/view/core/query/QueryGridPanel.scss

@@ -9,6 +9,16 @@
         }
     }
 
+    .x-btn-menu-active{
+        .x-btn-wrap{
+            .x-btn-button{
+                .x-btn-inner{
+                    color:#fff;
+                }
+            }
+        }
+    }
+
     .x-panel-default-outer-border-trl {
         border-top-color: #fff !important;
         border-top-width: 1px !important;

+ 3 - 2
frontend/saas-web/app/view/document/bom/BasePanel.js

@@ -34,8 +34,8 @@ Ext.define('saas.view.document.bom.BasePanel', {
         fields: ['bo_statuscode', 'bo_status'],
         data: [
             ["ALL", "全部"],
-            ["OPEN", "已启"],
-            ["CLOSE", "已关闭"]
+            ["ENABLE", "已启"],
+            ["BANNED", "已禁用"]
         ]
         }),
         getCondition: function(value) {
@@ -61,6 +61,7 @@ Ext.define('saas.view.document.bom.BasePanel', {
         codeField: 'bo_mothercode',
         statusCodeField:'bo_statuscode',
         dataUrl: '/api/document/bom/list',
+        caller: 'Bom',
         columns : [{
             text : "id", 
             width : 0, 

+ 2 - 2
frontend/saas-web/app/view/document/bom/FormPanel.js

@@ -220,9 +220,9 @@ Ext.define('saas.view.document.bom.FormPanel', {
 
     auditTexts: {
         auditCode: 'CLOSE',
-        auditText: '已关闭',
+        auditText: '已禁用',
         unAuditCode: 'OPEN',
-        unAuditText: '已启',
+        unAuditText: '已启',
         auditBtnText: '禁用',
         unAuditBtnText: '启用',
     }

+ 4 - 3
frontend/saas-web/app/view/document/customer/BasePanel.js

@@ -43,8 +43,8 @@ Ext.define('saas.view.document.customer.BasePanel', {
         fields: ['cu_statuscode', 'cu_status'],
         data: [
             ["ALL", "全部"],
-            ["OPEN", "已启"],
-            ["CLOSE", "已关闭"]
+            ["ENABLE", "已启"],
+            ["BANNED", "已禁用"]
         ]
         }),
         getCondition: function(value) {
@@ -70,6 +70,7 @@ Ext.define('saas.view.document.customer.BasePanel', {
         codeField: 'cu_code',
         statusCodeField:'cu_statuscode',
         dataUrl: '/api/document/customer/list',
+        caller: 'Customer',
         columns : [
         {
             text : "客户id", 
@@ -125,7 +126,7 @@ Ext.define('saas.view.document.customer.BasePanel', {
             width: 110
         }, {
             text : "备注", 
-            dataIndex : "cu_text1",
+            dataIndex : "cu_remark",
             width: 250
         }]
     },

+ 3 - 3
frontend/saas-web/app/view/document/customer/FormPanel.js

@@ -217,7 +217,7 @@ Ext.define('saas.view.document.customer.FormPanel', {
     },{
         fieldLabel : "备注", 
         xtype:'textfield',
-        name : "cu_text1",
+        name : "cu_remark",
         columnWidth : 0.75
     }, {
         xtype : "detailGridField", 
@@ -438,9 +438,9 @@ Ext.define('saas.view.document.customer.FormPanel', {
     }],
     auditTexts: {
         auditCode: 'CLOSE',
-        auditText: '已关闭',
+        auditText: '已禁用',
         unAuditCode: 'OPEN',
-        unAuditText: '已启',
+        unAuditText: '已启',
         auditBtnText: '禁用',
         unAuditBtnText: '启用',
     }

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

@@ -316,14 +316,19 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 hideTrigger:true,
                 allowBlank:false,
                 maxLength: 30,
-                regex:/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/,
+                regex:/^1(3|4|5|7|8)\d{9}$/,
                 regexText:'请输入正确的手机号码',
                 listeners:{
+                    change:function(f,a,b){
+                        if(a==''){
+                            f._lastCheckValue = ''
+                        }
+                    },
                     blur:function(f,a,b,c){
                         var form = f.ownerCt;
                         if(f.value&&f.value!=''&&f.isValid()&&f._lastCheckValue!=f.value){
+                            f._lastCheckValue = f.value;
                             form.setLoading(true);
-                            f._lastCheckValue = f.value
                             Ext.Ajax.request({
                                 url: '/api/account/account/checkMobile?mobile='+f.value,
                                 method: 'GET',
@@ -364,6 +369,8 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '真实姓名',
                 name: 'realname',
+                regex:/^[\u4e00-\u9fa5]+$/,
+                regexText:'请输入汉字',
                 allowBlank:false,
                 maxLength: 30,
             },{
@@ -465,7 +472,7 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 xtype:'textfield',
                 fieldLabel: '仓库状态',
                 name: 'wh_status',   
-                value:'已启',
+                value:'已启',
                 maxLength: 20
             },{
                 xtype:'hidden',

+ 3 - 2
frontend/saas-web/app/view/document/product/BasePanel.js

@@ -44,8 +44,8 @@ Ext.define('saas.view.document.product.BasePanel', {
         fields: ['pr_statuscode', 'pr_status'],
         data: [
             ["ALL", "全部"],
-            ["OPEN", "已启"],
-            ["CLOSE", "已关闭"]
+            ["ENABLE", "已启"],
+            ["BANNED", "已禁用"]
         ]
         }),
         getCondition: function(value) {
@@ -71,6 +71,7 @@ Ext.define('saas.view.document.product.BasePanel', {
         codeField: 'pr_code',
         statusCodeField:'pr_statuscode',
         dataUrl: '/api/document/product/list',
+        caller: 'Product',
         columns : [{
             text : "id", 
             width : 0, 

+ 3 - 3
frontend/saas-web/app/view/document/product/FormPanel.js

@@ -198,7 +198,7 @@ Ext.define('saas.view.document.product.FormPanel', {
         fieldLabel : "更新时间"
     }, {
         xtype: 'numberfield',
-        fieldLabel: 'L/T',
+        fieldLabel: '采购提前期',
         name: 'pr_leadtime',
         minValue: 0,
         maxLength: 10
@@ -357,9 +357,9 @@ Ext.define('saas.view.document.product.FormPanel', {
     }],
     auditTexts: {
         auditCode: 'CLOSE',
-        auditText: '已关闭',
+        auditText: '已禁用',
         unAuditCode: 'OPEN',
-        unAuditText: '已启',
+        unAuditText: '已启',
         auditBtnText: '禁用',
         unAuditBtnText: '启用',
     },

+ 4 - 3
frontend/saas-web/app/view/document/vendor/BasePanel.js

@@ -38,8 +38,8 @@ Ext.define('saas.view.document.vendor.BasePanel', {
         fields: ['ve_statuscode', 've_status'],
         data: [
             ["ALL", "全部"],
-            ["OPEN", "已启"],
-            ["CLOSE", "已关闭"]
+            ["ENABLE", "已启"],
+            ["BANNED", "已禁用"]
         ]
         }),
         getCondition: function(value) {
@@ -65,6 +65,7 @@ Ext.define('saas.view.document.vendor.BasePanel', {
         codeField: 've_code',
         statusCodeField:'ve_statuscode',
         dataUrl: '/api/document/vendor/list',
+        caller: 'Vendor',
         columns : [{
             text : "供应商id", 
             width : 0, 
@@ -115,7 +116,7 @@ Ext.define('saas.view.document.vendor.BasePanel', {
             }
         }, {
             text : "备注", 
-            dataIndex : "ve_text1", 
+            dataIndex : "ve_remark", 
             width : 250.0
         }]
     },

+ 3 - 3
frontend/saas-web/app/view/document/vendor/FormPanel.js

@@ -191,7 +191,7 @@ Ext.define('saas.view.document.vendor.FormPanel', {
     },{
         fieldLabel : "备注", 
         xtype:'textfield',
-        name : "ve_text1",
+        name : "ve_remark",
         columnWidth : 1
     }, {
         xtype : "detailGridField", 
@@ -322,9 +322,9 @@ Ext.define('saas.view.document.vendor.FormPanel', {
     }],
     auditTexts: {
         auditCode: 'CLOSE',
-        auditText: '已关闭',
+        auditText: '已禁用',
         unAuditCode: 'OPEN',
-        unAuditText: '已启',
+        unAuditText: '已启',
         auditBtnText: '禁用',
         unAuditBtnText: '启用',
     }

+ 3 - 2
frontend/saas-web/app/view/home/infoCardList/Payment.js

@@ -5,7 +5,7 @@ Ext.define('saas.view.home.infoCardList.Payment', {
     extend: 'saas.view.home.infoCardList.InfoList',
     xtype: 'home-infocardlist-payment',
 
-    listUrl: '/api/purchase/prodinout/list',
+    listUrl: '/api/purchase/prodinout/homepageList',
     idField: 'id',
     codeField: 'pi_inoutno',
     // detailTitle: '采购验收单',
@@ -68,7 +68,8 @@ Ext.define('saas.view.home.infoCardList.Payment', {
         width: 80
     }, {
         text: '数量',
-        dataIndex: 'pd_inqty',
+        // dataIndex: 'pd_inqty',
+        dataIndex: 'qty',
         xtype: 'numbercolumn',
         width: 110,
         renderer: function (v) {

+ 3 - 2
frontend/saas-web/app/view/home/infoCardList/Recment.js

@@ -5,7 +5,7 @@ Ext.define('saas.view.home.infoCardList.Recment', {
     extend: 'saas.view.home.infoCardList.InfoList',
     xtype: 'home-infocardlist-recment',
 
-    listUrl: '/api/sale/prodinout/list',
+    listUrl: '/api/sale/prodinout/homepageList/',
     idField: 'id',
     codeField: 'pi_inoutno',
     // detailTitle: '出货单',
@@ -66,7 +66,8 @@ Ext.define('saas.view.home.infoCardList.Recment', {
         width: 150
     }, {
         text: '出货数量',
-        dataIndex: 'pd_outqty',
+        // dataIndex: 'pd_outqty',
+        dataIndex: 'qty',
         xtype:'numbercolumn',
         width: 110,
         renderer : function(v) {

+ 3 - 2
frontend/saas-web/app/view/home/infoCardList/UnauditCheckIn.js

@@ -5,7 +5,7 @@ Ext.define('saas.view.home.infoCardList.UnauditCheckIn', {
     extend: 'saas.view.home.infoCardList.InfoList',
     xtype: 'home-infocardlist-unauditcheckin',
 
-    listUrl: '/api/purchase/prodinout/list',
+    listUrl: '/api/purchase/prodinout/homepageList',
     idField: 'id',
     codeField: 'pi_inoutno',
     // detailTitle: '采购验收单',
@@ -68,7 +68,8 @@ Ext.define('saas.view.home.infoCardList.UnauditCheckIn', {
         width: 80
     }, {
         text: '数量',
-        dataIndex: 'pd_inqty',
+        // dataIndex: 'pd_inqty',
+        dataIndex: 'qty',
         xtype: 'numbercolumn',
         width: 110,
         renderer: function (v) {

+ 3 - 2
frontend/saas-web/app/view/home/infoCardList/UnauditSaleOut.js

@@ -5,7 +5,7 @@ Ext.define('saas.view.home.infoCardList.UnauditSaleOut', {
     extend: 'saas.view.home.infoCardList.InfoList',
     xtype: 'home-infocardlist-unauditsaleout',
 
-    listUrl: '/api/sale/prodinout/list',
+    listUrl: '/api/sale/prodinout/homepageList',
     idField: 'id',
     codeField: 'pi_inoutno',
     // detailTitle: '出货单',
@@ -66,7 +66,8 @@ Ext.define('saas.view.home.infoCardList.UnauditSaleOut', {
         width: 150
     }, {
         text: '数量',
-        dataIndex: 'pd_outqty',
+        // dataIndex: 'pd_outqty',
+        dataIndex: 'qty',
         xtype:'numbercolumn',
         width: 110,
         renderer : function(v) {

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

@@ -31,7 +31,7 @@ Ext.define('saas.view.main.Main', {
                     reference: 'mainLogo',
                     width: 180,
                     cls: 'main-logo-wrap',
-                    html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">U企云服</div></div>',
+                    html: '<div class="main-logo"><img src="resources/images/default/logo-default.png"/><div class="logo-text">企云服</div></div>',
                     bind: {
                         width: '{navWidth}'
                     }

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

@@ -124,16 +124,18 @@ Ext.define('saas.view.main.Navigation', {
                         });
 
                         view.el.dom.addEventListener('mouseleave', function (e) {
-                            var ex = e.clientX,
-                                ey = e.clientY,
-                                box = menuView.getBoundingClientRect(),
-                                navItem = menu.navItem,
-                                navBox = navItem.getBoundingClientRect();
-
-                            if (ey <= box.top || ex >= (box.left + box.width) || ey >= (box.top + box.height) || (ex <= box.left && (ey <= navBox.top || ey >= (navBox.top + navBox.height)))) {
-                                menu.navItem.classList.remove(menu.navView.overItemCls);
-                                menu.hide();
-                            }
+                            menu.navItem.classList.remove(menu.navView.overItemCls);
+                            menu.hide();
+                            // var ex = e.clientX,
+                            //     ey = e.clientY,
+                            //     box = menuView.getBoundingClientRect(),
+                            //     navItem = menu.navItem,
+                            //     navBox = navItem.getBoundingClientRect();
+
+                            // if ((ex <= box.left && (ey <= (navBox.top - 5) || ey >= (navBox.top + navBox.height))) || ey <= (box.top - 5) || ex >= (box.left + box.width + 5) || ey >= (box.top + box.height + 5)) {
+                            //     menu.navItem.classList.remove(menu.navView.overItemCls);
+                            //     menu.hide();
+                            // }
                         });
 
                         Ext.Array.each(menuItem, function (mi) {

+ 1 - 0
frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js

@@ -74,6 +74,7 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
         addXtype: 'money-fundtransfer-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/fundtransfer/',
+        caller:'FundTransfer',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',

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

@@ -94,6 +94,7 @@ Ext.define('saas.view.money.othreceipts.QueryPanel', {
         addXtype: 'money-othreceipts-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/othreceipts/',
+        caller:'OthReceipts',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',

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

@@ -91,6 +91,7 @@ Ext.define('saas.view.money.othspendings.QueryPanel', {
         addXtype: 'money-othspendings-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/othspendings/',
+        caller:'OthSpendings',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',

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

@@ -177,17 +177,21 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
+
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._turnInUrl+id.value,
             method: 'GET',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 saas.util.BaseUtil.showSuccessToast('转单成功');
               
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
         });
@@ -210,6 +214,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计
 
         var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance;
+         viewModel.set("pb_pbdamount",sum_rbd_nowbalance);
+         viewModel.set("pb_pdamount",sum_rd_amount);
          viewModel.set("pb_preamount",flag);
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';

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

@@ -66,6 +66,7 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         addXtype: 'money-paybalance-formpanel',
         defaultCondition: '',
         baseVastUrl: '/api/money/paybalance/',
+        caller: 'PayBalance',
         baseColumn: [
             {
                 text: 'id',

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

@@ -174,17 +174,21 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
+
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._turnInUrl+id.value,
             method: 'GET',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 saas.util.BaseUtil.showSuccessToast('转单成功');
               
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
         });
@@ -207,6 +211,9 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
         var sum_rbd_nowbalance = store2.sum('rbd_nowbalance'); // 本次核销金额合计
 
         var flag = sum_rd_amount + rb_discounts - sum_rbd_nowbalance;
+        viewModel.set("rb_rbdamount",sum_rbd_nowbalance);
+        viewModel.set("rb_rdamount",sum_rd_amount);
+        viewModel.set("rb_preamount",sum_rd_amount-sum_rbd_nowbalance);
 
         viewModel.set("rb_preamount",flag);
         if(flag != 0) {

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

@@ -58,6 +58,7 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
         addXtype: 'money-recbalance-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/recbalance/',
+        caller: 'RecBalance',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',

+ 7 - 49
frontend/saas-web/app/view/money/verification/FormPanelController.js

@@ -485,55 +485,6 @@ Ext.define('saas.view.money.verification.FormPanelController', {
         return defaultCondition;
     },
 
-    /**
-     * 清空所有从表数据
-     */
-    clearDetails: function() {
-        var me = this;
-        
-        me.clearDetail0();
-        me.clearDetail1();
-    },
-
-    /**
-     * 清空第一个从表数据
-     */
-    clearDetail0: function(f, n, o) {
-        var me = this,
-        form = me.getView(),
-        grid = form.query('detailGridField')[0];
-        me.clearDetail(grid);
-    },
-
-    /**
-     * 清空第二个从表数据
-     */
-    clearDetail1: function() {
-        var me = this,
-        form = me.getView(),
-        grid = form.query('detailGridField')[1];
-        me.clearDetail(grid);
-    },
-
-    /**
-     * 清空一个从表数据
-     */
-    clearDetail: function(grid) {
-        var datas = [],
-        emptyRows = grid.emptyRows,
-        detnoColumn = grid.detnoColumn,
-        detno = 0,
-        store = grid.getStore();
-        
-        Ext.Array.each(new Array(emptyRows), function() {
-            detno += 1;
-            var data = {};
-            data[detnoColumn] = detno;
-            datas.push(data);
-        })
-        store.removeAll();
-        store.add(datas);
-    },
     onSave: function() {
         var me = this,
             form = me.getView(),
@@ -573,12 +524,14 @@ Ext.define('saas.view.money.verification.FormPanelController', {
             params['items' + ( i + 1)] = formData['detail' + i];
         }
 
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._saveUrl,
             params: JSON.stringify(params),
             method: 'POST',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 var id = localJson.data.id;
                 var code = localJson.data.code;
@@ -595,11 +548,13 @@ Ext.define('saas.view.money.verification.FormPanelController', {
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
             form.fireEvent('aftersave', false, form, res);
         });
     },
+
     audit: function() {
         var me = this,
         form = me.getView(),
@@ -617,12 +572,14 @@ Ext.define('saas.view.money.verification.FormPanelController', {
             params['items' + ( i + 1)] = formData['detail' + i];
         }
 
+        form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._auditUrl,
             params: JSON.stringify(params),
             method: 'POST',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 // 未保存直接审核会返回id
                 if(localJson.data) {
@@ -643,6 +600,7 @@ Ext.define('saas.view.money.verification.FormPanelController', {
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             if(res.data) {
                 var id = localJson.data.id;

+ 1 - 0
frontend/saas-web/app/view/money/verification/QueryPanel.js

@@ -77,6 +77,7 @@ Ext.define('saas.view.money.verification.QueryPanel', {
         addXtype: 'money-verification-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/verification/',
+        caller: 'Verification',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',

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

@@ -63,11 +63,14 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
         var me = this,
         form = me.getView(),
         id = form.getForm().findField(form._idField);
+
+        form.setLoading(false);
         saas.util.BaseUtil.request({
             url: form._turnInUrl+'/'+id.value,
             method: 'POST',
         })
         .then(function(localJson) {
+            form.setLoading(false);
             if(localJson.success){
                 var intValue = localJson.data.id,
                     codeValue= localJson.data.code,
@@ -79,6 +82,7 @@ Ext.define('saas.view.purchase.purchase.FormPanelController', {
             }
         })
         .catch(function(res) {
+            form.setLoading(false);
             console.error(res);
             saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
         });

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů