Browse Source

【后台】+【对账单 送货工厂字段】

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@4135 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
aof 10 năm trước cách đây
mục cha
commit
c066810cd7

+ 59 - 5
src/main/java/com/uas/platform/b2b/controller/SaleApCheckController.java

@@ -20,6 +20,9 @@ import org.springframework.web.servlet.ModelAndView;
 
 
 import com.uas.platform.b2b.model.ErpProdIODetail;
 import com.uas.platform.b2b.model.ErpProdIODetail;
 import com.uas.platform.b2b.model.PurchaseApCheck;
 import com.uas.platform.b2b.model.PurchaseApCheck;
+import com.uas.platform.b2b.model.PurchaseApCheckDone;
+import com.uas.platform.b2b.model.PurchaseApCheckEnd;
+import com.uas.platform.b2b.model.PurchaseApCheckTodo;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.service.ErpProdIODetailService;
 import com.uas.platform.b2b.service.ErpProdIODetailService;
@@ -33,6 +36,7 @@ import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.platform.core.web.bind.RequestState;
 
 
 @Controller
 @Controller
 @RequestMapping("/sale/apCheck")
 @RequestMapping("/sale/apCheck")
@@ -151,13 +155,14 @@ public class SaleApCheckController {
 
 
 	/**
 	/**
 	 * 作为买家,获取应收对账单(全部)
 	 * 作为买家,获取应收对账单(全部)
-	 * 
-	 * @param json
+	 * @param params
+	 * @param keyword
+	 * @param searchFilter
 	 * @return
 	 * @return
 	 */
 	 */
-	@RequestMapping(value = "/getAllCheck", method = RequestMethod.GET)
+	@RequestMapping( method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
-	public Page<PurchaseApCheck> getReceivedPurchaseApChecks(PageParams params, String keyword, String searchFilter) {
+	public Page<PurchaseApCheck> getPurchaseApChecks(PageParams params, String keyword, String searchFilter) {
 		logger.log("应收对账单", "获取全部应收对账单");
 		logger.log("应收对账单", "获取全部应收对账单");
 		PageInfo info = new PageInfo(params);
 		PageInfo info = new PageInfo(params);
 		// 我作为卖家,把我的企业ID作为买方ID传入
 		// 我作为卖家,把我的企业ID作为买方ID传入
@@ -168,7 +173,56 @@ public class SaleApCheckController {
 		}
 		}
 		return purchaseApCheckService.findAllByPageInfo(info, keyword, filter);
 		return purchaseApCheckService.findAllByPageInfo(info, keyword, filter);
 	}
 	}
-
+	
+	/**
+	 * 作为买家,获取应收对账单(未对账)
+	 */
+	@RequestMapping( params = RequestState.TODO, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseApCheckTodo> getTodoApChecks(PageParams params, String keyword, String searchFilter) {
+		logger.log("应收对账单", "获取未对账应收对账单");
+		PageInfo info = new PageInfo(params);
+		// 我作为卖家,把我的企业ID作为买方ID传入
+		info.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = null;
+		if (StringUtils.hasText(searchFilter)) {
+			filter = FlexJsonUtils.fromJson(searchFilter, SearchFilter.class);
+		}
+		return purchaseApCheckService.findTodoByPageInfo(info, keyword, filter);
+	}
+	/**
+	 * 作为买家,获取应收对账单(已确认)
+	 */
+	@RequestMapping( params = RequestState.DONE, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseApCheckDone> getDoneApChecks(PageParams params, String keyword, String searchFilter) {
+		logger.log("应收对账单", "获取已确认应收对账单");
+		PageInfo info = new PageInfo(params);
+		// 我作为卖家,把我的企业ID作为买方ID传入
+		info.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = null;
+		if (StringUtils.hasText(searchFilter)) {
+			filter = FlexJsonUtils.fromJson(searchFilter, SearchFilter.class);
+		}
+		return purchaseApCheckService.findDoneByPageInfo(info, keyword, filter);
+	}
+	
+	/**
+	 * 作为买家,获取应收对账单(不同意)
+	 */
+	@RequestMapping( params = RequestState.END, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseApCheckEnd> getEndApChecks(PageParams params, String keyword, String searchFilter) {
+		logger.log("应收对账单", "获取不同意,已作废应收对账单");
+		PageInfo info = new PageInfo(params);
+		// 我作为卖家,把我的企业ID作为买方ID传入
+		info.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = null;
+		if (StringUtils.hasText(searchFilter)) {
+			filter = FlexJsonUtils.fromJson(searchFilter, SearchFilter.class);
+		}
+		return purchaseApCheckService.findEndByPageInfo(info, keyword, filter);
+	}
 	/**
 	/**
 	 * 全部导出
 	 * 全部导出
 	 * 
 	 * 

+ 10 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseApCheckDoneDao.java

@@ -0,0 +1,10 @@
+package com.uas.platform.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import com.uas.platform.b2b.model.PurchaseApCheckDone;
+
+public interface PurchaseApCheckDoneDao extends JpaSpecificationExecutor<PurchaseApCheckDone>, JpaRepository<PurchaseApCheckDone, Long> {
+
+}

+ 10 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseApCheckEndDao.java

@@ -0,0 +1,10 @@
+package com.uas.platform.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import com.uas.platform.b2b.model.PurchaseApCheckEnd;
+
+public interface PurchaseApCheckEndDao extends JpaSpecificationExecutor<PurchaseApCheckEnd>, JpaRepository<PurchaseApCheckEnd, Long> {
+
+}

+ 10 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseApCheckTodoDao.java

@@ -0,0 +1,10 @@
+package com.uas.platform.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import com.uas.platform.b2b.model.PurchaseApCheckTodo;
+
+public interface PurchaseApCheckTodoDao extends JpaSpecificationExecutor<PurchaseApCheckTodo>, JpaRepository<PurchaseApCheckTodo, Long> {
+
+}

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

@@ -131,6 +131,19 @@ public class ErpProdIODetail implements Serializable{
 	 */
 	 */
 	private Double nowMoney;
 	private Double nowMoney;
 	
 	
+	/**
+	 * 送货工厂
+	 */
+	private String factory;
+	
+	public String getFactory() {
+		return factory;
+	}
+
+	public void setFactory(String factory) {
+		this.factory = factory;
+	}
+
 	public Double getMoney() {
 	public Double getMoney() {
 		this.money = (this.qty == null ? 0: this.qty) * (this.orderPrice == null ? 0:this.orderPrice);
 		this.money = (this.qty == null ? 0: this.qty) * (this.orderPrice == null ? 0:this.orderPrice);
 		return this.money;
 		return this.money;

+ 361 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckDone.java

@@ -0,0 +1,361 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderBy;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Where;
+
+/**
+ * 买家应付(卖家应收)对账单
+ * */
+@Entity
+@Table(name="purc$apcheck")
+@Where(clause = "pa_checkstatus = '已确认'")
+public class PurchaseApCheckDone implements Serializable {
+
+	/**
+	 * 序列号
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * ID
+	 */	
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$apcheck_gen")
+	@SequenceGenerator(name = "purc$apcheck_gen", sequenceName = "purc$apcheck_seq", allocationSize = 1)
+	@Column(name = "pa_id")	
+	private Long id;
+	
+	/**
+	 * 对账起始日期
+	 */	
+	@Column(name = "pa_begindate")
+	private Date beginDate;
+
+	/**
+	 * 对账截止日期
+	 */		
+	@Column(name = "pa_enddate")
+	private Date endDate;
+	
+	/**
+	 * 录单日期
+	 */	
+	@Column(name = "pa_recorddate")
+	private Date recordDate;
+	
+	/**
+	 * 录单人
+	 */	
+	@Column(name = "pa_recorder")
+	private String recorder;
+	
+	/**
+	 * 应收日期
+	 */	
+	@Column(name = "pa_apdate")
+	private Date apDate;
+	
+	/**
+	 * 对账状态
+	 */	
+	@Column(name = "pa_checkstatus")
+	private String checkStatus;
+	
+	/**
+	 * 备注
+	 */	
+	@Column(name = "pa_remark")
+	private String remark;
+	
+	/**
+	 * 提交日期
+	 */	
+	@Column(name = "pa_commitdate")
+	private Date commitDate;
+	
+	/**
+	 * 作废日期
+	 */	
+	@Column(name = "pa_resdate")
+	private Date resDate;
+	
+	/**
+	 * 作废人
+	 */	
+	@Column(name = "pa_resman")
+	private String resMan;
+	
+	/**
+	 * 上传状态
+	 */	
+	@Column(name = "pa_status")
+	private Short status;
+	
+	/**
+	 * 对账总额
+	 */	
+	@Column(name = "pa_checkamount")
+	private Double checkAmount;
+	
+	/**
+	 * 币别
+	 */	
+	@Column(name = "pa_currency")
+	private String currency;
+	
+	/**
+	 *汇率
+	 */	
+	@Column(name = "pa_taxrate")
+	private Double taxrate;
+	
+	/**
+	 *汇率
+	 */	
+	@Column(name = "pa_rate")
+	private Double rate;
+	
+	/**
+	 *收款方式
+	 */	
+	@Column(name = "pa_payments")
+	private String payments;
+	
+	/**
+	 * 客户UU
+	 */	
+	@Column(name = "pa_custuu")
+	private Long custUu;
+	
+	/**
+	 * 客户名称
+	 */	
+	@Column(name = "pa_custname")
+	private String custName;
+	
+	/**
+	 *客户名称
+	 */	
+	@Column(name = "pa_enuu")
+	private Long enUu;
+	
+	/**
+	 *单据编号
+	 */	
+	@Column(name = "pa_code")
+	private String code;
+	
+	/**
+	 * 客户回复原因
+	 */	
+	@Column(name = "pa_custreply")
+	private String custreply;
+	
+	/**
+	 * 对账单明细行
+	 */
+	@OneToMany(mappedBy = "apCheck", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	private Set<PurchaseApCheckItem> items;
+	
+	public String getCustreply() {
+		return custreply;
+	}
+
+	public void setCustreply(String custreply) {
+		this.custreply = custreply;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Date getBeginDate() {
+		return beginDate;
+	}
+
+	public void setBeginDate(Date beginDate) {
+		this.beginDate = beginDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public Date getRecordDate() {
+		return recordDate;
+	}
+
+	public void setRecordDate(Date recordDate) {
+		this.recordDate = recordDate;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public Date getApDate() {
+		return apDate;
+	}
+
+	public void setApDate(Date apDate) {
+		this.apDate = apDate;
+	}
+
+	public String getCheckStatus() {
+		return checkStatus;
+	}
+
+	public void setCheckStatus(String checkStatus) {
+		this.checkStatus = checkStatus;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Date getCommitDate() {
+		return commitDate;
+	}
+
+	public void setCommitDate(Date commitDate) {
+		this.commitDate = commitDate;
+	}
+
+	public Date getResDate() {
+		return resDate;
+	}
+
+	public void setResDate(Date resDate) {
+		this.resDate = resDate;
+	}
+
+	public String getResMan() {
+		return resMan;
+	}
+
+	public void setResMan(String resMan) {
+		this.resMan = resMan;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Double getCheckAmount() {
+		return checkAmount;
+	}
+
+	public void setCheckAmount(Double checkAmount) {
+		this.checkAmount = checkAmount;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Double getTaxrate() {
+		return taxrate;
+	}
+
+	public void setTaxrate(Double taxrate) {
+		this.taxrate = taxrate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Long getCustUu() {
+		return custUu;
+	}
+
+	public void setCustUu(Long custUu) {
+		this.custUu = custUu;
+	}
+
+	public String getCustName() {
+		return custName;
+	}
+
+	public void setCustName(String custName) {
+		this.custName = custName;
+	}
+
+	public Long getEnUu() {
+		return enUu;
+	}
+
+	public void setEnUu(Long enUu) {
+		this.enUu = enUu;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Set<PurchaseApCheckItem> getItems() {
+		return items;
+	}
+
+	public void setItems(Set<PurchaseApCheckItem> items) {
+		this.items = items;
+	}
+
+	public Double getRate() {
+		return rate;
+	}
+
+	public void setRate(Double rate) {
+		this.rate = rate;
+	}
+	
+	
+}

+ 361 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckEnd.java

@@ -0,0 +1,361 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderBy;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Where;
+
+/**
+ * 买家应付(卖家应收)对账单
+ * */
+@Entity
+@Where(clause = "pa_checkstatus = '不同意' or pa_checkstatus = '已作废'")
+@Table(name="purc$apcheck")
+public class PurchaseApCheckEnd implements Serializable {
+
+	/**
+	 * 序列号
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * ID
+	 */	
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$apcheck_gen")
+	@SequenceGenerator(name = "purc$apcheck_gen", sequenceName = "purc$apcheck_seq", allocationSize = 1)
+	@Column(name = "pa_id")	
+	private Long id;
+	
+	/**
+	 * 对账起始日期
+	 */	
+	@Column(name = "pa_begindate")
+	private Date beginDate;
+
+	/**
+	 * 对账截止日期
+	 */		
+	@Column(name = "pa_enddate")
+	private Date endDate;
+	
+	/**
+	 * 录单日期
+	 */	
+	@Column(name = "pa_recorddate")
+	private Date recordDate;
+	
+	/**
+	 * 录单人
+	 */	
+	@Column(name = "pa_recorder")
+	private String recorder;
+	
+	/**
+	 * 应收日期
+	 */	
+	@Column(name = "pa_apdate")
+	private Date  apDate;
+	
+	/**
+	 * 对账状态
+	 */	
+	@Column(name = "pa_checkstatus")
+	private String checkStatus;
+	
+	/**
+	 * 备注
+	 */	
+	@Column(name = "pa_remark")
+	private String remark;
+	
+	/**
+	 * 提交日期
+	 */	
+	@Column(name = "pa_commitdate")
+	private Date commitDate;
+	
+	/**
+	 * 作废日期
+	 */	
+	@Column(name = "pa_resdate")
+	private Date resDate;
+	
+	/**
+	 * 作废人
+	 */	
+	@Column(name = "pa_resman")
+	private String resMan;
+	
+	/**
+	 * 上传状态
+	 */	
+	@Column(name = "pa_status")
+	private Short status;
+	
+	/**
+	 * 对账总额
+	 */	
+	@Column(name = "pa_checkamount")
+	private Double checkAmount;
+	
+	/**
+	 * 币别
+	 */	
+	@Column(name = "pa_currency")
+	private String currency;
+	
+	/**
+	 *汇率
+	 */	
+	@Column(name = "pa_taxrate")
+	private Double taxrate;
+	
+	/**
+	 *汇率
+	 */	
+	@Column(name = "pa_rate")
+	private Double rate;
+	
+	/**
+	 *收款方式
+	 */	
+	@Column(name = "pa_payments")
+	private String payments;
+	
+	/**
+	 * 客户UU
+	 */	
+	@Column(name = "pa_custuu")
+	private Long custUu;
+	
+	/**
+	 * 客户名称
+	 */	
+	@Column(name = "pa_custname")
+	private String custName;
+	
+	/**
+	 *客户名称
+	 */	
+	@Column(name = "pa_enuu")
+	private Long enUu;
+	
+	/**
+	 *单据编号
+	 */	
+	@Column(name = "pa_code")
+	private String code;
+	
+	/**
+	 * 客户回复原因
+	 */	
+	@Column(name = "pa_custreply")
+	private String custreply;
+	
+	/**
+	 * 对账单明细行
+	 */
+	@OneToMany(mappedBy = "apCheck", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	private Set<PurchaseApCheckItem> items;
+	
+	public String getCustreply() {
+		return custreply;
+	}
+
+	public void setCustreply(String custreply) {
+		this.custreply = custreply;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Date getBeginDate() {
+		return beginDate;
+	}
+
+	public void setBeginDate(Date beginDate) {
+		this.beginDate = beginDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public Date getRecordDate() {
+		return recordDate;
+	}
+
+	public void setRecordDate(Date recordDate) {
+		this.recordDate = recordDate;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public Date getApDate() {
+		return apDate;
+	}
+
+	public void setApDate(Date apDate) {
+		this.apDate = apDate;
+	}
+
+	public String getCheckStatus() {
+		return checkStatus;
+	}
+
+	public void setCheckStatus(String checkStatus) {
+		this.checkStatus = checkStatus;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Date getCommitDate() {
+		return commitDate;
+	}
+
+	public void setCommitDate(Date commitDate) {
+		this.commitDate = commitDate;
+	}
+
+	public Date getResDate() {
+		return resDate;
+	}
+
+	public void setResDate(Date resDate) {
+		this.resDate = resDate;
+	}
+
+	public String getResMan() {
+		return resMan;
+	}
+
+	public void setResMan(String resMan) {
+		this.resMan = resMan;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Double getCheckAmount() {
+		return checkAmount;
+	}
+
+	public void setCheckAmount(Double checkAmount) {
+		this.checkAmount = checkAmount;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Double getTaxrate() {
+		return taxrate;
+	}
+
+	public void setTaxrate(Double taxrate) {
+		this.taxrate = taxrate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Long getCustUu() {
+		return custUu;
+	}
+
+	public void setCustUu(Long custUu) {
+		this.custUu = custUu;
+	}
+
+	public String getCustName() {
+		return custName;
+	}
+
+	public void setCustName(String custName) {
+		this.custName = custName;
+	}
+
+	public Long getEnUu() {
+		return enUu;
+	}
+
+	public void setEnUu(Long enUu) {
+		this.enUu = enUu;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Set<PurchaseApCheckItem> getItems() {
+		return items;
+	}
+
+	public void setItems(Set<PurchaseApCheckItem> items) {
+		this.items = items;
+	}
+
+	public Double getRate() {
+		return rate;
+	}
+
+	public void setRate(Double rate) {
+		this.rate = rate;
+	}
+	
+	
+}

+ 361 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckTodo.java

@@ -0,0 +1,361 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderBy;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Where;
+
+/**
+ * 买家应付(卖家应收)对账单
+ * */
+@Entity
+@Where(clause = "pa_checkstatus = '未对账'")
+@Table(name="purc$apcheck")
+public class PurchaseApCheckTodo implements Serializable {
+
+	/**
+	 * 序列号
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * ID
+	 */	
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$apcheck_gen")
+	@SequenceGenerator(name = "purc$apcheck_gen", sequenceName = "purc$apcheck_seq", allocationSize = 1)
+	@Column(name = "pa_id")	
+	private Long id;
+	
+	/**
+	 * 对账起始日期
+	 */	
+	@Column(name = "pa_begindate")
+	private Date beginDate;
+
+	/**
+	 * 对账截止日期
+	 */		
+	@Column(name = "pa_enddate")
+	private Date endDate;
+	
+	/**
+	 * 录单日期
+	 */	
+	@Column(name = "pa_recorddate")
+	private Date recordDate;
+	
+	/**
+	 * 录单人
+	 */	
+	@Column(name = "pa_recorder")
+	private String recorder;
+	
+	/**
+	 * 应收日期
+	 */	
+	@Column(name = "pa_apdate")
+	private Date  apDate;
+	
+	/**
+	 * 对账状态
+	 */	
+	@Column(name = "pa_checkstatus")
+	private String checkStatus;
+	
+	/**
+	 * 备注
+	 */	
+	@Column(name = "pa_remark")
+	private String remark;
+	
+	/**
+	 * 提交日期
+	 */	
+	@Column(name = "pa_commitdate")
+	private Date commitDate;
+	
+	/**
+	 * 作废日期
+	 */	
+	@Column(name = "pa_resdate")
+	private Date resDate;
+	
+	/**
+	 * 作废人
+	 */	
+	@Column(name = "pa_resman")
+	private String resMan;
+	
+	/**
+	 * 上传状态
+	 */	
+	@Column(name = "pa_status")
+	private Short status;
+	
+	/**
+	 * 对账总额
+	 */	
+	@Column(name = "pa_checkamount")
+	private Double checkAmount;
+	
+	/**
+	 * 币别
+	 */	
+	@Column(name = "pa_currency")
+	private String currency;
+	
+	/**
+	 *汇率
+	 */	
+	@Column(name = "pa_taxrate")
+	private Double taxrate;
+	
+	/**
+	 *汇率
+	 */	
+	@Column(name = "pa_rate")
+	private Double rate;
+	
+	/**
+	 *收款方式
+	 */	
+	@Column(name = "pa_payments")
+	private String payments;
+	
+	/**
+	 * 客户UU
+	 */	
+	@Column(name = "pa_custuu")
+	private Long custUu;
+	
+	/**
+	 * 客户名称
+	 */	
+	@Column(name = "pa_custname")
+	private String custName;
+	
+	/**
+	 *客户名称
+	 */	
+	@Column(name = "pa_enuu")
+	private Long enUu;
+	
+	/**
+	 *单据编号
+	 */	
+	@Column(name = "pa_code")
+	private String code;
+	
+	/**
+	 * 客户回复原因
+	 */	
+	@Column(name = "pa_custreply")
+	private String custreply;
+	
+	/**
+	 * 对账单明细行
+	 */
+	@OneToMany(mappedBy = "apCheck", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	private Set<PurchaseApCheckItem> items;
+	
+	public String getCustreply() {
+		return custreply;
+	}
+
+	public void setCustreply(String custreply) {
+		this.custreply = custreply;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Date getBeginDate() {
+		return beginDate;
+	}
+
+	public void setBeginDate(Date beginDate) {
+		this.beginDate = beginDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public Date getRecordDate() {
+		return recordDate;
+	}
+
+	public void setRecordDate(Date recordDate) {
+		this.recordDate = recordDate;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public Date getApDate() {
+		return apDate;
+	}
+
+	public void setApDate(Date apDate) {
+		this.apDate = apDate;
+	}
+
+	public String getCheckStatus() {
+		return checkStatus;
+	}
+
+	public void setCheckStatus(String checkStatus) {
+		this.checkStatus = checkStatus;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Date getCommitDate() {
+		return commitDate;
+	}
+
+	public void setCommitDate(Date commitDate) {
+		this.commitDate = commitDate;
+	}
+
+	public Date getResDate() {
+		return resDate;
+	}
+
+	public void setResDate(Date resDate) {
+		this.resDate = resDate;
+	}
+
+	public String getResMan() {
+		return resMan;
+	}
+
+	public void setResMan(String resMan) {
+		this.resMan = resMan;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Double getCheckAmount() {
+		return checkAmount;
+	}
+
+	public void setCheckAmount(Double checkAmount) {
+		this.checkAmount = checkAmount;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Double getTaxrate() {
+		return taxrate;
+	}
+
+	public void setTaxrate(Double taxrate) {
+		this.taxrate = taxrate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Long getCustUu() {
+		return custUu;
+	}
+
+	public void setCustUu(Long custUu) {
+		this.custUu = custUu;
+	}
+
+	public String getCustName() {
+		return custName;
+	}
+
+	public void setCustName(String custName) {
+		this.custName = custName;
+	}
+
+	public Long getEnUu() {
+		return enUu;
+	}
+
+	public void setEnUu(Long enUu) {
+		this.enUu = enUu;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Set<PurchaseApCheckItem> getItems() {
+		return items;
+	}
+
+	public void setItems(Set<PurchaseApCheckItem> items) {
+		this.items = items;
+	}
+
+	public Double getRate() {
+		return rate;
+	}
+
+	public void setRate(Double rate) {
+		this.rate = rate;
+	}
+	
+	
+}

+ 31 - 3
src/main/java/com/uas/platform/b2b/service/PurchaseApCheckService.java

@@ -5,9 +5,11 @@ import java.util.List;
 
 
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 
 
-
 import com.uas.platform.b2b.model.PurchaseApCheck;
 import com.uas.platform.b2b.model.PurchaseApCheck;
+import com.uas.platform.b2b.model.PurchaseApCheckDone;
+import com.uas.platform.b2b.model.PurchaseApCheckEnd;
 import com.uas.platform.b2b.model.PurchaseApCheckItem;
 import com.uas.platform.b2b.model.PurchaseApCheckItem;
+import com.uas.platform.b2b.model.PurchaseApCheckTodo;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 
 
@@ -73,12 +75,38 @@ public interface PurchaseApCheckService {
 	
 	
 	
 	
 	/**
 	/**
-	 * 分页查找应收对账单,包括明细
-	 * 
+	 * 分页查找应收对账单,包括明细(全部)
 	 * @param pageInfo
 	 * @param pageInfo
 	 * @param keyword
 	 * @param keyword
 	 *            查找关键字
 	 *            查找关键字
 	 * @return
 	 * @return
 	 */
 	 */
 	public Page<PurchaseApCheck> findAllByPageInfo(PageInfo pageInfo, String keyword, SearchFilter searchFilter);
 	public Page<PurchaseApCheck> findAllByPageInfo(PageInfo pageInfo, String keyword, SearchFilter searchFilter);
+	
+	/**
+	 * 分页查找应收对账单,包括明细(全部)
+	 * @param pageInfo
+	 * @param keyword
+	 *            查找关键字
+	 * @return
+	 */
+	public Page<PurchaseApCheckTodo> findTodoByPageInfo(PageInfo pageInfo, String keyword, SearchFilter searchFilter);
+	
+	/**
+	 * 分页查找应收对账单,包括明细(已确认)
+	 * @param pageInfo
+	 * @param keyword
+	 *            查找关键字
+	 * @return
+	 */
+	public Page<PurchaseApCheckDone> findDoneByPageInfo(PageInfo pageInfo, String keyword, SearchFilter searchFilter);
+	
+	/**
+	 * 分页查找应收对账单,包括明细(不同意 已作废 )
+	 * @param pageInfo
+	 * @param keyword
+	 *            查找关键字
+	 * @return
+	 */
+	public Page<PurchaseApCheckEnd> findEndByPageInfo(PageInfo pageInfo, String keyword, SearchFilter searchFilter);
 }
 }

+ 2 - 2
src/main/java/com/uas/platform/b2b/service/impl/ErpProdIODetailServiceImpl.java

@@ -24,7 +24,7 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
 		String sql = "select p.pi_inoutno inOutNo,p.pd_detno detno ,p.pi_class piClass, p.pd_ordercode orderCode, p.pd_orderdetno  orderDetno,"
 		String sql = "select p.pi_inoutno inOutNo,p.pd_detno detno ,p.pi_class piClass, p.pd_ordercode orderCode, p.pd_orderdetno  orderDetno,"
 				+ " p.pd_prodcode prodCode, p.pr_title prodTitle,p.pd_qty  qty, p.pi_date piDate, p.pd_orderprice  orderPrice, p.pi_currency currency, p.pd_taxrate taxrate, p.pd_ycheckqty yCheckQty,"
 				+ " p.pd_prodcode prodCode, p.pr_title prodTitle,p.pd_qty  qty, p.pi_date piDate, p.pd_orderprice  orderPrice, p.pi_currency currency, p.pd_taxrate taxrate, p.pd_ycheckqty yCheckQty,"
 				+ " p.pd_thischeckqty thisCheckQty, p.custuu custUu, p.custname custName, p.enuu enUu, p.sourceid sourceId, p.pi_sourcetable sourceTable, p.pi_rate rate, p.pi_receivecode receiveCode,"
 				+ " p.pd_thischeckqty thisCheckQty, p.custuu custUu, p.custname custName, p.enuu enUu, p.sourceid sourceId, p.pi_sourcetable sourceTable, p.pi_rate rate, p.pi_receivecode receiveCode,"
-				+ " p.pi_receivename receiveName from erp$prodiodetail p where enuu = ?";
+				+ " p.pi_receivename receiveName, p.pd_factory factory from erp$prodiodetail p where enuu = ?";
 		Object[] args = new Object[] { enUu };
 		Object[] args = new Object[] { enUu };
 		if (!CollectionUtils.isEmpty(filter)) {
 		if (!CollectionUtils.isEmpty(filter)) {
 			String[] str = new String[filter.size()];
 			String[] str = new String[filter.size()];
@@ -54,7 +54,7 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
 		String sql = "select p.pi_inoutno inOutNo,p.pd_detno detno ,p.pi_class piClass, p.pd_ordercode orderCode, p.pd_orderdetno  orderDetno,"
 		String sql = "select p.pi_inoutno inOutNo,p.pd_detno detno ,p.pi_class piClass, p.pd_ordercode orderCode, p.pd_orderdetno  orderDetno,"
 				+ " p.pd_prodcode prodCode, p.pr_title prodTitle,p.pd_qty qty, p.pi_date piDate, p.pd_orderprice  orderPrice, p.pi_currency currency, p.pd_taxrate taxrate, p.pd_ycheckqty yCheckQty,"
 				+ " p.pd_prodcode prodCode, p.pr_title prodTitle,p.pd_qty qty, p.pi_date piDate, p.pd_orderprice  orderPrice, p.pi_currency currency, p.pd_taxrate taxrate, p.pd_ycheckqty yCheckQty,"
 				+ " p.pd_thischeckqty thisCheckQty, p.custuu custUu, p.custname custName, p.enuu enUu, p.sourceid sourceId, p.pi_sourcetable sourceTable, p.pi_rate rate, p.pi_receivecode receiveCode,"
 				+ " p.pd_thischeckqty thisCheckQty, p.custuu custUu, p.custname custName, p.enuu enUu, p.sourceid sourceId, p.pi_sourcetable sourceTable, p.pi_rate rate, p.pi_receivecode receiveCode,"
-				+ " p.pi_receivename receiveName from erp$prodiodetail p where enuu = ?";
+				+ " p.pi_receivename receiveName , p.pd_factory factory from erp$prodiodetail p where enuu = ?";
 		if (!StringUtils.isEmpty(keyword)) {
 		if (!StringUtils.isEmpty(keyword)) {
 			String[] strs = keyword.split("-");
 			String[] strs = keyword.split("-");
 			if (strs.length == 1) {
 			if (strs.length == 1) {

+ 73 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApCheckServiceImpl.java

@@ -12,7 +12,6 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
 
 
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.jpa.domain.Specification;
@@ -23,11 +22,17 @@ import org.springframework.util.StringUtils;
 
 
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.dao.PurchaseApCheckDao;
 import com.uas.platform.b2b.dao.PurchaseApCheckDao;
+import com.uas.platform.b2b.dao.PurchaseApCheckDoneDao;
+import com.uas.platform.b2b.dao.PurchaseApCheckEndDao;
 import com.uas.platform.b2b.dao.PurchaseApCheckIndexDao;
 import com.uas.platform.b2b.dao.PurchaseApCheckIndexDao;
 import com.uas.platform.b2b.dao.PurchaseApCheckItemDao;
 import com.uas.platform.b2b.dao.PurchaseApCheckItemDao;
+import com.uas.platform.b2b.dao.PurchaseApCheckTodoDao;
 import com.uas.platform.b2b.event.PurchaseApCheckSaveEvent;
 import com.uas.platform.b2b.event.PurchaseApCheckSaveEvent;
 import com.uas.platform.b2b.model.PurchaseApCheck;
 import com.uas.platform.b2b.model.PurchaseApCheck;
+import com.uas.platform.b2b.model.PurchaseApCheckDone;
+import com.uas.platform.b2b.model.PurchaseApCheckEnd;
 import com.uas.platform.b2b.model.PurchaseApCheckItem;
 import com.uas.platform.b2b.model.PurchaseApCheckItem;
+import com.uas.platform.b2b.model.PurchaseApCheckTodo;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.service.PurchaseApCheckService;
 import com.uas.platform.b2b.service.PurchaseApCheckService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
@@ -40,6 +45,15 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 
 
 	@Autowired
 	@Autowired
 	PurchaseApCheckDao purchaseApCheckDao;
 	PurchaseApCheckDao purchaseApCheckDao;
+	
+	@Autowired
+	PurchaseApCheckTodoDao purchaseApCheckTodoDao;
+	
+	@Autowired
+	PurchaseApCheckDoneDao purchaseApCheckDoneDao;
+	
+	@Autowired
+	PurchaseApCheckEndDao purchaseApCheckEndDao;
 
 
 	@Autowired
 	@Autowired
 	PurchaseApCheckItemDao purchaseApCheckItemDao;
 	PurchaseApCheckItemDao purchaseApCheckItemDao;
@@ -248,6 +262,64 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}
+	
+	public Page<PurchaseApCheckTodo> findTodoByPageInfo(final PageInfo pageInfo, final String keyword, SearchFilter searchFilter) {
+		if(searchFilter != null) {
+			if(searchFilter.getFromDate() != null)
+				pageInfo.expression(PredicateUtils.gte("recordDate", new Date(searchFilter.getFromDate()), false));
+			if(searchFilter.getEndDate() != null)
+				pageInfo.expression(PredicateUtils.lte("recordDate", new Date(searchFilter.getEndDate()), false));
+		}
+		return purchaseApCheckTodoDao.findAll(new Specification<PurchaseApCheckTodo>() {
+			public Predicate toPredicate(Root<PurchaseApCheckTodo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				if(StringUtils.hasText(keyword)) {
+					pageInfo.expression(PredicateUtils.in("id", purchaseApCheckIndexDao.findByKeyword(
+							SystemSession.getUser().getEnterprise().getUu(), keyword), false));
+				}
+				query.where(pageInfo.getPredicates(root, query, builder));
+				return null;
+			}
+		}, pageInfo);
+	}
+	
+	public Page<PurchaseApCheckDone> findDoneByPageInfo(final PageInfo pageInfo, final String keyword, SearchFilter searchFilter) {
+		if(searchFilter != null) {
+			if(searchFilter.getFromDate() != null)
+				pageInfo.expression(PredicateUtils.gte("recordDate", new Date(searchFilter.getFromDate()), false));
+			if(searchFilter.getEndDate() != null)
+				pageInfo.expression(PredicateUtils.lte("recordDate", new Date(searchFilter.getEndDate()), false));
+		}
+		return purchaseApCheckDoneDao.findAll(new Specification<PurchaseApCheckDone>() {
+			public Predicate toPredicate(Root<PurchaseApCheckDone> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				if(StringUtils.hasText(keyword)) {
+					pageInfo.expression(PredicateUtils.in("id", purchaseApCheckIndexDao.findByKeyword(
+							SystemSession.getUser().getEnterprise().getUu(), keyword), false));
+				}
+				query.where(pageInfo.getPredicates(root, query, builder));
+				return null;
+			}
+		}, pageInfo);
+	}
+	
+	public Page<PurchaseApCheckEnd> findEndByPageInfo(final PageInfo pageInfo, final String keyword, SearchFilter searchFilter) {
+		if(searchFilter != null) {
+			if(searchFilter.getFromDate() != null)
+				pageInfo.expression(PredicateUtils.gte("recordDate", new Date(searchFilter.getFromDate()), false));
+			if(searchFilter.getEndDate() != null)
+				pageInfo.expression(PredicateUtils.lte("recordDate", new Date(searchFilter.getEndDate()), false));
+		}
+		return purchaseApCheckEndDao.findAll(new Specification<PurchaseApCheckEnd>() {
+			public Predicate toPredicate(Root<PurchaseApCheckEnd> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				if(StringUtils.hasText(keyword)) {
+					pageInfo.expression(PredicateUtils.in("id", purchaseApCheckIndexDao.findByKeyword(
+							SystemSession.getUser().getEnterprise().getUu(), keyword), false));
+				}
+				query.where(pageInfo.getPredicates(root, query, builder));
+				return null;
+			}
+		}, pageInfo);
+	}
+	
 	/**
 	/**
 	 * 获取出入库单数据信息
 	 * 获取出入库单数据信息
 	 * @param sourceTable
 	 * @param sourceTable