Browse Source

采购单状态更新时,更新消息数量统计。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10061 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 years ago
parent
commit
186c7cd704

+ 6 - 3
src/main/java/com/uas/platform/b2b/erp/controller/VendorRateController.java

@@ -2,7 +2,6 @@ package com.uas.platform.b2b.erp.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.uas.account.support.Page;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.erp.model.*;
@@ -20,6 +19,7 @@ import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.search.b2b.model.MultiValue;
 import com.uas.search.b2b.model.PageParams;
 import com.uas.search.b2b.model.Sort;
@@ -28,7 +28,10 @@ import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.*;
+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;
@@ -218,7 +221,7 @@ public class VendorRateController {
 	@RequestMapping(value = "/invite", method = RequestMethod.POST)
 	private ModelMap invite(@RequestParam("data")String data) throws UnsupportedEncodingException {
 		String formStore = URLDecoder.decode(data, "UTF-8");
-		InvitationRecord record = JSONObject.parseObject(formStore, InvitationRecord.class);
+		InvitationRecord record = FlexJsonUtils.fromJson(formStore, InvitationRecord.class);
 		return invitationRecordService.invite(record);
 	}
 

+ 4 - 4
src/main/java/com/uas/platform/b2b/erp/model/Prod.java

@@ -1,12 +1,12 @@
 package com.uas.platform.b2b.erp.model;
 
-import java.util.Date;
-
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
 
+import java.util.Date;
+
 /**
  * ERP系统的产品
  * 
@@ -300,10 +300,10 @@ public class Prod {
 		// 默认开启关闭状态都是开启
 		product.setIsPurchase(Constant.YES);
 		product.setIsSale(Constant.YES);
-		if (enter.getProdpurc().equals(Constant.NO)) {
+		if (null != enter.getProdpurc() && enter.getProdpurc().equals(Constant.NO)) {
 			product.setIsPurchase(Constant.NO);
 		}
-		if (enter.getProdsale().equals(Constant.NO)) {
+		if (null != enter.getProdsale() && enter.getProdsale().equals(Constant.NO)) {
 			product.setIsSale(Constant.NO);
 		}
 		product.setIsPubsale(this.pr_ispubsale);

+ 19 - 43
src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java

@@ -1,57 +1,17 @@
 package com.uas.platform.b2b.service.impl;
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-
 import com.uas.account.entity.RequsetStatus;
 import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.CartDetailDao;
-import com.uas.platform.b2b.dao.ComponentDao;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.ProductMatchResultDao;
-import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
-import com.uas.platform.b2b.dao.UserBaseInfoDao;
-import com.uas.platform.b2b.dao.VendorDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseOrderSaveReleaseEvent;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Cart;
-import com.uas.platform.b2b.model.CartDetail;
-import com.uas.platform.b2b.model.Component;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.EnterpriseInfo;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.ProductMatchResult;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderAllItem;
-import com.uas.platform.b2b.model.UserBaseInfo;
-import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.BaseInfoService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
-import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
-import com.uas.platform.b2b.temporary.model.NewPurcOrder;
-import com.uas.platform.b2b.temporary.model.OrderItems;
-import com.uas.platform.b2b.temporary.model.PartStatus;
-import com.uas.platform.b2b.temporary.model.ProdInfo;
-import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
+import com.uas.platform.b2b.temporary.model.*;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
@@ -61,6 +21,17 @@ 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.apache.commons.collections.CollectionUtils;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @Service
 public class BaseInfoServiceImpl implements BaseInfoService {
@@ -97,6 +68,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 	@Autowired
 	private ProductMatchResultDao productMatchResultDao;
 
+	@Autowired
+	private PagingReleaseDetailDao pagingReleaseDetailDao;
+
 	/**
 	 * 批量导入物料资料
 	 */
@@ -586,6 +560,8 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 		List<PurchaseOrderAllItem> orderAllItems = purchaseOrderAllItemDao.save(orderItems);
 		// 生成消息
 		ContextUtils.publishEvent(new PurchaseOrderSaveReleaseEvent(PurchaseOrderAllItem.distinct(orderAllItems)));
+		// 对接收人来说是销售订单 ,新增不传旧单据状态
+		pagingReleaseDetailDao.updateReleaseCountBySetOrderStatus("purc$orders", "sale", null);
 		return orderAllItems;
 	}
 

+ 6 - 4
src/main/java/com/uas/platform/b2b/service/impl/CartServiceImpl.java

@@ -1,10 +1,7 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.CartDao;
-import com.uas.platform.b2b.dao.CartDetailDao;
-import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
-import com.uas.platform.b2b.dao.VendorDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseOrderSaveReleaseEvent;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.CartService;
@@ -49,6 +46,9 @@ public class CartServiceImpl implements CartService {
 	@Autowired
 	private VendorDao vendorDao;
 
+	@Autowired
+	private PagingReleaseDetailDao pagingReleaseDetailDao;
+
 	@Override
 	public SPage<Cart> getCartList(PageParams params, String keyword) {
 		SPage<Cart> carts = new SPage<Cart>();
@@ -119,6 +119,8 @@ public class CartServiceImpl implements CartService {
 		}
 		List<PurchaseOrderAllItem> orderItem = purchaseOrderAllItemDao.save(orderItems);
 		ContextUtils.publishEvent(new PurchaseOrderSaveReleaseEvent(PurchaseOrderAllItem.distinct(orderItem)));
+		// 对接收人来说是销售订单 ,新增不传旧单据状态
+		pagingReleaseDetailDao.updateReleaseCountBySetOrderStatus("purc$orders", "sale", null);
 		cart.setStatus(Status.ENABLED.value());
 		cartDao.save(cart);
 		logger.log("平台新增采购单", "新增了一张采购单(" + orderItem.get(0).getOrder().getId() + ")",

+ 8 - 4
src/main/java/com/uas/platform/b2b/service/impl/PagingReleaseDetailServiceImpl.java

@@ -30,8 +30,10 @@ public class PagingReleaseDetailServiceImpl implements PagingReleaseDetailServic
                 releaseDetail.setReadDate(new Date());
                 pagingReleaseDetailDao.save(releaseDetail);
                 PagingReleaseDetail detail = pagingReleaseDetailDao.findOne(releaseDetail.getId());
-                // 调用存储过程更新消息数量表,每条参数不一样所以需要单条保存
-                pagingReleaseDetailDao.updateReleaseCountBySetReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory());
+                if (detail.getPagingRelease().getTable() != null && detail.getPagingRelease().getCategory() != null) {
+                    // 调用存储过程更新消息数量表,每条参数不一样所以需要单条保存
+                    pagingReleaseDetailDao.updateReleaseCountBySetReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory());
+                }
             }
         }
     }
