Explorar o código

供应商绩效考核

huangct %!s(int64=8) %!d(string=hai) anos
pai
achega
0384f58db6

+ 17 - 0
src/main/java/com/uas/platform/b2b/controller/SnapshotController.java

@@ -98,6 +98,9 @@ public class SnapshotController {
 	@Autowired
 	private PurchaseTenderService purchaseTenderService;
 
+	@Autowired
+	private VendorPerformanceAssessService vpaService;
+
 	/**
 	 * 统计待处理事项
 	 * 
@@ -474,6 +477,20 @@ public class SnapshotController {
 			}
 		}).task(new Runnable() {
 
+			@Override
+			public void run() {
+				//供应商绩效考核
+				SystemSession.setUser(user);
+				int count = 0;
+				List<Object[]> list = vpaService.getVpaCount("sale");
+				for (Object[] objects : list){
+					count = count + Integer.valueOf(objects[0].toString());
+				}
+				hashtable.put("vendorPerformanceAssess", count);
+				SystemSession.clear();
+			}
+		}).task(new Runnable() {
+
 			@Override
 			public void run() {
 				//客户采购询价

+ 75 - 0
src/main/java/com/uas/platform/b2b/controller/VendorPerformanceAssessController.java

@@ -0,0 +1,75 @@
+package com.uas.platform.b2b.controller;
+
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+import com.uas.platform.b2b.search.SearchService;
+import com.uas.platform.b2b.service.VendorPerformanceAssessService;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.PageParams;
+import com.uas.search.b2b.model.SPage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 供应商绩效考核
+ *
+ * Created by 黄诚天 on 2017-10-15.
+ */
+@SuppressWarnings("deprecation")
+@RestController
+@RequestMapping("/vendorPerformanceAssess")
+public class VendorPerformanceAssessController {
+    @Autowired
+    private SearchService searchService;
+
+    @Autowired
+    private VendorPerformanceAssessService vpaService;
+
+    /**
+     * 获取供应商绩效考核
+     */
+    @RequestMapping(value = "/info/search", method = RequestMethod.GET)
+    @ResponseBody
+    public SPage<VendorPerformanceAssess> getVpas(PageParams params, String keyword) {
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+        pageParams.getFilters().put("vpa_veuu", SystemSession.getUser().getEnterprise().getUu());
+//		pageParams.getFilters().put("ve_custswitch", Constant.YES);
+//		List<Sort> sortList = new ArrayList<>();
+//		SearchFilter filter = userService.distribute();
+//		if (filter != null && filter.getDistribute() == null) {
+//			return null;
+//		}
+//		if (filter != null && !CollectionUtils.isEmpty(filter.getDistribute())) {
+//			List<Object> list = new ArrayList<>();
+//			for (Object object : filter.getDistribute()) {
+//				list.add(object);
+//			}
+//			pageParams.getFilters().put("ve_myenuu", new MultiValue(list, true));
+//		}
+//		sortList.add(new Sort("ve_id", false, Type.LONG, new Long(1)));
+//		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+        return searchService.searchVendorPerformanceAssesss(keyword, pageParams);
+    }
+
+    /**
+     * 获取供应商绩效考核详情
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/{id}/info", method = RequestMethod.GET)
+    @ResponseBody
+    public VendorPerformanceAssess getDetail(@PathVariable Long id) {
+        return vpaService.findById(id);
+    }
+
+    /**
+     * 设置单据已读
+     * @author wangmh
+     */
+    @RequestMapping(value = "/setRead", method = RequestMethod.POST)
+    @ResponseBody
+    public void setReadVpaByIds(@RequestBody Long... sourceIds) {
+        vpaService.setReadByIds("sale", sourceIds);
+    }
+
+}

+ 22 - 0
src/main/java/com/uas/platform/b2b/dao/VendorPerformanceAssessDao.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2b.dao;
+
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * Created by 黄诚天 on 2017-10-12.
+ */
+@Repository
+public interface VendorPerformanceAssessDao extends JpaSpecificationExecutor<VendorPerformanceAssess>, JpaRepository<VendorPerformanceAssess, Long> {
+    @Query("from VendorPerformanceAssess v where v.enUU = :enUU and v.vpaId = :vpaId")
+    public List<VendorPerformanceAssess> findByEnUUAndVapId(@Param("enUU") long enUU, @Param("vpaId") Long vpaId);
+
+    @Query("select count(p) from VendorPerformanceAssess p where p.id in :ids")
+    List<Object[]> getUnreadCountEveryStatus(List<Long> ids);
+}

+ 91 - 0
src/main/java/com/uas/platform/b2b/erp/controller/VendorPerformanceAssessErpController.java

@@ -0,0 +1,91 @@
+package com.uas.platform.b2b.erp.controller;
+
+import com.uas.platform.b2b.erp.model.VendorPerformanceAssessErp;
+import com.uas.platform.b2b.erp.service.VendorPerformanceAssessErpService;
+import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+import com.uas.platform.b2b.service.VendorPerformanceAssessService;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import org.apache.commons.collections.CollectionUtils;
+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.ArrayList;
+import java.util.List;
+
+/**
+ * 对ERP的供应商绩效考核接口
+ * Created by 黄诚天 on 2017-10-12.
+ */
+@Controller
+@RequestMapping("/erp/vendorPerformanceAssess")
+public class VendorPerformanceAssessErpController {
+    @Autowired
+    private VendorPerformanceAssessErpService vpaErpService;
+
+    @Autowired
+    private VendorPerformanceAssessService vpaService;
+
+    private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
+
+    /**
+     * 将ERP的供应商绩效考核信息写到平台
+     *
+     * @param data
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(method = RequestMethod.POST)
+    @ResponseBody
+    public void saveVPAs(@RequestParam("data") String data) throws UnsupportedEncodingException {
+        String jsonStr = URLDecoder.decode(data, "UTF-8");
+        List<VendorPerformanceAssessErp> vpas = FlexJsonUtils.fromJsonArray(jsonStr, VendorPerformanceAssessErp.class);
+        vpaService.save(vpaErpService.convertVPA(vpas));
+        logger.log("供应商绩效考核信息", "上传供应商绩效考核信息", vpas.size());
+    }
+
+    /**
+     * 将平台更新的ERP的供应商绩效考核信息回传回ERP
+     *
+     * @return
+     */
+    @RequestMapping(value = "/backtouas", method = RequestMethod.GET)
+    @ResponseBody
+    public List<VendorPerformanceAssessErp> getVPAs() {
+        List<VendorPerformanceAssessErp> vpaErps = new ArrayList<VendorPerformanceAssessErp>();
+        //暂不管回传
+        List<VendorPerformanceAssess> vpas = null;
+        if (!CollectionUtils.isEmpty(vpas)) {
+            for (VendorPerformanceAssess vpa : vpas) {
+                VendorPerformanceAssessErp vpaErp = new VendorPerformanceAssessErp();
+                vpaErp.setVpa_gysqrdf(vpa.getVpaGysqrdf());
+                vpaErp.setVpa_brkyy(vpa.getVpaBrkyy());
+                vpaErp.setVpa_recordman(vpa.getVpaRecordman());
+                vpaErp.setVpa_recorddate(vpa.getVpaRecorddate());
+                vpaErps.add(vpaErp);
+            }
+        }
+        return vpaErps;
+    }
+
+    /**
+     * 更新下载成功的状态
+     *
+     * @param data
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "/refreshDownloadstatus", method = RequestMethod.POST)
+    @ResponseBody
+    public void refreshDownloadstatus(@RequestParam("data") String data) throws UnsupportedEncodingException {
+        vpaService.onVPADownSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+    }
+
+
+}

+ 623 - 0
src/main/java/com/uas/platform/b2b/erp/model/VendorPerformanceAssessErp.java

@@ -0,0 +1,623 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+
+import java.util.Date;
+
+/**
+ * 供应商绩效考核
+ *
+ * @author huangct
+ */
+
+public class VendorPerformanceAssessErp {
+    private String vpa_code;
+    private Long vpa_id;
+    private String vpa_status;
+    private String vpa_recordman;
+    private Date vpa_recorddate;
+    private String vpa_statuscode;
+    private String vpa_applyman;
+    private String vpa_applydep;
+    private Date vpa_applydate;
+    private String vpa_assessdate;
+    private String vpa_purchasecode;
+    private String vpa_sqe;
+    private String vpa_orderteam;
+    private String vpa_vendorcode;
+    private String vpa_vendorname;
+    private String vpa_prodkind;
+    private Double vpa_llpbhgl;
+    private Double vpa_sxbll;
+    private Double vpa_khsxcs;
+    private Double vpa_cxzdyc;
+    private Double vpa_8dhfjsl;
+    private Double vpa_ycffl;
+    private Double vpa_gfphd;
+    private Double vpa_zlzhdf;
+    private Double vpa_zlqzdf;
+    private Double vpa_jszc;
+    private Double vpa_jsbz;
+    private Double vpa_jsfx;
+    private Double vpa_jszlwzqk;
+    private Double vpa_yphgl;
+    private Double vpa_gcsl;
+    private Double vpa_kkxyq;
+    private Double vpa_wlsffsjszlwt;
+    private Double vpa_jszhdf;
+    private Double vpa_jsqzdf;
+    private Double vpa_cbjj;
+    private Double vpa_zftj;
+    private Double vpa_dyzc;
+    private Double vpa_fwzc;
+    private Double vpa_cgkfzhdf;
+    private Double vpa_wljf;
+    private Double vpa_djhcs;
+    private Double vpa_ngpcl;
+    private Double vpa_fwxl;
+    private Double vpa_cgzhdf;
+    private Double vpa_cgjcgkfqzdf;
+    private Double vpa_zjdf;
+    private String vpa_gysqrdf;
+    private String vpa_brkyy;
+    private String vpa_zlpffj;
+    private String vpa_jspffj;
+    private String vpa_cgpffj;
+    private Date vpa_auditdate;
+    private String vpa_auditor;
+    private String vpa_jbxxfj;
+    private String vpa_purchasename;
+    private String vpa_sqename;
+    private String vpa_ordername;
+    private Long ve_uu;
+
+    public String getVpa_code() {
+        return vpa_code;
+    }
+
+    public void setVpa_code(String vpa_code) {
+        this.vpa_code = vpa_code;
+    }
+
+    public Long getVpa_id() {
+        return vpa_id;
+    }
+
+    public void setVpa_id(Long vpa_id) {
+        this.vpa_id = vpa_id;
+    }
+
+    public String getVpa_status() {
+        return vpa_status;
+    }
+
+    public void setVpa_status(String vpa_status) {
+        this.vpa_status = vpa_status;
+    }
+
+    public String getVpa_recordman() {
+        return vpa_recordman;
+    }
+
+    public void setVpa_recordman(String vpa_recordman) {
+        this.vpa_recordman = vpa_recordman;
+    }
+
+    public Date getVpa_recorddate() {
+        return vpa_recorddate;
+    }
+
+    public void setVpa_recorddate(Date vpa_recorddate) {
+        this.vpa_recorddate = vpa_recorddate;
+    }
+
+    public String getVpa_statuscode() {
+        return vpa_statuscode;
+    }
+
+    public void setVpa_statuscode(String vpa_statuscode) {
+        this.vpa_statuscode = vpa_statuscode;
+    }
+
+    public String getVpa_applyman() {
+        return vpa_applyman;
+    }
+
+    public void setVpa_applyman(String vpa_applyman) {
+        this.vpa_applyman = vpa_applyman;
+    }
+
+    public String getVpa_applydep() {
+        return vpa_applydep;
+    }
+
+    public void setVpa_applydep(String vpa_applydep) {
+        this.vpa_applydep = vpa_applydep;
+    }
+
+    public Date getVpa_applydate() {
+        return vpa_applydate;
+    }
+
+    public void setVpa_applydate(Date vpa_applydate) {
+        this.vpa_applydate = vpa_applydate;
+    }
+
+    public String getVpa_assessdate() {
+        return vpa_assessdate;
+    }
+
+    public void setVpa_assessdate(String vpa_assessdate) {
+        this.vpa_assessdate = vpa_assessdate;
+    }
+
+    public String getVpa_purchasecode() {
+        return vpa_purchasecode;
+    }
+
+    public void setVpa_purchasecode(String vpa_purchasecode) {
+        this.vpa_purchasecode = vpa_purchasecode;
+    }
+
+    public String getVpa_sqe() {
+        return vpa_sqe;
+    }
+
+    public void setVpa_sqe(String vpa_sqe) {
+        this.vpa_sqe = vpa_sqe;
+    }
+
+    public String getVpa_orderteam() {
+        return vpa_orderteam;
+    }
+
+    public void setVpa_orderteam(String vpa_orderteam) {
+        this.vpa_orderteam = vpa_orderteam;
+    }
+
+    public String getVpa_vendorcode() {
+        return vpa_vendorcode;
+    }
+
+    public void setVpa_vendorcode(String vpa_vendorcode) {
+        this.vpa_vendorcode = vpa_vendorcode;
+    }
+
+    public String getVpa_vendorname() {
+        return vpa_vendorname;
+    }
+
+    public void setVpa_vendorname(String vpa_vendorname) {
+        this.vpa_vendorname = vpa_vendorname;
+    }
+
+    public String getVpa_prodkind() {
+        return vpa_prodkind;
+    }
+
+    public void setVpa_prodkind(String vpa_prodkind) {
+        this.vpa_prodkind = vpa_prodkind;
+    }
+
+    public Double getVpa_llpbhgl() {
+        return vpa_llpbhgl;
+    }
+
+    public void setVpa_llpbhgl(Double vpa_llpbhgl) {
+        this.vpa_llpbhgl = vpa_llpbhgl;
+    }
+
+    public Double getVpa_sxbll() {
+        return vpa_sxbll;
+    }
+
+    public void setVpa_sxbll(Double vpa_sxbll) {
+        this.vpa_sxbll = vpa_sxbll;
+    }
+
+    public Double getVpa_khsxcs() {
+        return vpa_khsxcs;
+    }
+
+    public void setVpa_khsxcs(Double vpa_khsxcs) {
+        this.vpa_khsxcs = vpa_khsxcs;
+    }
+
+    public Double getVpa_cxzdyc() {
+        return vpa_cxzdyc;
+    }
+
+    public void setVpa_cxzdyc(Double vpa_cxzdyc) {
+        this.vpa_cxzdyc = vpa_cxzdyc;
+    }
+
+    public Double getVpa_8dhfjsl() {
+        return vpa_8dhfjsl;
+    }
+
+    public void setVpa_8dhfjsl(Double vpa_8dhfjsl) {
+        this.vpa_8dhfjsl = vpa_8dhfjsl;
+    }
+
+    public Double getVpa_ycffl() {
+        return vpa_ycffl;
+    }
+
+    public void setVpa_ycffl(Double vpa_ycffl) {
+        this.vpa_ycffl = vpa_ycffl;
+    }
+
+    public Double getVpa_gfphd() {
+        return vpa_gfphd;
+    }
+
+    public void setVpa_gfphd(Double vpa_gfphd) {
+        this.vpa_gfphd = vpa_gfphd;
+    }
+
+    public Double getVpa_zlzhdf() {
+        return vpa_zlzhdf;
+    }
+
+    public void setVpa_zlzhdf(Double vpa_zlzhdf) {
+        this.vpa_zlzhdf = vpa_zlzhdf;
+    }
+
+    public Double getVpa_zlqzdf() {
+        return vpa_zlqzdf;
+    }
+
+    public void setVpa_zlqzdf(Double vpa_zlqzdf) {
+        this.vpa_zlqzdf = vpa_zlqzdf;
+    }
+
+    public Double getVpa_jszc() {
+        return vpa_jszc;
+    }
+
+    public void setVpa_jszc(Double vpa_jszc) {
+        this.vpa_jszc = vpa_jszc;
+    }
+
+    public Double getVpa_jsbz() {
+        return vpa_jsbz;
+    }
+
+    public void setVpa_jsbz(Double vpa_jsbz) {
+        this.vpa_jsbz = vpa_jsbz;
+    }
+
+    public Double getVpa_jsfx() {
+        return vpa_jsfx;
+    }
+
+    public void setVpa_jsfx(Double vpa_jsfx) {
+        this.vpa_jsfx = vpa_jsfx;
+    }
+
+    public Double getVpa_jszlwzqk() {
+        return vpa_jszlwzqk;
+    }
+
+    public void setVpa_jszlwzqk(Double vpa_jszlwzqk) {
+        this.vpa_jszlwzqk = vpa_jszlwzqk;
+    }
+
+    public Double getVpa_yphgl() {
+        return vpa_yphgl;
+    }
+
+    public void setVpa_yphgl(Double vpa_yphgl) {
+        this.vpa_yphgl = vpa_yphgl;
+    }
+
+    public Double getVpa_gcsl() {
+        return vpa_gcsl;
+    }
+
+    public void setVpa_gcsl(Double vpa_gcsl) {
+        this.vpa_gcsl = vpa_gcsl;
+    }
+
+    public Double getVpa_kkxyq() {
+        return vpa_kkxyq;
+    }
+
+    public void setVpa_kkxyq(Double vpa_kkxyq) {
+        this.vpa_kkxyq = vpa_kkxyq;
+    }
+
+    public Double getVpa_wlsffsjszlwt() {
+        return vpa_wlsffsjszlwt;
+    }
+
+    public void setVpa_wlsffsjszlwt(Double vpa_wlsffsjszlwt) {
+        this.vpa_wlsffsjszlwt = vpa_wlsffsjszlwt;
+    }
+
+    public Double getVpa_jszhdf() {
+        return vpa_jszhdf;
+    }
+
+    public void setVpa_jszhdf(Double vpa_jszhdf) {
+        this.vpa_jszhdf = vpa_jszhdf;
+    }
+
+    public Double getVpa_jsqzdf() {
+        return vpa_jsqzdf;
+    }
+
+    public void setVpa_jsqzdf(Double vpa_jsqzdf) {
+        this.vpa_jsqzdf = vpa_jsqzdf;
+    }
+
+    public Double getVpa_cbjj() {
+        return vpa_cbjj;
+    }
+
+    public void setVpa_cbjj(Double vpa_cbjj) {
+        this.vpa_cbjj = vpa_cbjj;
+    }
+
+    public Double getVpa_zftj() {
+        return vpa_zftj;
+    }
+
+    public void setVpa_zftj(Double vpa_zftj) {
+        this.vpa_zftj = vpa_zftj;
+    }
+
+    public Double getVpa_dyzc() {
+        return vpa_dyzc;
+    }
+
+    public void setVpa_dyzc(Double vpa_dyzc) {
+        this.vpa_dyzc = vpa_dyzc;
+    }
+
+    public Double getVpa_fwzc() {
+        return vpa_fwzc;
+    }
+
+    public void setVpa_fwzc(Double vpa_fwzc) {
+        this.vpa_fwzc = vpa_fwzc;
+    }
+
+    public Double getVpa_cgkfzhdf() {
+        return vpa_cgkfzhdf;
+    }
+
+    public void setVpa_cgkfzhdf(Double vpa_cgkfzhdf) {
+        this.vpa_cgkfzhdf = vpa_cgkfzhdf;
+    }
+
+    public Double getVpa_wljf() {
+        return vpa_wljf;
+    }
+
+    public void setVpa_wljf(Double vpa_wljf) {
+        this.vpa_wljf = vpa_wljf;
+    }
+
+    public Double getVpa_djhcs() {
+        return vpa_djhcs;
+    }
+
+    public void setVpa_djhcs(Double vpa_djhcs) {
+        this.vpa_djhcs = vpa_djhcs;
+    }
+
+    public Double getVpa_ngpcl() {
+        return vpa_ngpcl;
+    }
+
+    public void setVpa_ngpcl(Double vpa_ngpcl) {
+        this.vpa_ngpcl = vpa_ngpcl;
+    }
+
+    public Double getVpa_fwxl() {
+        return vpa_fwxl;
+    }
+
+    public void setVpa_fwxl(Double vpa_fwxl) {
+        this.vpa_fwxl = vpa_fwxl;
+    }
+
+    public Double getVpa_cgzhdf() {
+        return vpa_cgzhdf;
+    }
+
+    public void setVpa_cgzhdf(Double vpa_cgzhdf) {
+        this.vpa_cgzhdf = vpa_cgzhdf;
+    }
+
+    public Double getVpa_cgjcgkfqzdf() {
+        return vpa_cgjcgkfqzdf;
+    }
+
+    public void setVpa_cgjcgkfqzdf(Double vpa_cgjcgkfqzdf) {
+        this.vpa_cgjcgkfqzdf = vpa_cgjcgkfqzdf;
+    }
+
+    public Double getVpa_zjdf() {
+        return vpa_zjdf;
+    }
+
+    public void setVpa_zjdf(Double vpa_zjdf) {
+        this.vpa_zjdf = vpa_zjdf;
+    }
+
+    public String getVpa_gysqrdf() {
+        return vpa_gysqrdf;
+    }
+
+    public void setVpa_gysqrdf(String vpa_gysqrdf) {
+        this.vpa_gysqrdf = vpa_gysqrdf;
+    }
+
+    public String getVpa_brkyy() {
+        return vpa_brkyy;
+    }
+
+    public void setVpa_brkyy(String vpa_brkyy) {
+        this.vpa_brkyy = vpa_brkyy;
+    }
+
+    public String getVpa_zlpffj() {
+        return vpa_zlpffj;
+    }
+
+    public void setVpa_zlpffj(String vpa_zlpffj) {
+        this.vpa_zlpffj = vpa_zlpffj;
+    }
+
+    public String getVpa_jspffj() {
+        return vpa_jspffj;
+    }
+
+    public void setVpa_jspffj(String vpa_jspffj) {
+        this.vpa_jspffj = vpa_jspffj;
+    }
+
+    public String getVpa_cgpffj() {
+        return vpa_cgpffj;
+    }
+
+    public void setVpa_cgpffj(String vpa_cgpffj) {
+        this.vpa_cgpffj = vpa_cgpffj;
+    }
+
+    public Date getVpa_auditdate() {
+        return vpa_auditdate;
+    }
+
+    public void setVpa_auditdate(Date vpa_auditdate) {
+        this.vpa_auditdate = vpa_auditdate;
+    }
+
+    public String getVpa_auditor() {
+        return vpa_auditor;
+    }
+
+    public void setVpa_auditor(String vpa_auditor) {
+        this.vpa_auditor = vpa_auditor;
+    }
+
+    public String getVpa_jbxxfj() {
+        return vpa_jbxxfj;
+    }
+
+    public void setVpa_jbxxfj(String vpa_jbxxfj) {
+        this.vpa_jbxxfj = vpa_jbxxfj;
+    }
+
+    public String getVpa_purchasename() {
+        return vpa_purchasename;
+    }
+
+    public void setVpa_purchasename(String vpa_purchasename) {
+        this.vpa_purchasename = vpa_purchasename;
+    }
+
+    public String getVpa_sqename() {
+        return vpa_sqename;
+    }
+
+    public void setVpa_sqename(String vpa_sqename) {
+        this.vpa_sqename = vpa_sqename;
+    }
+
+    public String getVpa_ordername() {
+        return vpa_ordername;
+    }
+
+    public void setVpa_ordername(String vpa_ordername) {
+        this.vpa_ordername = vpa_ordername;
+    }
+
+    public Long getVe_uu() {
+        return ve_uu;
+    }
+
+    public void setVe_uu(Long ve_uu) {
+        this.ve_uu = ve_uu;
+    }
+
+    /**
+     * 转为平台的产品
+     *
+     * @return
+     */
+    public VendorPerformanceAssess convert(Long enUU) {
+        VendorPerformanceAssess vpa = new VendorPerformanceAssess();
+        vpa.setEnUU(enUU);
+        vpa.setVpaVeuu(this.ve_uu);
+
+        vpa.setVpaCode(this.vpa_code);
+        vpa.setVpaId(this.vpa_id);
+        vpa.setVpaStatus(this.vpa_status);
+        vpa.setVpaRecordman(this.vpa_recordman);
+        vpa.setVpaRecorddate(this.vpa_recorddate);
+        vpa.setVpaStatuscode(this.vpa_statuscode);
+        vpa.setVpaApplyman(this.vpa_applyman);
+        vpa.setVpaApplydep(this.vpa_applydep);
+        vpa.setVpaApplydate(this.vpa_applydate);
+        vpa.setVpaAssessdate(this.vpa_assessdate);
+
+        vpa.setVpaPurchasecode(this.vpa_purchasecode);
+        vpa.setVpaSqe(this.vpa_sqe);
+        vpa.setVpaOrderteam(this.vpa_orderteam);
+        vpa.setVpaVendorcode(this.vpa_vendorcode);
+        vpa.setVpaVendorname(this.vpa_vendorname);
+        vpa.setVpaProdkind(this.vpa_prodkind);
+        vpa.setVpaLlpbhgl(this.vpa_llpbhgl);
+        vpa.setVpaSxbll(this.vpa_sxbll);
+        vpa.setVpaKhsxcs(this.vpa_khsxcs);
+        vpa.setVpaCxzdyc(this.vpa_cxzdyc);
+
+        vpa.setVpa8dhfjsl(this.vpa_8dhfjsl);
+        vpa.setVpaYcffl(this.vpa_ycffl);
+        vpa.setVpaGfphd(this.vpa_gfphd);
+        vpa.setVpaZlzhdf(this.vpa_zlzhdf);
+        vpa.setVpaZlqzdf(this.vpa_zlqzdf);
+        vpa.setVpaJszc(this.vpa_jszc);
+        vpa.setVpaJsbz(this.vpa_jsbz);
+        vpa.setVpaJsfx(this.vpa_jsfx);
+        vpa.setVpaJszlwzqk(this.vpa_jszlwzqk);
+        vpa.setVpaYphgl(this.vpa_yphgl);
+
+        vpa.setVpaGcsl(this.vpa_gcsl);
+        vpa.setVpaKkxyq(this.vpa_kkxyq);
+        vpa.setVpaWlsffsjszlwt(this.vpa_wlsffsjszlwt);
+        vpa.setVpaJszhdf(this.vpa_jszhdf);
+        vpa.setVpaJsqzdf(this.vpa_jsqzdf);
+        vpa.setVpaCbjj(this.vpa_cbjj);
+        vpa.setVpaZftj(this.vpa_zftj);
+        vpa.setVpaDyzc(this.vpa_dyzc);
+        vpa.setVpaFwzc(this.vpa_fwzc);
+        vpa.setVpaCgkfzhdf(this.vpa_cgkfzhdf);
+
+        vpa.setVpaWljf(this.vpa_wljf);
+        vpa.setVpaDjhcs(this.vpa_djhcs);
+        vpa.setVpaNgpcl(this.vpa_ngpcl);
+        vpa.setVpaFwxl(this.vpa_fwxl);
+        vpa.setVpaCgzhdf(this.vpa_cgzhdf);
+        vpa.setVpaCgjcgkfqzdf(this.vpa_cgjcgkfqzdf);
+        vpa.setVpaZjdf(this.vpa_zjdf);
+        vpa.setVpaGysqrdf(this.vpa_gysqrdf);
+        vpa.setVpaBrkyy(this.vpa_brkyy);
+        vpa.setVpaZlpffj(this.vpa_zlpffj);
+
+        vpa.setVpaJspffj(this.vpa_jspffj);
+        vpa.setVpaCgpffj(this.vpa_cgpffj);
+        vpa.setVpaAuditdate(this.vpa_auditdate);
+        vpa.setVpaAuditor(this.vpa_auditor);
+        vpa.setVpaJbxxfj(this.vpa_jbxxfj);
+        vpa.setVpaPurchasename(this.vpa_purchasename);
+        vpa.setVpaSqename(this.vpa_sqename);
+        vpa.setVpaOrdername(this.vpa_ordername);
+
+        return vpa;
+    }
+
+}

+ 18 - 0
src/main/java/com/uas/platform/b2b/erp/service/VendorPerformanceAssessErpService.java

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.erp.service;
+
+import com.uas.platform.b2b.erp.model.VendorPerformanceAssessErp;
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+
+import java.util.List;
+
+public interface VendorPerformanceAssessErpService {
+	
+	/**
+	 * 将ERP系统的供应商绩效考核,转为平台的供应商绩效考核
+	 * 
+	 * @param vpas
+	 * @return
+	 */
+	List<VendorPerformanceAssess> convertVPA(List<VendorPerformanceAssessErp> vpas);
+	
+}

+ 46 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/VendorPerformanceAssessErpServiceImpl.java

@@ -0,0 +1,46 @@
+package com.uas.platform.b2b.erp.service.impl;
+
+import com.uas.platform.b2b.dao.VendorPerformanceAssessDao;
+import com.uas.platform.b2b.erp.model.VendorPerformanceAssessErp;
+import com.uas.platform.b2b.erp.service.VendorPerformanceAssessErpService;
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+import com.uas.platform.b2b.support.SystemSession;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by 黄诚天 on 2017-10-12.
+ */
+@Service
+public class VendorPerformanceAssessErpServiceImpl implements VendorPerformanceAssessErpService {
+
+    @Autowired
+    private VendorPerformanceAssessDao vpaDao;
+
+    @Override
+    public List<VendorPerformanceAssess> convertVPA(List<VendorPerformanceAssessErp> vpaErps) {
+        List<VendorPerformanceAssess> vaps = new ArrayList<VendorPerformanceAssess>();
+        long enUU = SystemSession.getUser().getEnterprise().getUu();
+        for (VendorPerformanceAssessErp vpaErp : vpaErps) {
+            VendorPerformanceAssess vpaResult = null;
+            List<VendorPerformanceAssess> list = vpaDao.findByEnUUAndVapId(enUU,vpaErp.getVpa_id());
+            if (!CollectionUtils.isEmpty(list)) {
+                vpaResult = list.get(0);
+            }
+
+            if (vpaResult == null) {// 平台上不存在的新上传上来的物料,新增
+                vaps.add(vpaErp.convert(enUU));
+            } else {// 平台上已经存在的物料,修改
+                //TODO 不需要?
+                VendorPerformanceAssess vpa = vpaErp.convert(enUU);
+                vpa.setVpaId(vpaResult.getVpaId());
+                vaps.add(vpa);
+            }
+        }
+        return vaps;
+    }
+}

+ 713 - 0
src/main/java/com/uas/platform/b2b/model/VendorPerformanceAssess.java

@@ -0,0 +1,713 @@
+package com.uas.platform.b2b.model;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 供应商绩效考核
+ *
+ * @author huangct
+ */
+
+@Entity
+@Table(name = "vendorperformanceassess")
+public class VendorPerformanceAssess implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "vendorperformanceassess_gen")
+    @SequenceGenerator(name = "vendorperformanceassess_gen", sequenceName = "vendorperformanceassess_seq", allocationSize = 1)
+    @Column(name = "id")
+    private Long id;
+
+    /**
+     * 采购员号
+     */
+    @Column(name = "enuu")
+    private Long enUU;
+
+    /**
+     * 采购员企业消信息
+     */
+    @OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
+    @JoinColumn(name = "enuu", insertable = false, updatable = false)
+    private EnterpriseInfo enterprise;
+
+    @Column(name = "vpa_id")
+    private Long vpaId;
+
+    @Column(name = "vpa_code")
+    private String vpaCode;
+
+    @Column(name = "vpa_status")
+    private String vpaStatus;
+
+    @Column(name = "vpa_recordman")
+    private String vpaRecordman;
+
+    @Column(name = "vpa_recorddate")
+    private Date vpaRecorddate;
+
+    @Column(name = "vpa_statuscode")
+    private String vpaStatuscode;
+
+    @Column(name = "vpa_applyman")
+    private String vpaApplyman;
+
+    @Column(name = "vpa_applydep")
+    private String vpaApplydep;
+
+    @Column(name = "vpa_applydate")
+    private Date vpaApplydate;
+
+    @Column(name = "vpa_assessdate")
+    private String vpaAssessdate;
+
+    @Column(name = "vpa_purchasecode")
+    private String vpaPurchasecode;
+
+    @Column(name = "vpa_sqe")
+    private String vpaSqe;
+
+    @Column(name = "vpa_orderteam")
+    private String vpaOrderteam;
+
+    @Column(name = "vpa_vendorcode")
+    private String vpaVendorcode;
+
+    @Column(name = "vpa_vendorname")
+    private String vpaVendorname;
+
+    @Column(name = "vpa_prodkind")
+    private String vpaProdkind;
+
+    @Column(name = "vpa_llpbhgl")
+    private Double vpaLlpbhgl;
+
+    @Column(name = "vpa_sxbll")
+    private Double vpaSxbll;
+
+    @Column(name = "vpa_khsxcs")
+    private Double vpaKhsxcs;
+
+    @Column(name = "vpa_cxzdyc")
+    private Double vpaCxzdyc;
+
+    @Column(name = "vpa_8dhfjsl")
+    private Double vpa8dhfjsl;
+
+    @Column(name = "vpa_ycffl")
+    private Double vpaYcffl;
+
+    @Column(name = "vpa_gfphd")
+    private Double vpaGfphd;
+
+    @Column(name = "vpa_zlzhdf")
+    private Double vpaZlzhdf;
+
+    @Column(name = "vpa_zlqzdf")
+    private Double vpaZlqzdf;
+
+    @Column(name = "vpa_jszc")
+    private Double vpaJszc;
+
+    @Column(name = "vpa_jsbz")
+    private Double vpaJsbz;
+
+    @Column(name = "vpa_jsfx")
+    private Double vpaJsfx;
+
+    @Column(name = "vpa_jszlwzqk")
+    private Double vpaJszlwzqk;
+
+    @Column(name = "vpa_yphgl")
+    private Double vpaYphgl;
+
+    @Column(name = "vpa_gcsl")
+    private Double vpaGcsl;
+
+    @Column(name = "vpa_kkxyq")
+    private Double vpaKkxyq;
+
+    @Column(name = "vpa_wlsffsjszlwt")
+    private Double vpaWlsffsjszlwt;
+
+    @Column(name = "vpa_jszhdf")
+    private Double vpaJszhdf;
+
+    @Column(name = "vpa_jsqzdf")
+    private Double vpaJsqzdf;
+
+    @Column(name = "vpa_cbjj")
+    private Double vpaCbjj;
+
+    @Column(name = "vpa_zftj")
+    private Double vpaZftj;
+
+    @Column(name = "vpa_dyzc")
+    private Double vpaDyzc;
+
+    @Column(name = "vpa_fwzc")
+    private Double vpaFwzc;
+
+    @Column(name = "vpa_cgkfzhdf")
+    private Double vpaCgkfzhdf;
+
+    @Column(name = "vpa_wljf")
+    private Double vpaWljf;
+
+    @Column(name = "vpa_djhcs")
+    private Double vpaDjhcs;
+
+    @Column(name = "vpa_ngpcl")
+    private Double vpaNgpcl;
+
+    @Column(name = "vpa_fwxl")
+    private Double vpaFwxl;
+
+    @Column(name = "vpa_cgzhdf")
+    private Double vpaCgzhdf;
+
+    @Column(name = "vpa_cgjcgkfqzdf")
+    private Double vpaCgjcgkfqzdf;
+
+    @Column(name = "vpa_zjdf")
+    private Double vpaZjdf;
+
+    @Column(name = "vpa_gysqrdf")
+    private String vpaGysqrdf;
+
+    @Column(name = "vpa_brkyy")
+    private String vpaBrkyy;
+
+    @Column(name = "vpa_zlpffj")
+    private String vpaZlpffj;
+
+    @Column(name = "vpa_jspffj")
+    private String vpaJspffj;
+
+    @Column(name = "vpa_cgpffj")
+    private String vpaCgpffj;
+
+    @Column(name = "vpa_auditdate")
+    private Date vpaAuditdate;
+
+    @Column(name = "vpa_auditor")
+    private String vpaAuditor;
+
+    @Column(name = "vpa_jbxxfj")
+    private String vpaJbxxfj;
+
+    @Column(name = "vpa_purchasename")
+    private String vpaPurchasename;
+
+    @Column(name = "vpa_sqename")
+    private String vpaSqename;
+
+    @Column(name = "vpa_ordername")
+    private String vpaOrdername;
+
+    /**
+     * 供应商号
+     */
+    @Column(name = "vpa_veuu")
+    private Long vpaVeuu;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public EnterpriseInfo getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(EnterpriseInfo enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public Long getVpaId() {
+        return vpaId;
+    }
+
+    public void setVpaId(Long vpaId) {
+        this.vpaId = vpaId;
+    }
+
+    public String getVpaCode() {
+        return vpaCode;
+    }
+
+    public void setVpaCode(String vpaCode) {
+        this.vpaCode = vpaCode;
+    }
+
+    public String getVpaStatus() {
+        return vpaStatus;
+    }
+
+    public void setVpaStatus(String vpaStatus) {
+        this.vpaStatus = vpaStatus;
+    }
+
+    public String getVpaRecordman() {
+        return vpaRecordman;
+    }
+
+    public void setVpaRecordman(String vpaRecordman) {
+        this.vpaRecordman = vpaRecordman;
+    }
+
+    public Date getVpaRecorddate() {
+        return vpaRecorddate;
+    }
+
+    public void setVpaRecorddate(Date vpaRecorddate) {
+        this.vpaRecorddate = vpaRecorddate;
+    }
+
+    public String getVpaStatuscode() {
+        return vpaStatuscode;
+    }
+
+    public void setVpaStatuscode(String vpaStatuscode) {
+        this.vpaStatuscode = vpaStatuscode;
+    }
+
+    public String getVpaApplyman() {
+        return vpaApplyman;
+    }
+
+    public void setVpaApplyman(String vpaApplyman) {
+        this.vpaApplyman = vpaApplyman;
+    }
+
+    public String getVpaApplydep() {
+        return vpaApplydep;
+    }
+
+    public void setVpaApplydep(String vpaApplydep) {
+        this.vpaApplydep = vpaApplydep;
+    }
+
+    public Date getVpaApplydate() {
+        return vpaApplydate;
+    }
+
+    public void setVpaApplydate(Date vpaApplydate) {
+        this.vpaApplydate = vpaApplydate;
+    }
+
+    public String getVpaAssessdate() {
+        return vpaAssessdate;
+    }
+
+    public void setVpaAssessdate(String vpaAssessdate) {
+        this.vpaAssessdate = vpaAssessdate;
+    }
+
+    public String getVpaPurchasecode() {
+        return vpaPurchasecode;
+    }
+
+    public void setVpaPurchasecode(String vpaPurchasecode) {
+        this.vpaPurchasecode = vpaPurchasecode;
+    }
+
+    public String getVpaSqe() {
+        return vpaSqe;
+    }
+
+    public void setVpaSqe(String vpaSqe) {
+        this.vpaSqe = vpaSqe;
+    }
+
+    public String getVpaOrderteam() {
+        return vpaOrderteam;
+    }
+
+    public void setVpaOrderteam(String vpaOrderteam) {
+        this.vpaOrderteam = vpaOrderteam;
+    }
+
+    public String getVpaVendorcode() {
+        return vpaVendorcode;
+    }
+
+    public void setVpaVendorcode(String vpaVendorcode) {
+        this.vpaVendorcode = vpaVendorcode;
+    }
+
+    public String getVpaVendorname() {
+        return vpaVendorname;
+    }
+
+    public void setVpaVendorname(String vpaVendorname) {
+        this.vpaVendorname = vpaVendorname;
+    }
+
+    public String getVpaProdkind() {
+        return vpaProdkind;
+    }
+
+    public void setVpaProdkind(String vpaProdkind) {
+        this.vpaProdkind = vpaProdkind;
+    }
+
+    public Double getVpaLlpbhgl() {
+        return vpaLlpbhgl;
+    }
+
+    public void setVpaLlpbhgl(Double vpaLlpbhgl) {
+        this.vpaLlpbhgl = vpaLlpbhgl;
+    }
+
+    public Double getVpaSxbll() {
+        return vpaSxbll;
+    }
+
+    public void setVpaSxbll(Double vpaSxbll) {
+        this.vpaSxbll = vpaSxbll;
+    }
+
+    public Double getVpaKhsxcs() {
+        return vpaKhsxcs;
+    }
+
+    public void setVpaKhsxcs(Double vpaKhsxcs) {
+        this.vpaKhsxcs = vpaKhsxcs;
+    }
+
+    public Double getVpaCxzdyc() {
+        return vpaCxzdyc;
+    }
+
+    public void setVpaCxzdyc(Double vpaCxzdyc) {
+        this.vpaCxzdyc = vpaCxzdyc;
+    }
+
+    public Double getVpa8dhfjsl() {
+        return vpa8dhfjsl;
+    }
+
+    public void setVpa8dhfjsl(Double vpa8dhfjsl) {
+        this.vpa8dhfjsl = vpa8dhfjsl;
+    }
+
+    public Double getVpaYcffl() {
+        return vpaYcffl;
+    }
+
+    public void setVpaYcffl(Double vpaYcffl) {
+        this.vpaYcffl = vpaYcffl;
+    }
+
+    public Double getVpaGfphd() {
+        return vpaGfphd;
+    }
+
+    public void setVpaGfphd(Double vpaGfphd) {
+        this.vpaGfphd = vpaGfphd;
+    }
+
+    public Double getVpaZlzhdf() {
+        return vpaZlzhdf;
+    }
+
+    public void setVpaZlzhdf(Double vpaZlzhdf) {
+        this.vpaZlzhdf = vpaZlzhdf;
+    }
+
+    public Double getVpaZlqzdf() {
+        return vpaZlqzdf;
+    }
+
+    public void setVpaZlqzdf(Double vpaZlqzdf) {
+        this.vpaZlqzdf = vpaZlqzdf;
+    }
+
+    public Double getVpaJszc() {
+        return vpaJszc;
+    }
+
+    public void setVpaJszc(Double vpaJszc) {
+        this.vpaJszc = vpaJszc;
+    }
+
+    public Double getVpaJsbz() {
+        return vpaJsbz;
+    }
+
+    public void setVpaJsbz(Double vpaJsbz) {
+        this.vpaJsbz = vpaJsbz;
+    }
+
+    public Double getVpaJsfx() {
+        return vpaJsfx;
+    }
+
+    public void setVpaJsfx(Double vpaJsfx) {
+        this.vpaJsfx = vpaJsfx;
+    }
+
+    public Double getVpaJszlwzqk() {
+        return vpaJszlwzqk;
+    }
+
+    public void setVpaJszlwzqk(Double vpaJszlwzqk) {
+        this.vpaJszlwzqk = vpaJszlwzqk;
+    }
+
+    public Double getVpaYphgl() {
+        return vpaYphgl;
+    }
+
+    public void setVpaYphgl(Double vpaYphgl) {
+        this.vpaYphgl = vpaYphgl;
+    }
+
+    public Double getVpaGcsl() {
+        return vpaGcsl;
+    }
+
+    public void setVpaGcsl(Double vpaGcsl) {
+        this.vpaGcsl = vpaGcsl;
+    }
+
+    public Double getVpaKkxyq() {
+        return vpaKkxyq;
+    }
+
+    public void setVpaKkxyq(Double vpaKkxyq) {
+        this.vpaKkxyq = vpaKkxyq;
+    }
+
+    public Double getVpaWlsffsjszlwt() {
+        return vpaWlsffsjszlwt;
+    }
+
+    public void setVpaWlsffsjszlwt(Double vpaWlsffsjszlwt) {
+        this.vpaWlsffsjszlwt = vpaWlsffsjszlwt;
+    }
+
+    public Double getVpaJszhdf() {
+        return vpaJszhdf;
+    }
+
+    public void setVpaJszhdf(Double vpaJszhdf) {
+        this.vpaJszhdf = vpaJszhdf;
+    }
+
+    public Double getVpaJsqzdf() {
+        return vpaJsqzdf;
+    }
+
+    public void setVpaJsqzdf(Double vpaJsqzdf) {
+        this.vpaJsqzdf = vpaJsqzdf;
+    }
+
+    public Double getVpaCbjj() {
+        return vpaCbjj;
+    }
+
+    public void setVpaCbjj(Double vpaCbjj) {
+        this.vpaCbjj = vpaCbjj;
+    }
+
+    public Double getVpaZftj() {
+        return vpaZftj;
+    }
+
+    public void setVpaZftj(Double vpaZftj) {
+        this.vpaZftj = vpaZftj;
+    }
+
+    public Double getVpaDyzc() {
+        return vpaDyzc;
+    }
+
+    public void setVpaDyzc(Double vpaDyzc) {
+        this.vpaDyzc = vpaDyzc;
+    }
+
+    public Double getVpaFwzc() {
+        return vpaFwzc;
+    }
+
+    public void setVpaFwzc(Double vpaFwzc) {
+        this.vpaFwzc = vpaFwzc;
+    }
+
+    public Double getVpaCgkfzhdf() {
+        return vpaCgkfzhdf;
+    }
+
+    public void setVpaCgkfzhdf(Double vpaCgkfzhdf) {
+        this.vpaCgkfzhdf = vpaCgkfzhdf;
+    }
+
+    public Double getVpaWljf() {
+        return vpaWljf;
+    }
+
+    public void setVpaWljf(Double vpaWljf) {
+        this.vpaWljf = vpaWljf;
+    }
+
+    public Double getVpaDjhcs() {
+        return vpaDjhcs;
+    }
+
+    public void setVpaDjhcs(Double vpaDjhcs) {
+        this.vpaDjhcs = vpaDjhcs;
+    }
+
+    public Double getVpaNgpcl() {
+        return vpaNgpcl;
+    }
+
+    public void setVpaNgpcl(Double vpaNgpcl) {
+        this.vpaNgpcl = vpaNgpcl;
+    }
+
+    public Double getVpaFwxl() {
+        return vpaFwxl;
+    }
+
+    public void setVpaFwxl(Double vpaFwxl) {
+        this.vpaFwxl = vpaFwxl;
+    }
+
+    public Double getVpaCgzhdf() {
+        return vpaCgzhdf;
+    }
+
+    public void setVpaCgzhdf(Double vpaCgzhdf) {
+        this.vpaCgzhdf = vpaCgzhdf;
+    }
+
+    public Double getVpaCgjcgkfqzdf() {
+        return vpaCgjcgkfqzdf;
+    }
+
+    public void setVpaCgjcgkfqzdf(Double vpaCgjcgkfqzdf) {
+        this.vpaCgjcgkfqzdf = vpaCgjcgkfqzdf;
+    }
+
+    public Double getVpaZjdf() {
+        return vpaZjdf;
+    }
+
+    public void setVpaZjdf(Double vpaZjdf) {
+        this.vpaZjdf = vpaZjdf;
+    }
+
+    public String getVpaGysqrdf() {
+        return vpaGysqrdf;
+    }
+
+    public void setVpaGysqrdf(String vpaGysqrdf) {
+        this.vpaGysqrdf = vpaGysqrdf;
+    }
+
+    public String getVpaBrkyy() {
+        return vpaBrkyy;
+    }
+
+    public void setVpaBrkyy(String vpaBrkyy) {
+        this.vpaBrkyy = vpaBrkyy;
+    }
+
+    public String getVpaZlpffj() {
+        return vpaZlpffj;
+    }
+
+    public void setVpaZlpffj(String vpaZlpffj) {
+        this.vpaZlpffj = vpaZlpffj;
+    }
+
+    public String getVpaJspffj() {
+        return vpaJspffj;
+    }
+
+    public void setVpaJspffj(String vpaJspffj) {
+        this.vpaJspffj = vpaJspffj;
+    }
+
+    public String getVpaCgpffj() {
+        return vpaCgpffj;
+    }
+
+    public void setVpaCgpffj(String vpaCgpffj) {
+        this.vpaCgpffj = vpaCgpffj;
+    }
+
+    public Date getVpaAuditdate() {
+        return vpaAuditdate;
+    }
+
+    public void setVpaAuditdate(Date vpaAuditdate) {
+        this.vpaAuditdate = vpaAuditdate;
+    }
+
+    public String getVpaAuditor() {
+        return vpaAuditor;
+    }
+
+    public void setVpaAuditor(String vpaAuditor) {
+        this.vpaAuditor = vpaAuditor;
+    }
+
+    public String getVpaJbxxfj() {
+        return vpaJbxxfj;
+    }
+
+    public void setVpaJbxxfj(String vpaJbxxfj) {
+        this.vpaJbxxfj = vpaJbxxfj;
+    }
+
+    public String getVpaPurchasename() {
+        return vpaPurchasename;
+    }
+
+    public void setVpaPurchasename(String vpaPurchasename) {
+        this.vpaPurchasename = vpaPurchasename;
+    }
+
+    public String getVpaSqename() {
+        return vpaSqename;
+    }
+
+    public void setVpaSqename(String vpaSqename) {
+        this.vpaSqename = vpaSqename;
+    }
+
+    public String getVpaOrdername() {
+        return vpaOrdername;
+    }
+
+    public void setVpaOrdername(String vpaOrdername) {
+        this.vpaOrdername = vpaOrdername;
+    }
+
+    public Long getVpaVeuu() {
+        return vpaVeuu;
+    }
+
+    public void setVpaVeuu(Long vpaVeuu) {
+        this.vpaVeuu = vpaVeuu;
+    }
+}

+ 8 - 0
src/main/java/com/uas/platform/b2b/search/SearchService.java

@@ -512,4 +512,12 @@ public interface SearchService {
 	 * @return
 	 */
     SPage<SaleTenderQuestion> searchSaleTenderQuestion(String keyword, PageParams pageParams);
+
+	/**
+	 * 获取供应商绩效考核
+	 * @param keyword
+	 * @param pageParams
+	 * @return
+	 */
+	SPage<VendorPerformanceAssess> searchVendorPerformanceAssesss(String keyword, PageParams pageParams);
 }

+ 13 - 0
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -186,6 +186,9 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 	@Autowired
 	private KindService kindService;
 
+	@Autowired
+	private VendorPerformanceAssessDao vpaDao;
+
 	/**
 	 * 联想词size
 	 */
@@ -1356,4 +1359,14 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 		return null;
 	}
 
