Browse Source

询价转采购

chenw 6 years ago
parent
commit
924f88bc43
15 changed files with 75 additions and 16 deletions
  1. 1 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 1 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/AddressApi.java
  3. 9 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/VendorApi.java
  4. 5 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/VendorController.java
  5. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CurrencyMapper.java
  6. 3 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/VendorMapper.java
  7. 7 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/VendorService.java
  8. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CurrencyServiceImpl.java
  9. 7 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  10. 1 1
      applications/document/document-server/src/main/resources/mapper/CurrencyMapper.xml
  11. 6 2
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  12. 10 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/QuotationRspDTO.java
  13. 1 2
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseController.java
  14. 2 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/PurchaseService.java
  15. 20 4
      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

@@ -43,6 +43,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_REPORT_NOTCORRECT(79317, "导入数据无效"),
     BIZ_IMPORT_ERROREXCEL(79318, "请导入对应的单据数据"),
     BIZ_ENABLE_B2B(79350, "未启用B2B"),
+    BIZ_TURNPURCHASE_BEFORE(79351, "请先获取UU号(供应商:<u>%s</u>),再进行下单操作"),
 
 
     NO_OPRATIONDATA(79400,"无可操作单据"),

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

@@ -12,7 +12,7 @@ public interface AddressApi {
      * 获取默认地址
      * @return
      */
-    @GetMapping("/getDefault")
+    @GetMapping("/address/getDefault")
     Result<Address> getDefault();
 
 }

+ 9 - 1
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/VendorApi.java

@@ -28,11 +28,19 @@ public interface VendorApi {
     @GetMapping(value = "/vendor/read", params = "uu")
     Result<VendorDTO> findByUU(@RequestParam("uu") Long uu);
 
+    /**
+     * 通过供应商名称查找供应商信息
+     * @param name
+     * @return
+     */
+    @GetMapping(value = "/vendor/read", params = "name")
+    Result<VendorDTO> findByName(@RequestParam("name") String name);
+
     /**
      * 保存供应商
      * @param vendorListDTO
      * @return
      */
-    @PostMapping("/save")
+    @PostMapping("/vendor/save")
     Result<DocBaseDTO> saveFormData(@RequestBody VendorListDTO vendorListDTO);
 }

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

@@ -54,6 +54,11 @@ public class VendorController {
         return Result.success(vendorService.findByUU(uu));
     }
 
+    @GetMapping(value = "/read", params = "name")
+    public Result<VendorDTO> findByName(@RequestParam("name") String name){
+        return Result.success(vendorService.findByName(name));
+    }
+
     /**
      * 获取 供应商列表数据,包含供应商主表、从表数据
      * @param listReqDTO

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

@@ -17,5 +17,5 @@ public interface CurrencyMapper extends CommonBaseMapper<Currency> {
 
     int selectCountByName(@Param("name") String name, @Param("companyId") Long companyId);
 
-    CurrencyDTO getStandard();
+    CurrencyDTO getStandard(@Param("companyId") Long companyId);
 }

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

@@ -34,5 +34,7 @@ public interface VendorMapper extends CommonBaseMapper<Vendor> {
 
     Long selectIdByCode(@Param("code") String code, @Param("companyId") Long companyId);
 
-    VendorDTO selectByUU(@Param("uu") Long uu);
+    VendorDTO selectByUU(@Param("uu") Long uu, @Param("companyId") Long companyId);
+
+    VendorDTO selectByName(@Param("name") String name, @Param("companyId") Long companyId);
 }

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

@@ -104,4 +104,11 @@ public interface VendorService extends CommonBaseService<VendorMapper, Vendor>{
      * @return
      */
     VendorDTO findByUU(Long uu);
+
+    /**
+     * 通过供应商名称查找供应商信息
+     * @param name
+     * @return
+     */
+    VendorDTO findByName(String name);
 }

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

