Sfoglia il codice sorgente

【思拓微】【思拓微UAS&PDM库存数据对接】【物料出入库明细查询】

wuyx 4 mesi fa
parent
commit
798afc0b60

+ 6 - 0
src/main/java/com/uas/eis/controller/ERPController.java

@@ -1,5 +1,6 @@
 package com.uas.eis.controller;
 
+import com.uas.eis.sdk.dto.QueryIOListReq;
 import com.uas.eis.sdk.dto.QueryStockListReq;
 import com.uas.eis.beans.result.Result;
 import com.uas.eis.service.ERPService;
@@ -21,5 +22,10 @@ public class ERPController {
     public Result getStockList(@RequestBody QueryStockListReq queryStockListReq){
         return erpService.getStockList(queryStockListReq);
     }
+    @RequestMapping(value="/api/getIOList",method=RequestMethod.POST)
+    @ResponseBody
+    public Result getIOList(@RequestBody QueryIOListReq queryIOListReq){
+        return erpService.getIOList(queryIOListReq);
+    }
 
 }

+ 35 - 0
src/main/java/com/uas/eis/sdk/dto/IOListDTO.java

@@ -0,0 +1,35 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class IOListDTO {
+    private String pi_inoutno; //出入库单号
+    private String pi_class; //出入库类型
+    private String pi_date; //日期
+    private Integer pd_pdno; //序号
+    private String pd_prodcode; //物料编号
+    private String pr_detail; //物料名称
+    private String pr_spec; //规格
+    private String pr_unit; //单位
+    private Double pd_outqty; //出库数量
+    private Double pd_inqty; //入库数量
+    private String pd_whcode; //仓库编号
+    private String pd_whname; //仓库名称
+    private String pd_batchcode; //批号
+    private String pd_ordercode; //关联单号
+    private String pi_status; //过账状态
+    private String pi_purpose; //关联仓库
+    private String pi_type; //类型
+    private String pi_departmentname; //部门
+    private String pi_cardcode; //客户/供应商号
+    private String pi_title; //客户/供应商名
+    private String pi_date1; //过账日期
+    private String pi_recordman; //录入人
+    private String pi_vouchercode; //凭证号
+    private String sellername; //业务员
+    private String sellercode; //业务员号
+
+}

+ 15 - 0
src/main/java/com/uas/eis/sdk/dto/QueryIOListReq.java

@@ -0,0 +1,15 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class QueryIOListReq {
+    private Integer pageNum;//当前页数
+    private Integer pageSize;//每页条数
+    private String materialNo;//物料编号,精准匹配 对应字段:pd_prodcode
+    private String startDate;//日期期间-开始日期,格式"YYYY-MM-DD",查询范围包含此日期
+    private String endDate;//日期期间-结束日期,格式"YYYY-MM-DD"",查询范围包含此日期
+    private String warehouse;//仓库编号,精准匹配
+}

+ 3 - 0
src/main/java/com/uas/eis/service/ERPService.java

@@ -1,6 +1,7 @@
 package com.uas.eis.service;
 
 
+import com.uas.eis.sdk.dto.QueryIOListReq;
 import com.uas.eis.sdk.dto.QueryStockListReq;
 import com.uas.eis.beans.result.Result;
 
@@ -11,4 +12,6 @@ import com.uas.eis.beans.result.Result;
  */
 public interface ERPService {
     Result getStockList(QueryStockListReq queryStockListReq);
+
+    Result getIOList(QueryIOListReq queryIOListReq);
 }

+ 54 - 3
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -1,9 +1,7 @@
 package com.uas.eis.service.Impl;
 
 import com.uas.eis.dao.*;
-import com.uas.eis.sdk.dto.ListResp;
-import com.uas.eis.sdk.dto.QueryStockListReq;
-import com.uas.eis.sdk.dto.StockListDTO;
+import com.uas.eis.sdk.dto.*;
 import com.uas.eis.beans.result.Result;
 import com.uas.eis.service.ERPService;
 import com.uas.eis.utils.StringUtil;
