/***文档注释***********************************************
 * 作者            ：
 * 创建日期     ：2018-11-29
 * 描述            ：工器具-轧辊基础信息
 * 注意事项     ：
 * 遗留BUG   ：
 * 修改日期     ：
 * 修改人员     ：
 * 修改内容     ：
***********************************************************/
package market.Mes.Dev.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import market.Com.mapper.ComBaseMachineMapper;
import market.Com.vo.ComBaseMachine;
import market.Com.vo.CommonPage;
import market.Com.vo.ResultModel;
import market.Mes.Dev.mapper.DevRollerGrindingMapper;
import market.Mes.Dev.mapper.DevRollerInfoMapper;
import market.Mes.Dev.mapper.DevRollerPairMMapper;
import market.Mes.Dev.service.DevRollerInfoService;
import market.Mes.Dev.vo.DevRollerInfo;

import org.springframework.transaction.annotation.Transactional;

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

@RemoteService(path="DevRollerInfoService")
public class DevRollerInfoServiceImpl extends BaseServiceImpl<DevRollerInfo,Object> implements DevRollerInfoService {
	
	
	/**
	 * 动作处理_刷新（轧辊基础）按钮
	 * object:
	 * roller_type:选中节点表示的轧辊类型   轧辊类型（W：工作辊、B：支承辊、I：中间辊）
	 * machine_code:机台代码
	 *  //状态不需要传，后台处理。status:选中状态代码   轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
	 * */
	public ResultModel doQueryPairWeb(CommonPage<DevRollerInfo> oci){
		ResultModel rm=new ResultModel();
		try{
			rm.setData(this.getMapper(DevRollerInfoMapper.class).doQueryPairWeb(oci.getObject()));
			rm.setState("200");
		}catch(Exception ex){
			ex.printStackTrace();
			rm.setState("500");
			rm.setMsgInfo("查询失败!"+ex.getMessage());
		}
		return rm;
	}
	
	/**
	 * 动作处理_刷新（轧辊基础）按钮
	 * object:
	 * roller_type:选中节点表示的轧辊类型   轧辊类型（W：工作辊、B：支承辊、I：中间辊）
	 * status:选中状态代码   轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
	 * machine_code:机台代码
	 * */
	public ResultModel doQueryWeb(CommonPage<DevRollerInfo> oci){
		ResultModel rm=new ResultModel();
		try{
			rm.setData(this.getMapper(DevRollerInfoMapper.class).doQueryWeb(oci.getObject()));
			rm.setState("200");
		}catch(Exception ex){
			ex.printStackTrace();
			rm.setState("500");
			rm.setMsgInfo("查询失败!"+ex.getMessage());
		}
		return rm;
	}
	