@@ -70,7 +70,7 @@ public class CurrencyServiceImpl extends CommonBaseServiceImpl<CurrencyMapper, C
 
     @Override
     public CurrencyDTO getStandard(){
-        return getMapper().getStandard();
+        return getMapper().getStandard(BaseContextHolder.getCompanyId());
     }
 
     private DocBaseDTO generateMsgObj(Long id){

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

@@ -107,7 +107,13 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
 
     @Override
     public VendorDTO findByUU(Long uu){
-        VendorDTO vendorDTO = getMapper().selectByUU(uu);
+        VendorDTO vendorDTO = getMapper().selectByUU(uu, BaseContextHolder.getCompanyId());
+        return vendorDTO;
+    }
+
+    @Override
+    public VendorDTO findByName(String name){
+        VendorDTO vendorDTO = getMapper().selectByName(name, BaseContextHolder.getCompanyId());
         return vendorDTO;
     }
 

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

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

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

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

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

@@ -26,8 +26,18 @@ public class QuotationRspDTO implements Serializable {
      */
     private String refusereason;
 
+    private String prodCode;
+
     private List<InquiryReplayDTO> replies;
 
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
     public Long getId() {
         return id;
     }

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

@@ -243,7 +243,6 @@ public class PurchaseController {
      */
     @PostMapping("/inquiry/turnPurchase")
     public Result turnPurchase(@RequestBody InquiryTurnPurchaseReqDTO inquiryTurnPurchaseReqDTO){
-        purchaseService.turnPurchase(inquiryTurnPurchaseReqDTO);
-        return Result.success();
+        return Result.success(purchaseService.turnPurchase(inquiryTurnPurchaseReqDTO));
     }
 }

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

@@ -177,6 +177,7 @@ public interface PurchaseService extends CommonBaseService<PurchaseMapper, Purch
     /**
      * 询价转采购
      * @param inquiryTurnPurchaseReqDTO
+     * @return
      */
-    void turnPurchase(InquiryTurnPurchaseReqDTO inquiryTurnPurchaseReqDTO);
+    DocBaseDTO turnPurchase(InquiryTurnPurchaseReqDTO inquiryTurnPurchaseReqDTO);
 }

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

@@ -301,7 +301,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
      * @param turnPurchaseReqDTO
      */
     @Override
-    public void turnPurchase(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO){
+    public DocBaseDTO turnPurchase(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO){
         CompanyDTO companyDTO = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData();
         Long enUU = companyDTO.getUu();
         Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
@@ -311,14 +311,26 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         }
         //通过供应商UU号检查供应商是否已存在
         VendorDTO vendorDTO = vendorApi.findByUU(turnPurchaseReqDTO.getVendUU()).getData();
+        if (vendorDTO == null) {
+            vendorDTO = vendorApi.findByName(turnPurchaseReqDTO.getVendName()).getData();
+            if (vendorDTO != null) {
+                throw new BizException(BizExceptionCode.BIZ_TURNPURCHASE_BEFORE.getCode(),
+                        String.format(BizExceptionCode.BIZ_TURNPURCHASE_BEFORE.getMessage(), vendorDTO.getVe_name()));
+            }
+        }
         DocBaseDTO docBaseDTO = null;
         if (vendorDTO == null){
             //自动创建供应商资料
             docBaseDTO = createVendor(turnPurchaseReqDTO);
         }
+        if (docBaseDTO == null) {
+            docBaseDTO = new DocBaseDTO();
+            docBaseDTO.setId(vendorDTO.getId());
+            docBaseDTO.setCode(vendorDTO.getVe_code());
+        }
         //构造采购单数据
         PurchaseFormDTO purchaseFormDTO = createPurcahse(docBaseDTO, turnPurchaseReqDTO);
-        saveFormData(purchaseFormDTO);
+        return saveFormData(purchaseFormDTO);
     }
 
     /**
@@ -328,7 +340,8 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
      */
     private DocBaseDTO createVendor(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO) {
         Vendor vendor = new Vendor();
-        String vendorCode = maxnumberService.getMaxnumber(BillCodeSeq.VENDOR.getCaller(), false).getData();
+        String vendorCode = maxnumberService.getMaxnumber(BillCodeSeq.VENDOR.getCaller(), true).getData();
+        vendor.setId(0L);
         vendor.setVe_code(vendorCode);
         vendor.setVe_name(turnPurchaseReqDTO.getVendName());
         vendor.setVe_uu(String.valueOf(turnPurchaseReqDTO.getVendUU()));
@@ -336,6 +349,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         CurrencyDTO currencyDTO = currencyApi.getStandard().getData();
         vendor.setVe_currency(currencyDTO.getCr_name());
         vendor.setVe_taxrate(16D);
+        vendor.setVe_begindate(new Date());
         vendor.setCompanyId(BaseContextHolder.getCompanyId());
         vendor.setCreatorName(BaseContextHolder.getUserName());
         vendor.setCreatorId(BaseContextHolder.getUserId());
@@ -367,8 +381,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         PurchaseFormDTO purchaseFormDTO = new PurchaseFormDTO();
         //采购单主表
         PurchaseDTO purchaseDTO = new PurchaseDTO();
-        String code = maxnumberService.getMaxnumber(BillCodeSeq.PURCHASE.getCaller(), false).getData();
+        String code = maxnumberService.getMaxnumber(BillCodeSeq.PURCHASE.getCaller(), true).getData();
         purchaseDTO.setPu_code(code);
+        purchaseDTO.setId(0L);
         purchaseDTO.setPu_vendcode(docBaseDTO.getCode());
         purchaseDTO.setPu_vendid(new BigDecimal(docBaseDTO.getId()).intValue());
         purchaseDTO.setPu_vendname(turnPurchaseReqDTO.getVendName());
@@ -1043,6 +1058,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                     QuotationRspDTO quotationRspDTO = new QuotationRspDTO();
                     quotationRspDTO.setId(publicInquiryItem.getId());
                     quotationRspDTO.setVendName(publicInquiryItem.getVendName());
+                    quotationRspDTO.setProdCode(purcInquiryItemInfo.getProdCode());
                     quotationRspDTO.setVendUU(publicInquiryItem.getVendUU());
                     quotationRspDTO.setTaxRate(new BigDecimal(publicInquiryItem.getTaxrate()).doubleValue());
                     quotationRspDTO.setLeadTime(publicInquiryItem.getLeadtime());