Browse Source

对账模块--应收应付对账单--客户权限分配

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@2422 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
aof 10 years ago
parent
commit
0dd8794c8d

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

@@ -20,6 +20,7 @@ import com.uas.platform.b2b.model.SaleARCheckItem;
 import com.uas.platform.b2b.model.SaleARCheckReply;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.service.SaleARCheckService;
+import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
@@ -41,6 +42,9 @@ public class PurchaseARCheckController {
 
 	@Autowired
 	private SaleARCheckService saleARCheckService;
+	
+	@Autowired
+	private UserService userService;
 
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
@@ -61,6 +65,19 @@ public class PurchaseARCheckController {
 		if(StringUtils.hasText(searchFilter)) {
 			filter = FlexJsonUtils.fromJson(searchFilter, SearchFilter.class);
 		}
+		//判断当前用户是否被客户分配
+		SearchFilter filter2 = userService.distribute();
+		if(filter2 != null ) {
+			if (filter2.getDistribute() == null) {
+				return null;
+			} else if(filter2.getDistribute() != null) {
+				if(filter != null) {
+					filter.setDistribute(filter2.getDistribute());
+				} else {
+					filter = filter2;
+				}
+			}
+		} 
 		return saleARCheckService.findAllByPageInfo(info, keyword, filter);
 	}
 

+ 12 - 2
src/main/java/com/uas/platform/b2b/controller/SaleApBillController.java

@@ -13,7 +13,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.uas.platform.b2b.model.PurchaseApBill;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.service.PurchaseApBillService;
+import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
@@ -33,6 +35,9 @@ public class SaleApBillController {
 
 	@Autowired
 	private PurchaseApBillService purchaseApBillService;
+	
+	@Autowired
+	private UserService userService;
 
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
@@ -49,7 +54,12 @@ public class SaleApBillController {
 		PageInfo info = new PageInfo(params);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		return purchaseApBillService.findAllByPageInfo(info, keyword, fromDate, endDate);
+		//判断当前用户是否被客户分配
+		SearchFilter filter = userService.distribute();
+		if(filter != null && filter.getDistribute() == null) {
+			return null;
+		}
+		return purchaseApBillService.findAllByPageInfo(info, keyword, fromDate, endDate, filter);
 	}
 
 	/**
@@ -79,7 +89,7 @@ public class SaleApBillController {
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
 		ModelAndView modelAndView = new ModelAndView();
 		modelAndView.addObject("dateFormat", dateFormat);
-		modelAndView.addObject("data", purchaseApBillService.findAllByPageInfo(pageInfo, keyword, fromDate, endDate).getContent());
+		modelAndView.addObject("data", purchaseApBillService.findAllByPageInfo(pageInfo, keyword, fromDate, endDate, null).getContent());
 		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/fa/faApBill", "客户应付发票列表"));
 		logger.log("客户应付发票", "导出Excel列表", "导出全部Excel列表");
 		return modelAndView;

+ 22 - 1
src/main/java/com/uas/platform/b2b/controller/SaleApCheckController.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.controller;
 
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
@@ -8,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -18,8 +20,10 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import com.uas.platform.b2b.model.ErpProdIODetail;
 import com.uas.platform.b2b.model.PurchaseApCheck;
 import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.service.ErpProdIODetailService;
 import com.uas.platform.b2b.service.PurchaseApCheckService;
+import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.core.exception.IllegalOperatorException;
@@ -38,6 +42,10 @@ public class SaleApCheckController {
 	@Autowired
 	PurchaseApCheckService purchaseApCheckService;
 	
+	@Autowired
+	private UserService userService;
+	
+	
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 	
 	/**
@@ -62,7 +70,20 @@ public class SaleApCheckController {
 	@RequestMapping(value = "/getAll", method = RequestMethod.GET)
 	@ResponseBody
 	public List<ErpProdIODetail> getAllApChecks() {
-		return erpProdIODetailService.findAllApChecks();
+		List<Long> distributes = null;
+		//判断当前用户是否被客户分配
+		if (!userService.IsNotadmin()) {
+			List<Vendor> vendors = userService.findChooseVendor(SystemSession.getUser().getUserUU());
+			distributes = new ArrayList<Long>();
+			if(!CollectionUtils.isEmpty(vendors)) {
+				for(Vendor v : vendors) {
+					distributes.add(v.getMyEnUU());
+				}
+			} else {
+				return null;
+			}
+		}
+		return erpProdIODetailService.findAllApChecks(distributes);
 	}
 	
 	/**

+ 2 - 1
src/main/java/com/uas/platform/b2b/service/ErpProdIODetailService.java

@@ -3,12 +3,13 @@ package com.uas.platform.b2b.service;
 import java.util.List;
 
 import com.uas.platform.b2b.model.ErpProdIODetail;
+import com.uas.platform.b2b.model.SearchFilter;
 
 public interface ErpProdIODetailService {
 	
 	/**
 	 * 查找应收对账单,包括明细
 	 */
-	public List<ErpProdIODetail> findAllApChecks();
+	public List<ErpProdIODetail> findAllApChecks(List<Long> filter);
 	
 }

+ 2 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseApBillService.java

@@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
 
 import com.uas.platform.b2b.model.PurchaseApBill;
 import com.uas.platform.b2b.model.PurchaseApBillItem;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.core.model.PageInfo;
 
 public interface PurchaseApBillService {
@@ -60,7 +61,7 @@ public interface PurchaseApBillService {
 	 *            查找关键字
 	 * @return
 	 */
-	public Page<PurchaseApBill> findAllByPageInfo(PageInfo pageInfo, String keyword, Long fromDate, Long endDate);
+	public Page<PurchaseApBill> findAllByPageInfo(PageInfo pageInfo, String keyword, Long fromDate, Long endDate, SearchFilter filter);
 
 	/**
 	 * 用不良品入库单ID查找客户应付票据

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

@@ -6,12 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
-
-
-
-
-
-
+import org.springframework.util.CollectionUtils;
 
 import com.uas.platform.b2b.model.ErpProdIODetail;
 import com.uas.platform.b2b.service.ErpProdIODetailService;
@@ -20,17 +15,34 @@ import com.uas.platform.b2b.support.SystemSession;
 
 @Service
 public class ErpProdIODetailServiceImpl implements ErpProdIODetailService{
-	
+
 	@Autowired
 	private JdbcTemplate jdbcTemplate;
 	
-	public List<ErpProdIODetail> findAllApChecks(){
+	public List<ErpProdIODetail> findAllApChecks(List<Long> filter){
 		Long enUu = SystemSession.getUser().getEnterprise().getUu();
 		String sql = "select p.pi_inoutno inOutNo,p.pd_detno detno ,p.pi_class piClass, p.pd_ordercode orderCode, p.pd_orderdetno  orderDetno,"
 				+ " p.pd_prodcode  prodCode, p.pd_qty  qty, p.pi_date piDate, p.pd_orderprice  orderPrice, p.pi_currency currency, p.pd_taxrate taxrate, p.pd_ycheckqty yCheckQty,"
 				+ " p.pd_thischeckqty thisCheckQty, p.custuu custUu, p.custname custName, p.enuu enUu, p.sourceid sourceId, p.pi_sourcetable sourceTable, p.pi_rate rate, p.pi_receivecode receiveCode,"
 				+ " p.pi_receivename receiveName from erp$prodiodetail p where enuu = ?";
 		Object[] args = new Object[] {enUu};
+		if (!CollectionUtils.isEmpty(filter)) {
+			String[] str = new String[filter.size()];
+			Long[] lon = new Long[filter.size() + 1];
+			String s = "";
+			for (int i=0;i<filter.size();i++) {
+				if (i != filter.size()-1) {
+					str[i] ="?,";
+				} else {
+					str[i] = "?";
+				}
+				lon[i+1] = filter.get(i);
+				s = s + str[i];
+			}
+			sql = sql + " and custUu in (" + s + ")";
+			lon[0] = enUu;
+			args = lon;
+		}
 		List<ErpProdIODetail> erpProdIODetails = jdbcTemplate.query(sql,args, new BeanPropertyRowMapper<ErpProdIODetail>(ErpProdIODetail.class));
 		return erpProdIODetails;
 	}

+ 6 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java

@@ -23,6 +23,7 @@ import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.event.PurchaseApBillSaveEvent;
 import com.uas.platform.b2b.model.PurchaseApBill;
 import com.uas.platform.b2b.model.PurchaseApBillItem;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.service.PurchaseApBillService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
@@ -70,10 +71,14 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 	}
 
 	@Override
-	public Page<PurchaseApBill> findAllByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
+	public Page<PurchaseApBill> findAllByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate, final SearchFilter filter) {
 		return purchaseApBillDao.findAll(new Specification<PurchaseApBill>() {
 
 			public Predicate toPredicate(Root<PurchaseApBill> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				if (filter != null) {
+					if (!CollectionUtils.isEmpty(filter.getDistribute()))
+						pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
+				}
 				if (StringUtils.hasText(keyword))
 					pageInfo.expression(PredicateUtils.in("id", purchaseApBillIndexDao.findByKeyword(SystemSession
 							.getUser().getEnterprise().getUu(), keyword), false));

+ 5 - 1
src/main/java/com/uas/platform/b2b/service/impl/SaleARCheckServiceImpl.java

@@ -57,9 +57,13 @@ public class SaleARCheckServiceImpl implements SaleARCheckService {
 
 	@Override
 	public Page<SaleARCheck> findAllByPageInfo(final PageInfo pageInfo,
-			final String keyword, SearchFilter searchFilter) {
+			final String keyword, final SearchFilter searchFilter) {
 		return saleARCheckDao.findAll(new Specification<SaleARCheck>() {
 			public Predicate toPredicate(Root<SaleARCheck> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				if(searchFilter != null) {
+					if (!CollectionUtils.isEmpty(searchFilter.getDistribute()))
+						pageInfo.expression(PredicateUtils.in("vendUU", searchFilter.getDistribute(), false));
+				}
 				if(StringUtils.hasText(keyword)) {
 					pageInfo.expression(PredicateUtils.in("id", saleARCheckIndexDao.findByKeyword(
 							SystemSession.getUser().getEnterprise().getUu(), keyword), false));