Browse Source

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

dingyl 7 years ago
parent
commit
867128a791
27 changed files with 448 additions and 7 deletions
  1. 1 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 18 0
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/AddressApi.java
  3. 12 0
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/CurrencyApi.java
  4. 16 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/ProductApi.java
  5. 19 3
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/VendorApi.java
  6. 9 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Product.java
  7. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/AddressController.java
  8. 5 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/CurrencyController.java
  9. 11 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/ProductController.java
  10. 6 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/VendorController.java
  11. 3 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CurrencyMapper.java
  12. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/ProductMapper.java
  13. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/VendorMapper.java
  14. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/CurrencyService.java
  15. 7 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/ProductService.java
  16. 7 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/VendorService.java
  17. 5 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CurrencyServiceImpl.java
  18. 9 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  19. 6 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  20. 3 0
      applications/document/document-server/src/main/resources/mapper/CurrencyMapper.xml
  21. 4 0
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  22. 3 0
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  23. 131 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/InquiryTurnPurchaseReqDTO.java
  24. 18 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/QuotationRspDTO.java
  25. 12 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseController.java
  26. 6 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseService.java
  27. 130 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

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

@@ -32,6 +32,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_RELDELETE_UPDATEPROD(79307,"存在关联单据,不允许更新"),
     BIZ_RELDELETE_UPDATEPROD(79307,"存在关联单据,不允许更新"),
     BIZ_RELDELETE_DELETEPROD(79308,"存在关联单据,不允许删除"),
     BIZ_RELDELETE_DELETEPROD(79308,"存在关联单据,不允许删除"),
     BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
     BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
+    BIZ_PRODUCT_UPLOAD(79319, "只能将已上传状态的产品加入我的产品"),
     BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
     BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
     BIZ_RELUPDATE_CODEANDNAME(79311,"存在关联单据,不允许更新编号,名称"),
     BIZ_RELUPDATE_CODEANDNAME(79311,"存在关联单据,不允许更新编号,名称"),
     BIZ_RELUPDATE_AMOUNT(79312,"存在关联单据,不允许更新期初应收,期初预收,期初日期"),
     BIZ_RELUPDATE_AMOUNT(79312,"存在关联单据,不允许更新期初应收,期初预收,期初日期"),

+ 18 - 0
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/AddressApi.java

@@ -0,0 +1,18 @@
+package com.usoftchina.saas.document.api;
+
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.document.entities.Address;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(name = "document-server")
+public interface AddressApi {
+
+    /**
+     * 获取默认地址
+     * @return
+     */
+    @GetMapping("/getDefault")
+    Result<Address> getDefault();
+
+}

+ 12 - 0
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/CurrencyApi.java

@@ -4,13 +4,25 @@ import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.document.dto.CurrencyDTO;
 import com.usoftchina.saas.document.dto.CurrencyDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
 @FeignClient(name = "document-server")
 @FeignClient(name = "document-server")
 public interface CurrencyApi {
 public interface CurrencyApi {
 
 
+    /**
+     * 设置本位币
+     * @param currencyDTO
+     * @return
+     */
     @PostMapping("/currency/setStandard")
     @PostMapping("/currency/setStandard")
     Result setStandard(@RequestBody CurrencyDTO currencyDTO);
     Result setStandard(@RequestBody CurrencyDTO currencyDTO);
 
 
+    /**
+     * 获取本位币
+     * @return
+     */
+    @GetMapping("/currency/getStandard")
+    Result<CurrencyDTO> getStandard();
 }
 }

+ 16 - 1
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/ProductApi.java

@@ -1,7 +1,7 @@
 package com.usoftchina.saas.document.api;
 package com.usoftchina.saas.document.api;
 
 
