|
|
@@ -25,6 +25,7 @@ import com.uas.search.b2b.model.SPage;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
+import org.springframework.jdbc.core.RowMapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
@@ -32,6 +33,8 @@ import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.persistence.criteria.*;
|
|
|
+import java.sql.ResultSet;
|
|
|
+import java.sql.SQLException;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
@@ -101,6 +104,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|
|
@Autowired
|
|
|
private DistributeDao distributeDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CommonDao commonDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SaleOrderForProdItemDao saleOrderForProdItemDao;
|
|
|
+
|
|
|
@Override
|
|
|
public void save(List<PurcOrderInfoItem> orderItems) {
|
|
|
List<PurcOrderInfoItem> newOrderItems = purcOrderInfoItemDao.save(orderItems);
|
|
|
@@ -1255,7 +1264,97 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|
|
purchaseOrderItemDao.replyByBatch(idString, username, userip, enuu, useruu);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
+ @Override
|
|
|
+ public SPage<SaleOrderForProd> findOrderItemsByPageInfo(PageInfo pageInfo, SearchFilter filter) {
|
|
|
+ return getSaleOrders(pageInfo, filter);
|
|
|
+ }
|
|
|
+
|
|
|
+ private SPage<SaleOrderForProd> getSaleOrders(PageInfo pageInfo, SearchFilter filter) {
|
|
|
+ SPage<SaleOrderForProd> orders = new SPage<SaleOrderForProd>();
|
|
|
+ StringBuffer countSql = new StringBuffer("select count(1) from purc$orders left join purc$orderitems on pu_id = pd_puid left join products on pd_prid = pr_id where 1=1");
|
|
|
+ StringBuffer querySql = new StringBuffer(
|
|
|
+ "select * from (select t.*,rownum r from (select purc$orders.*,pd_id from purc$orders left join purc$orderitems on pu_id = pd_puid left join products on pd_prid = pr_id where 1=1");
|
|
|
+ Object[] args = new Object[] {};
|
|
|
+ if(null != filter.getDistribute()) {
|
|
|
+ filter.getDistribute().toString().replace("[", " ");
|
|
|
+ filter.getDistribute().toString().replace("]", " ");
|
|
|
+ countSql.append(" and pu_venduu in ").append(filter.getDistribute()).append("and upper(pr_title) like upper('%").append(filter.getKeyword())
|
|
|
+ .append("%') or upper(pr_spec) like upper('%").append(filter.getKeyword()).append("%') or upper(pr_code) like upper('%").append(filter.getKeyword())
|
|
|
+ .append("%')");
|
|
|
+ querySql.append(" and pu_venduu in ").append(filter.getDistribute()).append("and upper(pr_title) like upper('%").append(filter.getKeyword())
|
|
|
+ .append("%') or upper(pr_spec) like upper('%").append(filter.getKeyword()).append("%') or upper(pr_code) like upper('%").append(filter.getKeyword())
|
|
|
+ .append("%')");
|
|
|
+ }
|
|
|
+ int total = count(countSql.toString(), args);
|
|
|
+ querySql.append(" order by pu_date desc) t where rownum <= ?) where r >= ?");
|
|
|
+ args = Arrays.copyOf(args, args.length + 2);
|
|
|
+ args[args.length - 2] = pageInfo.getPageNumber() * pageInfo.getPageSize();
|
|
|
+ args[args.length - 1] = (pageInfo.getPageNumber() - 1) * pageInfo.getPageSize() + 1;
|
|
|
+ List<SaleOrderForProd> content = commonDao.getJdbcTemplate().query(querySql.toString(), getRowMapper(), args);
|
|
|
+ if(!CollectionUtils.isEmpty(content)) {
|
|
|
+ for(SaleOrderForProd order : content) {
|
|
|
+ List<SaleOrderForProdItem> items = new ArrayList<SaleOrderForProdItem>();
|
|
|
+ if(null != order.getPdid()) {
|
|
|
+ SaleOrderForProdItem item = saleOrderForProdItemDao.findOne(order.getPdid());
|
|
|
+ items.add(item);
|
|
|
+ order.setOrderItems(items);
|
|
|
+ EnterpriseInfo enterpriseInfo = enterpriseDao.findEnterpriseInfoByUu(order.getEnUU());
|
|
|
+ order.setEnterprise(enterpriseInfo);
|
|
|
+ UserBaseInfo userBaseInfo = userBaseInfoDao.findByUserUU(order.getUserUU());
|
|
|
+ order.setUser(userBaseInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ orders.setContent(content);
|
|
|
+ orders.setTotalElement(total);
|
|
|
+ orders.setPage(pageInfo.getPageNumber());
|
|
|
+ orders.setSize(pageInfo.getPageSize());
|
|
|
+ orders.setTotalPage(content.size());
|
|
|
+ return orders;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int count(String sql, Object[] args) {
|
|
|
+ return commonDao.getJdbcTemplate().queryForObject(!sql.startsWith("select") ? ("select count(1) " + sql) : sql, Integer.class, args);
|
|
|
+ }
|
|
|
+
|
|
|
+ private RowMapper<SaleOrderForProd> getRowMapper() {
|
|
|
+ return new RowMapper<SaleOrderForProd>() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SaleOrderForProd mapRow(ResultSet rs, int rowNum) throws SQLException {
|
|
|
+ SaleOrderForProd order = new SaleOrderForProd();
|
|
|
+ order.setId(rs.getLong("pu_id"));
|
|
|
+ order.setCurrency(rs.getString("pu_currency"));
|
|
|
+ order.setCop(rs.getString("pu_cop"));
|
|
|
+ order.setAuditor(rs.getString("pu_auditor"));
|
|
|
+ order.setCode(rs.getString("pu_code"));
|
|
|
+ order.setArCustCode(rs.getString("pu_arcustcode"));
|
|
|
+ order.setPrint(rs.getShort("pu_print"));
|
|
|
+ order.setRemark(rs.getString("pu_remark"));
|
|
|
+ order.setCustCode(rs.getString("pu_custcode"));
|
|
|
+ order.setCustPrint(rs.getShort("pu_custprint"));
|
|
|
+ order.setCustName(rs.getString("pu_custname"));
|
|
|
+ order.setDate(rs.getDate("pu_date"));
|
|
|
+ order.setDisplay(rs.getShort("pu_display"));
|
|
|
+ order.setEnUU(rs.getLong("pu_enuu"));
|
|
|
+ order.setPurpose(rs.getString("pu_purpose"));
|
|
|
+ order.setPayments(rs.getString("pu_payments"));
|
|
|
+ order.setPdid(rs.getLong("pd_id"));
|
|
|
+ order.setVendUU(rs.getLong("pu_venduu"));
|
|
|
+ order.setUserUU(rs.getLong("pu_useruu"));
|
|
|
+ order.setRate(rs.getFloat("pu_rate"));
|
|
|
+ order.setType(rs.getString("pu_type"));
|
|
|
+ order.setRecorder(rs.getString("pu_recorder"));
|
|
|
+ order.setVendUserUU(rs.getLong("pu_venduseruu"));
|
|
|
+ order.setStatus(rs.getShort("pu_status"));
|
|
|
+ order.setSendStatus(rs.getShort("pu_sendstatus"));
|
|
|
+ order.setShipAddress(rs.getString("pu_shipaddress"));
|
|
|
+ return order;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional
|
|
|
public Integer setReadByState(String category) {
|
|
|
List<Long> unreadIds = getUnreadIds(category);
|