Browse Source

代理商接口,提供期初库存数

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@3827 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
yingp 10 years ago
parent
commit
3dfd550ad9

+ 30 - 0
src/main/java/com/uas/platform/b2b/core/util/DateUtils.java

@@ -4,6 +4,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Date;
+import java.util.GregorianCalendar;
 
 
 public class DateUtils {
 public class DateUtils {
 
 
@@ -167,4 +168,33 @@ public class DateUtils {
 		SimpleDateFormat sdf = new SimpleDateFormat(f);
 		SimpleDateFormat sdf = new SimpleDateFormat(f);
 		return sdf.format(date);
 		return sdf.format(date);
 	}
 	}
+
+	/**
+	 * 月份加减
+	 * 
+	 * @param date
+	 * @param increase
+	 *            加减月份数,负数表示减
+	 * @return
+	 */
+	public static Integer addMonth(Date date, int increase) {
+		if (date == null)
+			date = new Date();
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(Calendar.MONTH, increase);
+		return getYearmonth(calendar.getTime());
+	}
+
+	/**
+	 * 月份加减
+	 * 
+	 * @param date
+	 * @param increase
+	 *            加减月份数,负数表示减
+	 * @return
+	 */
+	public static Integer addMonth(String date, int increase) {
+		return addMonth(parse(date, null), increase);
+	}
 }
 }

+ 13 - 0
src/main/java/com/uas/platform/b2b/openapi/model/IO.java

@@ -15,6 +15,11 @@ public class IO extends Data implements Serializable {
 	 * 
 	 * 
 	 */
 	 */
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * 期初库存
+	 */
+	private Double beginStock;
 
 
 	private List<IOItem> in;
 	private List<IOItem> in;
 
 
@@ -47,4 +52,12 @@ public class IO extends Data implements Serializable {
 		this.out = out;
 		this.out = out;
 	}
 	}
 
 
+	public Double getBeginStock() {
+		return beginStock;
+	}
+
+	public void setBeginStock(Double beginStock) {
+		this.beginStock = beginStock;
+	}
+
 }
 }

+ 14 - 1
src/main/java/com/uas/platform/b2b/openapi/model/Stock.java

@@ -14,7 +14,12 @@ public class Stock extends Data implements Serializable {
 	 * 
 	 * 
 	 */
 	 */
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
-	
+
+	/**
+	 * 期初库存
+	 */
+	private Double beginStock;
+
 	/**
 	/**
 	 * (在客户系统里面统计的实时)库存数
 	 * (在客户系统里面统计的实时)库存数
 	 */
 	 */
@@ -28,4 +33,12 @@ public class Stock extends Data implements Serializable {
 		this.stock = stock;
 		this.stock = stock;
 	}
 	}
 
 
+	public Double getBeginStock() {
+		return beginStock;
+	}
+
+	public void setBeginStock(Double beginStock) {
+		this.beginStock = beginStock;
+	}
+
 }
 }

+ 13 - 0
src/main/java/com/uas/platform/b2b/openapi/model/TEMP_DATA.java

@@ -6,6 +6,11 @@ public class TEMP_DATA {
 	private String title;
 	private String title;
 	private String spec;
 	private String spec;
 	private String unit;
 	private String unit;
+	
+	/**
+	 * 期初库存
+	 */
+	private Double beginStock;
 
 
 	public String getBrand() {
 	public String getBrand() {
 		return brand;
 		return brand;
@@ -104,4 +109,12 @@ public class TEMP_DATA {
 			return false;
 			return false;
 		return true;
 		return true;
 	}
 	}
+
+	public Double getBeginStock() {
+		return beginStock;
+	}
+
+	public void setBeginStock(Double beginStock) {
+		this.beginStock = beginStock;
+	}
 }
 }

+ 19 - 4
src/main/java/com/uas/platform/b2b/openapi/model/TEMP_IO.java

@@ -20,6 +20,11 @@ public class TEMP_IO extends Data {
 
 
 	private String type;// in/out
 	private String type;// in/out
 
 
+	/**
+	 * 期初库存
+	 */
+	private Double beginStock;
+
 	public Date getDate() {
 	public Date getDate() {
 		return date;
 		return date;
 	}
 	}
@@ -59,8 +64,8 @@ public class TEMP_IO extends Data {
 			Map<TEMP_DATA, List<IOItem>> omap = new HashMap<TEMP_DATA, List<IOItem>>();
 			Map<TEMP_DATA, List<IOItem>> omap = new HashMap<TEMP_DATA, List<IOItem>>();
 			Set<TEMP_DATA> keys = new HashSet<TEMP_DATA>();
 			Set<TEMP_DATA> keys = new HashSet<TEMP_DATA>();
 			for (TEMP_IO temp : temps) {
 			for (TEMP_IO temp : temps) {
-				TEMP_DATA data = new TEMP_DATA(temp.getBrand(), temp.getCode(), temp.getTitle(), temp.getSpec(),
-						temp.getUnit());
+				TEMP_DATA data = new TEMP_DATA(temp.getBrand(), temp.getCode(), temp.getTitle(), temp.getSpec(), temp.getUnit());
+				data.setBeginStock(temp.getBeginStock());
 				keys.add(data);
 				keys.add(data);
 
 
 				List<IOItem> items = null;
 				List<IOItem> items = null;
@@ -86,11 +91,21 @@ public class TEMP_IO extends Data {
 				}
 				}
 			}
 			}
 			for (TEMP_DATA temp : keys) {
 			for (TEMP_DATA temp : keys) {
-				ios.add(new IO(temp.getBrand(), temp.getCode(), temp.getTitle(), temp.getSpec(), temp.getUnit(), imap
-						.get(temp), omap.get(temp)));
+				IO io = new IO(temp.getBrand(), temp.getCode(), temp.getTitle(), temp.getSpec(), temp.getUnit(), imap.get(temp),
+						omap.get(temp));
+				io.setBeginStock(temp.getBeginStock());
+				ios.add(io);
 			}
 			}
 		}
 		}
 		return ios;
 		return ios;
 	}
 	}
 
 
