Sfoglia il codice sorgente

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

heqinwei 7 anni fa
parent
commit
4292861b3c
100 ha cambiato i file con 872 aggiunte e 204 eliminazioni
  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. 12 0
      applications/commons/commons-server/src/main/resources/config/application-docker-test.yml
  5. 9 0
      applications/commons/commons-server/src/main/resources/logback-spring.xml
  6. 2 0
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/CustomerDTO.java
  7. 6 0
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/VendorDTO.java
  8. 1 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Customer.java
  9. 2 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/CustomerList.java
  10. 6 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java
  11. 2 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/VendorList.java
  12. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/DataImportMapper.java
  13. 6 6
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BomServiceImpl.java
  14. 8 8
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  15. 3 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/EmployeeServiceImpl.java
  16. 19 18
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  17. 6 7
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  18. 6 7
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java
  19. 12 0
      applications/document/document-server/src/main/resources/config/application-docker-test.yml
  20. 9 0
      applications/document/document-server/src/main/resources/logback-spring.xml
  21. 1 0
      applications/document/document-server/src/main/resources/mapper/CustomerListMapper.xml
  22. 13 2
      applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml
  23. 1 1
      applications/document/document-server/src/main/resources/mapper/DataImportMapper.xml
  24. 1 1
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  25. 17 4
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  26. 12 0
      applications/money/money-server/src/main/resources/config/application-docker-test.yml
  27. 9 0
      applications/money/money-server/src/main/resources/logback-spring.xml
  28. 2 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdIODetailDTO.java
  29. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdIODetail.java
  30. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOutList.java
  31. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/report/PurchaseReportDetail.java
  32. 12 0
      applications/purchase/purchase-server/src/main/resources/config/application-docker-test.yml
  33. 9 0
      applications/purchase/purchase-server/src/main/resources/logback-spring.xml
  34. 5 4
      applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml
  35. 2 0
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml
  36. 1 0
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml
  37. 12 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/SaleApplication.java
  38. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/ProdInOutMapper.java
  39. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java
  40. 30 2
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  41. 12 4
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  42. 12 0
      applications/sale/sale-server/src/main/resources/config/application-docker-test.yml
  43. 9 0
      applications/sale/sale-server/src/main/resources/logback-spring.xml
  44. 11 6
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml
  45. 7 2
      applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml
  46. 2 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdIODetailDTO.java
  47. 2 2
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdIODetail.java
  48. 2 1
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java
  49. 2 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/MakeServiceImpl.java
  50. 12 0
      applications/storage/storage-server/src/main/resources/config/application-docker-test.yml
  51. 9 0
      applications/storage/storage-server/src/main/resources/logback-spring.xml
  52. 6 5
      applications/storage/storage-server/src/main/resources/mapper/ProdIODetailMapper.xml
  53. 1 0
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutListMapper.xml
  54. 12 1
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRspDTO.java
  55. 2 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java
  56. 12 0
      base-servers/account/account-server/src/main/resources/config/application-docker-test.yml
  57. 9 0
      base-servers/account/account-server/src/main/resources/logback-spring.xml
  58. 1 1
      base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml
  59. 5 3
      base-servers/account/account-server/src/test/java/com/usoftchina/saas/account/api/AccountCacheTest.java
  60. 12 0
      base-servers/admin-server/src/main/resources/config/application-docker-test.yml
  61. 9 0
      base-servers/admin-server/src/main/resources/logback-spring.xml
  62. 12 0
      base-servers/auth/auth-server/src/main/resources/config/application-docker-test.yml
  63. 9 0
      base-servers/auth/auth-server/src/main/resources/logback-spring.xml
  64. 20 0
      base-servers/auth/auth-server/src/test/java/com/usoftchina/saas/auth/controller/JwtTest.java
  65. 5 0
      base-servers/eureka-server/src/main/resources/config/application-docker-test.yml
  66. 9 0
      base-servers/eureka-server/src/main/resources/logback-spring.xml
  67. 12 0
      base-servers/file/file-server/src/main/resources/config/application-docker-test.yml
  68. 9 0
      base-servers/file/file-server/src/main/resources/logback-spring.xml
  69. 12 0
      base-servers/gateway-server/src/main/resources/config/application-docker-test.yml
  70. 9 0
      base-servers/gateway-server/src/main/resources/logback-spring.xml
  71. 12 0
      base-servers/mail/mail-server/src/main/resources/config/application-docker-test.yml
  72. 9 0
      base-servers/mail/mail-server/src/main/resources/logback-spring.xml
  73. 12 0
      base-servers/socket/socket-server/src/main/resources/config/application-docker-test.yml
  74. 9 0
      base-servers/socket/socket-server/src/main/resources/logback-spring.xml
  75. 12 0
      base-servers/ui-server/src/main/resources/config/application-docker-test.yml
  76. 9 0
      base-servers/ui-server/src/main/resources/logback-spring.xml
  77. 56 0
      base-servers/ui-server/src/test/java/com/usoftchina/saas/ui/controller/co/CoViewControllerTest.java
  78. 13 0
      base-servers/zipkin-server/src/main/resources/config/application-docker-test.yml
  79. 9 0
      base-servers/zipkin-server/src/main/resources/logback-spring.xml
  80. 41 0
      frontend/saas-portal-web/build/build-dev.js
  81. 4 2
      frontend/saas-portal-web/build/webpack.prod.conf.js
  82. 3 4
      frontend/saas-portal-web/config/dev.env.js
  83. 2 2
      frontend/saas-portal-web/config/test.env.js
  84. 2 1
      frontend/saas-portal-web/package.json
  85. 9 1
      frontend/saas-portal-web/src/components/conenter/addgongsi.vue
  86. 17 4
      frontend/saas-portal-web/src/components/conenter/company.vue
  87. 8 19
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  88. 6 1
      frontend/saas-portal-web/src/components/conenter/home.vue
  89. 58 3
      frontend/saas-portal-web/src/components/conenter/problem.vue
  90. 2 2
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  91. 0 1
      frontend/saas-portal-web/src/components/footer/footer.vue
  92. 1 1
      frontend/saas-portal-web/src/store/index.js
  93. 8 7
      frontend/saas-portal-web/static/js/mains.js
  94. 20 5
      frontend/saas-web/app.json
  95. 9 0
      frontend/saas-web/app/view/core/base/BasePanel.scss
  96. 1 1
      frontend/saas-web/app/view/core/base/GridPanel.js
  97. 2 1
      frontend/saas-web/app/view/core/base/ImportWindow.js
  98. 12 0
      frontend/saas-web/app/view/core/dbfind/DbfindGridPanel.js
  99. 12 0
      frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js
  100. 1 1
      frontend/saas-web/app/view/core/dbfind/types/BomDbfindTrigger.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());

