Sfoglia il codice sorgente

【贝腾】【获取回款通知预收接口】

wub 4 settimane fa
parent
commit
79eeee5790

+ 5 - 0
src/main/java/com/uas/eis/controller/STKController.java

@@ -51,6 +51,11 @@ public class STKController {
         return stkService.getSaleList(productPageDTO);
     }
 
+    @PostMapping("/api/getRecBalanceNoticeList")
+    public Result getRecBalanceNoticeList(HttpServletRequest request, @RequestBody ProductPageDTO productPageDTO){
+        return stkService.getRecBalanceNoticeList(productPageDTO);
+    }
+
     @PostMapping("/api/createVisitRecord")
     public Result createVisitRecord(HttpServletRequest request, @RequestBody VisitRecordDTO visitRecordDTO){
         return stkService.createVisitRecord(visitRecordDTO);

+ 59 - 0
src/main/java/com/uas/eis/convertor/RecBalanceNoticeConvertor.java

@@ -0,0 +1,59 @@
+package com.uas.eis.convertor;
+
+import com.uas.eis.sdk.dto.RecBalanceNoticeDTO;
+import com.uas.eis.sdk.dto.RecBalanceNoticeResp;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RecBalanceNoticeConvertor {
+
+    public static List<RecBalanceNoticeResp> toRecBalanceNoticeRespListByRecBalanceNoticeDTOS(List<RecBalanceNoticeDTO> recBalanceNoticeDTOList) {
+        List<RecBalanceNoticeResp> resps = new ArrayList<>();
+
+        for (RecBalanceNoticeDTO recBalanceNoticeDTO : recBalanceNoticeDTOList) {
+            RecBalanceNoticeResp recBalanceNoticeResp = toRecBalanceNoticeResp(recBalanceNoticeDTO);
+            resps.add(recBalanceNoticeResp);
+        }
+        return resps;
+    }
+
+    public static RecBalanceNoticeResp toRecBalanceNoticeResp(RecBalanceNoticeDTO recBalanceNoticeDTO) {
+        RecBalanceNoticeResp recBalanceNoticeResp = new RecBalanceNoticeResp();
+        recBalanceNoticeResp.setCode(recBalanceNoticeDTO.getRb_code());
+        recBalanceNoticeResp.setKind(recBalanceNoticeDTO.getRb_kind());
+        recBalanceNoticeResp.setDate(recBalanceNoticeDTO.getRb_date());
+        recBalanceNoticeResp.setStatus(recBalanceNoticeDTO.getRb_status());
+        recBalanceNoticeResp.setCustid(recBalanceNoticeDTO.getRb_custid());
+        recBalanceNoticeResp.setCustcode(recBalanceNoticeDTO.getRb_custcode());
+        recBalanceNoticeResp.setCustname(recBalanceNoticeDTO.getRb_custname());
+        recBalanceNoticeResp.setCurrency(recBalanceNoticeDTO.getRb_currency());
+        recBalanceNoticeResp.setRate(recBalanceNoticeDTO.getRb_rate());
+        recBalanceNoticeResp.setAmount(recBalanceNoticeDTO.getRb_amount());
+        recBalanceNoticeResp.setCmcurrency(recBalanceNoticeDTO.getRb_cmcurrency());
+        recBalanceNoticeResp.setCmamount(recBalanceNoticeDTO.getRb_cmamount());
+        recBalanceNoticeResp.setGetdate(recBalanceNoticeDTO.getRb_getdate());
+        recBalanceNoticeResp.setCounterfee(recBalanceNoticeDTO.getRb_counterfee());
+        recBalanceNoticeResp.setMonthly(recBalanceNoticeDTO.getRb_monthly());
+        recBalanceNoticeResp.setYamount(recBalanceNoticeDTO.getRb_yamount());
+        recBalanceNoticeResp.setSellercode(recBalanceNoticeDTO.getRb_sellercode());
+        recBalanceNoticeResp.setSellername(recBalanceNoticeDTO.getRb_sellername());
+        recBalanceNoticeResp.setDepartmentcode(recBalanceNoticeDTO.getRb_departmentcode());
+        recBalanceNoticeResp.setDepartmentname(recBalanceNoticeDTO.getRb_departmentname());
+        recBalanceNoticeResp.setZat_user(recBalanceNoticeDTO.getRb_zat_user());
+        recBalanceNoticeResp.setAttention(recBalanceNoticeDTO.getRb_attention());
+        recBalanceNoticeResp.setRemark(recBalanceNoticeDTO.getRb_remark());
+        recBalanceNoticeResp.setRecorder(recBalanceNoticeDTO.getRb_recorder());
+        recBalanceNoticeResp.setRecorddate(recBalanceNoticeDTO.getRb_recorddate());
+        recBalanceNoticeResp.setAuditer(recBalanceNoticeDTO.getRb_auditer());
+        recBalanceNoticeResp.setAuditdate(recBalanceNoticeDTO.getRb_auditdate());
+        recBalanceNoticeResp.setAttach(recBalanceNoticeDTO.getRb_attach());
+        recBalanceNoticeResp.setActamount(recBalanceNoticeDTO.getRb_actamount());
+        recBalanceNoticeResp.setCateid(recBalanceNoticeDTO.getRb_cateid());
+        recBalanceNoticeResp.setCatecode(recBalanceNoticeDTO.getRb_catecode());
+        recBalanceNoticeResp.setCatename(recBalanceNoticeDTO.getRb_catename());
+        recBalanceNoticeResp.setStatuscode(recBalanceNoticeDTO.getRb_statuscode());
+        recBalanceNoticeResp.setId(recBalanceNoticeDTO.getRb_id());
+        return recBalanceNoticeResp;
+    }
+}

+ 40 - 0
src/main/java/com/uas/eis/convertor/RecBalanceNoticeDetailConvertor.java

@@ -0,0 +1,40 @@
+package com.uas.eis.convertor;
+
+import com.uas.eis.sdk.dto.RecBalanceNoticeDetailDTO;
+import com.uas.eis.sdk.dto.RecBalanceNoticeDetailResp;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RecBalanceNoticeDetailConvertor {
+
+    public static List<RecBalanceNoticeDetailResp> toRecBalanceNoticeDetailRespListByRecBalanceNoticeDetailDTOS(List<RecBalanceNoticeDetailDTO> recBalanceNoticeDetailDTOList) {
+        List<RecBalanceNoticeDetailResp> resps = new ArrayList<>();
+
+        for (RecBalanceNoticeDetailDTO recBalanceNoticeDetailDTO : recBalanceNoticeDetailDTOList) {
+            RecBalanceNoticeDetailResp recBalanceNoticeDetailResp = toRecBalanceNoticeDetailResp(recBalanceNoticeDetailDTO);
+            resps.add(recBalanceNoticeDetailResp);
+        }
+        return resps;
+    }
+
+    public static RecBalanceNoticeDetailResp toRecBalanceNoticeDetailResp(RecBalanceNoticeDetailDTO recBalanceNoticeDetailDTO) {
+        RecBalanceNoticeDetailResp recBalanceNoticeDetailResp = new RecBalanceNoticeDetailResp();
+        recBalanceNoticeDetailResp.setId(recBalanceNoticeDetailDTO.getRbd_id());
+        recBalanceNoticeDetailResp.setRbid(recBalanceNoticeDetailDTO.getRbd_rbid());
+        recBalanceNoticeDetailResp.setDetno(recBalanceNoticeDetailDTO.getRbd_detno());
+        recBalanceNoticeDetailResp.setSacode(recBalanceNoticeDetailDTO.getRbd_sacode());
+        recBalanceNoticeDetailResp.setDate(recBalanceNoticeDetailDTO.getRbd_date());
+        recBalanceNoticeDetailResp.setCurrency(recBalanceNoticeDetailDTO.getRbd_currency());
+        recBalanceNoticeDetailResp.setAmount(recBalanceNoticeDetailDTO.getRbd_amount());
+        recBalanceNoticeDetailResp.setSellercode(recBalanceNoticeDetailDTO.getRbd_sellercode());
+        recBalanceNoticeDetailResp.setSellername(recBalanceNoticeDetailDTO.getRbd_sellername());
+        recBalanceNoticeDetailResp.setPayments(recBalanceNoticeDetailDTO.getRbd_payments());
+        recBalanceNoticeDetailResp.setOrdertype(recBalanceNoticeDetailDTO.getRbd_ordertype());
+        recBalanceNoticeDetailResp.setRemark(recBalanceNoticeDetailDTO.getRbd_remark());
+        recBalanceNoticeDetailResp.setTotal(recBalanceNoticeDetailDTO.getSa_total());
+        recBalanceNoticeDetailResp.setPrepayamount(recBalanceNoticeDetailDTO.getSa_prepayamount());
+        recBalanceNoticeDetailResp.setQuyu_user(recBalanceNoticeDetailDTO.getSa_quyu_user());
+        return recBalanceNoticeDetailResp;
+    }
+}

+ 55 - 0
src/main/java/com/uas/eis/sdk/dto/RecBalanceNoticeDTO.java

@@ -0,0 +1,55 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * dto说明
+ * */
+
+@Data
+@NoArgsConstructor
+public class RecBalanceNoticeDTO {
+
+    /**
+     *主键ID
+     * */
+    private String rb_code;
+    private String rb_kind;
+    private Date rb_date;
+    private String rb_status;
+    private BigDecimal rb_custid;
+    private String rb_custcode;
+    private String rb_custname;
+    private String rb_currency;
+    private BigDecimal rb_rate;
+    private BigDecimal rb_amount;
+    private String rb_cmcurrency;
+    private BigDecimal rb_cmamount;
+    private Date rb_getdate;
+    private BigDecimal rb_counterfee;
+    private String rb_monthly;
+    private BigDecimal rb_yamount;
+    private String rb_sellercode;
+    private String rb_sellername;
+    private String rb_departmentcode;
+    private String rb_departmentname;
+    private String rb_zat_user;
+    private String rb_attention;
+    private String rb_remark;
+    private String rb_recorder;
+    private Date rb_recorddate;
+    private String rb_auditer;
+    private Date rb_auditdate;
+    private String rb_attach;
+    private BigDecimal rb_actamount;
+    private BigDecimal rb_cateid;
+    private String rb_catecode;
+    private String rb_catename;
+    private String rb_statuscode;
+    private BigDecimal rb_id;
+}

+ 36 - 0
src/main/java/com/uas/eis/sdk/dto/RecBalanceNoticeDetailDTO.java

@@ -0,0 +1,36 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * dto说明
+ * */
+
+@Data
+@NoArgsConstructor
+public class RecBalanceNoticeDetailDTO {
+
+    /**
+     *主键ID
+     * */
+    private BigDecimal rbd_id;
+    private BigDecimal rbd_rbid;
+    private BigDecimal rbd_detno;
+    private String rbd_sacode;
+    private Date rbd_date;
+    private String rbd_currency;
+    private BigDecimal rbd_amount;
+    private String rbd_sellercode;
+    private String rbd_sellername;
+    private String rbd_payments;
+    private String rbd_ordertype;
+    private String rbd_remark;
+    private BigDecimal sa_total;
+    private BigDecimal sa_prepayamount;
+    private String sa_quyu_user;
+}

+ 36 - 0
src/main/java/com/uas/eis/sdk/dto/RecBalanceNoticeDetailResp.java

@@ -0,0 +1,36 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * dto说明
+ * */
+
+@Data
+@NoArgsConstructor
+public class RecBalanceNoticeDetailResp {
+
+    /**
+     *主键ID
+     * */
+    private BigDecimal id;
+    private BigDecimal rbid;
+    private BigDecimal detno;
+    private String sacode;
+    private Date date;
+    private String currency;
+    private BigDecimal amount;
+    private String sellercode;
+    private String sellername;
+    private String payments;
+    private String ordertype;
+    private String remark;
+    private BigDecimal total;
+    private BigDecimal prepayamount;
+    private String quyu_user;
+}

+ 58 - 0
src/main/java/com/uas/eis/sdk/dto/RecBalanceNoticeResp.java

@@ -0,0 +1,58 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * dto说明
+ * */
+
+@Data
+@NoArgsConstructor
+public class RecBalanceNoticeResp {
+
+    /**
+     *主键ID
+     * */
+    private String code;
+    private String kind;
+    private Date date;
+    private String status;
+    private BigDecimal custid;
+    private String custcode;
+    private String custname;
+    private String currency;
+    private BigDecimal rate;
+    private BigDecimal amount;
+    private String cmcurrency;
+    private BigDecimal cmamount;
+    private Date getdate;
+    private BigDecimal counterfee;
+    private String monthly;
+    private BigDecimal yamount;
+    private String sellercode;
+    private String sellername;
+    private String departmentcode;
+    private String departmentname;
+    private String zat_user;
+    private String attention;
+    private String remark;
+    private String recorder;
+    private Date recorddate;
+    private String auditer;
+    private Date auditdate;
+    private String attach;
+    private BigDecimal actamount;
+    private BigDecimal cateid;
+    private String catecode;
+    private String catename;
+    private String statuscode;
+    private BigDecimal id;
+
+    private List<RecBalanceNoticeDetailResp> items;
+}

+ 70 - 0
src/main/java/com/uas/eis/service/Impl/STKServiceImpl.java

@@ -187,6 +187,41 @@ public class STKServiceImpl implements STKService {
         return Result.success(map);
     }
 
+    @Override
+    public Result getRecBalanceNoticeList(ProductPageDTO productPageDTO) {
+        int pageNum = 1;
+        int pageSize = 20;
+        if (productPageDTO !=null){
+            pageNum = Integer.valueOf(productPageDTO.getPageNum());
+            pageSize = Integer.valueOf(productPageDTO.getPageSize());
+        }else{
+            return Result.error("参数错误!");
+        }
+        int start = ((pageNum - 1) * pageSize + 1);
+        int end = pageNum * pageSize;
+
+        List<RecBalanceNoticeDTO> recBalanceNoticeDTOS = baseDao.query("select * from (select rownum rn,AA.* from (select rb_code,rb_kind,rb_date,rb_status,rb_custid,rb_custcode,rb_custname,rb_currency,rb_rate,rb_amount,rb_cmcurrency,rb_cmamount,rb_getdate,rb_counterfee,rb_monthly,rb_yamount,rb_sellercode,rb_sellername,rb_departmentcode,rb_departmentname,rb_zat_user,rb_attention,rb_remark,rb_recorder,rb_recorddate,rb_auditer,rb_auditdate,rb_attach,rb_actamount,rb_cateid,rb_catecode,rb_catename,rb_statuscode,rb_id from RecBalanceNotice where rb_kind='预收款' and rb_statuscode='AUDITED' order by rb_id desc)  AA ) where rn>="+start+" and rn<="+end , RecBalanceNoticeDTO.class);
+
+        if (recBalanceNoticeDTOS.size() == 0 ){
+            return Result.error("回款通知(预收)无数据!");
+        }
+        // 4. 批量查询回款通知明细
+        List<RecBalanceNoticeDetailDTO> recBalanceNoticeDetailDTOS = baseDao.query("select rbd_id,rbd_rbid,rbd_detno,rbd_sacode,rbd_date,rbd_currency,rbd_amount,rbd_sellercode,rbd_sellername,rbd_payments,rbd_ordertype,rbd_remark,sa_total,sa_prepayamount,sa_quyu_user from RECBALANCENOTICEDetail LEFT JOIN Sale on rbd_sacode=sa_code where rbd_rbid in (select rb_id from (select rownum rn,AA.* from (select * from RecBalanceNotice where rb_statuscode in ('AUDITED') order by rb_id desc) AA) where rn>="+start+" and rn<="+end+") order by rbd_rbid desc,rbd_detno" , RecBalanceNoticeDetailDTO.class);
+        // 5. 按回款通知ID分组订单明细
+        Map<BigDecimal, List<RecBalanceNoticeDetailDTO>> recBalanceNoticeDetailMap = recBalanceNoticeDetailDTOS.stream().collect(Collectors.groupingBy(RecBalanceNoticeDetailDTO::getRbd_rbid));
+        // 6. 组装数据
+        List<RecBalanceNoticeResp> recBalanceNoticeResps = assembleRecBalanceNoticeData(recBalanceNoticeDTOS, recBalanceNoticeDetailMap);
+
+        int count = baseDao.getCount("select count(1) from RecBalanceNotice where rb_statuscode in ('AUDITED') ");
+
+        Map<String,Object> map = new HashMap<>();
+        map.put("pageNum", pageNum);
+        map.put("pageSize", pageSize);
+        map.put("size", count);
+        map.put("list", recBalanceNoticeResps);
+        return Result.success(map);
+    }
+
     @Override
     public Result createVisitRecord(VisitRecordDTO customerVisitDTO) {
         if(customerVisitDTO == null) {
@@ -300,6 +335,41 @@ public class STKServiceImpl implements STKService {
         return SaleDetailConvertor.toSaleDetailResp(item);
     }
 
+    private List<RecBalanceNoticeResp> assembleRecBalanceNoticeData(List<RecBalanceNoticeDTO> orders, Map<BigDecimal, List<RecBalanceNoticeDetailDTO>> itemsMap) {
+        return orders.stream()
+                .map(order -> {
+                    RecBalanceNoticeResp recBalanceNoticeListResp = convertToVOByRecBalanceNotice(order);
+
+                    // 设置订单明细
+                    List<RecBalanceNoticeDetailDTO> items = itemsMap.get(order.getRb_id());
+                    if (!CollectionUtils.isEmpty(items)) {
+                        List<RecBalanceNoticeDetailResp> itemVOS = items.stream()
+                                .map(this::convertToItemVOByRecBalanceNotice)
+                                .collect(Collectors.toList());
+                        recBalanceNoticeListResp.setItems(itemVOS);
+                    } else {
+                        recBalanceNoticeListResp.setItems(new ArrayList<>());
+                    }
+
+                    return recBalanceNoticeListResp;
+                })
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 转换订单主表为VO
+     */
+    private RecBalanceNoticeResp convertToVOByRecBalanceNotice(RecBalanceNoticeDTO order) {
+        return RecBalanceNoticeConvertor.toRecBalanceNoticeResp(order);
+    }
+
+    /**
+     * 转换订单明细为VO
+     */
+    private RecBalanceNoticeDetailResp convertToItemVOByRecBalanceNotice(RecBalanceNoticeDetailDTO item) {
+        return RecBalanceNoticeDetailConvertor.toRecBalanceNoticeDetailResp(item);
+    }
+
     @Override
     public Result getProduct(HttpServletRequest request, ProductReq req) {
         String code = req.getCode();

+ 2 - 0
src/main/java/com/uas/eis/service/STKService.java

@@ -23,6 +23,8 @@ public interface STKService {
 
     Result getSaleList(ProductPageDTO productPageDTO);
 
+    Result getRecBalanceNoticeList(ProductPageDTO productPageDTO);
+
     Result createVisitRecord(VisitRecordDTO visitRecordDTO);
 
     Result createWorkDaily(WorkDailyDTO workDailyDTO);