workinstructionversionaction.java

来自「工厂版本管理系统,STRUTS2框架,用于管理商品的版本,便于有效的控制版本」· Java 代码 · 共 207 行

JAVA
207
字号
package com.utstar.fcs.web.struts.action;

import java.util.Iterator;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.Preparable;
import com.utstar.fcs.domain.workinstruction.FlowChartItem;
import com.utstar.fcs.domain.workinstruction.Station;
import com.utstar.fcs.domain.workinstruction.StationVersion;
import com.utstar.fcs.domain.workinstruction.WorkInstruction;
import com.utstar.fcs.domain.workinstruction.WorkInstructionVersion;

public class WorkInstructionVersionAction extends BaseAction implements
		Preparable {
	private static String WORK_INSTRUCTION = "WORK_INSTRUCTION";
	private static String WORK_INSTRUCTION_VERSION = "WORK_INSTRUCTION_VERSION";

	// input
	private Long workInstructionId;
	private Long workInstructionVersionId;

	private String[] versions = new String[100];

	// form 2
	private int position;

	private WorkInstructionVersion oldWorkInstructionVersion;

	// private WorkInstruction workInstruction = new WorkInstruction();
	// private WorkInstructionVersion workInstructionVersion = new
	// WorkInstructionVersion();

	public void prepare() throws Exception {

		// workInstruction =
		// getWorkInstructionService().loadFullWorkInstruction(
		// workInstructionId);

	}

	public String input() {

		WorkInstruction workInstruction = getWorkInstructionService()
				.loadFullWorkInstruction(workInstructionId);
		WorkInstructionVersion workInstructionVersion = getWorkInstructionService()
				.makeDefaultNewVersion(workInstruction);

		// put to session
		setWorkInstruction(workInstruction);
		setWorkInstructionVersion(workInstructionVersion);

		//synchronize
		for(int i=0;i<workInstructionVersion.getFlowChart().size();i++)
			versions[i] = workInstructionVersion.getFlowChart().get(i).getStationVersion().getVersion();
		
		
		return INPUT;
	}

	public String up() {
		int newPosition = position - 1;
		if (newPosition >= 0) {

			FlowChartItem fci = getWorkInstructionVersion().getFlowChart().get(
					position);
			getWorkInstructionVersion().getFlowChart().remove(position);
			getWorkInstructionVersion().getFlowChart().add(newPosition, fci);
			
			//version array
			String temp = versions[position];
			versions[position]=versions[newPosition];
			versions[newPosition]=temp;
		}

		return INPUT;
	}

	public String down() {
		int newPosition = position + 1;
		if (newPosition < getWorkInstructionVersion().getFlowChart().size()) {
			FlowChartItem fci = getWorkInstructionVersion().getFlowChart().get(
					position);
			getWorkInstructionVersion().getFlowChart().remove(position);
			getWorkInstructionVersion().getFlowChart().add(newPosition, fci);
		
			//version array
			String temp = versions[position];
			versions[position]=versions[newPosition];
			versions[newPosition]=temp;
		}

		return INPUT;
	}

	private void updateVersions(){
		
		int size =getWorkInstructionVersion().getFlowChart().size();
		for(int i=0;i<size;i++)
		{
			FlowChartItem fci = getWorkInstructionVersion().getFlowChart().get(i);
			Station station = fci.getStationVersion().getStation();
			
			String newVersion = versions[i];
			StationVersion newSV = station.getVersions().get(newVersion);
			
			fci.setStationVersion(newSV);
		}
		
	}
	
	public String changeVersion(){
		updateVersions();
		
		return INPUT;
	}
	
	/*
	 * save&clear session
	 */
	public String release() {
		//update versions
		updateVersions();
	
		
		getReposity().getCommonDao().getHibTemplate().save(getWorkInstructionVersion());
		
		setWorkInstructionVersion(null);		
		setWorkInstruction(null);
		
		return "autoclose";
	}

	public String show() {
		oldWorkInstructionVersion = (WorkInstructionVersion) getReposity().get(
				WorkInstructionVersion.class, workInstructionVersionId);

		return "show";
	}

	public Long getWorkInstructionId() {
		return workInstructionId;
	}

	public void setWorkInstructionId(Long workInstructionId) {
		this.workInstructionId = workInstructionId;
	}

	public WorkInstruction getWorkInstruction() {
		Map session = ActionContext.getContext().getSession();
		return (WorkInstruction) session.get(WORK_INSTRUCTION);
	}

	public void setWorkInstruction(WorkInstruction workInstruction) {
		// this.workInstruction = workInstruction;
		ActionContext.getContext().getSession().put(WORK_INSTRUCTION,
				workInstruction);
	}

	public WorkInstructionVersion getWorkInstructionVersion() {
		Map session = ActionContext.getContext().getSession();
		return (WorkInstructionVersion) session.get(WORK_INSTRUCTION_VERSION);
	}

	public void setWorkInstructionVersion(
			WorkInstructionVersion workInstructionVersion) {

		ActionContext.getContext().getSession().put(WORK_INSTRUCTION_VERSION,
				workInstructionVersion);

	}

	public int getPosition() {
		return position;
	}

	public void setPosition(int position) {
		this.position = position;
	}

	public Long getWorkInstructionVersionId() {
		return workInstructionVersionId;
	}

	public void setWorkInstructionVersionId(Long workInstructionVersionId) {
		this.workInstructionVersionId = workInstructionVersionId;
	}

	public WorkInstructionVersion getOldWorkInstructionVersion() {
		return oldWorkInstructionVersion;
	}

	public void setOldWorkInstructionVersion(
			WorkInstructionVersion oldWorkInstructionVersion) {
		this.oldWorkInstructionVersion = oldWorkInstructionVersion;
	}

	public String[] getVersions() {
		return versions;
	}

	public void setVersions(String[] versions) {
		this.versions = versions;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?