/***文档注释***********************************************
 * 作者               :                   宋燕辉
 * 创建日期      :                   2018.07.23
 * 描述               :                  12mm pdipdo
 * 注意事项      :                   无
 * 遗留BUG :                   无
 * 修改日期      :                   
 * 修改人员      :                   
 * 修改内容      :                   
 ***********************************************************/
package market.Api.Mes.impl;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import market.Api.Lms.impl.LmsApiServiceImpl;
import market.Api.Mes.service.MesApi12mmPdiPdoService;
import market.Com.impl.PbModelDbServiceImpl;
import market.Com.mapper.ComBaseMachineMapper;
import market.Com.mapper.ComBaseSteelMapper;
import market.Com.pb.DoubleUtil;
import market.Com.pb.PropertiesUtils;
import market.Com.vo.ComBaseMachine;
import market.Com.vo.ComBaseSteel;
import market.Com.vo.CommonPage;
import market.Com.vo.ResultModel;
import market.Lms.Warehouse.mapper.YdmProductDetailMapper;
import market.Lms.Warehouse.mapper.YdmProductOutlistMapper;
import market.Lms.Warehouse.vo.YdmProductDetail;
import market.Lms.Warehouse.vo.YdmProductOutlist;
import market.Mes.Lengthwise.Performance.mapper.IfSlit01LogMapper;
import market.Mes.Lengthwise.Performance.mapper.IfSlit01PdiMapper;
import market.Mes.Lengthwise.Performance.mapper.IfSlit01PdoCoilsMapper;
import market.Mes.Lengthwise.Performance.mapper.IfSlit01PdoRejectMapper;
import market.Mes.Lengthwise.Performance.mapper.IfSlit01PdoShiftMapper;
import market.Mes.Lengthwise.Performance.mapper.MesCrSlittingDMapper;
import market.Mes.Lengthwise.Performance.mapper.MesCrSlittingMMapper;
import market.Mes.Lengthwise.Performance.mapper.MesCrSlittingTrcMapper;
import market.Mes.Lengthwise.Performance.vo.IfSlit01Pdi;
import market.Mes.Lengthwise.Performance.vo.IfSlit01PdoCoils;
import market.Mes.Lengthwise.Performance.vo.IfSlit01PdoReject;
import market.Mes.Lengthwise.Performance.vo.IfSlit01PdoShift;
import market.Mes.Lengthwise.Performance.vo.MesCrSlittingD;
import market.Mes.Lengthwise.Performance.vo.MesCrSlittingM;
import market.Mes.Lengthwise.Performance.vo.MesCrSlittingTrc;
import market.Mes.Lengthwise.Plan.mapper.PlnLengthwisePlanDetailMapper;
import market.Mes.Lengthwise.Plan.mapper.PlnLengthwisePlanMapper;
import market.Mes.Lengthwise.Plan.mapper.PlnMaterielDetailMapper;
import market.Mes.Lengthwise.Plan.mapper.PlnProcessPlanMapper;
import market.Mes.Lengthwise.Plan.vo.PlnLengthwisePlan;
import market.Mes.Lengthwise.Plan.vo.PlnLengthwisePlanDetail;
import market.Mes.Lengthwise.Plan.vo.PlnMaterielDetail;
import market.Mes.Lengthwise.Plan.vo.PlnProcessPlan;
import market.Mes.OrderManager.Plan.mapper.PlnProdorderMapper;
import market.Mes.OrderManager.Plan.vo.PlnProdorder;
import market.Mes.Shift.mapper.MesShiftDRptSltMapper;
import market.Mes.Shift.mapper.MesShiftMMapper;
import market.Mes.Shift.vo.MesShiftDRptSlt;
import market.Mes.Shift.vo.MesShiftM;
import market.Mes.anneal.vo.MesJihuaZhi;
import market.Mes.util.DateUtil;
import market.Mes.util.MesUtil;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import org.apache.log4j.Logger;
import org.springframework.transaction.annotation.Transactional;

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

@RemoteService(path = "MesApi12mmPdiPdoService")
public class MesApi12mmPdiPdoImpl extends BaseServiceImpl implements  MesApi12mmPdiPdoService{
	
