Browse Source

代码合并

chenw 7 years ago
parent
commit
e6900fb3d6
21 changed files with 257 additions and 44 deletions
  1. 2 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/BillCodeSeq.java
  2. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/ConfigsMapper.java
  3. 16 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ConfigsServiceImpl.java
  4. 3 0
      applications/commons/commons-server/src/main/resources/mapper/ConfigsMapper.xml
  5. 1 1
      applications/document/document-server/src/main/resources/application.yml
  6. 1 1
      applications/money/money-server/src/main/resources/application.yml
  7. 9 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  8. 1 1
      applications/purchase/purchase-server/src/main/resources/application.yml
  9. 1 1
      applications/sale/sale-server/src/main/resources/application.yml
  10. 0 28
      applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/api/B2BPurchaseApi.java
  11. 1 1
      applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/api/SearchUUApi.java
  12. 55 0
      applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/po/purchase/PurchaseDetailEnd.java
  13. 1 1
      applications/transfers/mall-api/src/test/resources/application.yml
  14. 1 1
      applications/transfers/transfers-api/src/main/java/com/usoftchina/saas/transfers/api/SendMessageApi.java
  15. 48 0
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/config/B2BConfig.java
  16. 5 0
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/ReceiveService.java
  17. 1 1
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/Executable.java
  18. 79 0
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseEndTask.java
  19. 27 5
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseTask.java
  20. 1 1
      applications/transfers/transfers-server/src/main/resources/application.yml
  21. 2 2
      base-servers/account/account-api/src/main/java/com/usoftchina/saas/account/api/AccountApi.java

+ 2 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/BillCodeSeq.java

@@ -62,6 +62,8 @@ public enum  BillCodeSeq {
 
     BOM("BOM资料", "Bom"),
 
+    PURCHASEEND("采购单结案", "PURCHASEEND"),
+
     APCHECK("对账单", "APCHECK");
 
 

+ 2 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/ConfigsMapper.java

@@ -23,4 +23,6 @@ public interface ConfigsMapper {
     void updateCreator(@Param("userId") Long userId, @Param("userName") String userName, @Param("id") Long id);
 
     void updateByCodeSelective(Configs con);
+
+    int selectByCodeAndCompanyId(@Param("code") String code, @Param("companyId") Long companyId);
 }

+ 16 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ConfigsServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -109,6 +110,21 @@ public class ConfigsServiceImpl implements ConfigsService{
                 currencyDTO.setCr_name(con.getData());
                 currencyDTO.setCr_standard(1L);
                 currencyApi.setStandard(currencyDTO);
+            } else if("enableB2B".equals(con.getCode())){
+                int count = configsMapper.selectByCodeAndCompanyId(con.getCode(), BaseContextHolder.getCompanyId());
+                if (count == 0){
+                    //不存在,则插入
+                    Configs configs = new Configs();
+                    configs.setCode(con.getCode());
+                    configs.setDescription("启用B2B");
+                    configs.setData(con.getData());
+                    configs.setCompanyId(BaseContextHolder.getCompanyId());
+                    configs.setCreateTime(new Date());
+                    configs.setCreatorName(BaseContextHolder.getUserName());
+                    configs.setCreatorId(Integer.parseInt(String.valueOf(BaseContextHolder.getUserId())));
+                    configsMapper.insertSelective(configs);
+                    continue;
+                }
             }
             configsMapper.updateByCodeSelective(con);
         }

+ 3 - 0
applications/commons/commons-server/src/main/resources/mapper/ConfigsMapper.xml

@@ -180,5 +180,8 @@
     </set>
     where code = #{code,jdbcType=VARCHAR} and companyid = #{companyId}
   </update>
+  <select id="selectByCodeAndCompanyId" resultType="int">
+    SELECT COUNT(*) FROM CONFIGS WHERE CODE = #{code} AND COMPANYID = #{companyId}
+  </select>
 
 </mapper>