+	/**
+	 * 供应商绩效考核
+	 */
+	@Override
+	public SPage<VendorPerformanceAssess> searchVendorPerformanceAssesss(String keyword, PageParams pageParams) {
+		SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.VENDORPERFORMANCEASSESS, pageParams);
+		List<VendorPerformanceAssess> content = vpaDao.findAll(idsPage.getContent());
+		sortByProperty(content, VendorPerformanceAssess.class, "id", idsPage.getContent());
+		return toSPage(idsPage, content);
+	}
 }

+ 32 - 0
src/main/java/com/uas/platform/b2b/service/VendorPerformanceAssessService.java

@@ -0,0 +1,32 @@
+package com.uas.platform.b2b.service;
+
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+
+import java.util.List;
+
+public interface VendorPerformanceAssessService {
+
+	/**
+	 * 批量保存供应商绩效考核信息
+	 *
+	 * @param vpas
+	 * @return
+	 */
+	public List<VendorPerformanceAssess> save(List<VendorPerformanceAssess> vpas);
+
+
+	/**
+	 * 供应商绩效考核下载成功,更新下载状态
+	 * 
+	 * @param idArray
+	 */
+	public void onVPADownSuccess(String[] idArray);
+
+	public VendorPerformanceAssess findById(Long id);
+
+	List<Object[]> getVpaCount(String category);
+
+	public List<Long> getUnreadIds(String category);
+
+    void setReadByIds(String sale, Long[] sourceIds);
+}

