Explorar el Código

采购验退单task

chenw hace 7 años
padre
commit
0979db521f

+ 9 - 3
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/ReceiveService.java

@@ -59,16 +59,22 @@ public class ReceiveService {
                case PURCHASE:       //采购单上传
                    task = new SendPurchaseTask();
                    break;
-               case PURCHASEIN:
+               case PURCHASEIN:     //采购验收单过账
                    task = new SendPurchaseInTask();
                    break;
-               case PURCHASEOUT:
+               case PURCHASEINRES:     //采购验收单反过账
+                   task = new SendPurchaseInResTask();
+                   break;
+               case PURCHASEOUT:    //采购延退单过账
                    task = new SendPurchaseOutTask();
                    break;
+               case PURCHASEOUTRES:     //采购验收单反过账
+                   task = new SendPurchaseOutResTask();
+                   break;
                case PRODUCT:        //物料库上传
                    task = new SendProductTask();
                    break;
-               case PURCHASEEND:
+               case PURCHASEEND:    //采购单结案
                    task = new SendPurchaseEndTask();
                    break;
                default:

+ 15 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseInResTask.java

@@ -0,0 +1,15 @@
+package com.usoftchina.saas.transfers.task;
+
+import com.usoftchina.saas.transfers.dto.MessageInfo;
+
+/**
+ * 采购验收单反过账
+ * @Author chenwei
+ * @Date 2019/01/16
+ */
+public class SendPurchaseInResTask extends Executable {
+    @Override
+    public void execute(MessageInfo messageInfo) throws Exception {
+
+    }
+}

+ 0 - 2
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseInTask.java

@@ -36,8 +36,6 @@ public class SendPurchaseInTask extends Executable{
     @Autowired
     private CompanyApi companyApi;
     @Autowired
-    private AccountApi accountApi;
-    @Autowired
     private ProdInOutApi prodInOutApi;
     @Autowired
     private B2BConfig b2bConfig;

+ 15 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseOutResTask.java

@@ -0,0 +1,15 @@
+package com.usoftchina.saas.transfers.task;
+
+import com.usoftchina.saas.transfers.dto.MessageInfo;
+
+/**
+ * 采购延退单反过账
+ * @Author chenwei
+ * @Date 2019/01/16
+ */
+public class SendPurchaseOutResTask extends Executable {
+    @Override
+    public void execute(MessageInfo messageInfo) throws Exception {
+
+    }
+}

+ 67 - 4
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/SendPurchaseOutTask.java

@@ -1,14 +1,77 @@
 package com.usoftchina.saas.transfers.task;
 
+import com.usoftchina.saas.account.api.CompanyApi;
+import com.usoftchina.saas.account.dto.CompanyDTO;
+import com.usoftchina.saas.inquiry.po.purchase.PurchaseProdInOut;
+import com.usoftchina.saas.inquiry.po.purchase.PurchaseProdInOutDetail;
+import com.usoftchina.saas.purchase.api.ProdInOutApi;
+import com.usoftchina.saas.purchase.dto.ProdIODetailDTO;
+import com.usoftchina.saas.purchase.dto.ProdInOutDTO;
+import com.usoftchina.saas.purchase.dto.ProdInOutFormDTO;
+import com.usoftchina.saas.transfers.config.B2BConfig;
 import com.usoftchina.saas.transfers.dto.MessageInfo;
+import com.usoftchina.saas.transfers.utils.SendUtil;
+import com.usoftchina.saas.utils.BeanMapper;
+import com.usoftchina.saas.utils.JsonUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
- * @author: guq
- * @create: 2019-01-08 13:53
+ * 采购延退单上传
+ * @author: chewnei
+ * @create: 2019-01-016 18:53
  **/
 public class SendPurchaseOutTask extends Executable{
+
+    @Autowired
+    private CompanyApi companyApi;
+    @Autowired
+    private ProdInOutApi prodInOutApi;
+    @Autowired
+    private B2BConfig b2bConfig;
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SendProductTask.class);
+    private final String prodOutUrl = "/erp/purchase/prodReturn";
+
+
     @Override
-    public void execute(MessageInfo messageInfo) {
-        //TODO
+    public void execute(MessageInfo messageInfo) throws Exception {
+        CompanyDTO companyDTO = companyApi.getCompanyById(messageInfo.getCompanyId()).getData();
+
+        ProdInOutFormDTO prodInOutFormDTO = prodInOutApi.getProdFormData(Long.parseLong(messageInfo.getBizId())).getData();
+        ProdInOutDTO prodInOutDTO = prodInOutFormDTO.getMain();
+        PurchaseProdInOut b2bPurchaseProdInOut = BeanMapper.map(prodInOutDTO, PurchaseProdInOut.class);
+        convertToPronInOut(prodInOutDTO, b2bPurchaseProdInOut);
+        LOGGER.info("ProdInOutDTO={}, PurchaseProdInOut={}", JsonUtils.toJsonString(prodInOutDTO), JsonUtils.toJsonString(b2bPurchaseProdInOut));
+
+        List<PurchaseProdInOutDetail> b2bPurchaseProdInOutDetailList = BeanMapper.mapList(prodInOutFormDTO.getItems(), PurchaseProdInOutDetail.class);
+        convertToPronInOutDetail(prodInOutFormDTO.getItems(), b2bPurchaseProdInOutDetailList);
+        b2bPurchaseProdInOut.setDetails(b2bPurchaseProdInOutDetailList);
+        LOGGER.info("ProdIODetailDTOList={}, b2bPurchaseProdInOutDetailList={}", JsonUtils.toJsonString(prodInOutFormDTO.getItems()), JsonUtils.toJsonString(b2bPurchaseProdInOutDetailList));
+
+        boolean success = SendUtil.sendToB2B(b2bConfig.getCommon() + prodOutUrl, JsonUtils.toJsonString(b2bPurchaseProdInOut), companyDTO.getAccessKey());
+        if (success) {
+            LOGGER.info("采购验退单上传成功, id={}", messageInfo.getBizId());
+            prodInOutApi.updateB2BStatus(Long.parseLong(messageInfo.getBizId()), "已上传");
+        }
+    }
+
+    private void convertToPronInOut(ProdInOutDTO prodInOutDTO, PurchaseProdInOut b2bPurchaseProdInOut) {
+        b2bPurchaseProdInOut.setPi_rate(new BigDecimal(prodInOutDTO.getPi_rate()).floatValue());
+        b2bPurchaseProdInOut.setPi_inoutman(prodInOutDTO.getPi_auditman());
+        b2bPurchaseProdInOut.setPi_id(prodInOutDTO.getId());
+    }
+
+    private void convertToPronInOutDetail(List<ProdIODetailDTO> items, List<PurchaseProdInOutDetail> b2bPurchaseProdInOutDetailList){
+        for (int i = 0; i < items.size(); i++) {
+            ProdIODetailDTO prodIODetailDTO = items.get(i);
+            PurchaseProdInOutDetail b2bPurchaseProdInOutDetail = b2bPurchaseProdInOutDetailList.get(i);
+            b2bPurchaseProdInOutDetail.setPd_id(prodIODetailDTO.getId());
+            b2bPurchaseProdInOutDetail.setPd_detno(new BigDecimal(prodIODetailDTO.getPd_pdno()).shortValue());
+        }
     }
 }