瀏覽代碼

中台boss应付单接口,撤销删除接口

TanShaoyin 3 年之前
父節點
當前提交
a5efd92c7b

+ 153 - 144
arap_patch/src/private/nc/bs/tianwen/wuye/TWPayApplyServelet.java

@@ -1,144 +1,153 @@
-package nc.bs.tianwen.wuye;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.UUID;
-
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import nc.bcmanage.bs.IBusiCenterManageService;
-import nc.bs.framework.common.InvocationInfoProxy;
-import nc.bs.framework.common.NCLocator;
-import nc.bs.framework.comn.NetStreamContext;
-import nc.bs.framework.server.ISecurityTokenCallback;
-import nc.net.servlet.IReturnStatus;
-import nc.net.servlet.SapToNcEsbJsonServlet;
-import nc.pub.sap.constant.SapConstants;
-import nc.pubitf.para.SysInitQuery;
-import nc.util.uap.twxt.WYTwxtUtil;
-import nc.vo.esb.ResultEsbVO;
-import nc.vo.esb.ResultVO;
-import nc.vo.pub.BusinessException;
-import uap.json.JSONObject;
-
-/**
- * @Description: 付款申请
- * 
- * @author 周蓝萍【碧桂园物业-天问接口】
- * @date 2019-04-12
- * @version with NC V6.3
- */
-@SuppressWarnings("restriction")
-public class TWPayApplyServelet extends SapToNcEsbJsonServlet {
-
-	@Override
-	public void execFunction(HttpServletRequest request,
-			HttpServletResponse response) {
-		JSONObject jsonobj = null;
-		try {
-			initInvocationInfo();
-			jsonobj = findPostJsonValue(request);// 获取Post请求的值
-			if (jsonobj == null || "".equals(jsonobj)) {// 无Post提交值
-				ResultVO result = new ResultVO();
-				result.setCode(IReturnStatus.FAILING);// 失败
-				result.setMessage("Post所提交请求Json格式错误或者无值!");
-				ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();
-				createResultEsbVO(esb);
-				esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_FAILING);
-				esb.getEsbInfo().setReturnMsg("失败");
-				esb.setResultInfo(result);
-				sendResponse(response, esb);
-			} else {
-				String jsondata = WYTwxtUtil.getIWuYeTwxtBusiService().writePayApplyInfo(jsonobj);
-				sendResponse(response,jsondata);
-			}
-		} catch (Exception e) {
-			ResultVO result = new ResultVO();
-			result.setCode(IReturnStatus.ERROR);// 异常
-			result.setError(getExceptionDetail(e));
-			ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();// 创建响应对象
-			createResultEsbVO(esb);// 初始化响应对象
-			esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_ERROR);
-			esb.getEsbInfo().setReturnMsg("异常");
-			esb.setResultInfo(result);// 设置响应内容
-			sendResponse(response, esb);
-		}
-	}
-
-	/**
-	 * 获得UUID值
-	 */
-	public static String getStringUUID() {
-		return UUID.randomUUID().toString();
-	}
-
-	/**
-	 * 发送响应信息
-	 * 
-	 * @param response
-	 * @param esb
-	 */
-	public void sendResponse(final HttpServletResponse response, String jsondata) {
-		PrintWriter out = null;
-		try {
-			response.setHeader("Content-type", "application/json;charset=UTF-8");
-			out = new PrintWriter(new OutputStreamWriter(
-					response.getOutputStream(), "UTF-8"));
-			out.write(jsondata);
-			out.flush();
-		} catch (IOException e) {
-			e.printStackTrace();
-		} finally {
-			if (out != null) {
-				out.close();
-			}
-		}
-	}
-
-	/**
-	 * 加载Post提交上来的Json参数
-	 * 
-	 * @param request
-	 * @return
-	 * @throws Exception
-	 */
-	private JSONObject findPostJsonValue(final HttpServletRequest request)
-			throws Exception {
-		BufferedReader br = null;
-		try {
-			br = new BufferedReader(new InputStreamReader(
-					(ServletInputStream) request.getInputStream(), "utf-8"));
-			StringBuffer sb = new StringBuffer();
-			String temp = null;
-			while ((temp = br.readLine()) != null) {
-				sb.append(temp);
-			}
-			return new JSONObject(sb.toString());
-		} catch (Exception e) {
-			throw e;
-		} finally {
-			try {
-				if (br != null)
-					br.close();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	private void initInvocationInfo() throws BusinessException {
-		IBusiCenterManageService busiCenterManageService=NCLocator.getInstance().lookup(IBusiCenterManageService.class);
-		InvocationInfoProxy.getInstance().setUserDataSource(busiCenterManageService.getAvailableBusiCenterDsNames()[0]);
-		InvocationInfoProxy.getInstance().setGroupId(SysInitQuery.getParaString("GLOBLE00000000000000", "GROUP"));
-		InvocationInfoProxy.getInstance().setUserId(SysInitQuery.getParaString("GLOBLE00000000000000", "ITFUSER"));
-		ISecurityTokenCallback tc = NCLocator.getInstance().lookup(
-				ISecurityTokenCallback.class);
-		byte[] token = tc.token("__system".getBytes(), "NC".getBytes());
-		NetStreamContext.setToken(token);
-	}
-}
+package nc.bs.tianwen.wuye;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.UUID;
+
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONObject;
+
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.bs.framework.common.NCLocator;
+import nc.bs.framework.comn.NetStreamContext;
+import nc.bs.framework.server.ISecurityTokenCallback;
+import nc.itf.ztbossxt.process.IWuYeZtBossxtBusiService;
+import nc.net.servlet.IReturnStatus;
+import nc.net.servlet.SapToNcEsbJsonServlet;
+import nc.pubitf.para.SysInitQuery;
+import nc.util.uap.twxt.WYTwxtUtil;
+import nc.vo.esb.ResultEsbVO;
+import nc.vo.esb.ResultVO;
+import nc.vo.pub.BusinessException;
+
+
+/**
+ * @Description: 付款申请
+ * 
+ * @author 周蓝萍【碧桂园物业-天问接口】
+ * @date 2019-04-12
+ * @version with NC V6.3
+ */
+@SuppressWarnings("restriction")
+public class TWPayApplyServelet extends SapToNcEsbJsonServlet {
+
+	@Override
+	public void execFunction(HttpServletRequest request,
+			HttpServletResponse response) {
+		JSONObject jsonobj = null;
+		try {
+			initInvocationInfo();
+			jsonobj = findPostJsonValue(request);// 获取Post请求的值
+			if (jsonobj == null || "".equals(jsonobj)) {// 无Post提交值
+				ResultVO result = new ResultVO();
+				result.setCode(IReturnStatus.FAILING);// 失败
+				result.setMessage("Post所提交请求Json格式错误或者无值!");
+				ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();
+				createResultEsbVO(esb);
+				esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_FAILING);
+				esb.getEsbInfo().setReturnMsg("失败");
+				esb.setResultInfo(result);
+				sendResponse(response, esb);
+			} else {
+				JSONObject requestInfo = (JSONObject) jsonobj.get("requestInfo");
+				JSONObject head = requestInfo.getJSONObject("Header");
+				if(head.containsKey("bossid")) {
+					String jsondata =  NCLocator.getInstance().lookup(IWuYeZtBossxtBusiService.class).writeBossPayableApplyInfo(jsonobj);
+					sendResponse(response,jsondata);
+				} else if(head.containsKey("ztId")){
+					String jsondata =  NCLocator.getInstance().lookup(IWuYeZtBossxtBusiService.class).writeZtPayableApplyInfo(jsonobj);
+					sendResponse(response,jsondata);
+				} else {
+					String jsondata = WYTwxtUtil.getIWuYeTwxtBusiService().writePayApplyInfo(new uap.json.JSONObject(jsonobj.toString()));
+					sendResponse(response,jsondata);
+				}
+			}
+		} catch (Exception e) {
+			ResultVO result = new ResultVO();
+			result.setCode(IReturnStatus.ERROR);// 异常
+			result.setError(getExceptionDetail(e));
+			ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();// 创建响应对象
+			createResultEsbVO(esb);// 初始化响应对象
+			esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_ERROR);
+			esb.getEsbInfo().setReturnMsg("异常");
+			esb.setResultInfo(result);// 设置响应内容
+			sendResponse(response, esb);
+		}
+	}
+
+	/**
+	 * 获得UUID值
+	 */
+	public static String getStringUUID() {
+		return UUID.randomUUID().toString();
+	}
+
+	/**
+	 * 发送响应信息
+	 * 
+	 * @param response
+	 * @param esb
+	 */
+	public void sendResponse(final HttpServletResponse response, String jsondata) {
+		PrintWriter out = null;
+		try {
+			response.setHeader("Content-type", "application/json;charset=UTF-8");
+			out = new PrintWriter(new OutputStreamWriter(
+					response.getOutputStream(), "UTF-8"));
+			out.write(jsondata);
+			out.flush();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			if (out != null) {
+				out.close();
+			}
+		}
+	}
+
+	/**
+	 * 加载Post提交上来的Json参数
+	 * 
+	 * @param request
+	 * @return
+	 * @throws Exception
+	 */
+	private JSONObject findPostJsonValue(final HttpServletRequest request)
+			throws Exception {
+		BufferedReader br = null;
+		try {
+			br = new BufferedReader(new InputStreamReader(
+					(ServletInputStream) request.getInputStream(), "utf-8"));
+			StringBuffer sb = new StringBuffer();
+			String temp = null;
+			while ((temp = br.readLine()) != null) {
+				sb.append(temp);
+			}
+			return  JSONObject.parseObject(sb.toString());
+		} catch (Exception e) {
+			throw e;
+		} finally {
+			try {
+				if (br != null)
+					br.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	private void initInvocationInfo() throws BusinessException {
+		InvocationInfoProxy.getInstance().setGroupId(SysInitQuery.getParaString("GLOBLE00000000000000", "GROUP"));
+		InvocationInfoProxy.getInstance().setUserId(SysInitQuery.getParaString("GLOBLE00000000000000", "ITFUSER"));
+		ISecurityTokenCallback tc = NCLocator.getInstance().lookup(
+				ISecurityTokenCallback.class);
+		byte[] token = tc.token("__system".getBytes(), "NC".getBytes());
+		NetStreamContext.setToken(token);
+	}
+}

+ 130 - 0
arap_patch/src/private/nc/bs/uap/bossxt/process/WriteBossPayableApplyInfoProcess.java

@@ -0,0 +1,130 @@
+package nc.bs.uap.bossxt.process;
+
+import com.alibaba.fastjson.JSONObject;
+
+import nc.bs.dao.BaseDAO;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.net.servlet.IReturnStatus;
+import nc.util.uap.twxt.WYTwxtUtil;
+import nc.vo.arap.payable.AggPayableBillVO;
+import nc.vo.arap.payable.PayableBillItemVO;
+import nc.vo.arap.payable.PayableBillVO;
+import nc.vo.baseapp.jsontool.JsonTransfVOUtil;
+import nc.vo.baseapp.jsontool.ParamVO;
+import nc.vo.esb.ResultEsbVO;
+import nc.vo.esb.ResultVO;
+import nc.vo.pub.BusinessException;
+import nc.vo.pubapp.pattern.data.ValueUtils;
+import nc.vo.pubapp.pattern.exception.ExceptionUtils;
+import nc.vo.twxt.log.WYTwxtLogVO;
+
+/**
+ * @Description: 【boss系统->NC】中台应付单同步到NC
+ * 
+ * @author tsy 【碧桂园-物业板块-boss系统接口】
+ * @date 2021-04-13
+ * @version with NCC
+ */	
+public class WriteBossPayableApplyInfoProcess {
+
+
+	public String writeBossPayableApplyInfo(JSONObject jsonobj) throws BusinessException {
+		String rsdata = null;
+		Object pk_bill=null;
+		Object bossid=null;
+		String pk_tradetype = null;
+		ResultVO result = new ResultVO();
+		result.setResult("");
+		ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();
+		esb.setResultInfo(result);
+		try {
+			if (jsonobj == null || "".equals(jsonobj.toString())) {// 无Post提交值
+
+				result.setCode(IReturnStatus.FAILING);// 失败
+				result.setMessage("Post所提交请求Json格式错误或者无值!");
+				WYTwxtUtil.createResultEsbVO(esb);
+				esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_FAILING);
+				esb.getEsbInfo().setReturnMsg("失败");
+				esb.setResultInfo(result);
+			} else {
+				JSONObject requestInfo = (JSONObject) jsonobj.get("requestInfo");
+				if(requestInfo == null){
+					throw new Exception("应付单信息不能为空!");
+				}
+				
+				JSONObject headerJsonObject =requestInfo.getJSONObject("Header");
+				bossid =headerJsonObject.get("bossid");
+
+				String sql="select count(def2) from ap_payablebill where def2 ='"+bossid+"'  and nvl(dr, 0) = 0";
+
+				BaseDAO baseDAO=new BaseDAO();
+				Object count=baseDAO.executeQuery(sql, new ColumnProcessor());
+				
+				if(ValueUtils.getInt(count)>0){
+					result.setCode(IReturnStatus.SUCCEED);// 成功
+					com.alibaba.fastjson.JSONObject resJsonObject=new com.alibaba.fastjson.JSONObject();
+					resJsonObject.put("billno", "");
+					result.setResult(resJsonObject);
+					result.setMessage("boss系统同步应付单成功");
+					WYTwxtUtil.createResultEsbVO(esb);
+					esb.setResultInfo(result);
+					rsdata=com.alibaba.fastjson.JSONObject.toJSONString(esb);
+					return rsdata;
+				}
+
+				ParamVO paramVO=new ParamVO();
+				paramVO.setAggVOClass(AggPayableBillVO.class);
+				paramVO.setHeadVOClass(PayableBillVO.class);
+				paramVO.setBodyVOClass(PayableBillItemVO.class);
+				paramVO.setBilldata(requestInfo.toString());
+				paramVO.sethCfgCode("bossF1_HEAD");
+				paramVO.setBfgCode("bossF1_BODY");
+				
+				AggPayableBillVO aggPayableBillVO=JsonTransfVOUtil.json2AggVO(paramVO);
+				
+				// 转换前非空校验、执行公式、翻译后各项非空校验
+				JsonTransfVOUtil.notNullCheckAndExFormula("bossF1_HEAD", "bossF1_BODY", aggPayableBillVO);
+				pk_tradetype=aggPayableBillVO.getHeadVO().getPk_tradetype();
+				aggPayableBillVO.getHeadVO().setDef2(null == bossid ? null : bossid.toString());
+
+				WYTwxtUtil.getIPFBusiAction().processAction("SAVE", aggPayableBillVO.getHeadVO().getPk_tradetype(), null, aggPayableBillVO, null, null);
+				pk_bill=aggPayableBillVO.getPrimaryKey();
+				WYTwxtUtil.getIPFBusiAction().processAction("APPROVE", aggPayableBillVO.getHeadVO().getPk_tradetype(), null, aggPayableBillVO, null, null);
+
+				result.setCode(IReturnStatus.SUCCEED);// 成功
+				com.alibaba.fastjson.JSONObject resJsonObject=new com.alibaba.fastjson.JSONObject();
+				resJsonObject.put("billno", aggPayableBillVO.getHeadVO().getBillno());
+				result.setResult(resJsonObject);
+				result.setMessage("boss系统同步应付单成功");
+				WYTwxtUtil.createResultEsbVO(esb);
+				esb.setResultInfo(result);
+			}
+		} catch (Exception e) {
+			result.setCode(IReturnStatus.ERROR);// 异常
+			result.setError(null == bossid ?null : bossid.toString()+":"+ e.getMessage());
+			result.setMessage(WYTwxtUtil.getExceptionDetail(e));
+			WYTwxtUtil.createResultEsbVO(esb);// 初始化响应对象
+			esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_ERROR);
+			esb.getEsbInfo().setReturnMsg("异常");
+			esb.setResultInfo(result);// 设置响应内容
+//			ExceptionUtils.marsh(e);
+		} finally {
+			rsdata=com.alibaba.fastjson.JSONObject.toJSONString(esb);
+			WYTwxtLogVO logVO=new WYTwxtLogVO();
+			
+			logVO.setNc_id(pk_bill+"");
+			logVO.setOther_id(bossid +"");
+			logVO.setBillno("");
+			logVO.setTranstypecode(pk_tradetype+"");
+			logVO.setItfcode("Boss-NC-FI-003");
+			logVO.setItfname("【物业boss接口】新增应付单");
+			logVO.setBilldata(jsonobj == null ? "" : jsonobj.toString());
+			logVO.setRsdata(rsdata);
+			logVO.setMsg(null);
+			logVO.setIssuccess(IReturnStatus.SUCCEED.equals(result.getCode()) ? "Y" : "N");
+
+			WYTwxtUtil.getIWuYeTwxtLogService().insertLog_RequiresNew(logVO);
+		}
+		return rsdata;
+	}
+}

+ 133 - 0
arap_patch/src/private/nc/bs/uap/ztxt/process/WriteZtPayableApplyInfoProcess.java

@@ -0,0 +1,133 @@
+package nc.bs.uap.ztxt.process;
+
+import com.alibaba.fastjson.JSONObject;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.net.servlet.IReturnStatus;
+import nc.pubitf.para.SysInitQuery;
+import nc.util.uap.twxt.WYTwxtUtil;
+import nc.vo.arap.payable.AggPayableBillVO;
+import nc.vo.arap.payable.PayableBillItemVO;
+import nc.vo.arap.payable.PayableBillVO;
+import nc.vo.baseapp.jsontool.JsonTransfVOUtil;
+import nc.vo.baseapp.jsontool.ParamVO;
+import nc.vo.esb.ResultEsbVO;
+import nc.vo.esb.ResultVO;
+import nc.vo.pub.BusinessException;
+import nc.vo.pubapp.pattern.data.ValueUtils;
+import nc.vo.twxt.log.WYTwxtLogVO;
+
+
+/**
+ * @Description: 【中台系统->NC】中台应付单同步到NC
+ * 
+ * @author tsy 【碧桂园-物业板块-中台系统接口】
+ * @date 2031-04-13
+ * @version with NCC
+ */	
+public class WriteZtPayableApplyInfoProcess {
+
+
+	public String writeZtPayableApplyInfo(JSONObject jsonobj) throws BusinessException {
+		String rsdata = null;
+		Object pk_bill=null;
+		Long ztid=null;
+		String billno = null;
+		String pk_tradetype = null;
+		ResultVO result = new ResultVO();
+		result.setResult("");
+		ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();
+		esb.setResultInfo(result);
+		try {
+			if (jsonobj == null || "".equals(jsonobj.toString())) {// 无Post提交值
+
+				result.setCode(IReturnStatus.FAILING);// 失败
+				result.setMessage("Post所提交请求Json格式错误或者无值!");
+				WYTwxtUtil.createResultEsbVO(esb);
+				esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_FAILING);
+				esb.getEsbInfo().setReturnMsg("失败");
+				esb.setResultInfo(result);
+			} else {
+				JSONObject requestInfo = (JSONObject) jsonobj.get("requestInfo");
+				if(requestInfo == null){
+					throw new Exception("应付单信息不能为空!");
+				}
+				InvocationInfoProxy.getInstance().setGroupId(SysInitQuery.getParaString("GLOBLE00000000000000", "GROUP"));
+			    InvocationInfoProxy.getInstance().setUserId(SysInitQuery.getParaString("GLOBLE00000000000000", "ITFZTUSER"));
+				JSONObject headerJsonObject =requestInfo.getJSONObject("Header");
+				ztid =headerJsonObject.getLong("ztId");
+				billno = headerJsonObject.getString("def19");
+				String sql="select count(def2) from ap_payablebill where def2 ='"+ztid+"'  and nvl(dr, 0) = 0";
+
+				BaseDAO baseDAO=new BaseDAO();
+				Object count=baseDAO.executeQuery(sql, new ColumnProcessor());
+				
+				if(ValueUtils.getInt(count)>0){
+					result.setCode(IReturnStatus.SUCCEED);// 成功
+					com.alibaba.fastjson.JSONObject resJsonObject=new com.alibaba.fastjson.JSONObject();
+					resJsonObject.put("billno", "");
+					result.setResult(resJsonObject);
+					result.setMessage("中台系统同步应付单成功");
+					WYTwxtUtil.createResultEsbVO(esb);
+					esb.setResultInfo(result);
+					rsdata=com.alibaba.fastjson.JSONObject.toJSONString(esb);
+					return rsdata;
+				}
+
+				ParamVO paramVO=new ParamVO();
+				paramVO.setAggVOClass(AggPayableBillVO.class);
+				paramVO.setHeadVOClass(PayableBillVO.class);
+				paramVO.setBodyVOClass(PayableBillItemVO.class);
+				paramVO.setBilldata(requestInfo.toString());
+				paramVO.sethCfgCode("ZTF1_HEAD");
+				paramVO.setBfgCode("ZTF1_BODY");
+				
+				AggPayableBillVO aggPayableBillVO=JsonTransfVOUtil.json2AggVO(paramVO);
+				
+				// 转换前非空校验、执行公式、翻译后各项非空校验
+				JsonTransfVOUtil.notNullCheckAndExFormula("ZTF1_HEAD", "ZTF1_BODY", aggPayableBillVO);
+				pk_tradetype=aggPayableBillVO.getHeadVO().getPk_tradetype();
+				aggPayableBillVO.getHeadVO().setDef2(null == ztid ? null : ztid.toString());
+				
+				WYTwxtUtil.getIPFBusiAction().processAction("SAVE", aggPayableBillVO.getHeadVO().getPk_tradetype(), null, aggPayableBillVO, null, null);
+				pk_bill=aggPayableBillVO.getPrimaryKey();
+				WYTwxtUtil.getIPFBusiAction().processAction("APPROVE", aggPayableBillVO.getHeadVO().getPk_tradetype(), null, aggPayableBillVO, null, null);
+
+				result.setCode(IReturnStatus.SUCCEED);// 成功
+				com.alibaba.fastjson.JSONObject resJsonObject=new com.alibaba.fastjson.JSONObject();
+				resJsonObject.put("billno", aggPayableBillVO.getHeadVO().getBillno());
+				result.setResult(resJsonObject);
+				result.setMessage("中台系统同步应付单成功");
+				WYTwxtUtil.createResultEsbVO(esb);
+				esb.setResultInfo(result);
+			}
+		} catch (Exception e) {
+			result.setCode(IReturnStatus.ERROR);// 异常
+			result.setError(WYTwxtUtil.getExceptionDetail(e));
+			result.setMessage( billno + " :"+e.getMessage());
+			WYTwxtUtil.createResultEsbVO(esb);// 初始化响应对象
+			esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_ERROR);
+			esb.getEsbInfo().setReturnMsg("异常");
+			esb.setResultInfo(result);// 设置响应内容
+		} finally {
+			rsdata=com.alibaba.fastjson.JSONObject.toJSONString(esb);
+			WYTwxtLogVO logVO=new WYTwxtLogVO();
+			
+			logVO.setNc_id(pk_bill+"");
+			logVO.setOther_id(ztid.toString() +"");
+			logVO.setBillno("");
+			logVO.setTranstypecode(pk_tradetype+"");
+			logVO.setItfcode("ZT-NC-FI-003");
+			logVO.setItfname("【物业中台接口】新增应付单");
+			logVO.setBilldata(jsonobj == null ? "" : jsonobj.toString());
+			logVO.setRsdata(rsdata);
+			logVO.setMsg(null);
+			logVO.setIssuccess(IReturnStatus.SUCCEED.equals(result.getCode()) ? "Y" : "N");
+
+			WYTwxtUtil.getIWuYeTwxtLogService().insertLog_RequiresNew(logVO);
+		}
+		return rsdata;
+	}
+}

