dobe_comic8/main/java/shkd/utils/DobeDWUtils.java

310 lines
13 KiB
Java
Raw Normal View History

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";
//BIP第三方应用id对应系统中的app_id
2024-11-04 15:32:41 +00:00
public static final String clientid = "ISC";
//BIP 第三方应用秘钥,对请求加签使用
public static final String clientsecret = "cb729cf706934e97aa84";
2024-11-04 15:32:41 +00:00
//访问的BIP系统的账套code
public static final String bizcenter = "01";
//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);
}
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");
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();
}
}