FutureHoldDAOImpl.java
package com.mycim.server.ctx.exec.dao.impl;
import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.framework.jdbc.mapper.RowMapper;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.server.ctx.exec.dao.FutureHoldDAO;
import com.mycim.valueobject.consts.DataBaseNames;
import com.mycim.valueobject.prp.FutureHold;
import com.mycim.valueobject.prp.FutureHoldHistory;
import com.mycim.valueobject.prp.FutureHoldLot;
import com.mycim.valueobject.prp.FutureHoldLotHistory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Sola
* @date 2021/7/19
**/
@Repository
public class FutureHoldDAOImpl implements FutureHoldDAO{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void insertFutureHold(FutureHold futureHoldInfo) {
Long sysRrn =futureHoldInfo.getSysRrn();
Long facilityRrn = futureHoldInfo.getFacilityRrn();
String status = futureHoldInfo.getStatus();
Long lotRrn = futureHoldInfo.getLotRrn();
Long productRrn = futureHoldInfo.getProductRrn();
Long productVersion = futureHoldInfo.getProductVersion();
Long processRrn = futureHoldInfo.getProcessRrn();
Long processVersion = futureHoldInfo.getProcessVersion();
Long routeRrn = futureHoldInfo.getRouteRrn();
String routeSeq = futureHoldInfo.getRouteSeq();
Long operationRrn = futureHoldInfo.getOperationRrn();
String operationSeq = futureHoldInfo.getOperationSeq();
String flowSeq = futureHoldInfo.getFlowSeq();
Long effictiveCount = futureHoldInfo.getEffictiveCount();
String holdType = futureHoldInfo.getHoldType();
String holdCategory = futureHoldInfo.getHoldCategory();
String holdGroup = futureHoldInfo.getHoldGroup();
String holdCode = futureHoldInfo.getHoldCode();
String holdReason = futureHoldInfo.getHoldReason();
String holdComment = futureHoldInfo.getHoldComment();
Long createUserRrn = futureHoldInfo.getCreateUserRrn();
Timestamp createTime = (Timestamp) futureHoldInfo.getCreateTime();
Long updateUserRrn = futureHoldInfo.getUpdateUserRrn();
Timestamp updateTime = (Timestamp) futureHoldInfo.getUpdateTime();
String seqNum = futureHoldInfo.getAttributeData1();
String sql = "INSERT INTO " + DataBaseNames.FUTURE_HOLD + "(SYS_RRN, FACILITY_RRN, STATUS, LOT_RRN, PRODUCT_RRN, PRODUCT_VERSION, " +
" PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN,ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ, " +
" EFFICTIVE_COUNT,HOLD_TYPE,HOLD_CATEGORY,HOLD_GROUP,HOLD_CODE,HOLD_REASON," +
" HOLD_COMMENT,CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,ATTRIBUTE_DATA1) " +
" VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
Object[] obj ={sysRrn,facilityRrn,status,lotRrn,productRrn,productVersion,processRrn
,processVersion,routeRrn,routeSeq,operationRrn,operationSeq,flowSeq,
effictiveCount,holdType,holdCategory,holdGroup,holdCode,holdReason,
holdComment,createUserRrn,createTime,updateUserRrn,updateTime,seqNum};
jdbcTemplate.update(sql,obj);
}
@Override
public void insertFutureHoldH(FutureHoldHistory futureHoldHInfo) {
Long sysRrn = futureHoldHInfo.getSysRrn();
Long transRrn = futureHoldHInfo.getTransRrn();
String transId = futureHoldHInfo.getTransId();
Long facilityRrn = futureHoldHInfo.getFacilityRrn();
String status = futureHoldHInfo.getStatus();
Long lotRrn = futureHoldHInfo.getLotRrn();
Long productRrn = futureHoldHInfo.getProductRrn();
Long productVersion = futureHoldHInfo.getProductVersion();
Long processRrn = futureHoldHInfo.getProcessRrn();
Long processVersion = futureHoldHInfo.getProcessVersion();
Long routeRrn = futureHoldHInfo.getRouteRrn();
String routeSeq = futureHoldHInfo.getRouteSeq();
Long operationRrn = futureHoldHInfo.getOperationRrn();
String operationSeq = futureHoldHInfo.getOperationSeq();
String flowSeq = futureHoldHInfo.getFlowSeq();
String holdType = futureHoldHInfo.getHoldType();
String holdCategory = futureHoldHInfo.getHoldCategory();
String holdGroup = futureHoldHInfo.getHoldGroup();
String holdCode = futureHoldHInfo.getHoldCode();
String holdReason = futureHoldHInfo.getHoldReason();
String holdComment = futureHoldHInfo.getHoldComment();
String transUserId = futureHoldHInfo.getTransUserId();
Timestamp transTime = (Timestamp) futureHoldHInfo.getTransTime();
String sql = "INSERT INTO " + DataBaseNames.FUTURE_HOLD_H + "(SYS_RRN,TRANS_RRN,TRANS_ID,FACILITY_RRN, " +
" STATUS, LOT_RRN, PRODUCT_RRN, PRODUCT_VERSION, " +
" PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN,ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ, " +
" HOLD_TYPE,HOLD_CATEGORY,HOLD_GROUP,HOLD_CODE,HOLD_REASON,HOLD_COMMENT,TRANS_USER_ID,TRANS_TIME) " +
" VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
Object[] obj ={sysRrn,transRrn,transId,facilityRrn,status,lotRrn,productRrn,productVersion,processRrn
,processVersion,routeRrn,routeSeq,operationRrn,operationSeq,flowSeq,
holdType,holdCategory,holdGroup,holdCode,holdReason,holdComment,transUserId,transTime};
jdbcTemplate.update(sql,obj);
}
@Override
public List<FutureHold> getFHListByProduct(Long facilityRrn, Long productRrn, String holdType, String holdCategory) {
String sql = " SELECT SYS_RRN,FACILITY_RRN,STATUS,LOT_RRN,PRODUCT_RRN,PRODUCT_VERSION,PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN, " +
" ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ,EFFICTIVE_COUNT,HOLD_TYPE,HOLD_GROUP,HOLD_CODE, " +
" HOLD_REASON,HOLD_COMMENT,CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,HOLD_CATEGORY,ATTRIBUTE_DATA1,ATTRIBUTE_DATA2 FROM " + DataBaseNames.FUTURE_HOLD +
" WHERE FACILITY_RRN=? AND PRODUCT_RRN=? AND HOLD_TYPE=? AND HOLD_CATEGORY=? ";
return jdbcTemplate.query(sql, new Object[]{facilityRrn, productRrn, holdType, holdCategory}, new RowMapper<FutureHold>() {
@Override
public FutureHold mapRow(ResultSet rs, int rowNum) throws SQLException {
FutureHold futureHold = new FutureHold();
futureHold.setSysRrn(rs.getLong("SYS_RRN"));
futureHold.setFacilityRrn(rs.getLong("FACILITY_RRN"));
futureHold.setStatus(rs.getString("STATUS"));
futureHold.setLotRrn(rs.getLong("LOT_RRN"));
futureHold.setProductRrn(rs.getLong("PRODUCT_RRN"));
futureHold.setProductVersion(rs.getLong("PRODUCT_VERSION"));
futureHold.setProcessRrn(rs.getLong("PROCESS_RRN"));
futureHold.setProcessVersion(rs.getLong("PROCESS_VERSION"));
futureHold.setRouteRrn(rs.getLong("ROUTE_RRN"));
futureHold.setRouteSeq(rs.getString("ROUTE_SEQ"));
futureHold.setOperationRrn(rs.getLong("OPERATION_RRN"));
futureHold.setOperationSeq(rs.getString("OPERATION_SEQ"));
futureHold.setFlowSeq(rs.getString("FLOW_SEQ"));
futureHold.setEffictiveCount(rs.getLong("EFFICTIVE_COUNT"));
futureHold.setHoldType(rs.getString("HOLD_TYPE"));
futureHold.setHoldGroup(rs.getString("HOLD_GROUP"));
futureHold.setHoldCode(rs.getString("HOLD_CODE"));
futureHold.setHoldReason(rs.getString("HOLD_REASON"));
futureHold.setHoldComment(rs.getString("HOLD_COMMENT"));
futureHold.setHoldCategory(rs.getString("HOLD_CATEGORY"));
futureHold.setCreateUserRrn(rs.getLong("CREATE_USER_RRN"));
futureHold.setCreateTime(rs.getTimestamp("CREATE_TIME"));
futureHold.setUpdateUserRrn(rs.getLong("UPDATE_USER_RRN"));
futureHold.setUpdateTime(rs.getTimestamp("UPDATE_TIME"));
futureHold.setAttributeData1(rs.getString("ATTRIBUTE_DATA1"));
futureHold.setAttributeData2(rs.getString("ATTRIBUTE_DATA2"));
return futureHold;
}
});
}
@Override
public List<FutureHoldLotHistory> getFutureHoldLotHList(Long sysRrn, Long lotRrn) {
String sql = " SELECT TRANS_RRN,TRANS_ID,FUTURE_HOLD_SYS_RRN,LOT_RRN,JOB_RRN,PRODUCT_RRN,PRODUCT_VERSION,PROCESS_RRN,PROCESS_VERSION, " +
" ROUTE_RRN,ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ,OPERATION_DESC,STAGE_ID,PROCESS_LOCATION, " +
" HOLD_TYPE,HOLD_GROUP,HOLD_CODE,HOLD_REASON,HOLD_COMMENT,HOLD_CATEGORY,HOLD_QTY,RESPONSIBILITY,TRANS_USER_ID,TRANS_TIME "+
" FROM "+DataBaseNames.FUTURE_HOLD_LOT_H+" WHERE FUTURE_HOLD_SYS_RRN=? AND LOT_RRN = ? ";
return jdbcTemplate.query(sql,new Object[]{sysRrn,lotRrn},new RowMapper<FutureHoldLotHistory>() {
@Override
public FutureHoldLotHistory mapRow(ResultSet rs, int rowNum) throws SQLException {
FutureHoldLotHistory futureHoldLotHistory = new FutureHoldLotHistory();
futureHoldLotHistory.setTransRrn(rs.getLong("TRANS_RRN"));
futureHoldLotHistory.setTransId(rs.getString("TRANS_ID"));
futureHoldLotHistory.setFutureHoldSysRrn(rs.getLong("FUTURE_HOLD_SYS_RRN"));
futureHoldLotHistory.setLotRrn(rs.getLong("LOT_RRN"));
futureHoldLotHistory.setJobRrn(rs.getLong("JOB_RRN"));
futureHoldLotHistory.setProductRrn(rs.getLong("PRODUCT_RRN"));
futureHoldLotHistory.setProductVersion(rs.getLong("PRODUCT_VERSION"));
futureHoldLotHistory.setProcessRrn(rs.getLong("PROCESS_RRN"));
futureHoldLotHistory.setProcessVersion(rs.getLong("PROCESS_VERSION"));
futureHoldLotHistory.setRouteRrn(rs.getLong("ROUTE_RRN"));
futureHoldLotHistory.setRouteSeq(rs.getString("ROUTE_SEQ"));
futureHoldLotHistory.setOperationRrn(rs.getLong("OPERATION_RRN"));
futureHoldLotHistory.setOperationSeq(rs.getString("OPERATION_SEQ"));
futureHoldLotHistory.setFlowSeq(rs.getString("FLOW_SEQ"));
futureHoldLotHistory.setOperationDesc(rs.getString("OPERATION_DESC"));
futureHoldLotHistory.setStageId(rs.getString("STAGE_ID"));
futureHoldLotHistory.setProcessLocation(rs.getString("PROCESS_LOCATION"));
futureHoldLotHistory.setHoldType(rs.getString("HOLD_TYPE"));
futureHoldLotHistory.setHoldGroup(rs.getString("HOLD_GROUP"));
futureHoldLotHistory.setHoldCode(rs.getString("HOLD_CODE"));
futureHoldLotHistory.setHoldReason(rs.getString("HOLD_REASON"));
futureHoldLotHistory.setHoldComment(rs.getString("HOLD_COMMENT"));
futureHoldLotHistory.setHoldCategory(rs.getString("HOLD_CATEGORY"));
futureHoldLotHistory.setHoldQty(rs.getLong("HOLD_QTY"));
futureHoldLotHistory.setResponsibility(rs.getString("RESPONSIBILITY"));
futureHoldLotHistory.setTransUserId(rs.getString("TRANS_USER_ID"));
futureHoldLotHistory.setTransTime(rs.getTimestamp("TRANS_TIME"));
return futureHoldLotHistory;
}
});
}
@Override
public void deleteFutureHold(Long sysRrn) {
String sql = "DELETE FROM " + DataBaseNames.FUTURE_HOLD + " WHERE SYS_RRN=? ";
jdbcTemplate.update(sql, sysRrn);
}
@Override
public List<FutureHold> getFutureHoldBySysRrn(Long futureHoldSysRrn) {
String sql = " SELECT SYS_RRN,FACILITY_RRN,STATUS,LOT_RRN,PRODUCT_RRN,PRODUCT_VERSION,PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN, " +
" ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ,EFFICTIVE_COUNT,HOLD_TYPE,HOLD_GROUP,HOLD_CODE, " +
" HOLD_REASON,HOLD_COMMENT,CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,HOLD_CATEGORY,ATTRIBUTE_DATA1 FROM "+DataBaseNames.FUTURE_HOLD+" WHERE " +
" SYS_RRN = ? ";
return jdbcTemplate.query(sql,new Object[]{futureHoldSysRrn}, new RowMapper<FutureHold>() {
@Override
public FutureHold mapRow(ResultSet rs, int rowNum) throws SQLException {
FutureHold futureHold = new FutureHold();
futureHold.setSysRrn(rs.getLong("SYS_RRN"));
futureHold.setFacilityRrn(rs.getLong("FACILITY_RRN"));
futureHold.setStatus(rs.getString("STATUS"));
futureHold.setLotRrn(rs.getLong("LOT_RRN"));
futureHold.setProductRrn(rs.getLong("PRODUCT_RRN"));
futureHold.setProductVersion(rs.getLong("PRODUCT_VERSION"));
futureHold.setProcessRrn(rs.getLong("PROCESS_RRN"));
futureHold.setProcessVersion(rs.getLong("PROCESS_VERSION"));
futureHold.setRouteRrn(rs.getLong("ROUTE_RRN"));
futureHold.setRouteSeq(rs.getString("ROUTE_SEQ"));
futureHold.setOperationRrn(rs.getLong("OPERATION_RRN"));
futureHold.setOperationSeq(rs.getString("OPERATION_SEQ"));
futureHold.setFlowSeq(rs.getString("FLOW_SEQ"));
futureHold.setEffictiveCount(rs.getLong("EFFICTIVE_COUNT"));
futureHold.setHoldType(rs.getString("HOLD_TYPE"));
futureHold.setHoldGroup(rs.getString("HOLD_GROUP"));
futureHold.setHoldCode(rs.getString("HOLD_CODE"));
futureHold.setHoldReason(rs.getString("HOLD_REASON"));
futureHold.setHoldComment(rs.getString("HOLD_COMMENT"));
futureHold.setHoldCategory(rs.getString("HOLD_CATEGORY"));
futureHold.setCreateUserRrn(rs.getLong("CREATE_USER_RRN"));
futureHold.setCreateTime(rs.getTimestamp("CREATE_TIME"));
futureHold.setUpdateUserRrn(rs.getLong("UPDATE_USER_RRN"));
futureHold.setUpdateTime(rs.getTimestamp("UPDATE_TIME"));
futureHold.setAttributeData1(rs.getString("ATTRIBUTE_DATA1"));
return futureHold;
}
});
}
@Override
public List<FutureHold> getFutureHold(FutureHold futureHold) {
List<Object> obj = new ArrayList();
obj.add(futureHold.getFacilityRrn());
obj.add(futureHold.getProductRrn());
obj.add(futureHold.getProcessRrn());
obj.add(futureHold.getRouteRrn());
obj.add(futureHold.getOperationRrn());
obj.add(futureHold.getHoldType());
obj.add(futureHold.getHoldCategory());
Long lotRrn = futureHold.getLotRrn();
String lotCondition = "";
if(lotRrn != null && lotRrn != 0){
obj.add(lotRrn);
lotCondition = " AND LOT_RRN = ? ";
}
String sql = " SELECT SYS_RRN,FACILITY_RRN,STATUS,LOT_RRN,PRODUCT_RRN,PRODUCT_VERSION,PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN, " +
" ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ,EFFICTIVE_COUNT,HOLD_TYPE,HOLD_GROUP,HOLD_CODE, " +
" HOLD_REASON,HOLD_COMMENT,CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,HOLD_CATEGORY,ATTRIBUTE_DATA1 FROM "+DataBaseNames.FUTURE_HOLD+" WHERE " +
" FACILITY_RRN=? AND PRODUCT_RRN=? AND PROCESS_RRN=? AND ROUTE_RRN=? "+
" AND OPERATION_RRN=? AND HOLD_TYPE=? AND HOLD_CATEGORY=? "+ lotCondition;
return jdbcTemplate.query(sql, obj.toArray(), new RowMapper<FutureHold>() {
@Override
public FutureHold mapRow(ResultSet rs, int rowNum) throws SQLException {
FutureHold futureHold = new FutureHold();
futureHold.setSysRrn(rs.getLong("SYS_RRN"));
futureHold.setFacilityRrn(rs.getLong("FACILITY_RRN"));
futureHold.setStatus(rs.getString("STATUS"));
futureHold.setLotRrn(rs.getLong("LOT_RRN"));
futureHold.setProductRrn(rs.getLong("PRODUCT_RRN"));
futureHold.setProductVersion(rs.getLong("PRODUCT_VERSION"));
futureHold.setProcessRrn(rs.getLong("PROCESS_RRN"));
futureHold.setProcessVersion(rs.getLong("PROCESS_VERSION"));
futureHold.setRouteRrn(rs.getLong("ROUTE_RRN"));
futureHold.setRouteSeq(rs.getString("ROUTE_SEQ"));
futureHold.setOperationRrn(rs.getLong("OPERATION_RRN"));
futureHold.setOperationSeq(rs.getString("OPERATION_SEQ"));
futureHold.setFlowSeq(rs.getString("FLOW_SEQ"));
futureHold.setEffictiveCount(rs.getLong("EFFICTIVE_COUNT"));
futureHold.setHoldType(rs.getString("HOLD_TYPE"));
futureHold.setHoldGroup(rs.getString("HOLD_GROUP"));
futureHold.setHoldCode(rs.getString("HOLD_CODE"));
futureHold.setHoldReason(rs.getString("HOLD_REASON"));
futureHold.setHoldComment(rs.getString("HOLD_COMMENT"));
futureHold.setHoldCategory(rs.getString("HOLD_CATEGORY"));
futureHold.setCreateUserRrn(rs.getLong("CREATE_USER_RRN"));
futureHold.setCreateTime(rs.getTimestamp("CREATE_TIME"));
futureHold.setUpdateUserRrn(rs.getLong("UPDATE_USER_RRN"));
futureHold.setUpdateTime(rs.getTimestamp("UPDATE_TIME"));
futureHold.setAttributeData1(rs.getString("ATTRIBUTE_DATA1"));
return futureHold;
}
});
}
@Override
public List<FutureHold> getFHListByLot(Long facilityRrn, Long lotRrn, String holdType,
String holdCategory) {
String sql = " SELECT SYS_RRN,FACILITY_RRN,STATUS,LOT_RRN,PRODUCT_RRN,PRODUCT_VERSION,PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN, " +
" ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ,EFFICTIVE_COUNT,HOLD_TYPE,HOLD_GROUP,HOLD_CODE, " +
" HOLD_REASON,HOLD_COMMENT,CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,HOLD_CATEGORY,ATTRIBUTE_DATA1 FROM " + DataBaseNames.FUTURE_HOLD +
" WHERE FACILITY_RRN=? AND LOT_RRN=? AND HOLD_TYPE=? AND HOLD_CATEGORY=? ";
return jdbcTemplate.query(sql, new Object[]{facilityRrn, lotRrn, holdType, holdCategory}, new RowMapper<FutureHold>() {
@Override
public FutureHold mapRow(ResultSet rs, int rowNum) throws SQLException {
FutureHold futureHold = new FutureHold();
futureHold.setSysRrn(rs.getLong("SYS_RRN"));
futureHold.setFacilityRrn(rs.getLong("FACILITY_RRN"));
futureHold.setStatus(rs.getString("STATUS"));
futureHold.setLotRrn(rs.getLong("LOT_RRN"));
futureHold.setProductRrn(rs.getLong("PRODUCT_RRN"));
futureHold.setProductVersion(rs.getLong("PRODUCT_VERSION"));
futureHold.setProcessRrn(rs.getLong("PROCESS_RRN"));
futureHold.setProcessVersion(rs.getLong("PROCESS_VERSION"));
futureHold.setRouteRrn(rs.getLong("ROUTE_RRN"));
futureHold.setRouteSeq(rs.getString("ROUTE_SEQ"));
futureHold.setOperationRrn(rs.getLong("OPERATION_RRN"));
futureHold.setOperationSeq(rs.getString("OPERATION_SEQ"));
futureHold.setFlowSeq(rs.getString("FLOW_SEQ"));
futureHold.setEffictiveCount(rs.getLong("EFFICTIVE_COUNT"));
futureHold.setHoldType(rs.getString("HOLD_TYPE"));
futureHold.setHoldGroup(rs.getString("HOLD_GROUP"));
futureHold.setHoldCode(rs.getString("HOLD_CODE"));
futureHold.setHoldReason(rs.getString("HOLD_REASON"));
futureHold.setHoldComment(rs.getString("HOLD_COMMENT"));
futureHold.setHoldCategory(rs.getString("HOLD_CATEGORY"));
futureHold.setCreateUserRrn(rs.getLong("CREATE_USER_RRN"));
futureHold.setCreateTime(rs.getTimestamp("CREATE_TIME"));
futureHold.setUpdateUserRrn(rs.getLong("UPDATE_USER_RRN"));
futureHold.setUpdateTime(rs.getTimestamp("UPDATE_TIME"));
futureHold.setAttributeData1(rs.getString("ATTRIBUTE_DATA1"));
return futureHold;
}
});
}
@Override
public List<FutureHoldLot> getFHLotListByLot(Long lotRrn, String holdType) {
String sql = " SELECT FUTURE_HOLD_SYS_RRN,LOT_RRN,JOB_RRN,PRODUCT_RRN,PRODUCT_VERSION,PROCESS_RRN,PROCESS_VERSION, " +
" ROUTE_RRN,ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ,OPERATION_DESC,STAGE_ID,PROCESS_LOCATION, " +
" HOLD_TYPE,HOLD_GROUP,HOLD_CODE,HOLD_REASON,HOLD_COMMENT,HOLD_CATEGORY,HOLD_QTY,RESPONSIBILITY, " +
" CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,ATTRIBUTE_DATA1,ATTRIBUTE_DATA2 FROM "+DataBaseNames.FUTURE_HOLD_LOT+" WHERE LOT_RRN = ? AND HOLD_TYPE = ? ";
return jdbcTemplate.query(sql, new Object[]{lotRrn,holdType}, new RowMapper<FutureHoldLot>() {
@Override
public FutureHoldLot mapRow(ResultSet rs, int rowNum) throws SQLException {
FutureHoldLot futureHoldLot = new FutureHoldLot();
futureHoldLot.setFutureHoldSysRrn(rs.getLong("FUTURE_HOLD_SYS_RRN"));
futureHoldLot.setLotRrn(rs.getLong("LOT_RRN"));
futureHoldLot.setJobRrn(rs.getLong("JOB_RRN"));
futureHoldLot.setProductRrn(rs.getLong("PRODUCT_RRN"));
futureHoldLot.setProductVersion(rs.getLong("PRODUCT_VERSION"));
futureHoldLot.setProcessRrn(rs.getLong("PROCESS_RRN"));
futureHoldLot.setProcessVersion(rs.getLong("PROCESS_VERSION"));
futureHoldLot.setRouteRrn(rs.getLong("ROUTE_RRN"));
futureHoldLot.setRouteSeq(rs.getString("ROUTE_SEQ"));
futureHoldLot.setOperationRrn(rs.getLong("OPERATION_RRN"));
futureHoldLot.setOperationSeq(rs.getString("OPERATION_SEQ"));
futureHoldLot.setFlowSeq(rs.getString("FLOW_SEQ"));
futureHoldLot.setOperationDesc(rs.getString("OPERATION_DESC"));
futureHoldLot.setStageId(rs.getString("STAGE_ID"));
futureHoldLot.setProcessLocation(rs.getString("PROCESS_LOCATION"));
futureHoldLot.setHoldType(rs.getString("HOLD_TYPE"));
futureHoldLot.setHoldGroup(rs.getString("HOLD_GROUP"));
futureHoldLot.setHoldCode(rs.getString("HOLD_CODE"));
futureHoldLot.setHoldReason(rs.getString("HOLD_REASON"));
futureHoldLot.setHoldComment(rs.getString("HOLD_COMMENT"));
futureHoldLot.setHoldCategory(rs.getString("HOLD_CATEGORY"));
futureHoldLot.setHoldQty(rs.getLong("HOLD_QTY"));
futureHoldLot.setResponsibility(rs.getString("RESPONSIBILITY"));
futureHoldLot.setCreateUserRrn(rs.getLong("CREATE_USER_RRN"));
futureHoldLot.setCreateTime(rs.getTimestamp("CREATE_TIME"));
futureHoldLot.setUpdateUserRrn(rs.getLong("UPDATE_USER_RRN"));
futureHoldLot.setUpdateTime(rs.getTimestamp("UPDATE_TIME"));
futureHoldLot.setAttributeData1(rs.getString("ATTRIBUTE_DATA1"));
futureHoldLot.setAttributeData2(rs.getString("ATTRIBUTE_DATA2"));
return futureHoldLot;
}
});
}
@Override
public void insertFutureHoldLot(FutureHoldLot futureHoldLot) {
Long futureHoldSysRrn = futureHoldLot.getFutureHoldSysRrn();
Long lotRrn = futureHoldLot.getLotRrn();
Long stepSequence = futureHoldLot.getStepSequence();
Long jobRrn = futureHoldLot.getJobRrn();
Long productRrn = futureHoldLot.getProductRrn();
Long productVersion = futureHoldLot.getProductVersion();
Long processRrn = futureHoldLot.getProcessRrn();
Long processVersion = futureHoldLot.getProcessVersion();
Long routeRrn = futureHoldLot.getRouteRrn();
String routeSeq = futureHoldLot.getRouteSeq();
Long operationRrn = futureHoldLot.getOperationRrn();
String operationSeq = futureHoldLot.getOperationSeq();
String flowSeq = futureHoldLot.getFlowSeq();
String operationDesc = futureHoldLot.getOperationDesc();
String stageId = futureHoldLot.getStageId();
String processLocation = futureHoldLot.getProcessLocation();
String holdType = futureHoldLot.getHoldType();
String holdCategory = futureHoldLot.getHoldCategory();
String holdGroup = futureHoldLot.getHoldGroup();
String holdCode = futureHoldLot.getHoldCode();
String holdReason = futureHoldLot.getHoldReason();
String holdComment = futureHoldLot.getHoldComment();
Long holdQty = futureHoldLot.getHoldQty();
String responsibility = futureHoldLot.getResponsibility();
Long createUserRrn = futureHoldLot.getCreateUserRrn();
Timestamp createTime = (Timestamp) futureHoldLot.getCreateTime();
Long updateUserRrn = futureHoldLot.getUpdateUserRrn();
Timestamp updateTime = (Timestamp) futureHoldLot.getUpdateTime();
//release时的标识
String sequenceNumber = futureHoldLot.getAttributeData1();
//MoveOut的类型:AUTO/MANUAL
String type = futureHoldLot.getAttributeData2();
String sql = "INSERT INTO " + DataBaseNames.FUTURE_HOLD_LOT + "(FUTURE_HOLD_SYS_RRN, LOT_RRN,STEP_SEQUENCE,JOB_RRN, PRODUCT_RRN, PRODUCT_VERSION, " +
" PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN,ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ, " +
" OPERATION_DESC,STAGE_ID,PROCESS_LOCATION,HOLD_TYPE,HOLD_CATEGORY,HOLD_GROUP,HOLD_CODE," +
" HOLD_REASON,HOLD_COMMENT,HOLD_QTY,RESPONSIBILITY,CREATE_USER_RRN,CREATE_TIME,UPDATE_USER_RRN,UPDATE_TIME,ATTRIBUTE_DATA1,ATTRIBUTE_DATA2) " +
" VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
Object[] obj ={futureHoldSysRrn,lotRrn,stepSequence,jobRrn,productRrn,productVersion,processRrn,processVersion,routeRrn,routeSeq,operationRrn,operationSeq,flowSeq,
operationDesc,stageId,processLocation,holdType,holdCategory,holdGroup,holdCode,holdReason,holdComment,holdQty,responsibility,createUserRrn,createTime,
updateUserRrn,updateTime,sequenceNumber,type};
jdbcTemplate.update(sql,obj);
}
@Override
public void deleteFutureHoldLot(Long futureHoldSysRrn, Long lotRrn) {
String sql = "DELETE FROM "+DataBaseNames.FUTURE_HOLD_LOT+" WHERE FUTURE_HOLD_SYS_RRN = ? AND LOT_RRN = ? ";
jdbcTemplate.update(sql,new Object[]{futureHoldSysRrn,lotRrn});
}
@Override
public void insertFutureHoldLotH(FutureHoldLotHistory futureHoldLotHistory) {
Long transRrn = futureHoldLotHistory.getTransRrn();
String transId = futureHoldLotHistory.getTransId();
Long futureHoldSysRrn = futureHoldLotHistory.getFutureHoldSysRrn();
Long lotRrn = futureHoldLotHistory.getLotRrn();
Long jobRrn = futureHoldLotHistory.getJobRrn();
Long productRrn = futureHoldLotHistory.getProductRrn();
Long productVersion = futureHoldLotHistory.getProcessVersion();
Long processRrn = futureHoldLotHistory.getProcessRrn();
Long processVersion = futureHoldLotHistory.getProcessVersion();
Long routeRrn = futureHoldLotHistory.getRouteRrn();
String routeSeq = futureHoldLotHistory.getRouteSeq();
Long operationRrn = futureHoldLotHistory.getOperationRrn();
String operationSeq = futureHoldLotHistory.getOperationSeq();
String flowSeq = futureHoldLotHistory.getFlowSeq();
String operationDesc = futureHoldLotHistory.getOperationDesc();
String stageId = futureHoldLotHistory.getStageId();
String processLocation = futureHoldLotHistory.getProcessLocation();
String holdType = futureHoldLotHistory.getHoldType();
String holdCategory = futureHoldLotHistory.getHoldCategory();
String holdGroup = futureHoldLotHistory.getHoldGroup();
String holdCode = futureHoldLotHistory.getHoldCode();
String holdReason = futureHoldLotHistory.getHoldReason();
String holdComment = futureHoldLotHistory.getHoldComment();
Long holdQty = futureHoldLotHistory.getHoldQty();
String responsibility = futureHoldLotHistory.getResponsibility();
String transUserId = futureHoldLotHistory.getTransUserId();
Timestamp transTime = (Timestamp) futureHoldLotHistory.getTransTime();
//MoveOut的类型:AUTO/MANUAL
String type = futureHoldLotHistory.getAttributeData2();
String sql = "INSERT INTO "+ DataBaseNames.FUTURE_HOLD_LOT_H + "(TRANS_RRN,TRANS_ID,FUTURE_HOLD_SYS_RRN,LOT_RRN,JOB_RRN,PRODUCT_RRN,PRODUCT_VERSION, " +
" PROCESS_RRN,PROCESS_VERSION,ROUTE_RRN,ROUTE_SEQ,OPERATION_RRN,OPERATION_SEQ,FLOW_SEQ, " +
" OPERATION_DESC,STAGE_ID,PROCESS_LOCATION,HOLD_TYPE,HOLD_CATEGORY,HOLD_GROUP,HOLD_CODE, " +
" HOLD_REASON,HOLD_COMMENT,HOLD_QTY,RESPONSIBILITY,TRANS_USER_ID,TRANS_TIME,ATTRIBUTE_DATA2) " +
" VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
Object[] obj ={transRrn,transId,futureHoldSysRrn,lotRrn,jobRrn,productRrn,productVersion,processRrn,processVersion,routeRrn,routeSeq,operationRrn,operationSeq,flowSeq,
operationDesc,stageId,processLocation,holdType,holdCategory,holdGroup,holdCode,holdReason,holdComment,holdQty,responsibility,transUserId,transTime,type};
jdbcTemplate.update(sql,obj);
}
@Override
public List<String> getMaxSeqNumByProduct(Long facilityRrn, Long productRrn, String holdType, String holdCategory) {
String sql = "select max(attribute_data1) from future_hold where facility_rrn=? and product_rrn=? and hold_type=? and hold_category=?";
return jdbcTemplate.query(sql,new Object[]{facilityRrn,productRrn,holdType,holdCategory},String.class);
}
@Override
public List<String> getMaxSeqNumByLot(Long facilityRrn, Long lotRrn, String holdType, String holdCategory) {
String sql = "select max(attribute_data1) from future_hold where facility_rrn=? and lot_rrn=? and hold_type=? and hold_category=?";
return jdbcTemplate.query(sql,new Object[]{facilityRrn,lotRrn,holdType,holdCategory},String.class);
}
}