+ 12 - 0
applications/commons/commons-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-commons-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8915

+ 9 - 0
applications/commons/commons-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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);
 

+ 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);

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

@@ -399,11 +399,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 +434,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);
             //日志

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

@@ -68,17 +68,19 @@ public class EmployeeServiceImpl extends CommonBaseServiceImpl<EmployeeMapper, E
         Long companyId = BaseContextHolder.getCompanyId();
         employee.setCompanyId(companyId);
         if(employee.getId() == 0){
-            String code = pushMaxnubmer(employee.getEm_code(), employee.getId());
+            String code = employee.getEm_code();
             //检查名称和编号
             int count = getMapper().validateNameAndCodeWhenInsert(code,employee.getEm_name(),companyId);
             if (count>0) {
                 throw new BizException(BizExceptionCode.REPEAT_EMNAMECODE);
             }
+            code = pushMaxnubmer(employee.getEm_code(), employee.getId());
             //检查电话号码
             count = getMapper().validatePhoneWhenInsert(employee.getEm_mobile(),BaseContextHolder.getCompanyId());
             if (count>0) {
                 throw new BizException(BizExceptionCode.REPEAT_TEL);
             }
+            employee.setEm_code(code);
             employee.setCreatorId(BaseContextHolder.getUserId());
             employee.setCreateTime(new Date());
             employee.setCreatorName(BaseContextHolder.getUserName());

+ 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);

