| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 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.beans.result.Result;
- import com.uas.eis.service.ERPService;
- import com.uas.eis.utils.StringUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author wuyx
- * @email wuyx@usoftchina.com
- * @date 2025-04-25
- */
- @Service
- public class ERPServiceImpl implements ERPService {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
- private BaseDao baseDao;
- @Override
- public Result getStockList(QueryStockListReq queryStockListReq) {
- ListResp<StockListDTO> listResp = new ListResp<>();
- listResp.setPageNum(queryStockListReq.getPageNum());
- listResp.setPageSize(queryStockListReq.getPageSize());
- int page = queryStockListReq.getPageNum();
- int pageSize = queryStockListReq.getPageSize();
- int start = ((page - 1) * pageSize + 1);
- int end = page * pageSize;
- StringBuffer cond_sql = new StringBuffer();
- if(StringUtil.hasText(queryStockListReq.getMaterialNo())){
- cond_sql.append(" and upper(pw_prodcode) like '%").append(queryStockListReq.getMaterialNo().toUpperCase()).append("%' ");
- }
- if(StringUtil.hasText(queryStockListReq.getMaterialName())){
- cond_sql.append(" and upper(pr_detail) like '%").append(queryStockListReq.getMaterialName().toUpperCase()).append("%' ");
- }
- if(StringUtil.hasText(queryStockListReq.getSpecs())){
- cond_sql.append(" and upper(pr_spec) like '%").append(queryStockListReq.getSpecs().toUpperCase()).append("%' ");
- }
- if(StringUtil.hasText(queryStockListReq.getSpecsRules())){
- cond_sql.append(" and upper(pr_specrule) like '%").append(queryStockListReq.getSpecsRules().toUpperCase()).append("%' ");
- }
- if(StringUtil.hasText(queryStockListReq.getWarehouse())){
- cond_sql.append(" and upper(pw_whcode) like '%").append(queryStockListReq.getWarehouse().toUpperCase()).append("%' ");
- }
- //获取总数
- StringBuffer searchSql = new StringBuffer();
- searchSql.append("select pw_avprice,pr_location,pw_prodcode,pr_orispeccode,pr_brand,pr_spec,pr_specrule pr_spec_rule,pw_prodid,pr_unit,pw_id,pw_whcode,pw_onhand,pw_movedate,pr_buyername,pw_amount,pr_serial,wh_description,pw_lastdate,pr_detail,pr_speccs")
- .append(" ,purc_inprogress, po_qty, ma_qty, pick_qty, made_qty, wip_qty ")
- .append(" from productWH tab left join warehouse on pw_whcode=wh_code LEFT JOIN USER_PDMAPI_VIEW on pw_prodcode=pr_code left join (select pr_code prcode,pr_speccs from product ) on prcode = pr_code" )
- .append("WHERE nvl(pw_onhand,0) > 0 ").append(cond_sql);
- 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<StockListDTO> stockListDTOS = new ArrayList<>();
- if(total > 0){
- StringBuffer querySql = new StringBuffer("select * from (select TT.*, ROWNUM rn from ( ");
- querySql.append(searchSql)
- .append("order by pw_id desc");
- querySql.append(" )TT where ROWNUM <= ");
- querySql.append(end);
- querySql.append(") where rn >= ");
- querySql.append(start);
- // logger.info("querySql:{}",querySql.toString());
- stockListDTOS = baseDao.getJdbcTemplate().query(querySql.toString(),
- new BeanPropertyRowMapper<>(StockListDTO.class));
- }
- listResp.setList(stockListDTOS);
- return Result.success(listResp);
- }
- }
|