/***文档注释***********************************************
 * 作者            ：
 * 创建日期     ：2018-02-08
 * 描述            ：纵剪数采过程记录
 * 注意事项     ：
 * 遗留BUG   ：
 * 修改日期     ：
 * 修改人员     ：
 * 修改内容     ：
***********************************************************/
package market.Mes.Lengthwise.Performance.impl;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import market.Com.vo.CommonPage;
import market.Com.vo.ResultModel;
import market.Mes.Lengthwise.Performance.mapper.MesSlitProcessDataMapper;
import market.Mes.Lengthwise.Performance.service.MesSlitProcessDataService;
import market.Mes.Lengthwise.Performance.vo.MesSlitProcessData;
import market.Mes.util.DateUtil;

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

@RemoteService(path="MesSlitProcessDataService")
public class MesSlitProcessDataServiceImpl extends BaseServiceImpl<MesSlitProcessData,Object> implements MesSlitProcessDataService {
	/**
	 * 过程时间处理
	 * 新增
	 * @param sum
	 * @return
	 */
	public ResultModel doAddWeb(CommonPage<MesSlitProcessData> sum){
		ResultModel rm=new ResultModel();
		try{
			if(sum.getObject()==null){
				rm.setState("200");
				return rm;
			}
			SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Date date = new Date();
			String ymd=new SimpleDateFormat("yyyy-MM-dd").format(date); 
			
			String dqDay=ymd;//作业日期  如果大于20点则+1
			//大夜班
			if(date.getTime()>=formatTime.parse(ymd+" 00:00:00").getTime()
					&&date.getTime()<formatTime.parse(ymd+" 08:00:00").getTime()){
				sum.getObject().setWrk_ord("1");
			}
			//早班
			if(date.getTime()>=formatTime.parse(ymd+" 08:00:00").getTime()
					&&date.getTime()<formatTime.parse(ymd+" 16:00:00").getTime()){
				sum.getObject().setWrk_ord("2");
			}
			//中班
			if(date.getTime()>=formatTime.parse(ymd+" 16:00:00").getTime()
					&&date.getTime()<=formatTime.parse(ymd+" 23:59:59").getTime()){
				sum.getObject().setWrk_ord("3");
			}
			
			//------------2018-03-05增加代码，原有的Wrk_ord代码暂时未动，根据不同的项目可能有的是用上面的规则届时改下sql里面的wrk_ord_1为wrk_ord然后注销下面的代码即可-----------------
			if(date.getTime()>=formatTime.parse(ymd+" "+DateUtil.EndTime).getTime()
					||date.getTime()==formatTime.parse(ymd+" "+DateUtil.NBeginTime).getTime()){
				Calendar c = Calendar.getInstance();  
				c.setTime(date);  
				c.add(Calendar.DATE, 1); //超过20点则日期+1
				dqDay= new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); 
				sum.getObject().setWrk_ord_1("2");//晚班
			}else if(date.getTime()<formatTime.parse(ymd+" "+DateUtil.BeginTime).getTime()){//00点到早上08点 晚班
				sum.getObject().setWrk_ord_1("2");//晚班
			}else{
				sum.getObject().setWrk_ord_1("1");//早班
			}
//			if(date.getTime()>=formatTime.parse(ymd+" 20:00:00").getTime()
//					||date.getTime()==formatTime.parse(ymd+" 00:00:00").getTime()){
//				Calendar c = Calendar.getInstance();  
//	            c.setTime(date);  
//	            c.add(Calendar.DATE, 1); //超过20点则日期+1
//	            dqDay= new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); 
//	            sum.getObject().setWrk_ord_1("2");//晚班
//			}else if(date.getTime()<formatTime.parse(ymd+" 08:00:00").getTime()){//00点到早上08点 晚班
//				sum.getObject().setWrk_ord_1("2");//晚班
//			}else{
//				sum.getObject().setWrk_ord_1("1");//早班
//			}
			//-------------------------------------------------
			if(sum.getObject().getMachine_code()==null){
				rm.setState("200");
				return rm;
			}
			
			if(	
					sum.getObject().getSampling_value_01()==null && 
					sum.getObject().getSampling_value_02()==null &&
					sum.getObject().getSampling_value_03()==null &&
					sum.getObject().getSampling_value_04()==null &&
					sum.getObject().getSampling_value_05()==null
					){
				rm.setState("200");
				return rm;
			}
			sum.getObject().setWrk_date(dqDay);//ymd
			sum.getObject().setSampling_time(date);
			this.getMapper(MesSlitProcessDataMapper.class).doAdd(sum.getObject());
			rm.setState("200");
		}catch(Exception ex){
			//rm.setState("500");
			rm.setState("200");
//			rm.setMsgInfo("新增失败！");
//			rm.setErrorInfo(ex.getMessage());
		}
		return rm;
	}
	
	/**
	 * 分条机组作业时间统计
	 */
	public ResultModel doQueryReportWeb(CommonPage<MesSlitProcessData> sum){
		ResultModel rm=new ResultModel();
		try{
			rm.setData(this.getMapper(MesSlitProcessDataMapper.class).doQueryReport(sum.getObject()));
			rm.setState("200");
		}catch(Exception ex){
			rm.setMsgInfo("查询失败！");
			rm.setErrorInfo(ex.getMessage());
			rm.setState("500");
		}
		
		return rm;
	}
	
}