-import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.document.dto.ProductDTO;
 import com.usoftchina.saas.document.dto.ProductUploadDTO;
 import com.usoftchina.saas.document.dto.ProductUploadDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -40,4 +40,19 @@ public interface ProductApi {
      */
      */
     @PostMapping("/product/b2b/status/update")
     @PostMapping("/product/b2b/status/update")
     Result updateStatus(@RequestParam("ids") String ids, @RequestParam("status") String status);
     Result updateStatus(@RequestParam("ids") String ids, @RequestParam("status") String status);
+
+    /**
+     * 通过code查找物料信息
+     * @param code
+     * @return
+     */
+    @GetMapping("/getByProdCode")
+    Result<ProductDTO> getByProdCode(@RequestParam("code") String code);
+
+    /**
+     * 上传至B2B平台
+     * @return
+     */
+    @PostMapping("/b2b/upload")
+    Result uploadToB2B();
 }
 }

+ 19 - 3
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/VendorApi.java

@@ -1,11 +1,11 @@
 package com.usoftchina.saas.document.api;
 package com.usoftchina.saas.document.api;
 
 
-import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.document.dto.VendorDTO;
 import com.usoftchina.saas.document.dto.VendorListDTO;
 import com.usoftchina.saas.document.dto.VendorListDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.*;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -19,4 +19,20 @@ public interface VendorApi {
      */
      */
     @GetMapping("/vendor/read/{id}")
     @GetMapping("/vendor/read/{id}")
     Result<VendorListDTO> getDataById(@PathVariable("id") Long id);
     Result<VendorListDTO> getDataById(@PathVariable("id") Long id);
+
+    /**
+     * 通过供应商UU号查找  供应商信息
+     * @param uu
+     * @return
+     */
+    @GetMapping(value = "/vendor/read", params = "uu")
+    Result<VendorDTO> findByUU(@RequestParam("uu") Long uu);
+
+    /**
+     * 保存供应商
+     * @param vendorListDTO
+     * @return
+     */
+    @PostMapping("/save")
+    Result<DocBaseDTO> saveFormData(@RequestBody VendorListDTO vendorListDTO);
 }
 }

+ 9 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Product.java

@@ -33,6 +33,15 @@ public class Product extends CommonBaseEntity implements Serializable {
     private String pr_text3;
     private String pr_text3;
     private String pr_text4;
     private String pr_text4;
     private String pr_remark;
     private String pr_remark;
+    private String b2bStatus;
+
+    public String getB2bStatus() {
+        return b2bStatus;
+    }
+
+    public void setB2bStatus(String b2bStatus) {
+        this.b2bStatus = b2bStatus;
+    }
 
 
     public String getPr_remark() {
     public String getPr_remark() {
         return pr_remark;
         return pr_remark;

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

@@ -34,7 +34,7 @@ public class AddressController {
     }
     }
 
 
     @GetMapping("/getDefault")
     @GetMapping("/getDefault")
-    public Result getDefault(){
+    public Result<Address> getDefault(){
         return Result.success(addressService.getDefault());
         return Result.success(addressService.getDefault());
     }
     }
 
 

+ 5 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/CurrencyController.java

@@ -44,4 +44,9 @@ public class CurrencyController {
         currencyService.setStandard(currencyDTO);
         currencyService.setStandard(currencyDTO);
         return Result.success();
         return Result.success();
     }
     }
+
+    @GetMapping("/getStandard")
+    public Result<CurrencyDTO> getStandard(){
+        return Result.success(currencyService.getStandard());
+    }
 }
 }

+ 11 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/ProductController.java

@@ -125,6 +125,17 @@ public class ProductController {
         return Result.success();
         return Result.success();
     }
     }
 
 
+    /**
+     * 通过物料Code查找物料信息
+     * @param code
+     * @return
+     */
+    @GetMapping("/getByProdCode")
+    public Result getByProdCode(@RequestParam("code") String code){
+        productService.getByProdCode(code);
+        return Result.success();
+    }
+
     /**
     /**
      * 上传至B2B平台
      * 上传至B2B平台
      * @return
      * @return

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

@@ -49,6 +49,11 @@ public class VendorController {
         return Result.success(vendorListDTO);
         return Result.success(vendorListDTO);
     }
     }
 
 
+    @GetMapping(value = "/read", params = "uu")
+    public Result<VendorDTO> findByUU(@RequestParam("uu") Long uu){
+        return Result.success(vendorService.findByUU(uu));
+    }
+
     /**
     /**
      * 获取 供应商列表数据,包含供应商主表、从表数据
      * 获取 供应商列表数据,包含供应商主表、从表数据
      * @param listReqDTO
      * @param listReqDTO
@@ -65,7 +70,7 @@ public class VendorController {
      * @return
      * @return
      */
      */
     @PostMapping("/save")
     @PostMapping("/save")
