hy 7 سال پیش
والد
کامیت
8697d587d4
54فایلهای تغییر یافته به همراه922 افزوده شده و 170 حذف شده
  1. 8 2
      applications/commons/pom.xml
  2. 0 0
      applications/commons/src/main/java/com/usoftchina/saas/common/dto/BatchDealBaseDTO.java
  3. 0 0
      applications/commons/src/main/java/com/usoftchina/saas/common/dto/ComboDTO.java
  4. 0 0
      applications/commons/src/main/java/com/usoftchina/saas/common/dto/DocBaseDTO.java
  5. 0 0
      applications/commons/src/main/java/com/usoftchina/saas/common/dto/DocReqDTO.java
  6. 0 0
      applications/commons/src/main/java/com/usoftchina/saas/common/dto/DocSavedDTO.java
  7. 0 0
      applications/commons/src/main/java/com/usoftchina/saas/common/dto/ProductBaseDTO.java
  8. 4 0
      applications/document/document-dto/pom.xml
  9. 9 7
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/ProductDTO.java
  10. 1 10
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Product.java
  11. 1 13
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java
  12. 1 10
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Warehouse.java
  13. 5 0
      applications/document/document-server/pom.xml
  14. 6 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/ProductController.java
  15. 0 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/VendorController.java
  16. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/ProductMapper.java
  17. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/VendorMapper.java
  18. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/WarehouseMapper.java
  19. 10 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/Impl/ProductServiceImpl.java
  20. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/Impl/VendorServiceImpl.java
  21. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/Impl/WarehouseServiceImpl.java
  22. 5 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/ProductService.java
  23. 3 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/VendorService.java
  24. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/WarehouseService.java
  25. 6 2
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  26. 2 2
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  27. 2 2
      applications/document/document-server/src/main/resources/mapper/WarehouseMapper.xml
  28. 1 1
      applications/pom.xml
  29. 5 0
      applications/purchase/purchase-dto/pom.xml
  30. 0 2
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDTO.java
  31. 3 2
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseItemDTO.java
  32. 5 0
      applications/purchase/purchase-server/pom.xml
  33. 4 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseItem.java
  34. 1 2
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseService.java
  35. 4 7
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  36. 32 1
      applications/purchase/purchase-server/src/main/resources/mapper/PurchasedetailMapper.xml
  37. 29 9
      frontend/saas-web/app/util/FormUtil.js
  38. 6 53
      frontend/saas-web/app/util/QueryUtil.js
  39. 63 0
      frontend/saas-web/app/view/core/form/FormPanel.js
  40. 0 6
      frontend/saas-web/app/view/core/form/FormPanelController.js
  41. 6 1
      frontend/saas-web/app/view/core/form/FormPanelModel.js
  42. 1 0
      frontend/saas-web/app/view/core/form/field/DetailGridField.js
  43. 1 9
      frontend/saas-web/app/view/core/query/QueryFormPanel.js
  44. 10 6
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  45. 0 2
      frontend/saas-web/app/view/core/query/QueryPanelController.js
  46. 9 3
      frontend/saas-web/app/view/main/MainModel.js
  47. 137 0
      frontend/saas-web/app/view/purchase/purchase/FormController.js
  48. 5 0
      frontend/saas-web/app/view/purchase/purchase/FormModel.js
  49. 241 0
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  50. 256 0
      frontend/saas-web/app/view/purchase/purchase/QueryPanel.js
  51. 5 0
      frontend/saas-web/app/view/purchase/purchase/QueryPanelController.js
  52. 9 0
      frontend/saas-web/app/view/purchase/purchase/QueryPanelModel.js
  53. 6 6
      frontend/saas-web/app/view/test/query/QueryPanel.js
  54. 10 0
      frontend/saas-web/app/view/test/query/QueryPanelModel.js

+ 8 - 2
applications/common-dto/pom.xml → applications/commons/pom.xml

@@ -9,7 +9,13 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>common-dto</artifactId>
-    <description>common data transfer object</description>
+    <artifactId>commons</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
+    </dependencies>
+
 
 </project>

+ 0 - 0
applications/common-dto/src/main/java/com/usoftchina/saas/common/dto/BatchDealBaseDTO.java → applications/commons/src/main/java/com/usoftchina/saas/common/dto/BatchDealBaseDTO.java


+ 0 - 0
applications/common-dto/src/main/java/com/usoftchina/saas/common/dto/ComboDTO.java → applications/commons/src/main/java/com/usoftchina/saas/common/dto/ComboDTO.java


+ 0 - 0
applications/common-dto/src/main/java/com/usoftchina/saas/common/dto/DocBaseDTO.java → applications/commons/src/main/java/com/usoftchina/saas/common/dto/DocBaseDTO.java


+ 0 - 0
applications/common-dto/src/main/java/com/usoftchina/saas/common/dto/DocReqDTO.java → applications/commons/src/main/java/com/usoftchina/saas/common/dto/DocReqDTO.java


+ 0 - 0
applications/common-dto/src/main/java/com/usoftchina/saas/common/dto/DocSavedDTO.java → applications/commons/src/main/java/com/usoftchina/saas/common/dto/DocSavedDTO.java


+ 0 - 0
applications/common-dto/src/main/java/com/usoftchina/saas/common/dto/ProductBaseDTO.java → applications/commons/src/main/java/com/usoftchina/saas/common/dto/ProductBaseDTO.java


+ 4 - 0
applications/document/document-dto/pom.xml

@@ -18,6 +18,10 @@
             <artifactId>springfox-swagger2</artifactId>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 9 - 7
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/ProductDTO.java