+ 6 - 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;
@@ -330,8 +329,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 +357,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);

+ 12 - 0
applications/document/document-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-document-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 9495

+ 9 - 0
applications/document/document-server/src/main/resources/logback-spring.xml

@@ -104,6 +104,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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>
 

+ 12 - 0
applications/money/money-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-money-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8895

+ 9 - 0
applications/money/money-server/src/main/resources/logback-spring.xml

@@ -104,6 +104,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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;

+ 12 - 0
applications/purchase/purchase-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-purchase-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8815

+ 9 - 0
applications/purchase/purchase-server/src/main/resources/logback-spring.xml

@@ -104,6 +104,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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());
         }

+ 12 - 0
applications/sale/sale-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-sale-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-dev:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8835

+ 9 - 0
applications/sale/sale-server/src/main/resources/logback-spring.xml

@@ -104,6 +104,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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;
 

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

@@ -618,6 +618,8 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
         updateMake.setId(make.getId());
         updateMake.setMa_status(Status.UNAUDITED.getDisplay());
         updateMake.setMa_statuscode(Status.UNAUDITED.name());
+        commonService.commonResAudit("make", "ma_id=" + id, "ma_status",
+                "ma_statuscode", "ma_auditdate", "ma_auditman");
         updateMake.setUpdateTime(new Date());
         updateMake.setUpdaterId(BaseContextHolder.getUserId());
         getMapper().updateByPrimaryKeySelective(updateMake);

+ 12 - 0
applications/storage/storage-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-storage-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 9015

+ 9 - 0
applications/storage/storage-server/src/main/resources/logback-spring.xml

@@ -104,6 +104,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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" />

+ 12 - 1
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRspDTO.java