-    public Result saveFormData(@RequestBody VendorListDTO vendorListDTO){
+    public Result<DocBaseDTO> saveFormData(@RequestBody VendorListDTO vendorListDTO){
         DocBaseDTO docBaseDTO = vendorService.saveFormData(vendorListDTO);
         DocBaseDTO docBaseDTO = vendorService.saveFormData(vendorListDTO);
         return Result.success(docBaseDTO);
         return Result.success(docBaseDTO);
     }
     }

+ 3 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CurrencyMapper.java

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.document.mapper;
 package com.usoftchina.saas.document.mapper;
 
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.document.dto.CurrencyDTO;
 import com.usoftchina.saas.document.entities.Currency;
 import com.usoftchina.saas.document.entities.Currency;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -15,4 +16,6 @@ public interface CurrencyMapper extends CommonBaseMapper<Currency> {
     void setStandard(@Param("name") String name, @Param("companyId") Long companyId, @Param("standard") Long standard);
     void setStandard(@Param("name") String name, @Param("companyId") Long companyId, @Param("standard") Long standard);
 
 
     int selectCountByName(@Param("name") String name, @Param("companyId") Long companyId);
     int selectCountByName(@Param("name") String name, @Param("companyId") Long companyId);
+
+    CurrencyDTO getStandard();
 }
 }

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

@@ -70,4 +70,6 @@ public interface ProductMapper extends CommonBaseMapper<Product> {
     void updateB2BStatus(@Param("list") List<String> idsList, @Param("status") String status);
     void updateB2BStatus(@Param("list") List<String> idsList, @Param("status") String status);
 
 
     List<ProdStorageDTO> getProdStorage(@Param("condition") String condition, @Param("companyId") Long companyId, @Param("userId") Long userId);
     List<ProdStorageDTO> getProdStorage(@Param("condition") String condition, @Param("companyId") Long companyId, @Param("userId") Long userId);
+
+    ProductDTO selectByCode(@Param("code") String code, @Param("companyId") Long companyId);
 }
 }

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

@@ -33,4 +33,6 @@ public interface VendorMapper extends CommonBaseMapper<Vendor> {
     void check(Map<String, Object> map);
     void check(Map<String, Object> map);
 
 
     Long selectIdByCode(@Param("code") String code, @Param("companyId") Long companyId);
     Long selectIdByCode(@Param("code") String code, @Param("companyId") Long companyId);
+
+    VendorDTO selectByUU(@Param("uu") Long uu);
 }
 }

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/CurrencyService.java

@@ -15,4 +15,6 @@ public interface CurrencyService  extends CommonBaseService<CurrencyMapper, Curr
     PageInfo<Currency> getAll(PageRequest pageRequest, ListReqDTO listReqDTO);
     PageInfo<Currency> getAll(PageRequest pageRequest, ListReqDTO listReqDTO);
 
 
     void setStandard(CurrencyDTO currencyDTO);
     void setStandard(CurrencyDTO currencyDTO);
+
+    CurrencyDTO getStandard();
 }
 }

+ 7 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/ProductService.java

@@ -119,6 +119,13 @@ public interface ProductService extends CommonBaseService<ProductMapper, Product
 
 
     void saveToFormal(Integer id, boolean update);
     void saveToFormal(Integer id, boolean update);
 
 
+    /**
+     * 通过物料编号查找物料信息
+     * @param code
+     * @return
+     */
+    ProductDTO getByProdCode(String code);
+
     /**
     /**
      * 上传至B2B
      * 上传至B2B
      */
      */