+ 116 - 0
arap_patch/src/private/nc/bs/zt/wuye/GatherDelApplyInfoProcess.java

@@ -0,0 +1,116 @@
+package nc.bs.zt.wuye;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+
+import nc.impl.pubapp.pattern.data.bill.EfficientBillQuery;
+import nc.net.servlet.IReturnStatus;
+import nc.util.mmpub.dpub.db.SqlBuilder;
+import nc.util.uap.twxt.WYTwxtUtil;
+import nc.vo.arap.gathering.AggGatheringBillVO;
+import nc.vo.esb.ResultEsbVO;
+import nc.vo.esb.ResultVO;
+import nc.vo.pub.BusinessException;
+import nc.vo.twxt.log.WYTwxtLogVO;
+
+/**
+ * @Description: 【ZT系统->NC】中台收款撤销删除到NC
+ * 
+ * @author tsy 【碧桂园-物业板块-ZT系统系统接口】
+ * @date 2021-04-25
+ * @version with NCC
+ */
+public class GatherDelApplyInfoProcess {
+
+	public String writeGatherDelApplyInfoProcess(JSONObject jsonobj) throws BusinessException {
+		String rsdata = null;
+		Object pk_bill = null;
+		String ztId = null;
+		String billno = null;
+		String pk_tradetype = null;
+		ResultVO result = new ResultVO();
+//		JSONArray returnarray = new JSONArray();
+		result.setResult("");
+		ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();
+		esb.setResultInfo(result);
+		try {
+			if (!jsonobj.containsKey("id")) {
+				throw new BusinessException("id不能为空!");
+			}
+
+			ztId  = jsonobj.getString("id");
+			if (ztId == null || ztId.isEmpty()) {
+				throw new BusinessException("id参数不能为空!");
+			}
+
+			SqlBuilder headCond = new SqlBuilder();
+			headCond.append(" from ar_gatherbill where ");
+			headCond.append("def1", ztId);
+			headCond.append(" and ");
+			headCond.append("dr", 0);
+			EfficientBillQuery<AggGatheringBillVO> query = new EfficientBillQuery<AggGatheringBillVO>(
+					AggGatheringBillVO.class);
+			AggGatheringBillVO[] vos = (AggGatheringBillVO[]) query.query(headCond.toString());
+
+			if (vos == null || vos.length <= 0) {
+				result.setCode(IReturnStatus.SUCCEED);// 成功
+				com.alibaba.fastjson.JSONObject resJsonObject = new com.alibaba.fastjson.JSONObject();
+//				resJsonObject.put("ids", ztIds);
+				result.setResult(resJsonObject);
+				result.setMessage("删除成功");
+				WYTwxtUtil.createResultEsbVO(esb);
+				esb.setResultInfo(result);
+				rsdata = com.alibaba.fastjson.JSONObject.toJSONString(esb);
+				return rsdata;
+			}
+
+			for (AggGatheringBillVO aggvo : vos) {
+				
+				billno = aggvo.getHeadVO().getDef19();
+				ztId = aggvo.getHeadVO().getDef1();
+				if(!"-1".equals(aggvo.getHeadVO().getApprovestatus().toString()))
+					WYTwxtUtil.getIPFBusiAction().processAction("UNAPPROVE", aggvo.getHeadVO().getPk_tradetype(), null,
+							aggvo, null, null);
+				WYTwxtUtil.getIPFBusiAction().processAction("DELETE", aggvo.getHeadVO().getPk_tradetype(), null, aggvo,
+						null, null);
+
+			}
+
+			result.setCode(IReturnStatus.SUCCEED);// 成功
+			com.alibaba.fastjson.JSONObject resJsonObject = new com.alibaba.fastjson.JSONObject();
+			resJsonObject.put("ztId", ztId);
+			result.setResult(resJsonObject);
+			result.setMessage("删除成功");
+			WYTwxtUtil.createResultEsbVO(esb);
+			esb.setResultInfo(result);
+
+		} catch (Exception e) {
+			result.setCode(IReturnStatus.ERROR);// 异常
+//			result.setError(null == ztI d ? null : ztId.toString() + ":" + e.getMessage());
+			result.setMessage("删除失败:" + billno+ "  "+e.getMessage());
+			WYTwxtUtil.createResultEsbVO(esb);// 初始化响应对象
+			esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_ERROR);
+			esb.getEsbInfo().setReturnMsg("异常");
+			esb.setResultInfo(result);// 设置响应内容
+		} finally {
+			rsdata = com.alibaba.fastjson.JSONObject.toJSONString(esb);
+			WYTwxtLogVO logVO = new WYTwxtLogVO();
+
+			logVO.setNc_id(pk_bill + "");
+			logVO.setOther_id(ztId + "");
+			logVO.setBillno("");
+			logVO.setTranstypecode(pk_tradetype + "");
+			logVO.setItfcode("NC-ZT-FI-DEL");
+			logVO.setItfname("【中台撤销接口】撤销收款单");
+			logVO.setBilldata(jsonobj == null ? "" : jsonobj.toString());
+			logVO.setRsdata(rsdata);
+			logVO.setMsg(null);
+			logVO.setIssuccess(IReturnStatus.SUCCEED.equals(result.getCode()) ? "Y" : "N");
+
+			WYTwxtUtil.getIWuYeTwxtLogService().insertLog_RequiresNew(logVO);
+		}
+		return rsdata;
+	}
+}