+ 111 - 0
src/main/java/com/uas/platform/b2b/service/impl/VendorPerformanceAssessServiceImpl.java

@@ -0,0 +1,111 @@
+package com.uas.platform.b2b.service.impl;
+
+import com.uas.platform.b2b.core.util.ThreadTask;
+import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.dao.UserOrderDao;
+import com.uas.platform.b2b.dao.VendorPerformanceAssessDao;
+import com.uas.platform.b2b.model.User;
+import com.uas.platform.b2b.model.UserOrders;
+import com.uas.platform.b2b.model.VendorPerformanceAssess;
+import com.uas.platform.b2b.service.VendorPerformanceAssessService;
+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.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by 黄诚天 on 2017-10-12.
+ */
+@Service
+public class VendorPerformanceAssessServiceImpl implements VendorPerformanceAssessService {
+    @Autowired
+    private VendorPerformanceAssessDao vpaDao;
+
+    @Autowired
+    private UserOrderDao userOrderDao;
+
+    @Autowired
+    private UserDao userDao;
+
+    @Override
+    public List<VendorPerformanceAssess> save(List<VendorPerformanceAssess> vpas) {
+        //事务
+        List<VendorPerformanceAssess> newVpas = vpaDao.save(vpas);
+        saveUserOrder(newVpas);
+        return newVpas;
+    }
+
+    private void saveUserOrder(final List<VendorPerformanceAssess> newVpas) {
+        ThreadTask.getInstance().execute(new Runnable() {
+            @Override
+            public void run() {
+                List<UserOrders> list = new ArrayList<>();
+                for (VendorPerformanceAssess vpa : newVpas) {
+                    List<User> users = userDao.findByEnUU(vpa.getVpaVeuu());
+                    UserOrders userOrders;
+                    for (User user : users) {
+                        if (user == null) {
+                            continue;
+                        }
+                        userOrders = new UserOrders(user.getUserUU(), vpa.getVpaVeuu(), vpa.getId(), "sale", "vendorperformanceassess");
+                        list.add(userOrders);
+                    }
+                }
+                userOrderDao.save(list);
+            }
+        });
+    }
+
+    @Override
+    public void onVPADownSuccess(String[] idArray) {
+        for (String id : idArray) {
+            VendorPerformanceAssess vpa = vpaDao.findOne(Long.parseLong(id));
+            if (vpa != null) {
+                //下载状态暂无
+                //vpa.setDownloadstatus(Status.DOWNLOADED.value());
+                vpaDao.save(vpa);
+            }
+        }
+    }
+
+    @Override
+    public VendorPerformanceAssess findById(Long id) {
+        return vpaDao.findOne(id);
+    }
+
+    @Override
+    public List<Object[]> getVpaCount(String category) {
+        List<Long> ids = getUnreadIds(category);
+        List<Object[]> objs = new ArrayList<>();
+        if (CollectionUtils.isEmpty(ids)){
+            return objs;
+        }
+        objs.add(new Object[]{ids.size(), "1"});
+//        return vpaDao.getUnreadCountEveryStatus(ids);
+        return objs;
+    }
+
+    @Override
+    public List<Long> getUnreadIds(String category) {
+        return userOrderDao.getUnreadIds(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "vendorperformanceassess", category);
+    }
+
+    @Override
+    @Transactional
+    public void setReadByIds(String category, Long[] sourceIds) {
+        Long[] temp = sourceIds;
+        if (sourceIds == null || sourceIds.length == 0){
+            List<Long> ids = userOrderDao.getUnreadIds(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "vendorperformanceassess", category);
+            if (CollectionUtils.isEmpty(ids)){
+                return;
+            }
+            temp = ids.toArray(new Long[ids.size()]);
+        }
+        userOrderDao.setReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "vendorperformanceassess", category, (short) Status.READ.value(), temp);
+    }
+}