+ 7 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/VendorService.java

@@ -97,4 +97,11 @@ public interface VendorService extends CommonBaseService<VendorMapper, Vendor>{
     boolean batchDelete(BatchDealBaseDTO baseDTOs);
     boolean batchDelete(BatchDealBaseDTO baseDTOs);
 
 
     void saveToFormal(Integer id, boolean update);
     void saveToFormal(Integer id, boolean update);
+
+    /**
+     * 通过供应商UU号查找供应商信息
+     * @param uu
+     * @return
+     */
+    VendorDTO findByUU(Long uu);
 }
 }

+ 5 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CurrencyServiceImpl.java

@@ -68,6 +68,11 @@ public class CurrencyServiceImpl extends CommonBaseServiceImpl<CurrencyMapper, C
 
 
     }
     }
 
 
+    @Override
+    public CurrencyDTO getStandard(){
+        return getMapper().getStandard();
+    }
+
     private DocBaseDTO generateMsgObj(Long id){
     private DocBaseDTO generateMsgObj(Long id){
         return new DocBaseDTO(id, "", "Currency");
         return new DocBaseDTO(id, "", "Currency");
     }
     }

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

@@ -769,6 +769,11 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         }
         }
     }
     }
 
 
+    @Override
+    public ProductDTO getByProdCode(String code){
+        return getMapper().selectByCode(code, BaseContextHolder.getCompanyId());
+    }
+
     /**
     /**
      * 生成物料上传的消息
      * 生成物料上传的消息
      */
      */
@@ -837,6 +842,10 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
      */
      */
     @Override
     @Override
     public void createProdSaler(ProductSalerDTO productSalerDTO){
     public void createProdSaler(ProductSalerDTO productSalerDTO){
+        String status = getMapper().selectByPrimaryKey(productSalerDTO.getProdId()).getB2bStatus();
+        if (!"已上传".equals(status)){
+            throw new BizException(BizExceptionCode.BIZ_PRODUCT_UPLOAD);
+        }
         Long enUU = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData().getUu();
         Long enUU = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData().getUu();
         Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
         Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
         ProductSalerUploadDTO productSalerUploadDTO = new ProductSalerUploadDTO(productSalerDTO.getProdId(), productSalerDTO.getProdCode(), userUU, enUU);
         ProductSalerUploadDTO productSalerUploadDTO = new ProductSalerUploadDTO(productSalerDTO.getProdId(), productSalerDTO.getProdCode(), userUU, enUU);

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

@@ -91,6 +91,12 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         return vendorListDTO;
         return vendorListDTO;
     }
     }
 
 