@@ -45,6 +45,16 @@ public class CompanyRspDTO implements Serializable {
 
     private String adminEmail;
 
+    private String adminMobile;
+
+    public String getAdminMobile() {
+        return adminMobile;
+    }
+
+    public void setAdminMobile(String adminMobile) {
+        this.adminMobile = adminMobile;
+    }
+
     public String getAdminEmail() {
         return adminEmail;
     }
@@ -149,7 +159,7 @@ public class CompanyRspDTO implements Serializable {
         this.default_ = default_;
     }
 
-    public CompanyRspDTO(String name, String businessCode, String address, boolean default_, boolean saas_, String uu, String admin, Long adminId, String type) {
+    public CompanyRspDTO(String name, String businessCode, String address, boolean default_, boolean saas_, String uu, String admin, Long adminId, String type, String adminMobile) {
         this.name = name;
         this.businessCode = businessCode;
         this.address = address;
@@ -159,6 +169,7 @@ public class CompanyRspDTO implements Serializable {
         this.admin = admin;
         this.adminId = adminId;
         this.type = type;
+        this.adminMobile = adminMobile;
     }
 
     public CompanyRspDTO() {

+ 2 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java

@@ -167,7 +167,8 @@ public class AccountCenterServiceImpl implements AccountCenterService {
                         ssoUserSpace.getSpaceUU()!=null ? ssoUserSpace.getSpaceUU().toString() : "0",
                         ssoUserSpace.getAdmin()!=null ? ssoUserSpace.getAdmin().getVipName() : null,
                         0L,
-                        ssoUserSpace.getProfession()
+                        ssoUserSpace.getProfession(),
+                        ssoUserSpace.getAdmin()!=null ? ssoUserSpace.getAdmin().getMobile() : null
                 );
                 resultList.add(companyRspDTO);
             }

+ 12 - 0
base-servers/account/account-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-account-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8595

+ 9 - 0
base-servers/account/account-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 1 - 1
base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml

@@ -14,7 +14,7 @@
         delete from ac_account_company where company_id=#{companyId}
     </delete>
     <select id="getCompanyListByAccountMobile" resultType="com.usoftchina.saas.account.dto.CompanyRspDTO">
-        SELECT cmp.id,cmp.name,cmp.uu,cmp.business_code businessCode,cmp.address,accmp.is_default default_,'1' saas_,aci.realname admin,cmp.creator_id adminId,cmp.type,ac.email adminEmail from ac_company cmp
+        SELECT cmp.id,cmp.name,cmp.uu,cmp.business_code businessCode,cmp.address,accmp.is_default default_,'1' saas_,aci.realname admin,cmp.creator_id adminId,cmp.type,ac.email adminEmail,ac.mobile adminMobile from ac_company cmp
         left join ac_account_company accmp on accmp.company_id=cmp.id
         left join ac_account ac on ac.id = accmp.account_id
         left join ac_account aci on aci.id = cmp.creator_id

+ 5 - 3
base-servers/account/account-server/src/test/java/com/usoftchina/saas/account/api/AccountCacheTest.java

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.account.api;
 
 import com.usoftchina.saas.account.cache.AccountCache;
+import com.usoftchina.saas.account.cache.ResourceCache;
 import com.usoftchina.saas.context.BaseContextHolder;
 import org.junit.Assert;
 import org.junit.Test;
@@ -18,8 +19,9 @@ public class AccountCacheTest {
 
     @Test
     public void hdel() {
-//        AccountCache.of(43).hdel();
-        BaseContextHolder.setToken("eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJzdWx5IiwiYXBwSWQiOiJ0cmFkZS1hcHAiLCJ1c2VySWQiOjQzLCJjb21wYW55SWQiOjEsInVzZXJOYW1lIjoic3VseSIsInJlYWxOYW1lIjoi6IuP54G16LCjIiwiZXhwIjoxNTQzNDg5NjM0fQ.oqOIqO97zAH2W1RZsofmCstKHNYsQlnMr_UkOw69zw175fhAefysux2njV1FEbldTQA62RiQ7JrnntWPqOmsNmrBsD0cwvy9xkUma3CNjIuZirbg09CYjUVIFnDpwz-WpmZMQFDIBVQYchCDRzDUgPYPB4phptCGNpTG6VpztPo");
-        System.out.println(AccountCache.of(43).getAccount());
+        ResourceCache.of("trade-app").hdel();
+        AccountCache.of(55).hdel();
+//        BaseContextHolder.setToken("eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxMzc5ODQ5MDU2NSIsImFwcElkIjoidHJhZGUtYXBwIiwidXNlcklkIjo2MSwiY29tcGFueUlkIjoyMSwidXNlck5hbWUiOiIxMzc5ODQ5MDU2NSIsInJlYWxOYW1lIjoi5bqU6bmPIiwiZXhwIjoxNTQzODIxMjkxfQ.DF5RT-g1Fi1czCb1-0EqI_Q9VTrwKskdzQtrpsdlcw-WyuN2xx2nqQqahLQIu836apeD3kptXxEtS2j3ArJKRzqrw4z6SFo-kFOl5cQpFLJxpVyrLl6i8ON33VO05uDRORWieNiWqSTDHFqqfOE5PaoocnCugOvweZaev7BmedQ");
+//        System.out.println(AccountCache.of(55).getAccount());
     }
 }

+ 12 - 0
base-servers/admin-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-admin-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8535

+ 9 - 0
base-servers/admin-server/src/main/resources/logback-spring.xml

@@ -103,6 +103,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 12 - 0
base-servers/auth/auth-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-auth-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8615

+ 9 - 0
base-servers/auth/auth-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 20 - 0
base-servers/auth/auth-server/src/test/java/com/usoftchina/saas/auth/controller/JwtTest.java

@@ -0,0 +1,20 @@
+package com.usoftchina.saas.auth.controller;
+
+import com.usoftchina.saas.auth.common.jwt.JwtHelper;
+import com.usoftchina.saas.auth.common.jwt.JwtInfo;
+import com.usoftchina.saas.auth.common.jwt.JwtToken;
+import org.junit.Test;
+
+/**
+ * @author yingp
+ * @date 2018/12/3
+ */
+public class JwtTest {
+
+    @Test
+    public void generateToken() {
+        JwtInfo info = new JwtInfo("trade-app", 1L, 55L, "13907997999", "hey");
+        JwtToken jwtToken = JwtHelper.generateToken(info, "auth/pri.key", 18000);
+        System.out.println(jwtToken.getToken());
+    }
+}

+ 5 - 0
base-servers/eureka-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,5 @@
+eureka:
+  instance:
+    hostname: saas-eureka-server-test
+server:
+  port: 8515

+ 9 - 0
base-servers/eureka-server/src/main/resources/logback-spring.xml

@@ -109,6 +109,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 12 - 0
base-servers/file/file-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-file-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8655

+ 9 - 0
base-servers/file/file-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 12 - 0
base-servers/gateway-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-gateway-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8575

+ 9 - 0
base-servers/gateway-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 12 - 0
base-servers/mail/mail-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-mail-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8675

+ 9 - 0
base-servers/mail/mail-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 12 - 0
base-servers/socket/socket-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-socket-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8695

+ 9 - 0
base-servers/socket/socket-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 12 - 0
base-servers/ui-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-ui-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+spring:
+  rabbitmq:
+    virtual-host: test
+server:
+  port: 8635

+ 9 - 0
base-servers/ui-server/src/main/resources/logback-spring.xml

@@ -110,6 +110,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 56 - 0
base-servers/ui-server/src/test/java/com/usoftchina/saas/ui/controller/co/CoViewControllerTest.java

@@ -0,0 +1,56 @@
+package com.usoftchina.saas.ui.controller.co;
+
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.ssl.SSLContextBuilder;
+import org.junit.Test;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.security.cert.X509Certificate;
+
+public class CoViewControllerTest {
+
+    public static RestTemplate buildRestTemplate() throws Exception {
+        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
+        // https
+        SSLContextBuilder builder = new SSLContextBuilder();
+        builder.loadTrustMaterial(null, (X509Certificate[] x509Certificates, String s) -> true);
+        SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(builder.build(), new String[]{"SSLv2Hello", "SSLv3", "TLSv1", "TLSv1.2"}, null, NoopHostnameVerifier.INSTANCE);
+        Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
+                .register("http", new PlainConnectionSocketFactory())
+                .register("https", socketFactory).build();
+        PoolingHttpClientConnectionManager phccm = new PoolingHttpClientConnectionManager(registry);
+        phccm.setMaxTotal(200);
+        CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(socketFactory).setConnectionManager(phccm).setConnectionManagerShared(true).build();
+        factory.setHttpClient(httpClient);
+
+        return new RestTemplate(factory);
+    }
+
+    @Test
+    public void getViewConfig() throws Exception {
+        RestTemplate restTemplate = buildRestTemplate();
+        MultiValueMap headers = new LinkedMultiValueMap();
+        headers.add("Authorization", "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxMzkwNzk5Nzk5OSIsImFwcElkIjoidHJhZGUtYXBwIiwidXNlcklkIjo1NSwiY29tcGFueUlkIjoxLCJ1c2VyTmFtZSI6IjEzOTA3OTk3OTk5IiwicmVhbE5hbWUiOiJoZXkiLCJleHAiOjE1NDM4NDUyMDB9.eKN7UZTdFfAQLj_FB80ifxYu8nF_j-UQtKXSxPGA706iaJyIjR_LM_vbp-ZXx2GLBvZaH89o1qTUxleCCCepl27lvJPgyMqoZWW1YXDfO3hT25DEQoe8zzLH2Dd4GIj8jZ8zEMOhaFsvwMKWNqfCS6ML7pqfhoeoDihyZcv165s");
+        HttpEntity entity = new HttpEntity(headers);
+        ResponseEntity<String> result = restTemplate.exchange("http://192.168.0.174:8560/api/purchase/purchase/list",
+                HttpMethod.GET, entity, String.class);
+        if (result.getStatusCodeValue() == 200) {
+            System.out.println(result.getBody());
+        }
+    }
+
+}

+ 13 - 0
base-servers/zipkin-server/src/main/resources/config/application-docker-test.yml

@@ -0,0 +1,13 @@
+eureka:
+  instance:
+    hostname: saas-zipkin-server-test
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-test:8515/eureka/
+zipkin:
+  collector:
+    rabbitmq:
+      uri: amqp://saas:select123***@192.168.0.176:5672/test
+server:
+  port: 8555

+ 9 - 0
base-servers/zipkin-server/src/main/resources/logback-spring.xml

@@ -103,6 +103,15 @@
         </root>
     </springProfile>
 
+    <springProfile name="docker-test">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
     <springProfile name="docker-prod">
         <logger name="org.springframework" level="WARN"/>
         <logger name="com.usoftchina.saas" level="WARN"/>

+ 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'})
                             })

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

@@ -38,8 +38,8 @@
       <div>
         <div class="tc-okkaitong"><span>该企业已开通服务,联系管理员邀请加入</span></div>
         <div class="tc-context">
-          <p><span>saas服务管理员:</span><span>{{arr[0].admin}}</span></p>
-          <p><span>saas服务管理员手机号:</span><span>{{mytoken.account.mobile}}</span></p>
+          <p><span>saas服务管理员:</span><span>{{admin}}</span></p>
+          <p><span>saas服务管理员手机号:</span><span>{{adminMobile}}</span></p>
           <p><span>saas服务管理员邮箱:</span><span></span></p>
         </div>
       </div>
@@ -103,7 +103,9 @@
                 isAutoLogin: this.$store.state.isAutoLogin,
                 mytoken: JSON.parse(localStorage.getItem('app-state-session')),//本地储存的用户信息
                 arr: [],//企业列表信息
-                isheigh:true//是否添加默认高度
+                isheigh:true,//是否添加默认高度
+                admin: '',
+                adminMobile: ''
             }
         },
         computed :{
@@ -123,7 +125,7 @@
             let token = String(mytoken.token);
             //企业列表
             this.$ajax({
-                    url: this.$url.api+"/api/account/accountCenter/company/list",//http://192.168.253.31:8560
+                    url: this.$url.api+"/api/account/accountCenter/company/list",//http://192.168.253.29:8560
                     method: 'get',
                     params: {
                         mobile: mytoken.account.mobile
@@ -261,8 +263,19 @@
                     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
+                        let name = msg.split(" ")[1]
+                        this.admin = name.split('(')[0]
+                        this.adminMobile = name.split('(')[1].split(')')[0]
                         this.isokopensaas = true;
                     }
                 })

+ 8 - 19
frontend/saas-portal-web/src/components/conenter/enterprise.vue

@@ -61,7 +61,7 @@
                                     <span>UU号</span><span>{{mytoken.uu}}</span>
                                 </li>
                                 <li>
-                                    <span>邮箱</span><span>{{email}}</span>
+                                    <span>邮箱</span><span>{{mytoken.email}}</span>
                                 </li>
                                 <li>
                                     <span>手机号</span><span>{{mytoken.mobile}}</span>
@@ -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,23 +103,21 @@ 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'
             },