@@ -47,8 +49,10 @@ public class PagingReleaseDetailServiceImpl implements PagingReleaseDetailServic
             detail.setReadStatus(Constant.YES);
             detail.setReadDate(new Date());
             pagingReleaseDetailDao.save(detail);
-            // 调用存储过程更新消息数量表,每条参数不一样所以需要单条保存
-            pagingReleaseDetailDao.updateReleaseCountBySetReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory());
+            if (detail.getPagingRelease().getTable() != null && detail.getPagingRelease().getCategory() != null) {
+                // 调用存储过程更新消息数量表,每条参数不一样所以需要单条保存
+                pagingReleaseDetailDao.updateReleaseCountBySetReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory());
+            }
         }
     }
 }

+ 7 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java

@@ -58,6 +58,9 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 	@Autowired
 	private PagingReleaseCountDao pagingReleaseCountDao;
 
+	@Autowired
+	private PagingReleaseDetailDao pagingReleaseDetailDao;
+
 	@Override
 	public void save(List<PurchaseOrderChangeItem> changeItems) {
 		changeItems = purchaseOrderChangeItemDao.save(changeItems);
@@ -110,6 +113,10 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 			PurchaseOrder order = purchaseOrderDao.findOne(change.getOrderId());
 			order.setStatus((short) (notReply > 0 ? Status.NOT_REPLY.value() : Status.REPLIED.value()));
 			purchaseOrderDao.save(order);
+			if (order.getStatus() == Status.REPLIED.value()) {
+				// 对接收人来说是销售订单 ,新增不传旧单据状态
+				pagingReleaseDetailDao.updateReleaseCountBySetOrderStatus("purc$orders", "sale", null);
+			}
 		}
 	}
 

+ 8 - 3
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -1,6 +1,5 @@
 package com.uas.platform.b2b.service.impl;
 
-import com.uas.account.entity.RequsetStatus;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseOrderEndReleaseEvent;
@@ -18,7 +17,6 @@ import com.uas.platform.core.model.PageInfo;
 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.platform.core.web.bind.RequestState;
 import com.uas.search.b2b.model.PageParams;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -113,6 +111,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 			newOrderAlls.add(orderAll);
 		}
 		ContextUtils.publishEvent(new PurchaseOrderSaveReleaseEvent(orderAlls));
+		// 对接收人来说是销售订单 ,新增不传旧单据状态
+		pagingReleaseDetailDao.updateReleaseCountBySetOrderStatus("purc$orders", "sale", null);
 	}
 
 	@Override
@@ -274,7 +274,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 			order.setEnd(Constant.YES);
 		else
 			order.setEnd(Constant.NO);// 反结案之后
-		return purchaseOrderDao.save(order);
+		order = purchaseOrderDao.save(order);
+		if (order.getStatus() == Status.REPLIED.value()) {
+			// 对接收人来说是销售订单 ,新增不传旧单据状态
+			pagingReleaseDetailDao.updateReleaseCountBySetOrderStatus("purc$orders", "sale", null);
+		}
+		return order;
 	}
 
 	@Override

+ 4 - 1
src/main/webapp/resources/tpl/index/home/pagingRelease.html

@@ -190,9 +190,12 @@
                 <div>{{releaseDetail.pagingRelease.date | date:'yyyy-MM-dd HH:mm'}}</div>
             </td>
             <td>
-                <div style="text-align: left;" ng-if="releaseDetail.pagingRelease.table == 'purc$orders'">
+                <div style="text-align: left;" ng-if="releaseDetail.pagingRelease.table == 'purc$orders' && releaseDetail.pagingRelease.category == 'sale' && releaseDetail.pagingRelease.sourceId != null">
                     <a style="color: #5078cb;" ng-click="setOneRead(releaseDetail.id)" ui-sref="sale.order_detail({id:releaseDetail.pagingRelease.sourceId})">{{releaseDetail.pagingRelease.context}}</a>
                 </div>
+                <div style="text-align: left;" ng-if="releaseDetail.pagingRelease.table == 'purc$orders' && releaseDetail.pagingRelease.category == 'purc' && releaseDetail.pagingRelease.sourceId != null">
+                    <a style="color: #5078cb;" ng-click="setOneRead(releaseDetail.id)" ui-sref="purc.order_detail({id:releaseDetail.pagingRelease.sourceId})">{{releaseDetail.pagingRelease.context}}</a>
+                </div>
                 <div style="text-align: left;" ng-if="releaseDetail.pagingRelease.table != 'purc$orders'">
                     {{releaseDetail.pagingRelease.context}}
                 </div>