+    @Override
+    public VendorDTO findByUU(Long uu){
+        VendorDTO vendorDTO = getMapper().selectByUU(uu);
+        return vendorDTO;
+    }
+
     /**
     /**
      * 返回列表数据
      * 返回列表数据
      * @return
      * @return

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

@@ -139,4 +139,7 @@
     <select id="selectCountByName" resultType="int">
     <select id="selectCountByName" resultType="int">
       SELECT COUNT(*) FROM CURRENCYS WHERE CR_NAME = #{name} AND COMPANYID = #{companyId}
       SELECT COUNT(*) FROM CURRENCYS WHERE CR_NAME = #{name} AND COMPANYID = #{companyId}
     </select>
     </select>
+    <select id="getStandard" resultType="com.usoftchina.saas.document.dto.CurrencyDTO">
+      select * from CURRENCYS where cr_standard = '1'
+    </select>
 </mapper>
 </mapper>

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

@@ -32,6 +32,7 @@
         <result column="pr_text4" property="pr_text4" jdbcType="VARCHAR"/>
         <result column="pr_text4" property="pr_text4" jdbcType="VARCHAR"/>
         <result column="pr_text5" property="pr_text5" jdbcType="VARCHAR"/>
         <result column="pr_text5" property="pr_text5" jdbcType="VARCHAR"/>
         <result column="pr_remark" property="pr_remark" jdbcType="VARCHAR"/>
         <result column="pr_remark" property="pr_remark" jdbcType="VARCHAR"/>
+        <result column="b2bStatus" property="b2bStatus" jdbcType="VARCHAR"/>
     </resultMap>
     </resultMap>
     <resultMap id="ProductDTOResultMapper" type="com.usoftchina.saas.document.dto.ProductDTO">
     <resultMap id="ProductDTOResultMapper" type="com.usoftchina.saas.document.dto.ProductDTO">
         <id column="pr_id" property="id" jdbcType="INTEGER"/>
         <id column="pr_id" property="id" jdbcType="INTEGER"/>
@@ -1002,5 +1003,8 @@
         </if>
         </if>
       </where>
       </where>
     </select>
     </select>
+    <select id="selectByCode" resultMap="ProductDTOResultMapper">
+        select * from product where pr_code = #{code} and companyId = #{companyId}
+    </select>
 </mapper>
 </mapper>
 
 

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

@@ -498,5 +498,8 @@
     <select id="selectIdByCode" resultType="long">
     <select id="selectIdByCode" resultType="long">
         select ve_id from VENDOR where ve_code=#{code} and companyId=#{companyId}
         select ve_id from VENDOR where ve_code=#{code} and companyId=#{companyId}
     </select>
     </select>
+    <select id="selectByUU" parameterType="java.lang.Long" resultType="com.usoftchina.saas.document.dto.VendorDTO">
+        select * from vendor where ve_uu = #{uu}
+    </select>
 </mapper>
 </mapper>
 
 

+ 131 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/InquiryTurnPurchaseReqDTO.java

@@ -0,0 +1,131 @@
+package com.usoftchina.saas.purchase.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description 询价转采购
+ * @Author chenwei
+ * @Date 2019/01/23
+ */
+public class InquiryTurnPurchaseReqDTO implements Serializable {
+    /**
+     * 询价单明细ID
+     */
+    private Long id;
+    /**
+     * 操作类型: 0: 已采纳转采购,  1: 直接转采购
+     */
+    private int operate;
+    /**
+     * 物料编号
+     */
+    private String prodCode;
+    /**
+     * 供应商名称
+     */
+    private String vendName;
+    /**
+     * 供应商UU
+     */
+    private Long vendUU;
+    /**
+     * 供应商联系人
+     */
+    private String userName;
+    /**
+     * 联系电话
+     */
+    private String tel;
+    /**
+     * 税率
+     */
+    private Double taxRate;
+    /**
+     * 价格
+     */
+    private Double price;
+    /**
+     * 数量
+     */
+    private Double qty;
+
+    public Double getQty() {
+        return qty;
+    }
+
+    public void setQty(Double qty) {
+        this.qty = qty;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public int getOperate() {
+        return operate;
+    }
+
+    public void setOperate(int operate) {
+        this.operate = operate;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getVendName() {
+        return vendName;
+    }
+
+    public void setVendName(String vendName) {
+        this.vendName = vendName;
+    }
+
+    public Long getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(Long vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public Double getTaxRate() {
+        return taxRate;
+    }
+
+    public void setTaxRate(Double taxRate) {
+        this.taxRate = taxRate;
+    }
+}

+ 18 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/QuotationRspDTO.java

@@ -11,6 +11,8 @@ public class QuotationRspDTO implements Serializable {
 
 
     private Long id;
     private Long id;
     private String vendName;
     private String vendName;
+    private Long vendUU;
+    private String userName;
     private String tel;
     private String tel;
     private String replaceOrispeccode;
     private String replaceOrispeccode;
     private Long leadTime;
     private Long leadTime;
@@ -42,6 +44,22 @@ public class QuotationRspDTO implements Serializable {
         this.vendName = vendName;
         this.vendName = vendName;
     }
     }
 
 
+    public Long getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(Long vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
     public String getTel() {
     public String getTel() {
         return tel;
         return tel;
     }
     }

+ 12 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseController.java

@@ -200,7 +200,7 @@ public class PurchaseController {
      * @return
      * @return
      */
      */
     @GetMapping("/inquiry/list")
     @GetMapping("/inquiry/list")
-    public Result inquiryList(InquiryReqDTO inquiryReqDTO){
+    public Result<InquiryRspDTO> inquiryList(InquiryReqDTO inquiryReqDTO){
         return Result.success(purchaseService.getInquiryList(inquiryReqDTO));
         return Result.success(purchaseService.getInquiryList(inquiryReqDTO));
     }
     }
 
 
@@ -235,4 +235,15 @@ public class PurchaseController {
         purchaseService.updateB2BStatus(id, status);
         purchaseService.updateB2BStatus(id, status);
         return Result.success();
         return Result.success();
     }
     }
+
+    /**
+     * 询价转采购
+     * @param inquiryTurnPurchaseReqDTO
+     * @return
+     */
+    @PostMapping("/inquiry/turnPurchase")
+    public Result turnPurchase(@RequestBody InquiryTurnPurchaseReqDTO inquiryTurnPurchaseReqDTO){
+        purchaseService.turnPurchase(inquiryTurnPurchaseReqDTO);
+        return Result.success();
+    }
 }
 }

+ 6 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseService.java

@@ -173,4 +173,10 @@ public interface PurchaseService extends CommonBaseService<PurchaseMapper, Purch
      * @param status
      * @param status
      */
      */
     void updateB2BStatus(Long id, String status);
     void updateB2BStatus(Long id, String status);
+
+    /**
+     * 询价转采购
+     * @param inquiryTurnPurchaseReqDTO
+     */
+    void turnPurchase(InquiryTurnPurchaseReqDTO inquiryTurnPurchaseReqDTO);
 }
 }

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

