|
@@ -25,6 +25,7 @@ import kd.bos.servicehelper.AttachmentServiceHelper;
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
import kd.bos.servicehelper.QueryServiceHelper;
|
|
import kd.bos.servicehelper.QueryServiceHelper;
|
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
|
|
+import kd.bos.servicehelper.org.OrgUnitServiceHelper;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
@@ -36,7 +37,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 提供给合同系统的新增/更新接口,对应星瀚合同台账单er_contractbill
|
|
|
|
|
|
|
+ * 提供给合同系统的新增/更新接口,对应星瀚合同台账单 er_contractbill
|
|
|
* api编码:contract/uploadFileTemp (附件上传接口)
|
|
* api编码:contract/uploadFileTemp (附件上传接口)
|
|
|
* api编码:contract/saveContract (合同单据接口)
|
|
* api编码:contract/saveContract (合同单据接口)
|
|
|
*
|
|
*
|
|
@@ -98,7 +99,7 @@ public class ContractbillApiPlugin implements Serializable {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // fapplierid 经办人:员工编码_名称 ,由根据人员信息带出主职的公司、部门、职位、手机
|
|
|
|
|
|
|
+ // fapplierid 经办人:入参格式 员工编码_名称 ,由根据人员信息带出主职的公司、部门、职位、手机
|
|
|
String fapplierid = (String)billData.get("applierid");
|
|
String fapplierid = (String)billData.get("applierid");
|
|
|
if (StringUtils.isEmpty(fapplierid)) {
|
|
if (StringUtils.isEmpty(fapplierid)) {
|
|
|
result.setMessage("经办人fapplierid未传值");
|
|
result.setMessage("经办人fapplierid未传值");
|
|
@@ -106,12 +107,54 @@ public class ContractbillApiPlugin implements Serializable {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
String gonghao = fapplierid.split("_")[0]; // 提取员工工号
|
|
String gonghao = fapplierid.split("_")[0]; // 提取员工工号
|
|
|
- DynamicObject applicatuser = BusinessDataServiceHelper.loadSingle("bos_user","id,name,number,phone",new QFilter[]{new QFilter("number",QCP.equals,gonghao)});
|
|
|
|
|
|
|
+ // dpt 部门,ispartjob 兼职,position 职位
|
|
|
|
|
+ DynamicObject applicatuser = BusinessDataServiceHelper.loadSingle("bos_user","id,name,number,phone,entryentity,entryentity.dpt,entryentity.ispartjob,entryentity.position",new QFilter[]{new QFilter("number",QCP.equals,gonghao)});
|
|
|
if (applicatuser == null) {
|
|
if (applicatuser == null) {
|
|
|
result.setMessage("经办人工号未在星瀚系统出现");
|
|
result.setMessage("经办人工号未在星瀚系统出现");
|
|
|
result.setStatus(false);
|
|
result.setStatus(false);
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ DynamicObjectCollection bumenlist = applicatuser.getDynamicObjectCollection("entryentity"); // 分录部门信息
|
|
|
|
|
+ if (bumenlist == null || bumenlist.size() == 0) {
|
|
|
|
|
+ result.setMessage("经办人未在星瀚系统人员中维护部门信息");
|
|
|
|
|
+ result.setStatus(false);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+ boolean haveZhuZhi = false; // 是否有主任职
|
|
|
|
|
+ DynamicObject bumen = null; // 部门
|
|
|
|
|
+ String zhiwei = " "; // 职位
|
|
|
|
|
+ for (DynamicObject dynamicObject : bumenlist) {
|
|
|
|
|
+ boolean ispartjob = dynamicObject.getBoolean("ispartjob");// 兼职: 字符串 1 是,0 否
|
|
|
|
|
+ if (!ispartjob) {
|
|
|
|
|
+ // 非兼职
|
|
|
|
|
+ haveZhuZhi = true;
|
|
|
|
|
+ bumen = dynamicObject.getDynamicObject("dpt");
|
|
|
|
|
+ zhiwei = dynamicObject.getString("position");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (haveZhuZhi == false) {
|
|
|
|
|
+ result.setMessage("经办人未在星瀚系统人员部门信息无主任职记录");
|
|
|
|
|
+ result.setStatus(false);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (bumen == null) {
|
|
|
|
|
+ result.setMessage("经办人在星瀚系统人员部门信息无部门值");
|
|
|
|
|
+ result.setStatus(false);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 通过部门查公司
|
|
|
|
|
+ QFilter qFilterGs = new QFilter("number", "=", bumen.get("number"));
|
|
|
|
|
+ DynamicObject[] costdept = BusinessDataServiceHelper.load("bos_adminorg", "id,name,number", new QFilter[]{qFilterGs}); // bos_adminorg行政组织
|
|
|
|
|
+ Map<String, Object> companyInfoMap = OrgUnitServiceHelper.getCompanyfromOrg(costdept[0].get("id"));
|
|
|
|
|
+ DynamicObject org = BusinessDataServiceHelper.loadSingle(companyInfoMap.get("id"),"bos_org"); // 公司对象
|
|
|
|
|
+ if (org == null) {
|
|
|
|
|
+ result.setMessage("在星瀚系统未查询到经办人的公司信息");
|
|
|
|
|
+ result.setStatus(false);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 合同号(原始)
|
|
// 合同号(原始)
|
|
|
String fcontractcode = (String)billData.get("contractcode");
|
|
String fcontractcode = (String)billData.get("contractcode");
|
|
|
if (StringUtils.isEmpty(fapplierid)) {
|
|
if (StringUtils.isEmpty(fapplierid)) {
|
|
@@ -237,7 +280,11 @@ public class ContractbillApiPlugin implements Serializable {
|
|
|
result.setStatus(false);
|
|
result.setStatus(false);
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
- dynamicObject.set("company",company); // 公司
|
|
|
|
|
|
|
+ dynamicObject.set("costcompany",company); // 核算组织
|
|
|
|
|
+ dynamicObject.set("company",org); // 公司,取经办人的公司(例如:上海济煜医药)
|
|
|
|
|
+ dynamicObject.set("org",bumen); // 经办人部门,取经办人的主岗部门
|
|
|
|
|
+ dynamicObject.set("costdept",bumen); // 费用承担部门,取经办人的主岗部门
|
|
|
|
|
+ dynamicObject.set("applierpositionstr",zhiwei); // 经办人职位
|
|
|
|
|
|
|
|
DynamicObject stdbilltype = BusinessDataServiceHelper.loadSingle("bos_billtype","id,name",new QFilter[]{new QFilter("number",QCP.equals,"er_contractbill_BT_S")});
|
|
DynamicObject stdbilltype = BusinessDataServiceHelper.loadSingle("bos_billtype","id,name",new QFilter[]{new QFilter("number",QCP.equals,"er_contractbill_BT_S")});
|
|
|
dynamicObject.set("stdbilltype",stdbilltype); // 单据类型:基础资料 合同台账
|
|
dynamicObject.set("stdbilltype",stdbilltype); // 单据类型:基础资料 合同台账
|
|
@@ -248,7 +295,6 @@ public class ContractbillApiPlugin implements Serializable {
|
|
|
dynamicObject.set("contractcode",fcontractcode); // 合同号
|
|
dynamicObject.set("contractcode",fcontractcode); // 合同号
|
|
|
dynamicObject.set("contractname",fcontractname); // 合同名称
|
|
dynamicObject.set("contractname",fcontractname); // 合同名称
|
|
|
|
|
|
|
|
- dynamicObject.set("costcompany",company); // 核算组织
|
|
|
|
|
try {
|
|
try {
|
|
|
dynamicObject.set("signdate",sdf.parse(fsigndate)); // 签订日期
|
|
dynamicObject.set("signdate",sdf.parse(fsigndate)); // 签订日期
|
|
|
// dynamicObject.set("changedate",sdf.parse(fstartdate)); // 变更日期
|
|
// dynamicObject.set("changedate",sdf.parse(fstartdate)); // 变更日期
|
|
@@ -306,8 +352,6 @@ public class ContractbillApiPlugin implements Serializable {
|
|
|
}
|
|
}
|
|
|
dynamicObject.set("changerate",huilv); // 汇率(需根据币别查询最新汇率)
|
|
dynamicObject.set("changerate",huilv); // 汇率(需根据币别查询最新汇率)
|
|
|
|
|
|
|
|
- dynamicObject.set("org",company);// 经办人部门
|
|
|
|
|
- dynamicObject.set("costdept",company);// 费用承担部门
|
|
|
|
|
dynamicObject.set("applier",applicatuser); // 经办人
|
|
dynamicObject.set("applier",applicatuser); // 经办人
|
|
|
dynamicObject.set("modifier",applicatuser); // 修改人
|
|
dynamicObject.set("modifier",applicatuser); // 修改人
|
|
|
dynamicObject.set("modifytime",new Date()); // 修改时间
|
|
dynamicObject.set("modifytime",new Date()); // 修改时间
|
|
@@ -451,9 +495,12 @@ public class ContractbillApiPlugin implements Serializable {
|
|
|
newEntry3.set("expenseitem",feiyongproject); // 费用项目
|
|
newEntry3.set("expenseitem",feiyongproject); // 费用项目
|
|
|
|
|
|
|
|
// 项目
|
|
// 项目
|
|
|
- String std_project = jsb.getString("projectid");
|
|
|
|
|
- DynamicObject project = BusinessDataServiceHelper.loadSingle("bd_project","id,name",new QFilter[]{new QFilter("number",QCP.equals,std_project)});
|
|
|
|
|
- newEntry3.set("std_project",project);
|
|
|
|
|
|
|
+ String std_project = jsb.getString("projectid"); // 项目编码
|
|
|
|
|
+ DynamicObject[] projectList = BusinessDataServiceHelper.load("bd_project", "id,name", new QFilter[]{new QFilter("number", QCP.equals, std_project)});
|
|
|
|
|
+ if (projectList != null && projectList.length > 0) {
|
|
|
|
|
+ newEntry3.set("std_project",projectList[0]);
|
|
|
|
|
+ dynamicObject.set("nckd_project", projectList[0]); // 头表项目字段
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
newEntry3.set("entrycurrency",bizhong); // 分录币别(和头表一致)
|
|
newEntry3.set("entrycurrency",bizhong); // 分录币别(和头表一致)
|
|
|
|
|
|