+ 91 - 0
arap_patch/src/private/nc/bs/zt/wuye/GatherDelServelet.java

@@ -0,0 +1,91 @@
+package nc.bs.zt.wuye;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONObject;
+
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.bs.framework.common.NCLocator;
+import nc.bs.framework.comn.NetStreamContext;
+import nc.bs.framework.server.ISecurityTokenCallback;
+import nc.itf.ztbossxt.process.IWuYeZtBossxtBusiService;
+import nc.net.servlet.IReturnStatus;
+import nc.net.servlet.SapToNcEsbJsonServlet;
+import nc.pubitf.para.SysInitQuery;
+import nc.vo.esb.ResultEsbVO;
+import nc.vo.esb.ResultVO;
+import nc.vo.pub.BusinessException;
+
+public class GatherDelServelet extends SapToNcEsbJsonServlet{
+
+	@Override
+	public void execFunction(HttpServletRequest request, HttpServletResponse response) {
+		// TODO Auto-generated method stub
+		JSONObject jsonobj = new JSONObject();
+		try {
+			initInvocationInfo();
+			String id= request.getParameter("id");
+			jsonobj.put("id",id);
+			if (jsonobj == null || "".equals(jsonobj)) {// 无Post提交值
+				ResultVO result = new ResultVO();
+				result.setCode(IReturnStatus.FAILING);// 失败
+				result.setMessage("Post所提交请求Json无值!");
+				ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();
+				createResultEsbVO(esb);
+				esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_FAILING);
+				esb.getEsbInfo().setReturnMsg("失败");
+				esb.setResultInfo(result);
+				sendResponse(response, esb);
+			} else {
+				String jsondata =NCLocator.getInstance().lookup(IWuYeZtBossxtBusiService.class).gatherDelApplyInfo(jsonobj);
+				sendResponse(response,jsondata);
+			}
+		} catch (Exception e) {
+			ResultVO result = new ResultVO();
+			result.setCode(IReturnStatus.ERROR);// 异常
+			result.setError(getExceptionDetail(e));
+			ResultEsbVO<ResultVO> esb = new ResultEsbVO<ResultVO>();// 创建响应对象
+			createResultEsbVO(esb);// 初始化响应对象
+			esb.getEsbInfo().setReturnStatus(IReturnStatus.ESB_ERROR);
+			esb.getEsbInfo().setReturnMsg("异常");
+			esb.setResultInfo(result);// 设置响应内容
+			sendResponse(response, esb);
+		}
+	}
+		
+	public void sendResponse(final HttpServletResponse response, String jsondata) {
+		PrintWriter out = null;
+		try {
+			response.setHeader("Content-type", "application/json;charset=UTF-8");
+			out = new PrintWriter(new OutputStreamWriter(
+					response.getOutputStream(), "UTF-8"));
+			out.write(jsondata);
+			out.flush();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			if (out != null) {
+				out.close();
+			}
+		}
+	}
+
+
+	private void initInvocationInfo() throws BusinessException {
+		InvocationInfoProxy.getInstance().setGroupId(SysInitQuery.getParaString("GLOBLE00000000000000", "GROUP"));
+		InvocationInfoProxy.getInstance().setUserId(SysInitQuery.getParaString("GLOBLE00000000000000", "ITFUSER"));
+		ISecurityTokenCallback tc = NCLocator.getInstance().lookup(
+				ISecurityTokenCallback.class);
+		byte[] token = tc.token("__system".getBytes(), "NC".getBytes());
+		NetStreamContext.setToken(token);
+	}
+
+}

