diff --git a/build.gradle b/build.gradle index 740d10a..89e344a 100644 --- a/build.gradle +++ b/build.gradle @@ -79,6 +79,11 @@ configure(allprojects) { project -> implementation fileTree(dir: rootProject.projectDir.getPath() + '/secDevLib', includes: includeType) // 项目二开自定义依赖 implementation fileTree(dir: rootProject.projectDir.getPath() + "/devLib", includes: includeType) + + implementation 'javax.servlet:jstl:1.2' + implementation 'org.apache.taglibs:taglibs-standard-spec:1.2.5' + implementation 'org.apache.taglibs:taglibs-standard-impl:1.2.5' + compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' } } diff --git a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/controller/ZOA_FI_VENDOR_MAINTAIN_CONTROLLER.java b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/controller/ZOA_FI_VENDOR_MAINTAIN_CONTROLLER.java new file mode 100644 index 0000000..ce1c9ad --- /dev/null +++ b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/controller/ZOA_FI_VENDOR_MAINTAIN_CONTROLLER.java @@ -0,0 +1,295 @@ +package com.weaver.seconddev.interfaces.workflow.controller; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.distribution.lock.DistributionLockInterface; +import com.weaver.common.form.component.editable.Department; +import com.weaver.custom.configcenter.htsysjcmtConfig; +import com.weaver.ecode.api.rpc.EcodeService; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.verupgrade.conn.CONN_TYPE; +import com.weaver.verupgrade.conn.RecordSet; +import com.weaver.workflow.list.api.rest.publicapi.WflRequestListRest; +import lombok.extern.slf4j.Slf4j; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.json.XML; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; +import com.weaver.seconddev.interfaces.workflow.action.ZOA_FI_VENDOR_MAINTAIN; + +import java.util.Map; + +/** + * @Author: calyrex + * @CreateTime: 2025-01-08 + * @Description: ZOA_FI_VENDOR_MAINTAIN的API调用 + */ + +@Slf4j +@RestController +@RequestMapping({"/papi/secondev/workflow/controller" }) +public class ZOA_FI_VENDOR_MAINTAIN_CONTROLLER { + @RpcReference(timeout = 10000) + EcodeService ecodeService; + @RpcReference(timeout = 2000, group = "workflow") + WflRequestListRest wflRequestListRest; + @Autowired + private DistributionLockInterface distributionLock; + + @Autowired + private com.weaver.custom.configcenter.htsysjcmtConfig htsysjcmtConfig; + + @Value("${weaver.swagger.basePackage}") + private String basePackage; + + @GetMapping("/ZOA_FI_VENDOR_MAINTAIN") + //@PostMapping("/post") + public WeaResult execute(@RequestBody Map params) { + String edit_flag = String.valueOf(params.get("edit_flag")); + String bukrs = String.valueOf(params.get("bukrs"));//公司代码 + String lifnr = String.valueOf(params.get("lifnr"));//供应商编号 + String ktokk = String.valueOf(params.get("ktokk"));//账户组 + String anred = String.valueOf(params.get("anred"));//称谓 + String name1 = String.valueOf(params.get("name1"));//名称 + String sortl = String.valueOf(params.get("sortl"));//简称-搜索项 + String telf1 = String.valueOf(params.get("telf1"));//电话 + String smtp_addr = String.valueOf(params.get("smtp_addr"));//邮件 + String telf2 = String.valueOf(params.get("telf2"));//手机 + String telfx = String.valueOf(params.get("telfx"));//传真 + String land1 = String.valueOf(params.get("land1"));//国家 + String regio = String.valueOf(params.get("regio"));//地区 + String spras = String.valueOf(params.get("spras"));//语言 + String ort01 = String.valueOf(params.get("ort01"));//城市 + String stras = String.valueOf(params.get("stras"));//地址 + String pstlz = String.valueOf(params.get("pstlz"));//邮政编号 + String bankl = String.valueOf(params.get("bankl"));//开户行行号 + String banka = String.valueOf(params.get("banka"));//开户行名称 + String banks = String.valueOf(params.get("banks"));//开户行国家 + String koinh = String.valueOf(params.get("koinh"));//开户行账号 + String stcd5 = String.valueOf(params.get("stcd5"));//纳税登记证代码 + String akont = String.valueOf(params.get("akont"));//统驭科目 + String zterm = String.valueOf(params.get("zterm"));//付款条件 + String zuawa = String.valueOf(params.get("zuawa"));//排序码 + String zwels = String.valueOf(params.get("zwels"));//付款方式 + String frgrp = String.valueOf(params.get("frgrp"));//批准组 + String zahls = String.valueOf(params.get("zahls"));//付款冻结 + String reprf = String.valueOf(params.get("reprf"));//检查双重发票 + String bumen = String.valueOf(params.get("bumen"));//部门 + String gangwei = String.valueOf(params.get("gangwei"));//岗位 + String name2 = ""; //部门 + String name3 = ""; //岗位 + + + if(!bumen.equals("")){ + name2 = getDepartmentname(bumen); + } + if(!gangwei.equals("")){ + name3 = getJobTitlesname(gangwei); + } + + String estatus = "E"; + String emessage = ""; + String[] prdetail = new String[31]; + prdetail[0] = edit_flag; //动作类型 + prdetail[1] = bukrs; //公司代码 + prdetail[2] = lifnr; //供应商编号 + prdetail[3] = ktokk; //账户组 + prdetail[4] = anred; //称谓 + prdetail[5] = name1; //名称 + prdetail[6] = sortl; //简称-搜索项 + prdetail[7] = telf1; //电话 + prdetail[8] = smtp_addr; //邮件 + prdetail[9] = telf2; //手机 + prdetail[10] = telfx; //传真 + prdetail[11] = land1; //国家 + prdetail[12] = regio; //地区 + prdetail[13] = spras; //语言 + prdetail[14] = ort01; //城市 + prdetail[15] = stras; //地址 + prdetail[16] = pstlz;//邮政编号 + prdetail[17] = bankl; //开户行行号 + prdetail[18] = banka;//开户行名称 + prdetail[19] = banks;//开户行国家 + prdetail[20] = koinh; //开户行账号 + prdetail[21] = stcd5;//纳税登记证代码 + + prdetail[22] = akont;//统驭科目 + prdetail[23] = zterm;//付款条件 + prdetail[24] = zuawa; //排序码 + prdetail[25] = zwels;//付款方式 + prdetail[26] = frgrp;//批准组 + + prdetail[29] = name2;//部门 + prdetail[30] = name3;//岗位 + + //付款冻结 + if(zahls.equals("X")){ + prdetail[27] = zahls; + }else{ + prdetail[27] = ""; + } + + //检查双重发票 + if(reprf.equals("X")){ + prdetail[28] = reprf; + }else{ + prdetail[28] = ""; + } + + ZOA_FI_VENDOR_MAINTAIN po=new ZOA_FI_VENDOR_MAINTAIN(); + String[][] fhz = po.Getexecute(prdetail); + if(fhz[0][0].equals("S")){ + estatus = fhz[0][0]; + } + emessage = fhz[0][1]; + Document document = DocumentHelper.createDocument(); + Element xml = document.addElement("xml"); + Element status = xml.addElement("estatus"); + status.setText(estatus); + Element message = xml.addElement("emessage"); + message.setText(emessage); + Element lifnr_ = xml.addElement("lifnr"); + lifnr_.setText(String.valueOf(fhz[1][0])); + Element bukrs_ = xml.addElement("bukrs"); + bukrs_.setText(String.valueOf(fhz[1][1])); + Element ktokk_ = xml.addElement("ktokk"); + ktokk_.setText(String.valueOf(fhz[1][2])); + + Element txt30_ = xml.addElement("txt30"); + txt30_.setText(""); + Element anred_ = xml.addElement("anred"); + anred_.setText(""); + Element name1_ = xml.addElement("name1"); + name1_.setText(""); + Element sortl_ = xml.addElement("sortl"); + sortl_.setText(""); + Element telf1_ = xml.addElement("telf1"); + telf1_.setText(""); + Element smtp_addr_ = xml.addElement("smtp_addr"); + smtp_addr_.setText(""); + Element telf2_ = xml.addElement("telf2"); + telf2_.setText(""); + Element telfx_ = xml.addElement("telfx"); + telfx_.setText(""); + Element land1_ = xml.addElement("land1"); + land1_.setText(""); + Element landx50_ = xml.addElement("landx50_"); + landx50_.setText(""); + Element bland_ = xml.addElement("bland"); + bland_.setText(""); + Element bezei_ = xml.addElement("bezei"); + bezei_.setText(""); + Element spras_ = xml.addElement("spras"); + spras_.setText(""); + Element sptxt_ = xml.addElement("sptxt"); + sptxt_.setText(""); + Element ort01_ = xml.addElement("ort01"); + ort01_.setText(""); + Element stras_ = xml.addElement("stras"); + stras_.setText(""); + Element pstlz_ = xml.addElement("pstlz"); + pstlz_.setText(""); + Element bankl_ = xml.addElement("bankl"); + bankl_.setText(""); + Element banka_ = xml.addElement("banka"); + banka_.setText(""); + Element banks_ = xml.addElement("banks"); + banks_.setText(""); + Element landx_ = xml.addElement("landx"); + landx_.setText(""); + Element koinh_ = xml.addElement("koinh"); + koinh_.setText(""); + Element stcd5_ = xml.addElement("stcd5"); + stcd5_.setText(""); + Element akont_ = xml.addElement("akont"); + akont_.setText(""); + Element txt20_ = xml.addElement("txt20"); + txt20_.setText(""); + Element zterm_ = xml.addElement("zterm"); + zterm_.setText(""); + Element text1_ = xml.addElement("text1"); + text1_.setText(""); + Element zuawa_ = xml.addElement("zuawa"); + zuawa_.setText(""); + Element ttext_ = xml.addElement("ttext"); + ttext_.setText(""); + Element zwels_ = xml.addElement("zwels"); + zwels_.setText(""); + Element text2_ = xml.addElement("text2"); + text2_.setText(""); + Element frgrp_ = xml.addElement("frgrp"); + frgrp_.setText(""); + Element frgrt_ = xml.addElement("frgrt"); + frgrt_.setText(""); + Element zahls_ = xml.addElement("zahls"); + zahls_.setText(""); + Element reprf_ = xml.addElement("reprf"); + reprf_.setText(""); + Element name2_ = xml.addElement("name2"); + name2_.setText(""); + Element name3_ = xml.addElement("name3"); + name3_.setText(""); + return WeaResult.success(document.asXML()); + } + + /** + * 根据部门ID获取部门名称 + * + * @param deptid 部门ID,用于查询部门名称 + * @return 部门名称如果找到对应的部门则返回名称,否则返回空字符串 + */ + private String getDepartmentname(String deptid){ + // 构造SQL查询语句,根据部门ID查询部门名称 + String sql = "select name from eteams.dbo.department where id = " + deptid; + // 记录查询语句日志 + log.info("getDepartmentname sql--" + sql); + // 创建RecordSet对象用于执行SQL查询 + RecordSet rs = new RecordSet(); + // 获取连接池名称 + String poolname_oj = CONN_TYPE.hrm.getType(); + // 执行SQL查询 + boolean b = rs.execute(sql, poolname_oj); + // 记录执行结果日志 + log.info("getDepartmentname b--" + b); + // 如果查询到结果,则返回部门名称 + if (rs.next()) { + return rs.getString("name"); + } + // 如果没有查询到结果,则返回空字符串 + return ""; + } + + /** + * 根据职位ID获取职位名称 + * + * @param jobid 职位ID,用于查询特定职位的名称 + * @return 职位名称如果找到对应的职位名称,则返回该名称;否则返回空字符串 + */ + private String getJobTitlesname(String jobid){ + // 构造SQL查询语句,用于从数据库中获取指定职位ID的名称 + String sql = "select name from eteams.dbo.position where id = " + jobid; + + // 记录查询语句的日志信息 + log.info("getJobTitlesname sql--" + sql); + + // 创建RecordSet对象用于执行数据库查询操作 + RecordSet rs = new RecordSet(); + + // 获取数据库连接池名称 + String poolname_oj = CONN_TYPE.hrm.getType(); + + // 执行数据库查询操作,并记录操作结果的日志信息 + boolean b = rs.execute(sql, poolname_oj); + log.info("getJobTitlesname b--" + b); + + // 如果查询结果存在下一条记录,则返回该记录的名称字段 + if(rs.next()) { + return rs.getString("name"); + } + + // 如果没有查询到任何记录,则返回空字符串 + return ""; + } +}