@@ -82,4 +80,57 @@ public class ERPServiceImpl implements ERPService {
         listResp.setList(stockListDTOS);
         return Result.success(listResp);
     }
+
+    @Override
+    public Result getIOList(QueryIOListReq queryIOListReq) {
+        ListResp<IOListDTO> listResp = new ListResp<>();
+        listResp.setPageNum(queryIOListReq.getPageNum());
+        listResp.setPageSize(queryIOListReq.getPageSize());
+        int page = queryIOListReq.getPageNum();
+        int pageSize = queryIOListReq.getPageSize();
+        int start = ((page - 1) * pageSize + 1);
+        int end = page * pageSize;
+        StringBuffer cond_sql = new StringBuffer("1=1");
+        if(StringUtil.hasText(queryIOListReq.getMaterialNo())){
+            cond_sql.append(" and pd_prodcode ='").append(queryIOListReq.getMaterialNo()).append("' ");
+        }else {
+            return Result.success(listResp);
+        }
+        if(StringUtil.hasText(queryIOListReq.getStartDate())){
+            cond_sql.append(" and pi_date >= to_date('").append(queryIOListReq.getStartDate()).append(" 00:00:00','YYYY-MM-DD HH24:mi:ss') ");
+        }
+        if(StringUtil.hasText(queryIOListReq.getEndDate())){
+            cond_sql.append(" and pi_date <= to_date('").append(queryIOListReq.getEndDate()).append(" 23:59:59','YYYY-MM-DD HH24:mi:ss') ");
+        }
+        if(StringUtil.hasText(queryIOListReq.getWarehouse())){
+            cond_sql.append(" and pd_whcode ='").append(queryIOListReq.getWarehouse()).append("' ");
+        }
+        //获取总数
+        StringBuffer searchSql = new StringBuffer();
+        searchSql.append("SELECT pi_inoutno,pi_class,to_char(pi_date,'yyyy-mm-dd hh24:mi:ss') pi_date,pd_pdno,pd_prodcode,pr_detail,pr_spec,pr_unit,pd_outqty,pd_inqty,pd_whcode,pd_whname,pd_batchcode,pd_ordercode,pi_status,pi_purpose,pi_type,pi_departmentname,pi_cardcode,pi_title" +
+                        ",to_char(pi_date1,'yyyy-mm-dd hh24:mi:ss') pi_date1,pi_recordman" +
+                        ",pi_vouchercode,nvl(pd_seller,pi_sellername) sellername,nvl(pd_sellercode,pi_sellercode) sellercode ")
+                .append(" from ProdIODetail left join ProdInOut on pd_piid=pi_id left join Product on pr_code=pd_prodcode " )
+                .append("WHERE ").append(cond_sql).append(" ORDER BY PI_DATE DESC,pi_id desc,pd_pdno");
+        StringBuffer countSql = new StringBuffer("select count(1) from ( ");
+        countSql.append(searchSql);
+        countSql.append(" )");
+//        logger.info("countSql:{}",countSql.toString());
+        Integer total = baseDao.getJdbcTemplate().queryForObject(countSql.toString(), Integer.class);
+        listResp.setTotal(total);
+        List<IOListDTO> ioListDTOS = new ArrayList<>();
+        if(total > 0){
+            StringBuffer querySql = new StringBuffer("select * from (select TT.*, ROWNUM rn from ( ");
+            querySql.append(searchSql);
+            querySql.append(" )TT where ROWNUM <= ");
+            querySql.append(end);
+            querySql.append(") where rn >= ");
+            querySql.append(start);
+//            logger.info("querySql:{}",querySql.toString());
+            ioListDTOS = baseDao.getJdbcTemplate().query(querySql.toString(),
+                    new BeanPropertyRowMapper<>(IOListDTO.class));
+        }
+        listResp.setList(ioListDTOS);
+        return Result.success(listResp);
+    }
 }