|  | @@ -0,0 +1,103 @@
 | 
	
		
			
				|  |  | +package nc.impl.tbb;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.io.IOException;
 | 
	
		
			
				|  |  | +import java.io.PrintWriter;
 | 
	
		
			
				|  |  | +import java.io.StringWriter;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import javax.servlet.ServletException;
 | 
	
		
			
				|  |  | +import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | +import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSONArray;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import nc.bs.framework.adaptor.IHttpServletAdaptor;
 | 
	
		
			
				|  |  | +import nc.bs.framework.common.InvocationInfoProxy;
 | 
	
		
			
				|  |  | +import nc.bs.framework.common.NCLocator;
 | 
	
		
			
				|  |  | +import nc.bs.framework.server.ISecurityTokenCallback;
 | 
	
		
			
				|  |  | +import nc.bs.servlet.service.BaseServlet;
 | 
	
		
			
				|  |  | +import nc.itf.tbb.IBudgetService;
 | 
	
		
			
				|  |  | +import nc.itf.uap.IUAPQueryBS;
 | 
	
		
			
				|  |  | +import nc.jdbc.framework.processor.BeanProcessor;
 | 
	
		
			
				|  |  | +import nc.jdbc.framework.processor.ColumnProcessor;
 | 
	
		
			
				|  |  | +import nc.log.NcLog;
 | 
	
		
			
				|  |  | +import nc.ms.tb.control.CtlSchemeCTL;
 | 
	
		
			
				|  |  | +import nc.ms.tb.rule.CtlSchemeServiceGetter;
 | 
	
		
			
				|  |  | +import nc.vo.tb.task.MdTask;
 | 
	
		
			
				|  |  | +import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class ResetBudgetImpl extends BaseServlet implements IHttpServletAdaptor{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void doAction(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			IUAPQueryBS iuap = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
 | 
	
		
			
				|  |  | +			NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("NCSystem".getBytes(),"pfxx".getBytes());
 | 
	
		
			
				|  |  | +			InvocationInfoProxy.getInstance().setGroupId("0001A110000000000LO7");
 | 
	
		
			
				|  |  | +			String createStr = buildJson(req, resp, this.getClass().getName());
 | 
	
		
			
				|  |  | +			NcLog.info("预算重启开始:"+ createStr);
 | 
	
		
			
				|  |  | +			JSONObject json = JSONObject.fromObject(createStr);
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			checkJson(json);
 | 
	
		
			
				|  |  | +			String code_entity = json.getString("code_entity");//责任主体
 | 
	
		
			
				|  |  | +			String pk_year = json.getString("pk_year");//会计年度
 | 
	
		
			
				|  |  | +			String entityPk = QueryOrgPk(code_entity);//责任主体pk
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			//调用预算重启事务
 | 
	
		
			
				|  |  | +			IBudgetService service = NCLocator.getInstance().lookup(IBudgetService.class);
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			service.reset_RequiresNew(entityPk, pk_year);
 | 
	
		
			
				|  |  | +			resp.getWriter().write(formatRSJsonData("成功", "", null).toString());
 | 
	
		
			
				|  |  | +			NcLog.info("预算重启结束");
 | 
	
		
			
				|  |  | +		} catch (Exception e) {
 | 
	
		
			
				|  |  | +			resp.getWriter().write(formatRSJsonData("失败",e.getMessage() == null ? "" : e.getMessage(),null).toString());
 | 
	
		
			
				|  |  | +			StringWriter stringWriter = new StringWriter();
 | 
	
		
			
				|  |  | +			e.printStackTrace(new PrintWriter(stringWriter));
 | 
	
		
			
				|  |  | +			//获取详细信息
 | 
	
		
			
				|  |  | +			String msg = stringWriter.getBuffer().toString();
 | 
	
		
			
				|  |  | +			NcLog.info("预算重启失败:"+ msg);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private void checkJson(JSONObject json) throws Exception {
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		StringBuffer mags = new StringBuffer();
 | 
	
		
			
				|  |  | +		Boolean empty = true;
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		String code_entity = "code_entity";
 | 
	
		
			
				|  |  | +		String pk_year = "pk_year";
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		String[] HeadKey = {code_entity,pk_year};
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		for (String as : HeadKey) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			if (json.getString(as).isEmpty()) {
 | 
	
		
			
				|  |  | +				empty = false;
 | 
	
		
			
				|  |  | +				mags.append("'" + as + "'");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (!empty) {
 | 
	
		
			
				|  |  | +			throw new Exception("以下字段不可为空:"+mags);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 查询责任主体pk
 | 
	
		
			
				|  |  | +	 * @param code_entity
 | 
	
		
			
				|  |  | +	 * @return
 | 
	
		
			
				|  |  | +	 * @throws Exception
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	public String QueryOrgPk(String code_entity) throws Exception{
 | 
	
		
			
				|  |  | +		IUAPQueryBS iuap = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
 | 
	
		
			
				|  |  | +		String qrysql = "select pk_org from org_orgs where code = '"+code_entity+"' and nvl(dr,0) = 0";
 | 
	
		
			
				|  |  | +		String pk_org = (String) iuap.executeQuery(qrysql, new ColumnProcessor());
 | 
	
		
			
				|  |  | +		if (pk_org == null) {
 | 
	
		
			
				|  |  | +			throw new Exception("获取责任主体信息失败,未找到与参数" + code_entity + "有关的数据!");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return pk_org;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |