瀏覽代碼

物料信息:搜索结果默认为销售中的物料,企业物料增加开启关闭销售按钮

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@8574 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 9 年之前
父節點
當前提交
28ea59e430

+ 2 - 0
src/main/java/com/uas/platform/b2b/controller/BaseInfoController.java

@@ -40,6 +40,7 @@ import com.uas.platform.b2b.temporary.model.ProdInfo;
 import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
@@ -78,6 +79,7 @@ public class BaseInfoController {
 		logger.log("查看物料", SystemSession.getUser().getUserName() + "查看了物料信息");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
 		pageParams.getFilters().put("pr_enuu", SystemSession.getUser().getEnterprise().getUu());
+		pageParams.getFilters().put("pr_issale", Constant.YES);
 		List<Sort> sortList = new ArrayList<>();
 		sortList.add(new Sort("pr_id", false, Type.LONG, new Long(1)));
 		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);

+ 41 - 2
src/main/java/com/uas/platform/b2b/controller/ProductController.java

@@ -5,6 +5,7 @@ import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -12,6 +13,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.ProductService;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageParams;
 import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.model.Sort;
@@ -29,10 +32,10 @@ import com.uas.search.b2b.util.SearchConstants;
 public class ProductController {
 
 	@Autowired
-	private ProductService productService;
+	private SearchService searchService;
 
 	@Autowired
-	private SearchService searchService;
+	private ProductService productService;
 
 	/**
 	 * 供应商角度 - 获取所有客户的物料信息
@@ -45,6 +48,7 @@ public class ProductController {
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
 		if (custUU != null && custUU != 0) {
 			pageParams.getFilters().put("pr_enuu", custUU);
+			pageParams.getFilters().put("pr_issale", Constant.YES);
 			List<Sort> sortList = new ArrayList<>();
 			sortList.add(new Sort("pr_id", false, Type.LONG, new Long(1)));
 			pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
@@ -52,6 +56,41 @@ public class ProductController {
 		} else {
 			return null;
 		}
+	}
+
+	/**
+	 * 查看自己的所有物料资料
+	 */
+	@RequestMapping(value = "/info", method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<Product> getAllProductInfo(PageParams params, String keyword) {
+		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+		pageParams.getFilters().put("pr_enuu", SystemSession.getUser().getEnterprise().getUu());
+		List<Sort> sortList = new ArrayList<>();
+		sortList.add(new Sort("pr_id", false, Type.LONG, new Long(1)));
+		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+		return searchService.searchProductsCheckIds(keyword, pageParams);
+	}
 
+	/**
+	 * 开启物料销售
+	 * 
+	 * @param id
+	 */
+	@RequestMapping(value = "/unlock/{id}", method = RequestMethod.POST)
+	@ResponseBody
+	private void unlockProduct(@PathVariable Long id) {
+		productService.unlock(id);
+	}
+
+	/**
+	 * 关闭物料销售
+	 * 
+	 * @param id
+	 */
+	@RequestMapping(value = "/lock/{id}", method = RequestMethod.POST)
+	@ResponseBody
+	private void lockProduct(@PathVariable Long id) {
+		productService.lock(id);
 	}
 }

+ 105 - 0
src/main/java/com/uas/platform/b2b/controller/PurcProductController.java

@@ -0,0 +1,105 @@
+package com.uas.platform.b2b.controller;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.uas.platform.b2b.model.FileUpload;
+import com.uas.platform.b2b.service.ProductService;
+import com.uas.platform.b2b.service.PurcProductService;
+import com.uas.platform.b2b.support.JxlsExcelView;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.support.UsageBufferedLogger;
+import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.PageInfo;
+
+/**
+ * 采购物料
+ * 
+ * @author hejq
+ * @time 创建时间:2017年5月23日
+ */
+@RequestMapping("/purcProduct")
+@RestController
+public class PurcProductController {
+
+	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+	@Autowired
+	private ProductService productService;
+
+	@Autowired
+	private PurcProductService purcProductService;
+
+	/**
+	 * 获取批量上传物料的模板
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/upload/template", method = RequestMethod.GET)
+	public ModelAndView exportOrders() {
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/baseInfo/baseInfo_example", "商务平台物料上传"));
+		logger.log("物料上传", "下载批量上传物料的模板");
+		return modelAndView;
+	}
+
+	/**
+	 * 导出Excel
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/xls", method = RequestMethod.GET)
+	public ModelAndView export(String keyword) {
+		PageInfo pageInfo = new PageInfo(1, JxlsExcelView.MAX_SIZE, 0);
+		pageInfo.sorting("id", Direction.DESC);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.addObject("data", productService.findAllByPageInfo(pageInfo, keyword).getContent());
+		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/baseInfo/baseInfo", "物料资料表"));
+		logger.log("物料资料", "导出Excel列表", "导出全部Excel列表");
+		return modelAndView;
+	}
+
+	/**
+	 * 通过excel批量导入物料
+	 * 
+	 * @param uploadItem
+	 * @return
+	 */
+	@RequestMapping(value = "/release/excel", method = RequestMethod.POST)
+	public ModelMap releaseByExcel(FileUpload uploadItem) {
+		ModelMap map = new ModelMap();
+		String fileName = uploadItem.getFile().getOriginalFilename();
+		String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
+		InputStream is = null;
+		Workbook workbook = null;
+		try {
+			is = uploadItem.getFile().getInputStream();
+			if ("xls".equals(suffix)) {
+				workbook = new HSSFWorkbook(is);
+			} else if ("xlsx".equals(suffix)) {
+				workbook = new XSSFWorkbook(is);
+			} else {
+				throw new IllegalOperatorException("文件格不正确,请上传.xls或.xlsx的文件");
+			}
+			map = purcProductService.releaseByWorkbook(workbook);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		logger.log("商品批次", "[" + SystemSession.getUser().getUserName() + "]通过excel导入了物料,数量为" + map.size());
+		return map;
+	}
+}

+ 14 - 0
src/main/java/com/uas/platform/b2b/service/ProductService.java

@@ -27,4 +27,18 @@ public interface ProductService {
 	 */
 	public Page<Product> findAllByPageInfo(PageInfo pageInfo, String keyword);
 
+	/**
+	 * 开启物料销售
+	 * 
+	 * @param id
+	 */
+	public void unlock(Long id);
+
+	/**
+	 * 关闭物料销售
+	 * 
+	 * @param id
+	 */
+	public void lock(Long id);
+
 }

+ 16 - 0
src/main/java/com/uas/platform/b2b/service/PurcProductService.java

@@ -0,0 +1,16 @@
+package com.uas.platform.b2b.service;
+
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.ui.ModelMap;
+
+public interface PurcProductService {
+
+	/**
+	 * excel批量导入物料(采购物料)
+	 * 
+	 * @param workbook
+	 * @return
+	 */
+	public ModelMap releaseByWorkbook(Workbook workbook);
+
+}

+ 1 - 0
src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java

@@ -582,6 +582,7 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 	@Override
 	public SPage<ProdInfo> getAllSearchProd(PageParams params, String keyword) throws Exception {
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+		pageParams.getFilters().put("pr_issale", Constant.YES);
 		List<Sort> sortList = new ArrayList<>();
 		sortList.add(new Sort("pr_id", false, Type.LONG, new Long(1)));
 		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);

+ 24 - 8
src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java

@@ -16,12 +16,11 @@ import org.springframework.util.StringUtils;
 
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.ProductIndexDao;
-import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.event.ProductSaveEvent;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.ProductService;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 
@@ -31,15 +30,9 @@ public class ProductServiceImpl implements ProductService {
 	@Autowired
 	private ProductDao productDao;
 
-	@Autowired
-	private ProductIndexDao productIndexDao;
-
 	@Autowired
 	private SearchService searchService;
 
-	@Autowired
-	private VendorDao vendorDao;
-
 	@Override
 	public List<Product> save(List<Product> products) {
 		List<Product> newProducts = productDao.save(products);
@@ -65,4 +58,27 @@ public class ProductServiceImpl implements ProductService {
 			}
 		}, pageInfo);
 	}
+
+	@Override
+	public void unlock(Long id) {
+		try {
+			Product prod = productDao.findOne(id);
+			prod.setIsSale(Constant.YES);
+			productDao.save(prod);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	@Override
+	public void lock(Long id) {
+		try {
+			Product prod = productDao.findOne(id);
+			prod.setIsSale(Constant.NO);
+			productDao.save(prod);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
 }

+ 135 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurcProductServiceImpl.java

@@ -0,0 +1,135 @@
+package com.uas.platform.b2b.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.service.PurcProductService;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Constant;
+
+@Service
+public class PurcProductServiceImpl implements PurcProductService {
+
+	@Autowired
+	private ProductDao productDao;
+
+	/**
+	 * 批量导入物料资料
+	 */
+	@Override
+	public ModelMap releaseByWorkbook(Workbook workbook) {
+		ModelMap modelMap = new ModelMap();
+		List<String> alters = new ArrayList<String>();
+		List<String> infos = new ArrayList<String>();
+		List<Product> products = new ArrayList<Product>();
+		Sheet sheet = workbook.getSheetAt(0);
+		int rowNum = sheet.getLastRowNum();
+		Row headerRow = sheet.getRow(0);
+		int total = 0;
+		if (headerRow != null) {
+			for (int r = 3; r <= rowNum; r++) {
+				Row row = sheet.getRow(r);
+				if (row != null && row.getCell(0) != null && row.getCell(0).getCellType() != Cell.CELL_TYPE_BLANK) {
+					total++;
+					Product product = new Product();
+
+					// 物料名称
+					if (row.getCell(0) != null) {
+						row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
+						product.setTitle(row.getCell(0).getStringCellValue().trim());
+					}
+					// 物料编号
+					if (row.getCell(1) != null) {
+						row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
+						product.setCode(row.getCell(1).getStringCellValue().trim());
+					}
+
+					// 单位
+					if (row.getCell(2) != null) {
+						row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);
+						product.setUnit(row.getCell(2).getStringCellValue().trim());
+					}
+
+					// 品牌
+					if (row.getCell(3) != null) {
+						row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
+						product.setBrand(row.getCell(3).getStringCellValue().trim());
+					}
+					// 原厂型号
+					if (row.getCell(4) != null) {
+						row.getCell(4).setCellType(Cell.CELL_TYPE_STRING);
+						product.setCmpCode(row.getCell(4).getStringCellValue().trim());
+						if (product.getCode() == null) {
+							product.setCode(product.getCmpCode());
+						}
+					}
+
+					// 最小包装量
+					if (row.getCell(5) != null) {
+						row.getCell(5).setCellType(Cell.CELL_TYPE_STRING);
+						product.setMinPack(Float.valueOf(row.getCell(5).getStringCellValue()));
+					}
+					// 最小订购量
+					if (row.getCell(6) != null) {
+						row.getCell(6).setCellType(Cell.CELL_TYPE_STRING);
+						product.setMinOrder(Float.valueOf(row.getCell(6).getStringCellValue()));
+					}
+					// 交货周期
+					if (row.getCell(7) != null) {
+						row.getCell(7).setCellType(Cell.CELL_TYPE_STRING);
+						product.setLeadtime(Float.valueOf(row.getCell(7).getStringCellValue()));
+					}
+					// 交货提前期
+					if (row.getCell(8) != null) {
+						row.getCell(8).setCellType(Cell.CELL_TYPE_STRING);
+						product.setLtinstock(Float.valueOf(row.getCell(8).getStringCellValue()));
+					}
+					List<Product> prods = productDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(),
+							product.getCode());
+					if (CollectionUtils.isEmpty(prods)) {
+						product.setCode(product.getCode());
+					} else {
+						Product oldProd = prods.get(0);
+						if (!oldProd.getIsPurchase().equals(Constant.YES)) {
+							oldProd.setIsPurchase(Constant.YES);
+							productDao.save(oldProd);
+						}
+						alters.add(product.getCode());
+						product.setCode(null);
+					}
+					product.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+					product.setUserUU(SystemSession.getUser().getUserUU());
+					product.setSourceApp("B2B");
+					product.setIsPurchase((short) 1);
+					if (alters.size() > 0) {
+						modelMap.put("alters", alters);
+					}
+					if (infos.size() > 0) {
+						modelMap.put("infos", infos);
+					}
+					if (product.getCode() != null) {
+						products.add(product);
+					}
+					modelMap.put("total", total);
+					modelMap.put("success", total - alters.size());
+				}
+			}
+			if (!CollectionUtils.isEmpty(products)) {
+				productDao.save(products);
+			}
+		}
+		return modelMap;
+
+	}
+}

+ 10 - 8
src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java

@@ -60,14 +60,16 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 		acceptItems = purchaseAcceptItemDao.save(acceptItems);
 		// 关联订单的验收数量
 		for (PurchaseAcceptItem acceptItem : acceptItems) {
-			List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(
-					acceptItem.getOrderItem().getOrder().getEnUU(), acceptItem.getOrderItem().getOrder().getCode(),
-					acceptItem.getOrderItem().getNumber());
-			if (orderItems.size() > 0) {
-				PurchaseOrderItem orderItem = orderItems.get(0);
-				orderItem.setAcceptQty((orderItem.getAcceptQty() == null ? 0 : orderItems.get(0).getAcceptQty())
-						+ acceptItem.getQty());
-				purchaseOrderItemDao.save(orderItem);
+			if (acceptItem.getOrderItem() != null) {
+				List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(
+						acceptItem.getOrderItem().getOrder().getEnUU(), acceptItem.getOrderItem().getOrder().getCode(),
+						acceptItem.getOrderItem().getNumber());
+				if (orderItems.size() > 0) {
+					PurchaseOrderItem orderItem = orderItems.get(0);
+					orderItem.setAcceptQty((orderItem.getAcceptQty() == null ? 0 : orderItems.get(0).getAcceptQty())
+							+ acceptItem.getQty());
+					purchaseOrderItemDao.save(orderItem);
+				}
 			}
 		}
 	}

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

@@ -220,6 +220,7 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 				if (list != null && list.size() == 3) {
 					String sql = "select count(0) from " + item.getSourceTable() + " where " + list.get(1) + "="
 							+ item.getSourceId();
+					System.out.println(sql);
 					Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
 					if (count == 0) {
 						apCheck.setStatus((short) Status.DISABLED.value());