+ 14 - 0
src/main/webapp/resources/js/common/services.js

@@ -270,6 +270,20 @@ define(['angular', 'toaster', 'big'], function(angular, big) {
             user: $resource('vendor/user', {}),
             exportXls: $resource('vendor/customer/xls/permission', {})
         };
+    }]).factory('VendorPerformanceAssessService', ['$resource', function($resource) {
+        return $resource('vendorPerformanceAssess/info/search', {}, {
+            getAll: {
+                url: 'vendorPerformanceAssess/info/search',
+                method: 'GET'
+            },
+            setRead: {
+                url: 'vendorPerformanceAssess/setRead',
+                method: 'POST'
+            },getDetail: {
+                url: 'vendorPerformanceAssess/:id/info',
+                method: 'GET'
+            }
+        });
     }]).factory('AccountUser', ['$resource', function($resource) {
         return $resource('account/user/:uu', {}, {
             findUsers: {

+ 78 - 0
src/main/webapp/resources/js/index/app.js

@@ -726,6 +726,14 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             url: "/productmatches",
             templateUrl: "static/tpl/index/approvalFlow/productmatches.html",
             controller: 'ProductmatchesCtrl'
+        }).state('sale.vendorPerformanceAssess', {
+            url: "/vendorPerformanceAssess",
+            templateUrl: "static/tpl/index/sale/vendorPerformanceAssess.html",
+            controller: 'VendorPerformanceAssessCtrl'
+        }).state('sale.vendorPerformanceAssess_detail', {
+            url: "/vendorPerformanceAssess/:id",
+            templateUrl: "static/tpl/index/sale/vendorPerformanceAssess_detail.html",
+            controller: 'VendorPerformanceAssessDetailCtrl'
         });
         $urlRouterProvider.otherwise('/index');
     }]);
@@ -1447,6 +1455,9 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 case 'product':
                     $scope.unread.product = 0;
                     break;
+                case 'vendorPerformanceAssess':
+                    $scope.unread.vendorPerformanceAssess = 0;
+                    break;
                 case 'customer':
                     $scope.unread.customer = 0;
                     break;
@@ -21956,5 +21967,72 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 
     }]);
 