	//public static String pdiohost = PropertiesUtils.getImageProperties().getProperty("PDIOHOST");
	public static String pdiohost = PropertiesUtils.getPdioProperties().getProperty("PDIOHOST");
	//获取日志记录器Logger，名字为本类类名
    private static Logger log = Logger.getLogger(MesApi12mmPdiPdoImpl.class);
	
    
    /**
	 * 12mm作业指示
	 * @param oci
	 * object:
	 * material_no:投料卷号
	 * materailcoilno：原始卷号
	 * steel_name:牌号
	 * order_no:订单号
	 * reciver_unit_name:客户名称
	 * memo1:传机台代码
	 * startTime:开始时间
	 * endTime:结束时间
	 * @return
	 */
	public ResultModel doQuery12mmWeb(CommonPage<MesJihuaZhi> oci){
		ResultModel rm=new ResultModel();
		if(oci.getMemo1()==null || "".equals(oci.getMemo1())){
			rm.setState("500");
			rm.setMsgInfo("请输入机台代码");
			return rm;
		}
		try{
			List<HashMap> lpav=this.getMapper(IfSlit01PdiMapper.class).doQueryWeb(oci.getObject(),oci.getMemo1(),oci.getMemo2(),oci.getStartTime(),oci.getEndTime(),oci.getMemo3());
			rm.setData(lpav);
			rm.setState("200");
		}catch(Exception ex){
			ex.printStackTrace();
			rm.setState("500");
			rm.setMsgInfo("查询失败!"+ex.getMessage());
		}
		return rm;
	}
    
	
	@Transactional(value="tm", rollbackFor=Exception.class)
	public String Send12mmSlitPDI(String v_mch_code,String v_plan_no,String v_object_no_vt,String v_opr_name,String v_message) throws Exception {
		//ResultModel rm=new ResultModel();
		/*
		 *   12mm分条机PDI下发
		 */
		Integer v_cnt;
		//--(1)、验证当前还未收到L2生产实绩
		v_cnt = this.getMapper(PlnLengthwisePlanDetailMapper.class).findCount(v_mch_code,v_plan_no,v_object_no_vt);
		if(v_cnt<=0){
			v_message="分条作业计划不存在！";
			return v_message;
		}
		List<PlnLengthwisePlanDetail> l_v_rec_pln_d = this.getMapper(PlnLengthwisePlanDetailMapper.class).findPmp(v_mch_code,v_plan_no,v_object_no_vt);
		PlnLengthwisePlanDetail v_rec_pln_d=l_v_rec_pln_d.get(0);
		if("2".equals(v_rec_pln_d.getSend_flag())){
			v_message="原料卷号{"+v_rec_pln_d.getObject_no()+"} 已收到L2生产实绩，不能重复下发！";
			return v_message;
		}
		//--(2)、验证当前还未生产交工
		v_cnt= this.getMapper(MesCrSlittingMMapper.class).countWithCondition(null, "schedule_no='"+v_plan_no+"' and material_no_vt='"+v_object_no_vt+"'");
		if(v_cnt>0){
			List<MesCrSlittingM> v_rec_slt_m = this.getMapper(MesCrSlittingMMapper.class).findWithCondition(null, "schedule_no='"+v_plan_no+"' and material_no_vt='"+v_object_no_vt+"'",
					null, 0, 0);
			if("1".equals(v_rec_slt_m.get(0).getHand_over_status())){
				v_message="原料卷号{"+v_rec_slt_m.get(0).getMaterial_no()+"} 已生产交工，不能重复下发！";
				return v_message;
			}
		}
		// --(3)、验证虚拟物料表中，原料卷计划信息存在
		v_cnt=this.getMapper(PlnMaterielDetailMapper.class).countWithCondition(null,"object_no_vt='"+v_object_no_vt+"'");
		if(v_cnt<=0){
			return "原料卷号{"+v_rec_pln_d.getObject_no()+"} 原料卷虚拟物料信息不存在！";
		}
		List<PlnMaterielDetail> v_rec_mat_d = this.getMapper(PlnMaterielDetailMapper.class).findWithCondition(null, "object_no_vt='"+v_object_no_vt+"'", null, 0, 0);
		
		//  --(4)、验证原料卷库存明细存在
		v_cnt = this.getMapper(YdmProductDetailMapper.class).countWithCondition(null, "coilno='"+v_rec_pln_d.getObject_no()+"'");
		if(v_cnt<=0){
			return "原料卷号{"+v_rec_pln_d.getObject_no()+"}  库存明细记录不存在！";
		}
		List<YdmProductDetail> v_rec_ydm_d = this.getMapper(YdmProductDetailMapper.class).findWithCondition(null, "coilno='"+v_rec_pln_d.getObject_no()+"'", null, 0, 0);
		
		//--(5)、获取生产订单信息
		v_cnt=this.getMapper(PlnProdorderMapper.class).countWithCondition(null, "prod_order_no='"+v_rec_mat_d.get(0).getProd_order_no()+"'");
		if(v_cnt<=0){
			return "原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"} 生产订单号{"
					+v_rec_mat_d.get(0).getProd_order_no()+"} 生产订单信息不存在！";
		}
		List<PlnProdorder> v_rec_prod = this.getMapper(PlnProdorderMapper.class).findWithCondition(null, "prod_order_no='"+v_rec_mat_d.get(0).getProd_order_no()+"'", null, 0, 0);
		//v_rec_prod.get(0).setCustomer_name(null);
		//取客户名称改为取客户简称
//		SlmCustomerInfo slmCustomerInfo = this.getMapper(SlmCustomerInfoMapper.class).findById(v_rec_prod.get(0).getCustomer_no());
//		if(slmCustomerInfo!=null){
//			v_rec_prod.get(0).setCustomer_name(slmCustomerInfo.getCustomer_abbr());
//		}
		
		
		// --(6)、获取牌号(名称)
		String v_steel_grade=null;
		List<ComBaseSteel> lcbs = this.getMapper(ComBaseSteelMapper.class).findWithCondition(null, "steel_code='"+v_rec_mat_d.get(0).getSteel_code()+"'", null, 0, 0);
		if(lcbs==null || lcbs.size()<=0){
			v_steel_grade="";
		}else{
			if(lcbs.get(0).getSteel_name()==null){
				v_steel_grade=lcbs.get(0).getSteel_code();
			}else{
				v_steel_grade=lcbs.get(0).getSteel_name();
			}
		}
		
		// --(7)、入口卷相关信息赋值
		IfSlit01Pdi v_rec_pdi=new IfSlit01Pdi();
		v_rec_pdi.setEntry_coil_id(v_rec_mat_d.get(0).getObject_no());//入口卷号
		v_rec_pdi.setMaterial_coil_width(v_rec_ydm_d.get(0).getWidth());//入口卷宽度(mm)
		v_rec_pdi.setMaterial_coil_thickness(v_rec_ydm_d.get(0).getThick());//入口卷厚度（mm）
		v_rec_pdi.setMaterial_coil_weight(v_rec_ydm_d.get(0).getFactweight());//
		if(v_rec_ydm_d.get(0).getLength()==null){
			v_rec_pdi.setMaterial_coil_length(0d);//入口卷长度（m）  赋值可能为空，在L2数据库中不能为空
		}else{
			v_rec_pdi.setMaterial_coil_length(v_rec_ydm_d.get(0).getLength());//入口卷长度（m）  赋值可能为空，在L2数据库中不能为空
		}
		
		if(v_steel_grade!=null && !"".equals(v_steel_grade)){
			v_rec_pdi.setSteel_grade(v_steel_grade);
		}else{
			// --牌号(牌号基础信息不存在，则传入牌号编码)
			v_rec_pdi.setSteel_grade(v_rec_mat_d.get(0).getSteel_code());
		}
		v_rec_pdi.setUncoiler_inner_diameter(v_rec_ydm_d.get(0).getDiameter_inn());//开卷内径
		v_rec_pdi.setProcess_type("01");//--加工类别：01= SLITTING
		v_rec_pdi.setOrder_number(v_rec_prod.get(0).getOrder_no());
		v_rec_pdi.setCustomer_name(v_rec_prod.get(0).getCustomer_name());
		v_rec_pdi.setThickness_tolerance_min(0d);//--厚度公差最小值：待确认，目前原料无此信息
		v_rec_pdi.setThickness_tolerance_max(0d);// --厚度公差最大值：待确认，目前原料无此信息
		v_rec_pdi.setWidth_tolerance_min(0d);//--宽度公差最小值：待确认，目前原料无此信息
		v_rec_pdi.setWidth_tolerance_max(0d);//--宽度公差最大值：待确认，目前原料无此信息
		// --工作模式(0= Loop / 1= Tension Mode)：待确认，开发时提醒确认此项目
		v_rec_pdi.setWorking_mode(0);
		v_rec_pdi.setRecoiler_inner_diameter(0d);//--收卷内径：待确认是否必须项，目前计划模块无法给定
		v_rec_pdi.setBabys_outer_diameter(0d);//--子卷外径：待确认是否必须项，目前计划模块无法给定
		//2018-08-21
		v_rec_pdi.setNum_of_baby_coils_1(0l);//--1段_子卷数，先置0
		v_rec_pdi.setNum_of_baby_coils_2(0l);//--2段_子卷数，先置0
		v_rec_pdi.setNum_of_baby_coils_3(0l);//--3段_子卷数，先置0
		
		//--(8)、分条子卷相关信息赋值（取生产加工表数据：PLN_PROCESS_PLAN）
		v_cnt=0;//--计数器归零
		List<PlnProcessPlan> cur01=this.getMapper(PlnProcessPlanMapper.class).findPp(v_rec_mat_d.get(0).getProd_order_no(),"");
		if(cur01!=null && cur01.size()>0){
			for(PlnProcessPlan ppp:cur01){
				// --(8.0)、根据加工计划中，CUT_NUM，确定每段子卷数（新加字段）
				v_rec_pdi.setNum_of_baby_coils_1(v_rec_pdi.getNum_of_baby_coils_1()+ppp.getCut_num());
				//-- 一切二 或 一切三
				if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
					v_rec_pdi.setNum_of_baby_coils_2(v_rec_pdi.getNum_of_baby_coils_2()+ppp.getCut_num());
				}
				if("3".equals(ppp.getCrosscut_style())){
					v_rec_pdi.setNum_of_baby_coils_3(v_rec_pdi.getNum_of_baby_coils_3()+ppp.getCut_num());
				}
				
				// --(8.1)、根据加工计划中，CUT_NUM，确定每个分条规格的条数
				for(int i=0;i<ppp.getCut_num();i++){
					v_cnt=v_cnt+1;
					if(v_cnt==1){
						//第一卷
						v_rec_pdi.setSlit_width_1(ppp.getWidth());//-- 1段_分条宽度_1
						v_rec_pdi.setOrder_number_1(ppp.getOrder_no());//-- 1段_订单号_1
						v_rec_pdi.setCustomer_name_1(v_rec_prod.get(0).getCustomer_name());//-- 1段_客户名称_1
						v_rec_pdi.setSlit_id_create_1(0);//-- 1段_是否创建子卷号_1（0= Create / 1= Not Create）
						v_rec_pdi.setCalc_weight_1(1);// -- 1段_是否计算子卷重量_1（0= Calculated / 1= Weigthted）
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							v_rec_pdi.setSlit_width_1_1(ppp.getWidth());//-- 2段_分条宽度_1
							v_rec_pdi.setOrder_number_1_1(ppp.getOrder_no());//-- 2段_订单号_1
							v_rec_pdi.setCustomer_name_1_1(v_rec_prod.get(0).getCustomer_name());//-- 2段_客户名称_1
							v_rec_pdi.setSlit_id_create_1_1(0);//-- 2段_是否创建子卷号_1（0= Create / 1= Not Create）
							v_rec_pdi.setCalc_weight_1_1(1);//-- 2段_是否计算子卷重量_1（0= Calculated / 1= Weigthted）     
						}
						if("3".equals(ppp.getCrosscut_style())){
							v_rec_pdi.setSlit_width_1_2(ppp.getWidth());// -- 3段_分条宽度_1
							v_rec_pdi.setOrder_number_1_2(ppp.getOrder_no());//-- 3段_订单号_1
							v_rec_pdi.setCustomer_name_1_2(v_rec_prod.get(0).getCustomer_name());//-- 3段_客户名称_1
							v_rec_pdi.setSlit_id_create_1_2(0);//-- 3段_是否创建子卷号_1（0= Create / 1= Not Create）
							v_rec_pdi.setCalc_weight_1_2(1);//-- 3段_是否计算子卷重量_1（0= Calculated / 1= Weigthted）
						}
					}if(v_cnt==2){
						//第2卷
						v_rec_pdi.setSlit_width_2(ppp.getWidth());
						v_rec_pdi.setOrder_number_2(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_2(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_2(0);
						v_rec_pdi.setCalc_weight_2(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_2_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_2_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_2_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_2_1(0);
							v_rec_pdi.setCalc_weight_2_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_2_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_2_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_2_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_2_2(0);
							v_rec_pdi.setCalc_weight_2_2(1);
							
						}
					}if (v_cnt==3) {
						//第3卷
						v_rec_pdi.setSlit_width_3(ppp.getWidth());
						v_rec_pdi.setOrder_number_3(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_3(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_3(0);
						v_rec_pdi.setCalc_weight_3(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_3_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_3_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_3_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_3_1(0);
							v_rec_pdi.setCalc_weight_3_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_3_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_3_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_3_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_3_2(0);
							v_rec_pdi.setCalc_weight_3_2(1);
							
						}
					}if (v_cnt==4) {
						//第4卷
						v_rec_pdi.setSlit_width_4(ppp.getWidth());
						v_rec_pdi.setOrder_number_4(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_4(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_4(0);
						v_rec_pdi.setCalc_weight_4(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_4_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_4_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_4_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_4_1(0);
							v_rec_pdi.setCalc_weight_4_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_4_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_4_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_4_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_4_2(0);
							v_rec_pdi.setCalc_weight_4_2(1);
						}
					}if (v_cnt==5) {
						//第5卷
						v_rec_pdi.setSlit_width_5(ppp.getWidth());
						v_rec_pdi.setOrder_number_5(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_5(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_5(0);
						v_rec_pdi.setCalc_weight_5(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_5_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_5_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_5_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_5_1(0);
							v_rec_pdi.setCalc_weight_5_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_5_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_5_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_5_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_5_2(0);
							v_rec_pdi.setCalc_weight_5_2(1);
						}
					}if (v_cnt==6) {
						//第6卷
						v_rec_pdi.setSlit_width_6(ppp.getWidth());
						v_rec_pdi.setOrder_number_6(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_6(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_6(0);
						v_rec_pdi.setCalc_weight_6(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_6_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_6_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_6_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_6_1(0);
							v_rec_pdi.setCalc_weight_6_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_6_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_6_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_6_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_6_2(0);
							v_rec_pdi.setCalc_weight_6_2(1);
						}
					}if (v_cnt==7) {
						//第7卷
						v_rec_pdi.setSlit_width_7(ppp.getWidth());
						v_rec_pdi.setOrder_number_7(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_7(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_7(0);
						v_rec_pdi.setCalc_weight_7(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_7_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_7_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_7_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_7_1(0);
							v_rec_pdi.setCalc_weight_7_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_7_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_7_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_7_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_7_2(0);
							v_rec_pdi.setCalc_weight_7_2(1);
						}
					}if (v_cnt==8) {
						//第8卷
						v_rec_pdi.setSlit_width_8(ppp.getWidth());
						v_rec_pdi.setOrder_number_8(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_8(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_8(0);
						v_rec_pdi.setCalc_weight_8(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_8_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_8_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_8_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_8_1(0);
							v_rec_pdi.setCalc_weight_8_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_8_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_8_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_8_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_8_2(0);
							v_rec_pdi.setCalc_weight_8_2(1);
						}
					}if (v_cnt==9) {
						//第9卷
						v_rec_pdi.setSlit_width_9(ppp.getWidth());
						v_rec_pdi.setOrder_number_9(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_9(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_9(0);
						v_rec_pdi.setCalc_weight_9(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_9_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_9_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_9_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_9_1(0);
							v_rec_pdi.setCalc_weight_9_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_9_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_9_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_9_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_9_2(0);
							v_rec_pdi.setCalc_weight_9_2(1);
						}
					}if (v_cnt==10) {
						//第10卷
						v_rec_pdi.setSlit_width_10(ppp.getWidth());
						v_rec_pdi.setOrder_number_10(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_10(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_10(0);
						v_rec_pdi.setCalc_weight_10(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_10_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_10_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_10_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_10_1(0);
							v_rec_pdi.setCalc_weight_10_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_10_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_10_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_10_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_10_2(0);
							v_rec_pdi.setCalc_weight_10_2(1);
						}
					}if (v_cnt==11) {
						//第11卷
						v_rec_pdi.setSlit_width_11(ppp.getWidth());
						v_rec_pdi.setOrder_number_11(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_11(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_11(0);
						v_rec_pdi.setCalc_weight_11(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_11_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_11_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_11_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_11_1(0);
							v_rec_pdi.setCalc_weight_11_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_11_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_11_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_11_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_11_2(0);
							v_rec_pdi.setCalc_weight_11_2(1);
						}
					}if (v_cnt==12) {
						//第12卷
						v_rec_pdi.setSlit_width_12(ppp.getWidth());
						v_rec_pdi.setOrder_number_12(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_12(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_12(0);
						v_rec_pdi.setCalc_weight_12(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_12_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_12_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_12_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_12_1(0);
							v_rec_pdi.setCalc_weight_12_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_12_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_12_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_12_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_12_2(0);
							v_rec_pdi.setCalc_weight_12_2(1);
						}
					}if (v_cnt==13) {
						//第13卷
						v_rec_pdi.setSlit_width_13(ppp.getWidth());
						v_rec_pdi.setOrder_number_13(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_13(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_13(0);
						v_rec_pdi.setCalc_weight_13(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_13_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_13_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_13_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_13_1(0);
							v_rec_pdi.setCalc_weight_13_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_13_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_13_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_13_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_13_2(0);
							v_rec_pdi.setCalc_weight_13_2(1);
						}
					}if (v_cnt==14) {
						//第14卷
						v_rec_pdi.setSlit_width_14(ppp.getWidth());
						v_rec_pdi.setOrder_number_14(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_14(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_14(0);
						v_rec_pdi.setCalc_weight_14(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_14_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_14_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_14_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_14_1(0);
							v_rec_pdi.setCalc_weight_14_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_14_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_14_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_14_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_14_2(0);
							v_rec_pdi.setCalc_weight_14_2(1);
						}
					}if (v_cnt==15) {
						//第15卷
						v_rec_pdi.setSlit_width_15(ppp.getWidth());
						v_rec_pdi.setOrder_number_15(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_15(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_15(0);
						v_rec_pdi.setCalc_weight_15(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_15_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_15_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_15_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_15_1(0);
							v_rec_pdi.setCalc_weight_15_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_15_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_15_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_15_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_15_2(0);
							v_rec_pdi.setCalc_weight_15_2(1);
						}
					}if (v_cnt==16) {
						//第16卷
						v_rec_pdi.setSlit_width_16(ppp.getWidth());
						v_rec_pdi.setOrder_number_16(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_16(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_16(0);
						v_rec_pdi.setCalc_weight_16(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_16_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_16_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_16_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_16_1(0);
							v_rec_pdi.setCalc_weight_16_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_16_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_16_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_16_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_16_2(0);
							v_rec_pdi.setCalc_weight_16_2(1);
						}
					}if (v_cnt==17) {
						//第17卷
						v_rec_pdi.setSlit_width_17(ppp.getWidth());
						v_rec_pdi.setOrder_number_17(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_17(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_17(0);
						v_rec_pdi.setCalc_weight_17(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_17_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_17_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_17_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_17_1(0);
							v_rec_pdi.setCalc_weight_17_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_17_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_17_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_17_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_17_2(0);
							v_rec_pdi.setCalc_weight_17_2(1);
						}
					}if (v_cnt==18) {
						//第18卷
						v_rec_pdi.setSlit_width_18(ppp.getWidth());
						v_rec_pdi.setOrder_number_18(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_18(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_18(0);
						v_rec_pdi.setCalc_weight_18(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_18_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_18_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_18_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_18_1(0);
							v_rec_pdi.setCalc_weight_18_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_18_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_18_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_18_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_18_2(0);
							v_rec_pdi.setCalc_weight_18_2(1);
						}
					}if (v_cnt==19) {
						//第19卷
						v_rec_pdi.setSlit_width_19(ppp.getWidth());
						v_rec_pdi.setOrder_number_19(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_19(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_19(0);
						v_rec_pdi.setCalc_weight_19(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_19_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_19_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_19_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_19_1(0);
							v_rec_pdi.setCalc_weight_19_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_19_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_19_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_19_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_19_2(0);
							v_rec_pdi.setCalc_weight_19_2(1);
						}
					}if (v_cnt==20) {
						//第20卷
						v_rec_pdi.setSlit_width_20(ppp.getWidth());
						v_rec_pdi.setOrder_number_20(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_20(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_20(0);
						v_rec_pdi.setCalc_weight_20(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_20_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_20_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_20_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_20_1(0);
							v_rec_pdi.setCalc_weight_20_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_20_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_20_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_20_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_20_2(0);
							v_rec_pdi.setCalc_weight_20_2(1);
						}
					}if (v_cnt==21) {
						//第21卷
						v_rec_pdi.setSlit_width_21(ppp.getWidth());
						v_rec_pdi.setOrder_number_21(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_21(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_21(0);
						v_rec_pdi.setCalc_weight_21(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_21_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_21_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_21_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_21_1(0);
							v_rec_pdi.setCalc_weight_21_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_21_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_21_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_21_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_21_2(0);
							v_rec_pdi.setCalc_weight_21_2(1);
						}
					}if (v_cnt==22) {
						//第22卷
						v_rec_pdi.setSlit_width_22(ppp.getWidth());
						v_rec_pdi.setOrder_number_22(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_22(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_22(0);
						v_rec_pdi.setCalc_weight_22(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_22_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_22_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_22_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_22_1(0);
							v_rec_pdi.setCalc_weight_22_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_22_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_22_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_22_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_22_2(0);
							v_rec_pdi.setCalc_weight_22_2(1);
						}
					}if (v_cnt==23) {
						//第23卷
						v_rec_pdi.setSlit_width_23(ppp.getWidth());
						v_rec_pdi.setOrder_number_23(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_23(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_23(0);
						v_rec_pdi.setCalc_weight_23(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_23_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_23_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_23_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_23_1(0);
							v_rec_pdi.setCalc_weight_23_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_23_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_23_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_23_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_23_2(0);
							v_rec_pdi.setCalc_weight_23_2(1);
						}
					}if (v_cnt==24) {
						//第24卷
						v_rec_pdi.setSlit_width_24(ppp.getWidth());
						v_rec_pdi.setOrder_number_24(ppp.getOrder_no());
						v_rec_pdi.setCustomer_name_24(v_rec_prod.get(0).getCustomer_name());
						v_rec_pdi.setSlit_id_create_24(0);
						v_rec_pdi.setCalc_weight_24(1);
						if("2".equals(ppp.getCrosscut_style()) || "3".equals(ppp.getCrosscut_style())){
							// 一切二 或一切三
							v_rec_pdi.setSlit_width_24_1(ppp.getWidth());
							v_rec_pdi.setOrder_number_24_1(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_24_1(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_24_1(0);
							v_rec_pdi.setCalc_weight_24_1(1);
						}
						if("3".equals(ppp.getCrosscut_style())){
							//一切三
							v_rec_pdi.setSlit_width_24_2(ppp.getWidth());
							v_rec_pdi.setOrder_number_24_2(ppp.getOrder_no());
							v_rec_pdi.setCustomer_name_24_2(v_rec_prod.get(0).getCustomer_name());
							v_rec_pdi.setSlit_id_create_24_2(0);
							v_rec_pdi.setCalc_weight_24_2(1);
						}
					}
				}
			}
		}
		v_rec_pdi.setSend_time(new Date());
		v_rec_pdi.setSend_opr(v_opr_name);
		
		//======================================================
		//测试所用
		//v_rec_pdi.setBabys_outer_diameter(babys_outer_diameter);
//		v_rec_pdi.setOrder_number_3_2("测试所用!!");
//		v_rec_pdi.setThickness_tolerance_max(888.88);
//		v_rec_pdi.setSlit_width_3_1(100.008);
//		v_rec_pdi.setSlit_id_create_3(0);
//		v_rec_pdi.setMaterial_coil_width(777.77);
//		v_rec_pdi.setThickness_tolerance_min(0.001);
//		v_rec_pdi.setWidth_tolerance_min(0.0021);
		//======================================================
		
	    //  --(12)、调用公司电文处理，真正下发PDI给L2（v_rec_pdi 对象）
		//  --无接口调试时，设置1，直接跳过，否则设置为0
		int v_flag=0;
		JsonConfig jsonConfig=new JsonConfig();
		jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
		jsonConfig.registerJsonValueProcessor(java.lang.Double.class, new DoubleJsonValueProcessor());
		jsonConfig.registerJsonValueProcessor(java.lang.Long.class, new LongJsonValueProcessor());
		jsonConfig.registerJsonValueProcessor(java.lang.Integer.class, new IntegerJsonValueProcessor());
		JSONObject jsonObject=JSONObject.fromObject(v_rec_pdi,jsonConfig);
		//System.out.println(jsonObject.toString());
		try{
			//System.out.println(pdiohost);
			log.debug("url:"+pdiohost);
			//http://172.16.0.76:83/v1/intpdis/
			String url = pdiohost;
	        //String url="http://172.16.0.76:83/v1/intpdis/";
			String body = jsonObject.toString();
	        RestfulHttpClient.HttpResponse response = RestfulHttpClient.getClient(url)
	                .post()              //设置post请求
	                .addPostParam("body", "json")
	                .body(body)
	                .addHeader("Content-type", "application/json")   //添加header
	                //.addPathParam("id", "2")        //设置url路径参数
	                //.addQueryParam("test", "value") //设置url请求参数
	                .request();         //发起请求
	        System.out.println(response.getCode());     //响应状态码
	        System.out.println(response.getRequestUrl());//最终发起请求的地址
	        if(response.getCode() == 200){
	            //请求成功
	            System.out.println(response.getContent());  //响应内容
	            //if("success".equals(response.getContent()) || "成功".equals(response.getContent())){//成功往L2的pdi表中插入数据
	            if(response.getContent()!=null && (response.getContent().contains("vsuccess")|| response.getContent().contains("成功"))){//成功往L2的pdi表中插入数据
	            	v_flag=1;
	            	v_message="原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"}PDI下发成功！";
	            }else{
	            	if(response.getContent()!=null && response.getContent().length()>200){
	    				v_message="原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"}已下发PDI给L2，插入失败！【"+response.getContent().substring(0,200)+"】";
	    			}else{
	    				v_message="原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"}已下发PDI给L2，插入失败！【"+response.getContent()+"】";
	    			}
	            }
	            //v_message="原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"}已下发PDI给L2！";
	        }else{
	        	v_message="原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"}下发PDI给L2失败！发送请求失败！";
	        }
		}catch(Exception e){
			e.printStackTrace();
			v_message="原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"}下发PDI给L2失败！【通讯过程出错："+e.getMessage()+"】";
		}
		if(v_flag==0){
			v_message="电文发送失败！"+v_message;
			return v_message;
		}
		
		//  --(9)、插入PDI记录表
		this.getMapper(IfSlit01PdiMapper.class).insert(v_rec_pdi);
		
		//  --(10)、修改作业计划表下发L2状态
		this.getMapper(PlnLengthwisePlanDetailMapper.class).updatePpd(v_plan_no,v_object_no_vt,v_opr_name);
		
		//--(11)、提交事务
		//v_message= "原料卷号{"+v_rec_mat_d.get(0).getObject_no()+"} PDI下发成功！";
		
		return v_message;
	}
	
	
	public String Receive12mmSlitPDO_Coils_list(List<IfSlit01PdoCoils> jsonList){
		StringBuilder v_message=new StringBuilder();
		for(IfSlit01PdoCoils json:jsonList){
			v_message.append(json.getMsgcounter()+"-");
			v_message.append(Receive12mmSlitPDO_Coils(json));
		}
		return v_message.toString();
	}
	/**
	 * 此接口为纯后台逻辑，不与前端页面交互，由L2接口系统收到12mm分条机子卷实绩PDO时调用；																																							
	         此接口参数为JSON对象（对象结构见数据库表 IF_SLIT01_PDO_COILS）；																																							
	 * @param json
	 * @return
	 */
	public String Receive12mmSlitPDO_Coils(IfSlit01PdoCoils json){
	   String v_message="";

		IfSlit01PdoCoils  v_rec_pdo_coils=json;
		if(v_rec_pdo_coils==null){
			//v_message="参数错误：二级接口-12mm纵剪PDO-子卷实绩为空";
			v_message="500";
			return v_message;
		}
		//   --(2)、如果电文中（接口参数）未包含消息时间（MSG_TIME），或为空值，则赋值为当前时刻
		if(v_rec_pdo_coils.getMsg_time()==null){
			v_rec_pdo_coils.setMsg_time(new Date());
		}
		//  --(3)、将对象，插入PDO子卷实绩表（单独的事务）  
		try{
			this.getMapper(IfSlit01PdoCoilsMapper.class).insert(v_rec_pdo_coils);
		}catch(Exception e){
			e.printStackTrace();
		}
		//  --(4)、调用处理PDO子卷实绩函数（事务在函数内）
		try{
			v_message=this.getBean(MesApi12mmPdiPdoImpl.class).Receive12mmSlitPDO_Coils_D(v_rec_pdo_coils, v_message);
		}catch(Exception e){
			e.printStackTrace();
			v_message=e.getMessage();
			//throw new Exception(e.getMessage());
		}finally{
			//  --(5)、拼接返回字符串
			v_message = "入口卷号{"+v_rec_pdo_coils.getEntry_coil_id()+"}"+v_message;
			//  --(6)、写接口日志：与业务处理分开，单独的事务
			try{
				 this.getMapper(IfSlit01LogMapper.class).insertIf_slit01_log(null,"Receive12mmSlitPDO_Coils","",v_message);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	  	return v_message;
	}
	
	/**
	 *  1)、	此函数为JAVA后台内调函数，可考虑将方法设为私有，由接口 Receive12mmSlitPDO_Coils 调用；																																							
		1)、	接口参数 IN：V_REC_PDO_COILS（PDO子卷实绩实体对象实例）																																							
		2)、	接口参数 OUT：V_MESSAGE（操作结果信息）																																							
	 * @param v_rec_pdo_coils
	 * @param v_message
	 * @return
	 * @throws Exception
	 */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public String Receive12mmSlitPDO_Coils_D(IfSlit01PdoCoils v_rec_pdo_coils,String v_message) throws Exception{
		//--请定义为常量：12mm分条机代码，用于判断 
		final String v_mch_code="M0002";
		Integer v_cnt;
		//  --(1)、如果对象中入口卷号为空，则返回错误信息
		if(v_rec_pdo_coils.getEntry_coil_id()==null || "".equals(v_rec_pdo_coils.getEntry_coil_id())){
			v_message="电文入口卷号为空，无法处理！";
			return v_message;
		}
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); 
		Date creaTime = new Date();
		String createTime = formatter.format(creaTime);
		try{
			/*
			   --处理逻辑思路：																																							
			  --将用户通过页面按钮操作的相关处理，如上料、批量新增子卷、称重保存等功能																																							
			  --按L2系统返回的子卷实绩，生成上述相关业务数据																																							
			 */
			//  --(2)、通过PDO入口卷号，去找分条作业计划明细记录（存在一条记录才合理）
			 v_cnt = this.getMapper(PlnLengthwisePlanDetailMapper.class).countWithCondition(null,
					"object_no='"+v_rec_pdo_coils.getEntry_coil_id()+"'");
			if(v_cnt<=0){
				v_message="分条作业计划明细记录不存在！";
				return v_message;
			}else if(v_cnt>=2){
				v_message="存在2条或以上分条作业计划明细记录！";
				return v_message;
			}
			List<PlnLengthwisePlanDetail> v_rec_pln_d = this.getMapper(PlnLengthwisePlanDetailMapper.class).findWithCondition(null, "object_no='"+v_rec_pdo_coils.getEntry_coil_id()+"'",
					null, 0, 0);
			
			// --(3)、验证分条作业计划主记录
			v_cnt = this.getMapper(PlnLengthwisePlanMapper.class).countWithCondition(null,"lw_plan_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"'");
			if(v_cnt<=0){
				v_message="作业计划号{"+v_rec_pln_d.get(0).getLw_plan_no()+"} 分条作业计划主记录不存在！";
				return v_message;
			}
			List<PlnLengthwisePlan> v_rec_pln_m = this.getMapper(PlnLengthwisePlanMapper.class).findWithCondition(null, "lw_plan_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"'", 
					null, 0, 0);
			if(!v_mch_code.equals(v_rec_pln_m.get(0).getMachine_code())){
				v_message="作业计划号{"+v_rec_pln_m.get(0).getLw_plan_no()+"} 机台代码{"+v_rec_pln_m.get(0).getMachine_code()+"}错误！12mm分条机正确的机台代码为{"+v_mch_code+"}";
				return v_message;
			}
			// --(4)、如果已有生产实绩（人工操作或L2重复发送PDO情况下），且已交工，则返回（忽略此PDO子卷实绩）
			List<MesCrSlittingM> v_rec_slt_m=new ArrayList<>();
			v_cnt = this.getMapper(MesCrSlittingMMapper.class).countWithCondition(null,"schedule_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"' and material_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'");
			if(v_cnt>0){
				v_rec_slt_m= this.getMapper(MesCrSlittingMMapper.class).findWithCondition(null, "schedule_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"' and material_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'", 
						null, 0, 0);
				if("1".equals(v_rec_slt_m.get(0).getHand_over_status())){
					v_message="作业计划号{"+v_rec_pln_d.get(0).getLw_plan_no()+"} 已生产交工，忽略此PDO子卷实绩！";
					return v_message;
				}
			}
			
			/*
			 * 这里
			 */
			//  --(5)、验证虚拟物料表中，原料卷计划信息存在
			v_cnt=this.getMapper(PlnMaterielDetailMapper.class).countWithCondition(null, "object_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'");
			if(v_cnt<=0){
				v_message="虚拟原料卷号{"+v_rec_pln_d.get(0).getObject_no_vt()+"} 原料卷虚拟物料信息不存在！";
				return v_message;
			}
			List<PlnMaterielDetail> v_rec_mat_d = this.getMapper(PlnMaterielDetailMapper.class).findWithCondition(null, "object_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'", null, 0, 0);
			if(!v_rec_pdo_coils.getEntry_coil_id().equals(v_rec_mat_d.get(0).getObject_no())){
				v_message="与原料卷虚拟物料信息中钢卷号{"+v_rec_mat_d.get(0).getObject_no()+"}不一致！";
				return v_message;
			}
			//  --(6)、验证原料卷库存明细存在
			v_cnt = this.getMapper(YdmProductDetailMapper.class).countWithCondition(null,"coilno='"+v_rec_pdo_coils.getEntry_coil_id()+"'");
			if(v_cnt<=0){
				v_message="库存明细记录不存在！";
				return v_message;
			}
			List<YdmProductDetail> v_rec_ydm_d = this.getMapper(YdmProductDetailMapper.class).findWithCondition(null, "coilno='"+v_rec_pdo_coils.getEntry_coil_id()+"'",
					null, 0, 0);
			//  --(7)、验证机台基础信息存在
			v_cnt = this.getMapper(ComBaseMachineMapper.class).countWithCondition(null,"machine_code='"+v_mch_code+"'");
			if(v_cnt<=0){
				v_message="机台代码{"+v_mch_code+"} 机台基础信息不存在！";
				return v_message;
			}
			//  --（7.1）、获取机台基础信息表中，配置的机台设备代号（设备编号，如1,2,3）
			List<ComBaseMachine> lcbm = this.getMapper(ComBaseMachineMapper.class).findWithCondition(null,
					"machine_code='"+v_mch_code+"'", null, 0, 0);
			String v_machine_mark=lcbm.get(0).getMachine_mark();
			if(v_machine_mark==null){
				v_message="机台代码{"+v_mch_code+"} 设备编号未配置，无法创建作业记录号！";
				return v_message;
			}
			
			//2018-11-29 只有是已下发状态的钢卷才能下发
			if(v_rec_pln_d!=null && v_rec_pln_d.size()>0){
				if(!("5BLW02".equals(v_rec_pln_d.get(0).getStatus()) || "5BLW03".equals(v_rec_pln_d.get(0).getStatus()))){
					v_message="当前状态{"+v_rec_pln_d.get(0).getStatus()+"}错误";
					return v_message;
				}
			}
			
			/*
			 --（7.2）、大写字母'F' + 6位日期（YYMMDD，取数据库时间） + 2位纵剪设备编号（不足位前面补0）																																							
	  		 --（7.3）、注意：页面操作的首字母为'S'，通过L2实绩自动创建的记录，首字母为'F'，以示区别																																							
			 */
			ResultModel rmDb=this.getBean(PbModelDbServiceImpl.class).findDbTime();
			String dbTime=rmDb.getData().toString().substring(0,10);
			String v_process_no="F"+dbTime.substring(2, 4)+dbTime.substring(5, 7)+dbTime.substring(8, 10)+lpad(v_machine_mark,2,"0");
			Integer count=this.getMapper(MesCrSlittingMMapper.class).findByProces(v_process_no,"");
			if(count==null){
				count=1;//当天的第一条
			}
			//  --（7.4）、生产处理号PROCESS_NO的生成规则：固定1位大写字母'F' + 6位日期（YYMMDD） + 2位纵剪设备编号（1） + 3位流水号（001 - 999）
			v_process_no=v_process_no+lpad(count+"",3,"0");
			//  --（8）、根据当前时刻，计算日期班次
			String wrk_date=null,wrk_ord=null,wrk_grp=null;
			if("200".equals(rmDb.getState())){
				dbTime=rmDb.getData().toString().substring(11);
				wrk_date=rmDb.getData().toString().substring(0,10);
				
				if(dbTime.compareTo(DateUtil.NBeginTime)>-1&&dbTime.compareTo(DateUtil.BeginTime)<0){
					wrk_ord="1";
				}else if(dbTime.compareTo(DateUtil.BeginTime)>-1&&dbTime.compareTo(DateUtil.EndTime)<0){
					wrk_ord="2";
				}else if(dbTime.compareTo(DateUtil.EndTime)>-1&&dbTime.compareTo(DateUtil.NEndTime)<0){
					wrk_ord="1";
					SimpleDateFormat formatYmd = new SimpleDateFormat("yyyy-MM-dd");
					Date date;
					try {
						date = formatYmd.parse(wrk_date);
					} catch (Exception e) {
						throw new Exception("获取数据库时间失败，请稍后重试");
					}
					Calendar c = Calendar.getInstance();  
	    	        c.setTime(date);  
	    	        c.add(Calendar.DAY_OF_MONTH, 1);//日期+1 
					wrk_date=formatYmd.format(c.getTime());
				}
			}else{
				throw new Exception("获取数据库时间失败！请稍后重试");
			}
			//  --（8.4）、根据计算的日期班次，获取交接班记录的班组
			MesShiftM msm=new MesShiftM();
			msm.setMachine_code(v_mch_code);
			msm.setWrk_date(wrk_date);
			msm.setWrk_ord(wrk_ord);
			v_cnt=this.getMapper(MesShiftMMapper.class).count(msm);
			if(v_cnt<=0){
				wrk_grp="0";//--暂无交接班记录，则设置为0：常白班，由用户到页面上调整
			}else{
				List<MesShiftM> lmsm = this.getMapper(MesShiftMMapper.class).find(msm, 0, 0);
				wrk_grp=lmsm.get(0).getWrk_grp();
			}
			//  --(9)、获取横切方式（:1：不横切、2：一切二、3：一切三）
			String v_crs_cut_mode=null;
			try{
				v_crs_cut_mode=this.getMapper(PlnProcessPlanMapper.class).findPp1(v_rec_mat_d.get(0).getProd_order_no(), "");
			}catch(Exception e){
				e.printStackTrace();
			}
			double v_ttl_width=0;
			double v_ttl_weight=0;
			List<MesCrSlittingD> lipc=new ArrayList<>();
			//  --(10)、创建各子卷实绩对象集合 v_rec_slt_d，元素为 mes_cr_slitting_d 对象，缓存PDO各子卷宽度、重量（实重）
			if(v_rec_pdo_coils.getSlit_1_id()!=null && v_rec_pdo_coils.getWidth_1()!=null 
					&& v_rec_pdo_coils.getWeigth_1()!=null){
				//第1卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_1());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_1());//--子卷实绩对象实重赋值
				mcsm.setXh(1);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_1();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_1();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_1());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_1());
			}
			if(v_rec_pdo_coils.getSlit_2_id()!=null && v_rec_pdo_coils.getWidth_2()!=null
					&& v_rec_pdo_coils.getWeigth_2()!=null){
				//第2卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_2());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_2());//--子卷实绩对象实重赋值
				mcsm.setXh(2);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_2();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_2();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_2());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_2());
			}
			if(v_rec_pdo_coils.getSlit_3_id()!=null && v_rec_pdo_coils.getWidth_3()!=null
					&& v_rec_pdo_coils.getWeigth_3()!=null){
				//第3卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_3());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_3());//--子卷实绩对象实重赋值
				mcsm.setXh(3);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_3();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_3();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_3());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_3());
			}
			if(v_rec_pdo_coils.getSlit_4_id()!=null && v_rec_pdo_coils.getWidth_4()!=null
					&& v_rec_pdo_coils.getWeigth_4()!=null){
				//第4卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_4());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_4());//--子卷实绩对象实重赋值
				mcsm.setXh(4);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_4();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_4();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_4());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_4());
			}
			if(v_rec_pdo_coils.getSlit_5_id()!=null && v_rec_pdo_coils.getWidth_5()!=null
					&& v_rec_pdo_coils.getWeigth_5()!=null){
				//第5卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_5());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_5());//--子卷实绩对象实重赋值
				mcsm.setXh(5);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_5();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_5();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_5());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_5());
			}
			if(v_rec_pdo_coils.getSlit_6_id()!=null && v_rec_pdo_coils.getWidth_6()!=null
					&& v_rec_pdo_coils.getWeigth_6()!=null){
				//第6卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_6());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_6());//--子卷实绩对象实重赋值
				mcsm.setXh(6);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_6();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_6();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_6());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_6());
			}
			if(v_rec_pdo_coils.getSlit_7_id()!=null && v_rec_pdo_coils.getWidth_7()!=null
					&& v_rec_pdo_coils.getWeigth_7()!=null){
				//第7卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_7());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_7());//--子卷实绩对象实重赋值
				mcsm.setXh(7);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_7();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_7();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_7());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_7());
			}
			if(v_rec_pdo_coils.getSlit_8_id()!=null && v_rec_pdo_coils.getWidth_8()!=null
					&& v_rec_pdo_coils.getWeigth_8()!=null){
				//第8卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_8());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_8());//--子卷实绩对象实重赋值
				mcsm.setXh(8);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_8();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_8();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_8());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_8());
			}
			if(v_rec_pdo_coils.getSlit_9_id()!=null && v_rec_pdo_coils.getWidth_9()!=null
					&& v_rec_pdo_coils.getWeigth_9()!=null){
				//第9卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_9());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_9());//--子卷实绩对象实重赋值
				mcsm.setXh(9);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_9();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_9();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_9());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_9());
			}
			if(v_rec_pdo_coils.getSlit_10_id()!=null && v_rec_pdo_coils.getWidth_10()!=null
					&& v_rec_pdo_coils.getWeigth_10()!=null){
				//第10卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_10());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_10());//--子卷实绩对象实重赋值
				mcsm.setXh(10);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_10();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_10();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_10());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_10());
			}
			if(v_rec_pdo_coils.getSlit_11_id()!=null && v_rec_pdo_coils.getWidth_11()!=null
					&& v_rec_pdo_coils.getWeigth_11()!=null){
				//第11卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_11());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_11());//--子卷实绩对象实重赋值
				mcsm.setXh(11);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_11();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_11();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_11());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_11());
			}
			if(v_rec_pdo_coils.getSlit_12_id()!=null && v_rec_pdo_coils.getWidth_12()!=null
					&& v_rec_pdo_coils.getWeigth_12()!=null){
				//第12卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_12());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_12());//--子卷实绩对象实重赋值
				mcsm.setXh(12);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_12();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_12();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_12());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_12());
			}
			if(v_rec_pdo_coils.getSlit_13_id()!=null && v_rec_pdo_coils.getWidth_13()!=null
					&& v_rec_pdo_coils.getWeigth_13()!=null){
				//第13卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_13());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_13());//--子卷实绩对象实重赋值
				mcsm.setXh(13);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_13();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_13();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_13());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_13());
			}
			if(v_rec_pdo_coils.getSlit_14_id()!=null && v_rec_pdo_coils.getWidth_14()!=null
					&& v_rec_pdo_coils.getWeigth_14()!=null){
				//第14卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_14());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_14());//--子卷实绩对象实重赋值
				mcsm.setXh(14);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_14();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_14();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_14());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_14());
			}
			if(v_rec_pdo_coils.getSlit_15_id()!=null && v_rec_pdo_coils.getWidth_15()!=null
					&& v_rec_pdo_coils.getWeigth_15()!=null){
				//第15卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_15());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_15());//--子卷实绩对象实重赋值
				mcsm.setXh(15);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_15();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_15();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_15());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_15());
			}
			if(v_rec_pdo_coils.getSlit_16_id()!=null && v_rec_pdo_coils.getWidth_16()!=null
					&& v_rec_pdo_coils.getWeigth_16()!=null){
				//第16卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_16());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_16());//--子卷实绩对象实重赋值
				mcsm.setXh(16);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_16();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_16();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_16());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_16());
			}
			if(v_rec_pdo_coils.getSlit_17_id()!=null && v_rec_pdo_coils.getWidth_17()!=null
					&& v_rec_pdo_coils.getWeigth_17()!=null){
				//第17卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_17());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_17());//--子卷实绩对象实重赋值
				mcsm.setXh(17);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_17();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_17();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_17());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_17());
			}
			if(v_rec_pdo_coils.getSlit_18_id()!=null && v_rec_pdo_coils.getWidth_18()!=null
					&& v_rec_pdo_coils.getWeigth_18()!=null){
				//第18卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_18());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_18());//--子卷实绩对象实重赋值
				mcsm.setXh(18);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_18();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_18();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_18());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_18());
			}
			if(v_rec_pdo_coils.getSlit_19_id()!=null && v_rec_pdo_coils.getWidth_19()!=null
					&& v_rec_pdo_coils.getWeigth_19()!=null){
				//第19卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_19());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_19());//--子卷实绩对象实重赋值
				mcsm.setXh(19);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_19();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_19();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_19());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_19());
			}
			if(v_rec_pdo_coils.getSlit_20_id()!=null && v_rec_pdo_coils.getWidth_20()!=null
					&& v_rec_pdo_coils.getWeigth_20()!=null){
				//第20卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_20());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_20());//--子卷实绩对象实重赋值
				mcsm.setXh(20);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_20();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_20();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_20());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_20());
			}
			if(v_rec_pdo_coils.getSlit_21_id()!=null && v_rec_pdo_coils.getWidth_21()!=null
					&& v_rec_pdo_coils.getWeigth_21()!=null){
				//第21卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_21());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_21());//--子卷实绩对象实重赋值
				mcsm.setXh(21);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_21();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_21();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_21());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_21());
			}
			if(v_rec_pdo_coils.getSlit_22_id()!=null && v_rec_pdo_coils.getWidth_22()!=null
					&& v_rec_pdo_coils.getWeigth_22()!=null){
				//第22卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_22());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_22());//--子卷实绩对象实重赋值
				mcsm.setXh(22);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_22();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_22();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_22());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_22());
			}
			if(v_rec_pdo_coils.getSlit_23_id()!=null && v_rec_pdo_coils.getWidth_23()!=null
					&& v_rec_pdo_coils.getWeigth_23()!=null){
				//第23卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_23());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_23());//--子卷实绩对象实重赋值
				mcsm.setXh(23);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_23();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_23();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_23());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_23());
			}
			if(v_rec_pdo_coils.getSlit_24_id()!=null && v_rec_pdo_coils.getWidth_24()!=null
					&& v_rec_pdo_coils.getWeigth_24()!=null){
				//第24卷
				MesCrSlittingD mcsm=new MesCrSlittingD();
				mcsm.setAct_wdt(v_rec_pdo_coils.getWidth_24());//--子卷实绩对象宽度赋值
				mcsm.setCoil_act_wgt(v_rec_pdo_coils.getWeigth_24());//--子卷实绩对象实重赋值
				mcsm.setXh(24);
				lipc.add(mcsm);
				//v_ttl_width+=v_rec_pdo_coils.getWidth_24();//--计算宽度之和
				//v_ttl_weight+=v_rec_pdo_coils.getWeigth_24();//--计算实重之和
				v_ttl_width=DoubleUtil.add(v_ttl_width, v_rec_pdo_coils.getWidth_24());
				v_ttl_weight=DoubleUtil.add(v_ttl_weight, v_rec_pdo_coils.getWeigth_24());
			}
			//  --(11)、获取横切方式（:1：不横切、2：一切二、3：一切三）
			if(lipc.size()<=0 || v_ttl_width<=0){
				v_message="无子卷信息，或子卷宽度之和≤0！";
				return v_message;
			}
			//2018-09-06 
			if(v_ttl_weight<=0){
				v_message="子卷重量之和≤0！";
				return v_message;
			}
			
			//==2018-11-21==
			if(v_rec_slt_m.size()>0){
				if(v_rec_slt_m.get(0).getProcess_no()!=null){
					List<MesCrSlittingD> list = this.getMapper(MesCrSlittingDMapper.class).findWithCondition(null, 
							"process_no='"+v_rec_slt_m.get(0).getProcess_no()+"'", null, 0, 0);
					if(list!=null && list.size()>0){
						MesCrSlittingM mcsm2=new MesCrSlittingM();
						mcsm2.setProcess_no(v_rec_slt_m.get(0).getProcess_no());
						mcsm2.setTime_loading_time(v_rec_pdo_coils.getTime_loading_time());//上料时长（sec）																																							
						//mcsm.setUncoil_time(v_rec_pdo_coils.getUncoil_time());//开卷时长（sec）																																							
//						mcsm.setCut_str_time(v_rec_pdo_coils.getLengthways_cutting_time());//纵切开始时刻																																							
//						mcsm.setCut_end_time(v_rec_pdo_coils.getFinished_time_cuting());//纵切结束时刻	
						mcsm2.setCut_str_time(v_rec_pdo_coils.getSliting_start_time());//纵切开始时刻	
						mcsm2.setCut_end_time(v_rec_pdo_coils.getSliting_end_time());//纵切结束时刻	
						mcsm2.setDecoil_time(v_rec_pdo_coils.getDecoil_time());//开卷时间
						
						mcsm2.setDecoil_tension_max(v_rec_pdo_coils.getMax_uncoiler_tension());//开卷张力最大值（Newton/mm2）																																							
						mcsm2.setDecoil_tension_min(v_rec_pdo_coils.getMin_uncoiler_tension());//开卷张力最小值（Newton/mm2）																																							
						mcsm2.setDecoil_tension(v_rec_pdo_coils.getAverage_uncoiler_tension());//开卷张力平均值（Newton/mm2）																																							
						mcsm2.setThread_speed_max(v_rec_pdo_coils.getMax_coil_cross_speed());//穿带速度最大值（m/min）																																							
						mcsm2.setProcess_speed_max(v_rec_pdo_coils.getMax_line_speed());//线速度最大值（m/min）																																							
						mcsm2.setProcess_speed_min(v_rec_pdo_coils.getMin_line_speed());//线速度最小值（m/min）																																							
						mcsm2.setProcess_speed(v_rec_pdo_coils.getAverage_line_speed());//线速度平均值（m/min）																																							
						mcsm2.setCoil_tension_max(v_rec_pdo_coils.getMax_recoiler_tension());//收卷张力最大值（Newton/mm2）																																							
						mcsm2.setCoil_tension_min(v_rec_pdo_coils.getMin_recoiler_tension());//收卷张力最小值（Newton/mm2）																																							
						mcsm2.setCoil_tension(v_rec_pdo_coils.getAverage_recoiler_tension());//收卷张力平均值（Newton/mm2）																																							
						mcsm2.setEnergy_expended_coil_process(v_rec_pdo_coils.getEnergy_expended_coil_process());//电耗（kwh）	
						mcsm2.setUpdate_opr("L2_PDO");
						mcsm2.setUpdate_time(new Date());
						//  --(14)、插入分条主实绩
						this.getMapper(MesCrSlittingMMapper.class).update(mcsm2);
						
						v_message="投料卷号【"+v_rec_pdo_coils.getEntry_coil_id()+"】已存在分条子卷实绩，忽略此PDO子卷实绩！";
						return v_message;
					}
				}
			}
			
			MesCrSlittingM mcsm=new MesCrSlittingM();
			//--(12)、v_rec_slt_m 对象为可能存在的分条主实绩（前面已获取）																																							
			//--(12.1)、如果对象不为空，并且对象的 process_no 属性不为空：
			if(v_rec_slt_m.size()>0){
				if(v_rec_slt_m.get(0).getProcess_no()!=null){
					mcsm=v_rec_slt_m.get(0);
					//    --(12.2)、删除可能存在的分条子卷实绩
					MesCrSlittingD d=new MesCrSlittingD();
					d.setProcess_no(v_rec_slt_m.get(0).getProcess_no());
					this.getMapper(MesCrSlittingDMapper.class).doDelete(d);
					//    --(12.3)、删除可能存在的分条主实绩
					this.getMapper(MesCrSlittingMMapper.class).delete(v_rec_slt_m.get(0).getProcess_no());
				}
			}
			//  --(13)、在 v_rec_slt_m 对象基础上，构建分条主记录：保留原有吊销卷等相关信息
			//v_rec_slt_m.get
			//MesCrSlittingM mcsm=new MesCrSlittingM();
			//mcsm=v_rec_slt_m.get(0);
			mcsm.setProcess_no(v_process_no);
			mcsm.setMachine_code(v_mch_code);
			mcsm.setSchedule_no(v_rec_pln_d.get(0).getLw_plan_no());
			mcsm.setInner_seq(v_rec_pln_d.get(0).getLw_seq());//Long转int
			mcsm.setMaterial_no_vt(v_rec_mat_d.get(0).getObject_no_vt());
			mcsm.setPln_steel_code(v_rec_mat_d.get(0).getSteel_code());
			mcsm.setPln_mtr_thk(v_rec_mat_d.get(0).getThick());
			mcsm.setPln_mtr_wdt(v_rec_mat_d.get(0).getWidth());
			mcsm.setPln_mtr_len(v_rec_mat_d.get(0).getLength());
			mcsm.setPln_mtr_inn_dia(v_rec_mat_d.get(0).getDiameter_inn());
			mcsm.setPln_mtr_out_dia(v_rec_mat_d.get(0).getDiameter_out());
			mcsm.setPln_mtr_thr_wgt(v_rec_mat_d.get(0).getSingle_weight());
			mcsm.setMaterial_no(v_rec_pdo_coils.getEntry_coil_id());
			mcsm.setSteel_code(v_rec_ydm_d.get(0).getSteelcode());
			mcsm.setMtr_thk(v_rec_ydm_d.get(0).getThick());
			mcsm.setMtr_wdt(v_rec_ydm_d.get(0).getWidth());
			mcsm.setMtr_len(v_rec_ydm_d.get(0).getLength());
			mcsm.setMtr_inn_dia(v_rec_ydm_d.get(0).getDiameter_inn());
			mcsm.setMtr_out_dia(v_rec_ydm_d.get(0).getDiameter_out());
			if(v_rec_ydm_d.get(0).getTheoryweight()!=null){
				mcsm.setMtr_thr_wgt(v_rec_ydm_d.get(0).getTheoryweight());
			}else{
				mcsm.setMtr_thr_wgt(v_rec_ydm_d.get(0).getFactweight());
			}
			mcsm.setMtr_act_wgt(v_rec_ydm_d.get(0).getFactweight());
			mcsm.setWrk_date(wrk_date);
			mcsm.setWrk_ord(wrk_ord);
			if(!"0".equals(wrk_grp) && v_rec_slt_m!=null && v_rec_slt_m.size()>0 && v_rec_slt_m.get(0).getWrk_grp()==null){
				mcsm.setWrk_grp(wrk_grp);// --作业班组（0常白班、1甲班、2乙班、3丙班、4丁班）
			}
			if(mcsm.getFeeding_time()==null){
				//    --原上料时间为空，才更新为当前时刻
				mcsm.setFeeding_time(new Date());
			}
			if(mcsm.getCrs_cut_mode()==null){
				mcsm.setCrs_cut_mode(v_crs_cut_mode);// --横切方式（:1：不横切、2：一切二、3：一切三）
			}
			//2018-08-21
			mcsm.setTime_loading_time(v_rec_pdo_coils.getTime_loading_time());//上料时长（sec）																																							
			//mcsm.setUncoil_time(v_rec_pdo_coils.getUncoil_time());//开卷时长（sec）																																							