@@ -2,7 +2,19 @@ package com.usoftchina.saas.purchase.service.impl;
 
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
+import com.netflix.discovery.converters.Auto;
+import com.usoftchina.saas.account.dto.CompanyDTO;
 import com.usoftchina.saas.commons.cache.ConfigsCache;
 import com.usoftchina.saas.commons.cache.ConfigsCache;
+import com.usoftchina.saas.document.api.AddressApi;
+import com.usoftchina.saas.document.api.CurrencyApi;
+import com.usoftchina.saas.document.api.ProductApi;
+import com.usoftchina.saas.document.api.VendorApi;
+import com.usoftchina.saas.document.dto.CurrencyDTO;
+import com.usoftchina.saas.document.dto.ProductDTO;
+import com.usoftchina.saas.document.dto.VendorDTO;
+import com.usoftchina.saas.document.dto.VendorListDTO;
+import com.usoftchina.saas.document.entities.Vendor;
+import com.usoftchina.saas.document.entities.Vendorcontact;
 import com.usoftchina.saas.inquiry.api.InquiryApi;
 import com.usoftchina.saas.inquiry.api.InquiryApi;
 import com.usoftchina.saas.inquiry.api.SearchApi;
 import com.usoftchina.saas.inquiry.api.SearchApi;
 import com.usoftchina.saas.inquiry.po.inquiry.*;
 import com.usoftchina.saas.inquiry.po.inquiry.*;
@@ -89,6 +101,14 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     private AccountApi accountApi;
     private AccountApi accountApi;
     @Autowired
     @Autowired
     private SendMessageApi sendMessageApi;
     private SendMessageApi sendMessageApi;
+    @Autowired
+    private VendorApi vendorApi;
+    @Autowired
+    private CurrencyApi currencyApi;
+    @Autowired
+    private AddressApi addressApi;
+    @Autowired
+    private ProductApi productApi;
 
 
     private static final Logger LOGGER = LoggerFactory.getLogger(PurchaseServiceImpl.class);
     private static final Logger LOGGER = LoggerFactory.getLogger(PurchaseServiceImpl.class);
 
 
