Pārlūkot izejas kodu

代理商接口修改,取出入库记录接口,同时返回有期初无本期出入库的物料信息

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@4224 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
yingp 10 gadi atpakaļ
vecāks
revīzija
c1e3108e0e

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

@@ -131,10 +131,10 @@ public class DateUtils {
 	}
 
 	public static Date parse(String date, String f) {
-		if (date == null) {
+		if (date == null || "".equals(date)) {
 			return new Date();
 		}
-		if (f == null) {
+		if (f == null || "".equals(f)) {
 			try {
 				return date.contains(" ") ? YMD_HMS.parse(date) : YMD.parse(date);
 			} catch (ParseException e) {

+ 3 - 3
src/main/java/com/uas/platform/b2b/model/Enterprise.java

@@ -264,11 +264,11 @@ public class Enterprise implements Serializable {
 	private String accessSecret;
 
 	/**
-	 * en_masterId 公司简介
+	 * en_masterId 企业对应管理系统ID
 	 */
-	@Column(name = "en_masterId")
+	@Column(name = "en_masterid")
 	private Long enMasterId;
-	
+
 	public Long getEnMasterId() {
 		return enMasterId;
 	}

+ 5 - 1
src/main/java/com/uas/platform/b2b/openapi/model/TEMP_DATA.java

@@ -6,7 +6,7 @@ public class TEMP_DATA {
 	private String title;
 	private String spec;
 	private String unit;
-	
+
 	/**
 	 * 期初库存
 	 */
@@ -52,6 +52,10 @@ public class TEMP_DATA {
 		this.unit = unit;
 	}
 
+	public TEMP_DATA() {
+		super();
+	}
+
 	public TEMP_DATA(String brand, String code, String title, String spec, String unit) {
 		super();
 		this.brand = brand;

+ 15 - 1
src/main/java/com/uas/platform/b2b/openapi/model/TEMP_IO.java

@@ -58,7 +58,14 @@ public class TEMP_IO extends Data {
 		this.type = type;
 	}
 
-	public static List<IO> reduce(List<TEMP_IO> temps) {
+	/**
+	 * @param temps
+	 *            本期io
+	 * @param datas
+	 *            这个是指有期初,无本期io的部分
+	 * @return
+	 */
+	public static List<IO> reduce(List<TEMP_IO> temps, List<TEMP_DATA> datas) {
 		List<IO> ios = new ArrayList<IO>();
 		if (!CollectionUtils.isEmpty(temps)) {
 			Map<TEMP_DATA, List<IOItem>> imap = new HashMap<TEMP_DATA, List<IOItem>>();
@@ -99,6 +106,13 @@ public class TEMP_IO extends Data {
 				ios.add(io);
 			}
 		}
+		if (!CollectionUtils.isEmpty(datas)) {
+			for (TEMP_DATA temp : datas) {
+				IO io = new IO(temp.getBrand(), temp.getCode(), temp.getTitle(), temp.getSpec(), temp.getUnit(), null, null);
+				io.setBeginStock(temp.getBeginStock());
+				ios.add(io);
+			}
+		}
 		return ios;
 	}
 

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

@@ -18,6 +18,7 @@ import com.uas.platform.b2b.openapi.model.Forecast;
 import com.uas.platform.b2b.openapi.model.IO;
 import com.uas.platform.b2b.openapi.model.Sale;
 import com.uas.platform.b2b.openapi.model.Stock;
+import com.uas.platform.b2b.openapi.model.TEMP_DATA;
 import com.uas.platform.b2b.openapi.model.TEMP_FORECAST;
 import com.uas.platform.b2b.openapi.model.TEMP_IO;
 import com.uas.platform.b2b.openapi.model.TEMP_SALE;
@@ -95,7 +96,7 @@ public class UASCustDataService implements CustDataService {
 				if (StringUtils.hasText(code))
 					sql.append(" and pr_orispeccode='").append(code).append("'");
 				sql.append(" and pr_brand in (").append(brandsWithFix).append(")");
-				sql.append(" order by pr_brand,pr_orispeccode,sa_date,sd_detno");
+				sql.append(" order by pr_brand,pr_spec,sa_date,sd_detno");
 				return TEMP_SALE.reduce(commonDao.query(sql.toString(), TEMP_SALE.class));
 			} finally {
 				SpObserver.putSp(currDs);
@@ -123,8 +124,16 @@ public class UASCustDataService implements CustDataService {
 				if (StringUtils.hasText(code))
 					sql.append(" and pr_orispeccode='").append(code).append("'");
 				sql.append(" and pr_brand in (").append(brandsWithFix).append(")");
-				sql.append(" order by pr_brand,pr_orispeccode,pi_date,pd_pdno");
-				return TEMP_IO.reduce(commonDao.query(sql.toString(), TEMP_IO.class, month));
+				sql.append(" order by pr_brand,pr_spec,pi_date,pd_pdno");
+				// 无io部分
+				StringBuffer noioSql = new StringBuffer(
+						"select pr_brand as brand,nvl(pr_orispeccode,pr_spec) as code,pr_detail as title,pr_spec as spec,pr_unit as unit,pm_beginqty as beginStock from v$productmonth left join product on pm_prodcode=pr_code where pm_yearmonth=? and pm_beginqty > 0");
+				noioSql.append(" and pr_brand in (").append(brandsWithFix).append(")");
+				noioSql.append(" and not exists (select 1 from prodinout left join prodiodetail on pi_id=pd_piid where to_char(pi_date,'yyyymm')=pm_yearmonth and pi_statuscode='POSTED' and pd_prodcode=pm_prodcode)");
+				noioSql.append(" order by pr_brand,pr_spec");
+
+				return TEMP_IO.reduce(commonDao.query(sql.toString(), TEMP_IO.class, month),
+						commonDao.query(noioSql.toString(), TEMP_DATA.class, month));
 			} finally {
 				SpObserver.putSp(currDs);
 			}
@@ -149,7 +158,7 @@ public class UASCustDataService implements CustDataService {
 				if (StringUtils.hasText(code))
 					sql.append(" and pr_orispeccode='").append(code).append("'");
 				sql.append(" and pr_brand in (").append(brandsWithFix).append(")");
-				sql.append(" order by pr_brand,pr_orispeccode,sf_date,sd_detno");
+				sql.append(" order by pr_brand,pr_spec,sf_date,sd_detno");
 				return TEMP_FORECAST.reduce(commonDao.query(sql.toString(), TEMP_FORECAST.class));
 			} finally {
 				SpObserver.putSp(currDs);