Browse Source

对账单确认,不同意接口

guq 7 years ago
parent
commit
fff9b17c40

+ 11 - 1
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Status.java

@@ -98,13 +98,23 @@ public enum Status {
     /**
      * 确认
      */
-    CONFIRMED("确认"),
+    CONFIRMED("确认"),
 
     /**
      * 确认
      */
     REJECT("不同意"),
 
+    /**
+     * 未上传
+     */
+    UNSEND("未上传"),
+
+    /**
+     * 已上传
+     */
+    SENDED("已上传"),
+
 
     /**
      * 已付款

+ 35 - 0
applications/money/money-dto/src/main/java/com/usoftchina/saas/money/b2b/dto/APCheck.java

@@ -0,0 +1,35 @@
+package com.usoftchina.saas.money.b2b.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-19 14:06
+ **/
+@Data
+public class APCheck implements Serializable{
+    private Long ac_b2bid;
+    private Date ac_fromdate; // 对账起始日期
+    private Date ac_todate; // 对账截止日期
+    private Date ac_recorddate; // 录单日期
+    private String ac_recorder;//录单人
+    private Date ac_apdate; // 应付日期
+    private String ac_checkstatus;//对账状态
+    private String ac_remark;// 备注
+    private Date ac_commitdate;//提交日期  #
+    private Short ac_status;//上传状态 #
+    private Double ac_checkamount; // 对账金额
+    private String ac_currency; // 币别
+    private Double ac_rate; // 汇率
+    private String ac_paymentname; // 收款方式
+    private Long ac_custuu;//客户UU #
+    private Long ac_enuu;//供应商UU  #
+    private String ac_code; // 单据编号
+    private String ac_confirmstatus;//客户回复状态 #
+    private List<APCheckDetail> details; // 明细
+    private String ac_reason;//回复平台原因
+}

+ 26 - 0
applications/money/money-dto/src/main/java/com/usoftchina/saas/money/b2b/dto/APCheckDetail.java

@@ -0,0 +1,26 @@
+package com.usoftchina.saas.money.b2b.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: guq
+ * @create: 2019-01-19 14:06
+ **/
+@Data
+public class APCheckDetail implements Serializable{
+    private Short ad_detno; // 明细行号
+    private Long ad_prid;// 客户物料ID #
+    private String ad_inoutno; // 客户出入库单号
+    private String ad_orderclass; // 客户出入库类型 #
+    private Long ad_orderdetno; // 客户出入库序号 #
+    private Double ad_price; // 单价
+    private Double ad_b2bqty; // 对账数量
+    private Double ad_b2bamount; // 本次对账金额
+    private Double ad_custcheckqty; // 客户确认数量 #
+    private String ad_remark; // 备注
+    private Long ad_id;// id
+    private Long ad_apid; // 关联Id
+    private Integer ad_status; // 对账状态 #
+}

+ 14 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/ApcheckController.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.money.controller;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.money.mapper.ApcheckMapper;
 import com.usoftchina.saas.money.po.Apcheck;
 import com.usoftchina.saas.money.po.ApcheckForm;
@@ -10,10 +11,7 @@ import com.usoftchina.saas.money.service.ApcheckService;
 import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author: guq
@@ -37,4 +35,16 @@ public class ApcheckController {
         ApcheckForm apcheckForm = apcheckService.getFormData(id);
         return Result.success(apcheckForm);
     }
+
+    @PostMapping("/agree/{id}")
+    public Result agree(@PathVariable("id") Long id) {
+        apcheckService.action(id, Status.CONFIRMED);
+        return Result.success();
+    }
+
+    @PostMapping("/reject/{id}")
+    public Result reject(@PathVariable("id") Long id) {
+        apcheckService.action(id, Status.REJECT);
+        return Result.success();
+    }
 }

+ 3 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/ApcheckMapper.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.money.mapper;
 
+import com.usoftchina.saas.money.b2b.dto.APCheck;
 import com.usoftchina.saas.money.po.Apcheck;
 import com.usoftchina.saas.money.po.ApcheckDetail;
 import org.apache.ibatis.annotations.Param;