+ 1 - 1
applications/document/document-server/src/main/resources/application.yml

@@ -96,4 +96,4 @@ b2b:
     inquiry: https://test-inquiry.uuzcc.cn
     Component: https://test-mall.uuzcc.cn
     product: http://test-product.uuzcc.cn
-    uu: https://test-b2b.uuzcc.cn
+    common: https://test-b2b.uuzcc.cn

+ 1 - 1
applications/money/money-server/src/main/resources/application.yml

@@ -82,4 +82,4 @@ b2b:
     inquiry: https://test-inquiry.uuzcc.cn
     Component: https://test-mall.uuzcc.cn
     product: http://test-product.uuzcc.cn
-    uu: https://test-b2b.uuzcc.cn
+    common: https://test-b2b.uuzcc.cn

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

@@ -401,6 +401,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         DocBaseDTO docBaseDTO = getBaseDTOById(id);
         //日志
         messageLogService.close(docBaseDTO);
+        if (ConfigsCache.current().enableB2B()){
+            MessageInfo messageInfo = new MessageInfo(BaseContextHolder.getUserId(), BillCodeSeq.PURCHASEEND.name(), String.valueOf(id), BaseContextHolder.getCompanyId());
+            sendMessageApi.sendMsg(messageInfo);
+        }
         return docBaseDTO;
     }
 
@@ -464,6 +468,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
             docBaseDTO = getBaseDTOById(id);
             //日志
             messageLogService.open(docBaseDTO);
+            //启用B2B,采购单结案反结案状态上传
+            if (ConfigsCache.current().enableB2B()){
+                MessageInfo messageInfo = new MessageInfo(BaseContextHolder.getUserId(), BillCodeSeq.PURCHASEEND.name(), String.valueOf(id), BaseContextHolder.getCompanyId());
+                sendMessageApi.sendMsg(messageInfo);
+            }
             return docBaseDTO;
         }
         return docBaseDTO;

+ 1 - 1
applications/purchase/purchase-server/src/main/resources/application.yml

@@ -94,4 +94,4 @@ b2b:
     inquiry: https://test-inquiry.uuzcc.cn
     Component: https://test-mall.uuzcc.cn
     product: http://test-product.uuzcc.cn
-    uu: https://test-b2b.uuzcc.cn
+    common: https://test-b2b.uuzcc.cn

+ 1 - 1
applications/sale/sale-server/src/main/resources/application.yml

@@ -94,4 +94,4 @@ b2b:
     inquiry: https://test-inquiry.uuzcc.cn
     Component: https://test-mall.uuzcc.cn
     product: http://test-product.uuzcc.cn
-    uu: https://test-b2b.uuzcc.cn
+    common: https://test-b2b.uuzcc.cn

+ 0 - 28
applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/api/B2BPurchaseApi.java

@@ -1,28 +0,0 @@
-package com.usoftchina.saas.inquiry.api;
-
-import com.usoftchina.saas.inquiry.po.purchase.SavePurchaseListResp;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-@FeignClient(url = "${b2b.baseUrl.uu}", name = "b2b-server")
-@RequestMapping("/erp/purchase")
-public interface B2BPurchaseApi {
-    /**
-     * 上传采购单
-     * @param data
-     * @return
-     */
-    @RequestMapping(method = RequestMethod.POST)
-    SavePurchaseListResp savePurchase(@RequestParam("data") String data);
-
-    /**
-     * 结案、反结案采购单后,传到平台
-     * @param data
-     */
-    @PostMapping("/end")
-    void updatePurchaseDetailEnd(@RequestParam("data") String data);
-
-}

+ 1 - 1
applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/api/SearchUUApi.java

@@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.Map;
 
