2024-11-04 15:32:41 +00:00
|
|
|
|
package shkd.utils;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import kd.bos.context.RequestContext;
|
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
|
|
import okhttp3.MediaType;
|
|
|
|
|
import okhttp3.RequestBody;
|
|
|
|
|
import okio.ByteString;
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
public class DobeDWUtils {
|
|
|
|
|
//数仓和用友相关的工具类 数仓和用友接口url和appcode在此申明
|
|
|
|
|
//数仓接口的appCode 可能会更换
|
|
|
|
|
public static final String appCode = "AppCode 895894e0-73de-40a9-9b1f-e87fe35a13fd";
|
|
|
|
|
//数仓接口地址基本信息
|
|
|
|
|
public static final String dwUrl = "https://wedc.dobechina.com/webroot/service/publish/7e9d818c-43c0-47cf-ad4c-40c66b92bb34/";
|
|
|
|
|
public static final MediaType MTJSON = MediaType.get("application/json");
|
|
|
|
|
|
|
|
|
|
//授权模式,客户端模式为client,密码模式为:password
|
|
|
|
|
// public static final String granttype = "client_credentials";
|
2024-11-16 04:58:01 +00:00
|
|
|
|
//BIP第三方应用id,对应系统中的app_id
|
2024-11-04 15:32:41 +00:00
|
|
|
|
public static final String clientid = "ISC";
|
2024-11-16 04:58:01 +00:00
|
|
|
|
//BIP 第三方应用秘钥,对请求加签使用
|
|
|
|
|
public static final String clientsecret = "cb729cf706934e97aa84";
|
2024-11-04 15:32:41 +00:00
|
|
|
|
//访问的BIP系统的账套code
|
|
|
|
|
public static final String bizcenter = "01";
|
2024-11-16 04:58:01 +00:00
|
|
|
|
//BIP公钥,加解密使用
|
|
|
|
|
public static final String pubKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8cLD7SZ8W15DF+XZ5+WURaxFP6TBvUG6fabTEh5oV2NFdsowuS88fFUx3rh0KqWQ3VtRRCVjHgGBuPIDakEZ8rn+kDq3BV10+ihJunuqqP/LBSr4Y2JYHj6vqwYw6K3raH4li/sAR02rQdoR922OU2bPxc3BlLTA0yLFqjo/3/Bf8DvYIo/yZ+enK1glK6SYVX7+dLv2a8sWb2MtUDm7JXW14rqwuO9dwlTTBTbrZ3AKubvaE7qXXqbJdYDLGTiLSD2mXJa7vwO+6ZTQJDN4sJUCeFchNMeB2xIjzbV3ZpL75xKPbbRnhANpswiaRN5OhtQcUKK3Y0+TRiihfIc3RQIDAQAB";
|
2024-11-04 15:32:41 +00:00
|
|
|
|
//用友接口IP地址
|
|
|
|
|
public static final String yyip = "106.14.25.83";
|
|
|
|
|
//用友接口端口
|
|
|
|
|
public static final String yyport = "9999";
|
|
|
|
|
//用友付款单新增接口
|
|
|
|
|
public static final String payUrl = "http://106.14.25.83:9999/nccloud/api/arap/paybill/insertandcommit";
|
|
|
|
|
//付款金额查询接口
|
|
|
|
|
public static final String payQueryUrl = "http://106.14.25.83:9999/nccloud/api/sp/spPaybillQuery/querySettleStatus";
|
|
|
|
|
|
|
|
|
|
private static final String jklogEntityName = "qeug_recon_jklog";
|
|
|
|
|
|
|
|
|
|
public static boolean isEmpty(String value) {
|
|
|
|
|
return value == null || value.trim().length() <= 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String[] getCompanyDeptNumber(String bizDept){
|
|
|
|
|
//根据用款部门的编号获得对应关系表中的财务公司编号和部门编号
|
|
|
|
|
DynamicObject orginfo = BusinessDataServiceHelper.loadSingle("qeug_recon_orgrelation",new QFilter[]{new QFilter("number","=",bizDept)});
|
|
|
|
|
String[] result = new String[3];
|
|
|
|
|
if(orginfo != null){
|
|
|
|
|
result[0] = orginfo.getString("qeug_companynumber");//财务公司编号
|
|
|
|
|
result[1] = orginfo.getString("qeug_deptnumber");//财务部门编号
|
|
|
|
|
result[2] = orginfo.getString("qeug_paynumber");//财务公司付款账户
|
|
|
|
|
// result[2] = "03002635967";
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void saveLog(String billno,String jkname,String inputs,String outputs,boolean isSuccess,String operation){
|
|
|
|
|
//保存星瀚与第三方接口调用之间的日志记录
|
|
|
|
|
//参数说明:单据编号、接口名称、接口入参、接口返回值、接口执行结果是否成功、操作名称(audit、unaudit等)
|
|
|
|
|
DynamicObject billinfo = BusinessDataServiceHelper.newDynamicObject(jklogEntityName);
|
|
|
|
|
billinfo.set("number",billno);
|
|
|
|
|
billinfo.set("name",jkname);
|
|
|
|
|
billinfo.set("qeug_inputs_tag",inputs);//大文本赋值,标识后加_tag 是内容,不加是文本标题
|
|
|
|
|
billinfo.set("qeug_outputs_tag",outputs);
|
|
|
|
|
billinfo.set("qeug_issuccess",isSuccess);
|
|
|
|
|
billinfo.set("qeug_operation",operation);
|
|
|
|
|
billinfo.set("status","A"); //单据状态默认暂存
|
|
|
|
|
long currUserId = RequestContext.get().getCurrUserId();//当前用户 creator
|
|
|
|
|
billinfo.set("creator",currUserId);
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{billinfo});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String getDateString(Date billDate){
|
|
|
|
|
//创建一个SimpleDateFormat对象,定义目标日期格式
|
|
|
|
|
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
|
|
|
//格式化Date对象为新的字符串格式
|
|
|
|
|
if(billDate == null){
|
|
|
|
|
return targetFormat.format(new Date());
|
|
|
|
|
}
|
|
|
|
|
return targetFormat.format(billDate);
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-09 02:41:01 +00:00
|
|
|
|
public static String getCurrentDateString(){
|
|
|
|
|
//创建一个SimpleDateFormat对象,定义目标日期格式
|
|
|
|
|
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
//格式化Date对象为新的字符串格式
|
|
|
|
|
return targetFormat.format(new Date());
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-04 15:32:41 +00:00
|
|
|
|
public static int getQueryCount(int totalNum){
|
|
|
|
|
//根据入参 计算总查询次数
|
|
|
|
|
//先判断大小,如果小于固定条数300,则返回1
|
|
|
|
|
if(300 >= totalNum){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
//再取余数,如果余数大于零,则返回1+商
|
|
|
|
|
int ys = totalNum % 300;
|
|
|
|
|
if(ys > 0){
|
|
|
|
|
return totalNum / 300 + 1;
|
|
|
|
|
}else{
|
|
|
|
|
return totalNum / 300;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static RequestBody createRequestBody(String params, int pageNum) {
|
|
|
|
|
JSONObject json_body = new JSONObject();
|
|
|
|
|
JSONObject json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("pageSize","300");//一页总条数固定为300
|
|
|
|
|
if("account".equals(params)){
|
|
|
|
|
//如果是成本科目或者会计科目,不进行多次取数,默认设置3000长度,一次取完
|
|
|
|
|
json_detail.put("pageSize","3000");
|
|
|
|
|
}
|
|
|
|
|
json_detail.put("pageNum",pageNum);
|
|
|
|
|
json_body.put("paging",json_detail);
|
|
|
|
|
if("person".equals(params)){
|
|
|
|
|
JSONArray ps = new JSONArray();
|
|
|
|
|
JSONObject psjson = new JSONObject();
|
|
|
|
|
psjson.put("name","entry_type");
|
|
|
|
|
psjson.put("value","");
|
|
|
|
|
ps.add(psjson);
|
|
|
|
|
|
|
|
|
|
psjson = new JSONObject();
|
|
|
|
|
psjson.put("name","employ_status");
|
|
|
|
|
psjson.put("value","");
|
|
|
|
|
ps.add(psjson);
|
|
|
|
|
|
|
|
|
|
psjson = new JSONObject();
|
|
|
|
|
psjson.put("name","s_date");
|
|
|
|
|
psjson.put("value","");
|
|
|
|
|
ps.add(psjson);
|
|
|
|
|
|
|
|
|
|
psjson = new JSONObject();
|
|
|
|
|
psjson.put("name","e_date");
|
|
|
|
|
psjson.put("value","");
|
|
|
|
|
ps.add(psjson);
|
|
|
|
|
json_body.put("params",ps);
|
|
|
|
|
}else if("project".equals(params) || "account".equals(params)){
|
|
|
|
|
JSONArray ps = new JSONArray();
|
|
|
|
|
JSONObject psjson = new JSONObject();
|
|
|
|
|
psjson = new JSONObject();
|
|
|
|
|
psjson.put("name","s_time");
|
|
|
|
|
psjson.put("value","");
|
|
|
|
|
ps.add(psjson);
|
|
|
|
|
|
|
|
|
|
psjson = new JSONObject();
|
|
|
|
|
psjson.put("name","e_time");
|
2024-11-09 02:41:01 +00:00
|
|
|
|
psjson.put("value",getDateString(null));
|
2024-11-04 15:32:41 +00:00
|
|
|
|
ps.add(psjson);
|
|
|
|
|
json_body.put("params",ps);
|
|
|
|
|
}else{
|
|
|
|
|
json_body.put("params",new JSONArray());
|
|
|
|
|
}
|
|
|
|
|
//如下写法创建的请求只是json格式,不带charset-utf8,有些接口控制了这两者区别,故需要特别指定
|
|
|
|
|
return RequestBody.create(ByteString.encodeUtf8(json_body.toJSONString()), MTJSON);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String getTestOrgString(){
|
|
|
|
|
JSONObject json_body = new JSONObject();
|
|
|
|
|
json_body.put("totalNum","1");
|
|
|
|
|
JSONObject json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("org_code","test001-01");
|
|
|
|
|
json_detail.put("org_name","test接口修改组织");
|
|
|
|
|
json_detail.put("org_id","1234567890");
|
|
|
|
|
json_detail.put("org_parentid","111110101011");
|
|
|
|
|
json_detail.put("org_shortname","test修改");
|
|
|
|
|
|
|
|
|
|
JSONArray array = new JSONArray();
|
|
|
|
|
array.add(json_detail);
|
|
|
|
|
|
|
|
|
|
// JSONObject json_detail1 = new JSONObject();
|
|
|
|
|
// json_detail1.put("org_code","test002");
|
|
|
|
|
// json_detail1.put("org_name","test接口新增组织2");
|
|
|
|
|
// json_detail1.put("org_id","1234567891");
|
|
|
|
|
// json_detail1.put("org_parentid","111110101011");
|
|
|
|
|
// json_detail1.put("org_shortname","test2");
|
|
|
|
|
// array.add(json_detail1);
|
|
|
|
|
|
|
|
|
|
json_body.put("data",array);
|
|
|
|
|
return json_body.toJSONString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String getTestAcct(){
|
|
|
|
|
JSONObject json_body = new JSONObject();
|
|
|
|
|
json_body.put("totalNum","1");
|
|
|
|
|
json_body.put("projectnumber","test0667");
|
|
|
|
|
JSONObject json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("accid","100003");
|
|
|
|
|
json_detail.put("parentid","");
|
|
|
|
|
json_detail.put("number","01");
|
|
|
|
|
json_detail.put("name","ziji科目1");
|
|
|
|
|
json_detail.put("longnumber","01");
|
|
|
|
|
json_detail.put("longname","ziji科目1");
|
|
|
|
|
json_detail.put("ciaccountflag","1");
|
|
|
|
|
json_detail.put("taxrate","6");
|
|
|
|
|
json_detail.put("isleaf","1");
|
|
|
|
|
json_detail.put("level","2");
|
|
|
|
|
|
|
|
|
|
JSONArray array = new JSONArray();
|
|
|
|
|
array.add(json_detail);
|
|
|
|
|
|
|
|
|
|
json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("accid","100004");
|
|
|
|
|
json_detail.put("parentid","100003");
|
|
|
|
|
json_detail.put("number","02");
|
|
|
|
|
json_detail.put("name","ziji科目2");
|
|
|
|
|
json_detail.put("longnumber","02");
|
|
|
|
|
json_detail.put("longname","ziji科目2");
|
|
|
|
|
json_detail.put("ciaccountflag","1");
|
|
|
|
|
json_detail.put("taxrate","3");
|
|
|
|
|
json_detail.put("isleaf","1");
|
|
|
|
|
json_detail.put("level","2");
|
|
|
|
|
|
|
|
|
|
array.add(json_detail);
|
|
|
|
|
|
|
|
|
|
json_body.put("data",array);
|
|
|
|
|
return json_body.toJSONString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String getTestProject(){
|
|
|
|
|
JSONObject json_body = new JSONObject();
|
|
|
|
|
json_body.put("totalNum","1");
|
|
|
|
|
JSONObject json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("fbillno","test0667");
|
|
|
|
|
json_detail.put("fbillname","test接口项目");
|
|
|
|
|
json_detail.put("fversionnum","gs006");
|
|
|
|
|
json_detail.put("forgid","111110101011");
|
|
|
|
|
json_detail.put("fisleaf","1");
|
|
|
|
|
json_detail.put("fprojectstageid","拿地阶段");
|
|
|
|
|
|
|
|
|
|
JSONArray array = new JSONArray();
|
|
|
|
|
array.add(json_detail);
|
|
|
|
|
|
|
|
|
|
// JSONObject json_detail1 = new JSONObject();
|
|
|
|
|
// json_detail1.put("org_code","test002");
|
|
|
|
|
// json_detail1.put("org_name","test接口新增组织2");
|
|
|
|
|
// json_detail1.put("org_id","1234567891");
|
|
|
|
|
// json_detail1.put("org_parentid","111110101011");
|
|
|
|
|
// json_detail1.put("org_shortname","test2");
|
|
|
|
|
// array.add(json_detail1);
|
|
|
|
|
|
|
|
|
|
json_body.put("data",array);
|
|
|
|
|
return json_body.toJSONString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String getTestOrgRelation(){
|
|
|
|
|
JSONObject json_body = new JSONObject();
|
|
|
|
|
json_body.put("totalNum","1");
|
|
|
|
|
JSONObject json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("orgNumber","test0667");
|
|
|
|
|
json_detail.put("orgName","test接口修改组织66");
|
|
|
|
|
json_detail.put("companyNumber","gs006");
|
|
|
|
|
json_detail.put("companyName","接口测试财务公司6");
|
|
|
|
|
json_detail.put("deptNumber","caiwudept2");
|
|
|
|
|
json_detail.put("deptName","财务部门2");
|
|
|
|
|
|
|
|
|
|
JSONArray array = new JSONArray();
|
|
|
|
|
array.add(json_detail);
|
|
|
|
|
|
|
|
|
|
// JSONObject json_detail1 = new JSONObject();
|
|
|
|
|
// json_detail1.put("org_code","test002");
|
|
|
|
|
// json_detail1.put("org_name","test接口新增组织2");
|
|
|
|
|
// json_detail1.put("org_id","1234567891");
|
|
|
|
|
// json_detail1.put("org_parentid","111110101011");
|
|
|
|
|
// json_detail1.put("org_shortname","test2");
|
|
|
|
|
// array.add(json_detail1);
|
|
|
|
|
|
|
|
|
|
json_body.put("data",array);
|
|
|
|
|
return json_body.toJSONString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String getTestUserString(){
|
|
|
|
|
JSONObject json_body = new JSONObject();
|
|
|
|
|
json_body.put("totalNum","1");
|
|
|
|
|
JSONObject json_detail = new JSONObject();
|
|
|
|
|
json_detail.put("user_id", "1234567800");//人员id
|
|
|
|
|
json_detail.put("user_code", "10000001");//人员编码
|
|
|
|
|
json_detail.put("user_name", "张三三");//姓名
|
|
|
|
|
json_detail.put("username", "用户名");//用户名
|
|
|
|
|
json_detail.put("usertype", "1");//用户类型1:
|
|
|
|
|
json_detail.put("employ_status", "0");//在职状态
|
|
|
|
|
json_detail.put("mobile_phone", "13800000011");//手机号
|
|
|
|
|
json_detail.put("email", "email11@kingdee.com");//电子邮箱
|
|
|
|
|
json_detail.put("idcard", "");//身份证
|
|
|
|
|
json_detail.put("birthday", "1993-8-8");//生日
|
|
|
|
|
json_detail.put("gender", "1");//性别1男 0女
|
|
|
|
|
json_detail.put("department_id", "1234567890");
|
|
|
|
|
json_detail.put("jobposition", "项目经理");
|
|
|
|
|
|
|
|
|
|
JSONArray array = new JSONArray();
|
|
|
|
|
array.add(json_detail);
|
|
|
|
|
|
|
|
|
|
// JSONObject json_detail1 = new JSONObject();
|
|
|
|
|
// json_detail1.put("org_code","test002");
|
|
|
|
|
// json_detail1.put("org_name","test接口新增组织2");
|
|
|
|
|
// json_detail1.put("org_id","1234567891");
|
|
|
|
|
// json_detail1.put("org_parentid","111110101011");
|
|
|
|
|
// json_detail1.put("org_shortname","test2");
|
|
|
|
|
// array.add(json_detail1);
|
|
|
|
|
|
|
|
|
|
json_body.put("data",array);
|
|
|
|
|
return json_body.toJSONString();
|
|
|
|
|
}
|
|
|
|
|
}
|