#HTXC-1# 初始化开发环境

main
shilei 3 years ago
parent 075b9a7968
commit 595d93d5c8

@ -0,0 +1,16 @@
package com.api.htsc.GwRelated.fzjg.web;
import com.engine.htsc.GwRelated.fzjg.web.Fzjgaction;
import javax.ws.rs.Path;
/**
* @author xf
* @version 1.0.0
* @ClassName Fzjgactionapi.java
* @createTime 20211117 10:58:00
*/
@Path("/fzjg")
public class Fzjgactionapi extends Fzjgaction {
}

@ -0,0 +1,11 @@
package com.api.htsc.GwRelated.fzjg.web;
import com.engine.htsc.GwRelated.fzjg.web.Gettypetovalue;
import javax.ws.rs.Path;
@Path("/htsc/GwRelated/fzjg/web/GettypetovalueApi")
public class GettypetovalueApi extends Gettypetovalue {
}

@ -0,0 +1,12 @@
package com.api.htsc.HKContract;
import com.engine.htsc.HKContract.web.HKContractAction;
import javax.ws.rs.Path;
/**
*
*/
@Path("/hkcontract")
public class HKContractActionApi extends HKContractAction {
}

@ -0,0 +1,16 @@
package com.api.htsc.Lhcd.com.api.htsc;
import com.engine.htsc.lhcd.Web.LhcdApi;
import com.engine.htsc.lhhtsq.Web.LhhtsqAction;
import javax.ws.rs.Path;
/**
* @author xf
* @version 1.0.0
* @ClassName LhcdApiAction.java
* @createTime 20211231 10:13:00
*/
@Path("/lhcd")
public class LhcdApiAction extends LhcdApi {
}

@ -0,0 +1,10 @@
package com.api.htsc.ReimbursementFlow;
import com.engine.htsc.ReimbursementFlow.web.ItToListgetAll;
import javax.ws.rs.Path;
@Path("/ItToListgetAll")
public class ItToListgetAllApi extends ItToListgetAll {
}

@ -0,0 +1,9 @@
package com.api.htsc.ReimbursementFlow;
import com.engine.htsc.ReimbursementFlow.web.OldToTravelList;
import javax.ws.rs.Path;
@Path("/OldToTravel")
public class OldToTravelListApi extends OldToTravelList {
}

@ -0,0 +1,8 @@
package com.api.htsc.ReimbursementFlow;
import com.engine.htsc.ReimbursementFlow.*;
import javax.ws.rs.Path;
@Path("/Reimbursement")
public class ReimburseflowAction extends Reimburseflow {
}

@ -0,0 +1,9 @@
package com.api.htsc.ReimbursementFlow;
import com.engine.htsc.ReimbursementFlow.web.ReimbursementExcel;
import javax.ws.rs.Path;
@Path("/ReimbursementExcel")
public class ReimbursementExcelApi extends ReimbursementExcel {
}

@ -0,0 +1,9 @@
package com.api.htsc.ReimbursementFlow;
import com.engine.htsc.ReimbursementFlow.web.TravelUserdepth;
import javax.ws.rs.Path;
@Path("/TravelUser")
public class TravelUserdepthApi extends TravelUserdepth {
}

@ -0,0 +1,9 @@
package com.api.htsc.ReimbursementFlow;
import com.engine.htsc.ReimbursementFlow.web.Travelreim;
import javax.ws.rs.Path;
@Path("/travelreim")
public class TravelreimApi extends Travelreim {
}

@ -0,0 +1,9 @@
package com.api.htsc.Signet;
import com.engine.htsc.Signet.GetImagefileid;
import javax.ws.rs.Path;
@Path("signet/imagefielid")
public class GetImagefileidApi extends GetImagefileid {
}

@ -0,0 +1,9 @@
package com.api.htsc.TrealReimTools;
import com.engine.htsc.TrealReimTools.TrealReimToolsWeb;
import javax.ws.rs.Path;
@Path("/trealreim/tools/")
public class TrealReimToolsWebApi extends TrealReimToolsWeb {
}

@ -0,0 +1,9 @@
package com.api.htsc.announcement;
import com.engine.htsc.announcement.web.HeadquartersAnncAction;
import javax.ws.rs.Path;
@Path("/htsc/headquarters/annc")
public class HeadquartersAnncActionApi extends HeadquartersAnncAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.branch;
import com.engine.htsc.branch.approvalChain.web.FzjgTravelLinkController;
import javax.ws.rs.Path;
@Path("/branch")
public class FzjgTravelLinkControllerApi extends FzjgTravelLinkController {
}

@ -0,0 +1,9 @@
package com.api.htsc.branchpayment;
import com.engine.htsc.branchpayment.web.BranchPaymentCubeAction;
import javax.ws.rs.Path;
@Path("/htsc/branchpaycube/")
public class BranchPaymentCubeApi extends BranchPaymentCubeAction {
}