-            email(){
-                return this.$store.state.email
-            }
-        },
-        mounted(){
-            
         },
         methods: {
             // tab切换

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

@@ -280,6 +280,11 @@
       }
     },
     created(){
+      if (this.$route.query.isporblem == undefined) {
+        this.isproblem = true
+      } else {
+        this.isproblem = this.$route.query.isporblem
+      }
         this.$ajax({
           url: this.$url.api+'/api/auth/info',
           method: 'get',
@@ -425,7 +430,7 @@
       },
       gohome(e){
         this.$store.commit('problemtrue')
-        this.isproblem = true
+        // this.isproblem = true
       }
     }
   }

+ 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>

+ 2 - 2
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue

@@ -24,7 +24,7 @@
                 <div class="qy-conent">
                     <ul>
                         <li><span class="qy-biaoti">姓名</span><span>{{content.admin}}</span></li>
-                        <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
+                        <li><span class="qy-biaoti">手机号</span><span>{{content.adminMobile}}</span></li>
                         <li><span class="qy-biaoti">邮箱</span><span>{{content.adminEmail}}</span></li>
                     </ul>
                 </div>
@@ -83,7 +83,7 @@
                 <div class="qy-conent">
                     <ul>
                         <li><span class="qy-biaoti">姓名</span><span>{{content.admin}}</span></li>