//			mcsm.setCut_str_time(v_rec_pdo_coils.getLengthways_cutting_time());//纵切开始时刻																																							
//			mcsm.setCut_end_time(v_rec_pdo_coils.getFinished_time_cuting());//纵切结束时刻	
			mcsm.setCut_str_time(v_rec_pdo_coils.getSliting_start_time());//纵切开始时刻	
			mcsm.setCut_end_time(v_rec_pdo_coils.getSliting_end_time());//纵切结束时刻	
			mcsm.setDecoil_time(v_rec_pdo_coils.getDecoil_time());//开卷时间
			
			mcsm.setDecoil_tension_max(v_rec_pdo_coils.getMax_uncoiler_tension());//开卷张力最大值（Newton/mm2）																																							
			mcsm.setDecoil_tension_min(v_rec_pdo_coils.getMin_uncoiler_tension());//开卷张力最小值（Newton/mm2）																																							
			mcsm.setDecoil_tension(v_rec_pdo_coils.getAverage_uncoiler_tension());//开卷张力平均值（Newton/mm2）																																							
			mcsm.setThread_speed_max(v_rec_pdo_coils.getMax_coil_cross_speed());//穿带速度最大值（m/min）																																							
			mcsm.setProcess_speed_max(v_rec_pdo_coils.getMax_line_speed());//线速度最大值（m/min）																																							
			mcsm.setProcess_speed_min(v_rec_pdo_coils.getMin_line_speed());//线速度最小值（m/min）																																							
			mcsm.setProcess_speed(v_rec_pdo_coils.getAverage_line_speed());//线速度平均值（m/min）																																							
			mcsm.setCoil_tension_max(v_rec_pdo_coils.getMax_recoiler_tension());//收卷张力最大值（Newton/mm2）																																							
			mcsm.setCoil_tension_min(v_rec_pdo_coils.getMin_recoiler_tension());//收卷张力最小值（Newton/mm2）																																							
			mcsm.setCoil_tension(v_rec_pdo_coils.getAverage_recoiler_tension());//收卷张力平均值（Newton/mm2）																																							
			mcsm.setEnergy_expended_coil_process(v_rec_pdo_coils.getEnergy_expended_coil_process());//电耗（kwh）	
			
			
			mcsm.setUpdate_opr("L2_PDO");
			mcsm.setUpdate_time(new Date());
			//  --(14)、插入分条主实绩
			this.getMapper(MesCrSlittingMMapper.class).insert(mcsm);
			
			//  --(15)、以下处理子卷实绩：
			//  --(15.1)、子卷编码前缀：原料卷号（最初始原料卷号） + 1位工序代号（分条F）+ 2位设备代号（01-99）
			String v_coil_no=v_rec_pdo_coils.getEntry_coil_id().substring(0, 8)+"F"+lpad(v_machine_mark,2,"0");
			//  --(15.2)、根据已有子卷，获取当前起始流水号
			v_cnt= this.getMapper(MesCrSlittingDMapper.class).doQueryD(v_coil_no);
			if(v_cnt==null){
				v_cnt=1;
			}else if(v_cnt+lipc.size()-1>99){
				v_message="子卷号超出规则范围，流水号超出最大值99！";
				throw new Exception(v_message);
			}
			//
			double v_tmp_weight = 0; // --清零
		    // --(15.3)、循环上面创建的子卷对象集合（JAVA编码时，使用集合对象，一定要按子卷的真实顺序排序）
			//v_rec_slt_m.get(0) 為 mcsm
			//对子卷集合排序
			MesUtil.sortIntMethod(lipc);  
			int i=0;
			for(MesCrSlittingD mcsd:lipc){
				i++;
				//--(15.4)、子卷编码规则：子卷编码前缀【原料卷号（最初始原料卷号） + 1位工序代号（分条F）+ 2位设备代号（01-99）】+ 2位流水（01 - 99）
				v_coil_no=v_rec_pdo_coils.getEntry_coil_id().substring(0, 8)+"F"+lpad(v_machine_mark,2,"0")+lpad(v_cnt+"",2,"0");
				mcsd.setCoil_no(v_coil_no);
				mcsd.setProcess_no(mcsm.getProcess_no());
				mcsd.setWrk_date(mcsm.getWrk_date());
				mcsd.setWrk_ord(mcsm.getWrk_ord());
				mcsd.setWrk_grp(mcsm.getWrk_grp());
				mcsd.setSteel_code(v_rec_mat_d.get(0).getSteel_code());
				mcsd.setAim_thk(v_rec_mat_d.get(0).getThick());
				mcsd.setAim_wdt(mcsd.getAct_wdt());//--目标宽度（取实际宽度）
				mcsd.setAim_len(null);
				mcsd.setAim_inn_dia(null);
				mcsd.setAim_out_dia(null);
				//2018-08-19
				//mcsd.setAct_thk(v_rec_mat_d.get(0).getThick());
				mcsd.setAct_thk(v_rec_ydm_d.get(0).getThick());
				
				mcsd.setAct_len(null);
				//mcsd.setAct_inn_dia(null);
				//mcsd.setAct_out_dia(null);
				mcsd.setAct_inn_dia(v_rec_pdo_coils.getBabys_inner_diameter());
				mcsd.setAct_out_dia(v_rec_pdo_coils.getBabys_outer_diameter());
				
				
				//根据前端传入的子卷卷号集合，按各子卷的宽度占勾选的所有子卷的宽度和的比例，对重量进行分摊，
				//当做勾选的当个子卷的重量，同时，将上面创建的记录称重编号写入子卷实绩，方便信息反查
				//四舍五入
				BigDecimal b= new BigDecimal((mcsd.getCoil_act_wgt()/v_ttl_weight)*v_rec_mat_d.get(0).getSingle_weight());  
				double f1 = b.setScale(0,   BigDecimal.ROUND_HALF_UP).doubleValue();
				if(i==lipc.size()){
					//  --最后一套：原料卷总重 - ∑（前N-1卷理重）
					if(v_rec_mat_d.get(0).getSingle_weight()-v_tmp_weight<=0){
						f1=0;
					}else{
						f1=v_rec_mat_d.get(0).getSingle_weight()-v_tmp_weight;
					}
				}else{
					v_tmp_weight+=f1;
				}
				mcsd.setCoil_thr_wgt(f1);
				mcsd.setProduce_time(new Date());//--生产时间
				mcsd.setOrder_no(v_rec_mat_d.get(0).getOrder_no());
				mcsd.setProd_order_no(v_rec_mat_d.get(0).getProd_order_no());
				mcsd.setSurface_rst("40740601");//--表面检验结果（SORT_CODE = 407406）
				mcsd.setPck_flag("0");
				mcsd.setCreate_opr("L2_PDO");
				mcsd.setCreate_time(new Date());
				//子卷称重时间
				//mcsd.setCoil_wgt_time(new Date());
				//因为从L2收集的磅重不准，赋值为0d
				mcsd.setCoil_act_wgt(0d);
				//mcsd.setCoil_act_wgt(null);
				//    --(15.5)、插入分条子卷实绩
				this.getMapper(MesCrSlittingDMapper.class).insert(mcsd);
				//    --(15.6)、子卷号中流水号加1
				v_cnt=v_cnt+1;
			}
			//  --(16)、追加一条边丝物料实绩：
			//  --(16.1)、边丝编码前缀：原料卷号（最初始原料卷号） + 1位工序代号（分条F）+ 2位设备代号（01-99）
