/***文档注释***********************************************
 * 作者            ：
 * 创建日期     ：2018-05-07
 * 描述            ：物料价格修改日志表
 * 注意事项     ：
 * 遗留BUG   ：
 * 修改日期     ：
 * 修改人员     ：
 * 修改内容     ：
***********************************************************/
package market.Pms.Mat.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import market.Com.vo.CommonPage;
import market.Com.vo.ResultModel;
import market.Pms.Mat.mapper.PurMatUpdatepirceLogsMapper;
import market.Pms.Mat.service.PurMatUpdatepirceLogsService;
import market.Pms.Mat.vo.PurMatUpdatepirceLogs;

import org.springframework.transaction.annotation.Transactional;

import com.hnshituo.basic.service.impl.BaseServiceImpl;
import com.hnshituo.basic.service.support.PageModel;
import com.hnshituo.basic.spring.remoting.annotation.RemoteService;

@RemoteService(path="PurMatUpdatepirceLogsService")
public class PurMatUpdatepirceLogsServiceImpl extends BaseServiceImpl<PurMatUpdatepirceLogs,Object> implements PurMatUpdatepirceLogsService {
	/**
	 * 查询
	 * @param oci
	 * @return
	 */
	public ResultModel doQueryWeb(CommonPage<PurMatUpdatepirceLogs> oci){
		ResultModel rm=new ResultModel();
		PageModel<PurMatUpdatepirceLogs> pm=new PageModel<PurMatUpdatepirceLogs>(oci.getPageIndex(),oci.getPageSize());
		PurMatUpdatepirceLogs queryCls=oci.getObject()==null?(new PurMatUpdatepirceLogs()):oci.getObject();
		try{
			pm.setTotal(this.getMapper(PurMatUpdatepirceLogsMapper.class).doQueryCount(queryCls));
			pm.setRows(this.getMapper(PurMatUpdatepirceLogsMapper.class).doQuery(queryCls, (oci.getPageIndex()-1)*oci.getPageSize(), oci.getPageIndex()*oci.getPageSize()));
		
			rm.setData(pm);
			rm.setState("200");
		}catch(Exception ex){
			rm.setState("500");
			rm.setMsgInfo("错误："+ex.getMessage());
		}
		
		return rm;
	}
	
	/**
	 * 新增
	 * @param oci
	 * @return
	 */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public ResultModel doAddWeb(CommonPage<PurMatUpdatepirceLogs> oci){
		ResultModel rm=new ResultModel();
		
		if(oci.getObjectList()==null||oci.getObjectList().size()==0){
			rm.setState("500");
			rm.setMsgInfo("请传入需操作的数据！");
			return rm;
		}
		
		for(PurMatUpdatepirceLogs pb:oci.getObjectList()){
			rm = ValidData(pb,"0");
			if("500".equals(rm.getState())){
				return rm;
			}
		}
		
		int i=1;
		try{
			List<PurMatUpdatepirceLogs> queryClsList=this.getMapper(PurMatUpdatepirceLogsMapper.class).findWithCondition(null, " change_id like 'C%' ", " change_id desc ", 0, 1);
			if(queryClsList!=null&&queryClsList.size()>0){
				i=Integer.parseInt(queryClsList.get(0).getItem_code().substring(7))+1;
			}
		}catch(Exception ex){
			rm.setState("500");
			rm.setMsgInfo("新增失败："+ex.getMessage());
			return rm;
		}
		
		for(PurMatUpdatepirceLogs pb:oci.getObjectList()){
			pb.setItem_code("C"+(new SimpleDateFormat("yyyyMM").format(new Date()))+String.format("%06d", i++));
			this.getMapper(PurMatUpdatepirceLogsMapper.class).insert(pb);
		}
		
		rm.setState("200");
		return rm;
	}
	
	/**
	 * 公共的数据验证，若需要其它的验证则继续增加
	 * @param oci
	 * @param sType 0新增  1修改
	 * @return
	 */
	public ResultModel ValidData(PurMatUpdatepirceLogs oci,String sType){
		ResultModel rm=new ResultModel();
		if(oci==null){
			rm.setState("500");
			rm.setMsgInfo("请传入需操作的数据！");
			return rm;
		}
		
		rm.setState("200");
		return rm;
	}
}