@@ -248,6 +268,8 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         //是否启用B2B
         //是否启用B2B
         boolean enable = ConfigsCache.current().enableB2B();
         boolean enable = ConfigsCache.current().enableB2B();
         if (enable) {
         if (enable) {
+            //上传物料信息
+            productApi.uploadToB2B();
             //更新上传状态
             //更新上传状态
             updateB2BStatus(id, "待上传");
             updateB2BStatus(id, "待上传");
             //生成消息
             //生成消息
@@ -269,6 +291,112 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         getMapper().updateByPrimaryKeySelective(purchase);
         getMapper().updateByPrimaryKeySelective(purchase);
     }
     }
 
 
+    /**
+     * 询价转采购
+     * @param turnPurchaseReqDTO
+     */
+    @Override
+    public void turnPurchase(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO){
+        CompanyDTO companyDTO = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData();
+        Long enUU = companyDTO.getUu();
+        Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
+        if (turnPurchaseReqDTO.getOperate() == 1){
+            //更新采纳状态
+            inquiryApi.adoptQuote(turnPurchaseReqDTO.getId(), (short) 1, enUU, userUU);
+        }
+        //通过供应商UU号检查供应商是否已存在
+        VendorDTO vendorDTO = vendorApi.findByUU(turnPurchaseReqDTO.getVendUU()).getData();
+        DocBaseDTO docBaseDTO = null;
+        if (vendorDTO == null){
+            //自动创建供应商资料
+            docBaseDTO = createVendor(turnPurchaseReqDTO);
+        }
+        //构造采购单数据
+        PurchaseFormDTO purchaseFormDTO = createPurcahse(docBaseDTO, turnPurchaseReqDTO);
+        saveFormData(purchaseFormDTO);
+    }
+
+    /**
+     * 创建供应商
+     * @param turnPurchaseReqDTO
+     * @return
+     */
+    private DocBaseDTO createVendor(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO) {
+        Vendor vendor = new Vendor();
+        String vendorCode = maxnumberService.getMaxnumber(BillCodeSeq.VENDOR.getCaller(), false).getData();
+        vendor.setVe_code(vendorCode);
+        vendor.setVe_name(turnPurchaseReqDTO.getVendName());
+        vendor.setVe_uu(String.valueOf(turnPurchaseReqDTO.getVendUU()));
+        vendor.setVe_taxrate(turnPurchaseReqDTO.getTaxRate());
+        CurrencyDTO currencyDTO = currencyApi.getStandard().getData();
+        vendor.setVe_currency(currencyDTO.getCr_name());
+        vendor.setVe_taxrate(16D);
+        vendor.setCompanyId(BaseContextHolder.getCompanyId());
+        vendor.setCreatorName(BaseContextHolder.getUserName());
+        vendor.setCreatorId(BaseContextHolder.getUserId());
+        vendor.setCreateTime(new Date());
+        //明细
+        Vendorcontact vendorcontact = new Vendorcontact();
+        vendorcontact.setVc_detno(1);
+        vendorcontact.setVc_name(turnPurchaseReqDTO.getUserName());
+        vendorcontact.setVc_tel(turnPurchaseReqDTO.getTel());
+        vendorcontact.setVc_default("1");
+
+        List<Vendorcontact> vendorcontactList = new ArrayList<Vendorcontact>();
+        vendorcontactList.add(vendorcontact);
+        //保存对象
+        VendorListDTO vendorListDTO = new VendorListDTO();
+        vendorListDTO.setMain(vendor);
+        vendorListDTO.setItems(vendorcontactList);
+
+        return vendorApi.saveFormData(vendorListDTO).getData();
+    }
+
+    /**
+     * 生成采购单数据
+     * @param docBaseDTO
+     * @param turnPurchaseReqDTO
+     * @return
+     */
+    private PurchaseFormDTO createPurcahse(DocBaseDTO docBaseDTO, InquiryTurnPurchaseReqDTO turnPurchaseReqDTO){
+        PurchaseFormDTO purchaseFormDTO = new PurchaseFormDTO();
+        //采购单主表
+        PurchaseDTO purchaseDTO = new PurchaseDTO();
+        String code = maxnumberService.getMaxnumber(BillCodeSeq.PURCHASE.getCaller(), false).getData();
+        purchaseDTO.setPu_code(code);
+        purchaseDTO.setPu_vendcode(docBaseDTO.getCode());
+        purchaseDTO.setPu_vendid(new BigDecimal(docBaseDTO.getId()).intValue());
+        purchaseDTO.setPu_vendname(turnPurchaseReqDTO.getVendName());
+        //本位币
+        CurrencyDTO currencyDTO = currencyApi.getStandard().getData();
+        purchaseDTO.setPu_currency(currencyDTO.getCr_name());
+        purchaseDTO.setPu_rate(currencyDTO.getCr_rate());
+        //交货地址
+        String address = addressApi.getDefault().getData().getAd_address();
+        purchaseDTO.setPu_shipaddresscode(address);
+
+        purchaseDTO.setCreateTime(new Date());
+        purchaseDTO.setCreatorName(BaseContextHolder.getUserName());
+        purchaseDTO.setPu_date(new Date());
+        //采购单明细
+        List<PurchaseDetailDTO> items = new ArrayList<PurchaseDetailDTO>();
+        PurchaseDetailDTO purchaseDetailDTO = new PurchaseDetailDTO();
+        ProductDTO productDTO = productApi.getByProdCode(turnPurchaseReqDTO.getProdCode()).getData();
+        purchaseDetailDTO.setPd_code(code);
+        purchaseDetailDTO.setPd_prodid(productDTO.getId());
+        purchaseDetailDTO.setPd_prodcode(productDTO.getPr_code());
+        purchaseDetailDTO.setPd_price(turnPurchaseReqDTO.getPrice());
+        purchaseDetailDTO.setPd_taxrate(turnPurchaseReqDTO.getTaxRate());
+        purchaseDetailDTO.setPd_qty(turnPurchaseReqDTO.getQty());
+        purchaseDetailDTO.setPd_delivery(new Date());
+        purchaseDetailDTO.setPd_detno(1);
+        purchaseDetailDTO.setPd_unit(productDTO.getPr_unit());
+
+        items.add(purchaseDetailDTO);
+        purchaseFormDTO.setMain(purchaseDTO);
+        purchaseFormDTO.setItems(items);
+        return purchaseFormDTO;
+    }
 
 
     @Override
     @Override
     @Transactional
     @Transactional