//			v_coil_no=v_rec_pdo_coils.getEntry_coil_id().substring(0, 8)+"F"+lpad(v_machine_mark,2,"0");
//			//  --(16.2)、根据已有边丝，获取边丝物料编号流水号
//			v_cnt=this.getMapper(MesCrSlittingDMapper.class).doQuery2(v_coil_no);
//			if(v_cnt==null){
//				v_cnt=0;
//			}else if(v_cnt>9){
//				v_message="边丝物料编号超出规则范围，流水号超出最大值9！";
//				throw new Exception(v_message);
//			}
//			// --(16.3)、边丝编码规则：边丝编码前缀【原料卷号（最初始原料卷号） + 1位工序代号（分条F）+ 2位设备代号（01-99）】+ 1位流水号（0-9） + 'B'
//			v_coil_no=v_rec_pdo_coils.getEntry_coil_id().substring(0, 8)+"F"+lpad(v_machine_mark,2,"0")+v_cnt+"B";
			String sNo=v_rec_pdo_coils.getEntry_coil_id().substring(0, 8)+"F"+lpad(v_machine_mark,2,"0");
			v_coil_no=null;
			List<MesCrSlittingD> lm_biansi=this.getMapper(MesCrSlittingDMapper.class).findWithCondition
					(null, " coil_no like '"+sNo+"%' and substr(coil_no, -1) = 'B' ", "coil_no", 0, 0);
			if(lm_biansi==null||lm_biansi.size()==0){
				v_cnt=0;
				v_coil_no=sNo+v_cnt+"B";
			}else{
				int i_biansi=0;
				for(MesCrSlittingD msbe:lm_biansi){
					int m=Integer.parseInt(msbe.getCoil_no().substring(msbe.getCoil_no().length()-2,msbe.getCoil_no().length()-1));
					if(i_biansi!=m){
						//sum.getObject().setEmp_no("E"+String.format("%03d", i));
						v_coil_no=sNo+i_biansi+"B";
						break;
					}
					i_biansi++;
					if(i_biansi>9){
						throw new Exception("边丝物料编号超出规则范围，流水号超出最大值9！");
					}
				}
				if(i_biansi>=lm_biansi.size()){
					//sum.getObject().setEmp_no("E"+String.format("%03d", i));
					v_coil_no=sNo+i_biansi+"B";
				}
			}
			
			
			MesCrSlittingD d=new MesCrSlittingD();
			//v_cnt=
			//  --(16.4)、边丝对象属性赋值（未指定的字段，必须是空值，不能默认值）
			d.setCoil_no(v_coil_no);
			d.setProcess_no(mcsm.getProcess_no());
			d.setWrk_date(mcsm.getWrk_date());
			d.setWrk_ord(mcsm.getWrk_ord());
			d.setWrk_grp(mcsm.getWrk_grp());
			d.setSteel_code(v_rec_mat_d.get(0).getSteel_code());
			d.setAim_thk(null);
			d.setAim_wdt(null);
			d.setAim_len(null);
			d.setAim_inn_dia(null);
			d.setAim_out_dia(null);
			d.setAct_thk(null);
			d.setAct_wdt(null);
			d.setAct_len(null);
			d.setAct_inn_dia(null);
			d.setAct_out_dia(null);
			d.setCoil_thr_wgt(null);
			if(v_rec_mat_d.get(0).getSingle_weight()-v_ttl_weight<=0){
				d.setCoil_act_wgt(0d);
			}else{
				d.setCoil_act_wgt(v_rec_mat_d.get(0).getSingle_weight()-v_ttl_weight);
			}
			d.setProduce_time(new Date());
			d.setOrder_no(null);
			d.setProd_order_no(null);
			d.setSurface_rst("40740601");
			d.setPck_flag("0");
			d.setCreate_opr("L2_PDO");
			d.setCreate_time(new Date());
			//子卷称重时间
			//d.setCoil_wgt_time(new Date());
			//因为从L2收集的磅重不准，赋值为0d
			d.setCoil_act_wgt(0d);
			//d.setCoil_act_wgt(null);
			//  --(16.5)、插入边丝子卷实绩
			this.getMapper(MesCrSlittingDMapper.class).insert(d);
			
		    //--(17)、调用生产管理接口，执行业计划状态、物料进程状态相关操作（接口由生产管理模块提供）；																																							
		    //--(17.1)、注意：可能在收到此PDO前，已执行过上料操作，并进行了此接口的操作，要求能正常处理，不能影响上述操作																																							
			//???		
			MesCrSlittingM mcsm1=new MesCrSlittingM();
			mcsm1.setMachine_code(v_mch_code);//机台号
			mcsm1.setSchedule_no(v_rec_pln_d.get(0).getLw_plan_no());//作业计划号
			mcsm1.setMaterial_no(v_rec_pdo_coils.getEntry_coil_id());//投料卷号
			mcsm1.setMaterial_no_vt(v_rec_mat_d.get(0).getObject_no_vt());//虚拟卷号 
			// 传入带毫秒的字符串
			mcsm1.setMemo(createTime);
			List<MesCrSlittingM> lmcsm=new ArrayList<MesCrSlittingM>();
			lmcsm.add(mcsm1);
			//调用生产管理接口验证作业计划状态能执行此操作
			boolean flag=true;
			try{
				this.getBean(MesApiServiceImpl.class).MesCrSlittingMAddValid(lmcsm);
			}catch(Exception e){
				flag=false;
				e.printStackTrace();
			}
			if(flag){
				//调用生产管理接口，更改业计划状态（主表、从表）、原料虚拟物料进程状态
				this.getBean(MesApiServiceImpl.class).MesCrSlittingMAdd(lmcsm);
			}
		    //--(18)、调用物流模块接口，执行原料卷生产投料出库相关操作（接口由物流模块提供）；																																							
			//--(18.1)、注意：可能在收到此PDO前，已执行过上料操作，原料卷可能已投料出库，此时不能影响上述操作	
			//判断原料卷是否已生产投料出库
			YdmProductOutlist ypo=new YdmProductOutlist();
			ypo.setCoilno(v_rec_pdo_coils.getEntry_coil_id());
			ypo.setOuttype("500501");
			v_cnt = this.getMapper(YdmProductOutlistMapper.class).count(ypo);
			if(v_cnt<=0){
				CommonPage<YdmProductDetail> cp=new CommonPage<YdmProductDetail>();
				YdmProductDetail ypdu=new YdmProductDetail();
				ypdu.setCoilno(v_rec_pdo_coils.getEntry_coil_id());//注意
				// 传入操作时间字符串带毫秒
				ypdu.setMemo(createTime);
				cp.setObject(ypdu);
				this.getBean(LmsApiServiceImpl.class).doOutStorage(cp);
			}
			v_message="PDO子卷实绩处理完成！";
		}catch(Exception e){
			e.printStackTrace();
			if(e.getMessage()!=null && e.getMessage().length()>200){
				v_message="PDO子卷实绩处理出错："+e.getMessage().substring(0,200);
			}else{
				v_message="PDO子卷实绩处理出错："+e.getMessage();
			}
			throw new Exception(v_message);
		}
		return v_message;
	}
	
	public String Receive12mmSlitPDO_Reject_list(List<IfSlit01PdoReject> jsonList){
		StringBuilder v_message=new StringBuilder();
		for(IfSlit01PdoReject json:jsonList){
			v_message.append(json.getMsgcounter()+"-");
			v_message.append(Receive12mmSlitPDO_Reject(json));
		}
		return v_message.toString();
	}
	
	
	/**
	 * 1)、	此接口为纯后台逻辑，不与前端页面交互，由L2接口系统收到12mm分条机吊销实绩PDO时调用；																																							
		2)、	此接口参数为JSON对象（对象结构见数据库表 IF_SLIT01_PDO_REJECT）；																																							
	 * @param v_rec_pdo_coils
	 * @param v_message
	 * @return
	 * @throws Exception
	 */
	public String Receive12mmSlitPDO_Reject(IfSlit01PdoReject json){
		String v_message="";

		IfSlit01PdoReject v_rec_pdo_reject=json;
		if(json==null){
			v_message="参数错误：二级接口-12mm纵剪PDO-吊销实绩为空";
			return v_message;
		}
		System.out.println(v_rec_pdo_reject.getMsg_time()+"        ");
		//  --(2)、如果电文中（接口参数）未包含消息时间（MSG_TIME），或为空值，则赋值为当前时刻
		if(v_rec_pdo_reject.getMsg_time()==null){
			v_rec_pdo_reject.setMsg_time(new Date());
		}
		//  --(3)、将对象，插入PDO部分吊销实绩表（单独的事务）
		try{
			this.getMapper(IfSlit01PdoRejectMapper.class).insert(v_rec_pdo_reject);
		}catch(Exception e){
			e.printStackTrace();
		}
		//  --(4)、调用处理PDO部分吊销实绩函数（事务在函数内）
		try{
			//MesApi12mmPdiPdoImpl mesApi12mmPdiPdoImpl=new MesApi12mmPdiPdoImpl();
			//v_message=mesApi12mmPdiPdoImpl.Receive12mmSlitPDO_Reject_D(v_rec_pdo_reject, v_message);
			v_message=this.getBean(MesApi12mmPdiPdoImpl.class).Receive12mmSlitPDO_Reject_D(v_rec_pdo_reject, v_message);
			//v_message=Receive12mmSlitPDO_Reject_D(v_rec_pdo_reject, v_message);
		}catch(Exception e){
			e.printStackTrace();
			v_message=e.getMessage();
			//throw new Exception(e.getMessage());
		}finally{
			//  --(5)、拼接返回字符串
			v_message="入口卷号{"+v_rec_pdo_reject.getEntry_coil_id()+"}"+v_message;
			//  --(6)、写接口日志：与业务处理分开，单独的事务		
			try{
				this.getMapper(IfSlit01LogMapper.class).insertIf_slit01_log(null,"Receive12mmSlitPDO_Reject","",v_message);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		return v_message;
	}

	/**
	 * 此函数为JAVA后台内调函数，可考虑将方法设为私有，由接口 Receive12mmSlitPDO_Reject 调用；																																							
		接口参数 IN：V_REC_PDO_REJECT（PDO吊销实绩实体对象实例）																																							
		接口参数 OUT：V_MESSAGE（操作结果信息）																																							
	 * @param v_rec_pdo_reject
	 * @param v_message
	 * @return
	 * @throws Exception 
	 */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public String Receive12mmSlitPDO_Reject_D(
			IfSlit01PdoReject v_rec_pdo_reject, String v_message) throws Exception{
		final String v_mch_code="M0002";
		Integer v_cnt;
		//  --(1)、如果对象中入口卷号为空，则返回错误信息
		if(v_rec_pdo_reject.getEntry_coil_id()==null){
			v_message="电文入口卷号为空，无法处理！";
			return v_message;
		}
		//  --(2)、如果对象中吊销卷号为空，则返回错误信息
		if(v_rec_pdo_reject.getRejet_coil_id()==null){
			v_message="电文吊销卷号为空，无法处理！";
			return v_message;
		}
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); 
		Date creaTime = new Date();
		String createTime = formatter.format(creaTime);
		try{
			//  --处理逻辑思路：																																						
			//  --按L2系统返回的部分吊销实绩，生成分条业务主数据中相关信息																																						
			//  --(3)、通过PDO入口卷号，去找分条作业计划明细记录(存在一条记录才合理)
			v_cnt = this.getMapper(PlnLengthwisePlanDetailMapper.class).countWithCondition(null,
						"object_no='"+v_rec_pdo_reject.getEntry_coil_id()+"'");
			if(v_cnt<=0){
				v_message="分条作业计划明细记录不存在！";
				return v_message;
			}else if(v_cnt>=2){
				v_message="存在2条或以上分条作业计划明细记录！";
				return v_message;
			}
			List<PlnLengthwisePlanDetail> v_rec_pln_d = this.getMapper(PlnLengthwisePlanDetailMapper.class).findWithCondition(null, "object_no='"+v_rec_pdo_reject.getEntry_coil_id()+"'",
					null, 0, 0);
			// --(4)、验证分条作业计划主记录
			v_cnt = this.getMapper(PlnLengthwisePlanMapper.class).countWithCondition(null,"lw_plan_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"'");
			if(v_cnt<=0){
				v_message="作业计划号{"+v_rec_pln_d.get(0).getLw_plan_no()+"} 分条作业计划主记录不存在！";
				return v_message;
			}
			List<PlnLengthwisePlan> v_rec_pln_m = this.getMapper(PlnLengthwisePlanMapper.class).findWithCondition(null, "lw_plan_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"'", 
					null, 0, 0);
			if(!v_mch_code.equals(v_rec_pln_m.get(0).getMachine_code())){
				v_message="作业计划号{"+v_rec_pln_m.get(0).getLw_plan_no()+"} 机台代码{"+v_rec_pln_m.get(0).getMachine_code()+"}错误！12mm分条机正确的机台代码为{"+v_mch_code+"}";
				return v_message;
			}
			//--(5)、如果已有生产实绩(人工操作或L2重复发送PDO情况下)，且已交工，则返回(忽略此PDO部分吊销实绩)
			List<MesCrSlittingM> v_rec_slt_m=new ArrayList<>();
			v_cnt = this.getMapper(MesCrSlittingMMapper.class).countWithCondition(null,"schedule_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"' and material_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'");
			if(v_cnt>0){
				v_rec_slt_m= this.getMapper(MesCrSlittingMMapper.class).findWithCondition(null, "schedule_no='"+v_rec_pln_d.get(0).getLw_plan_no()+"' and material_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'", 
						null, 0, 0);
				if("1".equals(v_rec_slt_m.get(0).getHand_over_status())){
					v_message="作业计划号{"+v_rec_pln_d.get(0).getLw_plan_no()+"} 已生产交工，忽略此PDO部分吊销实绩！";
					return v_message;
				}
			}
			//  --(6)、验证虚拟物料表中，原料卷计划信息存在
			v_cnt=this.getMapper(PlnMaterielDetailMapper.class).countWithCondition(null, "object_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'");
			if(v_cnt<=0){
				v_message="虚拟原料卷号{"+v_rec_pln_d.get(0).getObject_no_vt()+"} 原料卷虚拟物料信息不存在！";
				return v_message;
			}
			List<PlnMaterielDetail> v_rec_mat_d = this.getMapper(PlnMaterielDetailMapper.class).findWithCondition(null, "object_no_vt='"+v_rec_pln_d.get(0).getObject_no_vt()+"'", null, 0, 0);
			if(!v_rec_mat_d.get(0).getObject_no().equals(v_rec_pdo_reject.getEntry_coil_id())){
				v_message="与原料卷虚拟物料信息中钢卷号{"+v_rec_mat_d.get(0).getObject_no()+"}不一致！";
				return v_message;
			}
			//  --(7)、验证原料卷库存明细存在
			v_cnt = this.getMapper(YdmProductDetailMapper.class).countWithCondition(null,"coilno='"+v_rec_pdo_reject.getEntry_coil_id()+"'");
			if(v_cnt<=0){
				v_message="库存明细记录不存在！";
				return v_message;
			}
			List<YdmProductDetail> v_rec_ydm_d = this.getMapper(YdmProductDetailMapper.class).findWithCondition(null, "coilno='"+v_rec_pdo_reject.getEntry_coil_id()+"'",
					null, 0, 0);
			//  --(8)、验证机台基础信息存在
			v_cnt = this.getMapper(ComBaseMachineMapper.class).countWithCondition(null,"machine_code='"+v_mch_code+"'");
			if(v_cnt<=0){
				v_message="机台代码{"+v_mch_code+"} 机台基础信息不存在！";
				return v_message;
			}
			//  --（8.1）、获取机台基础信息表中，配置的机台设备代号（设备编号，如1,2,3）
			List<ComBaseMachine> lcbm = this.getMapper(ComBaseMachineMapper.class).findWithCondition(null,
					"machine_code='"+v_mch_code+"'", null, 0, 0);
			String v_machine_mark=lcbm.get(0).getMachine_mark();
			if(v_machine_mark==null){
				v_message="机台代码{"+v_mch_code+"} 设备编号未配置，无法创建作业记录号！";
				return v_message;
			}
			
			//2018-11-29 只有是已下发状态的钢卷才能下发
			if(v_rec_pln_d!=null && v_rec_pln_d.size()>0){
				if(!("5BLW02".equals(v_rec_pln_d.get(0).getStatus()) || "5BLW03".equals(v_rec_pln_d.get(0).getStatus()))){
					v_message="当前状态{"+v_rec_pln_d.get(0).getStatus()+"}错误";
					return v_message;
				}
			}
			
			/*
			 --（8.2）、大写字母'F' + 6位日期（YYMMDD，取数据库时间） + 2位纵剪设备编号（不足位前面补0）																																							
	  		 --（8.3）、注意：页面操作的首字母为'S'，通过L2实绩自动创建的记录，首字母为'F'，以示区别																																							
			 */
			ResultModel rmDb=this.getBean(PbModelDbServiceImpl.class).findDbTime();
			String dbTime=rmDb.getData().toString().substring(0,10);
			String v_process_no="F"+dbTime.substring(2, 4)+dbTime.substring(5, 7)+dbTime.substring(8, 10)+lpad(v_machine_mark,2,"0");
			v_cnt=this.getMapper(MesCrSlittingMMapper.class).findByProces(v_process_no,"");
			if(v_cnt==null){
				v_cnt=1;//当天的第一条
			}
			//  --（8.4）、生产处理号PROCESS_NO的生成规则：固定1位大写字母'F' + 6位日期（YYMMDD） + 2位纵剪设备编号（1） + 3位流水号（001 - 999）
			v_process_no=v_process_no+lpad(v_cnt+"",3,"0");

			String v_reject_coil_no=null;
			String process_no=null;
			// --(9)、计算吊销卷号  ????
			for(int i=1;i<=9;i++){
				//    --(9.1)、吊销卷号编码规则：原料卷号（8位最初始原料卷号） + 1位工序代号（分条F）+ 2位设备代号（01-99）+ 'R' + 1位流水（1 - 9）
				v_reject_coil_no=v_rec_pdo_reject.getEntry_coil_id().substring(0, 8)+"F"+lpad(v_machine_mark,2,"0")+"R"+i;
				if(v_rec_slt_m!=null && v_rec_slt_m.size()>0){
					process_no=v_rec_slt_m.get(0).getProcess_no();
				}
				//注意!!
				v_cnt=this.getMapper(MesCrSlittingMMapper.class).doQueryM(process_no,v_reject_coil_no);
				//  --(9.2)、--吊销卷号未占用
				if(v_cnt==0){
					break;
				}
			}
			//  --(9.3)、--吊销卷号无法生成(1-9序号全部被使用)
			if(v_cnt>0){
				v_message="吊销卷号生成失败，序号已全部占用！";
				return v_message;
			}
			//  --（10）、根据当前时刻，计算日期班次
			String wrk_date=null,wrk_ord=null,wrk_grp=null;
			if("200".equals(rmDb.getState())){
				dbTime=rmDb.getData().toString().substring(11);
				wrk_date=rmDb.getData().toString().substring(0,10);
				
				if(dbTime.compareTo(DateUtil.NBeginTime)>-1&&dbTime.compareTo(DateUtil.BeginTime)<0){
					wrk_ord="1";
				}else if(dbTime.compareTo(DateUtil.BeginTime)>-1&&dbTime.compareTo(DateUtil.EndTime)<0){
					wrk_ord="2";
				}else if(dbTime.compareTo(DateUtil.EndTime)>-1&&dbTime.compareTo(DateUtil.NEndTime)<0){
					wrk_ord="1";
					SimpleDateFormat formatYmd = new SimpleDateFormat("yyyy-MM-dd");
					Date date;
					try {
						date = formatYmd.parse(wrk_date);
					} catch (Exception e) {
						throw new Exception("获取数据库时间失败，请稍后重试");
					}
					Calendar c = Calendar.getInstance();  
	    	        c.setTime(date);  
	    	        c.add(Calendar.DAY_OF_MONTH, 1);//日期+1 
					wrk_date=formatYmd.format(c.getTime());
				}
			}else{
				throw new Exception("获取数据库时间失败！请稍后重试");
			}
			//  --（10.4）、根据计算的日期班次，获取交接班记录的班组
			MesShiftM msm=new MesShiftM();
			msm.setMachine_code(v_mch_code);
			msm.setWrk_date(wrk_date);
			msm.setWrk_ord(wrk_ord);
			v_cnt=this.getMapper(MesShiftMMapper.class).count(msm);
			if(v_cnt<=0){
				wrk_grp="0";//    v_wrk_grp := '0'; --暂无交接班记录，则设置为0：常白班，由用户到页面上调整
			}else{
				//    --否则获取交接班记录中的班组
				List<MesShiftM> lmsm = this.getMapper(MesShiftMMapper.class).find(msm, 0, 0);
				wrk_grp=lmsm.get(0).getWrk_grp();
			}
			//  --(11)、获取横切方式（:1：不横切、2：一切二、3：一切三）
			String v_crs_cut_mode=null;
			try{
				v_crs_cut_mode=this.getMapper(PlnProcessPlanMapper.class).findPp1(v_rec_mat_d.get(0).getProd_order_no(), "");
			}catch(Exception e){
				e.printStackTrace();
			}
			//  --(12)、v_rec_slt_m 对象为可能存在的分条主实绩(前面已获取)																																						
			//  --(12.1)、如果对象不为空，并且对象的 process_no 属性不为空：即主实绩记录之前已创建过，则更新记录																																						
			if(v_rec_slt_m!=null && v_rec_slt_m.size()>0 && v_rec_slt_m.get(0).getProcess_no()!=null){
				//    --(12.2)、更新主实绩中吊销卷信息
				MesCrSlittingM m=new MesCrSlittingM();
				m.setPartial_rejected("1");
				m.setRejected_coil_no(v_reject_coil_no);
				m.setProcess_no(v_rec_slt_m.get(0).getProcess_no());
				m.setRejected_coil_act_wgt(v_rec_pdo_reject.getRejet_coil_weight());
				m.setRejected_coil_len(v_rec_pdo_reject.getRejet_coil_lenght());
				m.setUpdate_opr("L2_PDO");
				m.setUpdate_time(new Date());
				this.getMapper(MesCrSlittingMMapper.class).update(m);
			}else{
				//    --(12.3)、否则，创建 v_rec_slt_m 对象实例，构建分条主实绩记录   ？？
				MesCrSlittingM mm=new MesCrSlittingM();
			    //mm=v_rec_slt_m.get(0); // ??
				mm.setProcess_no(v_process_no);
				mm.setMachine_code(v_mch_code);
				mm.setSchedule_no(v_rec_pln_d.get(0).getLw_plan_no());
				mm.setInner_seq(v_rec_pln_d.get(0).getLw_seq());
				mm.setMaterial_no_vt(v_rec_mat_d.get(0).getObject_no_vt());
				mm.setPln_steel_code(v_rec_mat_d.get(0).getSteel_code());
				mm.setPln_mtr_thk(v_rec_mat_d.get(0).getThick());
				mm.setPln_mtr_wdt(v_rec_mat_d.get(0).getWidth());
				mm.setPln_mtr_len(v_rec_mat_d.get(0).getLength());
				mm.setPln_mtr_inn_dia(v_rec_mat_d.get(0).getDiameter_inn());
				mm.setPln_mtr_out_dia(v_rec_mat_d.get(0).getDiameter_out());
				mm.setPln_mtr_thr_wgt(v_rec_mat_d.get(0).getSingle_weight());
				mm.setMaterial_no(v_rec_pdo_reject.getEntry_coil_id());
				mm.setSteel_code(v_rec_ydm_d.get(0).getSteelcode());
				mm.setMtr_thk(v_rec_ydm_d.get(0).getThick());
				mm.setMtr_wdt(v_rec_ydm_d.get(0).getWidth());
				mm.setMtr_len(v_rec_ydm_d.get(0).getLength());
				mm.setMtr_inn_dia(v_rec_ydm_d.get(0).getDiameter_inn());
				mm.setMtr_out_dia(v_rec_ydm_d.get(0).getDiameter_out());
				if(v_rec_ydm_d.get(0).getTheoryweight()!=null){
					mm.setMtr_thr_wgt(v_rec_ydm_d.get(0).getTheoryweight());
				}else{
					mm.setMtr_thr_wgt(v_rec_ydm_d.get(0).getFactweight());
				}
				mm.setMtr_act_wgt(v_rec_ydm_d.get(0).getFactweight());
				mm.setWrk_date(wrk_date);
				mm.setWrk_ord(wrk_ord);
				if(wrk_grp!=null && !"0".equals(wrk_grp)){
					//      --不为空且不为常白班，才更新
					mm.setWrk_grp(wrk_grp);
				}
				if(v_rec_slt_m==null || v_rec_slt_m.size()<=0 
						|| v_rec_slt_m.get(0).getFeeding_time()==null){
				      //--原上料时间为空，才更新为当前时刻
					mm.setFeeding_time(new Date());
				}
				if(mm.getCrs_cut_mode()==null){
					mm.setCrs_cut_mode(v_crs_cut_mode);
				}
				mm.setPartial_rejected("1");//--部分原料卷吊销（1是、0否）
				mm.setRejected_coil_no(v_reject_coil_no);//--吊销卷号
				//2018-08-21
				mm.setRejected_coil_thr_wgt(v_rec_pdo_reject.getRejet_coil_weight());//吊销卷理重
				mm.setRejected_coil_act_wgt(v_rec_pdo_reject.getRejet_coil_weight());
				mm.setRejected_coil_len(v_rec_pdo_reject.getRejet_coil_lenght());
				mm.setUpdate_opr("L2_PDO");
				mm.setUpdate_time(new Date());
				//    --(12.4)、插入分条主实绩
				this.getMapper(MesCrSlittingMMapper.class).insert(mm);
				
			    // --(12.5)、调用生产管理接口，执行业计划状态、物料进程状态相关操作(接口由生产管理模块提供)；																																						
				//????	
				MesCrSlittingM mcsm=new MesCrSlittingM();
				mcsm.setMachine_code(v_mch_code);//机台号
				mcsm.setSchedule_no(v_rec_pln_d.get(0).getLw_plan_no());//作业计划号
				mcsm.setMaterial_no(v_rec_pdo_reject.getEntry_coil_id());//投料卷号         吊销卷？？还是入口卷号
				//mcsm.setMaterial_no(mm.getRejected_coil_no());
				mcsm.setMaterial_no_vt(v_rec_mat_d.get(0).getObject_no_vt());//虚拟卷号 
				// 传入带毫秒的字符串
				mcsm.setMemo(createTime);
				List<MesCrSlittingM> lmcsm=new ArrayList<MesCrSlittingM>();
				lmcsm.add(mcsm);
//				//调用生产管理接口验证作业计划状态能执行此操作
//				this.getBean(MesApiServiceImpl.class).MesCrSlittingMAddValid(lmcsm);
//				//调用生产管理接口，更改业计划状态（主表、从表）、原料虚拟物料进程状态
//				this.getBean(MesApiServiceImpl.class).MesCrSlittingMAdd(lmcsm);
				//2018-09-17
				//调用生产管理接口验证作业计划状态能执行此操作
				boolean flag=true;
				try{
					this.getBean(MesApiServiceImpl.class).MesCrSlittingMAddValid(lmcsm);
				}catch(Exception e){
					flag=false;
					e.printStackTrace();
				}
				if(flag){
					//调用生产管理接口，更改业计划状态（主表、从表）、原料虚拟物料进程状态
					this.getBean(MesApiServiceImpl.class).MesCrSlittingMAdd(lmcsm);
				}
				
				// --(12.6)、调用物流模块接口，执行原料卷生产投料出库相关操作(接口由物流模块提供)；	？？吊销卷
				YdmProductOutlist ypo=new YdmProductOutlist();
				ypo.setCoilno(v_rec_pdo_reject.getEntry_coil_id());
				//ypo.setCoilno(mm.getRejected_coil_no());
				ypo.setOuttype("500501");
				v_cnt = this.getMapper(YdmProductOutlistMapper.class).count(ypo);
				if(v_cnt<=0){
					CommonPage<YdmProductDetail> cp=new CommonPage<YdmProductDetail>();
					YdmProductDetail ypdu=new YdmProductDetail();
					ypdu.setCoilno(v_rec_pdo_reject.getEntry_coil_id());//注意     是吊销卷吗？？还是入口卷
					//ypdu.setCoilno(mm.getRejected_coil_no());
					// 传入操作时间字符串带毫秒
					ypdu.setMemo(createTime);
					cp.setObject(ypdu);
					this.getBean(LmsApiServiceImpl.class).doOutStorage(cp);
				}
				
			}
			//  --(13)、提交事务
			v_message="PDO部分吊销实绩处理完成！";
		}catch(Exception e){
			e.printStackTrace();
			if(e.getMessage()!=null && e.getMessage().length()>200){
				v_message="PDO部分吊销实绩处理出错："+e.getMessage().substring(0,200);
			}else{
				v_message="PDO部分吊销实绩处理出错："+e.getMessage();
			}
			throw new Exception(v_message);
		}
		return v_message;
	}
	
	public String Receive12mmSlitPDO_Shift_list(List<IfSlit01PdoShift> jsonList){
		StringBuilder v_message=new StringBuilder();
		for(IfSlit01PdoShift json:jsonList){
			v_message.append(json.getMsgcounter()+"-");
			v_message.append(Receive12mmSlitPDO_Shift(json));
			v_message.append(";");
		}
		return v_message.toString();
	}
	/**
	 此接口为纯后台逻辑，不与前端页面交互，由L2接口系统收到12mm分条机班报实绩PDO时调用；																																							
	此接口参数为JSON对象（对象结构见数据库表 IF_SLIT01_PDO_SHIFT）；																																	
	 * @param v_rec_pdo_coils
	 * @param v_message
	 * @return
	 * @throws Exception
	 */
	public String Receive12mmSlitPDO_Shift(IfSlit01PdoShift json){
		String v_message="";
		IfSlit01PdoShift v_rec_pdo_shift=json;
		/**
		 * 注意：因为老外的表没有wrk_date作业时间字段，用他传过来的mes_time字段作为wrk_date
		 */
		if(json==null ){
			v_message="参数错误：二级接口-12mm纵剪PDO-班报为空";
			//v_message="500";
			return v_message;
		}
		
		//  --(2)、如果电文中（接口参数）未包含消息时间（MSG_TIME），或为空值，则赋值为当前时刻
		if(v_rec_pdo_shift.getMsg_time()==null){//作业时间为null，则取当前时间
			v_rec_pdo_shift.setMsg_time(new Date());
		}
		//用他传过来的mes_time字段作为wrk_date
		v_rec_pdo_shift.setWrk_date(DateUtil.formatDate(v_rec_pdo_shift.getMsg_time(), "yyyy-MM-dd HH:mm:ss"));
		//  --(3)、将对象，插入PDO班报实绩表（单独的事务）
		try{
			this.getMapper(IfSlit01PdoShiftMapper.class).insert(v_rec_pdo_shift);
		}catch(Exception e){
			e.printStackTrace();
		}
		//  --(4)、调用处理PDO班报实绩函数（事务在函数内）
		try{
			v_message=this.getBean(MesApi12mmPdiPdoImpl.class).Receive12mmSlitPDO_Shift_D(v_rec_pdo_shift,v_message);
			//this.getSqlSession("sqlSessionFactory").getConnection().
		}catch(Exception e){
			e.printStackTrace();
			v_message=e.getMessage();
			//throw new Exception(e.getMessage());
		}finally{
			//  --(5)、拼接返回字符串
			v_message = "报告时间{"+v_rec_pdo_shift.getWrk_date()+"}"+v_message;	
			//  --(6)、写接口日志：与业务处理分开，单独的事务
			try{
				 this.getMapper(IfSlit01LogMapper.class).insertIf_slit01_log(null,"Receive12mmSlitPDO_Shift","",v_message);
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		return v_message;
	}
	
	@Transactional(value="tm", rollbackFor=Exception.class)
	public String Receive12mmSlitPDO_Shift_D(IfSlit01PdoShift v_rec_pdo_shift,
			String v_message) throws Exception {
		final String v_mch_code="M0002";
		Integer v_cnt;
		//  --(1)、如果对象中日期时间为空，则返回错误信息
		if(v_rec_pdo_shift.getWrk_date()==null || "".equals(v_rec_pdo_shift.getWrk_date())){
			v_message="电文报告时间为空，无法处理！";
			return v_message;
		}
		try{
		//  --(2)、根据报告时间，计算日期班次
//			Date v_rpt_time = v_rec_pdo_shift.getWrk_date();
//			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//			String wrkdStr=sdf.format(v_rpt_time);
			String wrkdStr=v_rec_pdo_shift.getWrk_date();//一定要有yyyy-MM-dd HH:mm:ss时分秒 !!!
			try{
				new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(wrkdStr);
			}catch(Exception e){
				v_message="参数错误：作业时间【wrk_date】格式应该为【yyyy-MM-dd HH:mm:ss】";
				return v_message;
			}
			String wrk_date=null,wrk_ord=null,wrk_grp=null;
			String dbTime=wrkdStr.substring(11);
			wrk_date=wrkdStr.substring(0,10);
			if(dbTime.compareTo(DateUtil.NBeginTime)>-1&&dbTime.compareTo(DateUtil.BeginTime)<0){
				wrk_ord="1";
			}else if(dbTime.compareTo(DateUtil.BeginTime)>-1&&dbTime.compareTo(DateUtil.EndTime)<0){
				wrk_ord="2";
			}else if(dbTime.compareTo(DateUtil.EndTime)>-1&&dbTime.compareTo(DateUtil.NEndTime)<0){
				wrk_ord="1";
				SimpleDateFormat formatYmd = new SimpleDateFormat("yyyy-MM-dd");
				Date date;
				try {
					date = formatYmd.parse(wrk_date);
				} catch (Exception e) {
					throw new Exception("获取数据库时间失败，请稍后重试");
				}
				Calendar c = Calendar.getInstance();  
		        c.setTime(date);  
		        c.add(Calendar.DAY_OF_MONTH, 1);//日期加1天
				wrk_date=formatYmd.format(c.getTime());
			}
			//  --(3)、验证岗位交接班统计-分条记录是否存在
			MesShiftDRptSlt msdr=new MesShiftDRptSlt();
			msdr.setMachine_code(v_mch_code);
			msdr.setWrk_date(wrk_date);
			msdr.setWrk_ord(wrk_ord);
			v_cnt = this.getMapper(MesShiftDRptSltMapper.class).count(msdr);
			if(v_cnt>0){
				//    --(3.1)、存在则更新记录
				MesShiftDRptSlt md=new MesShiftDRptSlt();
				md.setMachine_code(v_mch_code);
				md.setWrk_date(wrk_date);
				md.setWrk_ord(wrk_ord);
				md.setTtl_cnt_i(v_rec_pdo_shift.getNumber_input_coil());
				md.setTtl_wgt_i(v_rec_pdo_shift.getTotal_input_mat_wt());
				md.setTtl_cnt_o(v_rec_pdo_shift.getNumber_baby_coil());
				md.setTtl_wgt_o(v_rec_pdo_shift.getTotal_wt_output_mat());
				md.setTtl_cnt_r(v_rec_pdo_shift.getTotal_rejet_coil());
				md.setTtl_wgt_r(v_rec_pdo_shift.getTotal_wt_rejet_coil());
				md.setTime_stp(v_rec_pdo_shift.getStop_line());
				md.setTime_rdy(v_rec_pdo_shift.getReady_line());
				md.setTime_prd(v_rec_pdo_shift.getProduction_line());
				//2018-08-21
				md.setEnergy_expended_shift(v_rec_pdo_shift.getEnergy_expended_shift());
				md.setUpdate_opr("L2_PDO");
				md.setUpdate_time(new Date());
				this.getMapper(MesShiftDRptSltMapper.class).update(md);
			}else{
				//    --(3.2)、不存在则插入记录
				MesShiftDRptSlt md1=new MesShiftDRptSlt();
				md1.setMachine_code(v_mch_code);
				md1.setWrk_date(wrk_date);
				md1.setWrk_ord(wrk_ord);
				md1.setTtl_cnt_i(v_rec_pdo_shift.getNumber_input_coil());
				md1.setTtl_wgt_i(v_rec_pdo_shift.getTotal_input_mat_wt());
				md1.setTtl_cnt_o(v_rec_pdo_shift.getNumber_baby_coil());
				md1.setTtl_wgt_o(v_rec_pdo_shift.getTotal_wt_output_mat());
				md1.setTtl_cnt_r(v_rec_pdo_shift.getTotal_rejet_coil());
				md1.setTtl_wgt_r(v_rec_pdo_shift.getTotal_wt_rejet_coil());
				md1.setTime_stp(v_rec_pdo_shift.getStop_line());
				md1.setTime_rdy(v_rec_pdo_shift.getReady_line());
				md1.setTime_prd(v_rec_pdo_shift.getProduction_line());
				//2018-08-21
				md1.setEnergy_expended_shift(v_rec_pdo_shift.getEnergy_expended_shift());
				md1.setUpdate_opr("L2_PDO");
				md1.setUpdate_time(new Date());
				this.getMapper(MesShiftDRptSltMapper.class).insert(md1);
			}
			//  --(4)、提交事务
			v_message="PDO班报实绩处理完成！";
		}catch(Exception e){
			e.printStackTrace();
			if(e.getMessage()!=null && e.getMessage().length()>200){
				v_message="PDO班报实绩处理出错："+e.getMessage().substring(0,200);
			}else{
				v_message="PDO班报实绩处理出错："+e.getMessage();
			}
			throw new Exception(v_message);
		}
		return v_message;
	}
	
	/**
		纵剪生产跟踪表																												
	 * @param MesCrSlittingTrc
	 * @param v_message
	 * @return
	 * @throws Exception
	 */
	public String Receive12mmMesCrSlitTrc(MesCrSlittingTrc json){
		String v_message="";
		MesCrSlittingTrc v_rec_slit_trc=json;
		if(json==null ){
			v_message="参数错误：二级接口-纵剪生产跟踪为空";
			return v_message;
		}
		//大纵剪的机台代码
        final String machine_code="M0002";		
        v_rec_slit_trc.setMachine_code(machine_code);
        //更新时间（L3）
        v_rec_slit_trc.setUpdate_time_l3(new Date());
		try{
		    int count = this.getMapper(MesCrSlittingTrcMapper.class).countWithCondition(null,"machine_code='"+machine_code+"'");
			if(count<=0){
				this.getMapper(MesCrSlittingTrcMapper.class).insert(v_rec_slit_trc);
			}else{
				this.getMapper(MesCrSlittingTrcMapper.class).doUpdate(v_rec_slit_trc);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
		String update_time_l3 = formatter.format(v_rec_slit_trc.getUpdate_time_l3());
		//拼接返回字符串
		v_message = "入口卷号{"+v_rec_slit_trc.getEntry_coil_id()+"}，更新时间（L3）{"+update_time_l3+"}纵剪生产跟踪成功";	
		//写接口日志：与业务处理分开，单独的事务
//		try{
//			 this.getMapper(IfSlit01LogMapper.class).insertIf_slit01_log(null,"Receive12mmMesCrSlitTrc","",v_message);
//		}catch(Exception e){
//			e.printStackTrace();
//		}
		return v_message;
	}
	

	// 补零
	public static String lpad(String str, int num, String pad) {
		String n_str = str;
		if (str == null && "".equals(str))
			n_str = " ";
		for (int i = str.length(); i < num; i++) {
			n_str = pad + n_str;
		}
		return n_str;
	}
	
	
//	public ResultModel test(){
//		String t=null;
//		Integer v_cnt;
//		v_cnt = this.getMapper(YdmProductDetailMapper.class).countWithCondition(null,"coilno='"+t+"'");
//		return null;
//	}
	
//	public void testgetObjectJson(){
//		List<IfSlit01PdoCoils> list = this.getMapper(IfSlit01PdoCoilsMapper.class).findWithCondition(null, "", "msg_time desc", 0, 0);
//		
////		JsonConfig jsonConfig=new JsonConfig();
////		jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
////		jsonConfig.registerJsonValueProcessor(java.lang.Double.class, new DoubleJsonValueProcessor());
////		jsonConfig.registerJsonValueProcessor(java.lang.Long.class, new LongJsonValueProcessor());
////		jsonConfig.registerJsonValueProcessor(java.lang.Integer.class, new IntegerJsonValueProcessor());
////		JSONObject jsonObject=JSONObject.fromObject(list.get(0),jsonConfig);
//		//System.out.println(jsonObject.toString());
//		Receive12mmSlitPDO_Coils(list.get(0));
//	}
	
	/*
	 * https://blog.csdn.net/soonfly/article/details/70305683
	 * 事务属性之7种传播行为   非常重要@!!!
	 */
//	//测试Receive12mmSlitPDO_Coils接口
//	public ResultModel test_Receive12mmSlitPDO_Coils(Object json){
//		//String json="{\"entry_coil_id\":\"入口卷号1\",\"msg_time\":\"\",\"material_coil_thickness\":\"12.3\",\"babys_inner_diameter\":\"199.377\"}";
//		ResultModel rm= new ResultModel();
//		//String str=Receive12mmSlitPDO_Coils(""+json);
//		//rm.setData(str);
//		rm.setState("200");
//		return rm;
//	}
//	//测试Receive12mmSlitPDO_Reject接口
//	public ResultModel test_Receive12mmSlitPDO_Reject(Object json){
//		ResultModel rm= new ResultModel();
//		String str=Receive12mmSlitPDO_Reject(json);
//		rm.setData(str);
//		rm.setState("200");
//		return rm;
//	}
//	//测试Receive12mmSlitPDO_Shift接口
//	public ResultModel test_Receive12mmSlitPDO_Shift(Object json){
//		ResultModel rm= new ResultModel();
//		String str=Receive12mmSlitPDO_Shift(json);
//		rm.setData(str);
//		rm.setState("200");
//		return rm;
//	}
	
}
