HisCtDeptService.java 2.63 KB
package com.phxl.modules.goods.service.ctdept;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.phxl.common.utils.BaseException;
import com.phxl.common.utils.IdUtil;
import com.phxl.modules.goods.dao.ctdept.HisCtDeptDao;
import com.phxl.modules.goods.entity.ctdept.HisCtDept;


@Service
public class HisCtDeptService{

	@Autowired
	private HisCtDeptDao hisCtDeptDao;

	/**
	 * 日志对象
	 */
	protected Logger logger = LoggerFactory.getLogger(getClass());

	public int batchSaveOrUpdate(List<HisCtDept> depts) {
		try {
			checkMedDept(depts);
		} catch (Exception e) {
			throw new BaseException(e.getMessage());
		}
		if (CollectionUtils.isNotEmpty(depts)) {
			List<String> codes = new ArrayList<String>();
			for (HisCtDept hisCtDept : depts) {
				String ctcpCode = hisCtDept.getHdeptCode();
				codes.add(ctcpCode);
			}
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("ctcpCodes", codes);
			List<HisCtDept> exsitList = hisCtDeptDao.batchSelect(map);
			List<HisCtDept> insertList = new ArrayList<HisCtDept>();
			List<HisCtDept> updateList = new ArrayList<HisCtDept>();
			for (HisCtDept hisCtDept : depts) {
				boolean flag = false;
				for (HisCtDept exsitCtCareProv : exsitList) {
					if (hisCtDept.getHdeptCode().equals(exsitCtCareProv.getHdeptCode())) {
						hisCtDept.setId(exsitCtCareProv.getId());
						flag = true;
					}
				}
				if (!flag) {
					hisCtDept.setId(IdUtil.uuid());
					insertList.add(hisCtDept);
				} else {
					updateList.add(hisCtDept);
				}
			}
			if (CollectionUtils.isNotEmpty(updateList)) {
				hisCtDeptDao.batchUpdate(updateList);
			}
			if (CollectionUtils.isNotEmpty(insertList)) {
				hisCtDeptDao.batchInsert(insertList);
			}
		}
		return 1;
	}

	private void checkMedDept(List<HisCtDept> depts) {
		if(depts == null || depts.size() == 0){
			logger.error("无相应科室信息");
			throw new BaseException("无相应科室信息");
		}
		for (HisCtDept hisCtDept : depts) {
			String hDeptCode = hisCtDept.getHdeptCode();
			if (StringUtils.isEmpty(hDeptCode)) {
				logger.error("科室编码不能为空");
				throw new BaseException("科室编码不能为空");
			}
			String hdeptName = hisCtDept.getHdeptName();
			if (StringUtils.isEmpty(hdeptName)) {
				logger.error("科室名称不能为空");
				throw new BaseException("科室名称不能为空");
			}
		}
	}



}