+	public Double getBeginStock() {
+		return beginStock;
+	}
+
+	public void setBeginStock(Double beginStock) {
+		this.beginStock = beginStock;
+	}
+
 }
 }

+ 9 - 4
src/main/java/com/uas/platform/b2b/openapi/service/impl/UASCustDataService.java

@@ -2,12 +2,14 @@ package com.uas.platform.b2b.openapi.service.impl;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
+import com.uas.platform.b2b.core.util.DateUtils;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.data.support.DS;
 import com.uas.platform.b2b.data.support.DS;
 import com.uas.platform.b2b.data.support.DSUtils;
 import com.uas.platform.b2b.data.support.DSUtils;
@@ -65,9 +67,10 @@ public class UASCustDataService implements CustDataService {
 				SpObserver.putSp(ds.getId());
 				SpObserver.putSp(ds.getId());
 				// A,B,C格式的数据改为'A','B','C'格式
 				// A,B,C格式的数据改为'A','B','C'格式
 				final String brandsWithFix = StringUtils.collectionToDelimitedString(Arrays.asList(brands.split(",")), ",", "'", "'");
 				final String brandsWithFix = StringUtils.collectionToDelimitedString(Arrays.asList(brands.split(",")), ",", "'", "'");
+				int nowMonth = DateUtils.getYearmonth(new Date());
 				return commonDao
 				return commonDao
-						.query("select pr_brand as brand,pr_orispeccode as code,pr_detail as title,pr_spec as spec,po_onhand as stock,pr_unit as unit from productonhand left join product on po_prodcode=pr_code where po_onhand > 0 and pr_brand in ("
-								+ brandsWithFix + ")", Stock.class);
+						.query("select pr_brand as brand,pr_orispeccode as code,pr_detail as title,pr_spec as spec,pr_unit as unit,po_onhand as stock,(select pm_beginqty from v$productmonth where pr_code=pm_prodcode and pm_yearmonth=?) as beginStock from productonhand left join product on po_prodcode=pr_code where po_onhand > 0 and pr_brand in ("
+								+ brandsWithFix + ")", Stock.class, nowMonth);
 			} finally {
 			} finally {
 				SpObserver.putSp(currDs);
 				SpObserver.putSp(currDs);
 			}
 			}
@@ -112,14 +115,16 @@ public class UASCustDataService implements CustDataService {
 				SpObserver.putSp(ds.getId());
 				SpObserver.putSp(ds.getId());
 				// A,B,C格式的数据改为'A','B','C'格式
 				// A,B,C格式的数据改为'A','B','C'格式
 				final String brandsWithFix = StringUtils.collectionToDelimitedString(Arrays.asList(brands.split(",")), ",", "'", "'");
 				final String brandsWithFix = StringUtils.collectionToDelimitedString(Arrays.asList(brands.split(",")), ",", "'", "'");
+				// {@code startDate}所处期间
+				int month = DateUtils.getYearmonth(startDate);
 				StringBuffer sql = new StringBuffer(
 				StringBuffer sql = new StringBuffer(
-						"select pr_brand as brand,pr_orispeccode as code,pr_detail as title,pr_spec as spec,pr_unit as unit,pi_date as \"DATE\",pi_title as trader,nvl(pd_inqty,0)+nvl(pd_outqty,0) as qty,case when nvl(pd_inqty,0)<>0 then 'in' else 'out' end as type from prodinout left join prodiodetail on pi_id=pd_piid left join product on pd_prodcode=pr_code where ");
+						"select pr_brand as brand,pr_orispeccode as code,pr_detail as title,pr_spec as spec,pr_unit as unit,pi_date as \"DATE\",pi_title as trader,nvl(pd_inqty,0)+nvl(pd_outqty,0) as qty,case when nvl(pd_inqty,0)<>0 then 'in' else 'out' end as type,(select pm_beginqty from v$productmonth where pr_code=pm_prodcode and pm_yearmonth=?) as beginStock from prodinout left join prodiodetail on pi_id=pd_piid left join product on pd_prodcode=pr_code where ");
 				sql.append("pi_statuscode='POSTED' and pi_date > to_date('").append(startDate).append("','yyyy-mm-dd')");
 				sql.append("pi_statuscode='POSTED' and pi_date > to_date('").append(startDate).append("','yyyy-mm-dd')");
 				if (StringUtils.hasText(code))
 				if (StringUtils.hasText(code))
 					sql.append(" and pr_orispeccode='").append(code).append("'");
 					sql.append(" and pr_orispeccode='").append(code).append("'");
 				sql.append(" and pr_brand in (").append(brandsWithFix).append(")");
 				sql.append(" and pr_brand in (").append(brandsWithFix).append(")");
 				sql.append(" order by pr_brand,pr_orispeccode,pi_date,pd_pdno");
 				sql.append(" order by pr_brand,pr_orispeccode,pi_date,pd_pdno");
-				return TEMP_IO.reduce(commonDao.query(sql.toString(), TEMP_IO.class));
+				return TEMP_IO.reduce(commonDao.query(sql.toString(), TEMP_IO.class, month));
 			} finally {
 			} finally {
 				SpObserver.putSp(currDs);
 				SpObserver.putSp(currDs);
 			}
 			}