Browse Source

平台用户打印采购单,状态传入erp采购单,记录打印日志。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7282 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 years ago
parent
commit
e2b9b0a7e1

+ 15 - 27
src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java

@@ -1,34 +1,8 @@
 package com.uas.platform.b2b.controller;
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
-
 import com.alibaba.dubbo.common.utils.CollectionUtils;
 import com.alibaba.fastjson.JSONObject;
-import com.uas.platform.b2b.model.PurchaseOrder;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderDone;
-import com.uas.platform.b2b.model.PurchaseOrderEnd;
-import com.uas.platform.b2b.model.PurchaseOrderItem;
-import com.uas.platform.b2b.model.PurchaseOrderReply;
-import com.uas.platform.b2b.model.PurchaseOrderTodo;
-import com.uas.platform.b2b.model.PurchaseOrderWaiting;
-import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.service.UserService;
@@ -47,6 +21,19 @@ import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.model.Sort;
 import com.uas.search.b2b.model.Sort.Type;
 import com.uas.search.b2b.util.SearchConstants;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 卖家对订单的操作
@@ -104,6 +91,7 @@ public class SaleOrderController {
 
 	/**
 	 * 打印订单,增加打印次数
+	 * 记录打印日志
 	 * 
 	 * @param id
 	 * @return

+ 15 - 0
src/main/java/com/uas/platform/b2b/dao/PrintLogDao.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2b.dao;
+
+import com.uas.platform.b2b.model.PrintLog;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface PrintLogDao extends JpaRepository<PrintLog, Long> {
+
+    List<PrintLog> findByStatusAndTable(short status, String tableName);
+
+    List<PrintLog> findByStatusAndCode(short status, String code);
+}

+ 47 - 22
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseController.java

@@ -1,16 +1,7 @@
 package com.uas.platform.b2b.erp.controller;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
+import com.alibaba.fastjson.JSON;
+import com.uas.platform.b2b.erp.model.MessageLog;
 import com.uas.platform.b2b.erp.model.Purchase;
 import com.uas.platform.b2b.erp.model.PurchaseDetailEnd;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
@@ -19,6 +10,16 @@ import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
 
 /**
  * 对买家ERP的数据接口<br>
@@ -56,17 +57,17 @@ public class PurchaseController {
 	}
 
 	/**
-	 * 从买家ERP获取平台的订单回复
-	 * 
-	 * @return
-	 */
-	@RequestMapping(value = "/reply", method = RequestMethod.GET)
-	@ResponseBody
-	public List<PurchaseReply> getReply() {
-		List<PurchaseReply> replies = purchaseService.convertPurchaseOrderReply(purchaseOrderService.findNotUploadReply());
-		logger.log("采购单", "下载采购单回复记录", replies.size());
-		return replies;
-	}
+     * 从买家ERP获取平台的订单回复
+     *
+     * @return
+     */
+    @RequestMapping(value = "/reply", method = RequestMethod.GET)
+    @ResponseBody
+    public List<PurchaseReply> getReply() {
+        List<PurchaseReply> replies = purchaseService.convertPurchaseOrderReply(purchaseOrderService.findNotUploadReply());
+        logger.log("采购单", "下载采购单回复记录", replies.size());
+        return replies;
+    }
 
 	/**
 	 * 买家ERP主动回复的记录上传到平台 <br>
@@ -111,4 +112,28 @@ public class PurchaseController {
 		logger.log("采购单", "上传结案、反结案采购单", ends.size());
 	}
 
+    /**
+     * 从买家ERP获取平台的打印状态
+     *
+     * @return
+     */
+    @RequestMapping(value = "/print", method = RequestMethod.GET)
+    @ResponseBody
+    public List<MessageLog> getPrint() {
+        List<MessageLog> messageLogs = purchaseService.convertMessageLog(purchaseOrderService.findPrintNotUploadReply());
+        logger.log("采购单", "下载打印记录", messageLogs.size());
+        return messageLogs;
+    }
+
+    /**
+     * 平台的打印记录传到ERP之后,修改平台里面的打印记录的传输状态
+     *
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "/print/back", method = RequestMethod.POST)
+    @ResponseBody
+    public void onPrintSendSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+        purchaseOrderService.onPrintSendSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+    }
 }

+ 9 - 10
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdInOutController.java

@@ -1,9 +1,11 @@
 package com.uas.platform.b2b.erp.controller;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.List;
-
+import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
+import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
+import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
+import com.uas.platform.b2b.service.PurchaseAcceptService;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -11,12 +13,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
-import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
-import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
-import com.uas.platform.b2b.service.PurchaseAcceptService;
-import com.uas.platform.core.logging.BufferedLoggerManager;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
 
 /**
  * 对买家ERP的数据接口<br>

+ 87 - 0
src/main/java/com/uas/platform/b2b/erp/model/MessageLog.java

@@ -0,0 +1,87 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.PrintLog;
+
+import java.util.Date;
+
+/**
+ * Created by dongbw on 17/03/11 15:06.
+ */
+public class MessageLog {
+
+    private int ml_id; // id
+    private Date ml_date;  // 日期
+    private String ml_man; // 操作人
+    private String ml_content; // 内容
+    private String ml_result;  // 结果
+    private String ml_search;  // 查找条件
+    private String code;  // 对应单据编号
+
+    public int getMl_id() {
+        return ml_id;
+    }
+
+    public void setMl_id(int ml_id) {
+        this.ml_id = ml_id;
+    }
+
+    public Date getMl_date() {
+        return ml_date;
+    }
+
+    public void setMl_date(Date ml_date) {
+        this.ml_date = ml_date;
+    }
+
+    public String getMl_man() {
+        return ml_man;
+    }
+
+    public void setMl_man(String ml_man) {
+        this.ml_man = ml_man;
+    }
+
+    public String getMl_result() {
+        return ml_result;
+    }
+
+    public void setMl_result(String ml_result) {
+        this.ml_result = ml_result;
+    }
+
+    public String getMl_search() {
+        return ml_search;
+    }
+
+    public void setMl_search(String ml_search) {
+        this.ml_search = ml_search;
+    }
+
+    public String getMl_content() {
+        return ml_content;
+    }
+
+    public void setMl_content(String ml_content) {
+        this.ml_content = ml_content;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public MessageLog(PrintLog printLog) {
+        System.out.println("type" + printLog.getType());
+        this.ml_date = printLog.getDate();
+        this.ml_man = printLog.getUser();
+        this.ml_content = printLog.getType();
+        this.ml_result = printLog.getType() + "成功";
+        if (printLog.getTable().equals("purc$orders")) {
+            this.ml_search ="Purchase|pu_id=" + printLog.getErpId();
+        }
+        this.code = printLog.getCode();
+    }
+}

+ 11 - 2
src/main/java/com/uas/platform/b2b/erp/service/PurchaseService.java

@@ -1,14 +1,16 @@
 package com.uas.platform.b2b.erp.service;
 
-import java.util.List;
-
+import com.uas.platform.b2b.erp.model.MessageLog;
 import com.uas.platform.b2b.erp.model.Purchase;
 import com.uas.platform.b2b.erp.model.PurchaseDetailEnd;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
+import com.uas.platform.b2b.model.PrintLog;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 
+import java.util.List;
+
 public interface PurchaseService {
 
 	/**
@@ -43,4 +45,11 @@ public interface PurchaseService {
 	 */
 	List<PurchaseOrderItem> convertPurchaseEnd(List<PurchaseDetailEnd> ends);
 
+	/**
+	 *  b2b的打印日志转换为erp的日志记录
+	 *
+	 * @param printNotUploadReply
+	 * @return
+	 */
+	List<MessageLog> convertMessageLog(List<PrintLog> printNotUploadReply);
 }

+ 22 - 23
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseServiceImpl.java

@@ -1,34 +1,21 @@
 package com.uas.platform.b2b.erp.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PurchaseOrderDao;
-import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
-import com.uas.platform.b2b.dao.UserDao;
-import com.uas.platform.b2b.dao.VendorDao;
+import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.erp.model.MessageLog;
 import com.uas.platform.b2b.erp.model.Purchase;
 import com.uas.platform.b2b.erp.model.PurchaseDetailEnd;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
 import com.uas.platform.b2b.erp.service.PurchaseService;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurchaseOrder;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderAllItem;
-import com.uas.platform.b2b.model.PurchaseOrderItem;
-import com.uas.platform.b2b.model.PurchaseOrderReply;
-import com.uas.platform.b2b.model.User;
-import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Status;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class PurchaseServiceImpl implements PurchaseService {
@@ -45,6 +32,8 @@ public class PurchaseServiceImpl implements PurchaseService {
 	private PurchaseOrderDao purchaseOrderDao;
 	@Autowired
 	private PurchaseOrderItemDao purchaseOrderItemDao;
+	@Autowired
+	private PrintLogDao printLogDao;
 
 	@Override
 	public List<PurchaseOrderAllItem> convertPurchase(List<Purchase> purchases) {
@@ -182,4 +171,14 @@ public class PurchaseServiceImpl implements PurchaseService {
 		}
 		return orderItems;
 	}
+
+    @Override
+    public List<MessageLog> convertMessageLog(List<PrintLog> printNotUploadReply) {
+        List<MessageLog> messageLogs = new ArrayList<MessageLog>();
+        for (PrintLog printlog: printNotUploadReply) {
+        	messageLogs.add(new MessageLog(printlog));
+		}
+		return messageLogs;
+    }
+
 }

+ 159 - 0
src/main/java/com/uas/platform/b2b/model/PrintLog.java

@@ -0,0 +1,159 @@
+package com.uas.platform.b2b.model;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  单据打印日志
+ * Created by dongbw on 17/03/11 10:09.
+ */
+@Table(name = "print$log")
+@Entity
+public class PrintLog implements Serializable{
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "print$log_gen")
+    @SequenceGenerator(name = "print$log_gen", sequenceName = "print$log_seq", allocationSize = 1)
+    @Column(name = "pl_id")
+    private Long id;
+
+    /**
+     * 打印时间
+     */
+    @Column(name = "pl_date")
+    private Date date;
+
+    /**
+     * 操作人
+     */
+    @Column(name = "pl_user")
+    private String user;
+
+    /**
+     * 打印单据类型
+     */
+    @Column(name = "pl_type")
+    private String type;
+
+    /**
+     * 外键
+     */
+    @Column(name = "pl_foreign")
+    private Long foreign;
+
+    /**
+     * 对应订单编号
+     */
+    @Column(name = "pl_code")
+    private String code;
+
+    /**
+     * 关联表名
+     */
+    @Column(name = "pl_table")
+    private String table;
+
+    /**
+     * 对应erp订单id
+     */
+    @Column(name = "pl_erpid")
+    private Long erpId;
+
+    /**
+     * 打印日志传输状态(0为待上传,1为已上传)
+     */
+    @Column(name = "pl_status")
+    private Short status;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getUser() {
+        return user;
+    }
+
+    public void setUser(String user) {
+        this.user = user;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Long getForeign() {
+        return foreign;
+    }
+
+    public void setForeign(Long foreign) {
+        this.foreign = foreign;
+    }
+
+    public String getTable() {
+        return table;
+    }
+
+    public void setTable(String table) {
+        this.table = table;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Long getErpId() {
+        return erpId;
+    }
+
+    public void setErpId(Long erpId) {
+        this.erpId = erpId;
+    }
+
+    public PrintLog() {
+    }
+
+    public PrintLog(Date date, String user, String type, Long foreign, String table, String code, Long erpId, Short status) {
+        this.date = date;
+        this.user = user;
+        this.type = type;
+        this.foreign = foreign;
+        this.table = table;
+        this.code = code;
+        this.erpId = erpId;
+        this.status = status;
+    }
+}

+ 20 - 9
src/main/java/com/uas/platform/b2b/model/PurchaseOrder.java

@@ -1,16 +1,11 @@
 package com.uas.platform.b2b.model;
 
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
+import java.util.Set;
 
 /**
  * 平台里面,以供应商的角度来查看采购订单
@@ -177,6 +172,15 @@ public class PurchaseOrder implements Serializable {
 	@Column(name = "pu_receivecode")
 	private String receiveCode;
 
+	/**
+	 * 打印日志
+	 */
+	@OneToMany(fetch = FetchType.EAGER)
+	@JoinColumn(name = "pl_foreign", insertable = false, updatable = false)
+	@org.hibernate.annotations.ForeignKey(name = "none")
+	@Where(clause = "pl_table = 'purc$orders'")
+	private Set<PrintLog> printLogs;
+
 	public Long getId() {
 		return id;
 	}
@@ -378,4 +382,11 @@ public class PurchaseOrder implements Serializable {
 		this.receiveCode = receiveCode;
 	}
 
+	public Set<PrintLog> getPrintLogs() {
+		return printLogs;
+	}
+
+	public void setPrintLogs(Set<PrintLog> printLogs) {
+		this.printLogs = printLogs;
+	}
 }

+ 21 - 16
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAll.java

@@ -1,24 +1,12 @@
 package com.uas.platform.b2b.model;
 
+
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
 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.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-
 /**
  * 平台里面,以供应商的角度来查看采购订单 <br>
  * 级联采购明细
@@ -192,6 +180,16 @@ public class PurchaseOrderAll {
 	@Column(name = "pu_erpid")
 	private Long erpId;
 
+	/**
+	 * 打印日志
+	 */
+	@OneToMany(fetch = FetchType.EAGER)
+	@JoinColumn(name = "pl_foreign", insertable = false, updatable = false)
+	@org.hibernate.annotations.ForeignKey(name = "none")
+	@Where(clause = "pl_table = 'purc$orders'")
+	private Set<PrintLog> printLogs;
+
+
 	public Long getId() {
 		return id;
 	}
@@ -402,4 +400,11 @@ public class PurchaseOrderAll {
 		this.erpId = erpId;
 	}
 
+	public Set<PrintLog> getPrintLogs() {
+		return printLogs;
+	}
+
+	public void setPrintLogs(Set<PrintLog> printLogs) {
+		this.printLogs = printLogs;
+	}
 }

+ 12 - 10
src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java

@@ -2,18 +2,9 @@ package com.uas.platform.b2b.service;
 
 import java.util.List;
 
+import com.uas.platform.b2b.model.*;
 import org.springframework.data.domain.Page;
 
-import com.uas.platform.b2b.model.PurchaseOrder;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderAllItem;
-import com.uas.platform.b2b.model.PurchaseOrderDone;
-import com.uas.platform.b2b.model.PurchaseOrderEnd;
-import com.uas.platform.b2b.model.PurchaseOrderItem;
-import com.uas.platform.b2b.model.PurchaseOrderReply;
-import com.uas.platform.b2b.model.PurchaseOrderTodo;
-import com.uas.platform.b2b.model.PurchaseOrderWaiting;
-import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.core.model.PageInfo;
 
 public interface PurchaseOrderService {
@@ -295,4 +286,15 @@ public interface PurchaseOrderService {
 	 */
 	public long getPurcByenUUAdnStatus(Long uu);
 
+	/**
+	 * 返回未上传的打印记录
+	 *
+	 */
+    List<PrintLog> findPrintNotUploadReply();
+
+	/**
+	 *  打印记录上传成功后修改平台内日志状态
+	 * @param idArray
+	 */
+	void onPrintSendSuccess(String[] idArray);
 }

+ 41 - 50
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -1,55 +1,9 @@
 package com.uas.platform.b2b.service.impl;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.JoinType;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.persistence.criteria.SetJoin;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
-import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
-import com.uas.platform.b2b.dao.PurchaseOrderDao;
-import com.uas.platform.b2b.dao.PurchaseOrderDoneDao;
-import com.uas.platform.b2b.dao.PurchaseOrderEndDao;
-import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
-import com.uas.platform.b2b.dao.PurchaseOrderReplyDao;
-import com.uas.platform.b2b.dao.PurchaseOrderTodoDao;
-import com.uas.platform.b2b.dao.PurchaseOrderWaitingDao;
-import com.uas.platform.b2b.dao.UserBaseInfoDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseOrderSaveEvent;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.PurchaseOrder;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderAllItem;
-import com.uas.platform.b2b.model.PurchaseOrderDone;
-import com.uas.platform.b2b.model.PurchaseOrderDoneItem;
-import com.uas.platform.b2b.model.PurchaseOrderEnd;
-import com.uas.platform.b2b.model.PurchaseOrderEndItem;
-import com.uas.platform.b2b.model.PurchaseOrderItem;
-import com.uas.platform.b2b.model.PurchaseOrderReply;
-import com.uas.platform.b2b.model.PurchaseOrderTodo;
-import com.uas.platform.b2b.model.PurchaseOrderTodoItem;
-import com.uas.platform.b2b.model.PurchaseOrderWaiting;
-import com.uas.platform.b2b.model.PurchaseOrderWaitingItem;
-import com.uas.platform.b2b.model.SearchFilter;
-import com.uas.platform.b2b.model.UserBaseInfo;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -62,6 +16,20 @@ import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.search.b2b.model.PageParams;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.criteria.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class PurchaseOrderServiceImpl implements PurchaseOrderService {
@@ -102,6 +70,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	@Autowired
 	private SearchService searchService;
 
+	@Autowired
+	private PrintLogDao printLogDao;
+
 	@Override
 	public void save(List<PurchaseOrderAllItem> orderItems) {
 		List<PurchaseOrderAllItem> newOrderItems = purchaseOrderAllItemDao.save(orderItems);
@@ -619,11 +590,13 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 
 	@Override
 	public void print(Long id) {
-		PurchaseOrder order = purchaseOrderDao.findOne(id);
+		PurchaseOrderAll order = purchaseOrderAllDao.findOne(id);
 		if (order != null) {
 			order.setPrint((short) ((order.getPrint() == null ? 0 : order.getPrint()) + 1));
+			PrintLog printLog = new PrintLog(new Date(), SystemSession.getUser().getUserName(), "平台客户打印采购单", order.getId(), "purc$orders", order.getCode(), order.getErpId(), Constant.NO);
+			printLogDao.save(printLog);
 		}
-		purchaseOrderDao.save(order);
+		purchaseOrderAllDao.save(order);
 	}
 
 	@Override
@@ -646,6 +619,24 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		return purchaseOrderDao.getPurcCounByEnUU(uu);
 	}
 
+	@Override
+	public List<PrintLog> findPrintNotUploadReply() {
+		return printLogDao.findByStatusAndTable(Constant.NO,"purc$orders");
+	}
+
+	@Override
+	public void onPrintSendSuccess(String[] codeArray) {
+		for (String code : codeArray) {
+			List<PrintLog> printLogs = printLogDao.findByStatusAndCode(Constant.NO, code);
+			for (PrintLog printLog : printLogs) {
+				if (printLog != null) {
+					printLog.setStatus(Constant.YES);
+					printLogDao.save(printLog);
+				}
+			}
+		}
+	}
+
 	@Override
 	public Page<PurchaseOrder> findAllOrdersByPageInfo(final PageInfo pageInfo, final SearchFilter filter) {
 		if (filter != null) {