From 4c7aaf9594fcb0bb49abd55e565be36a93e55d36 Mon Sep 17 00:00:00 2001 From: qijirenjian Date: Fri, 7 Feb 2025 16:47:47 +0800 Subject: [PATCH] webservice new --- .../AutoCreateWorkflowEncService.java | 2 +- .../AutoCreateWorkflowService.java | 168 ++++++++------ .../BillingApplicationService.java | 146 ++++++++++++ .../seconddev/njwebservice/DemoService.java | 118 +++++++--- .../DiscountApplicationService.java | 133 +++++++++++ .../DiscountedInvoiceApplicationService.java | 142 ++++++++++++ .../EasTzlhtSpzfApplicationService.java | 74 ++++++ .../njwebservice/MeetingService.java | 52 +++++ .../njwebservice/OutToDoWorkflowService.java | 101 ++++++++ .../VendorPunishApplicationService.java | 114 ++++++++++ .../njwebservice/WlpsSyGetResService.java | 56 +++++ .../njwebservice/WorkplanService.java | 33 +++ .../entity/BillingApplicationReq.java | 64 ++++++ .../entity/BillingApplicationResItem.java | 49 ++++ .../entity/DiscountApplicationReq.java | 46 ++++ .../entity/DiscountApplicationReqItem.java | 31 +++ .../entity/DiscountedInvoiceInfoReq.java | 64 ++++++ .../entity/EasSpzfResponseInfo.java | 34 +++ .../njwebservice/entity/EasTzlhtSpzfRes.java | 31 +++ .../entity/EasTzlhtSpzfResData.java | 36 +++ .../njwebservice/entity/MeetingParam.java | 21 ++ .../njwebservice/entity/MeetingReq.java | 20 ++ .../njwebservice/entity/MeetingRes.java | 23 ++ .../njwebservice/entity/MeetingReturn.java | 31 +++ .../njwebservice/entity/ResponseInfo.java | 49 ++++ .../entity/SubmitWorkflowParam.java | 2 +- .../njwebservice/entity/ToDoCountReq.java | 25 ++ .../njwebservice/entity/ToDoRequestReq.java | 31 +++ .../njwebservice/entity/ToDoRequestRes.java | 26 +++ .../njwebservice/entity/ToDoWorkFlow.java | 149 ++++++++++++ .../njwebservice/entity/UserWorkPlan.java | 215 ++++++++++++++++++ .../njwebservice/entity/VendorPunishReq.java | 29 +++ .../entity/VendorPunishReqData.java | 32 +++ .../entity/VendorPunishResponseInfo.java | 30 +++ .../entity/VendorPunishReturnData.java | 29 +++ .../njwebservice/entity/WlpsSyResponse.java | 33 +++ .../njwebservice/entity/WlpsSyReturn.java | 30 +++ .../njwebservice/util/DataSetUtil.java | 2 +- .../njwebservice/util/SecondUtil.java | 194 +++++++++++++++- 39 files changed, 2362 insertions(+), 103 deletions(-) create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/BillingApplicationService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/DiscountApplicationService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/DiscountedInvoiceApplicationService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/EasTzlhtSpzfApplicationService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/MeetingService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/OutToDoWorkflowService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/VendorPunishApplicationService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/WlpsSyGetResService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/WorkplanService.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/BillingApplicationReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/BillingApplicationResItem.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/DiscountApplicationReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/DiscountApplicationReqItem.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/DiscountedInvoiceInfoReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/EasSpzfResponseInfo.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/EasTzlhtSpzfRes.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/EasTzlhtSpzfResData.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/MeetingParam.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/MeetingReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/MeetingRes.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/MeetingReturn.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/ResponseInfo.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/ToDoCountReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/ToDoRequestReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/ToDoRequestRes.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/ToDoWorkFlow.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/UserWorkPlan.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/VendorPunishReq.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/VendorPunishReqData.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/VendorPunishResponseInfo.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/VendorPunishReturnData.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/WlpsSyResponse.java create mode 100644 secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/entity/WlpsSyReturn.java diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowEncService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowEncService.java index 474911b..7511db4 100644 --- a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowEncService.java +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowEncService.java @@ -35,7 +35,7 @@ public class AutoCreateWorkflowEncService { String var5 = var1.getDATAS().getCreator(); String var6 = var1.getDATAS().getRequestLevel(); String var7 = var1.getDATAS().getMainTable(); - String var8 = var1.getDATAS().getDetailTables(); + String[] var8 = var1.getDATAS().getDetailTables(); String var9 = var1.getSYSID(); log.error("var9 : " + var9); diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowService.java index f0f9cb8..fc24854 100644 --- a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowService.java +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/AutoCreateWorkflowService.java @@ -50,12 +50,17 @@ public class AutoCreateWorkflowService { private static final String HOST = "http://10.6.23.235:20600/papi/openapi"; - public String createWorkflow(String loginName, String password, String workflowId, String creator, String requestLevel, String mainTable , String detailTables){ + public String createWorkflow(String loginName, String password, String workflowId, String creator, String requestLevel, String mainTable , String[] detailTables){ log.error("AutoCreateWorkflowService start"); log.error("loginName:"+loginName+"=> password:"+password+"=> workflowId:"+workflowId+"=> creator:"+creator); //实现自定义webservice接口逻辑 String currentDate = DateUtils.getCurrentDate(); String curDateTime = DateUtils.getCurDateTime(); + log.error("明细表数据detailTables:"+detailTables); + String detailTablesStr = String.join(",", detailTables); + + log.error("明细表数据:"+detailTablesStr); + String workcode = creator; //1.入参校验 String tips = SecondUtil.validationParam(loginName, password, workflowId, creator); @@ -99,6 +104,9 @@ public class AutoCreateWorkflowService { log.error("创建人ID:" + creator + " 租户key:" + tenantKey); + if(StringUtils.isEmpty(creator)){ + return "创建人ID信息为空,请检查人员信息"; + } //紧急程度默认值 if ("".equals(requestLevel) || requestLevel == null) { requestLevel = "0"; @@ -205,9 +213,14 @@ public class AutoCreateWorkflowService { }else { log.error("普通字段值:"+value); - formDataDuty.setFieldType(1); - formDataDuty.setDataKey(key); - formDataDuty.setContent(code); + if(StringUtils.isNotEmpty(String.valueOf(value))){ + formDataDuty.setFieldType(1); + formDataDuty.setDataKey(key); + formDataDuty.setContent(code); + }else{ + log.error("普通字段值为空"); + } + } } @@ -215,91 +228,106 @@ public class AutoCreateWorkflowService { formDataDutyList.add(formDataDuty); } - log.error("明细表数据:"+detailTables); + + ///明细表数据 //[[{"wlbh":"1","wlms":"2","pjxhj3y":"3","bylj":"4","kcsl":"5","tksl":"6","jey":"7","cbzx":"8"},{"wlbh":"1","wlms":"2","pjxhj3y":"3","bylj":"4","kcsl":"5","tksl":"6","jey":"7","cbzx":"8"}],[{"aa":"1","bb":"2"}]] - JSONArray outerArray = JSON.parseArray(detailTables); - - // 遍历外部 JSONArray - for (int i = 0; i < outerArray.size(); i++) { - JSONArray innerArray = outerArray.getJSONArray(i); // 获取内部的 JSONArray - //判断明细表id是否存在 - if (detailFormId.size() < i+1) { - log.error("明细表"+(i+1)+"form_id未找到或不存在"); - return "明细表"+(i+1)+"form_id未找到或不存在"; - } - Long subFormId = detailFormId.get(i); - log.error("明细表"+(i+1)+"form_id"+subFormId); - - // 遍历内部 JSONArray - for (int j = 0; j < innerArray.size(); j++) { - JSONObject jsonDetail = innerArray.getJSONObject(j); - Long optionId = null; - - // 遍历 JSONObject 的键值对 - for (String key : jsonDetail.keySet()) { - FormDataDuty formDataDuty = FormDataDuty.builder().build(); - String value = jsonDetail.getString(key); - if (!"".equals(key)) { - if(key.contains("hrm:")){ - //判断人力资源字段工号是否正确 (todo) - optionId = getIdByWorkcode(value); - if(optionId == null) { - return "工号为空或不存在"; - } - key = key.replace("hrm:", ""); - formDataDuty.setDataKey(key); - formDataDuty.setDataIndex((long) (j + 1)); - formDataDuty.setSubFormId(subFormId); - - DataOptions options = DataOptions.builder().optionId(optionId).build(); - List dataOptions = new ArrayList(); - dataOptions.add(options); - formDataDuty.setDataOptions(dataOptions); - } else if (key.contains("com:") || key.contains("dep:")) { //e10 分部部门同一个字段 - if(key.split(":").length != 3){ - return "明细表表字段名"+key+"不符合规则..."; - } - String str2 = key.split(":")[1];//关联人力资源字段 - String str3 = key.split(":")[2];//当前字段 - - if(mainMap.get("hrm:"+str2) != null){ - String hrmResource = (String) mainMap.get("hrm:"+str2); - Long id = getIdByWorkcode(hrmResource); - SimpleEmployee simpleEmployee = hrmCommonUtil.getSimpleEmployee(id); - optionId = simpleEmployee.getDepartmentId(); - if (key.contains("com:")) { - optionId = Long.valueOf(departmentComInfo.getSubcompanyid1(String.valueOf(optionId))); +// if (detailTablesStr.startsWith("[") && detailTablesStr.endsWith("]")) { +// detailTablesStr = detailTablesStr.substring(1, detailTablesStr.length() - 1); +// } +// log.error("截取后的明细表数据:"+detailTablesStr); + + JSONArray outerArray = JSON.parseArray(detailTablesStr); + + if(outerArray.size()>0){ + // 遍历外部 JSONArray + for (int i = 0; i < outerArray.size(); i++) { + JSONArray innerArray = outerArray.getJSONArray(i); // 获取内部的 JSONArray + //判断明细表id是否存在 + if (detailFormId.size() < i+1) { + log.error("明细表"+(i+1)+"form_id未找到或不存在"); + return "明细表"+(i+1)+"form_id未找到或不存在"; + } + Long subFormId = detailFormId.get(i); + log.error("明细表"+(i+1)+"form_id"+subFormId); + + // 遍历内部 JSONArray + for (int j = 0; j < innerArray.size(); j++) { + JSONObject jsonDetail = innerArray.getJSONObject(j); + Long optionId = null; + + // 遍历 JSONObject 的键值对 + for (String key : jsonDetail.keySet()) { + FormDataDuty formDataDuty = FormDataDuty.builder().build(); + String value = jsonDetail.getString(key); + if (!"".equals(key)) { + if(key.contains("hrm:")){ + //判断人力资源字段工号是否正确 (todo) + optionId = getIdByWorkcode(value); + if(optionId == null) { + return "工号为空或不存在"; } - key = str3; + key = key.replace("hrm:", ""); formDataDuty.setDataKey(key); formDataDuty.setDataIndex((long) (j + 1)); formDataDuty.setSubFormId(subFormId); + DataOptions options = DataOptions.builder().optionId(optionId).build(); List dataOptions = new ArrayList(); dataOptions.add(options); formDataDuty.setDataOptions(dataOptions); - }else{ - return "明细字段"+key+"不包含关联字段" ; + } else if (key.contains("com:") || key.contains("dep:")) { //e10 分部部门同一个字段 + if(key.split(":").length != 3){ + return "明细表表字段名"+key+"不符合规则..."; + } + + String str2 = key.split(":")[1];//关联人力资源字段 + String str3 = key.split(":")[2];//当前字段 + + if(mainMap.get("hrm:"+str2) != null){ + String hrmResource = (String) mainMap.get("hrm:"+str2); + Long id = getIdByWorkcode(hrmResource); + SimpleEmployee simpleEmployee = hrmCommonUtil.getSimpleEmployee(id); + optionId = simpleEmployee.getDepartmentId(); + if (key.contains("com:")) { + optionId = Long.valueOf(departmentComInfo.getSubcompanyid1(String.valueOf(optionId))); + } + key = str3; + formDataDuty.setDataKey(key); + formDataDuty.setDataIndex((long) (j + 1)); + formDataDuty.setSubFormId(subFormId); + DataOptions options = DataOptions.builder().optionId(optionId).build(); + List dataOptions = new ArrayList(); + dataOptions.add(options); + formDataDuty.setDataOptions(dataOptions); + }else{ + return "明细字段"+key+"不包含关联字段" ; + } + }else { + log.error("明细表普通字段值:"+value); + if(StringUtils.isNotEmpty(value)){ + formDataDuty.setDataKey(key); + formDataDuty.setDataIndex((long) (j + 1)); + formDataDuty.setContent(value); + //目前写死 后续在找方法 + formDataDuty.setSubFormId(subFormId); + }else{ + log.error("明细表普通字段值为空"); + } + } - }else { - log.error("明细表普通字段值:"+value); - formDataDuty.setDataKey(key); - formDataDuty.setDataIndex((long) (j + 1)); - formDataDuty.setContent(value); - //目前写死 后续在找方法 - formDataDuty.setSubFormId(subFormId); + formDataDutyList.add(formDataDuty); } - formDataDutyList.add(formDataDuty); + } } - } + + log.error("formDataDutyList数据:"+formDataDutyList.size()+"-"+formDataDutyList); } - log.error("formDataDutyList数据:"+formDataDutyList.size()+"-"+formDataDutyList); if(CollectionUtils.isNotEmpty(formDataDutyList)) { JSONObject fromDataByDataDetails = getFromDataByDataDetails(formDataDutyList); diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/BillingApplicationService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/BillingApplicationService.java new file mode 100644 index 0000000..640f68d --- /dev/null +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/BillingApplicationService.java @@ -0,0 +1,146 @@ +package com.weaver.seconddev.njwebservice; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.weaver.common.hrm.util.Util; +import com.weaver.common.i18n.tool.util.I18nContextUtil; +import com.weaver.seconddev.njwebservice.entity.BillingApplicationReq; +import com.weaver.seconddev.njwebservice.entity.ResponseInfo; +import com.weaver.verupgrade.conn.CONN_TYPE; +import com.weaver.verupgrade.conn.RecordSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author liang.cheng + * @Date 2025/1/21 15:56 + * @Description: CW23-商票开票申请流程(供应链金融系统触发) + * @Version 1.0 + */ +@Service("billingApplicationService") +public class BillingApplicationService { + + private final static Logger log = LoggerFactory.getLogger(BillingApplicationService.class); + + @Autowired + private AutoCreateWorkflowService autoCreateWorkflowService; + + public ResponseInfo billingApplicate(BillingApplicationReq param) { + log.error("BillingApplicationService:"+param.toString()); + String systemFlag = param.getSystemFlag(); + ResponseInfo res = new ResponseInfo(); + if(!"SCF".equals(systemFlag)){ + res.setISTAT("E"); + res.setRequestid(""); + res.setSRMSAGE("系统标识不符!"); + return res; + } + String creator = ""; + String companycode = param.getCompanyCode(); + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + rs.executeSql("select oafqrgh from uf_applyUser where companycode='"+companycode+"' and lclx=0", CONN_TYPE.ebuilder.getType()); + if(rs.next()){ + creator = Util.null2String(rs.getString("oafqrgh")); + } + log.error("申请人:"+creator); + + if("".equals(creator)){ + res.setISTAT("E"); + res.setRequestid(""); + res.setSRMSAGE(param.getCompanyName()+"在OA系统里没有维护开票申请人"); + return res; + } + + if(param.getCompanyName() != null && !"".equals(param.getCompanyName())){ + rs.executeSql("select id from eteams.dbo.department where type = 'subcompany' and name = '"+param.getCompanyName()+"'",CONN_TYPE.hrm.getType()); + if(!rs.next()){ + res.setISTAT("E"); + res.setRequestid(""); + res.setSRMSAGE("申请公司在OA系统中不存在!"); + return res; + } + } + + if(param.getApplyNo()!=null&&!"".equals(param.getApplyNo())){ + rs.executeSql("select applyNo from formtable_main_2301 where applyNo='"+param.getApplyNo()+"'",CONN_TYPE.workflow.getType()); + if(rs.next()){ + res.setISTAT("E"); + res.setRequestid(""); + res.setSRMSAGE("申请单号已存在,请不要重复申请!"); + return res; + } + } + +// if(param.getSh()==null||"".equals(param.getSh())){ +// res.setISTAT("E"); +// res.setRequestid(""); +// res.setSRMSAGE("税号不能为空!"); +// return res; +// +// } + String loginname = "SCF"; + String password = "123456"; + String workflowId = "4205"; + String requestLevel = "0"; + String billType = ""; + if("1".equals(param.getBillType())){ + billType = "0"; + }else if ("2".equals(param.getBillType())){ + billType = "1"; + } + Map map = new HashMap(); + map.put("hrm:sqr", creator); + map.put("com:sqr:sqdw", ""); + map.put("dep:sqr:sqbm", ""); + map.put("applyNo", param.getApplyNo()); + map.put("companyName", param.getCompanyName()); + map.put("companyCode", param.getCompanyCode()); + map.put("billType", billType); + map.put("vendorName", param.getVendorName()); + map.put("vendorCode", param.getVendorCode()); + map.put("applyDate", param.getApplyDate()); + map.put("amount", param.getAmount()); + map.put("REMARKS", param.getRemarks()); + String mainTable = JSON.toJSONString(map); + int len = param.getBillingApplicationResItem().length; + + String detailTables = ""; + if(len>0){ + detailTables = "[["; + for(int i=0;i> list = new ArrayList<>(); - RecordSet rs = I18nContextUtil.getBean(RecordSet.class); - String poolname = CONN_TYPE.workflow.getType(); - - String formSql = ""; - - String sql = "SELECT * FROM form_table WHERE \n" + - " form_id IN ( SELECT id FROM sub_form WHERE form_id IN ( SELECT form_id FROM e10_core_business.dbo.form_table WHERE table_name = 'formtable_main_3540'))"; - rs.executeSql(sql,poolname); - while (rs.next()){ - Map map = new HashMap<>(); - map.put("id", Util.getLongValue(rs.getString("id"))); - map.put("table_type", Util.getIntValue(rs.getString("table_type"))); - map.put("form_name", Util.null2String(rs.getString("form_name"))); - list.add(map); - - } +// List> list = new ArrayList<>(); +// RecordSet rs = I18nContextUtil.getBean(RecordSet.class); +// String poolname = CONN_TYPE.workflow.getType(); +// +// String formSql = ""; +// +// String sql = "SELECT * FROM form_table WHERE \n" + +// " form_id IN ( SELECT id FROM sub_form WHERE form_id IN ( SELECT form_id FROM e10_core_business.dbo.form_table WHERE table_name = 'formtable_main_3540'))"; +// rs.executeSql(sql,poolname); +// while (rs.next()){ +// Map map = new HashMap<>(); +// map.put("id", Util.getLongValue(rs.getString("id"))); +// map.put("table_type", Util.getIntValue(rs.getString("table_type"))); +// map.put("form_name", Util.null2String(rs.getString("form_name"))); +// list.add(map); +// +// } // String token = ""; @@ -138,6 +135,71 @@ public class DemoService { // e.printStackTrace(); // } - return ""; + return detailTablesStr; } + + public static void main(String[] args) { + + BillingApplicationResItem build = BillingApplicationResItem.builder() + .billNo("1") + .dueDate("2024-10-01") + .money("134") + .receiveAccountName("3432") + .build(); + + BillingApplicationResItem build1 = BillingApplicationResItem.builder() + .billNo("1") + .dueDate("2024-10-02") + .money("1344") + .receiveAccountName("3432") + .build(); + + BillingApplicationResItem[] param = { + build, + build1 + }; + + String detailTables = ""; + detailTables = "[["; + for(int i=0;i map = new HashMap<>(); + map.put("hrm:sqr", creator); + map.put("com:sqr:sqdw", ""); + map.put("dep:sqr:sqbm", ""); + map.put("discountNo", param.getDiscountNo()); + map.put("companyName", param.getCompanyName()); + map.put("companyCode", param.getCompanyCode()); + map.put("vendorName", param.getVendorName()); + map.put("vendorCode", param.getVendorCode()); + map.put("applyDate", param.getApplyDate()); + map.put("amount", param.getAmount()); + map.put("rate", param.getRate()); + map.put("remarks", param.getRemarks()); + map.put("busType",param.getBusType()); + String mainTable = JSON.toJSONString(map); + + int len = param.getDiscountApplicationReqItem().length; + String detailTables = ""; + if(len>0){ + detailTables = "[["; + for(int i=0;i list = Arrays.asList(gscode.split(",")); + String workflowId = "100003460000004207";//e10 100003460000004207 e9 4207 + String tablename = "formtable_main_2304";//e10 formtable_main_2304 e9 formtable_main_2304 + + if(list.contains(param.getCompanyCode())){ + workflowId = "100003460000004574";//e10 100003460000004574 e9 4574 + tablename = "formtable_main_2438";//e10 formtable_main_2638 e9 formtable_main_2638 + } + + if(param.getBoeNum()!=null&&!"".equals(param.getBoeNum())){ + rs.executeSql("select boeNum from "+tablename+" where boeNum='"+param.getBoeNum()+"'",CONN_TYPE.workflow.getType()); + if(rs.next()){ + res.setISTAT("E"); + res.setRequestid(""); + res.setSRMSAGE("申请单号已存在,请不要重复申请!"); + log.error("DiscountedInvoiceApplicationImpl-Error:state="+res.getISTAT()+"||message="+res.getSRMSAGE()); + + return res; + } + } + + String loginname = "EAS"; + String password = "123456"; + + String requestLevel = "0"; + + Map map = new HashMap<>(); + map.put("hrm:sqr", creator); + map.put("com:sqr:sqdw", ""); + map.put("dep:sqr:sqbm", ""); + map.put("boeNum", param.getBoeNum()); + map.put("boeHeaderId", param.getBoeHeaderId()); + map.put("companyName", param.getCompanyName()); + map.put("companyCode", param.getCompanyCode()); + map.put("boeDeptName", param.getBoeDeptName()); + map.put("boeDeptCode", param.getBoeDeptCode()); + map.put("vendorCode", param.getVendorCode()); + map.put("vendorName", param.getVendorName()); + map.put("applyDate", param.getApplyDate()); + map.put("applyAmount", param.getApplyAmount()); + map.put("sh", param.getSh()); + String mainTable = JSON.toJSONString(map); + String[] detailTables = {}; + String result = autoCreateWorkflowService.createWorkflow(loginname, password, workflowId, creator, requestLevel, mainTable, detailTables); + log.error("DiscountedInvoiceApplicationImpl:"+result); + if(result.matches("^[1-9]+[0-9]*$")){ + res.setISTAT("S"); + res.setRequestid(result); + res.setSRMSAGE("流程创建成功!"); + }else{ + res.setISTAT("E"); + res.setRequestid(""); + res.setSRMSAGE(result); + } + return res; + } + +} diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/EasTzlhtSpzfApplicationService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/EasTzlhtSpzfApplicationService.java new file mode 100644 index 0000000..58b3d59 --- /dev/null +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/EasTzlhtSpzfApplicationService.java @@ -0,0 +1,74 @@ +package com.weaver.seconddev.njwebservice; + +import com.weaver.common.i18n.tool.util.I18nContextUtil; +import com.weaver.seconddev.njwebservice.entity.EasSpzfResponseInfo; +import com.weaver.seconddev.njwebservice.entity.EasTzlhtSpzfRes; +import com.weaver.seconddev.njwebservice.entity.EasTzlhtSpzfResData; +import com.weaver.seconddev.njwebservice.util.SecondUtil; +import com.weaver.verupgrade.conn.CONN_TYPE; +import com.weaver.verupgrade.conn.RecordSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * @Author liang.cheng + * @Date 2025/1/20 17:37 + * @Description: 投资类合同审批作废接口 + * @Version 1.0 + */ +@Service("easTzlhtSpzfApplicationWebService") +public class EasTzlhtSpzfApplicationService { + + private final static Logger log = LoggerFactory.getLogger(EasTzlhtSpzfApplicationService.class); + + public EasSpzfResponseInfo easTzlhtSpzfApplicate(EasTzlhtSpzfRes param) { + log.error("EasTzlhtSpzfApplicationImpl-----start"+param.toString()); + + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + String poolname = CONN_TYPE.workflow.getType(); + + EasSpzfResponseInfo res = new EasSpzfResponseInfo(); +// if(param.getDATAS()!=null&¶m.getDATAS().length>0) { + EasTzlhtSpzfResData data = param.getDatas(); + String loginName = data.getLoginname(); + String password = data.getPassword(); + String workflowId = data.getWorkflowId(); + String requestId = data.getRequestId(); + String optType = data.getOptType(); + + if (!"EAS".equals(loginName) && !"123456".equals(password)) { + res.setIsTat("F"); + res.setMessage("接口用户名/密码不对!"); + return res; + } + if (workflowId == null || workflowId.equals("")) { + res.setIsTat("F"); + res.setMessage("流程id为空!"); + return res; + } + if (requestId == null || requestId.equals("")) { + res.setIsTat("F"); + res.setMessage("请求id为空!"); + return res; + } + String tablename = SecondUtil.getTableName(workflowId); + log.error("tablename:"+tablename); + String isYX = "0"; + if ("N".equals(optType)) {//流程作废 + isYX = "1"; + } + String sql = "update " + tablename + " set sfyx ='" + isYX + "' where requestId = " + requestId; + rs.executeSql(sql,poolname); + res.setIsTat("S"); + res.setMessage("接口调用成功!"); + return res; + +// }else{ +// res.setISTAT("F"); +// res.setMESSAGE("请传入请求参数!"); +// return res; +// } + } + +} diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/MeetingService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/MeetingService.java new file mode 100644 index 0000000..4cb5f03 --- /dev/null +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/MeetingService.java @@ -0,0 +1,52 @@ +package com.weaver.seconddev.njwebservice; + + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.seconddev.njwebservice.entity.MeetingReq; +import com.weaver.seconddev.njwebservice.entity.MeetingRes; +import com.weaver.seconddev.njwebservice.entity.MeetingReturn; +import com.weaver.seconddev.njwebservice.util.SecondUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +@Service("meetingService") +public class MeetingService { + + private final static Logger log = LoggerFactory.getLogger(MeetingService.class); + + public MeetingRes getMeeting(MeetingReq param) { + String loginname = param.getDATAS().getLoginname(); + String password = param.getDATAS().getPassword(); + String companyIds = param.getDATAS().getCompanyIds(); + String startdate = param.getDATAS().getStartdate(); + String enddate = param.getDATAS().getEnddate(); + String sysid = param.getSYSID(); + String sendId = param.getSENDID(); + String itfid = param.getITFID(); + + String message = SecondUtil.getMeetingInfo(loginname, password, companyIds, startdate, enddate); + MeetingRes res = new MeetingRes(); + res.setSYSID(sysid); + res.setITFID(itfid); + res.setSENDID(sendId); + JSONObject object = JSONObject.parseObject(message); + String status = object.getString("status"); + String msg = object.getString("msg"); + if ("success".equals(status)) { + res.setISTAT("S"); + res.setMESSAGE("获取成功"); + res.setDATAS((MeetingReturn[]) JSONArray.parseObject(msg, MeetingReturn[].class)); + log.error("获取公司ID为" + companyIds + ",开始时间为" + startdate + ",结束时间为" + enddate + "的会议室信息成功!"); + } else { + res.setISTAT("F"); + res.setMESSAGE(msg); + res.setDATAS((MeetingReturn[])null); + log.error("获取公司ID为" + companyIds + ",开始时间为" + startdate + ",结束时间为" + enddate + "的会议室信息失败:" + msg); + } + + return res; + } + +} diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/OutToDoWorkflowService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/OutToDoWorkflowService.java new file mode 100644 index 0000000..015565d --- /dev/null +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/OutToDoWorkflowService.java @@ -0,0 +1,101 @@ +package com.weaver.seconddev.njwebservice; + +import com.alibaba.fastjson.JSON; +import com.weaver.common.hrm.util.Util; +import com.weaver.common.i18n.tool.util.I18nContextUtil; +import com.weaver.seconddev.njwebservice.entity.ToDoCountReq; +import com.weaver.seconddev.njwebservice.entity.ToDoRequestReq; +import com.weaver.seconddev.njwebservice.entity.ToDoRequestRes; +import com.weaver.seconddev.njwebservice.entity.ToDoWorkFlow; +import com.weaver.verupgrade.conn.CONN_TYPE; +import com.weaver.verupgrade.conn.RecordSet; +import com.weaver.verupgrade.workflow.webservices.WorkflowRequestInfo; +import com.weaver.verupgrade.workflow.webservices.WorkflowService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.net.URLEncoder; + +/** + *获取待办数量和待办信息 + */ +@Service("outToDoWorkflowService") +public class OutToDoWorkflowService { + + @Autowired + private WorkflowService workflowService; + + + private final static Logger log = LoggerFactory.getLogger(OutToDoWorkflowService.class); + + + public String outToDoWorkflowCount(String json) { + + log.error("outToDoWorkflowCount入参:"+json); + ToDoCountReq param = JSON.parseObject(json, ToDoCountReq.class); + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + String poolname = CONN_TYPE.hrm.getType(); + String sql = "select ID from eteams.employee where status = 'normal' and job_num = '"+param.getWorkcode()+"'"; + rs.executeSql(sql,poolname); + if (rs.next()){ + Long userId = Util.getLongValue(rs.getString("id")); + int toDoWorkflowRequestCount = workflowService.getToDoWorkflowRequestCount(userId, param.getConditions()); + log.error("待办数量:"+toDoWorkflowRequestCount); + return String.valueOf(toDoWorkflowRequestCount); + }else { + return "未找到该用户"; + } + } + + public ToDoRequestRes outToDoWorkflowList(String json) { +// String pc_url = Util.null2String(this.getPropValue("htportaloaUrl", "pc_url")).trim(); +// String mobile_url = Util.null2String(this.getPropValue("htportaloaUrl", "mobile_url")).trim(); + + log.error("outToDoWorkflowCount入参:"+json); + ToDoRequestReq param = JSON.parseObject(json, ToDoRequestReq.class); + // todo 访问ip 配置 + String pc_url = ""; + String mobile_url = ""; + ToDoRequestRes res = new ToDoRequestRes(); + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + String poolname = CONN_TYPE.hrm.getType(); + String sql = "select id from eteams.employee where status = 'normal' and job_num = '"+param.getWorkcode()+"'"; + rs.executeSql(sql,poolname); + if (!rs.next()) { + res.setMsg("未找到该用户"); + } else { + param.setWorkcode(Util.null2String(rs.getString("id"))); + Long userId = Util.getLongValue(rs.getString("id")); + log.error("用户id:"+userId); + WorkflowRequestInfo[] info = workflowService.getToDoWorkflowRequestList(Integer.parseInt(param.getPageNo()), Integer.parseInt(param.getPageSize()), + Integer.parseInt(param.getRecordCount()), userId, param.getConditions()); + + res.setMsg("find:" + info.length); + ToDoWorkFlow[] todo = new ToDoWorkFlow[info.length]; + + for(int i = 0; i < info.length; ++i) { + ToDoWorkFlow wftodo = new ToDoWorkFlow(); + wftodo.createTime = Util.null2String(info[i].getCreateTime()); + wftodo.creatorName = Util.null2String(info[i].getCreatorName()); + wftodo.currentNodeName = Util.null2String(info[i].getCurrentNodeName()); + wftodo.lastOperateTime = Util.null2String(info[i].getLastOperateTime()); + wftodo.lastOperatorName = Util.null2String(info[i].getLastOperatorName()); + wftodo.receiveTime = Util.null2String(info[i].getReceiveTime()); + wftodo.requestId = Util.null2String(info[i].getRequestId()); + wftodo.requestLevel = Util.null2String(info[i].getRequestLevel()); + wftodo.requestName = Util.null2String(info[i].getRequestName()); + wftodo.workflowId = Util.null2String(info[i].getWorkflowBaseInfo().getWorkflowId()); + wftodo.workflowName = Util.null2String(info[i].getWorkflowBaseInfo().getWorkflowName()); + wftodo.workflowTypeId = Util.null2String(info[i].getWorkflowBaseInfo().getWorkflowTypeId()); + wftodo.workflowTypeName = Util.null2String(info[i].getWorkflowBaseInfo().getWorkflowTypeName()); + wftodo.mobileurl = mobile_url + URLEncoder.encode("/spa/workflow/static4mobileform/index.html#/req?requestid=" + wftodo.requestId); + wftodo.pcurl = pc_url + URLEncoder.encode("/spa/workflow/static4form/index.html#/main/workflow/req?requestid=" + wftodo.requestId); + todo[i] = wftodo; + } + res.setWorkFlow(todo); + } + return res; + } +} diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/VendorPunishApplicationService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/VendorPunishApplicationService.java new file mode 100644 index 0000000..2e8cd91 --- /dev/null +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/VendorPunishApplicationService.java @@ -0,0 +1,114 @@ +package com.weaver.seconddev.njwebservice; + +import com.weaver.common.i18n.tool.util.I18nContextUtil; +import com.weaver.seconddev.njwebservice.entity.VendorPunishReq; +import com.weaver.seconddev.njwebservice.entity.VendorPunishReqData; +import com.weaver.seconddev.njwebservice.entity.VendorPunishResponseInfo; +import com.weaver.seconddev.njwebservice.entity.VendorPunishReturnData; +import com.weaver.seconddev.njwebservice.util.SecondUtil; +import com.weaver.verupgrade.conn.CONN_TYPE; +import com.weaver.verupgrade.conn.RecordSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * @Author liang.cheng + * @Date 2025/1/20 15:44 + * @Description: 供应商绩效考核处罚流程 + * @Version 1.0 + */ +@Service("vendorPunishApplicationWebService") +public class VendorPunishApplicationService { + + private final static Logger log = LoggerFactory.getLogger(VendorPunishApplicationService.class); + + + public VendorPunishResponseInfo vendorPunishApplicate(VendorPunishReq param) { + + log.error("VendorPunishApplicationImpl-----start"+param.toString()); + + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + String poolname = CONN_TYPE.workflow.getType(); + VendorPunishResponseInfo res = new VendorPunishResponseInfo(); + + res.setItfId(param.getItFid()); + res.setSendId(param.getSendId()); + res.setSysId(param.getSysId()); + + VendorPunishReturnData resData = new VendorPunishReturnData(); + VendorPunishReqData data = param.getDatas(); + String workflowId = data.getWorkflowId(); + String requestId = data.getRequestId(); + String type = data.getType(); + String isAgree = data.getIsAgree(); + String supplierOpinion = data.getSupplierOpinion(); + int bearMoney = data.getBearMoney(); + + resData.setRequestId(requestId); + resData.setWorkflowId(workflowId); + res.setReturnData(resData); + if (workflowId == null || workflowId.equals("")) { + resData.setIsTat("E"); + resData.setMessage("流程id为空!"); + return res; + } + + String tablename = SecondUtil.getTableName(workflowId); + + if (requestId == null || requestId.equals("")) { + resData.setIsTat("E"); + resData.setMessage("请求id为空!"); + return res; + } + if (type == null || type.equals("")) { + resData.setIsTat("E"); + resData.setMessage("类型为空!"); + return res; + }else{ + if("1".equals(type)){//质量问题确认 + if (isAgree == null || isAgree.equals("")) { + resData.setIsTat("E"); + resData.setMessage("供应商是否同意为空!"); + return res; + }else if(!isAgree.equals("0")&&!isAgree.equals("1")){ + resData.setIsTat("E"); + resData.setMessage("供应商是否同意传错!"); + return res; + } + if (supplierOpinion == null || supplierOpinion.equals("")) { + resData.setIsTat("E"); + resData.setMessage("供应商厂商意见为空!"); + return res; + } + String sql = "update "+tablename+" set sfty='"+isAgree+"',gyscsyj='"+supplierOpinion+"' where requestId= '"+requestId+"'"; + rs.executeSql(sql,poolname); + log.error("VendorPunishApplicationImpl--"+requestId+"更新成功"); + }else if("2".equals(type)){//罚款金额确认 + if (supplierOpinion == null || supplierOpinion.equals("")) { + resData.setIsTat("E"); + resData.setMessage("供应商厂商意见为空!"); + return res; + } + if(bearMoney<=0){ + resData.setIsTat("E"); + resData.setMessage("愿意承担金额必须大于0!"); + return res; + } + String sql = "update "+tablename+" set gyscsfkyj='"+supplierOpinion+"',yycdje='"+bearMoney+"' where requestId= '"+requestId+"'"; + rs.executeSql(sql,poolname); + log.error("VendorPunishApplicationImpl--"+requestId+"更新成功"); + }else{ + + resData.setIsTat("E"); + resData.setMessage("类型应为1或者2!"); + return res; + } + } + resData.setIsTat("S"); + resData.setMessage("接口调用成功!"); + return res; + } + + +} diff --git a/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/WlpsSyGetResService.java b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/WlpsSyGetResService.java new file mode 100644 index 0000000..0c0aaaa --- /dev/null +++ b/secondev-ht-njwebservice/src/main/java/com/weaver/seconddev/njwebservice/WlpsSyGetResService.java @@ -0,0 +1,56 @@ +package com.weaver.seconddev.njwebservice; + +import com.weaver.common.i18n.tool.util.I18nContextUtil; +import com.weaver.seconddev.njwebservice.entity.WlpsSyResponse; +import com.weaver.seconddev.njwebservice.entity.WlpsSyReturn; +import com.weaver.seconddev.njwebservice.util.SecondUtil; +import com.weaver.verupgrade.conn.CONN_TYPE; +import com.weaver.verupgrade.conn.RecordSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * @Author liang.cheng + * @Date 2025/1/20 13:54 + * @Description: + * @Version 1.0 + */ + +@Service("wlpsSyGetResWebservice") +public class WlpsSyGetResService { + + private final static Logger log = LoggerFactory.getLogger(WlpsSyGetResService.class); + + public void getRes(WlpsSyResponse res) { + log.error("接收MesWLPS_SY接口返回值开始"); + String isTat = res.getIsTat(); + String systemId = res.getSysId(); + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + String poolname = CONN_TYPE.workflow.getType(); + try{ + if("S".equals(isTat)){ + WlpsSyReturn[] ret = res.getWlpsSyReturn(); + + for(int i=0;i meetingMap = new HashMap<>(); + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + rs.executeSql("select id,name from mt_room where org_id in ("+companyIds+")",CONN_TYPE.meeting.getType()); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + String name = Util.null2String(rs.getString("name")); + meetingMap.put(id, name); + } + + if(meetingMap == null || meetingMap.size() <= 0){ + object1.put("status", "error"); + object1.put("msg", "找不到该公司下的会议室"); + return object1.toString(); + } + + log.error("找到会议室" + meetingMap.size() + "个"); + + net.sf.json.JSONArray array = new net.sf.json.JSONArray(); + +// String sql3 = "select t.id,t.name meetingname,t.address," + +// " t.begindate+' '+t.begintime as begindate," + +// " t.enddate+' '+t.endtime as enddate,t.caller,t.contacter,t.desc_n,t.hrmmembers,t.meetingstatus from Meeting t" + +// " where t.meetingstatus in (2,4) " + +// " and t.begindate+' '+begintime >= '"+startdate+"'" + +// " and t.enddate+' '+endtime <= '"+enddate+"'"; + + String sql3 = "select a.id,a.name as meetingname,a.address,a.begin_datetime,a.end_datetime,a.caller,a.contacter,b.member_id,\n" + + " a.mt_status from mt_detail a left join mt_receipt_member b on a.id = b.mt_id where a.begin_datetime >= '"+startdate+"' " + + " and a.end_datetime <= '"+enddate+"' and a.mt_status in (2,4)"; + + rs.execute(sql3,CONN_TYPE.meeting.getType()); + log.error("找到会议" + rs.getCounts() + "个"); + + ResourceComInfo res = new ResourceComInfo(); + + while (rs.next()) {//寻找meeting表中address多个的 + String address = Util.null2String(rs.getString("address")); + String meetingname = Util.null2String(rs.getString("meetingname")); + String begin = Util.null2String(rs.getString("begin_datetime")); + String end = Util.null2String(rs.getString("end_datetime")); + log.error("找到会议meetingname(" + meetingname + "),address(" + address + "),begin(" + begin + "),end(" + end + ")"); + if(address != null && !"".equals(address)){//去需要查询的公司下面的会议室匹配 + String[] addressArray = address.split(","); + for(int i=0;i 0){ + object1.put("status", "success"); + object1.put("msg", array.toString()); + }else{ + object1.put("status", "error"); + object1.put("msg", "找不到该时间段内的会议"); + } + } catch (Exception e) { + log.error("error:" + e.getMessage() ); + object1.put("status", "error"); + object1.put("msg", e.getMessage()); + return object1.toString(); + } + + return object1.toString(); + } + + + public static String getUserId(int type,String value) { + String userId = ""; + String columnName =""; + switch (type) { + case 2 : + columnName = "username"; + break; + case 3 : + columnName = "USER_ID"; + break; + case 4 : + columnName = "mobile"; + break; + case 5 : + columnName = "email"; + break; + default: + columnName = "job_num"; + break; + } + RecordSet rs = I18nContextUtil.getBean(RecordSet.class); + String poolname = CONN_TYPE.hrm.getType(); + String sql = "select ID from eteams.employee where delete_type = 0 and status = 'normal' and "+columnName+"= '"+value+"'"; + rs.executeSql(sql,poolname); + if (rs.next()) { + userId = Util.null2String(rs.getString("ID")); + } + return userId; + } + + }