@ -0,0 +1,428 @@
package com.api.htsc.browser;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cloudstore.dev.api.util.Util_DataMap;
import com.engine.htsc.payment.util.HttpUtil;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.StopWatch;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.interfaces.htsc.cus.HTUtil;
/**
* Author:DTY-PC
* Description:
* Copyright:
*/
@Path("/esbBrowser")
public class ESBBrowser {
private final Log log = LogFactory.getLog(ESBBrowser.class.getName());
/**
* CRM
*
* @param workcode
* @param custNo
* @param custName
* @return
*/
@GET
@Path("/getCrmlist")
@Produces(MediaType.TEXT_PLAIN)
public String getCrmInfo(@QueryParam("workcode") String workcode,
@DefaultValue("") @QueryParam("custNo") String custNo,
@DefaultValue("") @QueryParam("custName") String custName,
@DefaultValue("0") @QueryParam("pageNo") String page,
@DefaultValue("10") @QueryParam("pagesize") String size) {
Map<String, Object> apiDatas = new HashMap<>();
try {
BaseBean bb = new BaseBean();
PropBean pb = new PropBean();
String url = Util.null2String(pb.getPropName("crmurl"));
String urlWithCondition = Util.null2String(pb.getPropName("crmurlWithCondition"));
bb.writeLog("CRM接口请求url"+urlWithCondition);
Map<String, String> header = new HashMap<>();
header.put("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
HTUtil htUtil = new HTUtil();
Map<String, String> appHeader = htUtil.getAppHeader();
log.info("getAppHeader@" + appHeader + "@");
//verify crm token
header.putAll(appHeader);
Map<String, String> params = new HashMap<>();
params.put("userCode", workcode);
params.put("custNo", custNo);
params.put("custName", custName);
params.put("page", page);
params.put("size", size);
//条件查询请求
if (StringUtils.isNotBlank(custNo) || StringUtils.isNotBlank(custName)) {
log.info("getCrmlist custNo:" + custNo + ", custName:" + custName);
Map<String, String> map = new HashMap<>();
map.put("userCode", workcode);
map.put("custName", custName);
map.put("custNo", custNo);
String res = HttpUtil.postFormUrlEncode(urlWithCondition, map, appHeader);
JSONObject oriObj = JSONObject.parseObject(res);//直接调的结果
String code = Util.null2String(oriObj.get("code"));
if ("100".equals(code)) {
JSONArray listArr = oriObj.getJSONObject("data").getJSONArray("custInfoList");
int total = Integer.parseInt(Util.null2String(oriObj.getJSONObject("data").get("total")));
apiDatas.put("datas", listArr);
apiDatas.put("code", code);
apiDatas.put("total", total);
apiDatas.put("api_status", true);
return JSONObject.toJSONString(apiDatas);
}
}
bb.writeLog("CRM接口请求参数"+params);
String res = HTUtil.httpPostForm(url, params, header, null);
bb.writeLog("CRM接口响应"+res);
JSONObject oriObj = JSONObject.parseObject(res);//直接调的结果
String code = Util.null2String(oriObj.get("code"));
if ("100".equals(code)) {
JSONArray listArr = oriObj.getJSONObject("data").getJSONArray("custInfoList");
int total = Integer.parseInt(Util.null2String(oriObj.getJSONObject("data").get("total")));
apiDatas.put("datas", listArr);
apiDatas.put("code", code);
apiDatas.put("total", total);
}
apiDatas.put("api_status", true);
} catch (Exception e) {
log.error("get crm info error", e);
apiDatas.put("api_status", false);
}
return JSONObject.toJSONString(apiDatas);
}
/**
*
*
* @param workcode
* @param id ID
* @param shortName
* @return
*/
@GET
@Path("/getProlist")
@Produces(MediaType.TEXT_PLAIN)
public String getProInfo(@QueryParam("workcode") String workcode, @QueryParam("id") String id, @QueryParam("shortName") String shortName) {
Map<String, Object> apiDatas = new HashMap<>();
try {
HTUtil ht = new HTUtil();
Map<String, Object> para = new HashMap<>();
para.put("userId", workcode);
String res = ht.getProject(para);
JSONArray oriArr = JSONArray.parseArray(res);//直接调的结果
if (!"".equals(shortName)) {
JSONArray arr = new JSONArray();
for (int i = 0; i < oriArr.size(); i++) {
JSONObject jsonObject = oriArr.getJSONObject(i);
String orishortName = Util.null2String(jsonObject.get("shortName"));
if (orishortName.contains(shortName)) {
arr.add(jsonObject);
apiDatas.put("datas", arr);
}
}
if (!"".equals(id)) {
JSONArray arrCode = new JSONArray();//
for (int i = 0; i < arr.size(); i++) {
JSONObject jsonObject = arr.getJSONObject(i);
String oricode = Util.null2String(jsonObject.get("id"));
if (oricode.equals(id)) {
arr.add(jsonObject);
apiDatas.put("datas", arrCode);
break;
}
}
}
} else if (!"".equals(id)) {
JSONArray arr = new JSONArray();//
for (int i = 0; i < oriArr.size(); i++) {
JSONObject jsonObject = oriArr.getJSONObject(i);
String oricode = Util.null2String(jsonObject.get("id"));
if (oricode.equals(id)) {
arr.add(jsonObject);
apiDatas.put("datas", arr);
break;
}
}
} else {
apiDatas.put("datas", oriArr);
}
apiDatas.put("api_status", true);
} catch (Exception e) {
e.printStackTrace();
apiDatas.put("api_status", false);
}
return JSONObject.toJSONString(apiDatas);
}
/**
*
*
* @param workcode
* @param shortName
* @param page
* @param size
* @return
*/
@GET
@Path("/getProlistByPage")
@Produces(MediaType.TEXT_PLAIN)
public String getProInfoByPage(@QueryParam("workcode") String workcode,
@QueryParam("id") String id, @QueryParam("shortName") String shortName,
@DefaultValue("0") @QueryParam("pageNo") String page,
@DefaultValue("10") @QueryParam("pagesize") String size) {
Map<String, Object> apiDatas = new HashMap<>();
try {
HTUtil ht = new HTUtil();
JSONArray listArr = new JSONArray();
int total = 0;
Map<String, Object> params = new HashMap<>();
if (StringUtils.isNotBlank(id)) {
params.put("projectId", id);
String res = ht.getProjectById(params);
JSONObject oriObj = JSONObject.parseObject(res);
listArr.add(oriObj);
total = listArr.size();
} else {
params.put("userId", workcode);
params.put("shortName", shortName);
params.put("pageNum", page);
params.put("pageSize", size);
String res = ht.getProjectByPage(params);
JSONObject oriObj = JSONObject.parseObject(res);
listArr = oriObj.getJSONArray("data");
total = oriObj.getIntValue("total");
}
apiDatas.put("datas", listArr);
apiDatas.put("total", total);
apiDatas.put("api_status", true);
} catch (Exception e) {
log.error(String
.format("get project list by page errorworkCode:%s, id:%s, pageNo:%s, pageSize:%s",
workcode, id, page, size), e);
apiDatas.put("api_status", false);
}
return JSONObject.toJSONString(apiDatas);
}
/**
*
*
* @param UserCode
* @param InvoiceType
* @param pageNo
* @param pagesize
* @param InvID
* @return
*/
@GET
@Path("/getInvoiceInfo")
@Produces(MediaType.TEXT_PLAIN)
public String getInvoiceInfo(@QueryParam("UserCode") String UserCode,
@QueryParam("InvoiceType") String InvoiceType, @QueryParam("pageNo") String pageNo,
@QueryParam("pagesize") String pagesize, @QueryParam("InvID") String InvID,
@QueryParam("InvoiceNum") String InvoiceNum, @QueryParam("InvoiceCode") String InvoiceCode,
@QueryParam("JSHJ") String JSHJ) {
StopWatch sw = new StopWatch();
Map<String, Object> params = new HashMap<>();//参数集合
params.put("UserCode", UserCode);
params.put("InvoiceType", InvoiceType);//本身接口问题无法传具体类型,这边我在抓到数据后自己处理
params.put("Page", pageNo);
params.put("PageSize", pagesize);
params.put("InvoiceNum", InvoiceNum);
params.put("InvoiceCode", InvoiceCode);
params.put("PriceAndTax", JSHJ);
Map<String, Object> apiDatas = new HashMap<>();
try {
sw.start("get data");
String cacheKey = String
.format("%s_%s_%s_%s_%s_%s_%s", UserCode, InvoiceType, pageNo, pagesize, InvoiceNum,
InvoiceCode, JSHJ);
String info = Util_DataMap.getValWithRedis(cacheKey);
if (StringUtils.isNotBlank(info)) {
log.info("cloud ticket folder esb get data from redis key: " + cacheKey);
} else {
HTUtil ht = new HTUtil();
info = ht.queryInvoice(params);
int expire = Util
.getIntValue(new PropBean().getPropName("query.invoice.expire"), 10);
Util_DataMap.setValWithRedis(cacheKey, info, expire);
log.info("cloud ticket folder esb get data from inteface");
}
sw.stop();
sw.start("process data");
// 号码_代码
JSONObject infoObj = JSONObject.parseObject(info);//结果转JSONObject
String ReCode = Util.null2String(infoObj.get("ReCode"));//状态码 1 成功
String ReMsg = Util.null2String(infoObj.get("ReMsg"));//描述信息
String TotalCount = Util.null2String(infoObj.get("TotalCount"));//总量
JSONArray ReData = infoObj.getJSONArray("ReData");//数据集
JSONArray cusArr = new JSONArray();
if ("1".equals(ReCode)) {//成功
for (int i = 0; i < ReData.size(); i++) {
JSONObject item = ReData.getJSONObject(i);//取出数据做当前发票类型过滤
String res_InvoiceType = Util.null2String(item.get("InvoiceType"));
String res_CheckStatus = Util
.null2String(item.get("CheckStatus"));//验真状态 0未通过 1通过 2手工查验
String status = "";
if ("0".equals(res_CheckStatus)) {
status = "未通过";
} else if ("1".equals(res_CheckStatus)) {
status = "通过";
} else if ("2".equals(res_CheckStatus)) {
status = "手工查验";
}
item.put("CheckStatus", status);
item.put("FPType", translateFPType(Util.null2String(item.get("FPType"))));
String invoiceType = "";
switch (res_InvoiceType) {
case "1":
invoiceType = "增值税普通发票";
break;
case "2":
invoiceType = "增值税专用发票";
break;
case "11":
invoiceType = "增值税普通发票(卷式)";
break;
case "12":
invoiceType = "机动车销售统一发票";
break;
case "51":
invoiceType = "增值税电子普通发票";
break;
case "13":
invoiceType = "增值税电子专票";
break;
case "14":
invoiceType = "增值税电子普通发票(通行费)";
break;
case "31":
invoiceType = "汽车票";
break;
case "32":
invoiceType = "火车票";
break;
case "33":
invoiceType = "飞机票";
break;
case "21":
invoiceType = "进口增值税";
break;
case "22":
invoiceType = "进口关税";
break;
case "52":
invoiceType = "定额发票";
break;
case "55":
invoiceType = "普通发票";
break;
default:
invoiceType = "未明确类型";
break;
}
item.put("InvoiceType", invoiceType);
cusArr.add(item);
}
if (!"".equals(InvID)) {//主键
JSONArray filterArr = new JSONArray();
List<String> invidList = Util.splitString2List(InvID, ",");
for (int i = 0; i < cusArr.size(); i++) {
JSONObject item = cusArr.getJSONObject(i);//取出数据做当前发票类型过滤
String res_InvID = Util.null2String(item.get("InvID"));
if (invidList.contains(res_InvID)) {
filterArr.add(item);
}
}
cusArr = filterArr;
apiDatas.put("counts", cusArr.size());
} else {
apiDatas.put("counts", TotalCount);
}
apiDatas.put("datas", cusArr);
}
apiDatas.put("code", ReCode);
apiDatas.put("api_status", true);
sw.stop();
if ("1".equals(Util.null2String(new PropBean().getPropName("show.debug.log")))) {
log.info(sw.prettyPrint());
}
} catch (Exception e) {
apiDatas.put("api_status", false);
log.error("cloud ticket folder esb error", e);
}
log.info("cloud ticket folder esb end!");
return JSONObject.toJSONString(apiDatas);
}
/**
*
*
* @param type
* @return
*/
private String translateFPType(String type) {
String typeName = "";
switch (type) {
case "ZSFP":
typeName = "住宿";
break;
case "CCJP":
typeName = "车船";
break;
case "JTFP":
typeName = "交通";
break;
case "TXFP":
typeName = "通信";
break;
case "CYFP":
typeName = "餐饮";
break;
case "YEFP":
typeName = "娱乐";
break;
case "CGFP":
typeName = "采购";
break;
case "JYPXFP":
typeName = "教育";
break;
case "YLFP":
typeName = "医疗";
break;
case "XZSYFP":
typeName = "行政事业";
break;
case "JKSFP":
typeName = "缴款书";
break;
default:
typeName = "其他";
break;
}
return typeName;
}
}

@ -0,0 +1,952 @@
package com.api.htsc.browser;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.api.cube.util.CubeSearchTransMethod;
import com.cloudstore.api.util.Util_Log;
import com.cloudstore.dev.api.bean.SplitMobileTemplateBean;
import com.cloudstore.dev.api.bean.SplitPageBean;
import com.cloudstore.dev.api.bean.TimeMarker;
import com.cloudstore.dev.api.bean.UserDefCol;
import com.cloudstore.dev.api.dao.Dao_Table;
import com.cloudstore.dev.api.dao.Dao_TableFactory;
import com.cloudstore.dev.api.util.TextUtil;
import com.cloudstore.dev.api.util.Util_TableMap;
import com.cloudstore.dev.api.util.Util_public;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.apache.commons.lang3.StringUtils;
import weaver.common.StringUtil;
import weaver.conn.RecordSet;
import weaver.conn.constant.DBConstant;
import weaver.general.StaticObj;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.interfaces.datasource.DataSource;
import weaver.servicefiles.DataSourceXML;
import weaver.systeminfo.SystemEnv;
import weaver.systeminfo.setting.HrmUserSetting;
import weaver.systeminfo.setting.HrmUserSettingComInfo;
import weaver.systeminfo.setting.HrmUserSettingHandler;
@Path("/filter/table")
public class FilterTableBrowser {
Dao_Table dao = null;
Util_Log log = null;
public FilterTableBrowser() {
log = new Util_Log();
try {
dao = getDaoTableByPool(null);
} catch (Exception e) {
log.writeLog(e);
}
}
private Dao_Table getDaoTableByPool(String poolname) throws Exception {
try {
if (StringUtils.isBlank(poolname) && dao != null) {
return dao;
}
String dbType;
if (StringUtils.isBlank(poolname) || DataSourceXML.SYS_LOCAL_POOLNAME.equals(poolname)) {
RecordSet rs = new RecordSet();
dbType = rs.getDBType();
} else {
DataSource datasource = (DataSource) StaticObj
.getServiceByFullname("datasource." + poolname, DataSource.class);
dbType = datasource.getType();
}
if (isDBType(DBConstant.DB_TYPE_ORACLE, dbType)) {
return Dao_TableFactory.getInstance().getDao("Dao_TableOracle");
} else if (isDBType(DBConstant.DB_TYPE_MYSQL, dbType)) {
return Dao_TableFactory.getInstance().getDao("Dao_TableMysql");
} else if (isDBType(DBConstant.DB_TYPE_SQLSERVER, dbType)) {
return Dao_TableFactory.getInstance().getDao("Dao_TableSqlServer");
} else {
throw new Exception("不支持的数据库类型:" + dbType);
}
} catch (Exception e) {
throw new Exception("无法读取数据源,poolName:" + poolname, e);
}
}
/**
*
*
* @param dbTypeDef
* @param dbType
* @return
*/
public boolean isDBType(String dbTypeDef, String dbType) {
return !StringUtil.isNull(dbType) && dbType.toLowerCase().startsWith(dbTypeDef);
}
private JSONObject getMethodDatas(SplitPageBean bean, User user, JSONObject rspJson,
HttpServletRequest request, HttpServletResponse response) throws Exception {
JSONObject Rootheads = bean.getRootMap();
JSONObject sp = bean.getSql();
JSONArray heads = bean.getHeads();
Map<String, String> getCanMap = new HashMap<>();
String tPrimaryKey = Util.null2String(sp.getString("sqlprimarykey"));
if ("".equals(tPrimaryKey)) {
rspJson.put("errMsg", "tPrimaryKey is null!");
}
boolean needCanMap = false;
if (Rootheads.containsKey("sourceparams")) {
String sourceparamString = Util.null2String(Rootheads.getString("sourceparams"));
if (!"".equals(sourceparamString)) {
String[] sclist = sourceparamString.split("\\+");
for (int i = 0; i < sclist.length; i++) {
String[] keyandvalue = sclist[i].split(":");
if (2 == keyandvalue.length) {
getCanMap.put(keyandvalue[0], keyandvalue[1]);
}
}
}
needCanMap = true;
}
String dataSourceKey = Rootheads.getString("datasource");
String[] funcName = dataSourceKey.split("\\.");
String useFunName = funcName[funcName.length - 1];
String useFun = dataSourceKey.substring(0, dataSourceKey.length() - useFunName.length() - 1);
Class usedClass = Class.forName(useFun);
Method useMethod1;
if (needCanMap) {
useMethod1 = usedClass.newInstance().getClass()
.getMethod(useFunName, User.class, Map.class, HttpServletRequest.class,
HttpServletResponse.class);
} else {
useMethod1 = usedClass.newInstance().getClass()
.getMethod(useFunName, User.class, HttpServletRequest.class, HttpServletResponse.class);
}
List<Map<String, String>> getDatas = new ArrayList<>();
if (Rootheads.containsKey("pageBySelf")) {
// 这个逻辑是说明有分页参数,获取返回结构不一样
Map<String, Object> getDatasforMap;
if (needCanMap) {
getDatasforMap = (Map<String, Object>) useMethod1
.invoke(usedClass.newInstance(), user, getCanMap, request, response);
} else {
getDatasforMap = (Map<String, Object>) useMethod1
.invoke(usedClass.newInstance(), user, request, response);
}
if (null != getDatasforMap) {
if (getDatasforMap.containsKey("dataAll")) {
rspJson.put("datas", getDatasforMap.get("dataAll"));
}
if (getDatasforMap.containsKey("recordCount")) {
rspJson.put("count", getDatasforMap.get("recordCount"));
} else {
rspJson.put("count", 0);
}
} else {
rspJson.put("count", 0);
rspJson.put("datas", new ArrayList<Map<String, String>>());
}
} else {
if (needCanMap) {
getDatas = (List<Map<String, String>>) useMethod1
.invoke(usedClass.newInstance(), user, getCanMap, request, response);
} else {
getDatas = (List<Map<String, String>>) useMethod1
.invoke(usedClass.newInstance(), user, request, response);
}
if (null != getDatas) {
rspJson.put("datas", getDatas);
rspJson.put("count", getDatas.size());
}
}
for (int i = 0; i < getDatas.size(); i++) {
Map<String, String> getData = getDatas.get(i);
for (int j = 0; j < heads.size(); j++) {
JSONObject onceHead = heads.getJSONObject(j);
if (!getData.containsKey(onceHead.getString("dataIndex"))) {
if ("randomFieldId".equals(onceHead.getString("dbField"))) {
getData.put(onceHead.getString("dataIndex"), getData.get(tPrimaryKey));
} else {
getData
.put(onceHead.getString("dataIndex"), getData.get(onceHead.getString("dbField")));
}
}
}
}
////============添加外部数据源 对randomField数据的处理 Andyzhang
if ("1".equals(Rootheads.getString("randomfieldopen"))) {
for (int i = 0; i < rspJson.getJSONArray("datas").size(); i++) {
JSONObject obj = rspJson.getJSONArray("datas").getJSONObject(i);
for (int j = 0; j < heads.size(); j++) {
JSONObject onceHead = heads.getJSONObject(j);
if ("set".equals(onceHead.getString("from"))) {
obj.put(onceHead.getString("dataIndex"), obj.getString(onceHead.getString("dbField")));
}
}
}
}
return rspJson;
}
// 统一处理显示列定制
private JSONArray getShowColHeads(SplitPageBean bean, String pageUid, User user) {
if ("".equals(pageUid)) {
return bean.getHeads();
}
List<UserDefCol> cols = dao.getUserDefColumns(pageUid, user.getUID());
if (cols == null || cols.isEmpty()) {
return bean.getHeads();
}
Map<String, JSONObject> headMap = Maps.newHashMap();
Map<String, JSONObject> noDataIndexMap = Maps.newHashMap();
for (int i = 0; i < bean.getHeads().size(); i++) {
JSONObject col = (JSONObject) bean.getHeads().get(i);
col.put("orders", i);
if (StringUtils.isBlank(col.getString("dataIndex")) ||
headMap.containsKey(col.getString("dataIndex"))) {
//只是为了匹配下面方法的格式,没有实际意义。
noDataIndexMap.put(String.valueOf(i), col);
} else {
headMap.put(col.getString("dataIndex"), col);
}
}
JSONArray heads = new JSONArray();
for (UserDefCol col : cols) {
if (!headMap.containsKey(col.getDataIndex())) {
continue;
}
JSONObject head = headMap.get(col.getDataIndex());
//配置可以默认显示的列 Andyzhang
head.put("display", String.valueOf("0".equals(col.getDisplay())));
if ("1".equalsIgnoreCase(head.getString("ignoreConfig"))) {
head.put("display", "true");
}
if (StringUtils.isNotBlank(col.getWidth())) {
head.put("oldWidth", col.getWidth());
}
heads.add(head);
headMap.remove(col.getDataIndex());
}
this.addToListByOrders(heads, headMap);
this.addToListByOrders(heads, noDataIndexMap);
return heads;
}
/**
*
*
* @param bean
* @param data
* @param sumlist
* @param decimalFormat
* @return
*/
public Map<String, String> sumTransMethod(SplitPageBean bean, Map<String, String> data,
String[] sumlist, String decimalFormat, String tCountcolumns) {
if (StringUtils.isNotBlank(decimalFormat)) {
String[] str = decimalFormat.split("\\|");
int i = 0;
for (String item : sumlist) {
String format = str[i];
String value = data.get(item);
String valueSpan = String.format(format, Util.getDoubleValue(value, 0));
data.put(item + "span", valueSpan);
data.put(item, valueSpan);
i++;
}
}
if ("true".equals(bean.getRootMap().getString("counttransmethod"))) {
for (Object column : (List) bean.getHeads()) {
JSONObject obj = (JSONObject) column;
String name = obj.getString("dbField");
String jsonName = obj.getString("dataIndex");
for (String item : sumlist) {
if (item.equalsIgnoreCase(name)) {
if (obj.containsKey("transMethod") &&
StringUtils.isNotBlank(obj.getString("transMethod"))) {
if ("true".equals(obj.getString("display")) ||
"true".equals(obj.getString("transMethodForce"))) {
try {
String transMethod = obj.getString("transMethod");
Object[] params = getParams(obj, data);
String valueSpan = doMethod(transMethod, params, obj.getString("dbField"));
data.put(jsonName + "span", valueSpan);
} catch (Exception e) {
e.printStackTrace();
log.write(e.getMessage());
}
}
}
}
}
}
}
return data;
}
/**
* TODO
*
* @param transMethod
* @param params
* @param defaultValue
* @return
* @throws ClassNotFoundException
* @throws InstantiationException
* @throws IllegalAccessException
* @throws NoSuchMethodException
* @throws SecurityException
* @throws IllegalArgumentException
* @throws InvocationTargetException
*/
private static String doMethod(String transMethod, Object[] params, String defaultValue)
throws Exception {
if ("".equals(transMethod)) {
return defaultValue;
}
if ("com.api.cube.util.CubeSearchTransMethod.getOthers".equals(transMethod)) {
String otherpara = (String) params[1] + "+$issumcolumn$";
return CubeSearchTransMethod.INSTANCE.getOthers((String) params[0], otherpara);
}
Object o = doMethod(transMethod, params);
return o.toString();
}
/**
* keyRecordSetMap
*
* @param data
* @param key
* @return
*/
private static String getValue(Object data, String key) {
if (data instanceof Map) {
return (String) ((Map) data).get(key);
} else if (data instanceof RecordSet) {
return ((RecordSet) data).getString(key);
} else {
return "";
}
}
/**
* transMethod
*
* @param obj
* @param name
* @param rs
* @return
*/
private static JSONArray transMethodToNew(JSONObject obj, String name, Object rs) {
String others = Util.null2String(obj.getString(name));
JSONArray tmParams = new JSONArray();
String otherArr[] = others.split("[+]");
JSONObject tmObj1 = new JSONObject();
tmObj1.put("type", "fixedValue");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < otherArr.length; i++) {
int pos = otherArr[i].toLowerCase().indexOf("column:");
if (pos != -1) {
String tempOtherPara = otherArr[i].substring(pos + 7);
String paramString = Util.null2String(getValue(rs, tempOtherPara));
if ("".equals(paramString)) {
sb.append(" ");
} else {
sb.append(paramString);
}
} else {
sb.append(otherArr[i]);
}
if (i != otherArr.length - 1) {
sb.append("+");
}
}
tmObj1.put("obj", sb.toString());
tmParams.add(tmObj1);
return tmParams;
}
/**
* transMethod
*
* @param obj
* @param data
* @return
*/
private static Object[] getParams(JSONObject obj, Object data) {
JSONArray tmParams = new JSONArray();
JSONObject tmObj = new JSONObject();
tmObj.put("type", "columns");
tmObj.put("obj", obj.getString("dbField"));
tmParams.add(tmObj);
if (obj.containsKey("transMethodOther")) {
if (obj.get("transMethodOther") != null) {
tmParams.addAll(transMethodToNew(obj, "transMethodOther", data));
}
}
if (obj.containsKey("transMethodOther2")) {
if (obj.get("transMethodOther2") != null) {
tmParams.addAll(transMethodToNew(obj, "transMethodOther2", data));
}
}
Object[] sl = new Object[tmParams.size()];
int i = 0;
for (Object t : (List) tmParams) {
JSONObject tObj = (JSONObject) t;
String typeStr = tObj.getString("type");
String objStr = tObj.getString("obj");
if (typeStr.equals("columns")) {
sl[i] = getValue(data, objStr);
} else {
sl[i] = objStr;
}
i++;
}
return sl;
}
/**
*
*
* @param transMethod
* @param params
* @return
* @throws ClassNotFoundException
* @throws InstantiationException
* @throws IllegalAccessException
* @throws NoSuchMethodException
* @throws InvocationTargetException
*/
public static Object doMethod(String transMethod, Object[] params)
throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
String tmArr[] = transMethod.split("\\.");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < tmArr.length - 1; i++) {
sb.append(tmArr[i]);
if (i != tmArr.length - 2) {
sb.append(".");
}
}
Class<?> clazz = Class.forName(sb.toString());
Object obj = clazz.newInstance();
Class[] cl = new Class[params.length];
for (int i = 0; i < params.length; i++) {
cl[i] = String.class;
}
Method m1 = clazz.getDeclaredMethod(tmArr[tmArr.length - 1], cl);
return m1.invoke(obj, params);
}
@GET
@Path("/refresh")
@Produces(MediaType.TEXT_PLAIN)
public String refreshDatakey(@Context HttpServletRequest request,
@Context HttpServletResponse response) {
JSONObject rspJson = new JSONObject();
rspJson.put("status", true);
String dataKey = request.getParameter("dataKey");
if (StringUtils.isBlank(dataKey)) {
rspJson.put("msg", "dataKey为空");
return rspJson.toJSONString();
}
String xmlString = Util_TableMap.getVal(dataKey);
if (StringUtils.isBlank(xmlString)) {
User user = HrmUserVarify.getUser(request, response);
int languageid = user != null ? user.getLanguage() : 7;
rspJson.put("msg", SystemEnv.getHtmlLabelName(508217, languageid));
rspJson.put("errorCode", "005");
return rspJson.toJSONString();
} else {
Util_TableMap.refreshKey(dataKey);
}
return rspJson.toJSONString();
}
@POST
@Path("/datas")
@Produces(MediaType.TEXT_PLAIN)
public String datas(@Context HttpServletRequest request, @Context HttpServletResponse response,
@FormParam("dataKey") String dataKey, @FormParam("pageSize") String pageSize,
@FormParam("sortParams") String sortParams, @FormParam("min") String min,
@FormParam("max") String max, @FormParam("current") String current,
@FormParam("ismobile") String ismobile, @FormParam("filterList") String filterList,
@FormParam("deptTypeExcludeList") String deptTypeExcludeList) {
JSONObject rspJson = new JSONObject();
rspJson.put("status", false);
try {
TimeMarker timeMarker = new TimeMarker();
timeMarker.setMark(true);
timeMarker.markStart();
if (StringUtils.isBlank(dataKey)) {
return rspJson.toJSONString();
}
User user = HrmUserVarify.getUser(request, response);
String xmlString = Util_TableMap.getVal(dataKey);
if (StringUtils.isBlank(xmlString)) {
int languageid = user != null ? user.getLanguage() : 7;
rspJson.put("msg", SystemEnv.getHtmlLabelName(508217, languageid));
rspJson.put("errorCode", "005");
return rspJson.toJSONString();
}
Util_TableMap.refreshKey(dataKey);
SplitPageBean bean = new SplitPageBean(request, dataKey, "RootMap", "operates", "head", "sql",
"checkboxpopedom", "browser", "otherHeads");
if ("1".equalsIgnoreCase(ismobile)) {
bean.getSql().put("ismobile", "ismobile");
}
//按照部门类别过滤数据
if (StringUtils.isNotBlank(deptTypeExcludeList)) {
String tFrom = Util.toSqlForSplitPage(Util.null2String(bean.getSql().getString("sqlform")));
String tWhere = Util
.toSqlForSplitPage(Util.null2String(bean.getSql().getString("sqlwhere")));
StringBuilder fromBuilder = new StringBuilder();
fromBuilder.append(tFrom);
fromBuilder.append(
" join (select DEPTID as did,DEPTTYPECODE as dtypecode from hrmdepartmentdefined) tt\n" +
" on HRMDEPARTMENT.ID=tt.did ");
bean.getSql().put("sqlform", fromBuilder.toString());
StringBuilder whereBuilder = new StringBuilder();
if (!"".equals(tWhere) && !tWhere.trim().startsWith("where")) {
whereBuilder.append(" where");
}
whereBuilder.append(" ").append(tWhere);
String[] deptTypeExcludeArr = deptTypeExcludeList.split(",");
String deptTypeCodeExcludeWhere = "";
for (String excludeDeptTypeCode : deptTypeExcludeArr) {
if (StringUtils.isNotEmpty(excludeDeptTypeCode)) {
deptTypeCodeExcludeWhere = String
.format("%s,'%s'", deptTypeCodeExcludeWhere, excludeDeptTypeCode);
}
}
if (StringUtils.isNotBlank(deptTypeCodeExcludeWhere)) {
deptTypeCodeExcludeWhere = deptTypeCodeExcludeWhere.substring(1);
whereBuilder.append(" and tt.dtypecode not in (").append(deptTypeCodeExcludeWhere)
.append(") ");
}
bean.getSql().put("sqlwhere", whereBuilder.toString());
}
if (StringUtils.isNotBlank(filterList)) {
String tWhere = Util
.toSqlForSplitPage(Util.null2String(bean.getSql().getString("sqlwhere")));
StringBuilder builder = new StringBuilder();
if (!"".equals(tWhere) && !tWhere.trim().startsWith("where")) {
builder.append(" where");
}
builder.append(" ").append(tWhere);
String[] filterArr = filterList.split(",");
for (String filter : filterArr) {
if (StringUtils.isNotEmpty(filter)) {
String[] split = filter.split(":");
if (split.length == 2) {
String filterField = split[0];
String filterValue = split[1];
String filterWhere = String
.format(" and %s not like '%%%s%%'", filterField, filterValue);
builder.append(filterWhere);
}
}
}
bean.getSql().put("sqlwhere", builder.toString());
}
log.writeLog("filter sql :" + getDevTableSql(bean.getSql()));
timeMarker.mark("init Bean");
String isPageAutoWrap = "1";
// 加入读取折行逻辑
if (user != null) {
HrmUserSettingComInfo userSetting = new HrmUserSettingComInfo();
String id = userSetting.getId(user.getUID() + "");
if ("".equals(id)) {
HrmUserSettingHandler handler = new HrmUserSettingHandler();
HrmUserSetting setting = handler.getSetting(user.getUID());
boolean rtxload = setting.isRtxOnload();
String isload = "0";
if (rtxload) {
isload = "1";
}
dao.insertUserSetting(user.getUID(), isload);
userSetting.removeHrmUserSettingComInfoCache();
userSetting = new HrmUserSettingComInfo();
id = userSetting.getId(user.getUID() + "");
}
//默认折行
isPageAutoWrap = userSetting.getIsPageAutoWrap(id);
}
boolean flag = true;
if ("0".equals(isPageAutoWrap)) {
flag = false;
}
rspJson.put("pageAutoWrap", flag);
// pageSize逻辑上移
String paSize = "";
String pageUId = "";
if (null != bean.getRootMap()) {
pageUId = Util.null2String(bean.getRootMap().getString("pageUid"));
}
String tablePageSize = bean.getRootMap().getString("pagesize");
if (null != bean.getHeads()) {
if (user != null) {
bean.setHeads(getShowColHeads(bean, pageUId, user));
}
bean.mergeHeads();
}
//调整分页规则
if (StringUtils.isNotBlank(pageSize)) {
rspJson.put("pageSize", pageSize);
} else if (!"".equals(pageUId)) {
if (user != null) {
paSize = dao.getPageSize(user.getUID(), pageUId);
}
if (StringUtils.isBlank(paSize)) {
// 需要新增
rspJson.put("pageSize", StringUtils.isBlank(tablePageSize) ? 10 : tablePageSize);
} else {
rspJson.put("pageSize", paSize);
}
} else {
rspJson.put("pageSize", 10);
}
// 分页逻辑上移
min = Util.null2String(min);
max = Util.null2String(max);
current = Util.null2String(current);
if ("".equals(max) || "".equals(min)) {
// 只要空就走以下逻辑
if ("".equals(current)) {
min = "1";
max = rspJson.getString("pageSize");
} else {
int minInt =
(Integer.valueOf(current) - 1) * Integer.valueOf(rspJson.getString("pageSize")) + 1;
int maxInt = minInt + Integer.valueOf(rspJson.getString("pageSize")) - 1;
min = minInt + "";
max = maxInt + "";
}
}
timeMarker.mark("get current user and count page ");
List<Map<String, String>> mssl = new ArrayList<Map<String, String>>();
if (bean.getRootMap().containsKey("datasource")) {
// 说明不需要拼接sql直接从接口获取数据
// 支持方法中直接分页
mssl = getDataFromDatasource(request, response, sortParams, min, max, timeMarker, rspJson,
bean, user, ismobile);
rspJson.put("datas", mssl);
rspJson.put("columns", bean.getHeads());
rspJson.put("ops", bean.getOperates());
} else {
String poolname = bean.getSql().getString("poolname");
// 加入分页逻辑
mssl = getDaoTableByPool(poolname)
.getDevTableDatas(bean.getSql(), bean.getHeads(), min, max, sortParams,
bean.getBroList(), timeMarker);
timeMarker.mark("read data from datasource");
if (pageUId.startsWith("mode_customsearch:")) {
CubeSearchTransMethod.clearCache(pageUId);
}
// 加入查询分页数量
rspJson.put("columns", bean.getHeads());
rspJson.put("ops", bean.getOperates());
rspJson.put("datas", mssl);
rspJson.put("isSts", false);
// 加入以前的合并同类给出合计值功能
if (bean.getSql().containsKey("sumColumns")) {
// 说明存在合计参数
String[] sumlist = Util.null2String(bean.getSql().getString("sumColumns")).split(",");
String tCountcolumns = Util.null2String(bean.getSql().getString("countcolumnsdbtype"));
String decimalFormat = Util.null2String(bean.getSql().getString("decimalFormat"));
Map<String, String> sumMap = new HashMap<>();
for (int i = 0; i < sumlist.length; i++) {
double thissum = 0.00;
for (int j = 0; j < mssl.size(); j++) {
if (Util_public.isThousandsField(sumlist[i], tCountcolumns)) {
String str = mssl.get(j).get(sumlist[i].trim());
if (StringUtils.isNotEmpty(str)) {
str = str.replace(",", "");
}
thissum += Util.getDoubleValue(str, 0);
} else {
thissum += Util.getDoubleValue(mssl.get(j).get(sumlist[i].trim()), 0);
}
}
sumMap.put(sumlist[i].trim(), Util_public.parseString(thissum));
sumMap.put(sumlist[i].trim() + "span", Util_public.parseString(thissum));
}
sumMap = sumTransMethod(bean, sumMap, sumlist, decimalFormat, tCountcolumns);
Map<String, String> allSumMap = new HashMap<>();
allSumMap = getDaoTableByPool(poolname).getSqlSum(bean.getSql(), sumlist, allSumMap);
// 如果存在sumValues说明这个值在取tableString时已经计算好了。针对需要transMethod配置显示数据的场景。
// 格式: key:value+key2:value2
if (bean.getSql().containsKey("sumValues")) {
String[] sumValues = Util.null2String(bean.getSql().getString("sumValues"))
.split("\\+");
for (int i = 0; i < sumValues.length; i++) {
String[] sumValue = sumValues[i].split(":");
allSumMap.put(sumValue[0].trim(), sumValue[1].trim());
}
}
allSumMap = sumTransMethod(bean, allSumMap, sumlist, decimalFormat, tCountcolumns);
rspJson.put("isSts", true);
rspJson.put("stsData", sumMap);
rspJson.put("stsAllData", allSumMap);
timeMarker.mark("sum data");
}
}
boolean haveCheck = false;
if (bean.getCheckboxList().size() > 0) {
JSONObject checkboxFirst = (JSONObject) bean.getCheckboxList().get(0);
haveCheck = checkboxFirst.getString("id") != null;
}
rspJson.put("haveCheck", haveCheck);
rspJson.put("status", true);
// 暂时来说这里向rspJson里放入了browser,columns,datas还没有抽出来。
bean.outputByBrowser(rspJson, mssl);
timeMarker.mark("do browser");
rspJson.put("rootMap", bean.getRootMap());
timeMarker.markEnd();
if (timeMarker.isMark()) {
rspJson.put("timeJson", timeMarker.toTimeCostJSON());
}
//移动端信息
if (bean.getRootMap().containsKey("mobileshowtype")) {
rspJson.put("mobileshowtype", bean.getRootMap().getString("mobileshowtype"));
}
if (bean.getRootMap().containsKey("rowstylefield")) {
rspJson.put("rowstylefield", bean.getRootMap().getString("rowstylefield"));
}
if (bean.getRootMap().containsKey("mobileshowtemplate")) {
String str = bean.getRootMap().getString("mobileshowtemplate");
if (StringUtil.isNotNull(str)) {
SplitMobileTemplateBean tempBean = Util_public.getMobileTemplateExt(str);
rspJson.put("mobileshowtemplate", tempBean);
}
}
} catch (Exception e) {
log.writeLog(e);
rspJson.put("msg", "error");
}
return rspJson.toJSONString();
}
private List<Map<String, String>> getDataFromDatasource(HttpServletRequest request,
HttpServletResponse response, String sortParams, String min, String max,
TimeMarker timeMarker, JSONObject rspJson, SplitPageBean bean, User user, String ismobile)
throws Exception {
List<Map<String, String>> mssl = Lists.newArrayList();
request.setAttribute("min", min);
request.setAttribute("max", max);
request.setAttribute("pageSize", rspJson.getString("pageSize"));
request.setAttribute("sortParams", sortParams);
String tPrimaryKey = Util.null2String(bean.getSql().getString("sqlprimarykey"));
rspJson = getMethodDatas(bean, user, rspJson, request, response);
if (timeMarker != null) {
timeMarker.mark("read data from dataSource");
}
List<Map<String, String>> getDatas = Lists.newArrayList();
if (rspJson.containsKey("datas")) {
getDatas = (List<Map<String, String>>) rspJson.get("datas");
}
int minInt = 0;
int maxInt = getDatas.size();
if (!bean.getRootMap().containsKey("pageBySelf")) {
minInt = Integer.parseInt(min) - 1;
maxInt = Integer.parseInt(max);
if (minInt < 0) {
minInt = 0;
}
if (maxInt > getDatas.size()) {
maxInt = getDatas.size();
}
}
for (int i = minInt; i < maxInt; i++) {
Map<String, String> getData = getDatas.get(i);
for (Object obj : (List) bean.getHeads()) {
JSONObject column = (JSONObject) obj;
//加入对base64的支持功能 andyzhang
if (column.containsKey("isBase64") && column.getString("isBase64").equals("1")) {
String jsonName = column.getString("dataIndex");
String value = getData.get(jsonName);
value = TextUtil.toBase64ForMultilang(value);
getData.put(jsonName, value);
}
if (column.containsKey("transMethod") && column.containsKey("display")) {
if ("true".equals(column.getString("display")) ||
"true".equals(column.getString("transMethodForce"))) {
String jsonName = column.getString("dataIndex");
String transvalue = Util_public.doTransMethod(column, getData);
if ("1".equalsIgnoreCase(ismobile)) {
if (StringUtils.isNotBlank(transvalue)) {
transvalue = Util_public.deletcLink(transvalue);
}
}
getData.put(jsonName + "span", transvalue);
}
}
if (StringUtils.isNotBlank(tPrimaryKey)) {
getData.put("randomFieldId", getData.get(tPrimaryKey));
}
}
mssl.add(getData);
}
if (timeMarker != null) {
timeMarker.mark("do transmethod in dataSource");
}
return mssl;
}
private String getDevTableSql(JSONObject sqlObj) {
String tFields = Util.null2String(sqlObj.getString("backfields"));
String tFrom = Util.toSqlForSplitPage(Util.null2String(sqlObj.getString("sqlform")));
String tWhere = Util.toSqlForSplitPage(Util.null2String(sqlObj.getString("sqlwhere")));
String tOrder = Util.null2String(sqlObj.getString("sqlorderby"));
String tOrderWay = Util.null2String(sqlObj.getString("sqlsortway"));
String tDistinct = Util.null2String(sqlObj.getString("sqlisdistinct"));
StringBuilder sb = new StringBuilder();
sb.append(" select " + ("true".equals(tDistinct) ? "distinct " : "") + tFields);
sb.append(" ");
if (!tFrom.startsWith("from")) {
sb.append("from");
}
sb.append(" ").append(tFrom);
sb.append(" ");
if (!"".equals(tWhere) && !tWhere.trim().startsWith("where")) {
sb.append(" where");
}
sb.append(" ").append(tWhere);
if (!"".equals(tOrder)) {
sb.append(" order by ").append(tOrder);
}
if (!"".equals(tOrderWay)) {
sb.append(" ").append(tOrderWay);
}
return sb.toString();
}
private class OrderCompare implements Comparable<OrderCompare> {
JSONObject jsonObject;
public OrderCompare(JSONObject jsonObject) {
this.jsonObject = jsonObject;
}
private int getOrders() {
return jsonObject.getIntValue("orders");
}
@Override
public int compareTo(OrderCompare o) {
return Integer.compare(this.getOrders(), o.getOrders());
}
}
/**
* mapvalue(orders)list
*
* @param array
* @param map
*/
private void addToListByOrders(JSONArray array, Map<String, JSONObject> map) {
List<OrderCompare> list = Lists.newArrayList();
for (JSONObject jo : map.values()) {
list.add(new OrderCompare(jo));
}
Collections.sort(list);
for (OrderCompare o : list) {
int index = o.getOrders();
if (index < array.size()) {
array.add(index, o.jsonObject);
} else {
array.add(o.jsonObject);
}
}
}
}