+ 43 - 0
arap_patch/src/private/nc/impl/ztbossxt/process/WuYeZtBossxtBusiImpl.java

@@ -0,0 +1,43 @@
+package nc.impl.ztbossxt.process;
+
+import com.alibaba.fastjson.JSONObject;
+
+import nc.bs.uap.bossxt.process.WriteBossPayableApplyInfoProcess;
+import nc.bs.uap.ztxt.process.WriteZtPayableApplyInfoProcess;
+import nc.bs.zt.wuye.GatherDelApplyInfoProcess;
+import nc.itf.ztbossxt.process.IWuYeZtBossxtBusiService;
+import nc.util.uap.twxt.WYTwxtUtil;
+import nc.vo.arap.gathering.AggGatheringBillVO;
+import nc.vo.pub.BusinessException;
+
+/**
+ * @Description:针对外部接口逻辑处理 
+ * 
+ * @author 周蓝萍 【碧桂园-物业板块-天文系统接口】	
+ * @date 2019-04-12
+ * @version with NC V6.3
+ */
+public class WuYeZtBossxtBusiImpl implements IWuYeZtBossxtBusiService{
+
+
+	@Override
+	public String writeZtPayableApplyInfo(JSONObject jsonobj) throws BusinessException {
+		WriteZtPayableApplyInfoProcess process =new WriteZtPayableApplyInfoProcess();
+		return process.writeZtPayableApplyInfo(jsonobj);
+	}
+
+	@Override
+	public String writeBossPayableApplyInfo(JSONObject jsonobj) throws BusinessException {
+		WriteBossPayableApplyInfoProcess process = new WriteBossPayableApplyInfoProcess();
+		return process.writeBossPayableApplyInfo(jsonobj);
+		
+	}
+	
+	@Override
+	public String gatherDelApplyInfo(JSONObject jsonobj) throws BusinessException {
+		GatherDelApplyInfoProcess process = new GatherDelApplyInfoProcess();
+		return process.writeGatherDelApplyInfoProcess(jsonobj);
+	}
+
+	
+}

