package com.shlanbao.tzsc.pms.qm.self.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.UUID;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import com.shlanbao.tzsc.base.dao.SysLogDaoI;
|
import com.shlanbao.tzsc.base.mapping.*;
|
import com.shlanbao.tzsc.pms.qm.onlineCheck.service.impl.QmOnlineCheckServiceImpl;
|
import com.shlanbao.tzsc.pms.sys.repairResquest.beans.RepairResquestBean;
|
import com.shlanbao.tzsc.utils.tools.*;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.shlanbao.tzsc.base.dao.QmOutwardDaoI;
|
import com.shlanbao.tzsc.base.dao.QmOutwardDetDaoI;
|
import com.shlanbao.tzsc.base.interceptor.WorkOrderStatChangeInterceptor;
|
import com.shlanbao.tzsc.base.model.DataGrid;
|
import com.shlanbao.tzsc.base.model.PageParams;
|
import com.shlanbao.tzsc.base.model.SessionInfo;
|
import com.shlanbao.tzsc.base.service.BaseService;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmAppearanceDataBean;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmOutWandBean;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmOutWardBatchMainInfo;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmOutWardFaultInfo;
|
import com.shlanbao.tzsc.pms.qm.self.beans.QmWardMainInfo;
|
import com.shlanbao.tzsc.pms.qm.self.service.QmOutWandService;
|
import com.shlanbao.tzsc.pms.sch.manualshift.beans.SchCalendarBean;
|
|
/**
|
* 外观质量检验记录实现类
|
*
|
* @author luther.zhang
|
* @create 2015-01-05
|
*/
|
@Service
|
public class QmOutWandServiceImpl extends BaseService implements QmOutWandService {
|
@Autowired
|
private QmOutwardDaoI dao;
|
@Autowired
|
private QmOutwardDetDaoI daoDet;
|
@Autowired
|
private HttpServletRequest request;
|
@Autowired
|
private SysLogDaoI logdao;
|
|
@Override
|
public DataGrid queryList(QmOutWandBean bean, PageParams pageParams) throws Exception {
|
int pageIndex = pageParams.getPage();
|
int rows = pageParams.getRows();
|
int sRow = (pageIndex - 1) * rows + 1;
|
int eRow = pageIndex * rows;
|
StringBuffer sb = new StringBuffer();
|
List<QmOutWandBean> beans = new ArrayList<>();
|
//查询条数
|
sb.append(getQueryOutWardInfoSql(2, bean));
|
List<?> rowNums = dao.queryBySql(sb.toString());
|
long total = StringUtil.converObj2Long(rowNums.get(0));
|
sb.setLength(0);
|
//查询数据
|
if (total > 0) {
|
sb.append(getQueryOutWardInfoSql(1, bean));
|
sb.append(" ) where rNum >=" + sRow + " AND rNum <=" + eRow + "");
|
List<?> datas = dao.queryBySql(sb.toString());
|
Object[] obj = null;
|
QmOutWandBean entity = null;
|
for (Object object : datas) {
|
obj = (Object[]) object;
|
entity = new QmOutWandBean();
|
entity.setId(StringUtil.convertObjToString(obj[1]));
|
entity.setuName(StringUtil.convertObjToString(obj[12]));
|
entity.setEqp(StringUtil.convertObjToString(obj[2]));
|
entity.setShift(StringUtil.convertObjToString(obj[3]));
|
entity.setTeam(StringUtil.convertObjToString(obj[4]));
|
entity.setMat(StringUtil.convertObjToString(obj[5]));
|
entity.setcTime(StringUtil.convertObjToString(obj[6]));
|
entity.setBatchNo(StringUtil.convertObjToString(obj[7]));
|
entity.setoDate(StringUtil.convertObjToString(obj[8]));
|
entity.setFirstLen(StringUtil.convertObjToString(obj[9]));
|
entity.setTwoLen(StringUtil.convertObjToString(obj[10]));
|
entity.setThreeLen(StringUtil.convertObjToString(obj[11]));
|
entity.setSts(StringUtil.convertObjToString(obj[13]));
|
entity.setSts2(StringUtil.convertObjToString(obj[14]));
|
entity.setCreateUserName(StringUtil.convertObjToString(obj[15]));
|
entity.setCreateUserTime(DateUtil.formatStringToDate(StringUtil.convertObjToString(obj[16]), "yyyy-MM-dd HH:mm:ss"));
|
entity.setUpdateUserName(StringUtil.convertObjToString(obj[17]));
|
entity.setUpdateUserTime(DateUtil.formatStringToDate(StringUtil.convertObjToString(obj[18]), "yyyy-MM-dd HH:mm:ss"));
|
beans.add(entity);
|
}
|
}
|
return new DataGrid(beans, total);
|
}
|
|
/**
|
* 得到查询物流外观检主数据sql
|
*
|
* @param type
|
* @param bean
|
* @return
|
*/
|
private StringBuffer getQueryOutWardInfoSql(int type, QmOutWandBean bean) {
|
StringBuffer sb = new StringBuffer();
|
if (type == 1) {
|
sb.append("SELECT * from ( SELECT row_number() over(order by a.time desc) as rNum,a.id as id,");
|
sb.append("c.equipment_name as eqp,d.name as shift,e.name as team, ");
|
sb.append(" f.name as mat,to_char(a.TIME,'yyyy-mm-dd hh24:mi:ss') as cTime,a.BATCH_NO as batchNO, ");
|
sb.append(" to_char(b.DATE_,'yyyy-mm-dd') as oDate , a.FIRST_LEN,a.TWO_LEN,a.THREE_LEN, ");
|
sb.append(" CASE WHEN A .eqp_name IS NOT NULL THEN A .eqp_name ELSE G . NAME END uName ,nvl(a.sts,0),nvl(a.sts2,0), ");
|
sb.append(" a.CREATE_USER_NAME,a.CREATE_USER_TIME,a.UPDATE_USER_NAME,a.UPDATE_USER_TIME");
|
//sb.append(" nvl(a.CREATE_USER_NAME,''),nvl(a.CREATE_USER_TIME,''),nvl(a.UPDATE_USER_NAME,''),nvl(a.UPDATE_USER_TIME,'')");
|
} else {
|
sb.append(" SELECT count(*) ");
|
}
|
sb.append(" from QM_OUTWARD a ");
|
sb.append(" LEFT JOIN SCH_WORKORDER b on a.oid=b.id ");
|
sb.append(" LEFT JOIN MD_EQUIPMENT c on c.id=b.eqp ");
|
sb.append(" LEFT JOIN MD_SHIFT d on b.shift=d.id ");
|
sb.append(" LEFT JOIN MD_TEAM e on b.team=e.id ");
|
sb.append(" LEFT JOIN MD_MAT f on b.mat=f.id ");
|
sb.append(" LEFT JOIN SYS_USER g on a.uid_=g.id ");
|
sb.append(" WHERE 1=1 ");
|
|
if (StringUtil.notEmpty(bean.getInspectionType())) {
|
|
sb.append(" and a.instype in ( " + ("0".equals(bean.getInspectionType()) ? "0,1" : bean.getInspectionType()) + " )");
|
}
|
if (StringUtil.notEmpty(bean.getShift())) {
|
sb.append(" AND b.SHIFT='" + bean.getShift() + "'");
|
}
|
if (StringUtil.notEmpty(bean.getTeam())) {
|
sb.append(" AND b.TEAM='" + bean.getTeam() + "'");
|
}
|
if (StringUtil.notEmpty(bean.getEqp())) {
|
sb.append(" AND b.eqp='" + bean.getEqp() + "'");
|
}
|
if (StringUtil.notEmpty(bean.getoDate())) {
|
sb.append(" AND to_char(a.time,'yyyy-mm-dd')>='" + bean.getoDate() + "'");
|
}
|
if (StringUtil.notEmpty(bean.getcTime())) {
|
sb.append(" AND to_char(a.time,'yyyy-mm-dd')<='" + bean.getcTime() + "'");
|
}
|
if (StringUtil.notEmpty(bean.getMat())) {
|
sb.append(" AND b.mat='" + bean.getMat() + "'");
|
}
|
//MES反馈状态 班长
|
if (StringUtil.notEmpty(bean.getStsMes()) && !",".equals(bean.getStsMes())) {
|
sb.append(" AND a.sts='" + bean.getStsMes() + "'");
|
}
|
//MES反馈状态 质检员
|
if (StringUtil.notEmpty(bean.getStsMes2())) {
|
sb.append(" AND a.sts='" + bean.getStsMes2() + "'");
|
}
|
//20支质量反馈状态
|
if (StringUtil.notEmpty(bean.getSts2())) {
|
sb.append(" AND a.sts2='" + bean.getSts2() + "'");
|
sb.append(" and a.first_len not in (0) "); //过滤
|
}
|
//设备类型
|
if (StringUtil.notEmpty(bean.getEqpType())) {
|
sb.append(" AND b.type='" + bean.getEqpType() + "'");
|
}
|
if ("0".equals(bean.getSts())) {
|
//质检员查询 过滤用户,只能查询当前数据
|
sb.append(" and g.id='" + bean.getUid() + "'");
|
} else if ("1".equals(bean.getSts())) {
|
//班长无需过滤用户,但只能查询状态为(1:班长 2:已反馈MES)的数据
|
sb.append("and a.sts in (1,2) ");
|
}
|
return sb;
|
}
|
|
/**
|
* 查询物理外观检测详细
|
*/
|
@Override
|
public List<QmOutWandBean> queryDel(String id) {
|
List<?> datas = dao.queryBySql(getQueryOutWardDelInfoSql(id).toString());
|
List<QmOutWandBean> beans = new ArrayList<>();
|
Object[] obj = null;
|
QmOutWandBean bean = null;
|
for (Object object : datas) {
|
obj = (Object[]) object;
|
bean = new QmOutWandBean();
|
bean.setCode(StringUtil.convertObjToString(obj[0]));
|
bean.setName(StringUtil.convertObjToString(obj[1]));
|
bean.setType(StringUtil.convertObjToString(obj[2]));
|
bean.setPos(StringUtil.convertObjToString(obj[3]));
|
bean.setDes(StringUtil.convertObjToString(obj[4]));
|
bean.setLvl(StringUtil.convertObjToString(obj[5]));
|
bean.setMinusScore(StringUtil.convertObjToString(obj[6]));
|
bean.setVal(StringUtil.convertObjToString(obj[7]));
|
beans.add(bean);
|
}
|
return beans;
|
}
|
|
/**
|
* 查询物理外观检测详细sql
|
*
|
* @param qqid
|
* @return
|
*/
|
private StringBuffer getQueryOutWardDelInfoSql(String qqid) {
|
StringBuffer sb = new StringBuffer();
|
sb.append(" SELECT b.code,b.name,b.type,b.pos,b.des,b.lvl,b.minusscore,a.val ");
|
sb.append(" from QM_OUTWARD_DET a ");
|
sb.append(" LEFT JOIN QM_OUTWARD_DEFECT_ITEM b on a.item=b.id ");
|
sb.append(" WHERE a.QO_ID='" + qqid + "'");
|
return sb;
|
}
|
|
|
/**
|
* 外观缺陷自检
|
* 1)由于定时器换班时前10分钟反馈
|
* 2)外观巡检手动反馈
|
*/
|
// @LogAnno(operateType="外观反馈MES或20支质量反馈MES")
|
@Override
|
public void sendMsg(String id, String param) {
|
try {
|
/**
|
* 0:默认数据
|
* 自检(1:自动已反馈)
|
* 巡检( 1:手动反馈班长 2:手动已反馈)
|
* */
|
String sts = "2";
|
if ("".equals(id)) {
|
//只有自动反馈,id为空;通过当前日期查询当班数据
|
sts = "1";
|
id = this.queryIds();
|
}
|
if ("".equals(id)) {//如果id为空说明无自检数据需要反馈
|
return;
|
}
|
List<QmWardMainInfo> beans = new ArrayList<>();
|
if (StringUtil.notEmpty(id)) {
|
id = StringUtil.arrayToStringBySqlin(id.split(","));
|
String sql = getSendMsgSql(id);
|
List<?> datas = dao.queryBySql(sql);
|
List<QmOutWardBatchMainInfo> batchInfos = null;
|
List<QmOutWardFaultInfo> faults = null;
|
Map<String, QmWardMainInfo> checkMap = new HashMap<>();
|
Object[] obj = null;
|
QmWardMainInfo bean = null;
|
//批次
|
QmOutWardBatchMainInfo wardBean = null;
|
//详细项
|
QmOutWardFaultInfo faultBean = null;
|
for (int i = 0; i < datas.size(); i++) {
|
//释放对象
|
bean = null;
|
wardBean = null;
|
faultBean = null;
|
|
obj = (Object[]) datas.get(i);
|
String oid = StringUtil.convertObjToString(obj[0]);
|
String btch = StringUtil.convertObjToString(obj[6]);
|
bean = checkMap.get(oid);
|
if (bean == null) {
|
bean = new QmWardMainInfo();
|
bean.setMaterialCode(StringUtil.convertObjToString(obj[1]));//牌号
|
bean.setInspectionType(StringUtil.convertObjToString(obj[2]));//检测类型
|
bean.setOrderNumber(StringUtil.convertObjToString(obj[3]));//工单号
|
beans.add(bean);
|
}
|
//检测详细,以检测批次判断是否重复(或OutWard主键)
|
String wardId = StringUtil.convertObjToString(obj[4]);
|
batchInfos = bean.getBatchInfo();
|
//查找QmOutWardBatchMainInfo,没有则创建
|
wardBean = findBatchBeanById(batchInfos, wardId, wardBean);
|
wardBean.setTimestamp(StringUtil.convertObjToString(obj[5]));
|
wardBean.setSubBatchCode(btch);
|
wardBean.setFaultType(StringUtil.convertObjToString(obj[7]));
|
//检验人
|
wardBean.setCheckName(StringUtil.convertObjToString(obj[12]));
|
|
wardBean.setSampleNumber(StringUtil.convertObjToString(obj[8]).equals("") ? "20" : StringUtil.convertObjToString(obj[8]));
|
String faultId = StringUtil.convertObjToString(obj[9]);
|
faults = wardBean.getFaults();
|
//查找QmOutWardBatchMainInfo,没有则创建
|
faultBean = findFaultBeanById(faults, faultId, faultBean);
|
faultBean.setFaultCode(StringUtil.convertObjToString(obj[10]));
|
faultBean.setFaultNumber(StringUtil.convertObjToString(obj[11]));
|
//将封装好的对象放入map中
|
checkMap.put(oid, bean);
|
}
|
}
|
try {
|
WorkOrderStatChangeInterceptor.getInstance().DASSendOutWard(beans, param, id, sts);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
} catch (Exception e) {
|
System.out.println("外观缺陷自检数据自动反馈异常!!!");
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 根据id查找QmOutWardBatchMainInfo
|
*
|
* @param batchInfos
|
* @param id
|
* @return
|
*/
|
private QmOutWardBatchMainInfo findBatchBeanById(List<QmOutWardBatchMainInfo> batchInfos, String id, QmOutWardBatchMainInfo wardBean) {
|
for (QmOutWardBatchMainInfo w : batchInfos) {
|
if (w.getWardId().equals(id)) {
|
wardBean = w;
|
break;
|
}
|
}
|
if (wardBean == null) {
|
wardBean = new QmOutWardBatchMainInfo();
|
wardBean.setWardId(id);
|
batchInfos.add(wardBean);
|
}
|
return wardBean;
|
}
|
|
/**
|
* 根据id查找QmOutWardFaultInfo
|
*
|
* @param faults
|
* @param id
|
* @param faultBean
|
* @return
|
*/
|
private QmOutWardFaultInfo findFaultBeanById(List<QmOutWardFaultInfo> faults, String id, QmOutWardFaultInfo faultBean) {
|
for (QmOutWardFaultInfo w : faults) {
|
if (w.getId().equals(id)) {
|
faultBean = w;
|
break;
|
}
|
}
|
if (faultBean == null) {
|
faultBean = new QmOutWardFaultInfo();
|
faultBean.setId(id);
|
faults.add(faultBean);
|
}
|
return faultBean;
|
}
|
|
/**
|
* 根据物理外观检测记录id查询数据
|
*
|
* @param id mvl sts [过滤重复反馈]
|
* @return
|
*/
|
private String getSendMsgSql(String id) {
|
StringBuffer sb = new StringBuffer();
|
sb.append("select a.oid as oid,d.code as matCode,A.instype as inspectionType,c.code as orderCode,a.id as wardId,to_char(a.time,'yyyy-MM-dd hh24:mi:ss') as checkTime,");
|
sb.append(" a.BATCH_NO as batchNo,e.paramter_code as faultType, ");
|
sb.append(" (select f.STD from sch_workorder_craft f where f.parameter_setrevision = c.parameter_set_revision and f.dcs_type ='ROL' and f.ord_code !=-1 and f.param_type =2 and ROWNUM =1) as sampleNum,");
|
sb.append(" b.id as defectItemId,e.code as faultCode,b.val as faultNum,");
|
sb.append(" CASE WHEN A .eqp_name IS NOT NULL THEN A .eqp_name ELSE G . NAME END uName ");
|
sb.append(" from qm_outward a left join qm_outward_det b on a.id=b.qo_id ");
|
sb.append(" left join sch_workorder c on c.id=a.oid ");
|
sb.append(" left join md_mat d on c.mat=d.id ");
|
sb.append(" left join qm_outward_defect_item e on e.id=b.item ");
|
sb.append(" left join SYS_USER G on G.id=a.uid_ ");
|
sb.append(" where a.id in(" + id + ") ");
|
return sb.toString();
|
}
|
|
/**
|
* 根据机台编号查询工单信息
|
* Rengj
|
*/
|
public List<QmOutWandBean> queryOrderNumber(String eqp, SessionInfo info, HttpServletRequest request) {
|
java.util.Date date = new java.util.Date();
|
/*SimpleDateFormat smp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String d = smp.format(date);*/
|
String sql = " select code,(select equipment_code from MD_EQUIPMENT "
|
+ " where id = '" + eqp + "' )as eqpCode,id,mat from SCH_WORKORDER where 1=1 and sts = 2 "
|
+ " and eqp= '" + eqp + "' and sysdate BETWEEN stim and etim ";
|
List<?> list = dao.queryBySql(sql);
|
QmOutWandBean qm = new QmOutWandBean();
|
List<QmOutWandBean> qwbList = new ArrayList<QmOutWandBean>();
|
if (list.size() > 0) {
|
Object[] obj = (Object[]) list.get(0);
|
String min = "";
|
if (date.getMinutes() <= 9)
|
min = "0" + date.getMinutes();
|
else
|
min = String.valueOf(date.getMinutes());
|
qm.setOrderNumber(obj[0].toString());
|
qm.setBatchNo(genBatchNo(obj[1].toString()));
|
qm.setCreateTime(date.getHours() + ":" + min);
|
qm.setUserName(info.getUser().getName());
|
qm.setUid(info.getUser().getId());
|
qm.setOid(obj[2].toString());
|
qm.setMat(obj[3].toString());
|
request.getSession().setAttribute("itemOdn", obj[0].toString());
|
request.getSession().setAttribute("itemMat", obj[3].toString());
|
qwbList.add(qm);
|
}
|
return qwbList;
|
}
|
|
/**
|
* 生成外观质量检测批次号
|
* Rengj
|
*/
|
private String genBatchNo(String eqpCode) {
|
String batchNo = DateUtil.formatDateToString(new Date(), "yyyyMMddHHmm");
|
batchNo += eqpCode + MathUtil.getRandomInt(100, 1000);
|
return batchNo;
|
}
|
|
/**
|
* 查询缺陷信息
|
* Rengj
|
*/
|
@Override
|
public DataGrid queryOutWandDes(QmOutWandBean bean, HttpServletRequest request, PageParams pageParams) {
|
String orderNumber = (String) request.getSession().getAttribute("itemOdn");
|
String mat = (String) request.getSession().getAttribute("itemMat");
|
// request.getSession().removeAttribute("itemOdn");
|
bean.setOrderNumber(orderNumber);
|
bean.setMat(mat);
|
int pageIndex = pageParams.getPage();
|
int rows = pageParams.getRows();
|
int sRow = (pageIndex - 1) * rows;
|
int eRow = pageIndex * rows;
|
String sql = this.joinSqlCX(bean, "count");
|
List<?> rowNums = dao.queryBySql(sql);
|
long total = StringUtil.converObj2Long(rowNums.get(0));
|
List<QmOutWandBean> beans = new ArrayList<>();
|
if (total > 0) {
|
sql = this.joinSqlCX(bean, "");
|
sql += "where rNum >" + sRow + " AND rNum <=" + eRow;
|
List<?> owdList = dao.queryBySql(sql);
|
QmOutWandBean qowBean = null;
|
Object[] obj = null;
|
if (owdList.size() > 0) {
|
for (Object object : owdList) {
|
obj = (Object[]) object;
|
qowBean = new QmOutWandBean();
|
qowBean.setCode(StringUtil.convertObjToString(obj[1]));
|
qowBean.setDes(StringUtil.convertObjToString(obj[2]));
|
qowBean.setId(StringUtil.convertObjToString(obj[3]));
|
beans.add(qowBean);
|
}
|
}
|
}
|
return new DataGrid(beans, total);
|
}
|
|
/**
|
* 保存外观质量数据
|
* Rengj
|
*/
|
@LogAnno(operateType = "保存外观质量数据")
|
public void saveOutWandDes(QmAppearanceDataBean bean, HttpServletRequest request) {
|
try {
|
QmOutward qo = new QmOutward();
|
SchWorkorder scr = new SchWorkorder();
|
SysUser su = new SysUser();
|
su.setId(bean.getUid());
|
qo.setSysUser(su);
|
scr.setId(bean.getOid());
|
qo.setSchWorkorder(scr);
|
qo.setTime(new Date());
|
qo.setBatchNo(bean.getBatchNo());
|
qo.setInsType(3l);
|
qo.setSts(0l);
|
qo.setSts2(0l);
|
FillUserInfoUtil.fillCreateUserInfo(qo, request);
|
|
//20支质量判断
|
if (!"".equals(bean.getFirstLen()) && bean.getFirstLen() != null) {
|
qo.setFirstLen(Float.parseFloat(bean.getFirstLen()));
|
}
|
if (!"".equals(bean.getTwoLen()) && bean.getTwoLen() != null) {
|
qo.setTwoLen(Float.parseFloat(bean.getTwoLen()));
|
}
|
if (!"".equals(bean.getThreeLen()) && bean.getThreeLen() != null) {
|
qo.setThreeLen(Float.parseFloat(bean.getThreeLen()));
|
}
|
String uuid = dao.saveBackKey(qo);
|
|
List<String> nums = new ArrayList<String>();
|
List<String> blameTest = new ArrayList<String>();
|
if (!"".equals(bean.getBlameTestId()) && bean.getBlameTestId() != null && !"".equals(bean.getNum()) && bean.getNum() != null) {
|
blameTest.add(bean.getBlameTestId());
|
nums.add(bean.getNum());
|
}
|
if (!"".equals(bean.getBlameTestId2()) && bean.getBlameTestId2() != null && !"".equals(bean.getNum2()) && bean.getNum2() != null) {
|
blameTest.add(bean.getBlameTestId2());
|
nums.add(bean.getNum2());
|
}
|
if (!"".equals(bean.getBlameTestId3()) && bean.getBlameTestId3() != null && !"".equals(bean.getNum3()) && bean.getNum3() != null) {
|
blameTest.add(bean.getBlameTestId3());
|
nums.add(bean.getNum3());
|
}
|
if (!"".equals(bean.getBlameTestId4()) && bean.getBlameTestId4() != null && !"".equals(bean.getNum4()) && bean.getNum4() != null) {
|
blameTest.add(bean.getBlameTestId4());
|
nums.add(bean.getNum4());
|
}
|
if (!"".equals(bean.getBlameTestId5()) && bean.getBlameTestId5() != null && !"".equals(bean.getNum5()) && bean.getNum5() != null) {
|
blameTest.add(bean.getBlameTestId5());
|
nums.add(bean.getNum5());
|
}
|
|
if (blameTest.size() > 0) {
|
QmOutwardDet qod;
|
QmOutwardDefectItem qoditem;
|
QmOutward qoward;
|
for (int i = 0; i < blameTest.size(); i++) {
|
qod = new QmOutwardDet();
|
qoditem = new QmOutwardDefectItem();
|
qoward = new QmOutward();
|
qod.setId(UUID.randomUUID().toString());
|
qoditem.setId(blameTest.get(i));
|
qod.setQmOutwardDefectItem(qoditem);
|
qoward.setId(uuid);
|
qod.setQmOutward(qoward);
|
qod.setVal(Long.parseLong(nums.get(i)));
|
daoDet.save(qod);
|
}
|
}
|
request.getSession().removeAttribute("itemOdn");
|
request.getSession().removeAttribute("itemMat");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
private String joinSqlCX(QmOutWandBean bean, String temp) {
|
List<?> orderTypelist = daoDet.queryBySql("select type from sch_workorder where code='" + bean.getOrderNumber() + "'");
|
|
if (orderTypelist != null && orderTypelist.size() != 0) {
|
String orderType = orderTypelist.get(0).toString();
|
if ("1".equals(orderType)) {//卷烟机
|
bean.setDcsType("ROL");
|
} else if ("2".equals(orderType)) {//包装机
|
bean.setDcsType("PKG");
|
} else if ("3".equals(orderType)) {//封箱机
|
bean.setDcsType("PBOX");
|
} else {
|
bean.setDcsType("FLT");
|
}
|
}
|
|
String sql = "";
|
if ("count".equals(temp)) {
|
sql += " select count(*) from ( ";
|
} else {
|
sql += " select * from ( ";
|
}
|
sql += "select rownum as rNum,q1.code, q1.des,q1.id from qm_outward_defect_item q1,sch_workorder_craft s1,sch_workorder s2, md_mat c "
|
+ " where 1=1 and s1.parameter_setrevision = s2.parameter_set_revision "
|
+ " and q1.paramter_code = s1.parameter_code and c.id=s1.MATERIAL_CODE and c.code=( select code from md_mat where id='" + bean.getMat() + "' and rownum=1) ";
|
if (bean.getName() != null && !"".equals(bean.getName())) {
|
sql += " and q1.name like '%" + bean.getName() + "%'";
|
}
|
if (bean.getDcsType() != null && !"".equals(bean.getDcsType())) {
|
sql += " and s1.dcs_type = '" + bean.getDcsType() + "'";
|
}
|
if (bean.getType() != null && !"".equals(bean.getType())) {
|
sql += " and q1. type = '" + bean.getType() + "'";
|
}
|
if (bean.getOrderNumber() != null && !"".equals(bean.getOrderNumber())) {
|
sql += " and s2.code = '" + bean.getOrderNumber() + "' ";
|
}
|
sql += ")";
|
return sql;
|
}
|
|
/**
|
* 拼接sql
|
* Rengj
|
*/
|
private String joinSql(QmOutWandBean bean, String temp) {
|
List<?> orderTypelist = daoDet.queryBySql("select type from sch_workorder where code='" + bean.getOrderNumber() + "'");
|
if (orderTypelist != null && orderTypelist.size() != 0) {
|
String orderType = orderTypelist.get(0).toString();
|
if ("1".equals(orderType)) {//卷烟机
|
bean.setDcsType("ROL");
|
} else if ("2".equals(orderType)) {//包装机
|
bean.setDcsType("PKG");
|
} else if ("3".equals(orderType)) {//封箱机
|
bean.setDcsType("PBOX");
|
} else {//成型机
|
bean.setDcsType("FTL");
|
}
|
}
|
|
String sql = "";
|
if ("count".equals(temp)) {
|
sql += " select count(*) from ( ";
|
} else {
|
sql += " select * from ( ";
|
}
|
sql += "select rownum as rNum,q1.code, q1.des,q1.id from qm_outward_defect_item q1,sch_workorder_craft s1,sch_workorder s2 "
|
+ " where 1=1 and s1.parameter_setrevision = s2.parameter_set_revision and q1.status =1 "
|
+ " and q1.paramter_code = s1.parameter_code and s1.MATERIAL_CODE = '" + bean.getMat() + "'";
|
|
if (bean.getName() != null && !"".equals(bean.getName())) {
|
sql += " and q1.name like '%" + bean.getName() + "%'";
|
}
|
if (bean.getDcsType() != null && !"".equals(bean.getDcsType())) {
|
sql += " and s1.dcs_type = '" + bean.getDcsType() + "'";
|
}
|
if (bean.getType() != null && !"".equals(bean.getType())) {
|
sql += " and q1. type = '" + bean.getType() + "'";
|
}
|
if (bean.getOrderNumber() != null && !"".equals(bean.getOrderNumber())) {
|
sql += " and s2.code = '" + bean.getOrderNumber() + "' ";
|
}
|
sql += ")";
|
return sql;
|
}
|
|
/**
|
* 查询上一班次外观质检数据
|
* Rengj
|
*/
|
private String queryIds() {
|
String ids = "";
|
try {
|
/**
|
* 1)获得当前系统时间
|
* 2)查询工厂日历,得到:开始日期,结束 日期,班次,班组信息
|
* 3)通过这些日期时间,查询工单表
|
*
|
* */
|
//通过当前系统时间,得到工厂日期信息
|
StringBuffer sql = new StringBuffer();
|
sql.append(" select q1.id from QM_OUTWARD q1,SCH_WORKORDER s1 where 1=1 and q1.oid = s1.id ");
|
sql.append(" and nvl(q1.sts,0)=0 and s1.sts in (2,4) ");
|
sql.append(" and q1.instype in (0,1) and to_date('" + DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss") + "','yyyy-MM-dd hh24:mi:ss') BETWEEN s1.STIM AND s1.ETIM");
|
//sql.append(" and to_char(s1.date_,'yyyy-MM-dd')='"+scbt.getDate()+"'" );
|
//sql.append(" and q1.instype = 0 and s1.shift='"+scbt.getMdShiftCode()+"' " );
|
List<?> idsList = dao.queryBySql(sql.toString());
|
for (int i = 0; i < idsList.size(); i++) {
|
Object obj = idsList.get(i);
|
ids += obj + ",";
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return ids;
|
}
|
|
|
/**
|
* 功能说明:
|
* 反馈班长,修改状态
|
*/
|
@LogAnno(operateType = "反馈班长或回退质检员")
|
@Override
|
public void updateQmOutWardByIds(String ids, String sts) {
|
ids = ids.replaceAll(",", "','");
|
SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo");
|
String updateUserName = sessionInfo.getUser().getName();
|
if (ids != null && !"".equals(ids)) {
|
dao.updateBySql("update QM_OUTWARD set sts='" + sts + "',UPDATE_USER_NAME='" + updateUserName + "',UPDATE_USER_TIME=sysdate where instype=3 and id in ('" + ids + "') ", null);
|
}
|
}
|
|
@Override
|
public String updateCheckTimes(String stim, String ids) {
|
String result = "";
|
try {
|
String sql = "update QM_OUTWARD set time = to_date('" + stim + "','yyyy-MM-dd hh24:mi:ss') where id='" + ids + "'";
|
dao.updateBySql(sql, null);
|
result = "保存检测时间成功!";
|
} catch (Exception e) {
|
result = "保存检测时间失败!";
|
}
|
return result;
|
}
|
|
/**
|
* 批量删除外观自检记录
|
*
|
* @param id 需删除的id值
|
* @param request
|
* @return 反馈信息
|
*/
|
@LogAnno(operateType = "删除外观缺陷过程自检记录(可批量)")
|
@Override
|
public String beatchDeleteOutWand(String id, HttpServletRequest request) {
|
String result = "删除失败!";
|
String[] ids = id.split(",");
|
List<Object> qmIds;
|
String sql;
|
try {
|
for (int i = 0; i < ids.length; i++) {
|
qmIds = new ArrayList<>();
|
sql = "delete from QM_OUTWARD_DET where qo_id = ?";
|
qmIds.add(ids[i]);
|
dao.updateBySql(sql, qmIds);//外观质量缺陷详细
|
sql = "delete from QM_OUTWARD where id = ?";
|
dao.updateBySql(sql, qmIds);
|
}
|
result = "删除成功";
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return result;
|
}
|
|
/**
|
* 删除外观自检记录
|
*
|
* @param id 需删除的id值
|
* @param request
|
* @return 反馈信息
|
*/
|
@Override
|
public String deleteOutWand(String id, HttpServletRequest request) {
|
return beatchDeleteOutWand(id, request);
|
}
|
|
@LogAnno(operateType = "编辑")
|
@Override
|
public String edit(QmOutWandBean qmOutWandBean) {
|
String result = "操作成功!";
|
try {
|
QmOutward outward = new QmOutward();
|
outward.setId(qmOutWandBean.getId());
|
if (!StringUtils.isEmpty(qmOutWandBean.getFirstLen())) {
|
outward.setFirstLen(Float.parseFloat(qmOutWandBean.getFirstLen()));
|
}
|
if (!StringUtils.isEmpty(qmOutWandBean.getTwoLen())) {
|
outward.setTwoLen(Float.parseFloat(qmOutWandBean.getTwoLen()));
|
}
|
if (!StringUtils.isEmpty(qmOutWandBean.getThreeLen())) {
|
outward.setThreeLen(Float.parseFloat(qmOutWandBean.getThreeLen()));
|
}
|
dao.updateBySqlParam("update QM_OUTWARD set FIRST_LEN = ? , TWO_LEN = ? , THREE_LEN = ? where id = ? ", qmOutWandBean.getFirstLen(), qmOutWandBean.getTwoLen(), qmOutWandBean.getThreeLen(), qmOutWandBean.getId());
|
} catch (Exception e) {
|
result = "操作失败!";
|
e.printStackTrace();
|
}
|
|
return result;
|
}
|
|
@Override
|
public QmOutWandBean queryById(String id) {
|
List<?> objects = dao.queryBySql("select id,FIRST_LEN,TWO_LEN,THREE_LEN from QM_OUTWARD where id = ?", id);
|
QmOutWandBean bean = new QmOutWandBean();
|
try {
|
Object[] obj = (Object[]) objects.get(0);
|
bean.setId(StringUtil.convertObjToString(obj[0]));
|
bean.setFirstLen(StringUtil.convertObjToString(obj[1]));
|
bean.setTwoLen(StringUtil.convertObjToString(obj[2]));
|
bean.setThreeLen(StringUtil.convertObjToString(obj[3]));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return bean;
|
}
|
}
|