+    // 供应商绩效考核
+    app.controller('VendorPerformanceAssessCtrl', ['$scope', 'VendorPerformanceAssessService', 'BaseService', 'AuthenticationService', 'ngTableParams', '$modal', 'toaster', 'Vendor', 'AccountUser', 'CurrentRole', function ($scope, VendorPerformanceAssessService, BaseService, AuthenticationService, ngTableParams, $modal, toaster, Vendor, AccountUser, CurrentRole) {
+        BaseService.scrollBackToTop();
+
+        $scope.vendorPerformanceAssessParams = new ngTableParams({
+            page: 1,
+            count: 20
+        }, {
+            total: 0,
+            counts: [5, 10, 25, 50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                var pageParams = params.url();
+                pageParams.keyword = $scope.keyword;
+                VendorPerformanceAssessService.get(BaseService.parseParams(pageParams), function (page) {
+                    $scope.loading = false;
+                    if (page) {
+                        params.total(page.totalElement);
+                        $defer.resolve(page.content);
+                        $scope.keywordXls = pageParams.keyword;
+                    }
+                    $scope.totalCount = page.totalElement;
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
+                });
+            }
+        });
+
+        //设置消息已读
+        var setOrdersRead = function () {
+            var sourceId = [];
+            VendorPerformanceAssessService.setRead({}, sourceId, function (message) {
+                // $scope.getUnreadIds();
+            });
+        };
+        setOrdersRead();
+
+        // 搜索框回车
+        $scope.onSearch = function (keyword) {
+            $scope.vendorPerformanceAssessParams.page(1);
+            $scope.vendorPerformanceAssessParams.reload();
+            $scope.tip = keyword;
+        };
+
+        // 查看详情
+        $scope.viewDetail = function (id) {
+            window.location.hash = "#/sale/vendorPerformanceAssess/" + id;
+        }
+
+    }]);
+
+    // 客户详情
+    app.controller('VendorPerformanceAssessDetailCtrl', ['$scope', 'toaster', '$stateParams', 'VendorPerformanceAssessService', '$modal', 'ngTableParams', 'BaseService', '$rootScope', 'AuthenticationService', function ($scope, toaster, $stateParams, VendorPerformanceAssessService, $modal, ngTableParams, BaseService, $rootScope, AuthenticationService) {
+        BaseService.scrollBackToTop();
+        var loadData = function () {
+            VendorPerformanceAssessService.getDetail({id: $stateParams.id}, {}, function (data) {
+                $scope.vendorPerformanceAssess = data;
+                }, function (response) {
+                $scope.loading = false;
+                toaster.pop('error', '数据加载失败', response.data);
+            });
+        };
+        loadData();
+    }]);
+
+
     return app;
 });