-                        <li><span class="qy-biaoti">手机号</span><span>{{mytoken.account.mobile}}</span></li>
+                        <li><span class="qy-biaoti">手机号</span><span>{{content.adminMobile}}</span></li>
                         <li>
                             <span class="qy-biaoti">邮箱</span>
                             <input @change="email" ref="email" type="text" value="">

+ 0 - 1
frontend/saas-portal-web/src/components/footer/footer.vue

@@ -66,7 +66,6 @@
 		methods:{
 			problem(){
 				this.$router.push({path: '/name', query: {isporblem: false}})
-				// this.$router.go(0)
 				this.$store.commit("problemfalse")
 				document.documentElement.scrollTop = 0;
 			}

+ 1 - 1
frontend/saas-portal-web/src/store/index.js

@@ -7,7 +7,7 @@ export default new Vuex.Store({
         data: [],
         email:'',
         isAutoLogin: false,
-        isproblem: true,//常见问题
+        isproblem: '',//常见问题
     },
     mutations:{
          Logintrue(state) {

+ 8 - 7
frontend/saas-portal-web/static/js/mains.js

@@ -87,28 +87,29 @@ $(document).ready(function(){
 	/*	Menu item highlighting
 	/* ========================================================================= */
 
-	// jQuery('#nav').singlePageNav({
-	// 	offset: jQuery('#nav').outerHeight(),
+	// $('#nav').singlePageNav({
+	// 	offset: $('#nav').outerHeight(),
 	// 	filter: ':not(.external)',
-	// 	speed: 2000,
+	// 	speed: 2000,//动画时间
 	// 	currentClass: 'current',
 	// 	easing: 'easeInOutExpo',
 	// 	updateHash: true,
 	// 	beforeStart: function() {
-	// 		console.log('begin scrolling');
+	// 		console.log('开始滚动');
 	// 	},
 	// 	onComplete: function() {
-	// 		console.log('done scrolling');
+	// 		console.log('滚动结束');
 	// 	}
 	// });
 
     $(window).scroll(function () {
         if ($(window).scrollTop() > 10) {
             $(".navbar-brand a").css("color","#fff");
-            $("#navigation").removeClass("animated-header");
+            $("#navigation").addClass("animated-header");
+            
         } else {
             $(".navbar-brand a").css("color","inherit");
-            $("#navigation").addClass("animated-header");
+            $("#navigation").removeClass("animated-header");
         }
     });
 

+ 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编号或名称',

Some files were not shown because too many files changed in this diff