/***文档注释***********************************************
 * 作者            ：
 * 创建日期     ：2019-08-23
 * 描述            ：销售区域分点与人员信息关联
 * 注意事项     ：
 * 遗留BUG   ：
 * 修改日期     ：
 * 修改人员     ：
 * 修改内容     ：
***********************************************************/
package market.Slm.MarketMap.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import market.Com.vo.CommonPage;
import market.Com.vo.ResultModel;
import market.Slm.MarketMap.mapper.SlmSaleareaPersonMapper;
import market.Slm.MarketMap.service.SlmSaleareaPersonService;
import market.Slm.MarketMap.vo.SlmSaleareaPerson;

import org.springframework.transaction.annotation.Transactional;

import com.hnshituo.basic.service.impl.BaseServiceImpl;
import com.hnshituo.basic.spring.remoting.annotation.RemoteService;
import com.hnshituo.core.auth.service.HomeService;
import com.ibm.icu.text.SimpleDateFormat;

@RemoteService(path="SlmSaleareaPersonService")
public class SlmSaleareaPersonServiceImpl extends BaseServiceImpl<SlmSaleareaPerson,Object> implements SlmSaleareaPersonService {
	/**
	 * 查询
	 * @param oci
	 * @return
	 */
	public ResultModel doQueryWeb(CommonPage<SlmSaleareaPerson> oci){
		ResultModel rm=new ResultModel();
		try{
			List<SlmSaleareaPerson> lc=this.getMapper(SlmSaleareaPersonMapper.class).find(oci.getObject(), 0, 0);
			rm.setState("200");
			rm.setData(lc);
		}catch(Exception ex){
			rm.setState("500");
			rm.setMsgInfo("查询失败："+ex.getMessage());
			ex.printStackTrace();
		}
		return rm;
	}
	
	@Transactional(value="tm" ,rollbackFor=Exception.class)
	public ResultModel doAddWeb(CommonPage<SlmSaleareaPerson> oci){
		ResultModel rm=new ResultModel();
		SlmSaleareaPerson ssp=new SlmSaleareaPerson();
		ssp.setSale_area_no(oci.getObjectList().get(0).getSale_area_no());
		List<SlmSaleareaPerson> lc=this.getMapper(SlmSaleareaPersonMapper.class).find(ssp, 0, 0);
		List<SlmSaleareaPerson> lca=new ArrayList<SlmSaleareaPerson>();
		if(lc!=null&&lc.size()>0){
			for(SlmSaleareaPerson obj:oci.getObjectList()){
				boolean flag=false;
				for(SlmSaleareaPerson c:lc){
					if(obj.getPerson_no().equals(c.getPerson_no())){
						flag=true;
						break;
					}
				}
				if(!flag){
					lca.add(obj);
				}
			}
		}else{
			lca=oci.getObjectList();
		}
		
		String id=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
		String userId=(String) this.getSession().getAttribute(HomeService.SESSION_USER_ID);
		String userName=(String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
		
		
		int i=1;
		for(SlmSaleareaPerson ca:lca){
			ca.setId(id+String.format("%03d", i++));
			ca.setCreate_man_no(userId);
			ca.setCreate_man_name(userName);
			ca.setCreate_time(new Date());
			this.getMapper(SlmSaleareaPersonMapper.class).insert(ca);
		}
		
		rm.setState("200");
		return rm;
	}
	
	@Transactional(value="tm" ,rollbackFor=Exception.class)
	public ResultModel doDeleteWeb(CommonPage<SlmSaleareaPerson> oci){
		ResultModel rm=new ResultModel();

		for(SlmSaleareaPerson ca:oci.getObjectList()){
			this.getMapper(SlmSaleareaPersonMapper.class).delete(ca.getId());
		}
		
		rm.setState("200");
		return rm;
	}
}