+ 37 - 0
arap_patch/src/public/nc/itf/ztbossxt/process/IWuYeZtBossxtBusiService.java

@@ -0,0 +1,37 @@
+package nc.itf.ztbossxt.process;
+
+import com.alibaba.fastjson.JSONObject;
+
+import nc.vo.arap.gathering.AggGatheringBillVO;
+import nc.vo.pub.BusinessException;
+
+	
+/**
+ * @Description:针对外部接口逻辑处理 
+ * NC与中台,boss系统的接口
+ * @author 周蓝萍
+ * @date 2022-4-13
+ * @version with NCC2005
+ */
+public interface IWuYeZtBossxtBusiService {
+	/**
+	 * 【中台系统->NC】中台应付单同步到NC
+	 * @param jsonobj
+	 * @return
+	 */
+	public String writeZtPayableApplyInfo (JSONObject jsonobj) throws BusinessException;
+	/**
+	 * 【boss系统->NC】boss应付单同步到NC
+	 * @param jsonobj
+	 * @return
+	 * @throws BusinessException
+	 */
+	public String writeBossPayableApplyInfo (JSONObject jsonobj) throws BusinessException;
+	
+	/**
+	 * 【中台系统->NC】中台删除收款单同步到NC
+	 * @param jsonobj
+	 * @re
+	 */
+	public String gatherDelApplyInfo(JSONObject jsonobj) throws BusinessException;
+}