-@FeignClient(url = "${b2b.baseUrl.uu}", name = "b2b-server")
+@FeignClient(url = "${b2b.baseUrl.common}", name = "b2b-server")
 @RequestMapping("/public")
 public interface SearchUUApi {
     /**

+ 55 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/saas/inquiry/po/purchase/PurchaseDetailEnd.java

@@ -0,0 +1,55 @@
+package com.usoftchina.saas.inquiry.po.purchase;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/15
+ */
+public class PurchaseDetailEnd {
+
+    private String pd_code;
+    private short pd_detno;
+    private short pd_ended;
+    private Integer pd_id;
+
+    public String getPd_code() {
+        return pd_code;
+    }
+
+    public void setPd_code(String pd_code) {
+        this.pd_code = pd_code;
+    }
+
+    public short getPd_detno() {
+        return pd_detno;
+    }
+
+    public void setPd_detno(short pd_detno) {
+        this.pd_detno = pd_detno;
+    }
+
+    public short getPd_ended() {
+        return pd_ended;
+    }
+
+    public void setPd_ended(short pd_ended) {
+        this.pd_ended = pd_ended;
+    }
+
+    public Integer getPd_id() {
+        return pd_id;
+    }
+
+    public void setPd_id(Integer pd_id) {
+        this.pd_id = pd_id;
+    }
+
+    public PurchaseDetailEnd() {
+    }
+
+    public PurchaseDetailEnd(String pd_code, short pd_detno, short pd_ended, Integer pd_id) {
+        this.pd_code = pd_code;
+        this.pd_detno = pd_detno;
+        this.pd_ended = pd_ended;
+        this.pd_id = pd_id;
+    }
+}

+ 1 - 1
applications/transfers/mall-api/src/test/resources/application.yml

@@ -3,4 +3,4 @@ b2b:
     inquiry: https://test-inquiry.uuzcc.cn
     Component: https://test-mall.uuzcc.cn
     product: http://test-product.uuzcc.cn
-    uu: https://test-b2b.uuzcc.cn
+    common: https://test-b2b.uuzcc.cn

+ 1 - 1
applications/transfers/transfers-api/src/main/java/com/usoftchina/saas/transfers/api/SendMessageApi.java

@@ -17,7 +17,7 @@ public interface SendMessageApi {
     class SendMessageApiFallBack implements SendMessageApi {
         @Override
         public Result sendMsg(MessageInfo info) {
-            return null;
+            return Result.error("网络异常,请稍后重试!");
         }
     }
 }

+ 48 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/config/B2BConfig.java

@@ -0,0 +1,48 @@
+package com.usoftchina.saas.transfers.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/15
+ */
+@ConfigurationProperties(prefix = "b2b.baseUrl")
+public class B2BConfig {
+
+    private String inquiry;
+    private String Component;
+    private String product;
+    private String common;
+
+    public String getInquiry() {
+        return inquiry;
+    }
+
+    public void setInquiry(String inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public String getComponent() {
+        return Component;
+    }
+
+    public void setComponent(String component) {
+        Component = component;
+    }
+
+    public String getProduct() {
+        return product;
+    }
+
+    public void setProduct(String product) {
+        this.product = product;
+    }
+
+    public String getCommon() {
+        return common;
+    }
+
+    public void setCommon(String common) {
+        this.common = common;
+    }
+}

+ 5 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/ReceiveService.java

@@ -68,6 +68,11 @@ public class ReceiveService {
                case PRODUCT:        //物料库上传
                    task = new SendProductTask();
                    break;
+               case PURCHASEEND:
+                   task = new SendPurchaseEndTask();
+                   break;
+               default:
+                   break;
            }
 
            task.execute(info);

+ 1 - 1
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/Executable.java

@@ -20,5 +20,5 @@ public abstract class Executable {
     /**
      * 执行任务
      */
-    public abstract void execute(MessageInfo messageInfo);
+    public abstract void execute(MessageInfo messageInfo) throws Exception;
 }

+ 79 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseEndTask.java

@@ -0,0 +1,79 @@
+package com.usoftchina.saas.transfers.task;
+
+import com.usoftchina.saas.account.api.CompanyApi;
+import com.usoftchina.saas.inquiry.po.purchase.PurchaseDetailEnd;
+import com.usoftchina.saas.purchase.api.PurchaseApi;
+import com.usoftchina.saas.purchase.dto.PurchaseDetailDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
+import com.usoftchina.saas.transfers.dto.MessageInfo;
+import com.usoftchina.saas.utils.CollectionUtils;
+import com.usoftchina.saas.utils.JsonUtils;
+import com.usoftchina.saas.utils.http.HttpUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/15
+ */
+public class SendPurchaseEndTask extends Executable {
+
+    @Autowired
+    private PurchaseApi purchaseApi;
+    @Autowired
+    private CompanyApi companyApi;
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SendPurchaseEndTask.class);
+    private final String purchaseEndUrl = "/erp/purchase/end";
+
+    @Override
+    public void execute(MessageInfo messageInfo) throws Exception {
+        String accessSecretKey = companyApi.getCompanyById(messageInfo.getCompanyId()).getData().getAccessKey();
+        PurchaseFormDTO purchaseFormDTO = purchaseApi.getFormData(Long.parseLong(messageInfo.getBizId())).getData();
+        short endStatus = 0;
+        //结案、反结案
+        if("CLOSE".equals(purchaseFormDTO.getMain().getPu_statuscode())) {
+            endStatus = 1;     //结案
+        } else {
+            endStatus = 0;     //反结案
+        }
+        List<PurchaseDetailDTO> purchaseDetailDTOList = purchaseFormDTO.getItems();
+        List<PurchaseDetailEnd> purchaseDetailEndList = new ArrayList<PurchaseDetailEnd>();
+        if (!CollectionUtils.isEmpty(purchaseDetailDTOList)) {
+            //构造需要发送的数据
+            for (PurchaseDetailDTO purchaseDetailDTO : purchaseDetailDTOList) {
+                PurchaseDetailEnd purchaseDetailEnd = new PurchaseDetailEnd(purchaseDetailDTO.getPd_code(),
+                        new BigDecimal(purchaseDetailDTO.getPd_detno()).shortValue(), endStatus,
+                        new BigDecimal(purchaseDetailDTO.getId()).intValue());
+                purchaseDetailEndList.add(purchaseDetailEnd);
+            }
+            //发送给b2b
+            sendPurchaseEndToB2B(purchaseEndUrl, Long.parseLong(String.valueOf(messageInfo.getBizId())),
+                    JsonUtils.toJsonString(purchaseDetailEndList), accessSecretKey);
+        }
+
+    }
+
+    /**
+     * 发送http请求,更新上传状态
+     * @param bizId
+     * @param data
+     * @param accessSecretKey
+     * @throws Exception
+     */
+    private void sendPurchaseEndToB2B(String url, Long bizId, String data, String accessSecretKey) throws Exception {
+        Map<String, String> params = new HashMap<String, String>();
+        params.put("data", JsonUtils.toJsonString(data));
+        HttpUtil.Response response = HttpUtil.sendPostRequest(url, params, true, accessSecretKey);
+        if (response.getStatusCode() == 200){
+            purchaseApi.updateB2BStatus(bizId, "已上传");
+        }
+    }
+}

+ 27 - 5
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseTask.java

@@ -1,21 +1,26 @@
 package com.usoftchina.saas.transfers.task;
 
 import com.usoftchina.saas.account.api.CompanyApi;
-import com.usoftchina.saas.inquiry.api.B2BPurchaseApi;
+import com.usoftchina.saas.account.dto.CompanyDTO;
 import com.usoftchina.saas.inquiry.po.purchase.Purchase;
 import com.usoftchina.saas.inquiry.po.purchase.PurchaseDetail;
 import com.usoftchina.saas.purchase.api.PurchaseApi;
 import com.usoftchina.saas.purchase.dto.PurchaseDTO;
 import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
+import com.usoftchina.saas.transfers.config.B2BConfig;
 import com.usoftchina.saas.transfers.dto.MessageInfo;
 import com.usoftchina.saas.utils.BeanMapper;
 import com.usoftchina.saas.utils.JsonUtils;
 import com.usoftchina.saas.utils.ObjectUtils;
+import com.usoftchina.saas.utils.http.HttpUtil;
+import com.usoftchina.saas.utils.http.HttpUtil.Response;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author: guq
@@ -28,12 +33,14 @@ public class SendPurchaseTask extends Executable {
     @Autowired
     private PurchaseApi purchaseApi;
     @Autowired
-    private B2BPurchaseApi b2BPurchaseApi;
+    private B2BConfig b2bConfig;
 
     private static final Logger LOGGER = LoggerFactory.getLogger(SendProductTask.class);
+    private final String purchaseUrl = "/erp/purchase";
 
     @Override
-    public void execute(MessageInfo messageInfo) {
+    public void execute(MessageInfo messageInfo) throws Exception {
+        CompanyDTO companyDTO = companyApi.getCompanyById(messageInfo.getCompanyId()).getData();
         PurchaseFormDTO purchaseFormDTO = purchaseApi.getFormData(Long.parseLong(messageInfo.getBizId())).getData();
         if (!ObjectUtils.isEmpty(purchaseFormDTO)){
             //采购单主表数据
@@ -44,10 +51,25 @@ public class SendPurchaseTask extends Executable {
             List<PurchaseDetail> b2bPurchaseDetailList = BeanMapper.mapList(purchaseFormDTO.getItems(), PurchaseDetail.class);
             b2bPurchase.setPurchaseDetails(b2bPurchaseDetailList);
 
-            /*SavePurchaseListResp savePurchaseListResp = */
-            b2BPurchaseApi.savePurchase(JsonUtils.toJsonString(b2bPurchase));
+            sendPurchaseToB2B(b2bConfig.getCommon() + purchaseUrl, Long.parseLong(messageInfo.getBizId()), JsonUtils.toJsonString(b2bPurchase), companyDTO.getAccessKey());
             purchaseApi.updateB2BStatus(Long.parseLong(messageInfo.getBizId()), "已上传");
         }
 
     }
+
+    /**
+     * 发送http请求
+     * @param bizId
+     * @param data
+     * @param accessSecretKey
+     * @throws Exception
+     */
+    private void sendPurchaseToB2B(String url, Long bizId, String data, String accessSecretKey) throws Exception {
+        Map<String, String> params = new HashMap<String, String>();
+        params.put("data", JsonUtils.toJsonString(data));
+        Response response = HttpUtil.sendPostRequest(url, params, true, accessSecretKey);
+        if (response.getStatusCode() == 200){
+            purchaseApi.updateB2BStatus(bizId, "已上传");
+        }
+    }
 }

+ 1 - 1
applications/transfers/transfers-server/src/main/resources/application.yml

@@ -92,4 +92,4 @@ b2b:
     inquiry: https://test-inquiry.uuzcc.cn
     Component: https://test-mall.uuzcc.cn
     product: http://test-product.uuzcc.cn
-    uu: https://test-b2b.uuzcc.cn
+    common: https://test-b2b.uuzcc.cn

+ 2 - 2
base-servers/account/account-api/src/main/java/com/usoftchina/saas/account/api/AccountApi.java

@@ -87,7 +87,7 @@ public interface AccountApi {
      * @param companyId
      * @return
      */
-    @PostMapping("/bind/company")
+    @PostMapping("/account/bind/company")
     Result bindCompany(@RequestParam("accountId") long accountId, @RequestParam("companyId") long companyId);
 
     /**
@@ -96,7 +96,7 @@ public interface AccountApi {
      * @param roleIds
      * @return
      */
-    @PostMapping("/bind/roles")
+    @PostMapping("/account/bind/roles")
     Result bindRoles(@RequestParam("accountId") Long accountId, @RequestParam("roleIds") String roleIds);
 
     /**