@@ -16,4 +17,6 @@ public interface ApcheckMapper {
     Apcheck selectByPrimaryKey(Long id);
 
     List<ApcheckDetail> selectByFK(Long id);
+
+    void updateStatus(@Param("status") String status, @Param("code") String code, @Param("id") Long id);
 }

+ 3 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/ApcheckService.java

@@ -3,6 +3,7 @@ package com.usoftchina.saas.money.service;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.money.po.Apcheck;
 import com.usoftchina.saas.money.po.ApcheckForm;
 import com.usoftchina.saas.page.PageRequest; /**
@@ -13,4 +14,6 @@ public interface ApcheckService {
     PageInfo<Apcheck> getListData(PageRequest page, ListReqDTO req);
 
     ApcheckForm getFormData(Long id);
+
+    void action(Long id, Status confirmed);
 }

+ 57 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/ApcheckServiceImpl.java

@@ -2,17 +2,32 @@ package com.usoftchina.saas.money.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.account.api.CompanyApi;
+import com.usoftchina.saas.account.dto.CompanyDTO;
+import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.commons.exception.BizExceptionCode;
+import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.context.SpringContextHolder;
+import com.usoftchina.saas.exception.BizException;
+import com.usoftchina.saas.money.b2b.dto.APCheck;
 import com.usoftchina.saas.money.mapper.ApcheckMapper;
 import com.usoftchina.saas.money.po.Apcheck;
 import com.usoftchina.saas.money.po.ApcheckDetail;
 import com.usoftchina.saas.money.po.ApcheckForm;
 import com.usoftchina.saas.money.service.ApcheckService;
 import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.utils.JsonUtils;
+import com.usoftchina.saas.utils.StringUtils;
+import com.usoftchina.saas.utils.http.HttpUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -22,9 +37,17 @@ import java.util.List;
 @Service
 public class ApcheckServiceImpl implements ApcheckService{
 
+    @Value("${b2b.baseUrl.common}")
+    private String replyUrl;
+
     @Autowired
     private ApcheckMapper apcheckMapper;
 
+    @Autowired
+    private CompanyApi companyApi;
+
+    private static final String URI = "/erp/sale/APCheck/reply?access_id=";
+
     @Override
     public PageInfo<Apcheck> getListData(PageRequest page, ListReqDTO req) {
         PageHelper.startPage(page.getNumber(), page.getSize());
@@ -55,4 +78,38 @@ public class ApcheckServiceImpl implements ApcheckService{
         saleFormDTO.setItems(items);
         return saleFormDTO;
     }
+
+    @Override
+    public void action(Long id, Status confirmed) {
+        if (StringUtils.isEmpty(id)) {
+            throw new BizException(BizExceptionCode.NULL_DATA);
+        }
+        Apcheck main = apcheckMapper.selectByPrimaryKey(id);
+        //传至b2b
+        if (null != main) {
+            Long companyid = BaseContextHolder.getCompanyId();
+            companyid = 334l;
+            APCheck b2bCheck = new APCheck();
+            b2bCheck.setAc_code(main.getAc_code());
+            b2bCheck.setAc_b2bid(main.getAc_b2bid());
+            b2bCheck.setAc_confirmstatus(confirmed.getDisplay());
+            List<APCheck> replies = new ArrayList<APCheck>();
+            replies.add(b2bCheck);
+            HashMap<String, String> params = new HashMap<String, String>();
+            params.put("data", JsonUtils.toJsonString(replies));
+            Result<CompanyDTO> result = companyApi.getCompanyById(companyid);
+            if (result.isSuccess()) {
+                try {
+                    HttpUtil.Response response = HttpUtil.sendPostRequest(replyUrl + URI + result.getData().getUu(), params, true, result.getData().getAccessKey());
+                    if (response.getStatusCode() == HttpStatus.OK.value()) {
+                        //更新本地状态
+                        apcheckMapper.updateStatus(confirmed.getDisplay(), confirmed.name(), main.getAc_b2bid());
+                    }
+                } catch (Exception e) {
+                }
+            }
+
+        }
+    }
+
 }

+ 6 - 0
applications/money/money-server/src/main/resources/mapper/ApcheckMapper.xml

@@ -447,4 +447,10 @@
       createTime = #{createTime,jdbcType=TIMESTAMP}
     where ac_id = #{ac_id,jdbcType=INTEGER}
   </update>
+
+
+  <update id="updateStatus">
+    update apcheck set ac_sendstatus='已上传',ac_confirmstatus=#{status},ac_confirmstatuscode=#{code},ac_confirmdate=now()
+    where ac_b2bid=#{id} and ifnull(ac_sendstatus,'未上传')='未上传'
+  </update>
 </mapper>

+ 31 - 0
applications/money/money-server/src/test/java/APcheckTest.java

@@ -0,0 +1,31 @@
+import com.usoftchina.saas.money.b2b.dto.APCheck;
+import com.usoftchina.saas.utils.JsonUtils;
+import com.usoftchina.saas.utils.http.HttpUtil;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-19 14:00
+ **/
+public class APcheckTest {
+
+    private static final String URL = "http://test-b2b.uuzcc.cn/erp/sale/APCheck/reply?access_id=";
+    @Test
+    public void testA_httpUtil() throws Exception {
+        APCheck apCheck = new APCheck();
+        apCheck.setAc_b2bid(4643l);
+        apCheck.setAc_code("AP201901140002");
+        apCheck.setAc_confirmstatus("已确认");
+        List<APCheck> replies = new ArrayList<APCheck>();
+        replies.add(apCheck);
+        HashMap<String, String> params = new HashMap<String, String>();
+        System.out.println(JsonUtils.toJsonString(replies));
+        params.put("data", JsonUtils.toJsonString(replies));
+        HttpUtil.Response response = HttpUtil.sendPostRequest(URL + "10041166", params, true, "2c1ea0898633796fe050007f01002ea6");
+        System.out.println(response.getStatusCode() + "----" + response.getResponseText());
+    }
+}