+ 3 - 0
src/main/webapp/resources/tpl/index/sale/left.html

@@ -6,6 +6,9 @@
 		<ul class="list-unstyled">
 			<li ui-sref-active="active"><a ui-sref="sale.customer" ng-click="setOrdersRead('customer')"><em class="new-dot" ng-if="unread.customer > 0"></em>客户资料</a></li>
 		</ul>
+		<ul class="list-unstyled">
+			<li ui-sref-active="active"><a ui-sref="sale.vendorPerformanceAssess" ng-click="setOrdersRead('vendorPerformanceAssess')"><em class="new-dot" ng-if="unread.vendorPerformanceAssess > 0"></em>绩效考核</a></li>
+		</ul>
 		<ul class="list-unstyled">
 			<li ui-sref-active="active"><a ui-sref="sale.prodList" ng-click="setOrdersRead('product')"><em class="new-dot" ng-if="unread.product > 0"></em>产品导入</a></li>
 		</ul>

+ 139 - 0
src/main/webapp/resources/tpl/index/sale/vendorPerformanceAssess.html

@@ -0,0 +1,139 @@
+<style>
+#customer-tab .header th,#customer-tab tbody tr.header,#customer-tab tbody tr.header th{
+	height: 38px;
+	text-align: center;
+	padding: 0;
+	line-height: 38px;
+	border-bottom-width: 0;
+	/*background: #f5f5f5;*/
+	border: none;
+	font-size: 14px;
+}
+#customer-tab tbody tr.header:hover{
+	border: none;
+}
+.pane .pane-header{
+	border-radius: 0px 0 0px 0px;
+	box-shadow: 0 0 3px #ccc;
+	background: linear-gradient(to top, #e7e7e7 0%,#ffffff 100%);
+	height: 40px;
+	font-size: 14px;
+	line-height: 40px;
+}
+.table>tbody+tbody{
+	border-top: none;
+}
+#customer-tab tbody td{
+	border: none;
+}
+#customer-tab .pane-body{
+	padding: 0;
+}
+#customer-tab tbody tr{
+	background: none;
+	height: 80px;
+	border-top: #e8e8e8 1px solid;
+}
+#customer-tab tbody tr td{
+	text-align: center;
+	line-height: 20px;
+	vertical-align: inherit;
+	font-size: 14px;
+}
+#customer-tab tbody tr:hover{
+	border: #d32526 2px solid;
+}
+#customer-tab .form-horizontal .form-control{
+	height: 36px;
+	line-height: 36px;
+	border: #327ebe 1px solid;
+	border-radius: 0px;
+	font-size: 14px;
+}
+#customer-tab .form-horizontal .form-group{
+	margin: 0;
+	padding: 10px 0;
+}
+#customer-tab .form-horizontal .form-group .input-group-addon{
+	width: 70px;
+	height: 36px;
+	display: inline-block;
+	background: #327ebe;
+	font-size: 16px;
+	text-align: center;
+	line-height: 36px;
+	color: #fff;
+	padding: 0;
+	border: none;
+	border-radius: 0;
+	position: absolute;
+	top: 10px;
+	right: 0;
+}
+#customer-tab table tr td a{
+	color: #5078cb;
+}
+#customer-tab table tr td a:hover{
+	color: #d32526 !important;
+}
+.form-horizontal #topSearch{
+	font-size: 16px;
+	line-height: 55px;
+}
+#customer-tab table tr td a.color32{
+	color: #323232;
+}
+#customer-tab table thead th:hover{
+	background: none;
+}
+</style>
+<div class="loading in" ng-class="{'in': loading}">
+	<i></i>
+</div>
+<div class="pane base-info" style="/*max-height: 900px;overflow-y: auto; overflow-x: hidden;*/" id="customer-tab">
+	<div class="pub-com_head">
+		<span>绩效考核</span>
+		<div class="p-right">
+			<a ng-click="exportXls()" target="_self" class="text-simple bule"><i class="fa fa-file-excel-o fa-fw"></i>导出</a>
+		</div>
+	</div>
+	<form class="form-horizontal">
+		<div class="form-group">
+			<div class="col-md-6 col-sm-6">
+				<div id="topSearch" style="float: left">
+					<span class="text-muted"><i class="fa fa-search fa-lg"></i> 搜索"{{tip}}",为您找到结果:</span>
+					单据{{vendorPerformanceAssessParams.total()}}条
+				</div>
+			</div>
+			<div class="col-md-6 col-sm-6">
+				<div class="form-group form-group-sm has-feedback">
+					<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入单据编号搜索" />
+               	 	<a class="btn  input-group-addon" ng-click="onSearch()">搜索</a>
+                </div>
+			</div>
+		</div>
+	</form>
+	<div class="pane-body">
+		<table class="table table-bordered table-striped table-hover"
+			ng-table="vendorPerformanceAssessParams">
+			<thead>
+				<tr class="header">
+					<th width="80">考核单号</th>
+					<th width="180">考核单位</th>
+					<th width="180">考核期间</th>
+					<th width="180">录入日期</th>
+					<th width="180">考核人</th>
+				</tr>
+			</thead>
+			<tbody ng-repeat="vendorPerformanceAssess in $data" ng-mouseenter="showUserInfo(vendorPerformanceAssess,true)" ng-mouseleave="showUserInfo(vendorPerformanceAssess,false)">
+					<tr>
+						<td class="text-center"><a ng-click="viewDetail(vendorPerformanceAssess.id)" title="查看绩效考核详情" ng-bind="::vendorPerformanceAssess.vpaCode" class="color32 order-detail"></a></td>
+						<td class="text-center" ng-bind="::vendorPerformanceAssess.enterprise.enName"></td>
+						<td class="text-center" ng-bind="::vendorPerformanceAssess.vpaAssessdate"></td>
+						<td class="text-center" ng-bind="::vendorPerformanceAssess.vpaApplydate | date: 'yyyy年MM月dd日 hh:mm'"></td>
+						<td class="text-center" ng-bind="::vendorPerformanceAssess.vpaApplyman"></td>
+					</tr>
+			</tbody>
+		</table>
+	</div>
+</div>