@@ -4,21 +4,23 @@ import java.io.Serializable;
 
 public class ProductDTO implements Serializable {
 
-    private long pr_id;
+    private long id;
     private String pr_code;
     private String pr_detail;
     private String pr_spec;
     private String pr_orispeccode;
-    private String pr_brand;
 
-    public long getPr_id() {
-        return pr_id;
+    public long getId() {
+        return id;
     }
 
-    public void setPr_id(long pr_id) {
-        this.pr_id = pr_id;
+    public void setId(long id) {
+        this.id = id;
     }
 
+    private String pr_brand;
+
+
     public String getPr_code() {
         return pr_code;
     }
@@ -62,7 +64,7 @@ public class ProductDTO implements Serializable {
     @Override
     public String toString() {
         return "ProductDTO{" +
-                "pr_id='" + pr_id + '\'' +
+                "pr_id='" + id + '\'' +
                 ", pr_code='" + pr_code + '\'' +
                 ", pr_detail='" + pr_detail + '\'' +
                 ", pr_spec='" + pr_spec + '\'' +

+ 1 - 10
applications/document/document-server/src/main/java/com/usoftchina/saas/document/po/Product.java → applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Product.java

@@ -1,4 +1,4 @@
-package com.usoftchina.saas.document.po;
+package com.usoftchina.saas.document.entities;
 
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
@@ -8,7 +8,6 @@ import java.util.Date;
 
 public class Product extends CommonBaseEntity implements Serializable {
 
-    private long pr_id;
     private String pr_code;
     private String pr_detail;
     private String pr_spec;
@@ -37,14 +36,6 @@ public class Product extends CommonBaseEntity implements Serializable {
     private String pr_text3;
     private String pr_text4;
 
-    public long getPr_id() {
-        return pr_id;
-    }
-
-    public void setPr_id(long pr_id) {
-        this.pr_id = pr_id;
-    }
-
     public String getPr_code() {
         return pr_code;
     }

+ 1 - 13
applications/document/document-server/src/main/java/com/usoftchina/saas/document/po/Vendor.java → applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Vendor.java

@@ -1,4 +1,4 @@
-package com.usoftchina.saas.document.po;
+package com.usoftchina.saas.document.entities;
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
 
@@ -12,10 +12,6 @@ import java.util.Date;
  */
 public class Vendor extends CommonBaseEntity implements Serializable{
 
-    /**
-     * 供应商ID
-     */
-    private long ve_id;
     /**
      * 供应商编号
      */
@@ -105,14 +101,6 @@ public class Vendor extends CommonBaseEntity implements Serializable{
      */
     private String ve_text5;
 
-    public long getVe_id() {
-        return ve_id;
-    }
-
-    public void setVe_id(long ve_id) {
-        this.ve_id = ve_id;
-    }
-
     public String getVe_code() {
         return ve_code;
     }

+ 1 - 10
applications/document/document-server/src/main/java/com/usoftchina/saas/document/po/Warehouse.java → applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Warehouse.java

@@ -1,4 +1,4 @@
-package com.usoftchina.saas.document.po;
+package com.usoftchina.saas.document.entities;
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
 
@@ -12,7 +12,6 @@ import java.util.Date;
  */
 public class Warehouse extends CommonBaseEntity implements Serializable {
 
-    private long wh_id;
     private String wh_code;
     private String wh_type;
     private String wh_description;
@@ -30,14 +29,6 @@ public class Warehouse extends CommonBaseEntity implements Serializable {
     private String wh_text4;
     private String wh_text5;
 
-    public long getWh_id() {
-        return wh_id;
-    }
-
-    public void setWh_id(long wh_id) {
-        this.wh_id = wh_id;
-    }
-
     public String getWh_code() {
         return wh_code;
     }

+ 5 - 0
applications/document/document-server/pom.xml

@@ -70,6 +70,11 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>common-dto</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>commons</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 6 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/ProductController.java

@@ -1,15 +1,16 @@
 package com.usoftchina.saas.document.controller;
 
 import com.usoftchina.saas.base.Result;
+
 import com.usoftchina.saas.common.dto.ComboDTO;
 import com.usoftchina.saas.common.dto.DocReqDTO;
 import com.usoftchina.saas.document.dto.ProductDTO;
+import com.usoftchina.saas.document.entities.Product;
 import com.usoftchina.saas.document.service.ProductService;
 import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -38,5 +39,9 @@ public class ProductController {
         productService.updateLatestPurchasePrice(pu_id);
     };
 
+    @RequestMapping("/getProductsByPK")
+    public Product getProductsByPK(@RequestParam(value = "pr_id") Long id) {
+        return productService.getProductsByPK(id);
+    };
 
 }

+ 0 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/VendorController.java

@@ -7,7 +7,6 @@ import com.usoftchina.saas.document.service.VendorService;
 import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;

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

@@ -3,7 +3,7 @@ package com.usoftchina.saas.document.mapper;
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.common.dto.ComboDTO;
 import com.usoftchina.saas.common.dto.DocReqDTO;
-import com.usoftchina.saas.document.po.Product;
+import com.usoftchina.saas.document.entities.Product;
 
 import java.util.List;
 

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

@@ -1,8 +1,9 @@
 package com.usoftchina.saas.document.mapper;
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+
 import com.usoftchina.saas.common.dto.DocReqDTO;
-import com.usoftchina.saas.document.po.Vendor;
+import com.usoftchina.saas.document.entities.Vendor;
 
 import java.util.List;
 

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

@@ -1,7 +1,7 @@
 package com.usoftchina.saas.document.mapper;
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
-import com.usoftchina.saas.document.po.Warehouse;
+import com.usoftchina.saas.document.entities.Warehouse;
 
 import java.util.Map;
 

+ 10 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/Impl/ProductServiceImpl.java

@@ -3,11 +3,12 @@ package com.usoftchina.saas.document.service.Impl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+
 import com.usoftchina.saas.common.dto.ComboDTO;
 import com.usoftchina.saas.common.dto.DocReqDTO;
 import com.usoftchina.saas.document.dto.ProductDTO;
+import com.usoftchina.saas.document.entities.Product;
 import com.usoftchina.saas.document.mapper.ProductMapper;
-import com.usoftchina.saas.document.po.Product;
 import com.usoftchina.saas.document.service.ProductService;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.BeanMapper;
@@ -48,4 +49,12 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
     public void updateLatestPurchasePrice(Long pu_id) {
         productMapper.updateLatestPurchasePrice(pu_id);
     }
+
+    @Override
+    public Product getProductsByPK(Long id) {
+        if (null == id) {
+            return productMapper.selectByPrimaryKey(id);
+        }
+        return null;
+    }
 }

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

@@ -5,8 +5,9 @@ import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.common.dto.DocReqDTO;
 import com.usoftchina.saas.document.dto.VendorDTO;
+import com.usoftchina.saas.document.entities.Vendor;
 import com.usoftchina.saas.document.mapper.VendorMapper;
-import com.usoftchina.saas.document.po.Vendor;
+
 import com.usoftchina.saas.document.service.VendorService;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.BeanMapper;

+ 2 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/Impl/WarehouseServiceImpl.java

@@ -1,8 +1,9 @@
 package com.usoftchina.saas.document.service.Impl;
 
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.document.entities.Warehouse;
 import com.usoftchina.saas.document.mapper.WarehouseMapper;
-import com.usoftchina.saas.document.po.Warehouse;
+
 import com.usoftchina.saas.document.service.WarehouseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 5 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/ProductService.java

@@ -1,11 +1,13 @@
 package com.usoftchina.saas.document.service;
 
 import com.usoftchina.saas.base.service.CommonBaseService;
+
 import com.usoftchina.saas.common.dto.ComboDTO;
 import com.usoftchina.saas.common.dto.DocReqDTO;
 import com.usoftchina.saas.document.dto.ProductDTO;
+import com.usoftchina.saas.document.entities.Product;
 import com.usoftchina.saas.document.mapper.ProductMapper;
-import com.usoftchina.saas.document.po.Product;
+
 import com.usoftchina.saas.page.PageRequest;
 
 import java.util.List;
@@ -18,4 +20,6 @@ public interface ProductService extends CommonBaseService<ProductMapper, Product
     List<ComboDTO> getProdUnit();
 
     void updateLatestPurchasePrice(Long pu_id);
+
+    Product getProductsByPK(Long id);
 }

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

@@ -1,10 +1,12 @@
 package com.usoftchina.saas.document.service;
 
 import com.usoftchina.saas.base.service.CommonBaseService;
+
 import com.usoftchina.saas.common.dto.DocReqDTO;
 import com.usoftchina.saas.document.dto.VendorDTO;
+import com.usoftchina.saas.document.entities.Vendor;
 import com.usoftchina.saas.document.mapper.VendorMapper;
-import com.usoftchina.saas.document.po.Vendor;
+
 import com.usoftchina.saas.page.PageRequest;
 
 import java.util.List;

+ 2 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/WarehouseService.java

@@ -1,8 +1,9 @@
 package com.usoftchina.saas.document.service;
 
 import com.usoftchina.saas.base.service.CommonBaseService;
+import com.usoftchina.saas.document.entities.Warehouse;
 import com.usoftchina.saas.document.mapper.WarehouseMapper;
-import com.usoftchina.saas.document.po.Warehouse;
+
 
 import java.util.Map;
 

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

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.usoftchina.saas.document.mapper.ProductMapper">
-    <resultMap id="ProductResultMapper" type="com.usoftchina.saas.document.po.Product">
-        <id column="pr_id" property="pr_id" jdbcType="INTEGER" />
+    <resultMap id="ProductResultMapper" type="com.usoftchina.saas.document.entities.Product">
+        <id column="pr_id" property="id" jdbcType="INTEGER" />
         <result column="pr_code" property="pr_code" jdbcType="VARCHAR" />
         <result column="pr_detail" property="pr_detail" jdbcType="VARCHAR" />
         <result column="pr_spec" property="pr_spec" jdbcType="VARCHAR" />
@@ -45,6 +45,10 @@
         </where>
     </select>
 
+    <select id="selectByPrimaryKey" resultMap="ProductResultMapper" parameterType="long">
+        SELECT * FROM PRODUCT where pr_id = #{pr_id}
+    </select>
+
     <select id="getProdUnit" resultType="com.usoftchina.saas.common.dto.ComboDTO">
         SELECT PR_UNIT as display, pr_unit as value FROM PRODUCT
     </select>

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

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.usoftchina.saas.document.mapper.VendorMapper">
-    <resultMap id="VendorResultMapper" type="com.usoftchina.saas.document.po.Vendor">
-        <id column="ve_id" property="ve_id" jdbcType="INTEGER" />
+    <resultMap id="VendorResultMapper" type="com.usoftchina.saas.document.entities.Vendor">
+        <id column="ve_id" property="id" jdbcType="INTEGER" />
         <result column="ve_code" property="ve_code" jdbcType="VARCHAR" />
         <result column="ve_uu" property="ve_uu" jdbcType="VARCHAR" />
         <result column="ve_name" property="ve_name" jdbcType="VARCHAR" />

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

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.usoftchina.saas.document.mapper.WarehouseMapper">
-    <resultMap id="WarehouseResultMapper" type="com.usoftchina.saas.document.po.Warehouse">
-        <id column="wh_id" property="wh_id" jdbcType="INTEGER" />
+    <resultMap id="WarehouseResultMapper" type="com.usoftchina.saas.document.entities.Warehouse">
+        <id column="wh_id" property="id" jdbcType="INTEGER" />
         <result column="wh_code" property="wh_code" jdbcType="VARCHAR" />
         <result column="wh_type" property="wh_type" jdbcType="VARCHAR" />
         <result column="wh_description" property="wh_description" jdbcType="VARCHAR" />

+ 1 - 1
applications/pom.xml

@@ -18,7 +18,7 @@
         <module>storage</module>
         <module>money</module>
         <module>document</module>
-        <module>common-dto</module>
+        <module>commons</module>
     </modules>
 
 

+ 5 - 0
applications/purchase/purchase-dto/pom.xml

@@ -26,5 +26,10 @@
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>document-dto</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 </project>

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

@@ -1,8 +1,6 @@
 package com.usoftchina.saas.purchase.dto;
 
-import com.usoftchina.saas.common.dto.DocBaseDTO;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;

+ 3 - 2
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseItemDTO.java

@@ -1,7 +1,6 @@
 package com.usoftchina.saas.purchase.dto;
 
-import com.usoftchina.saas.common.dto.DocBaseDTO;
-import com.usoftchina.saas.common.dto.ProductBaseDTO;
+import com.usoftchina.saas.document.entities.Product;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -71,4 +70,6 @@ public class PurchaseItemDTO implements Serializable{
 
     private Double pd_yqty;
 
+    private Product product;
+
 }

+ 5 - 0
applications/purchase/purchase-server/pom.xml

@@ -62,6 +62,11 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>commons</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 4 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseItem.java

@@ -1,6 +1,8 @@
 package com.usoftchina.saas.purchase.po;
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
+
+import com.usoftchina.saas.document.entities.Product;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -14,7 +16,7 @@ public class PurchaseItem extends CommonBaseEntity implements Serializable {
 
     private Integer pd_detno;
 
-    private Integer pd_prodid;
+    private Long pd_prodid;
 
     private String pd_prodcode;
 
@@ -50,4 +52,5 @@ public class PurchaseItem extends CommonBaseEntity implements Serializable {
 
     private Double pd_yqty;
 
+    private Product product;
 }

+ 1 - 2
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseService.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.purchase.service;
 
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseService;
+
 import com.usoftchina.saas.common.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.common.dto.DocSavedDTO;
 import com.usoftchina.saas.page.PageRequest;
@@ -11,8 +12,6 @@ import com.usoftchina.saas.purchase.mapper.PurchaseMapper;
 import com.usoftchina.saas.purchase.po.Purchase;
 import com.usoftchina.saas.purchase.po.PurchaseList;
 
-import java.util.List;
-
 /**
  * @author yingp
  * @date 2018/10/9

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

@@ -19,6 +19,7 @@ import com.usoftchina.saas.purchase.service.PurchaseService;
 import com.usoftchina.saas.utils.BeanMapper;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -64,15 +65,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         PurchaseFormDTO purchaseFormDTO = new PurchaseFormDTO();
         //查询主表信息
         Purchase purchase = getMapper().selectByPrimaryKey(id);
-        //查询从表
-        List<PurchaseItem> purchaseItems = purchasedetailMapper.selectByFK(id);
         //将purchase实体对象转化成传输对象
         PurchaseDTO main = BeanMapper.map(purchase, PurchaseDTO.class);
-        List<PurchaseItemDTO> items = new ArrayList<>();
-        //添加从表传输对象
-        for (PurchaseItem detail : purchaseItems) {
-            items.add(BeanMapper.map(detail, PurchaseItemDTO.class));
-        }
+        //查询从表
+        List<PurchaseItem> purchaseItems = purchasedetailMapper.selectByFK(id);
+        List<PurchaseItemDTO> items = BeanMapper.mapList(purchaseItems, PurchaseItemDTO.class);
         purchaseFormDTO.setMain(main);
         purchaseFormDTO.setItems(items);
         return  purchaseFormDTO;

+ 32 - 1
applications/purchase/purchase-server/src/main/resources/mapper/PurchasedetailMapper.xml

@@ -27,6 +27,36 @@
     <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" />
+    <association property="product" javaType="com.usoftchina.saas.document.entities.Product">
+      <id column="pr_id" property="id"/>
+      <result column="pr_code" property="pr_code"/>
+      <result column="pr_detail" property="pr_detail"/>
+      <result column="pr_spec" property="pr_spec"/>
+      <result column="pr_unit" property="pr_unit"/>
+      <result column="pr_kind" property="pr_kind"/>
+      <result column="pr_orispeccode" property="pr_orispeccode"/>
+      <result column="pr_whid" property="pr_whid"/>
+      <result column="pr_whcode" property="pr_whcode"/>
+      <result column="pr_whname" property="pr_whname"/>
+      <result column="pr_zxbzs" property="pr_zxbzs"/>
+      <result column="pr_leadtime" property="pr_leadtime"/>
+      <result column="pr_brand" property="pr_brand"/>
+      <result column="pr_standardprice" property="pr_standardprice"/>
+      <result column="pr_purcprice" property="pr_purcprice"/>
+      <result column="pr_saleprice" property="pr_saleprice"/>
+      <result column="pr_vendid" property="pr_vendid"/>
+      <result column="pr_vendname" property="pr_vendname"/>
+      <result column="pr_vendcode" property="pr_vendcode"/>
+      <result column="pr_docdate" property="pr_docdate"/>
+      <result column="pr_recordmanid" property="pr_recordmanid"/>
+      <result column="pr_recordman" property="pr_recordman"/>
+      <result column="pr_status" property="pr_status"/>
+      <result column="pr_statuscode" property="pr_statuscode"/>
+      <result column="pr_text1" property="pr_text1"/>
+      <result column="pr_text2" property="pr_text2"/>
+      <result column="pr_text3" property="pr_text3"/>
+      <result column="pr_text4" property="pr_text4"/>
+    </association>
   </resultMap>
   <sql id="Base_Column_List" >
     PD_ID, PD_PUID, PD_CODE, PD_DETNO, PD_PRODID, PD_PRODCODE, PD_UNIT, PD_QTY, PD_PRICE,
@@ -381,6 +411,7 @@
     delete from purchasedetail where pd_puid=#{id}
   </delete>
   <select id="selectByFK" parameterType="long" resultMap="BaseResultMap">
-    select * from purchasedetail where pd_puid=#{pu_id}
+    select * from purchasedetail a left join product b on pr_id=pd_prodid and a.companyid = b.companyid
+      where pd_puid=#{pu_id}
   </select>
 </mapper>

+ 29 - 9
frontend/saas-web/app/util/FormUtil.js

@@ -36,10 +36,12 @@ Ext.define('saas.util.FormUtil', {
                         if(item.xtype == 'detailGridField') {
                             var storeName = item.name || item.xtype + Ext.id();
                             item.bind = {
-                                store : '{' + storeName + '}'
-                            };   
-
-                            var store = Ext.create('Ext.data.Store',{
+                                store: '{' + storeName + '}'
+                            };           
+                            var detailGrids = formModel.get('detailGrids');
+                            detailGrids.push(storeName);
+                            formModel.set('detailGrids', detailGrids);
+                            formModel.set(storeName, Ext.create('Ext.data.Store', {
                                 fields: item.columns ? item.columns.filter(function(c) {
                                     return !!c.dataIndex;
                                 }).map(function(c) {
@@ -51,10 +53,8 @@ Ext.define('saas.util.FormUtil', {
                                     }
                                     return {name: c.dataIndex,type:type};
                                 }) : [],
-                                data:[]
-                            });
-
-                            formModel.set(storeName,store);
+                                data: []
+                            }));
                         }
                     });
                 }
@@ -66,6 +66,9 @@ Ext.define('saas.util.FormUtil', {
         .then(function(items) {
             form.fireEvent('afterSetItems', form, items);
         })
+        .then(function() {
+            me.loadData(form);
+        })
         .catch(function(response) {
             console.error(response);
         });
@@ -73,6 +76,23 @@ Ext.define('saas.util.FormUtil', {
     },
 
     loadData: function(form) {
-
+        var me = this;
+        
+        if(form.initId && form.initId!=0) {
+            var url = form._dataModelUrl + form.initId,async=false;
+            me.BaseUtil.request({url,async })
+            .then(function(response) {
+                var res = Ext.decode(response.responseText);
+                if(res.success) {
+                    var viewModel = form.getViewModel();
+                    viewModel.setData(res.data.main);
+                    var detailStore = viewModel.get('detailGridField');
+                    detailStore.loadData(res.data.items);
+                }
+            })
+            .catch(function(response) {
+                console.error(response);
+            });
+        }
     }
 });

+ 6 - 53
frontend/saas-web/app/util/QueryUtil.js

@@ -2,47 +2,6 @@ Ext.define('saas.util.QueryUtil', {
 
     BaseUtil: Ext.create('saas.util.BaseUtil'),
 
-    // 请求页面组件接口模板
-    baseUrl: 'http://192.168.0.181:8560/api/ui/co_view/config?name={xtype}',
-    // 模板替换正则
-    urlRe: /(.*){xtype}(.*)/g,
-    
-    /**
-     * 获得form的字段配置
-     * @param form: form组件
-     */
-    setItems: function(form) {
-        var me = this;
-        debuggre;
-        Ext.each(form.items.items, function(f){
-            if(f.xtype=='core-query-queryformpanel'){
-
-            }else if(f.xtype=='core-query-gridpanel'){
-                
-            }
-
-        });
-        // xtype = form.xtype,
-        //     url = me.baseUrl.replace(me.urlRe, '$1' + xtype);
-        //     me.BaseUtil.request({url})
-        // .then(function(response) {
-        //     var res = Ext.decode(response.responseText);
-        //     if(res.success) {
-        //         var config = res.data, items = [];
-        //         if(config) {
-        //             items = config.items;
-        //             //_baseItems
-        //             // _BaseColumn: '',
-        //             // _RelativeColumn: '',
-        //             form.add(items);
-        //         }
-        //         form.fireEvent('afterSetItems', form, items);               
-        //     }
-        // })
-        // .catch(function(response) {
-        //     console.error(response);
-        // });
-    },
      /**
      * 获得form的字段查询条件
      * @param form: form组件
@@ -50,11 +9,6 @@ Ext.define('saas.util.QueryUtil', {
      */
     getStoreMode: function(form,Mode){
         var Mode = "MAIN";
-        // Ext.each(form.items.items, function(f){
-        //     if(!Ext.isEmpty(f.value)&&f.fieldMode == "DETAIL") {
-        //         Mode = "DETAIL";
-        //     }
-        // });
         if(form.items.items.find(function(item) {
             return !Ext.isEmpty(item.value)&&item.fieldMode == "DETAIL";
         })) {
@@ -72,17 +26,16 @@ Ext.define('saas.util.QueryUtil', {
         }
         console.log("Mode:"+Mode);
         if(Mode=="MAIN"){
+            grid._Mode = Mode;
             grid.reconfigure(grid.store, grid._baseColumn);
-            grid.loadPage(1);
+            grid.store.loadPage(1);
         }else{
             //若明细字段含明细字段注意切换数据源 grid.reconfigure(store, columns);
             //关联viewName = 关联viewName+"-RelativeGrid" selModel
             //grid.selModel = '';
-            Ext.apply(store.proxy.extraParams, {
-                mode: Mode
-            });
+            grid._Mode = Mode;
             grid.reconfigure(grid.store, grid._relativeColumn);
-            grid.loadPage(1);
+            grid.store.loadPage(1);
         }
     },
       /**
@@ -143,9 +96,9 @@ Ext.define('saas.util.QueryUtil', {
 						f.store.each(function(d, idx){
 							if(d.data.value != '$ALL') {
 								if(_a == ''){
-									_a += f.name +' '+  d.data.value+' ' ;
+									_a += f.logic + "='" + d.data.value + "'";
 								} else {
-									_a += ' OR ' + f.name +' '+ d.data.value +' ';
+									_a += ' OR ' + f.logic + "='" + d.data.value + "'";
 								}
 							}
 						});

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

@@ -72,7 +72,70 @@ Ext.define('saas.view.core.form.FormPanel', {
     },
 
     addItems: function(items) {
+        var me = this;
+        me.setBindFields(items);
         return this.add(items);
+    },
+
+    /**
+     * 获取form数据
+     */
+    getFormData: function() {
+        var me = this,
+        viewModel = me.getViewModel(),
+        allData = viewModel.getData(),
+        bindFields = allData.bindFields,
+        formData = {
+            main: {},
+            detail: []
+        };
+
+        for(k in allData) {
+            if(k == 'detailGridField') {
+                var store = allData[k],
+                storeData = store.getData().items;
+                formData.detail = storeData.map(function(d) {
+                    return d.getData();
+                });
+                continue;
+            }
+            if(bindFields.indexOf(k) != -1) {
+                formData.main[k] = allData[k];
+            }
+        }
+        
+        return formData;
+    },
+
+    /**
+     * 设置需要绑定的字段
+     */
+    setBindFields: function(items) {
+        var me = this,
+        viewModel = me.getViewModel(),
+        bindFields = [];
+
+        Ext.Array.each(items, function(item) {
+            var ignore = item.ignore,
+            bind = item.bind;
+
+            if(!ignore && bind) {
+                if(!Ext.isString(bind)) {
+                    // 这里默认所有的fields都绑定的value,如果是其他属性则需要在加载成组件之后去获取他的defaultBind
+                    bind = bind.value;
+                }
+                if(bind) {
+                    bind = bind.replace(/[{|}]/g, '');
+                    bindFields.push(bind);
+                }
+            }
+        });
+        viewModel.set('bindFields', bindFields);
+    },
+
+    initValues: function(values) {
+        var me = this,
+        viewModel = me.getViewModel();
     }
     
 });

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

@@ -155,10 +155,4 @@ Ext.define('saas.view.core.form.FormPanelController', {
             }
         });
     },
-    /**
-     * 获取form数据
-     */
-    getFormData: function() {
-        
-    }
 });

+ 6 - 1
frontend/saas-web/app/view/core/form/FormPanelModel.js

@@ -1,4 +1,9 @@
 Ext.define('saas.view.core.form.FormPanelModel', {
     extend: 'Ext.app.ViewModel',
-    alias: 'viewmodel.core-form-formpanel'
+    alias: 'viewmodel.core-form-formpanel',
+
+    data: {
+        bindFields: [], // 请求绑定字段,绑定到formfield并且未设置ignore为true
+        detailGrids: [], // 记录从表绑定项
+    }
 });

+ 1 - 0
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -55,6 +55,7 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
                     text: 'Debugger',
                     handler: function() {
                         var detailGrid = me;
+                        var form = detailGrid.up('form');
                         debugger;
                     }
                 }]

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

@@ -33,15 +33,7 @@ Ext.define('saas.view.core.query.QueryFormPanel', {
             xtype: 'button',
             text: '查询',
             handler: 'onQuery'
-        }, '->', {
-            xtype: 'button',
-            text: 'Debugger',
-            handler: function(btn) {
-                var queryFormPanel = btn.up('form'),
-                queryPanel = queryFormPanel.up('panel');
-                debugger;
-            }
-        }]
+        },'->']
     }]
 
 });

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

