MedStockService.java 3.77 KB
package com.phxl.modules.goods.service.medstock;

import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.phxl.common.util.JsonMapper;
import com.phxl.common.utils.BaseException;
import com.phxl.common.utils.IdUtil;
import com.phxl.modules.goods.dao.medstock.MedStockDao;
import com.phxl.modules.goods.entity.medstock.MedStock;
import com.phxl.modules.goods.entity.medstock.MedStockList;


@Service
public class MedStockService{

	@Autowired
	private MedStockDao stockDao;

	private static Log log = LogFactory.getLog(MedStockService.class);

	public boolean batchSave(List<MedStockList> stockList) {
		boolean result = false;
		if (stockList != null && stockList.size() != 0) {
			for (MedStockList medStockList : stockList) {
				MedStock medStock = medStockList.getData();
				try {
					checkStock(medStock);
				} catch (Exception e) {
					String json = JsonMapper.toJsonString(medStock);
					log.error("同步医院库存:" + json + "信息异常");
					throw new BaseException(e.getMessage());
				}
				medStock.setId(IdUtil.uuid());
				stockDao.insert(medStock);
			}
			result = true;
		}
		return result;
	}

	private void checkStock(MedStock medStock) {
		// 获取库存信息中供应商信息
		String medSuppliercode = medStock.getMedSuppliercode();
		String medSuppliername = medStock.getMedSuppliername();
		if (StringUtils.isEmpty(medSuppliercode) || StringUtils.isEmpty(medSuppliername)) {
			log.error("同步库存信息供应商编号以及供应商名称不能为空");
			throw new BaseException("同步库存信息供应商编号以及供应商名称不能为空");
		}
		// 获取库存信息中供应商信息
		String medCode = medStock.getMedCode();
		String medName = medStock.getMedName();
		if (StringUtils.isEmpty(medCode) || StringUtils.isEmpty(medName)) {
			log.error("同步库存信息医院编号以及医院名称不能为空");
			throw new BaseException("同步库存信息医院编号以及医院名称不能为空");
		}
		// 获取同步库存信息录商品信息
		String goodsCode = medStock.getGoodsCode();
		String goodsName = medStock.getGoodsName();
		if (StringUtils.isEmpty(goodsCode) || StringUtils.isEmpty(goodsName)) {
			log.error("同步库存信息商品编号以及商品名称不能为空");
			throw new BaseException("同步库存信息商品编号以及商品名称不能为空");
		}
		// 获取对应商品规格
		String goodsSpec = medStock.getGoodsSpec();
		if (StringUtils.isEmpty(goodsSpec)) {
			log.error("同步库存信息商品规格不能为空");
			throw new BaseException("同步库存信息商品规格不能为空");
		}
		// 获取同步库存信息商品信息
		String storeCode = medStock.getStoreCode();
		String storeName = medStock.getStoreName();
		if (StringUtils.isEmpty(storeCode) || StringUtils.isEmpty(storeName)) {
			log.error("同步库存信息库房编码以及库房名称不能为空");
			throw new BaseException("同步库存信息库房编码以及库房名称不能为空");
		}
		// 获取库存信息批号记录
		String lot = medStock.getLot();
		if (StringUtils.isEmpty(lot)) {
			log.error("同步库存信息批号信息不能为空");
			throw new BaseException("同步库存信息批号信息不能为空");
		}
		// 获取同步库存信息商品信息
		Date productionDate = medStock.getProductionDate();
		Date expireDate = medStock.getExpireDate();
		if (productionDate == null || expireDate == null) {
			log.error("同步库存信息生产日期以及有效期信息不能为空");
			throw new BaseException("同步库存信息生产日期以及有效期信息不能为空");
		}
	}

}