@ -0,0 +1,135 @@
package com.api.htsc.browser;
import com.alibaba.fastjson.JSONObject;
import com.api.browser.service.Browser;
import com.api.browser.util.BrowserConfigComInfo;
import com.api.browser.util.BrowserConstant;
import com.api.browser.util.DeviceTypeAttr;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import org.apache.commons.lang3.StringUtils;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
/**
*
*/
@Path("/htsc/browser")
public class HtscBrowserAction {
/**
*
*
* @param browser
* @param params
*/
public void setBrowserStatus(Browser browser, Map<String, Object> params) {
String deviceType = Util.null2String(params.get("_ec_device"));
String isMobile = Util.null2String(params.get("_ec_ismobile"));
browser.setDeviceType(DeviceTypeAttr.PC);
//pc mobile_ec mobile_dingding
if (StringUtils.isNotBlank(deviceType)) {
DeviceTypeAttr dt = DeviceTypeAttr.valueOf(deviceType.toUpperCase());
browser.setDeviceType(dt);
}
browser.setMobile("true".equals(isMobile));
}
@POST
@Path("/data/{type}")
@Produces("text/plain;charset=utf-8")
public String getBrowserData2(@PathParam("type") String type, @Context HttpServletRequest request,
@Context HttpServletResponse response) {
return getBrowserData(type, request, response);
}
@GET
@Path("/data/{type}")
@Produces("text/plain;charset=utf-8")
public String getBrowserData(@PathParam("type") String type, @Context HttpServletRequest request,
@Context HttpServletResponse response) {
BrowserConfigComInfo browserConfigComInfo = new BrowserConfigComInfo();
Map<String, Object> params = getRequestParams(request, response);
String browserClassName = browserConfigComInfo.getClazz(type);
Map<String, Object> apidatas = new HashMap<String, Object>();
try {
// 替换为华泰Browser
String className = String.format("com.api.htsc.browser.service.Htsc%s",
browserClassName.substring(browserClassName.lastIndexOf(".") + 1));
Browser browser = (Browser) Class.forName(className).newInstance();
browser.setBrowserType(type);
setBrowserStatus(browser, params);
//获取测试预览设置的用户
if (params.get("operatoruser_" + params.get("currenttime")) != null) {
browser.setUser(this.getPreviewUser(request));
} else {
browser.setUser(this.getUserByRequest(request, response));
}
String sqlWhere = Util.null2String(browser.spellSqlWhere(params));
String tempSqlWhere = Util.null2String(params.get(BrowserConstant.SPELL_SQL_WHERE));
if (!"".equals(sqlWhere) || !tempSqlWhere.equals(sqlWhere)) {
params.put(BrowserConstant.SPELL_SQL_WHERE, tempSqlWhere + " " + sqlWhere);
}
apidatas.putAll(browser.getBrowserData(params));
} catch (Exception e) {
e.printStackTrace();
apidatas.put("status", false);
apidatas.put("error", e.getMessage());
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
private Map<String, Object> getRequestParams(HttpServletRequest request,
HttpServletResponse response) {
Map<String, Object> params = new HashMap<String, Object>();
Enumeration<String> em = request.getParameterNames();
while (em.hasMoreElements()) {
String paramname = em.nextElement();
params.put(paramname, request.getParameter(paramname));
}
return params;
}
private User getUserByRequest(HttpServletRequest request, HttpServletResponse response) {
String f_weaver_belongto_userid = Util
.null2String(request.getParameter("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util
.null2String(request.getParameter("f_weaver_belongto_usertype"));
User user = HrmUserVarify
.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype);
return user;
}
/**
*
*
* @param request
* @return
*/
private User getPreviewUser(HttpServletRequest request) {
String f_weaver_belongto_userid = Util
.null2String(request.getParameter("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util
.null2String(request.getParameter("f_weaver_belongto_usertype"));
User user = User.getUser(Integer.parseInt(f_weaver_belongto_userid),
Integer.parseInt(f_weaver_belongto_usertype));
return user;
}
}

@ -0,0 +1,129 @@
package com.api.htsc.browser.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.api.browser.service.impl.OrganizationBrowserService;
import java.util.HashMap;
import java.util.Map;
import javafx.util.Pair;
import weaver.conn.RecordSet;
import weaver.general.GCONST;
import weaver.general.Util;
import weaver.hrm.User;
public class HtscOrganizationBrowserService extends OrganizationBrowserService {
@Override
public Map<String, Object> getBrowserData(Map<String, Object> params) throws Exception {
Map<String, Object> map = super.getBrowserData(params);
Map<String, Object> result = new HashMap<>(map);
String id = Util.null2String(params.get("id"));
if (map.containsKey("datas")) {
Object dataObject = JSON.toJSON(map.get("datas"));
if (dataObject instanceof JSONArray) {
JSONArray datas = (JSONArray) JSON.toJSON(map.get("datas"));
if (datas != null) {
//查询所有
Map<String, Pair> pairMap = getAllHrmDepartmentDefined();
//遍历结果
for (int i = 0; i < datas.size(); i++) {
JSONObject data = (JSONObject) datas.get(i);
String deptId = data.getString("id");
if (pairMap.containsKey(deptId)) {
data.put("deptTypeCode", pairMap.get(deptId).getKey());
data.put("deptClassCode", pairMap.get(deptId).getValue());
} else {
data.put("deptTypeCode", "");
data.put("deptClassCode", "");
}
}
result.put("datas", datas);
if (pairMap.containsKey(id)) {
result.put("deptTypeCode", pairMap.get(id).getKey());
result.put("deptClassCode", pairMap.get(id).getValue());
} else {
result.put("deptTypeCode", "");
result.put("deptClassCode", "");
}
}
}
}
return result;
}
private Map<String, Pair> getAllHrmDepartmentDefined() {
Map<String, Pair> result = new HashMap<>();
RecordSet rs = new RecordSet();
String sql = "select deptid,depttypecode,deptscalelevelcode from hrmdepartmentdefined";
rs.executeQuery(sql);
while (rs.next()) {
String deptid = Util.null2String(rs.getString("deptid"));
String depttypecode = Util.null2String(rs.getString("depttypecode"));
String deptscalelevelcode = Util.null2String(rs.getString("deptscalelevelcode"));
Pair<String, String> pair = new Pair<>(depttypecode, deptscalelevelcode);
result.put(deptid, pair);
}
return result;
}
public static void main(String[] args) {
//测试时将this.browserType = "57";置于HtscOrganizationBrowserService的getBrowserData方法内
GCONST.setRootPath("WEB-INF/");
GCONST.setServerName("ecology");
Map<String, Object> params = new HashMap<>();
String paramStr = "pageSize=10&current=1&min=1&max=10&wfid=5522&billid=-76&isbill=1&requestid=-1&f_weaver_belongto_userid=27022&f_weaver_belongto_usertype=0&wfTestStr=&fieldid=88024&viewtype=0&fromModule=workflow&wfCreater=27022&virtualCompanyid=1&__random__=1614070027173";
String[] split = paramStr.split("&");
for (String param : split) {
String[] split1 = param.split("=");
if (split1.length < 2) {
params.put(split1[0], "");
} else {
params.put(split1[0], split1[1]);
}
}
/**
* types: dept|35
* selectids: 35
* virtualCompanyid: 1
* wfid: 5522
* billid: -76
* isbill: 1
* requestid: -1
* f_weaver_belongto_userid: 27022
* f_weaver_belongto_usertype: 0
* wfTestStr:
* fieldid: 88024
* viewtype: 0
* fromModule: workflow
* wfCreater: 27022
*/
// params.put("types","dept|35");
// params.put("selectids","35");
// params.put("virtualCompanyid","1");
// params.put("wfid","5522");
// params.put("billid","-76");
// params.put("isbill","1");
// params.put("requestid","-1");
// params.put("f_weaver_belongto_userid","27022");
// params.put("f_weaver_belongto_usertype","0");
// params.put("wfTestStr","");
// params.put("fieldid","0");
// params.put("fromModule","workflow");
// params.put("wfCreater","27022");
HtscOrganizationBrowserService htscOrganizationBrowserService = new HtscOrganizationBrowserService();
String f_weaver_belongto_userid = Util.null2String(params.get("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util.null2String(params.get("f_weaver_belongto_usertype"));
User user = User.getUser(Integer.parseInt(f_weaver_belongto_userid),
Integer.parseInt(f_weaver_belongto_usertype));
htscOrganizationBrowserService.setUser(user);
Map<String, Object> result = null;
try {
result = htscOrganizationBrowserService.getBrowserData(params);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(JSON.toJSONString(result));
}
}

@ -0,0 +1,104 @@
package com.api.htsc.browser.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.api.browser.service.impl.ResourceBrowserService;
import java.util.HashMap;
import java.util.Map;
import javafx.util.Pair;
import weaver.conn.RecordSet;
import weaver.general.GCONST;
import weaver.general.Util;
import weaver.hrm.User;
public class HtscResourceBrowserService extends ResourceBrowserService {
@Override
public Map<String, Object> getBrowserData(Map<String, Object> params) throws Exception {
Map<String, Object> map = super.getBrowserData(params);
Map<String, Object> result = new HashMap<>(map);
String cmd = Util.null2String(params.get("cmd"));
String id = Util.null2String(params.get("id"));
//只处理v2resourcetree
if ("v2resourcetree".equals(cmd)) {
if (map.containsKey("datas")) {
Object dataObject = JSON.toJSON(map.get("datas"));
if (dataObject instanceof JSONArray) {
JSONArray datas = (JSONArray) JSON.toJSON(map.get("datas"));
if (datas != null) {
Map<String, Pair> pairMap = getAllHrmDepartmentDefined();
//遍历结果
for (int i = 0; i < datas.size(); i++) {
JSONObject data = (JSONObject) datas.get(i);
String isParent = data.getString("isParent");
if ("true".equals(isParent)) {
String deptId = data.getString("id");
if (pairMap.containsKey(deptId)) {
data.put("deptTypeCode", pairMap.get(deptId).getKey());
data.put("deptClassCode", pairMap.get(deptId).getValue());
} else {
data.put("deptTypeCode", "");
data.put("deptClassCode", "");
}
}
}
result.put("datas", datas);
if (pairMap.containsKey(id)) {
result.put("deptTypeCode", pairMap.get(id).getKey());
result.put("deptClassCode", pairMap.get(id).getValue());
} else {
result.put("deptTypeCode", "");
result.put("deptClassCode", "");
}
}
}
}
}
return result;
}
private Map<String, Pair> getAllHrmDepartmentDefined() {
Map<String, Pair> result = new HashMap<>();
RecordSet rs = new RecordSet();
String sql = "select deptid,depttypecode,deptscalelevelcode from hrmdepartmentdefined";
rs.executeQuery(sql);
while (rs.next()) {
String deptid = Util.null2String(rs.getString("deptid"));
String depttypecode = Util.null2String(rs.getString("depttypecode"));
String deptscalelevelcode = Util.null2String(rs.getString("deptscalelevelcode"));
Pair<String, String> pair = new Pair<>(depttypecode, deptscalelevelcode);
result.put(deptid, pair);
}
return result;
}
public static void main(String[] args) {
GCONST.setRootPath("WEB-INF/");
GCONST.setServerName("ecology");
Map<String, Object> params = new HashMap<>();
String paramStr = "pageSize=10&current=1&min=1&max=10&wfid=4021&billid=-48&isbill=1&requestid=-1&f_weaver_belongto_userid=13231&f_weaver_belongto_usertype=0&wfTestStr=&fieldid=14416&viewtype=0&fromModule=workflow&wfCreater=13231&hasAddGroup=true&tabs=%5Bobject%20Object%5D%2C%5Bobject%20Object%5D%2C%5Bobject%20Object%5D&cmd=v2resourcetree&virtualtype=1&__random__=1611125578623";
String[] split = paramStr.split("&");
for (String param : split) {
String[] split1 = param.split("=");
if (split1.length < 2) {
params.put(split1[0], "");
} else {
params.put(split1[0], split1[1]);
}
}
HtscResourceBrowserService htscResourceBrowserService = new HtscResourceBrowserService();
String f_weaver_belongto_userid = Util.null2String(params.get("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util.null2String(params.get("f_weaver_belongto_usertype"));
User user = User.getUser(Integer.parseInt(f_weaver_belongto_userid),
Integer.parseInt(f_weaver_belongto_usertype));
htscResourceBrowserService.setUser(user);
Map<String, Object> result = null;
try {
result = htscResourceBrowserService.getBrowserData(params);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(result.toString());
}
}

@ -0,0 +1,9 @@
package com.api.htsc.bulletin;
import com.engine.htsc.bulletintoberead.web.BulletinToBeReadController;
import javax.ws.rs.Path;
@Path("/htsc/ggdy")
public class BulletinToBeReadApi extends BulletinToBeReadController {
}

@ -0,0 +1,9 @@
package com.api.htsc.bumph;
import com.engine.htsc.bumphtoberead.web.BumphToBeReadController;
import javax.ws.rs.Path;
@Path("/htsc/gwdy")
public class BumphToBeReadApi extends BumphToBeReadController {
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,274 @@
package com.api.htsc.businessMethod;
import com.engine.htsc.payment.enums.BudgetNodeType;
import com.engine.htsc.payment.pojo.*;
import com.engine.htsc.payment.service.impl.HeadBxBudgetCommand;
import com.engine.htsc.payment.service.impl.HeadPaymentBudgetCommand;
import com.engine.htsc.payment.util.BizUtils;
import com.engine.htsc.payment.util.PayUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.company.DepartmentComInfo;
import weaver.hrm.resource.ResourceComInfo;
import java.util.ArrayList;
import java.util.List;
/**
* k1810012
* <p>
*
*
*
*/
public class SubUnionBizUtil {
public static final String LHTYBX = "lhtybx"; //联合通用报销 UNNUMBER
public static final String LHTYFK = "lhtyfk"; //联合通用付款 UNNUMBER
/**
* id
* @param requestId id
* @param unNumber
* @return true: requestIdunNumber; false
*/
public static boolean equalsTableName(String requestId, String unNumber) throws Exception {
RecordSet rs = new RecordSet();
String sql = "select t1.TABLENAME from workflow_bill t1\n" +
"LEFT JOIN workflow_base t2\n" +
"on t1.ID=t2.FORMID\n" +
"where t2.ISVALID=1 and t2.UNNUMBER=?";
rs.executeQuery(sql, unNumber);
String tableName = "";
if (rs.next()) {
tableName = Util.null2String(rs.getString("TABLENAME"));
}
sql = "select t1.tablename from workflow_bill t1\n" +
"left join workflow_base t2\n" +
"on t1.ID=t2.FORMID\n" +
"left join workflow_requestbase t3\n" +
"on t2.ID=t3.WORKFLOWID\n" +
"where t3.requestid =?";
rs.executeQuery(sql, requestId);
if (rs.next() && StringUtils.isNotBlank(tableName)) {
return tableName.equalsIgnoreCase(Util.null2String(rs.getString("tablename")));
}
return false;
}
/**
*
*
* @param rid id
* @param lb
* @param payOrder
* @return CostAccountDto {@link CostAccountDto}
* @author k1810012
*/
public static CostAccountDto generateUnionReiData(String rid, String lb, String payOrder) throws Exception {
CostAccountDto costAccDto = new CostAccountDto();
DepartmentComInfo dc = new DepartmentComInfo();
ResourceComInfo rc = new ResourceComInfo();
BizUtils bizUtils = new BizUtils();
RecordSet rs = new RecordSet();
String tableName = PayUtil.getTableNameByUnNumber(LHTYBX);
String sql = String.format(
"select t1.id,t1.ngr,t1.szbm,t1.lcbh,t1.djzs,t1.ngsj,t1.bxdd,t2.REQUESTNAME from %s t1\n" +
"left join workflow_requestbase t2\n" +
"on t1.REQUESTID=t2.REQUESTID\n" +
"where t1.requestid=?",
tableName);
//主表数据汇总
rs.executeQuery(sql, rid);
String mainId = ""; //明细表mainId
if (rs.next()) {
mainId = Util.null2String(rs.getString("id"));
String ngr = Util.null2String(rs.getString("ngr"));
String dept = Util.null2String(rs.getString("szbm")); //所在部门
String requestMark = Util.null2String(rs.getString("lcbh"));
String djzs = Util.null2String(rs.getString("djzs")); //单据张数
String ngsj = Util.null2String(rs.getString("ngsj")) + ":00"; //数据库格式: 2021-08-06 11:45
String requestName = Util.null2String(rs.getString("REQUESTNAME"));
//报销地
String bxdd=Util.null2String(rs.getString("bxdd"));
costAccDto.setType(lb);
costAccDto.setNgrDept(dc.getDepartmentmark(dept));
costAccDto.setNgrDeptCode(dc.getDepartmentCode(dept));
costAccDto.setNgrName(rc.getLastname(ngr));
costAccDto.setRequestMark(requestMark);
costAccDto.setRequestId(payOrder);
costAccDto.setAttachmentNum(djzs);
costAccDto.setLocationName("");
costAccDto.setTitle(requestName);
costAccDto.setCurrency("RMB");
costAccDto.setCreateDate(ngsj);
costAccDto.setReimbursementWay("");
costAccDto.setPayOrderNo(payOrder);
costAccDto.setLocationName(getLocationName(bxdd));
}
if ( StringUtils.isBlank(mainId) ) {
throw new Exception(String.format("联合核算,主表sql没有取到流程编号, sql: %s; rid:%s", sql, rid));
}
// 会计明细: com.engine.htsc.payment.pojo.CostAccountDto.kjDetails
List<KjDetail> kjDetails = new ArrayList<>();
String dt12 = tableName + "_DT12";
sql = String.format("select fysjcdbm,fysjcdr,hjkm,yskm,yskmmc,zhrmb,SY from %s where mainid=?", dt12);
rs.executeQuery(sql, mainId);
while (rs.next()) {
String fysjcdbm = Util.null2String(rs.getString("fysjcdbm"));
String fysjcdr = Util.null2String(rs.getString("fysjcdr"));
String hjkm = Util.null2String(rs.getString("hjkm"));
String yskm = Util.null2String(rs.getString("yskm"));
String yskmmc = Util.null2String(rs.getString("yskmmc"));
String zhrmb = Util.null2String(rs.getString("zhrmb"));
String sy = Util.null2String(rs.getString("SY"));
SubjectData subject = new SubjectData();
subject.setItemCode(hjkm);
subject.setItemName(bizUtils.getKjkmmc(hjkm));
BudgetData budget = new BudgetData();
budget.setRelationCode(hjkm);
budget.setItemCode(yskm);
budget.setItemName(yskmmc);
KjDetail kjItem = new KjDetail();
kjItem.setSubjectData(subject);
kjItem.setBudgetData(budget);
kjItem.setExpenseDeptCode(dc.getDepartmentCode(fysjcdbm));
kjItem.setExpenseDept(dc.getDepartmentmark(fysjcdbm));
kjItem.setExpenseBadge(rc.getWorkcode(fysjcdr));
kjItem.setExpensePerson(rc.getLastname(fysjcdr));
kjItem.setPriceRMB(zhrmb);
kjItem.setMoney(zhrmb);
kjItem.setProjectCode("");
kjItem.setProject("");
kjItem.setReason(sy);
kjDetails.add(kjItem);
}
costAccDto.setKjDetails(kjDetails);
if ( CollectionUtils.isEmpty(costAccDto.getKjDetails()) ) {
throw new Exception(String.format("联合核算,明细12 sql没有取到会计数据, sql: %s; mainId:%s", sql, mainId));
}
//支付明细: com.engine.htsc.payment.pojo.CostAccountDto.payDetails
List<PayDetail> payDetails = new ArrayList<>();
String dt11 = tableName + "_DT11";
sql = String.format("select yxzfje,xjzfje,khxmc,yxzh,bm,ygxm from %s where mainid=?", dt11);
rs.executeQuery(sql, mainId);
while (rs.next()) {
String yxzfje = Util.null2String(rs.getString("yxzfje"));
String xjzfje = Util.null2String(rs.getString("xjzfje"));
String khxmc = Util.null2String(rs.getString("khxmc"));
String yxzh = Util.null2String(rs.getString("yxzh"));
String bm = Util.null2String(rs.getString("bm"));
String ygxm = Util.null2String(rs.getString("ygxm"));
PayDetail payItem = new PayDetail();
payItem.setPayByBank(yxzfje);
payItem.setPayByCash(xjzfje);
payItem.setBankName(khxmc);
payItem.setBankAccount(yxzh);
payItem.setEmployeeDept(dc.getDepartmentmark(bm));
payItem.setEmployeeName(rc.getLastname(ygxm));
payItem.setEmployeeBadge(rc.getWorkcode(ygxm));
payDetails.add(payItem);
}
costAccDto.setPayDetails(payDetails);
if ( CollectionUtils.isEmpty(costAccDto.getPayDetails()) ) {
throw new Exception(String.format("联合核算,明细11 sql没有取到支付数据, sql: %s; mainId:%s", sql, mainId));
}
return costAccDto;
}
private static String getLocationName(String locationId){
switch (locationId){
case "0":
return "深圳";
case "1":
return "上海";
case "2":
return "北京";
case "3":
return "南京";
default:
return "未知:"+locationId;
}
}
/**
*
*
* @param requestId id
* @param status
* @author k1810012
*/
public static String doBudgetCommit4Union(String requestId, String status) {
HeadBxBudgetCommand command = new HeadBxBudgetCommand();
try {
if (BudgetNodeType.REJECT.getValue().equalsIgnoreCase(status)) {
String reject = command.reject(requestId);
//废弃后更新发票关联关系: uf_pjxxgl 浪潮
BizUtils bizUtils = new BizUtils();
bizUtils.cancelInvLink(requestId);
return reject;
} else if (BudgetNodeType.FINISH.getValue().equalsIgnoreCase(status)) {
return command.finish(requestId);
} else {
return "预算状态错误";
}
} catch (Exception e) {
new BaseBean().writeLog("doBudgetCommit4Union 预算接口调用异常: " + e.getMessage());
return "预算失败";
}
}
/**
*
*
* @param requestId id
* @param status
* @author k1810012
*/
public static String doBudgetCommit4UnionFk(String requestId, String status) {
HeadPaymentBudgetCommand command = new HeadPaymentBudgetCommand();
try {
if (BudgetNodeType.REJECT.getValue().equalsIgnoreCase(status)) {
String reject = command.reject(requestId);
//废弃后更新发票关联关系: uf_pjxxgl 浪潮
BizUtils bizUtils = new BizUtils();
bizUtils.cancelInvLink(requestId);
return reject;
} else if (BudgetNodeType.FINISH.getValue().equalsIgnoreCase(status)) {
return command.finish(requestId);
} else {
return "预算状态错误";
}
} catch (Exception e) {
new BaseBean().writeLog("doBudgetCommit4UnionFk 预算接口调用异常: " + e.getMessage());
return "预算失败";
}
}
}

@ -0,0 +1,9 @@
package com.api.htsc.capitalbusinessPayment;
import com.engine.htsc.capitalbusinessPayment.web.CapitalBusinessPaymentAction;
import javax.ws.rs.Path;
@Path("/capitalbusinessPayment")
public class CapitalBusinessPaymentActionApi extends CapitalBusinessPaymentAction {
}

@ -0,0 +1,8 @@
package com.api.htsc.ccwg.web;
import com.engine.htsc.ccwg.web.Upload2StorageGatewayAction;
import javax.ws.rs.Path;
@Path("/htoa/ccgw")
public class Upload2StorageGatewayActionApi extends Upload2StorageGatewayAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.cgrwd.web;
import com.engine.htsc.cgrwd.web.CgrwdAction;
import javax.ws.rs.Path;
@Path("/htsc/cgrwd")
public class CgrwdActionApi extends CgrwdAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.cgscfyqr;
import com.engine.htsc.cgscfyqr.web.CgscfyqrAction;
import javax.ws.rs.Path;
@Path("/htsc/cgscfyqr")
public class CgscfyqrActionApi extends CgscfyqrAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.cgscjsfk;
import com.engine.htsc.cgscjsfk.web.JsfkAction;
import javax.ws.rs.Path;
@Path("/htsc/cgscjsfk")
public class JsfkActionApi extends JsfkAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.changeCloudTicket;
import com.engine.htsc.changeCloudTicket.web.NewCTAction;
import javax.ws.rs.Path;
@Path("/htsc/changeCloudTicket")
public class NewCTActionApi extends NewCTAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.clsysq;
import com.engine.htsc.clsysq.web.ClsysqAction;
import javax.ws.rs.Path;
@Path("/htsc/Clsysq")
public class ClsyActionApi extends ClsysqAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.clwhsq;
import com.engine.htsc.clwhsq.web.ClwhsqAction;
import javax.ws.rs.Path;
@Path("/clwhsq")
public class ClwhsqApi extends ClwhsqAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.collaboration;
import com.engine.htsc.collaboration.web.CoWorkAction;
import javax.ws.rs.Path;
@Path("/htsc/collaboration/coWork")
public class CoWorkActionApi extends CoWorkAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.collaboration;
import com.engine.htsc.collaboration.web.DubanCoWorkAction;
import javax.ws.rs.Path;
@Path("/htsc/duban/coWork")
public class DubanCoWorkActionApi extends DubanCoWorkAction{
}

@ -0,0 +1,9 @@
package com.api.htsc.collaboration;
import com.engine.htsc.collaboration.web.TaskAction;
import javax.ws.rs.Path;
@Path("/htsc/collaboration/task")
public class TaskActionApi extends TaskAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.collaboration;
import com.engine.htsc.collaboration.web.TaskLogAction;
import javax.ws.rs.Path;
@Path("/htsc/collaboration/taskLog")
public class TaskLogActionApi extends TaskLogAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.collaboration;
import com.engine.htsc.collaboration.web.WorkflowCoWorkAction;
import javax.ws.rs.Path;
@Path("/htsc/collaboration/WorkflowCoWork")
public class WorkflowCoWorkActionApi extends WorkflowCoWorkAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.collaboration;
import com.engine.htsc.collaboration.web.WorkflowTaskAction;
import javax.ws.rs.Path;
@Path("/htsc/collaboration/WorkflowTask")
public class WorkflowTaskActionApi extends WorkflowTaskAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.common;
import com.engine.htsc.common.web.CoWorkflowAction;
import javax.ws.rs.Path;
@Path("/htsc/common/workflow")
public class CoWorkflowActionApi extends CoWorkflowAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.common;
import com.engine.htsc.common.web.CommonAction;
import javax.ws.rs.Path;
@Path("/tcs/common")
public class CommonActionApi extends CommonAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.contacts;
import com.engine.htsc.contacts.web.ContactsAction;
import javax.ws.rs.Path;
@Path("/topContacts")
public class ContactsActionApi extends ContactsAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.contractmanagement;
import com.engine.htsc.contractmanagement.web.ContractExternalinterfaceAction;
import javax.ws.rs.Path;
@Path("/counterparty")
public class ContractExternalinterfaceAPI extends ContractExternalinterfaceAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.contractmanagement;
import com.engine.htsc.contractmanagement.web.ContractAction;
import javax.ws.rs.Path;
@Path("/contract/management")
public class
ContractManagementActionAPI extends ContractAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.cooperation;
import com.engine.htsc.cooperation.ReloadXzUser;
import javax.ws.rs.Path;
@Path("/htsc/cooperation")
public class ReloadXzUserApi extends ReloadXzUser {
}

@ -0,0 +1,11 @@
package com.api.htsc.cooperation;
import com.engine.htsc.cooperation.TaskShareUser;
import javax.ws.rs.Path;
@Path("/htsc/cooperation/taskuser")
public class TaskShareUserApi extends TaskShareUser {
}

@ -0,0 +1,10 @@
package com.api.htsc.cooperation;
import com.engine.htsc.cooperation.TaskSmsToUser;
import javax.ws.rs.Path;
@Path("/htsc/cooperation/sms")
public class TaskSmsToUserApi extends TaskSmsToUser {
}

@ -0,0 +1,11 @@
package com.api.htsc.cooperation;
import com.engine.htsc.cooperation.TaskSmsToUser;
import com.engine.htsc.cooperation.TaskToLog;
import javax.ws.rs.Path;
@Path("/htsc/cooperation/log")
public class TaskToLogApi extends TaskToLog {
}

@ -0,0 +1,8 @@
package com.api.htsc.cowork.web;
import com.engine.htsc.cowork.web.CoWorkAction;
import javax.ws.rs.Path;
@Path("/htsc/coworktask")
public class CoWorkActionApi extends CoWorkAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.coworkreport;
import com.engine.htsc.coworkreport.web.CoWorkReportAction;
import javax.ws.rs.Path;
@Path("/htsc/coworkreport")
public class CoWorkReportActionApi extends CoWorkReportAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.coworkreport;
import com.engine.htsc.coworkreport.web.TaskListAction;
import javax.ws.rs.Path;
@Path("/htsc/tasklist")
public class TaskListActionApi extends TaskListAction {
}

@ -0,0 +1,11 @@
package com.api.htsc.coworkreport;
import com.engine.htsc.coworkreport.web.TaskMessageAction;
import javax.ws.rs.Path;
@Path("/htsc/taskMessage")
public class TaskMessageActionApi extends TaskMessageAction {
}

@ -0,0 +1,12 @@
package com.api.htsc.cube;
import com.engine.htsc.cube.web.CollaborationSaveFormAction;
import javax.ws.rs.Path;
/**
* Action
*/
@Path("/htsc/cube/collaboration")
public class CollaborationSaveFormActionApi extends CollaborationSaveFormAction {
}

@ -0,0 +1,12 @@
package com.api.htsc.cube;
import javax.ws.rs.Path;
/**
* Created by K1810001 on 2020/10/19.
*/
@Path("/htsc/cube/task")
public class FeedBackActionApi extends com.engine.htsc.cube.web.FeedBackAction{
}

@ -0,0 +1,10 @@
package com.api.htsc.cube;
import javax.ws.rs.Path;
/**
*
*/
@Path("/htsc/cube/lookread")
public class LookingReadActionApi extends com.engine.htsc.cube.web.LookingReadAction{
}

@ -0,0 +1,12 @@
package com.api.htsc.cube;
import com.engine.htsc.cube.web.PortalFavouriteAction;
import javax.ws.rs.Path;
/**
*
*/
@Path("/portal")
public class PortalFavoriteApi extends PortalFavouriteAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.dgt.web;
import com.engine.htsc.dgtfw.web.DgtFwControlAction;
import javax.ws.rs.Path;
@Path("/htsc/dgtfw")
public class DgtFwControlActionApi extends DgtFwControlAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.doc;
import com.engine.htsc.doc.web.LetterReadAction;
import javax.ws.rs.Path;
@Path("/htsc/document")
public class LetterReadActionApi extends LetterReadAction {
}

@ -0,0 +1,13 @@
package com.api.htsc.doc;
import com.engine.htsc.doc.web.SendReadAction;
import javax.ws.rs.Path;
/**
* Api
*/
@Path("/htsc/doc/sendRead")
public class SendReadActionApi extends SendReadAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.duban.web;
import com.engine.htsc.duban.web.DubanAction;
import javax.ws.rs.Path;
@Path("/htsc/duban")
public class DubanActionApi extends DubanAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.duban.web;
import com.engine.htsc.duban.web.TaskAction;
import javax.ws.rs.Path;
@Path("/htsc/rwxx")
public class TaskActionApi extends TaskAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.equipment.web;
import com.engine.htsc.equipment.web.EquipmentPurchaseAction;
import javax.ws.rs.Path;
@Path("/equipmentPurchase")
public class EquipmentPurchaseActionApi extends EquipmentPurchaseAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.errorremind;
import com.engine.htsc.errorremind.web.RequestSubmitErrorRemindAction;
import javax.ws.rs.Path;
@Path("/htsc/errorremind")
public class RequestSubmitErrorRemindActionApi extends RequestSubmitErrorRemindAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.financialadjustment;
import com.engine.htsc.financialadjustment.web.FinAjAction;
import javax.ws.rs.Path;
@Path("/financial/adjust")
public class FinAjActionAPi extends FinAjAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.fkxnbm.web;
import com.engine.htsc.fkxnbm.web.FkxnbmAction;
import javax.ws.rs.Path;
@Path("/htsc/fkxnbm")
public class FkxnbmActionApi extends FkxnbmAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.fundbusinesspay;
import com.engine.htsc.fundbusinesspay.web.FundBusinessCubeAction;
import javax.ws.rs.Path;
@Path("/htsc/fundcube/")
public class FundBusinessCubeApi extends FundBusinessCubeAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.fundbusinesspay;
import com.engine.htsc.fundbusinesspay.web.FundBusinessPayAction;
import javax.ws.rs.Path;
@Path("/fdp")
public class FundBusinessPayApi extends FundBusinessPayAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.fwnrTokmbh;
import com.engine.htsc.fwnrTokmbh.web.FwnrToKmbhAction;
import javax.ws.rs.Path;
@Path("/htsc/fwnrtokmbh")
public class FwnrToKmbhActionApi extends FwnrToKmbhAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.fwnrTokmbh;
import com.engine.htsc.fwnrTokmbh.web.GetKmbhTempAction;
import javax.ws.rs.Path;
@Path("/htsc/getkmbhtemp")
public class getKmbhTempAPI extends GetKmbhTempAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.fzjgtravel;
import com.engine.htsc.fzjgtravel.Web.SubsidyAction;
import javax.ws.rs.Path;
@Path("/fzjgtravel")
public class SubsidyActionApi extends SubsidyAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.general;
import com.engine.htsc.general.web.GeneralPaymentLinkController;
import javax.ws.rs.Path;
@Path("/general")
public class GeneralPaymentLinkControllerApi extends GeneralPaymentLinkController {
}

@ -0,0 +1,9 @@
package com.api.htsc.generaltrip;
import com.engine.htsc.generaltrip.web.GeneralTripLinkController;
import javax.ws.rs.Path;
@Path("/generalTrip")
public class GeneralTripLinkControllerApi extends GeneralTripLinkController {
}

@ -0,0 +1,18 @@
package com.api.htsc.glpt;
import com.engine.htsc.glpt.web.CheckStateAction;
import javax.ws.rs.Path;
/**
* @Title: ecology-9
* @Company:
* @author: K1810039
* @version: 1.0
* @CreateDate: 2022-06-13
* @Description: IT/IT线
* @ModifyLog:
**/
@Path("/glptCheckState")
public class CheckStateApi extends CheckStateAction {
}

@ -0,0 +1,11 @@
package com.api.htsc.gsfw.web;
import com.engine.htsc.gsfw.web.CompanyWorkflowAction;
import javax.ws.rs.Path;
@Path("/htsc/company/workflow")
public class CompanyWorkflowActionApi extends CompanyWorkflowAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.gsfw.web;
import com.engine.htsc.gsfw.web.GsFwControlAction;
import javax.ws.rs.Path;
@Path("/htsc/gsfw")
public class GsFwControlActionApi extends GsFwControlAction{
}

@ -0,0 +1,9 @@
package com.api.htsc.gsfw.web;
import com.engine.htsc.gsfw.web.Gsfw_Ifuserjobtool;
import javax.ws.rs.Path;
@Path("/htsc/gsfw/web/IfUserJob")
public class GsFw_IfUserJobToolAction extends Gsfw_Ifuserjobtool {
}

@ -0,0 +1,20 @@
package com.api.htsc.historyfile.web;
import com.engine.htsc.historyfile.web.HtscHistoryFileAction;
import javax.ws.rs.Path;
import java.util.UUID;
/*
* @Author :wanxq
* @Date :2021012910:13:26
* @Version 1.0 :
* @Description :
**/
@Path("/htsc/historyfile")
public class HistoryFileActionApi extends HtscHistoryFileAction {
public static void main(String[] args){
System.out.println("-------------------"+ UUID.randomUUID());
}
}

@ -0,0 +1,21 @@
package com.api.htsc.hrm;
import com.engine.htsc.hrm.web.HrmGroupAction;
import com.engine.htsc.workflow.web.WorkflowTodoAction;
import javax.ws.rs.Path;
import java.util.UUID;
/*
* @Author :wanxq
* @Date :2021012910:13:26
* @Version 1.0 :
* @Description :
**/
@Path("/htsc/hrm/group")
public class HrmGroupActionApi extends HrmGroupAction {
public static void main(String[] args){
System.out.println("-------------------"+ UUID.randomUUID());
}
}

@ -0,0 +1,9 @@
package com.api.htsc.htNoticetRelease;
import com.engine.htsc.htNoticetRelease.web.HTNoticeReleaseAction;
import javax.ws.rs.Path;
@Path("/HTNoticeRelease")
public class HTNoticeReleaseApi extends HTNoticeReleaseAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.hthy;
import com.engine.htsc.hthy.web.HtscMeetingAction;
import javax.ws.rs.Path;
@Path("/htsc/hyxx")
public class htscMeetingcActionApi extends HtscMeetingAction {
}

@ -0,0 +1,11 @@
package com.api.htsc.htjjh.web;
import com.engine.htsc.htjjh.web.HtscFoundationExpAction;
import javax.ws.rs.Path;
@Path("/htsc/htjjh")
public class HtscFoundationExpActionApi extends HtscFoundationExpAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.htxw;
import com.engine.htsc.htxw.web.HtXwControlAction;
import javax.ws.rs.Path;
@Path("/htsc/htxw")
public class HtXwControlApi extends HtXwControlAction {
}

@ -0,0 +1,13 @@
package com.api.htsc.htxw;
import com.engine.htsc.htxw.web.HtXwShowControlAction;
import javax.ws.rs.Path;
/**
* HTO-10521
*
*/
@Path("htsc/newsbulletinboard")
public class HtXwShowControlApi extends HtXwShowControlAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.hyld;
import com.engine.htsc.hyld.web.HyldControlAction;
import javax.ws.rs.Path;
@Path("/htsc/hyld")
public class HyldControlApi extends HyldControlAction {
}

@ -0,0 +1,11 @@
package com.api.htsc.image.web;
import com.engine.htsc.image.web.ImageBase64Action;
import javax.ws.rs.Path;
@Path("/htsc/image")
public class ImageBase64ActionApi extends ImageBase64Action {
}

@ -0,0 +1,18 @@
package com.api.htsc.itTestOnline;
import com.engine.htsc.itTestOnline.web.ItTestOnlineAction;
import javax.ws.rs.Path;
/**
* @Title: ecology-9
* @Company:
* @author: K1810039
* @version: 1.0
* @CreateDate: 2022-06-13
* @Description: IT线id,
* @ModifyLog:
**/
@Path("/getLeaders")
public class ItTestOnlineApi extends ItTestOnlineAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.itcglc.web;
import com.engine.htsc.itcglc.web.ItcglcAction;
import javax.ws.rs.Path;
@Path("/htsc/itcglc")
public class ItcglcActionApi extends ItcglcAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.itcssx.web;
import com.engine.htsc.itcssx.web.ITTestOnlineAction;
import javax.ws.rs.Path;
@Path("/itTestOnline")
public class ITTestOnlineActionApi extends ITTestOnlineAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.itlxlc.web;
import com.engine.htsc.itlxlc.web.ItlxlcAction;
import javax.ws.rs.Path;
@Path("/htsc/itlxlc")
public class ItlxlcActionApi extends ItlxlcAction {
}

@ -0,0 +1,20 @@
package com.api.htsc.itxqglpt;
import com.engine.htsc.itxqglpt.web.itxqglptAction;
import com.engine.htsc.itxqlc.web.ItDemandApplyAction;
import javax.ws.rs.Path;
/**
* @Title: ecology-9
* @Company:
* @author: K1810039
* @version: 1.0
* @CreateDate: 2022-08-19
* @Description: IT
* @ModifyLog:
**/
@Path("/htsc/itxqglpt")
public class itxqglptActionApi extends itxqglptAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.itxqlc;
import com.engine.htsc.itxqlc.web.ItDemandApplyAction;
import javax.ws.rs.Path;
@Path("/htsc/demand")
public class ItDemandApplyActionApi extends ItDemandApplyAction {
}

@ -0,0 +1,11 @@
package com.api.htsc.itxqlc;
import com.engine.htsc.itxqlc.web.ItxqlcAction;
import javax.ws.rs.Path;
@Path("/htsc/itxqlc")
public class ItxqlcActionApi extends ItxqlcAction {
}

@ -0,0 +1,10 @@
package com.api.htsc.ityssq.web;
import com.engine.htsc.ityssq.web.ItAcceptanceApplyAction;
import javax.ws.rs.Path;
@Path("/htsc/acceptance")
public class ItAcceptanceApplyActionApi extends ItAcceptanceApplyAction {
}

@ -0,0 +1,11 @@
package com.api.htsc.ityssq.web;
import com.engine.htsc.ityssq.web.ItxqsqAction;
import javax.ws.rs.Path;
@Path("/htsc/ityssq")
public class ItyssqActionApi extends ItxqsqAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.jgxt.web;
import com.engine.htsc.jgxt.web.JgxtVfAction;
import javax.ws.rs.Path;
@Path("/jgxt")
public class JgxtVfActionApi extends JgxtVfAction {
}

@ -0,0 +1,15 @@
package com.api.htsc.jgzxzysx;
import com.engine.htsc.jgzxzysx.web.JgzxzysxAction;
import javax.ws.rs.Path;
/**
* @author K1810015
* @version 1.0.0
* @ClassName JJgzxzysxActionApi.java
* @createTime 20220511 14:40:00
*/
@Path("/jgzxzysx")
public class JgzxzysxActionApi extends JgzxzysxAction {
}

@ -0,0 +1,15 @@
package com.api.htsc.jjhtyfk;
import com.engine.htsc.jjhtyfk.web.GetContractInfoAction;
import javax.ws.rs.Path;
/**
* @Author Weaver.SongYuchen
* @Date 2022-03-31
* @Description
*/
@Path("/jjhtyfk")
public class GetContractInfoActionApi extends GetContractInfoAction {
}

@ -0,0 +1,16 @@
package com.api.htsc.jjhyy.web;
import com.engine.htsc.jjhyy.web.JjhyySealBaseAction;
import com.engine.htsc.seal.jjhyy.JjhyySealAction;
import javax.ws.rs.Path;
/**
* @author K1810015
* @version 1.0.0
* @ClassName jjhyySealActionApi.java
* @createTime 20220317 15:50:00
*/
@Path("/jjhyy")
public class jjhyyBaseActionApi extends JjhyySealBaseAction {
}

@ -0,0 +1,15 @@
package com.api.htsc.jjhyy.web;
import com.engine.htsc.seal.jjhyy.JjhyySealAction;
import javax.ws.rs.Path;
/**
* @author K1810015
* @version 1.0.0
* @ClassName jjhyySealActionApi.java
* @createTime 20220317 15:50:00
*/
@Path("/jjheseal")
public class jjhyySealActionApi extends JjhyySealAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.langchaoPDF;
import com.engine.htsc.langchaoPDF.web.LangChaoPDFAction;
import javax.ws.rs.Path;
@Path("/htsc/langchao")
public class LangChaoPDFActionApi extends LangChaoPDFAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.lhccsq;
import com.engine.htsc.lhccsq.web.ComputeTravelSubsidy;
import javax.ws.rs.Path;
@Path("/htsc/lhccsq")
public class ComputeSubsidyApi extends ComputeTravelSubsidy {
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save