+ 251 - 0
src/main/webapp/resources/tpl/index/sale/vendorPerformanceAssess_detail.html

@@ -0,0 +1,251 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="UTF-8"/>
+	<title>绩效考核详情</title>
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+	<meta name="Keywords" content=""/>
+	<meta name="Description" content=""/>
+	<link rel="stylesheet" href="static/css/add.css "/>
+</head>
+<body>
+<style>
+    .com_title01 a{
+        float: right;
+        font-size: 14px;
+        color: #5078cb;
+        line-height: 50px;
+        margin-right: 10px;
+    }
+    .pro-add-data02{
+        display: none;
+        margin-top: 0;
+    }
+    .pro-add-data02.open{
+        display: inline-block;
+    }
+    .pro-add-data02 table tbody tr td{
+        padding: 15px;
+    }
+
+    .pro-add-data dl dd div.fl {
+        width: 225px;
+    }
+    .pro-add-data dl dd div.fr {
+        width: 214px;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+    .pro-add-data dl dd {
+        width: auto;
+        margin: 0 auto;
+        height: 34px;
+        line-height: 34px;
+        font-size: 14px;
+        margin-top: 10px;
+        display: inline-block;
+    }
+    .float-right {
+        float: right;
+        margin-right: 35px;
+    }
+</style>
+<div class="wrap">
+	<div class="content">
+		<div class="com_head"><span>绩效考核详情</span><span class="float-right">申请日期:{{vendorPerformanceAssess.vpaApplydate | date: 'yyyy年MM月dd日 hh:mm'}}</span><span class="float-right">申请人:{{vendorPerformanceAssess.vpaApplyman}}</span></div>
+		<!--供应商绩效考核详情-->
+        <div class="pro-add-data clearfix">
+            <div class="com_title01 sty01"><span>基本信息</span></div>
+            <dl>
+                <dd>
+                    <div class="fl">单据编号:</div>
+                    <div class="fr grey">{{vendorPerformanceAssess.vpaCode}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">考核单位:</div>
+                    <div class="fr grey" title="{{vendorPerformanceAssess.enterprise.enName}}">{{vendorPerformanceAssess.enterprise.enName}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">考核期间:</div>
+                    <div class="fr grey">{{vendorPerformanceAssess.vpaAssessdate}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">采购限单:</div>
+                    <div class="fr grey" title="{{vendorPerformanceAssess.vpaPurchasename}}">{{vendorPerformanceAssess.vpaPurchasename}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">SQE:</div>
+                    <div class="fr grey" title="{{vendorPerformanceAssess.vpaSqename}}">{{vendorPerformanceAssess.vpaSqename}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">物料认定:</div>
+                    <div class="fr grey" title="{{vendorPerformanceAssess.vpaOrdername}}">{{vendorPerformanceAssess.vpaOrdername}}</div>
+                </dd>
+
+                <dd>
+                    <div class="fl">物料类别:</div>
+                    <div class="fr grey" title="{{vendorPerformanceAssess.vpaProdkind}}">{{vendorPerformanceAssess.vpaProdkind}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">审核日期:</div>
+                    <div class="fr grey">{{vendorPerformanceAssess.vpaAuditdate | date: 'yyyy年MM月dd日 hh:mm'}}</div>
+                </dd>
+                <dd>
+                    <div class="fl">审核人:</div>
+                    <div class="fr grey" title="{{vendorPerformanceAssess.vpaAuditor}}">{{vendorPerformanceAssess.vpaAuditor}}</div>
+                </dd>
+
+            </dl>
+            <div class="com_title01"><span>质量评分</span></div>
+            <div class="supply-list01 pro-info clearfix">
+                <dl>
+                    <dd>
+                        <div class="fl">来料批不合格率(15分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaLlpbhgl}}</div>
+                    </dd>
+
+                    <dd>
+                        <div class="fl">上线不良率(25分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaSxbll}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">客户失效次数(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaKhsxcs}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">产线重大异常(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaCxzdyc}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">8D回复及时率(5分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpa8dhfjsl}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">异常复发率(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaYcffl}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">供方配合度(25分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaGfphd}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">质量综合得分:</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaZlzhdf}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">质量权重得分(30%):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaZlqzdf}}</div>
+                    </dd>
+                </dl>
+            </div>
+            <div class="com_title01"><span>技术评分</span><</div>
+            <div class="supply-list01 pro-info clearfix">
+                <dl>
+                    <dd>
+                        <div class="fl">技术支持(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaJszc}}</div>
+                    </dd>
+
+                    <dd>
+                        <div class="fl">技术标准(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaJsbz}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">技术分析(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaJsfx}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">技术资料完整情况(15分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaJszlwzqk}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">样品合格率(5分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaYphgl}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">研发/工程实力(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaGcsl}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">可靠性要求/条件(25分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaKkxyq}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">物料是否发生技术质量问题(20分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaWlsffsjszlwt}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">技术综合得分:</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaJszhdf}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">技术权重得分(30%):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaJsqzdf}}</div>
+                    </dd>
+                </dl>
+            </div>
+            <div class="com_title01"><span>采购评分</span></div>
+            <div class="supply-list01 pro-info clearfix">
+                <dl>
+                    <dd>
+                        <div class="fl">成本降价(50分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaCbjj}}</div>
+                    </dd>
+
+                    <dd>
+                        <div class="fl">支付条件(20分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaZftj}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">打样支持(15分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaDyzc}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">服务支持(15分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaFwzc}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">采购开发综合得分:</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaCgkfzhdf}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">物料交付(50分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaWljf}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">停线/调计划次数(30分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaDjhcs}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">NG品处理(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaNgpcl}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">服务响应(10分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaFwxl}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">采购综合得分:</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaCgzhdf}}</div>
+                    </dd>
+                    <dd>
+                        <div class="fl">采购及采购开发权重得分(各20%):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaCgjcgkfqzdf}}</div>
+                    </dd>
+                </dl>
+            </div>
+            <div class="com_title01"><span>总评</span></div>
+            <div class="supply-list01 pro-info clearfix">
+                <dl>
+                    <dd>
+                        <div class="fl">总计得分):</div>
+                        <div class="fr grey">{{vendorPerformanceAssess.vpaZjdf}}</div>
+                    </dd>
+                </dl>
+            </div>
+        </div>
+	</div>
+</div>
+</body>
+</html>