+ 24 - 0
applications/sale/sale-server/src/test/java/com/usoftchina/saas/sale/controller/SaleDownTest.java

@@ -0,0 +1,24 @@
+package com.usoftchina.saas.sale.controller;
+
+import com.usoftchina.saas.utils.JsonUtils;
+import com.usoftchina.saas.utils.http.HttpUtil;
+import org.junit.Test;
+
+import java.util.HashMap;
+
+/**
+ * @author: guq
+ * @create: 2019-01-19 13:49
+ **/
+
+public class SaleDownTest {
+
+    private static final String URL = "https://test-b2b.uuzcc.cn/erp/sale/APCheck/reply?access_id=";
+ @Test
+public void testA_httpUtil() {
+/*    // List<APCheck> replies
+     HashMap<String, String> params = new HashMap<String, String>();
+     params.put("data", JsonUtils.toJsonString(replies));
+     HttpUtil.sendPostRequest(URL + "10041166",);*/
+}
+}

+ 0 - 5
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/controller/ApCheckController.java

@@ -46,9 +46,4 @@ public class ApCheckController {
         return Result.success(ids);
     }
 
-    @PostMapping("/test")
-    @ApiOperation(value = "测试")
-    public void test(@RequestBody ApcheckDTO apcheckDTO) {
-        System.out.println(apcheckDTO);
-    }
 }

+ 1 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/impl/ApCheckServiceImpl.java

@@ -67,6 +67,7 @@ public class ApCheckServiceImpl implements ApCheckService{
             main.setCreateTime(new Date());
             main.setAc_confirmstatus(Status.UNCONFIRM.getDisplay());
             main.setAc_confirmstatuscode(Status.UNCONFIRM.name());
+            main.setAc_sendstatus(Status.SENDED.getDisplay());
             //获取编号
             String code = maxnumberService.getMaxnumberByCompanyid(BillCodeSeq.APCHECK.getCaller(), true, companyId).getData();
             main.setAc_code(code);