@@ -889,8 +1017,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                     QuotationRspDTO quotationRspDTO = new QuotationRspDTO();
                     QuotationRspDTO quotationRspDTO = new QuotationRspDTO();
                     quotationRspDTO.setId(publicInquiryItem.getId());
                     quotationRspDTO.setId(publicInquiryItem.getId());
                     quotationRspDTO.setVendName(publicInquiryItem.getVendName());
                     quotationRspDTO.setVendName(publicInquiryItem.getVendName());
+                    quotationRspDTO.setVendUU(publicInquiryItem.getVendUU());
                     quotationRspDTO.setTaxRate(new BigDecimal(publicInquiryItem.getTaxrate()).doubleValue());
                     quotationRspDTO.setTaxRate(new BigDecimal(publicInquiryItem.getTaxrate()).doubleValue());
                     quotationRspDTO.setLeadTime(publicInquiryItem.getLeadtime());
                     quotationRspDTO.setLeadTime(publicInquiryItem.getLeadtime());
+                    quotationRspDTO.setUserName(publicInquiryItem.getUser().getUserName());
                     quotationRspDTO.setTel(publicInquiryItem.getUser().getUserTel());
                     quotationRspDTO.setTel(publicInquiryItem.getUser().getUserTel());
                     quotationRspDTO.setAgreed(publicInquiryItem.getAgreed());
                     quotationRspDTO.setAgreed(publicInquiryItem.getAgreed());
                     quotationRspDTO.setRefusereason(publicInquiryItem.getRefusereason());
                     quotationRspDTO.setRefusereason(publicInquiryItem.getRefusereason());