	/**
	 * object:
	 * 相关信息
	 * */
	public ResultModel doAddWeb(CommonPage<DevRollerInfo> sum){
		ResultModel rm=new ResultModel();
		try{
			String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
			if(userName==null){
				userName="";
			}
			if(sum.getObject()==null){
				rm.setState("500");
				rm.setMsgInfo("请输入参数");
				return rm;
			}
			DevRollerInfo dbi=sum.getObject();
			if(dbi.getMachine_code()==null || "".equals(dbi.getMachine_code())){
				rm.setState("500");
				rm.setMsgInfo("机台代码不能为空！");
				return rm;
			}
			if(dbi.getRoller_type()==null || "".equals(dbi.getRoller_type())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊类型");
				return rm;
			}
			if(dbi.getRoller_no()==null || "".equals(dbi.getRoller_no()) || "".equals(dbi.getRoller_no().trim()) ){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊编号");
				return rm;
			}
			if(dbi.getRoller_class()==null || "".equals(dbi.getRoller_class())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊类别");
				return rm;
			}
			if(dbi.getRoller_position()==null || "".equals(dbi.getRoller_position())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊位置");
				return rm;
			}
			if(dbi.getManufacturer_code()==null || "".equals(dbi.getManufacturer_code())){
				rm.setState("500");
				rm.setMsgInfo("未指定厂家代码");
				return rm;
			}
			if(dbi.getManufacturer_name()==null || "".equals(dbi.getManufacturer_name())){
				rm.setState("500");
				rm.setMsgInfo("未指定厂家名称");
				return rm;
			}
			if(dbi.getAmount_money()==null || "".equals(dbi.getAmount_money())){
				rm.setState("500");
				rm.setMsgInfo("未指定金额");
				return rm;
			}
			if(dbi.getAmount_money()<0){
				rm.setState("500");
				rm.setMsgInfo("金额应大于0");
				return rm;
			}
			if(dbi.getResidual_value()==null){
				rm.setState("500");
				rm.setMsgInfo("未指定残值（元）");
				return rm;
			}
			if(dbi.getResidual_value()<0){
				rm.setState("500");
				rm.setMsgInfo("金额输入错误");
				return rm;
			}
			if(dbi.getDia_init()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定原始辊径（mm）");
				return rm;
			}
			if(dbi.getDia_init()<=0){
				rm.setState("500");
				rm.setMsgInfo("原始辊径（mm）应大于0");
				return rm;
			}
			if(dbi.getDia_scrap()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定报废辊径（mm）");
				return rm;
			}
			if(dbi.getDia_scrap()<=0){
				rm.setState("500");
				rm.setMsgInfo("报废辊径（mm）应大于0");
				return rm;
			}
			if(dbi.getDia_current()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定当前辊径（mm）");
				return rm;
			}
			if(dbi.getDia_current()<=0){
				rm.setState("500");
				rm.setMsgInfo("当前辊径（mm）应大于0");
				return rm;
			}
			if(dbi.getWgt_init()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定原始辊重（kg）");
				return rm;
			}
			if(dbi.getWgt_init()<0){
				rm.setState("500");
				rm.setMsgInfo("原始辊重（kg）应大于0");
				return rm;
			}
			if(dbi.getWgt_current()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定当前辊重（kg）");
				return rm;
			}
			if(dbi.getWgt_current()<0){
				rm.setState("500");
				rm.setMsgInfo("当前辊重（kg）应大于0");
				return rm;
			}
			if(dbi.getMaterial_code()==null || "".equals(dbi.getMaterial_code())){
				rm.setState("500");
				rm.setMsgInfo("未指定材质代码");
				return rm;
			}
			if(dbi.getMaterial_name()==null || "".equals(dbi.getMaterial_name())){
				rm.setState("500");
				rm.setMsgInfo("未指定材质名称");
				return rm;
			}
			if(dbi.getEarly_warning_times()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定预警次数");
				return rm;
			}
			if(dbi.getCur_use_times()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定使用次数");
				return rm;
			}
			if(dbi.getCur_rll_len()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定当前轧制里程");
				return rm;
			}
			if(dbi.getCur_rll_wgt()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定轧制吨数");
				return rm;
			}
			if(dbi.getTtl_use_times()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定累计使用次数");
				return rm;
			}
			if(dbi.getTtl_rll_len()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定累计轧制里程数（km）");
				return rm;
			}
			if(dbi.getTtl_rll_wgt()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定累计轧制吨数（吨）");
				return rm;
			}
			
			
			//机架号  制造编号      辊身长度（mm）  累计修磨次数  ？
			
			
			if(dbi.getCur_use_times()<0){
				rm.setState("500");
				rm.setMsgInfo("使用次数非有效整数，应大于0");
				return rm;
			}
			
			if(dbi.getTtl_use_times()<0){
				rm.setState("500");
				rm.setMsgInfo("累计使用次数非有效整数，应大于0");
				return rm;
			}
			if(dbi.getTtl_grd_times()==null){
				rm.setState("500");
				rm.setMsgInfo("未指定累计修磨次数！");
				return rm;
			}
			if(dbi.getTtl_grd_times()<0){
				rm.setState("500");
				rm.setMsgInfo("累计修磨次数非有效整数，应大于0");
				return rm;
			}
			
			if(dbi.getDia_current()>dbi.getDia_init()){
				rm.setState("500");
				rm.setMsgInfo("当前辊径不能大于原始辊径");
				return rm;
			}
			//报废外径（mm，原始外径 -  报废外径 = 可用层厚度）
			if(dbi.getDia_scrap()>=dbi.getDia_init()){
				rm.setState("500");
				rm.setMsgInfo("报废辊径应小于原始辊径");
				return rm;
			}
			if(dbi.getCur_use_times()>dbi.getTtl_use_times()){
				rm.setState("500");
				rm.setMsgInfo("使用次数不能大于累计使用次数");
				return rm;
			}
			if(dbi.getResidual_value()>=dbi.getAmount_money()){
				rm.setState("500");
				rm.setMsgInfo("残值需小于金额");
				return rm;
			}
			
		    //  --(1.13)、验证机台基础信息存在
			ComBaseMachine machine = new ComBaseMachine();
			machine.setMachine_code(dbi.getMachine_code());
			int v_cnt = this.getMapper(ComBaseMachineMapper.class).count(machine);
			if (v_cnt <= 0) {
				rm.setState("500");
				rm.setMsgInfo("机台代码{"+dbi.getMachine_code()+"} 机台基础信息不存在！");
				return rm;
			}
			
			//  --(2)、验证刀片编号无重复
			v_cnt=this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+dbi.getRoller_no()+"'");
			if(v_cnt>0){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 系统中已存在此轧辊编号！");
				return rm;
			}
			dbi.setRoller_no(dbi.getRoller_no().trim());
			//  --(3)、显示顺序
			//  --(4)、插入刀片基础信息记录，状态默认为0：可用
			dbi.setStatus("0");
			dbi.setCreate_opr(userName);
			dbi.setCreate_time(new Date());
			dbi.setIs_stock(sum.getMemo5());
			this.getMapper(DevRollerInfoMapper.class).insert(dbi);
			rm.setMsgInfo("新增成功");
			rm.setState("200");
		}catch(Exception ex){
			ex.printStackTrace();
			rm.setState("500");
			rm.setMsgInfo("新增失败!"+ex.getMessage());
		}
		return rm;
	}
	
	/**
	 * object:
	 * 相关信息
	 * */
	public ResultModel doUpdateWeb(CommonPage<DevRollerInfo> sum){
		ResultModel rm=new ResultModel();
		try{
			String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
			if(userName==null){
				userName="";
			}
			if(sum.getObject()==null){
				rm.setState("500");
				rm.setMsgInfo("请输入参数");
				return rm;
			}
			DevRollerInfo dbi=sum.getObject();
			if(dbi.getMachine_code()==null || "".equals(dbi.getMachine_code())){
				rm.setState("500");
				rm.setMsgInfo("机台代码不能为空！");
				return rm;
			}
			if(dbi.getRoller_type()==null || "".equals(dbi.getRoller_type())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊类型");
				return rm;
			}
			if(dbi.getRoller_no()==null || "".equals(dbi.getRoller_no())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊编号");
				return rm;
			}
			if(dbi.getRoller_class()==null || "".equals(dbi.getRoller_class())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊类别");
				return rm;
			}
			if(dbi.getRoller_position()==null || "".equals(dbi.getRoller_position())){
				rm.setState("500");
				rm.setMsgInfo("未指定轧辊位置");
				return rm;
			}
			if(dbi.getManufacturer_code()==null || "".equals(dbi.getManufacturer_code())){
				rm.setState("500");
				rm.setMsgInfo("未指定厂家代码");
				return rm;
			}
			if(dbi.getManufacturer_name()==null || "".equals(dbi.getManufacturer_name())){
				rm.setState("500");
				rm.setMsgInfo("未指定厂家名称");
				return rm;
			}
			if(dbi.getAmount_money()==null || "".equals(dbi.getAmount_money())){
				rm.setState("500");
				rm.setMsgInfo("未指定金额");
				return rm;
			}
			if(dbi.getAmount_money()<0){
				rm.setState("500");
				rm.setMsgInfo("金额应大于0");
				return rm;
			}
			if(dbi.getResidual_value()==null){
				rm.setState("500");
				rm.setMsgInfo("未指定残值（元）");
				return rm;
			}
			if(dbi.getResidual_value()<0){
				rm.setState("500");
				rm.setMsgInfo("金额输入错误");
				return rm;
			}
			if(dbi.getDia_init()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定原始辊径（mm）");
				return rm;
			}
			if(dbi.getDia_init()<=0){
				rm.setState("500");
				rm.setMsgInfo("原始辊径（mm）应大于0");
				return rm;
			}
			if(dbi.getDia_scrap()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定报废辊径（mm）");
				return rm;
			}
			if(dbi.getDia_scrap()<=0){
				rm.setState("500");
				rm.setMsgInfo("报废辊径（mm）应大于0");
				return rm;
			}
			if(dbi.getDia_current()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定当前辊径（mm）");
				return rm;
			}
			if(dbi.getDia_current()<=0){
				rm.setState("500");
				rm.setMsgInfo("当前辊径（mm）应大于0");
				return rm;
			}
			if(dbi.getWgt_init()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定原始辊重（kg）");
				return rm;
			}
			if(dbi.getWgt_init()<=0){
				rm.setState("500");
				rm.setMsgInfo("原始辊重（kg）应大于0");
				return rm;
			}
			if(dbi.getWgt_current()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定当前辊重（kg）");
				return rm;
			}
			if(dbi.getWgt_current()<=0){
				rm.setState("500");
				rm.setMsgInfo("当前辊重（kg）应大于0");
				return rm;
			}
			if(dbi.getMaterial_code()==null || "".equals(dbi.getMaterial_code())){
				rm.setState("500");
				rm.setMsgInfo("未指定材质代码");
				return rm;
			}
			if(dbi.getMaterial_name()==null || "".equals(dbi.getMaterial_name())){
				rm.setState("500");
				rm.setMsgInfo("未指定材质名称");
				return rm;
			}
			if(dbi.getEarly_warning_times()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定预警次数");
				return rm;
			}
			if(dbi.getCur_use_times()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定使用次数");
				return rm;
			}
			if(dbi.getCur_rll_len()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定当前轧制里程");
				return rm;
			}
			if(dbi.getCur_rll_wgt()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定轧制吨数");
				return rm;
			}
			if(dbi.getTtl_use_times()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定累计使用次数");
				return rm;
			}
			if(dbi.getTtl_rll_len()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定累计轧制里程数（km）");
				return rm;
			}
			if(dbi.getTtl_rll_wgt()==null ){
				rm.setState("500");
				rm.setMsgInfo("未指定累计轧制吨数（吨）");
				return rm;
			}
			
			
			//机架号  制造编号      辊身长度（mm）  累计修磨次数  ？
			
			
			if(dbi.getCur_use_times()<0){
				rm.setState("500");
				rm.setMsgInfo("使用次数非有效整数，应大于0");
				return rm;
			}
			
			if(dbi.getTtl_use_times()<0){
				rm.setState("500");
				rm.setMsgInfo("累计使用次数非有效整数，应大于0");
				return rm;
			}
			if(dbi.getTtl_grd_times()==null){
				rm.setState("500");
				rm.setMsgInfo("未指定累计修磨次数！");
				return rm;
			}
			if(dbi.getTtl_grd_times()<0){
				rm.setState("500");
				rm.setMsgInfo("累计修磨次数非有效整数，应大于0");
				return rm;
			}
			
			if(dbi.getDia_current()>dbi.getDia_init()){
				rm.setState("500");
				rm.setMsgInfo("当前辊径不能大于原始辊径");
				return rm;
			}
			//报废外径（mm，原始外径 -  报废外径 = 可用层厚度）
			if(dbi.getDia_scrap()>=dbi.getDia_init()){
				rm.setState("500");
				rm.setMsgInfo("报废辊径应小于原始辊径");
				return rm;
			}
			if(dbi.getCur_use_times()>dbi.getTtl_use_times()){
				rm.setState("500");
				rm.setMsgInfo("使用次数不能大于累计使用次数");
				return rm;
			}
			if(dbi.getResidual_value()>=dbi.getAmount_money()){
				rm.setState("500");
				rm.setMsgInfo("残值需小于金额");
				return rm;
			}
			
			//  --(2)、验证刀片编号
			int v_cnt=this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+dbi.getRoller_no()+"'");
			if(v_cnt<=0){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 系统中不存在此轧辊编号！");
				return rm;
			}
			//  --(2.1)、只有“可用”、“待磨”状态时，才允许修改信息       轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
			DevRollerInfo v_rec_bld = this.getMapper(DevRollerInfoMapper.class).findById(dbi.getRoller_no());
			if("2".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 正在修磨中，不允许修改信息！");
				return rm;
			}else if("5".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 轧辊已报废！");
				return rm;
			}else if("3".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 轧辊已配辊！");
				return rm;
			}else if("4".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 在线状态，无法进行此操作！");
				return rm;
			}else if((!"0".equals(v_rec_bld.getStatus())) && (!"1".equals(v_rec_bld.getStatus()))){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbi.getRoller_no()+"} 状态{"+v_rec_bld.getStatus()+"}异常，无法进行此操作！");
				return rm;
			}
			dbi.setUpdate_opr(userName);
			dbi.setUpdate_time(new Date());
			dbi.setIs_stock(sum.getMemo5());
			this.getMapper(DevRollerInfoMapper.class).update(dbi);
			rm.setMsgInfo("修改成功");
			rm.setState("200");
		}catch(Exception ex){
			ex.printStackTrace();
			rm.setState("500");
			rm.setMsgInfo("修改失败!"+ex.getMessage());
		}
		return rm;
	}
	
	/**
	 *objectList:
	 *roller_no:轧辊编号
	 * */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public ResultModel doUpdateBladeWeb(CommonPage<DevRollerInfo> sum) throws Exception{
		ResultModel rm=new ResultModel();
		List<DevRollerInfo> dbg_list = sum.getObjectList();
		if(dbg_list==null || dbg_list.size()<=0){
			rm.setState("500");
			rm.setMsgInfo("参数错误：未指定待磨的轧辊编号！");
			return rm;
		}
		int v_cnt=0;
		String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
		if(userName==null){
			userName="";
		}
		for(DevRollerInfo dbg: dbg_list){
			v_cnt = this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+dbg.getRoller_no()+"'");
			if(v_cnt<=0){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 系统中不存在此轧辊信息！");
				return rm;
			}
			DevRollerInfo v_rec_bld = this.getMapper(DevRollerInfoMapper.class).findById(dbg.getRoller_no());
			//    --(2.1)、只有“可用”状态时，才允许修改为待磨状态    轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
			if("1".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 已是待磨状态！");
				return rm;
			}else if("2".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 正在修磨中，无法进行此操作！");
				return rm;
			}else if("5".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 轧辊已报废！");
				return rm;
			}else if("3".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 已配辊！");
				return rm;
			}else if("4".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 在线状态，无法进行此操作！");
				return rm;
			}else if(!"0".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 状态{"+v_rec_bld.getStatus()+"}异常，无法进行此操作！");
				return rm;
			}
		}
		//  --(3)、逐一修改刀片状态
		for(DevRollerInfo dbg: dbg_list){
			DevRollerInfo dbb=new DevRollerInfo();
			dbb.setStatus("1");//--待磨
			dbb.setUpdate_opr(userName);
			dbb.setUpdate_time(new Date());
			dbb.setRoller_no(dbg.getRoller_no());
			this.getMapper(DevRollerInfoMapper.class).update(dbb);
		}
		rm.setMsgInfo("待修磨成功");
		rm.setState("200");
	    return rm;
	}
	
	/**
	 *objectList:
	 *roller_no:轧辊编号
	 *memo1:报废日期
	 *memo2:报废原因
	 *memo3:报废鉴定人
	 * */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public ResultModel doUpdateScrapWeb(CommonPage<DevRollerInfo> sum) throws Exception{
		ResultModel rm=new ResultModel();
		List<DevRollerInfo> dbg_list = sum.getObjectList();
		if(dbg_list==null || dbg_list.size()<=0){
			rm.setState("500");
			rm.setMsgInfo("参数错误：未指定需要报废的轧辊编号！");
			return rm;
		}
		if(sum.getMemo1()==null || "".equals(sum.getMemo1())){
			rm.setState("500");
			rm.setMsgInfo("参数错误：未指定报废日期！");
			return rm;
		}
		Date v_date=null;
		try{
			v_date=new SimpleDateFormat("yyyy-MM-dd").parse(sum.getMemo1());
		}catch(Exception e){
			rm.setState("500");
			rm.setMsgInfo("参数错误：报废日期格式无法识别！报废日期格式应该为【yyyy-MM-dd】");
			return rm;
		}
		if(sum.getMemo2()==null || "".equals(sum.getMemo2())){
			rm.setState("500");
			rm.setMsgInfo("参数错误：报废原因不能为空！");
			return rm;
		}
		if(sum.getMemo3()==null || "".equals(sum.getMemo3())){
			rm.setState("500");
			rm.setMsgInfo("参数错误：未指定报废鉴定人！");
			return rm;
		}
		
		int v_cnt=0;
		String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
		if(userName==null){
			userName="";
		}
		for(DevRollerInfo dbg: dbg_list){
			v_cnt=this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+dbg.getRoller_no()+"'");
			if(v_cnt<=0){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 系统中不存在此轧辊编号！");
				return rm;
			}
//		     --(2.1)、只有“报废”状态时，才允许取消报废（恢复为“可用”状态）    轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
			DevRollerInfo v_rec_bld = this.getMapper(DevRollerInfoMapper.class).findById(dbg.getRoller_no());
			if("2".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 正在修磨中，无法进行此操作！");
				return rm;
			}else if("3".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 已配辊");
				return rm;
			}else if("4".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 在线状态，无法进行此操作！");
				return rm;
			}
			//     --(2.1)、已报废，不能重复操作
			if("5".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 刀片已报废！不可重复操作");
				return rm;
			}
		}
		//  --(3)、逐一修改刀片状态
		for(DevRollerInfo dbg: dbg_list){
			DevRollerInfo dbb=new DevRollerInfo();
			dbb.setStatus("5");//--报废
			dbb.setUpdate_opr(userName);
			dbb.setUpdate_time(new Date());
			dbb.setRoller_no(dbg.getRoller_no());
			dbb.setScrap_reason(sum.getMemo2());
			dbb.setScrap_opr(sum.getMemo3());
			dbb.setScrap_time(v_date);
			this.getMapper(DevRollerInfoMapper.class).update(dbb);
		}
		rm.setMsgInfo("报废成功");
		rm.setState("200");
	    return rm;
	}
	
	/**
	 *objectList:
	 *roller_no:轧辊编号
	 * */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public ResultModel doUpdateBladeCancelWeb(CommonPage<DevRollerInfo> sum) throws Exception{
		ResultModel rm=new ResultModel();
		List<DevRollerInfo> dbg_list = sum.getObjectList();
		if(dbg_list==null || dbg_list.size()<=0){
			rm.setState("500");
			rm.setMsgInfo("参数错误：未指定需要取消待磨的轧辊编号！");
			return rm;
		}
		int v_cnt=0;
		String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
		if(userName==null){
			userName="";
		}
		for(DevRollerInfo dbg: dbg_list){
			v_cnt=this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+dbg.getRoller_no()+"'");
			if(v_cnt<=0){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 系统中不存在此轧辊编号！");
				return rm;
			}
			DevRollerInfo v_rec_bld = this.getMapper(DevRollerInfoMapper.class).findById(dbg.getRoller_no());
			//    --(2.1)、只有“待磨”状态时，才允许取消待磨（恢复为“可用”状态）         轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
			if("0".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 当前可用，无法进行此操作！");
				return rm;
			}else if("2".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 正在修磨中，无法进行此操作！");
				return rm;
			}else if("5".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 已报废！");
				return rm;
			}else if("3".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 已配辊！");
				return rm;
			}else if("4".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 在线状态，无法进行此操作！");
				return rm;
			}else if(!"1".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 状态{"+v_rec_bld.getStatus()+"}异常，无法进行此操作！");
				return rm;
			}
		}
		//  --(3)、逐一修改刀片状态
		for(DevRollerInfo dbg: dbg_list){
			DevRollerInfo dbb=new DevRollerInfo();
			dbb.setStatus("0");//--可用
			dbb.setUpdate_opr(userName);
			dbb.setUpdate_time(new Date());
			dbb.setRoller_no(dbg.getRoller_no());
			this.getMapper(DevRollerInfoMapper.class).update(dbb);
		}
		rm.setMsgInfo("取消待修磨成功");
		rm.setState("200");
	    return rm;
	}
	
	/**
	 *objectList:
	 *roller_no:轧辊编号
	 * */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public ResultModel doUpdateScrapCancelWeb(CommonPage<DevRollerInfo> sum) throws Exception{
		ResultModel rm=new ResultModel();
		List<DevRollerInfo> dbg_list = sum.getObjectList();
		if(dbg_list==null || dbg_list.size()<=0){
			rm.setState("500");
			rm.setMsgInfo("参数错误：未指定需要取消报废的轧辊编号！");
			return rm;
		}
		
		int v_cnt=0;
		String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
		if(userName==null){
			userName="";
		}
		for(DevRollerInfo dbg: dbg_list){
			v_cnt=this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+dbg.getRoller_no()+"'");
			if(v_cnt<=0){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 系统中不存在此轧辊编号！");
				return rm;
			}
			DevRollerInfo v_rec_bld = this.getMapper(DevRollerInfoMapper.class).findById(dbg.getRoller_no());
			//     --(2.1)、只有“报废”状态时，才允许取消报废（恢复为“可用”状态）    轧辊状态（0：可配辊、1：待修磨、2：修磨中、3：已配辊、4：在线、5：报废）
			if("0".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 当前可用，无法进行此操作！");
				return rm;
			}else if("1".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 当前待磨，无法进行此操作！");
				return rm;
			}else if("2".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 正在修磨中，无法进行此操作！");
				return rm;
			}else if("3".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 已配辊");
				return rm;
			}else if(!"5".equals(v_rec_bld.getStatus())){
				rm.setState("500");
				rm.setMsgInfo("轧辊编号{"+dbg.getRoller_no()+"} 当前状态{"+v_rec_bld.getStatus()+"}异常，无法进行此操作！");
				return rm;
			}
		}
		//  --(3)、逐一修改刀片状态
		for(DevRollerInfo dbg: dbg_list){
			DevRollerInfo dbb=new DevRollerInfo();
			dbb.setStatus("0");//--可用
			dbb.setUpdate_opr(userName);
			dbb.setUpdate_time(new Date());
			dbb.setRoller_no(dbg.getRoller_no());
			dbb.setScrap_reason("");
			dbb.setScrap_opr("");
			dbb.setScrap_time(null);
			//this.getMapper(DevRollerInfoMapper.class).update(dbb);
			this.getMapper(DevRollerInfoMapper.class).doUpdate(dbb,userName);
		}
		rm.setMsgInfo("取消报废成功");
		rm.setState("200");
	    return rm;
	}
	
	/**
	 * memo1:轧辊编号（roller_no)
	 * */
	@Transactional(value="tm", rollbackFor=Exception.class)
	public ResultModel doDeleteWeb(CommonPage<DevRollerInfo> sum) throws Exception{
		ResultModel rm=new ResultModel();
		if(sum.getMemo1()==null || "".equals(sum.getMemo1())){
			rm.setState("500");
			rm.setMsgInfo("轧辊编号不能为空");
			return rm;
		}
		int v_cnt = this.getMapper(DevRollerInfoMapper.class).countWithCondition(null, "roller_no='"+sum.getMemo1()+"'");
		if(v_cnt<=0){
			rm.setState("500");
			rm.setMsgInfo("轧辊编号{"+sum.getMemo1()+"} 系统中不存在此轧辊编号！");
			return rm;
		}
		String userName = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
		if(userName==null){
			userName="";
		}
		//  --(3)、验证刀片未被引用																																							
		//  --(3.1)、验证无修磨记录，否则不允许删除																																							
		v_cnt=this.getMapper(DevRollerGrindingMapper.class).countWithCondition(null, "roller_no='"+sum.getMemo1()+"'");
		if(v_cnt>0){
			rm.setState("500");
			rm.setMsgInfo("轧辊编号{"+sum.getMemo1()+"} 存在修磨记录，不允许删除！");
			return rm;
		}
		//  --(3.2)、验证无使用记录，否则不允许删除
		v_cnt=this.getMapper(DevRollerPairMMapper.class).countWithCondition(null, "(t_roller_no='"+sum.getMemo1()+"' or b_roller_no='"+sum.getMemo1()+"')");
		if(v_cnt>0){
			rm.setState("500");
			rm.setMsgInfo("机台代码{"+sum.getMemo1()+"}轧辊编号{"+sum.getMemo1()+"} 存在使用记录，不允许删除！");
			return rm;
		}
		//  --(4)、删除刀片基础信息
		this.getMapper(DevRollerInfoMapper.class).delete(sum.getMemo1());
		rm.setMsgInfo("删除成功");
		rm.setState("200");
	    return rm;
	}
	
}