@@ -32,12 +32,12 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             store: Ext.create('Ext.data.Store', {
                 fields: me.getFields(),
                 autoLoad: true,
-                pageSize: 5,
+                pageSize: 15,
                 data: [],
                 proxy: {
                     type: 'ajax',
-                    // url: me.listUrl,
-                    url: 'http://192.168.253.58:8800/purchase/list',
+                    url: me._baseVastUrl+'list',
+                    //url: 'http://192.168.253.58:8800/purchase/list',
                     actionMethods: {
                         read: 'GET'
                     },
@@ -51,14 +51,19 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                     beforeload: function (store, op) {
                         var condition = '',
                         queryForm = me.ownerCt.down('form'),
-                        condition = me.QueryUtil.getFormCondition(queryForm);
+                        condition = me.QueryUtil.getFormCondition(queryForm),
+                        mode = me._Mode;
                         if (Ext.isEmpty(condition)) {
                             condition = " 1=1 ";
                         }
+                        if(mode){
+                            mode='MAIN';
+                        }
                         console.log("condition:" + condition);
                         Ext.apply(store.proxy.extraParams, {
-                            number: op._start + 1,
+                            number: op._page,
                             size: store.pageSize,
+                            mode:mode,
                             keyword: condition
                         });
     
@@ -87,7 +92,6 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             }, {
                 xtype: 'pagingtoolbar',
                 dock: 'bottom',
-                id: 'query-bbar',
                 displayInfo: true,
                 emptyMsg: "暂无数据",
                 store: me.store,

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

@@ -8,7 +8,6 @@ Ext.define('saas.view.core.query.QueryPanelController', {
         var win = Ext.getCmp('queryMoreWin');
         if (!win) {
             win = Ext.create('Ext.window.Window', {
-                id: 'queryMoreWin',
                 modal: true,
                 height: '50%',
                 width: '50%',
@@ -31,7 +30,6 @@ Ext.define('saas.view.core.query.QueryPanelController', {
         var me = this,
         queryForm = btn.ownerCt.ownerCt,
         grid = queryForm.ownerCt.down('grid');
-        console.log("queryForm:",queryForm,"grid:",grid);
         grid.QueryUtil.turnRelativeGrid(grid,queryForm);
     }
 });

+ 9 - 3
frontend/saas-web/app/view/main/MainModel.js

@@ -26,11 +26,17 @@ Ext.define('saas.view.main.MainModel', {
                                 text: '采购单据',
                                 children: [
                                     {
+                                        id: 'purchaseOrder',
+                                        text: '采购单(维护界面)',
+                                        //viewType: 'purchase-list-gridpanel',
+                                        viewType:'purchase-purchase-formpanel',
+                                        leaf: true
+                                    },{
                                         id: 'purchaseList',
-                                        text: '采购单',
-                                        viewType: 'purchase-list-gridpanel',
+                                        text: '采购单列表',
+                                        viewType:'purchase-purchase-querypanel',
                                         leaf: true
-                                    }, {
+                                    },{
                                         id: 'list1',
                                         text: '列表界面1',
                                         viewType: 'purchase-list-gridpanel1',

+ 137 - 0
frontend/saas-web/app/view/purchase/purchase/FormController.js

@@ -0,0 +1,137 @@
+Ext.define('saas.view.purchase.purchase.FormController', {
+    extend: 'saas.view.core.form.FormPanelController',
+    alias: 'controller.purchase-purchase-formcontroller',
+    init: function (form) {
+        var me = this;
+        this.control({
+            /**放大镜新增demo*/
+            "field[name=combo]":{
+                beforerender:function(f){
+                    f.addHandler=me.addCombo;
+                }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pu_vendcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl:'http://192.168.253.41:9480/api/document/vendor/getVendorsByCondition',
+                        dbfinds:[{
+                            from:'ve_code',to:'pu_vendcode'
+                        },{
+                            from:'ve_name',to:'pu_vendname'
+                        }],
+                        dbtpls:[{
+                            field:'ve_code',width:100
+                        },{
+                            field:'ve_name',width:100
+                        }],
+                        dbColumns:[{
+                            conditionCode:'ve_id',
+                            "text": "供应商ID",
+                            "flex": 0,
+                            "dataIndex": "ve_id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            conditionCode:'ve_code',
+                            "text": "供应商编号",
+                            "flex": 1,
+                            "dataIndex": "ve_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            conditionCode:'ve_name',
+                            "text": "供应商名称",
+                            "flex": 1,
+                            "dataIndex": "ve_name",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            conditionCode:'ve_type',
+                            "text": "供应商类型",
+                            "flex": 0,
+                            "dataIndex": "ve_type",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pd_prodcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        conditionCode:'pr_code',
+                        dataUrl:'http://192.168.253.41:9480/api/document/product/getProductsByCondition',
+                        dbfinds:[{
+                            from:'pr_code',to:'pd_prodcode'
+                        }],
+                        dbtpls:[{
+                            field:'pr_code',width:100
+                        },{
+                            field:'pr_detail',width:100
+                        }],
+                        dbColumns:[{
+                            "text": "物料ID",
+                            "flex": 0,
+                            "dataIndex": "pr_id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            "text": "物料编号",
+                            "flex": 1,
+                            "dataIndex": "pr_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料名称",
+                            "flex": 1,
+                            "dataIndex": "pr_detail",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料规格",
+                            "flex": 0,
+                            "dataIndex": "pr_spec",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            }
+        });
+
+    },
+    addCombo:function(){
+        var combo=this.ownerCmp;
+        Ext.create('Ext.window.Window',{
+            layout:'vbox',
+            bodyPadding: 15,
+            width:500,
+            items:[{
+                fieldLabel:'实际值',
+                xtype:'textfield'
+            },{
+                fieldLabel:'显示值',
+                xtype:'textfield'
+            }],
+            buttons:[{
+                text:'确认',
+                handler:function(b){
+                    combo.setValue('ok');
+                    b.up('window').close();
+                }
+            }],
+            renderTo:this.ownerCmp.ownerCt.getEl()
+        }).show();
+
+    }
+});

+ 5 - 0
frontend/saas-web/app/view/purchase/purchase/FormModel.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.purchase.purchase.FormModel', {
+    extend: 'saas.view.core.form.FormPanelModel',
+    alias: 'viewmodel.purchase-purchase-formmodel',
+
+});

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

@@ -0,0 +1,241 @@
+Ext.define('saas.view.purchase.purchase.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'purchase-purchase-formpanel',
+
+    controller: 'purchase-purchase-formcontroller',
+    viewModel: 'purchase-purchase-formmodel',
+    
+    _title:'采购单',
+    _codeField: 'pu_ode',
+    _statusField: 'pu_statuscode',
+    _idField: 'id',
+    _detnoColumn:  'pd_detno',
+    _dataModelUrl:'http://192.168.253.58:8800/purchase/read/',
+    _saveUrl:'http://192.168.253.58:8800/purchase/save',
+    _auditUrl:'http://192.168.253.58:8800/purchase/audit',
+    _deleteUrl:'http://192.168.253.58:8800/purchase/delete/',
+    _deleteDetailUrl:'http://192.168.253.58:8800/purchase/deleteItem/',
+    initId:0,
+
+    toolBtns: [{
+        xtype: 'button',
+        text: '转单按钮',
+        handler: function() {
+            console.log('11');
+        }
+    }],
+
+    defaultItems: [{
+        xtype: 'hidden',
+        name: 'id',
+        bind: '{id}',
+        fieldLabel: 'id',
+        allowBlank: true,
+        columnWidth: 0
+    }, {
+        xtype : "textfield", 
+        name : "pu_code", 
+        bind : "{pu_code}", 
+        fieldLabel : "采购单号", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        xtype : "hidden", 
+        name : "pu_vendid", 
+        bind : "{pu_vendid}", 
+        fieldLabel : "供应商ID", 
+        allowBlank : true, 
+        columnWidth : 0.0
+    }, {
+        xtype : "textfield", 
+        name : "pu_vendcode", 
+        bind : "{pu_vendcode}", 
+        fieldLabel : "供应商编号", 
+        hidden:true,
+        allowBlank : true, 
+        columnWidth : 0, 
+    }, {
+        xtype : "dbfindtrigger", 
+        name : "pu_vendname", 
+        bind : "{pu_vendname}", 
+        fieldLabel : "供应商名称", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    },{
+        xtype : "datefield", 
+        name : "pu_date", 
+        bind : "{pu_date}", 
+        fieldLabel : "采购日期", 
+        allowBlank : false, 
+        columnWidth : 0.25
+    }, {
+        xtype : "hidden", 
+        name : "pu_buyerid", 
+        bind : "{pu_buyerid}", 
+        fieldLabel : "采购员ID", 
+        allowBlank : true, 
+        columnWidth : 0.0
+    }, {
+        xtype : "textfield", 
+        name : "pu_buyercode", 
+        bind : "{pu_buyercode}", 
+        fieldLabel : "采购员编号", 
+        allowBlank : true, 
+        hidden:true,
+        columnWidth : 0
+    }, {
+        xtype : "dbfindtrigger", 
+        name : "pu_buyername", 
+        bind : "{pu_buyername}", 
+        fieldLabel : "采购员名称", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        xtype : "textfield", 
+        name : "pu_shipaddresscode", 
+        bind : "{pu_shipaddresscode}", 
+        fieldLabel : "交货地址", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        xtype : "textfield", 
+        name : "pu_total", 
+        bind : "{pu_total}", 
+        fieldLabel : "单据金额", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        name : "detailGridField", 
+        xtype : "detailGridField", 
+        bind: {
+            store:{
+                data:'{detailGridField}'
+            }
+        },
+        columns : [
+            {
+                text : "序号", 
+                dataIndex : "pdDetno", 
+                width : 80.0, 
+                xtype : "rownumberer"
+            }, {
+                text : "id", 
+                dataIndex : "id", 
+                xtype : "numbercolumn"
+            },
+            {
+                editor : {
+                    displayField : "display", 
+                    editable : true, 
+                    format : "", 
+                    hideTrigger : false, 
+                    maxLength : 100.0, 
+                    minValue : null, 
+                    positiveNum : false, 
+                    queryMode : "local", 
+                    store : null, 
+                    valueField : "value", 
+                    xtype : "dbfindtrigger"
+                }, 
+                text : "物料编号", 
+                width : 200.0, 
+                dataIndex : "pd_prodcode", 
+                xtype : "", 
+                items : null
+            },
+            {
+                text : "单位", 
+                editor : {
+                    xtype : "textfield"
+                }, 
+                dataIndex : "pd_unit", 
+                width : 120.0, 
+                xtype : "", 
+                items : null
+            }, 
+            {
+                text : "数量", 
+                dataIndex : "pd_yqty", 
+                width : 120.0, 
+                xtype : "numbercolumn", 
+                items : null
+            }, 
+            {
+                text : "单价", 
+                dataIndex : "pd_price", 
+                width : 120.0, 
+                xtype : "numbercolumn", 
+                items : null
+            }, 
+            {
+                text : "税率", 
+                dataIndex : "pd_taxrate", 
+                width : 120.0, 
+                xtype : "numbercolumn", 
+                items : null
+            },
+            {
+                text : "含税金额", 
+                dataIndex : "pd_total", 
+                width : 120.0, 
+                xtype : "numbercolumn"
+            }, 
+            {
+                text : "未税金额", 
+                dataIndex : "pd_taxtotal", 
+                xtype : "numbercolumn"
+            },{
+                text : "需求日期", 
+                dataIndex : "pd_delivery", 
+                flex : 1.0, 
+                xtype:'datecolumn',
+                format : "Y-m-d H:i:s", 
+                editor : {
+                    xtype : "datetimefield",
+                    editable : true, 
+                    format : "Y-m-d H:i:s", 
+                    hideTrigger : false
+                }
+            },
+            {
+                text : "关联销售单号", 
+                dataIndex : "pd_salecode", 
+                width : 120.0,
+                flex : 1.0
+            }
+        ]
+    }, {
+        format : "Y-m-d", 
+        xtype : "datetimefield", 
+        name : "createTime", 
+        bind : "{createTime}", 
+        fieldLabel : "创建时间", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        xtype : "datefield", 
+        name : "updateTime", 
+        bind : "{updateTime}", 
+        fieldLabel : "更新时间", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        xtype : "textfield", 
+        readOnly : true, 
+        editable : false, 
+        name : "puStatus", 
+        bind : "{puStatus}", 
+        fieldLabel : "单据状态", 
+        allowBlank : true, 
+        columnWidth : 0.25
+    }, {
+        xtype : "hidden", 
+        readOnly : true, 
+        editable : false, 
+        name : "pu_statuscode", 
+        bind : "{pu_statuscode}", 
+        fieldLabel : "单据状态码", 
+        allowBlank : true, 
+        columnWidth : 0.0
+    }]
+});

+ 256 - 0
frontend/saas-web/app/view/purchase/purchase/QueryPanel.js

@@ -0,0 +1,256 @@
+Ext.define('saas.view.purchase.purchase.QueryPanel', {
+    extend: 'saas.view.core.query.QueryPanel',
+    xtype: 'purchase-purchase-querypanel',
+
+    viewModel: 'purchase-purchase-querypanel',
+    viewName: 'purchase-purchase-formpanel',
+    _baseVastUrl:'http://192.168.253.58:8800/purchase/',
+    _idField:'pu_id',
+    _codeField:'pu_code',
+    queryFormItems: [{
+        xtype: 'hidden',
+        name: 'pu_id',
+        bind: '{pu_id}',
+        fieldLabel: 'ID',
+        allowBlank: true,
+        columnWidth: 0
+    }, {
+        xtype: 'dbfindtrigger',
+        name: 'pu_code',
+        bind: '{pu_code}',
+        fieldLabel: '单据编号',
+        allowBlank: true,
+        columnWidth: 0.25,
+        dataUrl:'http://192.168.253.41:9480/api/document/vendor/getVendorsByCondition',
+        dbfinds:[{
+            from:'ve_code',to:'pu_code'
+        }],
+        dbColumns:[{
+            conditionCode:'ve_id',
+            "text": "供应商ID",
+            "flex": 0,
+            "dataIndex": "ve_id",
+            "width": 0,
+            "xtype": "",
+            "items": null
+        },{
+            conditionCode:'ve_code',
+            "text": "供应商编号",
+            "flex": 1,
+            "dataIndex": "ve_code",
+            "width": 100,
+            "xtype": "",
+            "items": null
+        }, {
+            conditionCode:'ve_name',
+            "text": "供应商名称",
+            "flex": 1,
+            "dataIndex": "ve_name",
+            "xtype": "",
+            "items": null
+        }, {
+            conditionCode:'ve_type',
+            "text": "供应商类型",
+            "flex": 0,
+            "dataIndex": "ve_type",
+            "width": 200,
+            "xtype": "",
+            "items": null
+        }]
+    }, {
+        xtype: 'condatefield',
+        name: 'pu_date',
+        bind: '{pu_date}',
+        fieldLabel: '采购日期',
+        allowBlank: true,
+        columnWidth: 0.5
+    }, {
+        xtype: 'dbfindtrigger',
+        name: 'pu_vendcode',
+        bind: '{pu_vendcode}',
+        fieldLabel: '供应商编号',
+        allowBlank: true,
+        columnWidth: 0.25,
+        configUrl: 'resources/json/purchase/vendorColumnsDbfind.json',
+        dataUrl: 'resources/json/purchase/vendorDataDbfind.json'
+    }, {
+        xtype: 'textfield',
+        name: 'pu_vendname',
+        bind: '{pu_vendname}',
+        fieldLabel: '供应商名称',
+        allowBlank: true,
+        columnWidth: 0.25
+    }, {
+        xtype: 'dbfindtrigger',
+        name: 'pd_prodcode#pd_prodcode',
+        bind: '{pd_prodcode}',
+        fieldLabel: '物料编号',
+        fieldMode: 'DETAIL',
+        queryType:'VAG',
+        allowBlank: true,
+        columnWidth: 0.25,
+        configUrl: 'resources/json/purchase/vendorColumnsDbfind.json',
+        dataUrl: 'resources/json/purchase/vendorDataDbfind.json'
+    }, {
+        xtype: 'textfield',
+        name: 'pr_detail',
+        bind: '{pr_detail}',
+        fieldLabel: '物料名称',
+        allowBlank: true,
+        columnWidth: 0.25
+    }, {
+        xtype: 'combobox',
+        name: 'pr_statuscode',
+       // bind: '{pr_statuscode}',
+        fieldLabel: '审核状态',
+        allowBlank: true,
+        columnWidth: 0.25,
+        queryMode: 'local',
+            displayField: 'pr_status',
+            valueField: 'pr_statuscode',
+        store: Ext.create('Ext.data.ArrayStore', {
+            fields: ['pr_statuscode', 'pr_status'],
+            data: [
+                ["$ALL", "全部"],
+                ["AUDITED", "已审核"],
+                ["UNAUDITED", "未审核"]
+            ]
+        })
+    }, {
+        xtype: 'combobox',
+        name: 'pu_acceptstatuscode',
+        bind: '{pu_acceptstatuscode}',
+        fieldLabel: '入库状态',
+        allowBlank: true,
+        columnWidth: 0.25,
+        queryMode: 'local',
+        displayField: 'pu_acceptstatus',
+        valueField: 'pu_acceptstatuscode',
+        store: Ext.create('Ext.data.ArrayStore', {
+            fields: ['pu_acceptstatuscode', 'pu_acceptstatus'],
+            data: [
+                ["$ALL", "全部"],
+                ["TURNOUT", "已入库"],
+                ["NOOUT", "未入库"],
+                ["PARTOUT", "部分入库"]
+            ]
+        })
+    }],
+    moreQueryFormItems: [{
+        xtype: 'textfield',
+        name: 'pu_buyername',
+        bind: '{pu_buyername}',
+        fieldLabel: '采购员',
+        allowBlank: true
+    }, {
+        xtype: 'textfield',
+        name: 'pu_total',
+        bind: '{pu_total}',
+        fieldLabel: '金额',
+        allowBlank: true
+    }, {
+        xtype: 'condatefield',
+        name: 'pu_delivery',
+        bind: '{pu_delivery}',
+        fieldLabel: '交货日期',
+        allowBlank: true,
+        columnWidth: 1
+    }],
+    queryGridConfig: {
+        _idField:'pu_id',
+        _codeField:'pu_code',
+        _title:'采购单',
+        _addXtype:'test-order-formpanel',
+        _baseVastUrl:'http://192.168.253.58:8800/purchase/',
+        _baseColumn: [{
+            text: '序号',
+            width: 80,
+            xtype: 'rownumberer'
+        }, {
+            text: 'id',
+            dataIndex: 'pu_id',
+            width: 100,
+            xtype: 'numbercolumn'
+        }, {
+            text: '单据编号',
+            dataIndex: 'pu_code',
+            width: 120
+        }, {
+            text: '单据状态',
+            dataIndex: 'pu_status',
+            width: 120
+        }, {
+            text: '下单日期',
+            dataIndex: 'pu_indate',
+            xtype:'datecolumn',
+            width: 200
+        },{
+            text: '供应商名称',
+            dataIndex: 'pu_vendname',
+            width: 120
+        },{
+            text: '含税金额',
+            dataIndex: 'pu_taxtotal',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '金额',
+            dataIndex: 'pu_total',
+            xtype:'numbercolumn',
+            width: 120,
+            flex: 1
+        }],
+        _relativeColumn: [{
+            text: '序号',
+            width: 80,
+            xtype: 'rownumberer'
+        }, {
+            text: 'id',
+            dataIndex: 'pu_id',
+            width: 100,
+            xtype: 'numbercolumn'
+        }, {
+            text: '单据编号',
+            dataIndex: 'pu_code',
+            width: 120
+        }, {
+            text: '单据状态',
+            dataIndex: 'pu_status',
+            width: 120
+        }, {
+            text: '下单日期',
+            dataIndex: 'pu_indate',
+            xtype:'datecolumn',
+            width: 200
+        },{
+            text: '供应商名称',
+            dataIndex: 'pu_vendname',
+            width: 120
+        },{
+            text: '采购序号',
+            dataIndex: 'pd_detno',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '物料编号',
+            dataIndex: 'pd_prodcode',
+            width: 120
+        },{
+            text: '数量',
+            dataIndex: 'pd_qty',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '单价',
+            dataIndex: 'pd_price',
+            xtype:'numbercolumn',
+            width: 120
+        },{
+            text: '已转数',
+            dataIndex: 'pd_ytqy',
+            xtype:'numbercolumn',
+            width: 120,
+            flex: 1
+        }]
+    }
+});

+ 5 - 0
frontend/saas-web/app/view/purchase/purchase/QueryPanelController.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.purchase.purchase.QueryPanelController', {
+    extend: 'saas.view.core.query.QueryPanelController',
+    alias: 'controller.purchase-purchase-querypanel',
+
+});

+ 9 - 0
frontend/saas-web/app/view/purchase/purchase/QueryPanelModel.js

@@ -0,0 +1,9 @@
+Ext.define('saas.view.purchase.purchase.QueryPanelModel', {
+    extend: 'saas.view.core.query.QueryPanelModel',
+    alias: 'viewmodel.purchase-purchase-querypanel',
+
+    data: {
+       // pu_total: '3333',
+        //pu_code: '4'
+    }
+});

+ 6 - 6
frontend/saas-web/app/view/test/query/QueryPanel.js

@@ -106,11 +106,11 @@ Ext.define('saas.view.test.query.QueryPanel', {
         fieldLabel: '审核状态',
         allowBlank: true,
         columnWidth: 0.25,
+        queryMode: 'local',
+        displayField: 'pr_status',
+        valueField: 'pr_statuscode',
         store: Ext.create('Ext.data.Store', {
             fields: ['pr_statuscode', 'pr_status'],
-            queryMode: 'local',
-            displayField: 'pr_status',
-            valueField: 'pr_statuscode',
             data: [
                 ["$ALL", "全部"],
                 ["=AUDITED", "已审核"],
@@ -124,11 +124,11 @@ Ext.define('saas.view.test.query.QueryPanel', {
         fieldLabel: '入库状态',
         allowBlank: true,
         columnWidth: 0.25,
+        queryMode: 'local',
+        displayField: 'pu_acceptstatus',
+        valueField: 'pu_acceptstatuscode',
         store: Ext.create('Ext.data.Store', {
             fields: ['pu_acceptstatuscode', 'pu_acceptstatus'],
-            queryMode: 'local',
-            displayField: 'pu_acceptstatus',
-            valueField: 'pu_acceptstatuscode',
             data: [
                 ["$ALL", "全部"],
                 ["=TURNOUT", "已入库"],

+ 10 - 0
frontend/saas-web/app/view/test/query/QueryPanelModel.js

@@ -5,5 +5,15 @@ Ext.define('saas.view.test.query.QueryPanelModel', {
     data: {
        // pu_total: '3333',
         //pu_code: '4'
+    },
+    formulas: {
+        queryItems1: {
+            get: function(get) {
+                var pu_code = get('pu_code'),
+                pu_date = get('pu_date');
+
+                return '单据编号:' + pu_code + ',采购日期:从' + Ext.Date.format(pu_date.from, 'Y-m-d') + '到' + Ext.Date.format(pu_date.to, 'Y-m-d');
+            }
+        }
     }
 });