diff --git a/src/main/java/com/engine/htxc/apprchalink/contract/cmd/ContractLinkCmd.java b/src/main/java/com/engine/htxc/apprchalink/contract/cmd/ContractLinkCmd.java new file mode 100644 index 0000000..c8389ee --- /dev/null +++ b/src/main/java/com/engine/htxc/apprchalink/contract/cmd/ContractLinkCmd.java @@ -0,0 +1,60 @@ +package com.engine.htxc.apprchalink.contract.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractLinkCmd.java + * @createTime 2022年07月26日 14:42:00 + */ +public class ContractLinkCmd extends AbstractCommonCommand> { + + public ContractLinkCmd(Map params) { + this.params = params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + List> list=(List>) params.get("data"); + if(list==null ||list.size()<=0 ){ + return null; + } + List wherelist=new ArrayList<>(); + list.forEach((Map map)->{ + String deptid= Util.null2String(map.get("deptid")); + String htlxid=Util.null2String(map.get("htlxid")); + if(!StringUtils.isBlank(htlxid) && !StringUtils.isBlank(deptid)){ + wherelist.add("(','||htlxNew||',' like '%,"+htlxid+",%' and fqbmid='"+deptid +"')"); + } + }); + if(wherelist.size()<=0){ + return null; + } + String sql="select * from uf_contapprcha where 1=1 and "; + sql+=wherelist.stream().collect(Collectors.joining("or")); + List retlist=new DbTools().getSqlToList(sql,(Object) null); + if(list==null ){ + return null; + } + Map retmap=new HashMap(1); + retmap.put("data",retlist); + return retmap; + } +} diff --git a/src/main/java/com/engine/htxc/apprchalink/contract/service/ContractLinkService.java b/src/main/java/com/engine/htxc/apprchalink/contract/service/ContractLinkService.java new file mode 100644 index 0000000..2cb4f06 --- /dev/null +++ b/src/main/java/com/engine/htxc/apprchalink/contract/service/ContractLinkService.java @@ -0,0 +1,18 @@ +package com.engine.htxc.apprchalink.contract.service; + +import com.alibaba.fastjson.JSONObject; +import weaver.hrm.User; + +import java.util.Map; + +/** + * @Remark 合同模块审批链 + * @author K1810015 + * @version 1.0.0 + * @ClassName uf_contapprcha.java + * @createTime 2022年07月26日 14:25:00 + */ +public interface ContractLinkService { + + public JSONObject getnextuser(JSONObject jsonobject ); +} diff --git a/src/main/java/com/engine/htxc/apprchalink/contract/service/impl/ContractLinkServiceImpl.java b/src/main/java/com/engine/htxc/apprchalink/contract/service/impl/ContractLinkServiceImpl.java new file mode 100644 index 0000000..889b0a5 --- /dev/null +++ b/src/main/java/com/engine/htxc/apprchalink/contract/service/impl/ContractLinkServiceImpl.java @@ -0,0 +1,62 @@ +package com.engine.htxc.apprchalink.contract.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.core.impl.Service; +import com.engine.htxc.apprchalink.cinterface.ApprachaLink; +import com.engine.htxc.apprchalink.cinterface.ApprachaLinkBuilder; +import com.engine.htxc.apprchalink.contract.cmd.ContractLinkCmd; +import com.engine.htxc.apprchalink.contract.service.ContractLinkService; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Remark 合同模块审批链 + * @author K1810015 + * @version 1.0.0 + * @ClassName uf_contapprcha.java + * @createTime 2022年07月26日 14:25:00 + */ +public class ContractLinkServiceImpl extends Service implements ContractLinkService { + + @Override + public JSONObject getnextuser(JSONObject jsonObject) { + try { + + String data=Util.null2String(jsonObject.get("data")); + String fieldids=Util.null2String(jsonObject.get("fieldids")); + if(StringUtils.isBlank(data) || StringUtils.isBlank(fieldids)){ + return null; + } + List lisltmap= JSON.parseArray(data,Map.class); + Map map=new HashMap<>(); + map.put("data",lisltmap); + List fieldlist= Arrays.stream(fieldids.split(",")).collect(Collectors.toList()); + Map datanull= fieldlist.stream().collect(Collectors.toMap( + p->p.toString(),p->"" + )); + + Map retmap = commandExecutor.execute(new ContractLinkCmd(map)); + if (retmap == null || retmap.size() < 0) { + return new JSONObject(datanull); + } + List> listmap = (List>) retmap.get("data"); + if (listmap == null || listmap.size() <= 0) { + return new JSONObject(datanull); + } + Map datamap=new ApprachaLinkBuilder>().collback(listmap,fieldlist); + if(datamap==null || datamap.size()<=0){ + return new JSONObject(datanull); + + } + return new JSONObject(datamap); + }catch (Exception e){ + return null; + } + } +} diff --git a/src/main/java/com/engine/htxc/cggl/service/CgglService.java b/src/main/java/com/engine/htxc/cggl/service/CgglService.java new file mode 100644 index 0000000..1862cc1 --- /dev/null +++ b/src/main/java/com/engine/htxc/cggl/service/CgglService.java @@ -0,0 +1,15 @@ +package com.engine.htxc.cggl.service; + +import java.util.Map; + +public interface CgglService { + + Map insertLxxm(Map paramsMap); + + Map insertCgxm(Map paramsMap); + + Map itcgInsertCgxm(Map paramsMap); + + String getModeUrl(); + +} diff --git a/src/main/java/com/engine/htxc/cggl/service/impl/CgglServiceImpl.java b/src/main/java/com/engine/htxc/cggl/service/impl/CgglServiceImpl.java new file mode 100644 index 0000000..4accd05 --- /dev/null +++ b/src/main/java/com/engine/htxc/cggl/service/impl/CgglServiceImpl.java @@ -0,0 +1,205 @@ +package com.engine.htxc.cggl.service.impl; + +import com.alibaba.fastjson.JSON; +import com.engine.core.impl.Service; +import com.engine.htxc.cggl.service.CgglService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.workflow.logging.Logger; +import weaver.workflow.logging.LoggerFactory; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810039 + * @version: 1.0 + * @CreateDate: 2022-08-25 16:15 + * @Description: + * @ModifyLog: + **/ +@Slf4j +public class CgglServiceImpl extends Service implements CgglService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Override + public Map insertLxxm(Map paramsMap) { + logger.info("IT立项参数:"+ JSON.toJSONString(paramsMap)); + Map map = new HashMap<>(); + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String modeid = pb.getPropName("lxxm_modeid"); + String xmbh = String.valueOf(paramsMap.get("xmbh")); + String itxmbh = String.valueOf(paramsMap.get("itxmbh")); + String xglc = String.valueOf(paramsMap.get("itgllc")); + String xmcjrq = String.valueOf(paramsMap.get("xmcjrq")); + String xmmc = String.valueOf(paramsMap.get("xmmc")); + String ysje = String.valueOf(paramsMap.get("ysje")); + String xmfzbm = String.valueOf(paramsMap.get("xmfzbm")); + String xmfzr = String.valueOf(paramsMap.get("xmfzr")); + String sjghxm = String.valueOf(paramsMap.get("sjghxm")); + String ly = String.valueOf(paramsMap.get("ly")); + String zt = String.valueOf(paramsMap.get("zt")); + String xmlx = String.valueOf(paramsMap.get("xmlx")); + String lxlcmc = String.valueOf(paramsMap.get("lxlcmc")); + + DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("HH:mm:ss"); + LocalDateTime now2 = LocalDateTime.now(); + String nowDateStr = now2.format(formatter1); + String nowTimeStr = now2.format(formatter2); + String insertSql="insert into UF_CGXMGL (lxlcmc,xmbh,itxmbh,xglc,xmcjrq,xmmc,ysje,xmfzbm,xmfzr,sjghxm,ly,zt,xmlx,FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + logger.info("insertSql"+insertSql); + try { + boolean b = rs.executeUpdate(insertSql,lxlcmc,xmbh,itxmbh,xglc,xmcjrq,xmmc,ysje,xmfzbm,xmfzr,sjghxm,ly,zt,xmlx,modeid,'1','0',nowDateStr,nowTimeStr); + if (b){ + // 建模权限重构 + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + if (rs.execute("select max(id) as maxid from UF_CGXMGL") && rs.next()){ + int billid = rs.getInt("maxid"); + modeRightInfo.editModeDataShare(1, Integer.parseInt(modeid),billid); + } + map.put("success",true); + }else { + map.put("success",false); + } + } catch (NumberFormatException e) { + logger.error("执行插入出错:",e); + } + return map; + } + + @Override + public Map insertCgxm(Map paramsMap) { + logger.info("采购立项参数:"+ JSON.toJSONString(paramsMap)); + Map map = new HashMap<>(); + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String modeid = pb.getPropName("cgxm_modeid"); + + String cgxmlx = ""; + String itxmbh = String.valueOf(paramsMap.get("cgxmlx")); + + // 通过 itxmbh 项目编号 到立项项目建模中匹配itxmbh与此相等的数据id,赋值给 采购项目立项 + if (StringUtils.isNotBlank(itxmbh)){ + String sql = "select id from UF_CGXMGL where itxmbh like '%"+itxmbh+"%'"; + logger.info(sql); + rs.execute(sql); + if (rs.next()){ + cgxmlx = Util.null2String(rs.getString("id")); + } + } + + DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("HH:mm:ss"); + LocalDateTime now2 = LocalDateTime.now(); + String nowDateStr = now2.format(formatter1); + String nowTimeStr = now2.format(formatter2); + + String insertSql="insert into uf_cgxq (cgxmlx,FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME) values(?,?,?,?,?,?)"; + logger.info(insertSql); + boolean b = rs.executeUpdate(insertSql,cgxmlx,modeid,'1','0',nowDateStr,nowTimeStr); + if (b){ + // 建模权限重构 + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + if (rs.execute("select max(id) as maxid from uf_cgxq") && rs.next()){ + int billid = rs.getInt("maxid"); + modeRightInfo.editModeDataShare(1, Integer.parseInt(modeid),billid); + } + map.put("success",true); + }else { + map.put("success",false); + } + return map; + } + + @Override + public Map itcgInsertCgxm(Map paramsMap) { + logger.info("采购立项参数:"+ JSON.toJSONString(paramsMap)); + Map map = new HashMap<>(); + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String modeid = pb.getPropName("cgxm_modeid"); + + String cgxmlx = ""; + String xmmc = String.valueOf(paramsMap.get("xmmc")); + String xmlb = String.valueOf(paramsMap.get("xmlb")); + String xmlx1 = String.valueOf(paramsMap.get("xmlx1")); + String xmbh = String.valueOf(paramsMap.get("xmbh")); + String cgfs = String.valueOf(paramsMap.get("cgfs")); + String gys = String.valueOf(paramsMap.get("gys")); + String cgnr = String.valueOf(paramsMap.get("cgnr")); + String xmfzr = String.valueOf(paramsMap.get("xmfzr")); + String ysje = String.valueOf(paramsMap.get("ysje")); + String ysssbm = String.valueOf(paramsMap.get("ysssbm")); + String cgsl = String.valueOf(paramsMap.get("cgsl")); + String bz = String.valueOf(paramsMap.get("bz")); + String fj = String.valueOf(paramsMap.get("fj")); + String xglc = String.valueOf(paramsMap.get("itgllc")); + String cgzd1 = String.valueOf(paramsMap.get("cgzd1")); + String cgtk1 = String.valueOf(paramsMap.get("cgtk1")); + String ly = String.valueOf(paramsMap.get("ly")); + String zt = String.valueOf(paramsMap.get("zt")); + String cjrq = String.valueOf(paramsMap.get("cjrq")); + String itxmbh = String.valueOf(paramsMap.get("cgxmlx")); + + // 通过 itxmbh 项目编号 到立项项目建模中匹配itxmbh与此相等的数据id,赋值给 采购项目立项 + if (StringUtils.isNotBlank(itxmbh)){ + String sql = "select id from UF_CGXMGL where itxmbh like '%"+itxmbh+"%'"; + logger.info(sql); + rs.execute(sql); + if (rs.next()){ + cgxmlx = Util.null2String(rs.getString("id")); + } + } + + DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("HH:mm:ss"); + LocalDateTime now2 = LocalDateTime.now(); + String nowDateStr = now2.format(formatter1); + String nowTimeStr = now2.format(formatter2); + + String insertSql="insert into uf_cgxq (cgxmlx,xmmc,xmlb,xmlx1,xmbh,cgfs,gys,cgnr,xmfzr,ysssbm,cgsl,bz,fj,xglc,cgzd1,cgtk1,ysje,ly,zt,cjrq,FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + logger.info(insertSql); + boolean b = rs.executeUpdate(insertSql,cgxmlx,xmmc,xmlb,xmlx1,xmbh,cgfs,gys,cgnr,xmfzr,ysssbm,cgsl,bz,fj,xglc,cgzd1,cgtk1,ysje,ly,zt,cjrq,modeid,'1','0',nowDateStr,nowTimeStr); + if (b){ + // 建模权限重构 + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + if (rs.execute("select max(id) as maxid from uf_cgxq") && rs.next()){ + int billid = rs.getInt("maxid"); + modeRightInfo.editModeDataShare(1, Integer.parseInt(modeid),billid); + } + map.put("success",true); + }else { + map.put("success",false); + } + return map; + } + + /** + * 移动端点击项目编号跳转建模,此方法用于获取跳转URL + */ + @Override + public String getModeUrl() { + log.info("--impl--getModeUrl--"); + PropBean propBean = new PropBean(); + String appHomepageId = propBean.getPropName("cggl_appHomepageId"); + log.info("appHomepageId:[{}]",appHomepageId); + String url = "/mobilemode/mobile/view.html?appHomepageId="+appHomepageId+"&billid="; + return url; + } + +} + diff --git a/src/main/java/com/engine/htxc/cggl/web/CgglAction.java b/src/main/java/com/engine/htxc/cggl/web/CgglAction.java new file mode 100644 index 0000000..7fbfa7d --- /dev/null +++ b/src/main/java/com/engine/htxc/cggl/web/CgglAction.java @@ -0,0 +1,109 @@ +package com.engine.htxc.cggl.web; + +import com.alibaba.fastjson.JSON; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.cggl.service.CgglService; +import com.engine.htxc.cggl.service.impl.CgglServiceImpl; +import com.engine.htxc.common.EcologyResponseDTO; +import lombok.extern.slf4j.Slf4j; +import weaver.workflow.logging.Logger; +import weaver.workflow.logging.LoggerFactory; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810039 + * @version: 1.0 + * @CreateDate: 2022-08-25 16:12 + * @Description: + * @ModifyLog: + **/ +@Slf4j +public class CgglAction { + CgglService getService(){ + return (CgglService) ServiceUtil.getService(CgglServiceImpl.class); + } + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @POST + @Path("/convertLxxm") + @Produces({MediaType.TEXT_PLAIN}) + public String convertLxxm(Map paramsMap){ + logger.info("it立项action参数:"+paramsMap); + Map apidatas = new HashMap(); + logger.info("----convertLxxm-----"); + try{ + //Map param = ParamUtil.request2Map(request); + apidatas = getService().insertLxxm(paramsMap); + apidatas.put("api_status", true); + }catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSON.toJSONString(apidatas); + } + + @POST + @Path("/convertCgxm") + @Produces({MediaType.TEXT_PLAIN}) + public String convertCgxm(Map paramsMap){ + logger.info("采购项目action参数:"+paramsMap); + Map apidatas = new HashMap(); + logger.info("----convertCgxm-----"); + try{ + apidatas = getService().insertCgxm(paramsMap); + apidatas.put("api_status", true); + }catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSON.toJSONString(apidatas); + } + + @POST + @Path("/itcgConvertCgxm") + @Produces({MediaType.TEXT_PLAIN}) + public String itcgConvertCgxm(Map paramsMap){ + logger.info("it采购转建模action参数:"+paramsMap); + Map apidatas = new HashMap(); + logger.info("----itcgConvertCgxm-----"); + try{ + apidatas = getService().itcgInsertCgxm(paramsMap); + apidatas.put("api_status", true); + }catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSON.toJSONString(apidatas); + } + + @GET + @Path("/getModeUrl") + @Produces({MediaType.TEXT_PLAIN}) + public String getModeUrl(){ + Map apidatas = new HashMap(); + log.info("----getModeUrl----"); + try{ + String url = getService().getModeUrl(); + log.info("返回数据:[{}]",url); + return EcologyResponseDTO.successJson(url); + }catch (Exception e) { + log.error("getModeUrl接口异常:",e); + return EcologyResponseDTO.failJson("接口异常请检查"); + } + } + +} + diff --git a/src/main/java/com/engine/htxc/cgglpt/service/CgglptService.java b/src/main/java/com/engine/htxc/cgglpt/service/CgglptService.java new file mode 100644 index 0000000..3aac7f3 --- /dev/null +++ b/src/main/java/com/engine/htxc/cgglpt/service/CgglptService.java @@ -0,0 +1,13 @@ +package com.engine.htxc.cgglpt.service; + +public interface CgglptService { + boolean allowDelete(String ids); + + Boolean scrapPurchase(String id); + + void recovery(String id); + + boolean getWorkFlowByJmid(String id); + + String triggerWorkflow(String userId,String billId); +} diff --git a/src/main/java/com/engine/htxc/cgglpt/service/impl/CgglptServiceImpl.java b/src/main/java/com/engine/htxc/cgglpt/service/impl/CgglptServiceImpl.java new file mode 100644 index 0000000..8e733a4 --- /dev/null +++ b/src/main/java/com/engine/htxc/cgglpt/service/impl/CgglptServiceImpl.java @@ -0,0 +1,297 @@ +package com.engine.htxc.cgglpt.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.cgglpt.service.CgglptService; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htxc.cgglpt.CheckComplete; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.RequestService; +import weaver.workflow.request.RequestComInfo; +import weaver.workflow.workflow.WorkflowComInfo; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +public class CgglptServiceImpl extends Service implements CgglptService { + @Override + public boolean allowDelete(String ids) { + RecordSet rs = new RecordSet(); + String sql = "select * from uf_cgxq where id ="+ids ; + JAVATools.writelog("采购平台删除sql"+sql); + rs.execute(sql); + boolean flag = false; + while(rs.next()){ + String zt = rs.getString("zt"); + if(Objects.equals("1",zt)){ + flag = true; + } + } + if(flag){ + return flag; + }else{ + String deleteSsql = "delete from uf_cgxq where id ="+ids; + JAVATools.writelog("采购平台删除deleteSsql"+deleteSsql); + rs.execute(deleteSsql); + return flag; + } + } + + @Override + public Boolean scrapPurchase(String id) { + //select isstopped from workflow_requestbase where isstopped is not null + //select * from workflow_currentoperator where requestid = 5788792 and iscomplete = 1 + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String table = pb.getPropName("tycgsq_table"); + String tycgrwd= pb.getPropName("tycgrwd_tablename"); + Boolean acomplete = isComplete(table, id,"_dt4"); + Boolean bcomplete = isComplete(tycgrwd, id,"_dt5"); + JAVATools.writelog("废弃acomplete"+acomplete); + JAVATools.writelog("废弃bcomplete"+bcomplete); + if(acomplete || bcomplete ){ + return true; + }else{ + String sql = " update uf_cgxq set zt = 2 where id ="+id; + JAVATools.writelog("废弃sql"+sql); + rs.execute(sql); + return false; + } + + } + + @Override + public void recovery(String id) { + RecordSet rs = new RecordSet(); + String sql = " update uf_cgxq set zt = 1 where id ="+id; + JAVATools.writelog("采购平台恢复"+sql); + rs.execute(sql); + } + + @Override + public boolean getWorkFlowByJmid(String billid) { + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String tycgsqTable = pb.getPropName("tycgsq_table"); + String tycgrwdTablename = pb.getPropName("tycgrwd_tablename"); + String tycgsqRequestid = getRequestidByBillId(tycgsqTable,Integer.parseInt(billid),"_dt4"); + JAVATools.writelog("校验发起招标请示的按钮tycgsqRequestid"+tycgsqRequestid); + String tycgrwdRequestid = getRequestidByBillId(tycgrwdTablename,Integer.parseInt(billid),"_dt5"); + JAVATools.writelog("校验发起招标请示的按钮tycgrwdRequestid"+tycgrwdRequestid); + CheckComplete check = new CheckComplete(); + if(check.isComplete(tycgsqRequestid)&&check.isComplete(tycgrwdRequestid)){ + return true; + }else{ + return false; + } + + } + + @Override + public String triggerWorkflow(String userId,String billId) { + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String sql = "select * from uf_cgxq where id = "+billId; + rs.execute(sql); + if(rs.next()){ + String xmmc = rs.getString("xmmc"); + String cgxmbh = rs.getString("xmbh"); + String cglb = rs.getString("xmlb"); + HashMap map = new HashMap<>(); + map.put("cgxmmc",xmmc); + map.put("cgxmbh",cgxmbh); + map.put("cglb",cglb); + map.put("cgxmc",billId); + String requestNmae = "合同起草信息预设-"+xmmc; + map.put("bt",requestNmae); + map.put("ngr",userId); + Map hrm = getHrm(userId); + map.put("szbm",hrm.get("departmentid")); + map.put("szjg",hrm.get("supdepid")); + map.put("jjcd","0"); + map.put("lxfs",hrm.get("phone")); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + map.put("ngrq",format.format(new Date())); + String htysxxWorkflowId = pb.getPropName("htysxxWorkflowId");//合同预设id + String requestId = WorkflowCreateByRequestMap(userId, htysxxWorkflowId, requestNmae, "0", map); + return requestId; + } + return ""; + + } + public Map getHrm(String ngr){ + HashMap result = new HashMap<>(); + RecordSet rs = new RecordSet(); + String hrmSql = "select * from hrmresource where id = "+ngr; + rs.execute(hrmSql); + rs.next(); + String departmentid = rs.getString("departmentid"); + result.put("phone",rs.getString("mobile")); + result.put("departmentid",departmentid); + String deptSql = "select * from hrmdepartment where id = "+departmentid; + rs.execute(deptSql); + rs.next(); + result.put("supdepid",rs.getString("supdepid")); + return result; + } + /** + * + * @Title: WorkflowCreateByMainTableMap + * @param @param creatorId 创建人Id + * @param @param workflowId 流程Id + * @param @param requestName 请求标题 + * @param @param IsNextFlow 是否提交到下一节点 + * @param @param requestMap Map格式的主表数据=<字段名称,字段值> + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String WorkflowCreateByRequestMap(String creatorId ,String workflowId ,String requestName ,String IsNextFlow,Map requestMainMap) + { + BaseBean bs = new BaseBean(); + bs.writeLog("-----创建流程传递的参数个数--------"); + bs.writeLog("creatorId:"+creatorId); + bs.writeLog("workflowId:"+workflowId); + bs.writeLog("requestName:"+requestName); + bs.writeLog("IsNextFlow:"+IsNextFlow); + + String requestid = ""; + RequestInfo requestInfo = new RequestInfo(); + requestInfo.setCreatorid(creatorId);//创建人Id + requestInfo.setWorkflowid(workflowId);//工作流Id + requestInfo.setDescription(requestName);//请求标题 + if(!"".equals(IsNextFlow)) + { + requestInfo.setIsNextFlow(IsNextFlow); + } + + //主表字段 + MainTableInfo mainTableInfo = new MainTableInfo(); + Property[] propertyArray = new Property[requestMainMap.size()]; + int p = 0; + for (Map.Entry entry : requestMainMap.entrySet()) + { + propertyArray[p] = new Property(); + propertyArray[p].setName(Util.null2String(entry.getKey())); + propertyArray[p].setValue(Util.null2String(entry.getValue())); + bs.writeLog("\r\n---p="+p+"---Key="+entry.getKey()+"---Value="+entry.getValue()); + p++; + } + bs.writeLog("-----创建流程传递的参数个数p="+p); + mainTableInfo.setProperty(propertyArray); + requestInfo.setMainTableInfo(mainTableInfo); + + RequestService service = new RequestService(); + try { + //流程 + try { + requestid = service.createRequest(requestInfo);//创建请求id + } catch (Exception e) { + bs.writeLog("======="+e.getMessage()); + } + //String userId = requestInfo.getLastoperator();//请求最后的操作者 + //记录日志 + StringBuffer sbf = new StringBuffer("\r\n-----xwd创建工作流记录日志开始"); + WorkflowComInfo wfcif =new WorkflowComInfo(); + RequestComInfo rcif = new RequestComInfo(); + ResourceComInfo rscif = new ResourceComInfo(); + sbf.append("\r\n-----姓名:"+rscif.getLastname(rcif.getRequestCreater(requestid))); + sbf.append("\r\n-----时间:"+rcif.getRequestCreateTime(requestid)); + sbf.append("\r\n-----创建流程:"+wfcif.getWorkflowname(workflowId)); + sbf.append("\r\n-----请求:"+rcif.getRequestname(requestid)); + sbf.append("\r\n-----请求:"+requestid); + sbf.append("\r\n-----创建工作流记录日志结束"); + bs.writeLog(sbf.toString()); + System.out.println(""+sbf.toString()); + } catch (Exception e) { + bs.writeLog("错误:" + e); + System.out.println("错误:" + e); + } + return requestid; + } + + private String getRequestidByBillId(String table, int billid, String dt) { + RecordSet rs = new RecordSet(); + String sql = "select * from "+table+dt+" where xmid = "+billid; + rs.execute(sql); + if(rs.next()){ + String mainid = rs.getString("mainid"); + String mainSql = "select requestid from "+table+" where id = "+mainid; + rs.execute(mainSql); + if(rs.next()){ + return rs.getString("requestid"); + } + } + return ""; + } + /** + * 用来判断当前的流程是否有在途流程 + * @param table + * @param id + * @return + */ + public Boolean isComplete(String table, String id,String dt) { + RecordSet rs = new RecordSet(); + RecordSet mainRs = new RecordSet(); + RecordSet stopRs = new RecordSet(); + RecordSet completeRs = new RecordSet(); + String sql = "select * from "+table+dt+" where xmid = "+id; + rs.execute(sql); + ArrayList list = new ArrayList<>(); + //这个flag用来判断是有流程,没有流程不可以废弃 + + while(rs.next()){ + + String mainid = rs.getString("mainid"); + String mainSql = "select * from " + table+ " where id = "+mainid; + mainRs.execute(mainSql); + mainRs.next(); + String requestid = mainRs.getString("requestid"); + String stopSql = "select a.isremark,a.iscomplete ,b.isstopped from workflow_currentoperator a right join workflow_requestbase b " + + "on a.requestid = b.requestid where a.requestid = "+requestid; + completeRs.execute(stopSql); + ArrayList completes = new ArrayList<>(); + while (completeRs.next()){ + String iscomplete = completeRs.getString("iscomplete"); + String isstopped = completeRs.getString("isstopped"); + if(Objects.equals(iscomplete,"1")){ + completes.add(1); + } else if(Objects.equals(isstopped,"1")){ + completes.add(1); + }else{ + completes.add(0); + } + } + List collect = completes.stream().filter((item) -> { + return item > 0; + }).collect(Collectors.toList()); + if(collect.size()>0){ + list.add("1"); + }else{ + list.add("0"); + } + + } + Iterator iterator = list.iterator(); + while(iterator.hasNext()){ + String next = iterator.next(); + if(Objects.equals(next,"0")){ + return true; + } + } +// if(!flag){ +// return true; +// }else{ +// return false; +// } + return false; + } + +} diff --git a/src/main/java/com/engine/htxc/cgglpt/web/CgglptAction.java b/src/main/java/com/engine/htxc/cgglpt/web/CgglptAction.java new file mode 100644 index 0000000..0a43a83 --- /dev/null +++ b/src/main/java/com/engine/htxc/cgglpt/web/CgglptAction.java @@ -0,0 +1,154 @@ +package com.engine.htxc.cgglpt.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.cgglpt.service.CgglptService; +import com.engine.htxc.cgglpt.service.impl.CgglptServiceImpl; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; + +public class CgglptAction { + + public CgglptService getCgglptService (){ + return ServiceUtil.getService(CgglptServiceImpl.class); + } + /** + * 这个接口用来判断采购项目列表是否允许删除 + * @param request + * @param response + * @return + */ + @GET + @Path("/allowDelete") + @Produces({MediaType.TEXT_PLAIN}) + public String allowDelete(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String ids = request.getParameter("ids"); + boolean b = getCgglptService().allowDelete(ids); + map.put("code",200); + map.put("msg","success"); + map.put("data",b); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + + /** + * 这个接口用来废弃采购项目 + * @param request + * @param response + * @return + */ + @GET + @Path("/scrapPurchase") + @Produces({MediaType.TEXT_PLAIN}) + public String scrapPurchase(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String id = request.getParameter("id"); + Boolean aBoolean = getCgglptService().scrapPurchase(id); + map.put("code",200); + map.put("msg","success"); + map.put("data",aBoolean); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + + /** + * 这个接口用来恢复 + * @param request + * @param response + * @return + */ + @GET + @Path("/recovery") + @Produces({MediaType.TEXT_PLAIN}) + public String recovery(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String id = request.getParameter("id"); + getCgglptService().recovery(id); + map.put("code",200); + map.put("msg","success"); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + /** + * 通过建模id判断当前的采购项目是否存在在途流程 + */ + @GET + @Path("/getWorkFlowByJmid") + @Produces({MediaType.TEXT_PLAIN}) + public String getWorkFlowByJmid(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String id = request.getParameter("id"); + boolean flag = getCgglptService().getWorkFlowByJmid(id); + map.put("code",200); + map.put("msg","success"); + map.put("data",flag); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + /** + * 触发合同预设流程 + */ + @GET + @Path("/triggerWorkflow") + @Produces({MediaType.TEXT_PLAIN}) + public String triggerWorkflow(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String userId = request.getParameter("userId"); + String billId = request.getParameter("billId"); + String requestId = getCgglptService().triggerWorkflow(userId, billId); + map.put("code",200); + map.put("msg","success"); + map.put("data",requestId); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + /** + * 这个接口使用分送出来的节点,更新采购项目明细表1 + */ + @GET + @Path("/fsUpdateDt1") + @Produces({MediaType.TEXT_PLAIN}) + public String fsUpdateDt1(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String userId = request.getParameter("userId"); + String billId = request.getParameter("billId"); + String requestId = getCgglptService().triggerWorkflow(userId, billId); + map.put("code",200); + map.put("msg","success"); + map.put("data",requestId); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/common/EcologyResponseDTO.java b/src/main/java/com/engine/htxc/common/EcologyResponseDTO.java new file mode 100644 index 0000000..c29d187 --- /dev/null +++ b/src/main/java/com/engine/htxc/common/EcologyResponseDTO.java @@ -0,0 +1,72 @@ +package com.engine.htxc.common; + +import com.alibaba.fastjson.JSON; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810039 + * @version: 1.0 + * @CreateDate: 2022-09-21 17:51 + * @Description: 统一返回类 + * @ModifyLog: + **/ +public class EcologyResponseDTO { + public static final String SUCCESS_CODE = "0"; + public static final String FAIL_CODE = "-1"; + + public EcologyResponseDTO(String code, String msg, T data){ + this.code=code; + this.msg=msg; + this.data=data; + } + + public static EcologyResponseDTO success(T data){ + return new EcologyResponseDTO(SUCCESS_CODE,"success",data); + } + public static String successJson(Object data){ + return JSON.toJSONString(new EcologyResponseDTO(SUCCESS_CODE,"success",data)); + } + + public static String failJson(String msg){ + return JSON.toJSONString(new EcologyResponseDTO(FAIL_CODE,msg,null)); + } + + private String code; + private String msg; + private T data; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "EcologyResponseDTO{" + + "code='" + code + '\'' + + ", msg='" + msg + '\'' + + ", data=" + data + + '}'; + } +} + diff --git a/src/main/java/com/engine/htxc/common/ParamValidException.java b/src/main/java/com/engine/htxc/common/ParamValidException.java new file mode 100644 index 0000000..a3ca4ac --- /dev/null +++ b/src/main/java/com/engine/htxc/common/ParamValidException.java @@ -0,0 +1,19 @@ +package com.engine.htxc.common; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2917:03 + * @Description: + * @ModifyLog: + **/ +public class ParamValidException extends RuntimeException{ + public ParamValidException(){ + } + + public ParamValidException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/engine/htxc/common/R.java b/src/main/java/com/engine/htxc/common/R.java new file mode 100644 index 0000000..4536ed3 --- /dev/null +++ b/src/main/java/com/engine/htxc/common/R.java @@ -0,0 +1,55 @@ +package com.engine.htxc.common; + +import org.apache.http.HttpStatus; +import java.util.HashMap; +import java.util.Map; + +/** + * 通用返回数据格式 + */ +public class R extends HashMap { + private static final long serialVersionUID = 1L; + + public R() { + put("code", 200); + put("success",true); + } + + public static R error() { + return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "内部错误,请联系管理员"); + } + + public static R error(String msg) { + return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg); + } + + public static R error(int code, String msg) { + R r = new R(); + r.put("code", code); + r.put("msg", msg); + r.put("success",false); + return r; + } + + public static R ok(String msg) { + R r = new R(); + r.put("msg", msg); + return r; + } + + public static R ok(Map map) { + R r = new R(); + r.putAll(map); + return r; + } + + public static R ok() { + return new R(); + } + + @Override + public R put(String key, Object value) { + super.put(key, value); + return this; + } +} diff --git a/src/main/java/com/engine/htxc/common/dto/EcologyCommonResponseDTO.java b/src/main/java/com/engine/htxc/common/dto/EcologyCommonResponseDTO.java new file mode 100644 index 0000000..3fea4eb --- /dev/null +++ b/src/main/java/com/engine/htxc/common/dto/EcologyCommonResponseDTO.java @@ -0,0 +1,72 @@ +package com.engine.htxc.common.dto; + + +import com.alibaba.fastjson.JSON; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2915:23 + * @Description: + * @ModifyLog: + **/ +public class EcologyCommonResponseDTO { + public static final String SUCCESS_CODE = "0"; + public static final String FAIL_CODE = "-1"; + + public EcologyCommonResponseDTO(String code,String msg,T data){ + this.code=code; + this.msg=msg; + this.data=data; + } + + public static EcologyCommonResponseDTO success(T data){ + return new EcologyCommonResponseDTO(SUCCESS_CODE,"success",data); + } + public static String successJson(Object data){ + return JSON.toJSONString(new EcologyCommonResponseDTO(SUCCESS_CODE,"success",data)); + } + + public static String failJson(String msg){ + return JSON.toJSONString(new EcologyCommonResponseDTO(FAIL_CODE,msg,null)); + } + + private String code; + private String msg; + private T data; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "EcologyCommonResponseDTO{" + + "code='" + code + '\'' + + ", msg='" + msg + '\'' + + ", data=" + data + + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/base/RequestJsonUtil.java b/src/main/java/com/engine/htxc/commonutil/base/RequestJsonUtil.java new file mode 100644 index 0000000..19f4526 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/base/RequestJsonUtil.java @@ -0,0 +1,62 @@ +package com.engine.htxc.commonutil.base; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; + +/** + * @author xf + * @version 1.0.0 + * @ClassName RequestJSsonUtil.java + * @createTime 2021年11月30日 16:18:00 + */ +public class RequestJsonUtil { + + public static JSONObject getRequestJsonObject(HttpServletRequest req) throws IOException { + String value = getRequestJsonString(req); + return JSONObject.parseObject(value); + } + + public static JSONArray getRequestJsonArrray(HttpServletRequest req) throws IOException { + String value = getRequestJsonString(req); + return JSONArray.parseArray(value); + } + + public static String getRequestJsonString(HttpServletRequest req) throws IOException { + String value = req.getMethod(); + return value.equals("GET") ? (new String(req.getQueryString().getBytes("iso-8859-1"), "utf-8")).replaceAll("%22", "\"") : getRequestPostStr(req); + } + + public static byte[] getRequestPostBytes(HttpServletRequest req) throws IOException { + int lenth = req.getContentLength(); + if (lenth < 0) { + return null; + } else { + byte[] bytes = new byte[lenth]; + + int count; + for(int i = 0; i < lenth; i += count) { + count = req.getInputStream().read(bytes, i, lenth - i); + if (count == -1) { + break; + } + } + + return bytes; + } + } + + public static String getRequestPostStr(HttpServletRequest req) throws IOException { + byte[] value = getRequestPostBytes(req); + String encoding = req.getCharacterEncoding(); + if (encoding == null) { + encoding = "UTF-8"; + } + + return new String(value, encoding); + } + + +} diff --git a/src/main/java/com/engine/htxc/commonutil/dao/FileDao.java b/src/main/java/com/engine/htxc/commonutil/dao/FileDao.java new file mode 100644 index 0000000..fcb011b --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/dao/FileDao.java @@ -0,0 +1,100 @@ +package com.engine.htxc.commonutil.dao; + +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.GlobatTools.Uploadcory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName FileDao.java + * @createTime 2022年07月01日 09:43:00 + */ +public class FileDao { + + + public List> getFileInfo(List> doclist){ + List > list=new ArrayList<>(); + if(doclist==null || doclist.isEmpty()){ + return list; + } + List docidslist=new ArrayList<>(); + doclist.forEach((Map map)->{ + String docid=Util.null2String(map.get("docid")); + if(!StringUtils.isBlank(docid)){ + docidslist.add(docid); + } + }); + if( docidslist.isEmpty()){ + return list; + } + String sql2="select t.docid,t.imagefileid,t.imagefilename,dt.doccreatedate as operatedate,dt.doccreatetime as operatetime,tf.imagefiletype,tf.filesize " + + " from docimagefile t join imagefile tf on t.imagefileid=tf.imagefileid " + + " join docdetail dt on t.docid=dt.id where " + + "t.docid in ("+docidslist.stream().map(item->"'"+item+"'").collect(Collectors.joining(","))+")"; + + List> data= JAVATools.GetTableToListMap(sql2,null); + if(data==null || data.size()<=0){ + return list; + } + data.forEach((Map map2)->{ + Map map= Uploadcory.coryfile(Util.null2String(map2.get("docid"))); + if(map!=null && map.size()>0){ + Map returnmap=new HashMap<>(8); + String docid =Util.null2String(map.get("docid")); + String imagefileid =Util.null2String(map.get("imagefileid")); + returnmap.put("docid",docid); + returnmap.put("imagefileid",imagefileid); + returnmap.put("imagefilename",Util.null2String(map2.get("imagefilename"))); + returnmap.put("operatedate",Util.null2String(map2.get("operatedate"))); + returnmap.put("operatetime",Util.null2String(map2.get("operatetime"))); + returnmap.put("imagefiletype",Util.null2String(map2.get("imagefiletype"))); + returnmap.put("filesize",Util.null2String(map2.get("filesize"))); + returnmap.put("docimagefile",Util.null2String(map2.get("docimagefile"))); + list.add(returnmap); + } + }); + + return list; + } + + public List> getNotcoryFileInfo(List docidslist){ + List > list=new ArrayList<>(); + if(docidslist==null || docidslist.size()<=0){ + return list; + } + String sql2="select t.docid,t.imagefileid,t.imagefilename,t.operatedate,t.operatetime,tf.imagefiletype,tf.filesize from docimagefile t join imagefile tf on t.imagefileid=tf.imagefileid where " + + "t.docid in ("+docidslist.stream().map(item->"'"+item+"'").collect(Collectors.joining(","))+")"; + + List> data= JAVATools.GetTableToListMap(sql2,null); + if(data==null || data.size()<=0){ + return list; + } + data.forEach((Map map)->{ + if(map!=null && map.size()>0){ + Map returnmap=new HashMap<>(8); + String docid =Util.null2String(map.get("docid")); + String imagefileid =Util.null2String(map.get("imagefileid")); + returnmap.put("docid",docid); + returnmap.put("imagefileid",imagefileid); + returnmap.put("imagefilename",Util.null2String(map.get("imagefilename"))); + returnmap.put("operatedate",Util.null2String(map.get("operatedate"))); + returnmap.put("operatetime",Util.null2String(map.get("operatetime"))); + returnmap.put("imagefiletype",Util.null2String(map.get("imagefiletype"))); + returnmap.put("filesize",Util.null2String(map.get("filesize"))); + returnmap.put("docimagefile",Util.null2String(map.get("docimagefile"))); + list.add(returnmap); + } + }); + + return list; + } + +} diff --git a/src/main/java/com/engine/htxc/commonutil/db/DbTools.java b/src/main/java/com/engine/htxc/commonutil/db/DbTools.java new file mode 100644 index 0000000..4367de8 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/db/DbTools.java @@ -0,0 +1,593 @@ +package com.engine.htxc.commonutil.db; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.integration.util.StringUtils; + +import weaver.conn.RecordSet; +import weaver.general.Util; + +/** + *

+ * 文件夹将慢慢代替JAVATool(命名不规范、代码不规格)这个文件/p> + *

+ * 关于数据库层面的操作 + *

+ * + * @author K1810015 + * @version 1.0.0 + * @ClassName DbTools.java + * @createTime 2022年04月08日 14:46:00 + */ +public class DbTools { + private RecordSet rs = new RecordSet(); + private RecordSet rsupdate = new RecordSet(); + private RecordSet rsinsert = new RecordSet(); + private RecordSet redelete = new RecordSet(); + public String dbpk = "id"; + + /** + *

+ * 获取requestname + *

+ * + * @title getRequesName + * @author K1810015 + * @updateTime 2022/4/8 14:49 + * @throws + */ + public String getRequesName(Map map) { + String value = ""; + if (map == null || map.size() <= 0) { + return value; + } + String requestid = Util.null2String(map.get("requestid")); + if (StringUtils.isBlank(requestid)) { + return value; + } + String sql = " select requestname from workflow_requestbase where requestid=?"; + Map mapvalue = getsqltomap(sql, requestid); + if (mapvalue == null || mapvalue.size() <= 0) { + return value; + } + return Util.null2String(mapvalue.get("requestname")); + } + + /** + *

+ * 根据requestid 获取表名 + *

+ * + * @title gettablename + * @author K1810015 + * @param requestid + * requestid + * @updateTime 2022/4/25 10:47 + */ + public String getTableName(String requestid) { + if (StringUtils.isBlank(requestid)) { + return ""; + } + String sql = " select abs(t.formid) as formid \n" + " from workflow_base t\n" + + " inner join workflow_requestbase l on l.workflowid = t.id\n" + " where l.requestid=" + requestid + ""; + rs.execute(sql); + String formid = "formtable_main_"; + + if (rs.next()) { + formid = formid + com.weaver.general.Util.getIntValues(rs.getString("formid")); + } + return formid; + } + + /** + *

+ * 根据自有节点的nodenumber获取id + *

+ * + * @title getNodeunnumberToid + * @author K1810015 + * @updateTime 2022/8/15 10:07 + * @throws + */ + public String getNodeunnumberToid(String nodeunnumber) { + if (StringUtils.isBlank(nodeunnumber)) { + return ""; + } + String sql = " select id from workflow_nodebase where unnumber=?"; + return getsqlonevalue(sql, nodeunnumber); + } + + + public String getRequestidByRequestMark(String requestMark) { + RecordSet rs = new RecordSet(); + String requestid = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(requestMark)) { + String sql = "select requestid from workflow_requestbase where requestMark = '" + requestMark + "'"; + rs.executeQuery(sql); + if (rs.next()) { + requestid = Util.null2String(rs.getString("requestid")); + } + } + return requestid; + } + + public String getFormmodeidToTable(String formid){ + if(StringUtils.isBlank(formid)){ + return ""; + } + String sql=" select wb.tablename from modeinfo m inner join workflow_bill wb on m.formid=wb.id where m.id=?"; + return this.getsqlonevalue(sql,formid); + } + + public String getFormidToTable(String formid){ + if(StringUtils.isBlank(formid)){ + return ""; + } + String sql="select tablename from workflow_bill where id=?"; + return this.getsqlonevalue(sql,formid); + } + /** + *

+ * 根据requestid 获取表名 + *

+ * + * @title getUnnumberToTablename + * @author K1810015 + * @param unnumber + * @updateTime 2022/4/25 10:47 + * @throws + */ + public String getUnnumberToTablename(String unnumber) { + if (StringUtils.isBlank(unnumber)) { + return ""; + } + String sql = + " select abs(t.formid) as formid " + " from workflow_base t " + " where t.unnumber='" + unnumber + "'"; + + String formid = "formtable_main_"; + return (formid + getsqlonevalue(sql, (Object)null)); + + } + + //获取主表的number + public String getmainunnumber(String reqid) { + String sql = " select t.unnumber as unnumber \n" + + " from workflow_base t\n" + + " inner join workflow_requestbase l on l.workflowid = t.id\n" + + " where rownum=1 and l.requestid=" + reqid + ""; + String unnumber = getsqlonevalue(sql); + return unnumber; + } + + + + /** + *

+ * 查询sql语句,并且返回一个list + *

+ * + * @title getsqltolist + * @author K1810015 + * @param sql + * sql语句 + * @param value + * 占位符参数 + * @updateTime 2022/8/17 21:17 + */ + public List> getSqlToList(String sql, Object... value) { + List> listreturn = new ArrayList<>(); + + if (value == null || value.length <= 0 || value.length <= 0 || value[0] == null + || StringUtils.isBlank(Util.null2String(value))) { + rs.execute(sql); + } else { + rs.executeQuery(sql, value); + } + + while (rs.next()) { + Map map = new HashMap<>(1); + String[] colnums = rs.getColumnName(); + for (String colnumvalue : colnums) { + map.put(colnumvalue.toLowerCase(), rs.getString(colnumvalue)); + } + listreturn.add(map); + + } + return listreturn; + } + + /** + *

+ * 根据一个request和fieldlist字段获取主表数据 + *

+ * + * @title getRequestidToMap + * @author K1810015 + * @param requestid + * @param fieldlist + * @updateTime 2022/8/17 21:49 + */ + public Map getRequestidToMap(String requestid, List fieldlist) { + Map map = new HashMap<>(1); + if (StringUtils.isBlank(requestid)) { + return map; + } + String tablename = getTableName(requestid); + if (StringUtils.isBlank(tablename)) { + return map; + } + String fieldvalue = "*"; + if (fieldlist != null && fieldlist.size() > 0) { + if (!fieldlist.contains(dbpk)) { + fieldlist.add(dbpk); + } + fieldvalue = fieldlist.stream().collect(Collectors.joining(",")); + } + String sql = "select " + fieldvalue + " from " + tablename + " where requestid=?"; + map = getsqltomap(sql, requestid); + return map; + } + + /** + *

+ * 根据一个request和fieldlist字段获取主表数据-多条 + *

+ * + * @title getRequestidToMapList + * @author K1810015 + * @param requestid + * @param fieldlist + * @updateTime 2022/8/17 21:49 + */ + public List> getRequestidToMapList(String requestid, List fieldlist, int detailnumber) { + List> list = new ArrayList<>(); + if (StringUtils.isBlank(requestid) || detailnumber < 0) { + return list; + } + String tablename = getTableName(requestid); + if (StringUtils.isBlank(tablename)) { + return list; + } + String fieldvalue = "*"; + if (fieldlist != null && fieldlist.size() > 0) { + if (!fieldlist.contains(dbpk)) { + fieldlist.add(dbpk); + } + fieldvalue = fieldlist.stream().collect(Collectors.joining(",")); + } + String sql = "select " + fieldvalue + " from " + tablename + "_dt" + detailnumber + + " where mainid in (select id from " + tablename + " where requestid=?)"; + list = getSqlToList(sql, requestid); + return list; + } + + /** + *

+ * 根据一个sql查询对应的表数据 + *

+ *

+ * ps:只会返回一条数据 + *

+ * + * @title getsqltomap + * @author K1810015 + * @param sql + * @param value + * @updateTime 2022/8/17 21:26 + */ + public Map getsqltomap(String sql, Object... value) { + + Map map = new HashMap<>(1); + if (value == null || value.length <= 0 || value[0] == null || StringUtils.isBlank(Util.null2String(value))) { + rs.execute(sql); + } else { + rs.executeQuery(sql, value); + } + if (rs.next()) { + String[] colnums = rs.getColumnName(); + for (String colnumvalue : colnums) { + map.put(colnumvalue.toLowerCase(), rs.getString(colnumvalue)); + } + + } + return map; + } + + /** + *

+ * 考虑到rs占位符有可能会无效的情况下 + *

+ * + * @title gettabletomap + * @author K1810015 + * @updateTime 2022/8/22 20:33 + */ + public Map gettabletomap(String tablename, Map wheremap) { + Map mapnew = new HashMap<>(1); + if (StringUtils.isBlank(tablename) || wheremap == null || wheremap.size() <= 0) { + return mapnew; + } + + List wherekey = new ArrayList<>(); + wheremap.entrySet().forEach(key -> { + wherekey.add(key.getKey() + "='" + key.getValue() + "'"); + }); + String sql = + " select * from " + tablename + " where 1=1 and " + wherekey.stream().collect(Collectors.joining(" and ")); + mapnew = this.getsqltomap(sql, (Object)null); + return mapnew; + } + + /** + *

+ * 根据一个request和明细表号来获取数据 + *

+ * + * @title gettableall + * @author K1810015 + * @param requestid + * requestid + * @param detailid + * 明细表行 + * @updateTime 2022/8/17 21:24 + */ + public List> gettableall(String requestid, int detailid) { + List> list = new ArrayList<>(); + if (StringUtils.isBlank(requestid)) { + return list; + } + String tablename = getTableName(requestid); + if (StringUtils.isBlank(tablename)) { + return list; + } + String sql = "select * from " + tablename + " where 1=1 and requestid='" + requestid + "'"; + if (detailid > 0) { + sql = "select * from " + tablename + "_dt" + detailid + " where mainid in (" + "select id from " + tablename + + " where 1=1 and requestid='" + requestid + "' )"; + } + list = getSqlToList(sql); + return list; + } + + /** + *

+ * 查询sql的第一个值 + *

+ * + * @title getsqlonevalue + * @author K1810015 + * @updateTime 2022/8/17 21:06 + */ + public String getsqlonevalue(String sql, Object... value) { + + String retvalue = ""; + + if (value == null || value.length <= 0 || value[0] == null || StringUtils.isBlank(Util.null2String(value))) { + rs.execute(sql); + } else { + rs.executeQuery(sql, value); + } + + if (rs.next()) { + String[] colnums = rs.getColumnName(); + if (colnums.length > 0) { + retvalue = Util.null2String(rs.getString(colnums[0])); + } + } + return retvalue; + } + + /** + *

+ * 传递一个特殊的字符获取参数 + *

+ * + * @title gettablefeild + * @author K1810015 + * @param requestid + * @param field + * @updateTime 2022/7/15 10:40 + * @throws + */ + public String getTableField(String requestid, String field) { + if (StringUtils.isBlank(requestid)) { + return ""; + } + String tablename = getTableName(requestid); + if (StringUtils.isBlank(tablename)) { + return ""; + } + String sql = "select " + field + " from " + tablename + " where 1=1 and requestid='" + requestid + "'"; + Map retmap = getsqltomap(sql); + if (retmap == null || retmap.size() <= 0) { + return ""; + } + return Util.null2String(retmap.get(field)); + } + + /** + *

+ * 根据表名、字段值插入 + *

+ * + * @title insert + * @author K1810015 + * @param tablename + * @param setmap + * @updateTime 2022/8/17 22:00 + */ + public boolean insert(String tablename, Map setmap) { + if (StringUtils.isBlank(tablename) || setmap == null || setmap.size() <= 0) { + return false; + } + List setkey = new ArrayList<>(); + List setvalue = new ArrayList<>(); + setmap.entrySet().forEach(key -> { + setkey.add(key.getKey()); + setvalue.add(key.getValue()); + }); + String sql = " insert into " + tablename + "(" + setkey.stream().collect(Collectors.joining(",")) + ") values(" + + setkey.stream().map(item -> "?").collect(Collectors.joining(",")) + ")"; + return rsinsert.executeUpdate(sql, new Object[] {setvalue}); + } + + /** + * 修改数据,根据表名、插入字段的值(Map)、查询条件值(Map)修改数据 + * + * @title updateSql + * @author K1810015 + * @param tablename + * @param setmap + * @param wheremap + * @updateTime 2022/8/17 22:01 + */ + public boolean updateSql(String tablename, Map setmap, Map wheremap) { + if (StringUtils.isBlank(tablename) || setmap == null || setmap.size() <= 0 || wheremap == null + || wheremap.size() <= 0) { + return false; + } + List setkey = new ArrayList<>(); + List setvalue = new ArrayList<>(); + List wherekey = new ArrayList<>(); + + setmap.entrySet().forEach(key -> { + setkey.add(key.getKey() + "=?"); + setvalue.add(key.getValue()); + }); + if (setkey.isEmpty()) { + return false; + } + wheremap.entrySet().forEach(key -> { + wherekey.add(key.getKey() + "='" + key.getValue() + "'"); + }); + if (wherekey.isEmpty()) { + return false; + } + String sql = "update " + tablename + " set " + setkey.stream().collect(Collectors.joining(",")) + + " where 1=1 and " + wherekey.stream().collect(Collectors.joining(" and ")); + return rsupdate.executeUpdate(sql, new Object[] {setvalue}); + + } + + /** + *

+ * 执行sql(增删改) + *

+ * + * @title execteSql + * @author K1810015 + * @param sql + * @param value + * @updateTime 2022/8/17 22:05 + */ + public boolean execteSql(String sql, Object... value) { + boolean flag = false; + if (value == null || value.length <= 0 || value[0] == null || StringUtils.isBlank(Util.null2String(value))) { + flag = rs.execute(sql); + } else { + flag = rs.executeQuery(sql, value); + } + return flag; + } + + /** + * 批量修改数据,根据表名、插入字段的值(Map)、插入主键的名称(pkey),
+ * 查询条件的wherelist + * + * @title updateAllSql + * @author K1810015 + * @param tablename + * @param setmap + * @param pkey + * @updateTime 2022/8/17 22:01 + */ + public boolean updateAllSql(String tablename, Map setmap, String pkey, List wherelist) { + if (StringUtils.isBlank(tablename) || setmap == null || setmap.size() <= 0 || wherelist == null + || wherelist.size() <= 0) { + return false; + } + List setkey = new ArrayList<>(); + List setvalue = new ArrayList<>(); + setmap.entrySet().forEach(key -> { + setkey.add(key.getKey() + "=?"); + setvalue.add(key.getValue()); + }); + if (setkey.isEmpty()) { + return false; + } + String sql = "update " + tablename + " set " + setkey.stream().collect(Collectors.joining(",")) + + " where 1=1 and " + pkey + " in (" + + wherelist.stream().map(item -> "\'" + item + "\'").collect(Collectors.joining(",")) + ")"; + CustomizeLog.printLog("sql:" + sql); + return rsupdate.executeUpdate(sql, new Object[] {setvalue}); + } + + /** + * 批量插入数据,根据表名、插入字段的值(Map)、查询条件值(Map)插入数据 + * + * @title insertAllSql + * @author K1810015 + * @param tablename + * @param setlist + * @updateTime 2022/8/17 22:01 + */ + public boolean insertAllSql(String tablename, List> setlist) { + if (StringUtils.isBlank(tablename) || setlist == null || setlist.size() <= 0) { + return false; + } + + List sqlvalue = new ArrayList<>(); + setlist.forEach((setmaptemp) -> { + Map setmap = (HashMap)setmaptemp; + List setkey = new ArrayList<>(); + List setvalue = new ArrayList<>(); + setmap.entrySet().forEach(key -> { + setkey.add(key.getKey()); + setvalue.add(key.getValue()); + }); + sqlvalue + .add(" insert into " + tablename + "(" + setkey.stream().collect(Collectors.joining(",")) + ") values(" + + setvalue.stream().map(item -> "'" + item + "'").collect(Collectors.joining(",")) + ");"); + }); + rsinsert.executeUpdate(sqlvalue.stream().collect(Collectors.joining())); + return true; + } + + /** + * 删除数据,根据表名、插入字段的值(Map)、查询条件值(Map)删除数据 + * + * @title delete + * @author K1810015 + * @param tablename + * @param wheremap + * @updateTime 2022/8/17 22:01 + */ + public boolean delete(String tablename, Map wheremap) { + if (StringUtils.isBlank(tablename) || wheremap == null || wheremap.size() <= 0) { + return false; + } + String sql = "delete from " + tablename + " where 1=1 and "; + List wherekey = new ArrayList<>(); + List wherevalue = new ArrayList<>(); + wheremap.entrySet().forEach(key -> { + wherekey.add(key.getKey() + "=?"); + wherevalue.add(Util.null2String(key.getValue())); + }); + sql += wherekey.stream().collect(Collectors.joining("and")); + return redelete.executeUpdate(sql, wherevalue.stream().distinct().collect(Collectors.joining(","))); + } + + public int ifExist(String sql) { + rs.executeQuery(sql); + if (rs.next()){ + int num = rs.getInt("num"); + return num; + } + return 0; + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/db/EntityCrudUtil.java b/src/main/java/com/engine/htxc/commonutil/db/EntityCrudUtil.java new file mode 100644 index 0000000..d611d2e --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/db/EntityCrudUtil.java @@ -0,0 +1,419 @@ +package com.engine.htxc.commonutil.db; + +import com.alibaba.fastjson.JSON; +import com.engine.htsc.payment.util.PayUtil; +import com.engine.integration.util.StringUtils; +import com.google.common.base.CaseFormat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.conn.RecordSet; +import weaver.conn.RecordSetTrans; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 15:40 + * @Description: 实体类增删改查接口 + * @ModifyLog: + **/ +public class EntityCrudUtil { + + + public static final String PKEY = "id"; + + + private static final Logger logger= LoggerFactory.getLogger(EntityCrudUtil.class); + + /** + * 系统管理员id 1 + */ + public static final int SYSTEM_USER_ID = 1; + /** + * 默认用户类型 0 + */ + private static final int DEFAULT_CREATER_TYPE = 0; + + public static SqlContext getSqlContext(String tablename, Object entity, Class entityClass){ + List columns=new ArrayList<>(); + List values=new ArrayList<>(); + List allColumns=new ArrayList<>(); + getColumnsAndValues(entity,true,entityClass,columns,values,allColumns); + return new SqlContext(tablename,columns,values,allColumns); + } + + public static boolean transInsert(RecordSetTrans rst, String tablename, Object entity, Class entityClass) throws Exception { + if(StringUtils.isBlank(tablename) || entity==null){ + return false; + } + final SqlContext sqlContext = getSqlContext(tablename, entity, entityClass); + final String sql = buildInsertSql(sqlContext); + logger.info("sql:[{}]",sql); + logger.info("param:[{}]", JSON.toJSONString(sqlContext.getValues())); + if(sqlContext.getValues().isEmpty()){ + return false; + } + return rst.executeUpdate(sql,sqlContext.getValues().toArray()); + } + + public static String buildInsertSql(SqlContext sqlContext){ + return " insert into "+sqlContext.getTableName() +"("+ sqlContext.getColumns().stream().map(EntityCrudUtil::camalCase2underscore).collect(Collectors.joining(",")) +") values("+String.join(",",Collections.nCopies(sqlContext.getValues().size(),"?"))+")"; + } + + /** + * 插入实体类 + * @param tablename + * @param entity + * @param entityClass + * @return + */ + public static boolean insertEntity(String tablename, Object entity, Class entityClass){ + if(StringUtils.isBlank(tablename) || entity==null){ + return false; + } + final SqlContext sqlContext = getSqlContext(tablename, entity, entityClass); + if(sqlContext.getValues().isEmpty()){ + return false; + } + final RecordSet rs = new RecordSet(); + return rs.executeUpdate(buildInsertSql(sqlContext),sqlContext.getValues()); + } + private static String getMethodName(String str) { + char[] cs=str.toCharArray(); + cs[0]-=32; + return String.valueOf(cs); + } + private static void getColumnsAndValues(Object entity, boolean ignoreNull, Class entityClass, List columns, List values, List allColumns) { + Arrays.stream(entityClass.getDeclaredFields()).forEach(field -> { + //获取值 + final Method method; + try { + method = entityClass.getMethod("get"+getMethodName(field.getName())); + final Object value = method.invoke(entity); + if(!ignoreNull||value!=null){ + //获取列 + columns.add(field.getName()); + values.add(value); + } + allColumns.add(field.getName()); + + } catch (NoSuchMethodException|InvocationTargetException|IllegalAccessException e) { + logger.error("获取列失败",e); + } + + }); + } + + /** + * 根据id删除 + * @param tablename + * @param clazz + * @param entity + * @return + */ + public Boolean deleteById(String tablename,Class clazz,Object entity){ + if (StringUtils.isBlank(tablename)) { + return false; + } + try { + String id = Util.null2String(clazz.getMethod("get" + getMethodName(PKEY)).invoke(entity)); + if (StringUtils.isBlank(id)) { + return false; + } + Map wheremap = new HashMap<>(1); + wheremap.put(PKEY, id); + return JAVATools.deletesql(tablename, wheremap); + } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + logger.error("deleteById error:",e); + } + return false; + } + + /** + * 根据id更新 + * @param tablename + * @param clazz + * @param entity + * @return + */ + public Boolean updateById(String tablename,Class clazz,Object entity) { + if(StringUtils.isBlank(tablename)){ + return false; + } + try { + Field[] fields = clazz.getDeclaredFields(); + String id = Util.null2String(clazz.getMethod("get" + getMethodName(PKEY)).invoke(entity)); + if (StringUtils.isBlank(id)) { + return false; + } + Map fieldMap = new HashMap<>(5); + Map whereMap = new HashMap<>(1); + for (Field f : fields) { + Method m = clazz.getMethod("get" + getMethodName(f.getName())); + if (PKEY.equals(f.getName())) { + if (!StringUtils.isBlank(Util.null2String(m.invoke(entity)))) { + whereMap.put(f.getName(), Util.null2String(m.invoke(entity))); + } + } else if (m.invoke(entity) != null) { + fieldMap.put(f.getName(), Util.null2String(m.invoke(entity))); + } + } + return fieldMap.size() > 0 && whereMap.size() == 1 && JAVATools.Updatesql(fieldMap, tablename, whereMap); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + logger.error("updateById error:",e); + } + return false; + + + } + + /** + * 根据id查询 + * @param tablename + * @param id + * @param clazz + * @return + */ + public Object selectById(String tablename,String id,Class clazz){ + if (StringUtils.isBlank(tablename)) { + return null; + } + + try { + Object result = clazz.newInstance(); + Map wheremap = new HashMap<>(1); + wheremap.put(PKEY, id); + Map tablemap = JAVATools.gettablevalue(tablename, wheremap); + Field[] methodsarray = clazz.getDeclaredFields(); + Arrays.stream(methodsarray).forEach(f -> { + try { + Method m = clazz.getMethod("set" + getMethodName(f.getName()), f.getType()); + if (tablemap.get(f.getName()) != null) { + if (Integer.class.isAssignableFrom(f.getType())) { + if (!StringUtils.isBlank(Util.null2String(tablemap.get(f.getName())))) { + Integer strvaluex = Util.getIntValue(Util.null2String(tablemap.get(f.getName()))); + m.invoke(result, strvaluex); + } + } else if (String.class.isAssignableFrom(f.getType())) { + String strvalue = Util.null2String(tablemap.get(f.getName())); + m.invoke(result, strvalue); + } + } + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + logger.error("selectById error:",e); + } + }); + return result; + } catch (InstantiationException | IllegalAccessException e) { + logger.error("selectById error:",e); + } + return null; + } + + /** + * 查询合同表主键id + * @param uuid + * @return + */ + public static int getModeDataIdByUuid(String tableName,String uuid){ + final RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select id from "+tableName+" where modeuuid=? ", uuid); + if(recordSet.next()){ + return recordSet.getInt("id"); + } + return -1; + } + + /** + * 回滚情况下同一个事务 + * @param uuid + * @return + */ + public static int getModeDataIdByUuid(RecordSetTrans rst,String tableName,String uuid) throws Exception { + rst.executeQuery("select id from "+tableName+" where modeuuid=? ", uuid); + if (rst.next()) { + return rst.getInt("id"); + } + return -1; + } + + + public static T createModeBaseAttributes(String modeTableName,Class clazz){ + try { + final T t = clazz.newInstance(); + return buildModeBaseAttributes(modeTableName,t,clazz); + } catch (InstantiationException | IllegalAccessException e) { + logger.error("创建mode对象错误:",e); + } + return null; + } + + public static T buildModeBaseAttributes(String modeTableName, T modeEntity, Class clazz){ + final int modeId = PayUtil.getFormModeIdByCubeName(modeTableName); + final LocalDateTime now = LocalDateTime.now(); + final Field[] fields = clazz.getDeclaredFields(); + for (Field field : fields) { + Object value; + final String name = field.getName(); + switch (name.toLowerCase()){ + case "formmodeid": + value=modeId; + break; + case "modedatacreater": + value= SYSTEM_USER_ID; + break; + case "modedatacreatertype": + value=DEFAULT_CREATER_TYPE; + break; + case "modedatacreatedate": + value= now.format(DateTimeFormatter.ISO_LOCAL_DATE); + break; + case "modedatacreatetime": + value= now.format(DateTimeFormatter.ofPattern("HH:mm:ss")); + break; + case "modeuuid": + value= UUID.randomUUID().toString(); + break; + default: + continue; + } + + try { + final Method setter = clazz.getMethod(getSetterMethodName(name),field.getType()); + setter.invoke(modeEntity,value); + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + logger.error("构建mode公共属性错误:",e); + } + } + return modeEntity; + } + private static String getSetterMethodName(String feildName) { + return "set"+getMethodName(feildName); + } + + + public static T selectOne(String tableName,T entity,Class clazz){ + final List list = selectListByEntity(tableName, entity, clazz); + if(list.size()==1){ + return list.get(0); + } + logger.error("查询单条数据出错"); + return null; + } + + /** + * 传入实体类非空字段值作为查询条件 返回对应数据,只支持字段javabean 字段和表字段完全一致 + * @param tableName + * @param entity + * @param clazz + * @param + * @return + */ + public static List selectListByEntity(String tableName,T entity,Class clazz){ + final SqlContext sqlContext = getSqlContext(tableName, entity, clazz); + + String sql=buildSelectSql(sqlContext); + return selectList(sql,clazz,sqlContext.getValues()); + } + + + public static List selectListWithOrderSql(String tableName,String orderSql,T entity,Class clazz){ + final SqlContext sqlContext = getSqlContext(tableName, entity, clazz); + String sql= buildOrderSql(orderSql, sqlContext); + final List params = sqlContext.getValues(); + return selectList(sql, clazz, params); + } + + private static String buildOrderSql(String orderSql, SqlContext sqlContext) { + return buildSelectSql(sqlContext)+" "+orderSql; + } + + /** + * 传入实体类非空字段值作为查询条件 返回对应数据,只支持字段javabean 字段和表字段完全一致 + * sql 中占位符个数必须和实体类非空值字段个数一致 + * @param sql + * @param entity + * @param clazz + * @param + * @return + */ + public static List selectListBySql(String sql,T entity,Class clazz){ + final SqlContext sqlContext = getSqlContext("", entity, clazz); + final List params = sqlContext.getValues(); + return selectList(sql, clazz, params); + } + + public static List selectList(String sql, Class clazz, List params) { + logger.info("sql:[{}]",sql); + logger.info("values:[{}]", params); + if(params.isEmpty()){ + logger.warn("查询条件参数为空"); + } + final RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql, params.toArray()); + + List resultList=new ArrayList<>(); + while (recordSet.next()){ + try { + T result = convert2JavaBean(clazz, recordSet); + resultList.add(result); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { + logger.error("selectByEntity error:",e); + } + } + + return resultList; + } + + private static T convert2JavaBean(Class clazz, RecordSet recordSet) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { + T result = clazz.newInstance(); + + Field[] methodsArray = clazz.getDeclaredFields(); + for (Field f : methodsArray) { + Method m = clazz.getMethod("set" + getMethodName(f.getName()), f.getType()); + final String value = recordSet.getString(f.getName().toUpperCase()); + if (Integer.class.isAssignableFrom(f.getType())) { + if (!StringUtils.isBlank(value)) { + Integer strvaluex = Util.getIntValue(value); + m.invoke(result, strvaluex); + } + } else if (String.class.isAssignableFrom(f.getType())) { + m.invoke(result, value); + } + + } + return result; + } + + private static String buildSelectSql(SqlContext sqlContext) { + + String sql="select "+ sqlContext.getAllColumns().stream().map(colomn->camalCase2underscore(colomn)).collect(Collectors.joining(",")) +" from "+sqlContext.getTableName()+" "; + if(sqlContext.getValues().isEmpty()){ + return sql; + } + sql+=" where " + sqlContext.getColumns().stream().map(column -> camalCase2underscore(column) + "=?").collect(Collectors.joining(" and ")); + return sql; + } + + + + /** + * 驼峰转蛇形 + * @param selected + * @return + */ + public static String camalCase2underscore(String selected){ + return CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,selected); + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/db/SqlContext.java b/src/main/java/com/engine/htxc/commonutil/db/SqlContext.java new file mode 100644 index 0000000..dea442f --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/db/SqlContext.java @@ -0,0 +1,61 @@ +package com.engine.htxc.commonutil.db; + +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2612:56 + * @Description: + * @ModifyLog: + **/ +public class SqlContext { + private List allColumns; + private List columns; + private List values; + private String tableName; + + public SqlContext(String tableName,List columns,List values,List allColumns){ + this.tableName=tableName; + this.columns=columns; + this.values=values; + this.allColumns=allColumns; + } + + public List getAllColumns() { + return allColumns; + } + + public void setAllColumns(List allColumns) { + this.allColumns = allColumns; + } + + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } + + public List getValues() { + return values; + } + + public void setValues(List values) { + this.values = values; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + + +} diff --git a/src/main/java/com/engine/htxc/commonutil/dept/DeptTools.java b/src/main/java/com/engine/htxc/commonutil/dept/DeptTools.java new file mode 100644 index 0000000..955c67c --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/dept/DeptTools.java @@ -0,0 +1,35 @@ +package com.engine.htxc.commonutil.dept; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName DeptTools.java + * @createTime 2022年08月26日 19:07:00 + */ +public class DeptTools { + + public DeptTools() { + } + + private static DbTools dbtools=new DbTools(); + + public static List getidtocode(String deptids){ + List list=new ArrayList<>(); + if(StringUtils.isBlank(deptids)){ + return list; + } + String sql="select wm_concat_old(departmentcode) as departmentcode from hrmdepartment where id in ("+ Arrays.stream(deptids.split(",")).distinct().collect(Collectors.joining(","))+")"; + String value=dbtools.getsqlonevalue(sql); + if(StringUtils.isBlank(value)){ + return list; + } + return Arrays.stream(value.split(",")).collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/fileutil/FileUtil.java b/src/main/java/com/engine/htxc/commonutil/fileutil/FileUtil.java new file mode 100644 index 0000000..664bd79 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/fileutil/FileUtil.java @@ -0,0 +1,335 @@ +package com.engine.htxc.commonutil.fileutil; + +import cn.hutool.core.date.DateTime; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.htxc.commonutil.dao.FileDao; +import weaver.conn.RecordSet; +import weaver.docs.category.SecCategoryComInfo; +import weaver.docs.docs.DocComInfo; +import weaver.docs.docs.DocImageManager; +import weaver.docs.docs.DocManager; +import weaver.docs.docs.DocViewer; +import weaver.general.BaseBean; +import weaver.general.TimeUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.wechat.util.Utils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName FileUtil.java + * @createTime 2022年07月01日 09:35:00 + */ +public class FileUtil { + + public FileDao filedao=new FileDao(); + /** + * @title getfilelinfo + * @author K1810015 + * @updateTime 2022/7/1 9:41 + * @Remark 获取旧的附件 + * @throws + */ + public JSONArray getfilelinfo(User user, List retdoclist) { + if(retdoclist==null && retdoclist.size()<=0 ){ + return null; + } + List> list = filedao.getFileInfo(retdoclist); + if(list==null || list.size()<=0){ + return null; + } + List doclist=new ArrayList<>(); + JSONArray jsonarrayall=new JSONArray(); + list.forEach((Map returnmap)->{ + JSONObject jsonObject=new JSONObject(); + int size=Util.getIntValue(Util.null2String(returnmap.get("filesize"))); + String filesize="1K"; + String docid=Util.null2String(returnmap.get("docid")); + String imagefilename= Util.null2String(returnmap.get("imagefilename")); + if(size>0){ + int sizevalue=size/1024; + if(sizevalue>0){ + filesize=sizevalue+"K"; + } + } + try { + String filelink = "/spa/document/index2file.jsp?f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=0&id=" + docid + "&imagefileId=" + imagefilename + "&isFromAccessory=true&isrequest=1&requestid=-1&desrequestid=-1&authStr=undefined&authSignatureStr=undefined"; + String loadlink = "/weaver/weaver.file.FileDownload?fileid=" + docid + "&download=1&requestid=-1&desrequestid=-1&authStr=undefined&authSignatureStr=undefined&f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=0"; + jsonObject.put("appID", ""); + jsonObject.put("fileID", docid); + jsonObject.put("fileid", docid); + jsonObject.put("filelink", filelink); + jsonObject.put("fileExtendName", imagefilename.split("\\.")[imagefilename.split("\\.").length-1]); + jsonObject.put("filesize", filesize); + jsonObject.put("filename", imagefilename); + jsonObject.put("imagefileid", Util.null2String(returnmap.get("imagefileid"))); + jsonObject.put("imgSrc", "/images/filetypeicons/pdf_wev8.png"); + jsonObject.put("isImg", false); + jsonObject.put("loadlink", loadlink); + jsonObject.put("operatedate", Util.null2String(returnmap.get("operatedate"))); + jsonObject.put("operatetime", Util.null2String(returnmap.get("operatetime"))); + jsonObject.put("showDelete", true); + jsonObject.put("size", size); + jsonObject.put("uploaddate", Util.null2String(returnmap.get("operatedate")) + " "+Util.null2String(returnmap.get("operatetime")) ); + jsonObject.put("userid", 0); + jsonObject.put("username", "文档中心"); + jsonObject.put("versionCount", "v1"); + JSONArray jsonArray=new JSONArray(); + jsonArray.add(jsonObject); + doclist.add(docid); + JSONObject value1=new JSONObject(); + value1.put("value",doclist.stream().collect(Collectors.joining(","))); + JSONObject filedatas=new JSONObject(); + filedatas.put("filedatas",jsonArray); + value1.put("specialobj",filedatas); + jsonarrayall.add(value1); + }catch (Exception exo){ + } + }); + + return jsonarrayall; + } + + public JSONArray getdocimagefileinfo(User user, List retdoclist) { + if(retdoclist==null && retdoclist.size()<=0 ){ + return null; + } + List> list = filedao.getNotcoryFileInfo(retdoclist); + if(list==null || list.size()<=0){ + return null; + } + JSONArray jsonarrayall=new JSONArray(); + list.forEach((Map returnmap)->{ + JSONObject jsonObject=new JSONObject(); + int size=Util.getIntValue(Util.null2String(returnmap.get("filesize"))); + String filesize="1K"; + String docid=Util.null2String(returnmap.get("docid")); + String imagefilename= Util.null2String(returnmap.get("imagefilename")); + if(size>0){ + int sizevalue=size/1024; + if(sizevalue>0){ + filesize=sizevalue+"K"; + } + } + try { + String filelink = "/spa/document/index2file.jsp?f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=0&id=" + docid + "&imagefileId=" + imagefilename + "&isFromAccessory=true&isrequest=1&requestid=-1&desrequestid=-1&authStr=undefined&authSignatureStr=undefined"; + String loadlink = "/weaver/weaver.file.FileDownload?fileid=" + docid + "&download=1&requestid=-1&desrequestid=-1&authStr=undefined&authSignatureStr=undefined&f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=0"; + jsonObject.put("appID", ""); + jsonObject.put("fileID", docid); + jsonObject.put("fileid", docid); + jsonObject.put("filelink", filelink); + jsonObject.put("filesize", filesize); + jsonObject.put("filename", imagefilename); + jsonObject.put("fileExtendName", imagefilename.split("\\.")[imagefilename.split("\\.").length-1]); + jsonObject.put("imagefileid", Util.null2String(returnmap.get("imagefileid"))); + jsonObject.put("imgSrc", "/images/filetypeicons/pdf_wev8.png"); + jsonObject.put("isImg", false); + jsonObject.put("loadlink", loadlink); + jsonObject.put("operatedate", DateTime.now().toString("yyyy-MM-dd")); + jsonObject.put("operatetime", DateTime.now().toString("hh:mm:ss")); + jsonObject.put("showDelete", true); + jsonObject.put("size", size); + jsonObject.put("uploaddate", DateTime.now().toString("yyyy-MM-dd") + " "+DateTime.now().toString("hh:mm:ss") ); + jsonObject.put("userid", 0); + jsonObject.put("username", "文档中心"); + jsonObject.put("versionCount", "v1"); + jsonarrayall.add(jsonObject); + }catch (Exception exo){ + } + }); + + return jsonarrayall; + } + + + + /** + * @title createdocdetail + * @author K1810015 + * @updateTime 2022/3/11 15:04 + * @Remark 创建docdetail表 + * @throws + */ + public static int createdocdetail(Map map){ + String title= Utils.null2String(map.get("title")); + String body=Utils.null2String(map.get("body")); + int creater=Utils.getIntValue(Utils.null2String(map.get("creater")),0); + String rq=Utils.null2String(map.get("rq")); + String docextendname=Utils.null2String(map.get("docextendname")); + int maincategory=Utils.getIntValue(Utils.null2String(map.get("maincategory")),0); + int subcategory=Utils.getIntValue(Utils.null2String(map.get("subcategory")),0); + int seccategory=Utils.getIntValue(Utils.null2String(map.get("seccategory")),0); + int doctype=Utils.getIntValue(Utils.null2String(map.get("doctype")),0); + RecordSet rs = new RecordSet(); + BaseBean bs = new BaseBean(); + try{ + int docLanguage = 7 ; + int sec = seccategory; + ResourceComInfo r = new ResourceComInfo(); + int departmentid = Integer.parseInt(r.getDepartmentID(creater+"")); + bs.writeLog("departmentid:"+departmentid); + SecCategoryComInfo secCategoryComInfo=new SecCategoryComInfo(); + + DocComInfo docComInfo=new DocComInfo(); + DocManager docManager=new DocManager(); + DocViewer docViewer=new DocViewer(); + + String nowTime= TimeUtil.getOnlyCurrentTimeString(); + + String pubishdate = rq; + String publishtime = nowTime; + + RecordSet recordSet = new RecordSet(); + int newDocId = docManager.getNextDocId(recordSet); + + docManager.setId(newDocId); + docManager.setDocsubject(title); + docManager.setMaincategory(maincategory); + docManager.setSubcategory(subcategory); + docManager.setSeccategory(sec); + docManager.setLanguageid(docLanguage); + docManager.setDocstatus("1"); + + docManager.setDoccreaterid(creater); + docManager.setDocdepartmentid(departmentid); + docManager.setDocCreaterType("1"); + docManager.setUsertype("1"); + docManager.setOwnerid(creater); + docManager.setOwnerType("1"); + docManager.setDoclastmoduserid(creater); + docManager.setDocLastModUserType("1"); + + docManager.setDoccreatedate(pubishdate); + docManager.setDoclastmoddate(pubishdate); + docManager.setDoccreatetime(publishtime); + docManager.setDoclastmodtime(publishtime); + + docManager.setDoclangurage(docLanguage); + + docManager.setKeyword(title); + docManager.setIsapprover("0"); + docManager.setIsreply(""); + docManager.setDocreplyable("1"); + docManager.setAccessorycount(1); + docManager.setParentids(newDocId+""); + docManager.setOrderable(secCategoryComInfo.getSecOrderable(seccategory)+""); + docManager.setUserid(1); + docManager.setDocCode(""); + docManager.setDocEditionId(docManager.getNextEditionId(recordSet)); + docManager.setDocEdition(1); + docManager.setDoccontent(body); + docManager.setDocType(doctype); + docManager.setDocextendname(docextendname); + docManager.AddDocInfo(); + docComInfo.addDocInfoCache("" + newDocId); + docViewer.setDocShareByDoc("" + newDocId); + docManager.AddShareInfo(); + + return newDocId; + } catch(Exception e){ + e.printStackTrace(); + return -1; + } + } + + /** + * @title createdocimagefile + * @author K1810015 + * @updateTime 2022/3/11 15:04 + * @Remark 创建docimagefile表 + * @throws + */ + public static void createdocimagefile(Map map){ + DocImageManager imgManger = new DocImageManager(); + String docid= Utils.null2String(map.get("docid")); + String imagefileid=Utils.null2String(map.get("imagefileid")); + String imagefilename=Utils.null2String(map.get("imagefilename")); + String ext=Utils.null2String(map.get("docextendname")); + int versionid=Utils.getIntValue(Utils.null2String(map.get("imagefilename")),0); + int operateruserid=Utils.getIntValue(Utils.null2String(map.get("operateruserid")),0); + + String operatedate=Utils.null2String(map.get("operatedate")); + String operatetime=Utils.null2String(map.get("operatetime")); + + if (ext.equalsIgnoreCase("doc")) { + imgManger.setDocfiletype("3"); + } else if (ext.equalsIgnoreCase("xls")) { + imgManger.setDocfiletype("4"); + } else if (ext.equalsIgnoreCase("ppt")) { + imgManger.setDocfiletype("5"); + } else if (ext.equalsIgnoreCase("wps")) { + imgManger.setDocfiletype("6"); + } else if (ext.equalsIgnoreCase("docx")) { + imgManger.setDocfiletype("7"); + } else if (ext.equalsIgnoreCase("xlsx")) { + imgManger.setDocfiletype("8"); + } else if (ext.equalsIgnoreCase("pptx")) { + imgManger.setDocfiletype("9"); + } else if (ext.equalsIgnoreCase("et")) { + imgManger.setDocfiletype("10"); + } else { + imgManger.setDocfiletype("2"); + } + imgManger.setDocid(Util.getIntValue(docid, 0)); + imgManger.setImagefileid(Util.getIntValue(imagefileid, 0)); + imgManger.setImagefilename(imagefilename); + imgManger.setimagefilewidth(0); + imgManger.setImagefileheight(0); + imgManger.setIsextfile("1"); + imgManger.setImagefielsize(0); + imgManger.setVersionId(versionid); + imgManger.setOperatedate(operatedate); + imgManger.setOperatetime(operatetime); + imgManger.setOperateuserid(operateruserid); + imgManger.AddDocImageInfo(); + } + + /** + * @title createimagefile + * @author K1810015 + * @updateTime 2022/3/11 15:05 + * @Remark 创建imagefile表 + * @throws + */ + public static void createimagefile(Map map){ + + String tablename = "imagefile"; + String imagefileid = Utils.null2String(map.get("imagefileid")); + String imagefiletype = Utils.null2String(map.get("imagefiletype")); + String filesize = Utils.null2String(map.get("filesize")); + String imagefilename= Utils.null2String(map.get("imagefilename")); + String aescode=Utils.null2String(map.get("aescode")); + String tokenkey=Utils.null2String(map.get("tokenkey")); + String ftpconfigid=Utils.null2String(map.get("ftpconfigid")); + String isaesencrypt=Utils.null2String(map.get("isaesencrypt")); + String imagefileused=Utils.null2String(map.get("imagefileused")); + String iszip=Utils.null2String(map.get("iszip")); + String filerealpath=Utils.null2String(map.get("filerealpath")); + Map filemap = new HashMap<>(11); + filemap.put("imagefileid", imagefileid); + filemap.put("imagefilename", imagefilename); + filemap.put("imagefiletype", imagefiletype); + filemap.put("imagefileused",imagefileused); + filemap.put("filerealpath",filerealpath); + filemap.put("iszip", iszip); + filemap.put("fileSize", filesize); + filemap.put("tokenkey",tokenkey); + filemap.put("aescode",aescode); + filemap.put("ftpconfigid",ftpconfigid); + filemap.put("isaesencrypt",isaesencrypt); + + JAVATools.Excetesql(filemap, tablename); + + + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/fileutil/GatewayUtil.java b/src/main/java/com/engine/htxc/commonutil/fileutil/GatewayUtil.java new file mode 100644 index 0000000..0e5374a --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/fileutil/GatewayUtil.java @@ -0,0 +1,202 @@ +package com.engine.htxc.commonutil.fileutil; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; +import com.engine.odoc.util.DocUtil; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.util.EntityUtils; +import weaver.conn.RecordSet; +import weaver.docs.docs.VersionIdUpdate; +import weaver.docs.qc969424.util.QC969424RequestBaseUtil; +import weaver.docs.qc969424.util.QC969424SyncauthRequestUtil; +import weaver.docs.qc969424.util.QC969424Util; +import weaver.general.TimeUtil; +import weaver.general.Util; + + +import javax.ws.rs.WebApplicationException; +import java.io.*; +import java.util.HashMap; +import java.util.Map; +import java.util.zip.ZipInputStream; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName GatewayUtil.java + * @createTime 2022年06月23日 11:22:00 + * @Reamrk 存储网管相对应的 + */ +public class GatewayUtil { + + private static DbTools dbtools=new DbTools(); + + public static String sendGateway(int imagefileid,String imagefilename){ + String value=""; + if( imagefileid<=0){ + return ""; + } + Map retmap= getImageFile(Util.null2String(imagefileid)); + String realfilepath= Util.null2String(retmap.get("filerealpath")); + String iszip= Util.null2String(retmap.get("iszip")); + RecordSet rs = new RecordSet(); + CloseableHttpResponse clresponse=null; + InputStream inputStream = null; + ZipInputStream zipInputStream = null; + try{ + String upload = QC969424Util.getPV("upload"); + String systemNo = QC969424Util.getPV("systemNo"); + String url = upload+"/"+systemNo; + QC969424RequestBaseUtil qc = new QC969424RequestBaseUtil(); + if (realfilepath != null && !"".equals(realfilepath)) + { + File file = new File(realfilepath); + if(!file.exists()) + { + throw new WebApplicationException(404); + } + if ("1".equals(iszip)) { + zipInputStream = new ZipInputStream(new FileInputStream(file)); + if (zipInputStream.getNextEntry() != null) { + inputStream = new BufferedInputStream(zipInputStream); + } + } else { + inputStream = new BufferedInputStream(new FileInputStream(file)); + } + + clresponse= qc.doUpload(url,imagefilename,inputStream); + int statusCode = clresponse.getStatusLine().getStatusCode(); + + if(statusCode == 200) + { + String res = EntityUtils.toString(clresponse.getEntity()); + + if(!"".equals(res)){ + String sql = " update imagefile set fileid=? where imagefileid=?"; + rs.executeUpdate(sql,new Object[]{res,imagefileid}); + value=res; + } + } + zipInputStream.close(); + inputStream.close();; + //释放链接 + clresponse.close(); + } + }catch (Exception e) { + e.printStackTrace(); + }finally { + try { + if(inputStream !=null){ + inputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + try { + if(clresponse !=null){ + clresponse.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return value; + + } + + public static Map getImageFile(String imagefileid){ + String sql="select * from imagefile where imagefileid=?"; + if(StringUtils.isBlank(imagefileid)){ + return null; + } + return new DbTools().getsqltomap(sql,imagefileid); + + } + + public static String getWayToDocId(String fileid,String filename,int olddocid){ + if(StringUtils.isBlank(fileid) || StringUtils.isBlank(filename) || olddocid<0){ + return ""; + } + int imagefileid=getWayToImageFileId(fileid,filename); + int newdocid=DocUtil.createDocFromAnother(olddocid); + if(imagefileid<0 || newdocid<0){ + return ""; + } + String docextendname="pdf"; + if(filename.split(".").length>0){ + docextendname=filename.split(".")[filename.split(".").length-1]; + } + VersionIdUpdate versionIdUpdate = new VersionIdUpdate(); + int versionid = versionIdUpdate.getVersionNewId(); + Map docimagefilemap=new HashMap<>(5); + docimagefilemap.put("docid",newdocid); + docimagefilemap.put("imagefileid",imagefileid); + docimagefilemap.put("imagefilename",filename); + docimagefilemap.put("docextendname",docextendname); + docimagefilemap.put("versionid",versionid); + String operatedate = TimeUtil.getCurrentDateString(); + String operatetime =TimeUtil.getOnlyCurrentTimeString(); + docimagefilemap.put("operatedate",operatedate); + docimagefilemap.put("operatetime",operatetime); + docimagefilemap.put("uploaddate",operatedate+" "+operatetime); + FileUtil.createdocimagefile(docimagefilemap); + //关联操作 + docLinkImageFile(newdocid,imagefileid,filename,fileid); + return Util.null2String(newdocid); + } + + public static int getWayToImageFileId(String fileid,String filename){ + int value=-1; + if(StringUtils.isBlank(fileid) || StringUtils.isBlank(filename)){ + return value; + } + String token =""; + InputStream is=null; + boolean bool = QC969424Util.openQc969424(); + if (bool) { + try { + QC969424RequestBaseUtil qC969424RequestBaseUtil = new QC969424RequestBaseUtil(); + token = QC969424Util.getToken(); + if (token == null || "".equals(token)) { + token= qC969424RequestBaseUtil.getToken(); + } + QC969424SyncauthRequestUtil qC969424SyncauthRequestUtil = new QC969424SyncauthRequestUtil(); + is = qC969424SyncauthRequestUtil.download(fileid); + if(is!=null){ + value = DocUtil.saveImageFile(is, filename, ""); + is.close(); + } + + }catch (Exception e){ + + } + } + return value; + + } + + private static void docLinkImageFile(int newdocid,int imagefileid,String imagefilename,String fileid){ + if(newdocid<0 || imagefileid<=0 || StringUtils.isBlank(imagefilename) || StringUtils.isBlank(fileid)){ + return ; + } + Map docset=new HashMap<>(2); + docset.put("imagefileid",Util.null2String(imagefileid)); + docset.put("imagefilename",imagefilename); + Map docwhere=new HashMap<>(1); + docwhere.put("docid",Util.null2String(newdocid)); + dbtools.updateSql("docimagefile",docset,docwhere); + //跟新imagefile + Map imagefileset=new HashMap<>(1); + imagefileset.put("fileid",fileid); + Map imagefilewhere=new HashMap<>(1); + imagefilewhere.put("imagefileid",Util.null2String(imagefileid)); + dbtools.updateSql("imagefile",imagefileset,imagefilewhere); + //跟新docdetail + Map docdetailset=new HashMap<>(1); + docdetailset.put("doctype","1"); + Map docdetailwhere=new HashMap<>(1); + docdetailwhere.put("id",Util.null2String(newdocid)); + dbtools.updateSql("docdetail",docdetailset,docdetailwhere); + } + +} diff --git a/src/main/java/com/engine/htxc/commonutil/log/CustomizeLog.java b/src/main/java/com/engine/htxc/commonutil/log/CustomizeLog.java new file mode 100644 index 0000000..20d91e7 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/log/CustomizeLog.java @@ -0,0 +1,38 @@ +package com.engine.htxc.commonutil.log; + +import cn.hutool.core.date.DateTime; +import org.apache.log4j.Logger; +import weaver.general.BaseBean; + +/** + *

log日志输出

+ * @author K1810015 + * @version 1.0.0 + * @ClassName CustomizeLog.java + * @createTime 2022年07月15日 10:49:00 + */ +public class CustomizeLog { + + private CustomizeLog() { + + } + + public static void printLog(String value){ + BaseBean bs =new BaseBean(); + try { + Throwable throwable = new Throwable(); + String classname = throwable.getStackTrace()[1].getClassName(); + String methoadname = throwable.getStackTrace()[1].getMethodName(); + String datetime=DateTime.now().toString("yyyy-MM-dd hh:mm:ss"); + String logvalue=classname+"["+methoadname+"]"+":"+datetime+" "+value; + bs.writeLog(logvalue); + Logger.getLogger(CustomizeLog.class.getName()).info(logvalue); + + }catch (Exception e){ + /** + * @remark 没必要记录这场而异常错误 + */ + bs.writeLog(value); + } + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/ret/Creturn.java b/src/main/java/com/engine/htxc/commonutil/ret/Creturn.java new file mode 100644 index 0000000..2ab631e --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/ret/Creturn.java @@ -0,0 +1,60 @@ +package com.engine.htxc.commonutil.ret; + +import org.json.JSONObject; + +/** + *

返回类

+ * @author K1810015 + * @version 1.0.0 + * @ClassName Creturn.java + * @createTime 2022年08月15日 10:33:00 + */ +public class Creturn { + + + /** + * @title Ok + * @author K1810015 + * @updateTime 2022/8/15 10:40 + * @Remark + */ + public static String Ok(String value){ + JSONObject jsonobject=new JSONObject(); + try { + jsonobject.put("status", "200"); + jsonobject.put("data", value); + }catch (Exception e){ + + } + return jsonobject.toString(); + } + + /** + * @title Ok + * @author K1810015 + * @updateTime 2022/8/15 10:40 + * @Remark + */ + public static String Ok(boolean value){ + JSONObject jsonobject=new JSONObject(); + try { + jsonobject.put("status", "200"); + jsonobject.put("data", value); + }catch (Exception e){ + + } + return jsonobject.toString(); + } + + + public static String Fail(String value){ + JSONObject jsonobject=new JSONObject(); + try { + jsonobject.put("status", "400"); + jsonobject.put("msg", value); + }catch (Exception e){ + + } + return jsonobject.toString(); + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/type/DateEnum.java b/src/main/java/com/engine/htxc/commonutil/type/DateEnum.java new file mode 100644 index 0000000..6e59bc6 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/type/DateEnum.java @@ -0,0 +1,26 @@ +package com.engine.htxc.commonutil.type; + +/** + *

创建对应的枚举方式

+ * ps:"yyyy-MM-dd" or "yyyy-MM-dd hh:mm:ss" + * @author K1810015 + * @version 1.0.0 + * @ClassName DateEnum.java + * @createTime 2022年08月19日 17:08:00 + */ +public enum DateEnum { + ShortSuffix("yyyy-MM-dd"), + LongSuffix("yyyy-MM-dd hh:mi:ss"); + + + private DateEnum(final String value) { + this.value=value; + } + + public String getValue() { + return value; + } + + private final String value; + +} diff --git a/src/main/java/com/engine/htxc/commonutil/user/UserHt.java b/src/main/java/com/engine/htxc/commonutil/user/UserHt.java new file mode 100644 index 0000000..f709953 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/user/UserHt.java @@ -0,0 +1,40 @@ +package com.engine.htxc.commonutil.user; + +import com.api.formmode.page.util.Util; +import com.engine.htxc.commonutil.db.DbTools; +import weaver.hrm.User; + +import java.io.Serializable; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName UserNew.java + * @createTime 2022年06月24日 11:11:00 + */ +public class UserHt extends User implements Serializable { + public String getWorkcode() { + return workcode; + } + + public void setWorkcode(String workcode) { + this.workcode = workcode; + } + public String workcode=""; + + public UserHt(int id){ + super(id); + Map map= getmain(Util.null2String(id)); + if(map==null || map.size()<=0){ + return ; + } + setWorkcode(Util.null2String(map.get("workcode"))); + + } + + private Map getmain(String id){ + String sql=" select * from hrmresource where id=?"; + return new DbTools().getsqltomap(sql,id); + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/user/UserTools.java b/src/main/java/com/engine/htxc/commonutil/user/UserTools.java new file mode 100644 index 0000000..24079cc --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/user/UserTools.java @@ -0,0 +1,43 @@ +package com.engine.htxc.commonutil.user; + +import com.api.formmode.page.util.Util; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; +import weaver.hrm.User; + +import java.io.Serializable; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + *

关于用户查询的方法

+ * @author K1810015 + * @version 1.0.0 + * @ClassName UserNew.java + * @createTime 2022年06月24日 11:11:00 + */ + +public class UserTools { + + private UserTools() { + + } + private static String fileids="*"; + + private static DbTools dbtools=new DbTools(); + + public static List> getUserInfo(String ids,String fileidvalue){ + List> list=new ArrayList<>(); + if(StringUtils.isBlank(ids)){ + return list; + } + if(!StringUtils.isBlank(fileidvalue)){ + fileids=fileidvalue; + } + String sql="select {0} from hrmresource where id in ({1})"; + return dbtools.getSqlToList(MessageFormat.format(sql,fileids,ids),(Object)null); + } + +} diff --git a/src/main/java/com/engine/htxc/commonutil/workflow/CreateWkType.java b/src/main/java/com/engine/htxc/commonutil/workflow/CreateWkType.java new file mode 100644 index 0000000..de80927 --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/workflow/CreateWkType.java @@ -0,0 +1,60 @@ +package com.engine.htxc.commonutil.workflow; + +import java.util.Map; + +/** + *

创建流程所需要的参数类

+ * @author K1810015 + * @version 1.0.0 + * @className CreateWkType.java + * @reateTime 2022年07月15日 15:00:00 + */ +public class CreateWkType { + public String creatorId; + public String workflowId; + public String requestName; + public String isNextFlow; + public Map requestMainMap; + + + + public String getCreatorId() { + return creatorId; + } + + public void setCreatorId(String creatorId) { + this.creatorId = creatorId; + } + + public String getWorkflowId() { + return workflowId; + } + + public void setWorkflowId(String workflowId) { + this.workflowId = workflowId; + } + + public String getRequestName() { + return requestName; + } + + public void setRequestName(String requestName) { + this.requestName = requestName; + } + + public String getIsNextFlow() { + return isNextFlow; + } + + public void setIsNextFlow(String isNextFlow) { + this.isNextFlow = isNextFlow; + } + + public Map getRequestMainMap() { + return requestMainMap; + } + + public void setRequestMainMap(Map requestMainMap) { + this.requestMainMap = requestMainMap; + } +} diff --git a/src/main/java/com/engine/htxc/commonutil/workflow/WorkflowCreate.java b/src/main/java/com/engine/htxc/commonutil/workflow/WorkflowCreate.java new file mode 100644 index 0000000..e3b31fd --- /dev/null +++ b/src/main/java/com/engine/htxc/commonutil/workflow/WorkflowCreate.java @@ -0,0 +1,179 @@ +package com.engine.htxc.commonutil.workflow; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.integration.util.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.TimeUtil; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.RequestService; +import weaver.workflow.request.RequestComInfo; +import weaver.workflow.workflow.WorkflowComInfo; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.Consumer; + +/** + *

创建流程相关的方式

+ * @author K1810015 + * @version 1.0.0 + * @ClassName WorkflowCreate.java + * @createTime 2022年07月11日 15:07:00 + */ +public class WorkflowCreate extends BaseBean { + + public WorkflowCreate() { + super(); + } + + private final DbTools dbtools=new DbTools(); + + public CreateWkType createWkType; + + public String requestid = ""; + + private int maxlength=4000; + + /** + *

提供一个创建WorkflowCreate的静态变量

+ * @title createWkType + * @author K1810015 + * @updateTime 2022/8/17 20:00 + */ + public static WorkflowCreate createWorkflow(Consumer consumer) { + WorkflowCreate workflowCreate=new WorkflowCreate(); + workflowCreate.createWkType=new CreateWkType(); + consumer.accept(workflowCreate.createWkType); + return workflowCreate; + } + + /** + *

创建一个主流程

+ * @title workflowCreateByRequestMap + * @author K1810015 + * @updateTime 2022/8/17 20:06 + */ + public WorkflowCreate workflowCreateByRequestMap() + { + if(createWkType==null ){ + requestid= "-1"; + return this; + } + RequestInfo requestInfo = new RequestInfo(); + //创建人 + requestInfo.setCreatorid(createWkType.creatorId); + //工作流Id + requestInfo.setWorkflowid(createWkType.workflowId); + //请求标题 + requestInfo.setDescription(createWkType.requestName); + //是否提交到下一节点 + if(StringUtils.isBlank(createWkType.isNextFlow)) + { + requestInfo.setIsNextFlow("0"); + }else{ + requestInfo.setIsNextFlow(createWkType.isNextFlow); + } + //主表字段 + MainTableInfo mainTableInfo = new MainTableInfo(); + Property[] propertyArray = new Property[createWkType.requestMainMap.size()]; + int p = 0; + for (Entry entry : createWkType.requestMainMap.entrySet()) + { + propertyArray[p] = new Property(); + propertyArray[p].setName(Util.null2String(entry.getKey())); + propertyArray[p].setValue(Util.null2String(entry.getValue())); + writeLog("\r\n---p="+p+"---Key="+entry.getKey()+"---Value="+entry.getValue()); + p++; + } + writeLog("-----创建流程传递的参数个数p="+p); + mainTableInfo.setProperty(propertyArray); + requestInfo.setMainTableInfo(mainTableInfo); + RequestService service = new RequestService(); + try { + requestid = service.createRequest(requestInfo); + StringBuilder sbf = new StringBuilder("\r\n-----xwd创建工作流记录日志开始"); + WorkflowComInfo wfcif =new WorkflowComInfo(); + RequestComInfo rcif = new RequestComInfo(); + ResourceComInfo rscif = new ResourceComInfo(); + sbf.append("\r\n-----姓名:"+rscif.getLastname(rcif.getRequestCreater(requestid))); + sbf.append("\r\n-----时间:"+rcif.getRequestCreateTime(requestid)); + sbf.append("\r\n-----创建流程:"+wfcif.getWorkflowname(createWkType.workflowId)); + sbf.append("\r\n-----请求:"+rcif.getRequestname(requestid)); + sbf.append("\r\n-----请求:"+requestid); + sbf.append("\r\n-----创建工作流记录日志结束"); + CustomizeLog.printLog(sbf.toString()); + } catch (Exception e) { + CustomizeLog.printLog("error:"+createWkType.toString()); + } + return this; + } + + /** + *

将创建的流程插入明细表

+ * @title workflowCreatelist + * @author K1810015 + * @param detailNo 明细表行号 + * @param detailist 明细表内容(List) + * @updateTime 2022/8/17 20:08 + */ + public WorkflowCreate workflowCreatelist(String detailNo, List< Map> detailist) + { + if("".equals(detailNo)||detailist.isEmpty()){ + return this; + } + String detailname= JAVATools.getdetailtable(requestid,detailNo); + String mainid= JAVATools.getMaintableid(requestid); + for ( Map detailmap:detailist) { + excetesqlvoid(detailmap,detailname,mainid); + } + return this; + } + + /** + *

插入明细表

+ * @title excetesqlvoid + * @author K1810015 + * @updateTime 2022/8/17 20:46 + */ + private void excetesqlvoid( Map mapvalue,String table,String mainid) { + mapvalue.put("mainid",mainid); + CustomizeLog.printLog("table:"+table+"mapvalue:"+mapvalue.toString()); + dbtools.insert(table,mapvalue); + } + + /** + *

最大长度校验

+ * @title lengthmax + * @author K1810015 + * @param value 内容 + * @updateTime 2022/8/17 19:41 + */ + public String lengthmax(String value){ + if(StringUtils.isBlank(value)) + { + return ""; + } + if(value.length()>=maxlength){ + value=value.substring(0,maxlength-1); + } + return value; + } + + + + + + + +} diff --git a/src/main/java/com/engine/htxc/contract/cmd/WorkflowNextJudgeCmd.java b/src/main/java/com/engine/htxc/contract/cmd/WorkflowNextJudgeCmd.java new file mode 100644 index 0000000..fdf462f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/cmd/WorkflowNextJudgeCmd.java @@ -0,0 +1,298 @@ +package com.engine.htxc.contract.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.dept.DeptTools; +import com.engine.htxc.workflow.select.service.WorkflowSelectService; +import com.engine.htxc.workflow.select.service.impl.WorkflowSelectServiceImpl; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

该类只做一件事情,合同分送节点的判断

+ * + * @author K1810015 + * @version 1.0.0 + * @ClassName workflowNextJudgeCmd.java + * @createTime 2022年08月26日 14:43:00 + */ +public class WorkflowNextJudgeCmd extends AbstractCommonCommand> { + + public WorkflowNextJudgeCmd(Map params, User user) { + this.user = user; + this.params = params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + DbTools dbtools=new DbTools(); + public String jwfk="1"; + Map mainmap=new HashMap<>(); + Map flagmap=new HashMap<>(); + List moneylist=new ArrayList<>(); + List> detail1list=new ArrayList<>(); + List> detail2list=new ArrayList<>(); + List> detail4list=new ArrayList<>(); + public Double moneysum=0D; + public PropBean pb=new PropBean(); + private WorkflowSelectService workflowSelectService= + ServiceUtil.getService(WorkflowSelectServiceImpl.class); + + @Override + public Map execute(CommandContext commandContext) { + Map result=new HashMap<>(2); + result.put("flag",false); + String requestid= Util.null2String(params.get("requestid")); + if(StringUtils.isBlank(requestid)){ + return result; + } + mainmap=dbtools.getRequestidToMap(requestid,new ArrayList<>()); + detail2list=dbtools.getRequestidToMapList(requestid,new ArrayList<>(),2); + detail1list=dbtools.getRequestidToMapList(requestid,new ArrayList<>(),1); + detail4list=dbtools.getRequestidToMapList(requestid,new ArrayList<>(),4); + detail4list.forEach((item)->{ + if(!StringUtils.isBlank(Util.null2String(item.get("htzje")))){ + moneylist.add(Util.null2String(item.get("htzje"))); + } + if(!StringUtils.isBlank(Util.null2String(item.get("jwfk"))) && "0".equals(Util.null2String(item.get("jwfk")))){ + jwfk="0"; + } + }); + moneysum= moneylist.stream().collect(Collectors.summingDouble(num->Util.getDoubleValue(num))); + flagmap.put("requestid",requestid); + flagmap.put("deptid",""); + flagmap.put("isfreenode","1"); + // 送财税管理岗(有金额合同&境外付款:是)满足条件展示并必送 + if(!todofinanceflag()){ + result.put("msg","3"); + return result; + } + // 送预算管理岗(有合同金额&境外付款:否)满足条件展示并必送 + if(!todobudgetflag()) + { + result.put("msg","4"); + return result; + } + // 送净资本分析员(合同金额>数字字典配置金额)满足条件展示并必送 + if(!todoNetAssetsflag()){ + result.put("msg","5"); + return result; + } +// // 送合同审核员审批(必送节点) + if(!todoauditflag()){ + result.put("msg","6"); + return result; + } + //送金融产品代销岗审核(拟稿部门:资产托管部&印章:代销金融产品业务专业章)满足条件展示并必送 + if(!todoFinancialproductflag()){ + result.put("msg","7"); + return result; + } + // 送工会主席审核(拟稿部门:党群||会签部门包含党群且送会签) + if(!todoUnionpresident()){ + result.put("msg","8"); + return result; + } + + //送派驻纪检监察组审核(会签部门不为空)满足条件展示并必送 + if(!todoMonitoringTeamflag()){ + result.put("msg","9"); + return result; + } + // 送执行秘书 + if(!todoexecutiveSecretaryflag()){ + result.put("msg","10"); + return result; + } + result.put("flag",true); + return result; + + } + + + + + /** + *

送财税管理岗审批必填

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:04 + */ + public boolean todofinanceflag(){ + if(!"0".equals(jwfk) || moneysum<=0D){ + return true; + } + flagmap.put("nodenumber","zbhtsp_csglg"); + return workflowSelectService.getnodeflag(flagmap); + } + + /** + *

送预管理岗

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:11 + */ + public boolean todobudgetflag() { + + if(!"1".equals(jwfk) || moneysum<=0D){ + return true; + } + flagmap.put("nodenumber","zbhtsp_ysglg"); + return workflowSelectService.getnodeflag(flagmap); + } + + + + /** + *

送净资产分析员

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoNetAssetsflag() { + Double vlaue=Util.getDoubleValue(new PropBean().getPropName("contract.datadicconfigamout")); + if(moneysum送合同审核员审批

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoauditflag() { + flagmap.put("nodenumber","zbhtsp_htshy"); + return workflowSelectService.getnodeflag(flagmap); + } + + + /** + *

送金融产品代销岗审核

+ * @title todoFinancialproductflag + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoFinancialproductflag() { + + String deptid=Util.null2String(this.mainmap.get("szbm")); + String yz=Util.null2String(this.mainmap.get("yz")); + String jrcpyz=Util.null2String(pb.getPropName("eseal.code.jrcpyz")); + String jrcpbcode=Util.null2String(pb.getPropName("dept.code.cgtgb")); + if(StringUtils.isBlank(deptid) || StringUtils.isBlank(yz)){ + return true; + } + List deptcodelist=DeptTools.getidtocode(deptid); + if(!yz.equals(jrcpyz) || !deptcodelist.contains(jrcpbcode)){ + return true; + } + flagmap.put("nodenumber","zbhtsp_jrcpdxg"); + return workflowSelectService.getnodeflag(flagmap); + } + + + /** + *

送工会主席审核

+ * @title todoUnionpresident + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoUnionpresident() { + String deptid=Util.null2String(this.mainmap.get("szbm")); + String jrcpbcode=Util.null2String(pb.getPropName("dept.code.tq")); + if(StringUtils.isBlank(deptid) || StringUtils.isBlank(jrcpbcode)){ + return true; + } + List deptcodelist=DeptTools.getidtocode(deptid); + List hqbmlistcodelist=DeptTools.getidtocode(deptid); + List hqbmlist=new ArrayList<>(); + if(detail2list!=null && !detail2list.isEmpty()){ + detail2list.stream().forEach((item)->{ + if(!StringUtils.isBlank(Util.null2String(item.get("hqbm")))){ + hqbmlist.add(Util.null2String(item.get("hqbm"))); + } + }); + hqbmlistcodelist=DeptTools.getidtocode(hqbmlist.stream().distinct().collect(Collectors.joining(","))); + } + + if(!deptcodelist.contains(jrcpbcode) && !hqbmlistcodelist.contains(jrcpbcode)){ + return true; + } + + + flagmap.put("nodenumber","zbhtsp_ghzx"); + return workflowSelectService.getnodeflag(flagmap); + } + + + /** + *

纪检监察组

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoMonitoringTeamflag() { + if(detail2list!=null && detail2list.isEmpty()){ + return true; + } + flagmap.put("nodenumber","zbhtsp_pzjjjcz"); + return workflowSelectService.getnodeflag(flagmap); + } + + + /** + *

执行秘书

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoexecutiveSecretaryflag() { + String ldsp=Util.null2String(this.mainmap.get("ldsp2")); + if(StringUtils.isBlank(ldsp)){ + return true; + } + flagmap.put("nodenumber","zbhtsp_ldsp"); + flagmap.put("userid",ldsp); + boolean flag= workflowSelectService.getnodeflag(flagmap); + flagmap.remove("userid"); + if(flag){ + flagmap.put("nodenumber","zbhtsp_zxmsg"); + return workflowSelectService.getnodeflag(flagmap); + } + return flag; + } + + + /** + *

送用印

+ * @title todofinanceflag + * @author K1810015 + * @updateTime 2022/8/26 15:13 + */ + public boolean todoesealflag() { + flagmap.put("nodenumber","zbhtsp_yy"); + return workflowSelectService.getnodeflag(flagmap); + + } + +} diff --git a/src/main/java/com/engine/htxc/contract/customsearch/CustomSearchTemplate.java b/src/main/java/com/engine/htxc/contract/customsearch/CustomSearchTemplate.java new file mode 100644 index 0000000..5bbad5b --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/customsearch/CustomSearchTemplate.java @@ -0,0 +1,43 @@ +package com.engine.htxc.contract.customsearch; + +import java.util.*; + +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.formmode.customjavacode.AbstractCustomSqlConditionJavaCode; + +/** + * 说明 + * 修改时 + * 类名要与文件名保持一致 + * class文件存放位置与路径保持一致。 + * 请把编译后的class文件,放在对应的目录中才能生效 + * 注意 同一路径下java名不能相同。 + * @author Administrator + * + */ +@Slf4j +public class CustomSearchTemplate extends AbstractCustomSqlConditionJavaCode { + + /** + * 生成SQL查询限制条件 + * @param param + * param包含(但不限于)以下数据 + * user 当前用户 + * + * @return + * 返回的查询限制条件的格式举例为: t1.a = '1' and t1.b = '3' and t1.c like '%22%' + * 其中t1为表单主表表名的别名 + */ + public String generateSqlCondition(Map param) throws Exception { + User user = (User)param.get("user"); + int usrId = user.getUID(); + + String sqlCondition = "t1.scbs != 1 and !(t1.zt = '7' and t1.modedatacreater !="+usrId+")"; + log.info(sqlCondition); + return sqlCondition; + } + +} diff --git a/src/main/java/com/engine/htxc/contract/dao/CghtDao.java b/src/main/java/com/engine/htxc/contract/dao/CghtDao.java new file mode 100644 index 0000000..b5dc36c --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dao/CghtDao.java @@ -0,0 +1,138 @@ +package com.engine.htxc.contract.dao; + +import com.engine.htxc.commonutil.db.EntityCrudUtil; +import com.engine.htxc.contract.dto.SecretLevelEnum; +import com.engine.htxc.contract.entity.CghtMainEntity; +import com.engine.htxc.contract.entity.UfHtqcDt1; +import com.engine.htxc.contract.entity.UfHtqcDt3; +import com.engine.htxc.contract.entity.UfHtqcDt4; +import com.engine.htxc.contract.number.entity.Uf_ContractNoAggr; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.conn.RecordSet; +import weaver.conn.RecordSetTrans; +import weaver.formmode.setup.ModeRightInfo; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:00 + * @Description: 采购发起合同dao + * @ModifyLog: 添加注释 + **/ +public class CghtDao { + private static final Logger logger= LoggerFactory.getLogger(CghtDao.class); + + /** + * 采购出发合同 用印状态默认为0 + */ + public static final int YYZT_0 = 0; + /** + * 采购出发合同 税率默认为0 + */ + public static final String SL_0 = "0"; + public static final String BHSJE_DEFAULT = "0.00"; + public static final String UF_HTQC = "uf_htqc"; + + public static CghtMainEntity insertCghtqcMain(Uf_ContractNoAggr contractNo, CghtMainEntity cghtMainEntity){ + //构造默认值 + EntityCrudUtil.buildModeBaseAttributes(UF_HTQC,cghtMainEntity,CghtMainEntity.class); + buildDefaultCghtValue(cghtMainEntity); + final RecordSetTrans rst = new RecordSetTrans(); + rst.setAutoCommit(false); + //插入数据 + try { + EntityCrudUtil.transInsert(rst,UF_HTQC,cghtMainEntity,CghtMainEntity.class); + final int mainId = EntityCrudUtil.getModeDataIdByUuid(rst,UF_HTQC, cghtMainEntity.getModeuuid()); + logger.info("----合同起草主表[uf_htqc] id:[{}] ",mainId); + if (mainId<0) { + throw new RuntimeException("插入主表[uf_htqc]数据失败"); + } + cghtMainEntity.setId(mainId); + + logger.info("合同信息保存成功,保存合同编号"); + contractNo.setMbid(String.valueOf(cghtMainEntity.getId())); + EntityCrudUtil.transInsert(rst,"uf_contractnoaggr",contractNo,Uf_ContractNoAggr.class); + + //插入明细表数据 + insertDetails(rst, mainId); + + //权限重构 + logger.info("权限重构"); + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(cghtMainEntity.getQcr(), cghtMainEntity.getFormmodeid(), mainId); + + rst.commit(); + logger.info("插入数据成功,数据提交"); + return cghtMainEntity; + } catch (Exception e) { + logger.error("插入数据失败,数据回滚",e); + rst.rollback(); + }finally { + rst.setAutoCommit(true); + } + return null; + } + + private static void insertDetails(RecordSetTrans rst, int mainId) throws Exception { + //明细表1 + logger.info("插入明细表数据"); + final UfHtqcDt1 ufHtqcDt1 = new UfHtqcDt1(); + ufHtqcDt1.setYyzt(YYZT_0); + ufHtqcDt1.setMainid(mainId); + if(!EntityCrudUtil.transInsert(rst,"uf_htqc_dt1", ufHtqcDt1,UfHtqcDt1.class)){ + throw new RuntimeException("插入明细表[uf_htqc_dt1]数据失败"); + } + //明细表3 + final UfHtqcDt3 ufHtqcDt3 = new UfHtqcDt3(); + ufHtqcDt3.setYyzt(YYZT_0); + ufHtqcDt3.setMainid(mainId); + if(!EntityCrudUtil.transInsert(rst,"uf_htqc_dt3",ufHtqcDt3,UfHtqcDt3.class)){ + throw new RuntimeException("插入明细表[uf_htqc_dt3]]数据失败"); + } + ////明细表4 + final UfHtqcDt4 ufHtqcDt4 = new UfHtqcDt4(); + ufHtqcDt4.setSl(SL_0); + ufHtqcDt4.setMainid(mainId); + ufHtqcDt4.setBhsje(BHSJE_DEFAULT); + if(!EntityCrudUtil.transInsert(rst,"uf_htqc_dt4",ufHtqcDt4,UfHtqcDt4.class)){ + throw new RuntimeException("插入明细表[uf_htqc_dt4]数据失败"); + } + } + + + + private static CghtMainEntity buildDefaultCghtValue(CghtMainEntity cghtMainEntity){ + LocalDateTime now = LocalDateTime.now(); + cghtMainEntity.setQcrq(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + cghtMainEntity.setSfwdsf("0"); + cghtMainEntity.setSfxjwfk(1); + cghtMainEntity.setDqbb(1); + cghtMainEntity.setHtjexz(0); + cghtMainEntity.setSfsw(1); + cghtMainEntity.setBz(0); + cghtMainEntity.setZt(0); + cghtMainEntity.setSfsymbfb(0); + cghtMainEntity.setBmdj(SecretLevelEnum.NORMAL_BUSINESS_SECRET.ordinal()); + cghtMainEntity.setSflx(1); + cghtMainEntity.setHtxz(0); + cghtMainEntity.setModedatacreater(cghtMainEntity.getQcr()); + cghtMainEntity.setFhtlx(getParentCategory(cghtMainEntity.getHtlx())); + return cghtMainEntity; + } + + public static String getParentCategory(String category){ + final RecordSet rs=new RecordSet(); + rs.executeQuery("select s.SJFL from uf_type_of_contract s where s.BZSM=?",category); + if(rs.next()){ + return rs.getString(1); + } + return ""; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dao/ContractDao.java b/src/main/java/com/engine/htxc/contract/dao/ContractDao.java new file mode 100644 index 0000000..6efd153 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dao/ContractDao.java @@ -0,0 +1,280 @@ +package com.engine.htxc.contract.dao; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.db.EntityCrudUtil; +import com.engine.htxc.contract.dto.CounterPartyDTO; +import com.engine.htxc.contract.dto.UserDeptInfoDTO; +import com.engine.htxc.contract.entity.UfOtcdertra; +import com.engine.htxc.contract.entity.UserEntity; +import com.engine.integration.util.StringUtils; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.conn.RecordSetTrans; + +import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:02 + * @Description: 发起合同流程相关查询dao + * @ModifyLog: 添加注释 + **/ +@Slf4j +public class ContractDao { + + public static final DbTools dbtools=new DbTools(); + + /** + * 根据社会代码查询对手方编码 + * @param codes + * @return + */ + public static List selectCounterPartyByCertCode(List codes){ + if(codes==null||codes.isEmpty()){ + return Collections.emptyList(); + } + String sql="select dsfbm from uf_dsfgl t,uf_dsfgl_dt1 d where d.mainid=t.id and d.zjhm in ('"+ String.join("','", codes) +"')"; + final RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql); + List result=new ArrayList<>(); + while (recordSet.next()){ + result.add(recordSet.getString("dsfbm")); + } + return result; + } + + /** + * 查询合同表主键id + * @param uuid + * @return + */ + public static int getDataIdByUuid(RecordSetTrans rst,String uuid) throws Exception { + rst.executeQuery("select id from UF_OTCDERTRA where modeuuid=? ", uuid); + if (rst.next()) { + return rst.getInt("id"); + } + return -1; + } + + + public static Map getUserByWorkcodeAndDeptCode(String workcode, String deptCode){ + String sql="select r.id as userid,r.lastname as username,r.telephone as telephone,r.email as email,r.departmentid as departmentid,r.workcode as workcode,d.departmentname as departmentname ,d.departmentcode as departmentcode from HRMRESOURCE r,hrmdepartment d where r.departmentid=d.id and workcode=? and DEPARTMENTCODE=? "; + final RecordSet rs = new RecordSet(); + final Map result = new HashMap<>(); + rs.executeQuery(sql,workcode,deptCode); + if (rs.next()) { + for (String s : rs.getColumnName()) { + result.put(s,rs.getString(s)); + } + } + return result; + + } + + /** + * 根据工号和部门批量查询用户信息 + * @param userDeptInfoDTOS + * @return + */ + public static List getUsersByWorkcodeAndDeptCodeList(List userDeptInfoDTOS) { + String sql="select w.jobtitlecode as jobcode,r.loginid,r.id as userid,r.lastname as username,r.telephone as telephone,r.email as email,r.departmentid as departmentid,r.workcode as workcode,d.departmentname as departmentname ,d.departmentcode as departmentcode from HRMRESOURCE r,hrmdepartment d,hrmjobtitles w where r.departmentid=d.id and w.id=r.jobtitle and (workcode,DEPARTMENTCODE) in (%s)"; + sql = String.format(sql, String.join(",", Collections.nCopies(userDeptInfoDTOS.size(), "(?,?)"))); + + List params=new ArrayList<>(userDeptInfoDTOS.size()*2); + for (UserDeptInfoDTO userDeptInfoDTO : userDeptInfoDTOS) { + params.add(userDeptInfoDTO.getUserCode()); + params.add(userDeptInfoDTO.getDeptCode()); + } + return EntityCrudUtil.selectList(sql,UserEntity.class,params); + } + + + /** + * 查询部门简称 + * @param deptId + * @return + */ + public static String getDeptAbbrByDeptId(int deptId){ + RecordSet rs = new RecordSet(); + // 获取部门id + String sql = "select docnumabbreviation from hrmdepartmentdefined where deptid=?"; + rs.executeQuery(sql,deptId); + if (rs.next()) { + return rs.getString("docnumabbreviation"); + } + return ""; + } + + + + /** + * 查询编号最大编码 + * @param deptAbbr + * @param year + * @param prefix + * @return + */ + public static int getMaxNum(String deptAbbr, String year, String prefix) { + final RecordSet rs = new RecordSet(); + rs.executeQuery("select max(zzbh)+1 as zzbh from uf_ContractNoAggr where qz=? and year=? and zzjgjc=?", prefix, year, deptAbbr); + if(rs.next()){ + return Math.max(rs.getInt("zzbh"),1); + }else{ + return -1; + } + } + public static void updateUfOtcdertraFiles(RecordSetTrans rst, UfOtcdertra contractMain) throws Exception { + rst.executeUpdate("update uf_otcdertra set htzw=?,htfj=? where id=? ", contractMain.getHtzw(), contractMain.getHtfj(), contractMain.getId()); + } + public static boolean checkTemplateNo(String templateNo){ + final RecordSet rs = new RecordSet(); + rs.executeQuery(" SELECT count(b.id) c FROM docimagefile a ,uf_wdzx b,imagefile c ,uf_wdzx_dt1 d where a.imagefileid=b.wj and a.imagefileid=c.imagefileid and b.id=d.mainid and d.zt=1 and b.mbbh=?",templateNo); + if(rs.next()){ + return rs.getInt("c")>0; + } + return false; + } + + public static List findCounterparty(List counterPartyDTOS){ + String sql="select a.id from uf_dsfgl a , uf_dsfgl_dt1 b where b.mainid=a.id and (b.zjlx,b.zjhm) in (%s)"; + sql = String.format(sql, String.join(",", Collections.nCopies(counterPartyDTOS.size(), "(?,?)"))); + List params=new ArrayList<>(counterPartyDTOS.size()*2); + for (CounterPartyDTO counterPartyDTO : counterPartyDTOS) { + params.add(counterPartyDTO.getCertType()); + params.add(counterPartyDTO.getCertNo()); + } + final RecordSet rs = new RecordSet(); + rs.executeQuery(sql,params); + List result=new ArrayList<>(); + while (rs.next()){ + result.add(rs.getInt("id")); + } + return result; + } + + public static List findContractSeal(List seals){ + String sql="select id from uf_ContractSeal where yzbh in (%s)"; + sql=String.format(sql, String.join(",", Collections.nCopies(seals.size(), "?"))); + final RecordSet rs = new RecordSet(); + rs.executeQuery(sql,seals); + List result=new ArrayList<>(); + while (rs.next()){ + result.add(rs.getString("id")); + } + return result; + } + + + public static boolean checkCategory(String categeryId) { + final RecordSet rs = new RecordSet(); + rs.executeQuery("select count(id) c from uf_type_of_contract where bzsm=?",categeryId); + if(rs.next()){ + return rs.getInt(1)>0; + } + return false; + } + /** + * 查询合同的编号 + * @title getSealNocount + * @author K1810015 + * @updateTime 2022/9/2 17:23 + */ + public static String getSealCount(String tablename,String htbh){ + if(StringUtils.isBlank(tablename) && StringUtils.isBlank(htbh)){ + return ""; + } + String sql="select wm_concat_old(yz) as yz from "+ tablename+" where 1=1 and htbh in ("+ Arrays.stream(htbh.split(",")).map(item->"\'"+item+"\'").collect(Collectors.joining(","))+")"; + return dbtools.getsqlonevalue(sql); + } + + /** + *根据工号和部门查询 单个直接选择,多个若有jobCode根据jobCode查询,没有jobCode默认选主岗 ,若该部门没有主岗多个都是兼岗都不取 校验时报错 + * @param userDeptInfoDTOS + * @return + */ + public static List getUsersByWorkcodeAndJobCodeList(List userDeptInfoDTOS){ + final List users = getUsersByWorkcodeAndDeptCodeList(userDeptInfoDTOS); + //按工号收集用户 + Map> userMap = getUserMap(users); + //按工号收集岗位 + Map userJobCodeMap = getUserJobCodeMap(userDeptInfoDTOS); + return getUserEntityList(userJobCodeMap, userMap); + } + + + private static Map getUserJobCodeMap(List userDeptInfoDTOS) { + Map userJobCodeMap=new HashMap<>(); + for (UserDeptInfoDTO userDeptInfoDTO : userDeptInfoDTOS) { + userJobCodeMap.put(userDeptInfoDTO.getUserCode(),userDeptInfoDTO.getJobCode()); + } + return userJobCodeMap; + } + + private static Map> getUserMap(List users) { + Map> userMap=new HashMap<>(); + for (UserEntity user : users) { + List userAccountList = userMap.get(user.getWorkcode()); + if(null== userAccountList){ + userAccountList= new ArrayList<>(); + userMap.put(user.getWorkcode(),userAccountList); + } + userAccountList.add(user); + } + return userMap; + } + + private static List getUserEntityList(Map userJobCodeMap, Map> userMap) { + //根据工号和部门查询 查到单个账号直接选择,多个账号若传有jobCode根据jobCode查询,没有jobCode默认选主岗 ,若该部门没有主岗多个都是兼岗都不取 校验时报错 + List userEntityList=new ArrayList<>(); + for (Map.Entry> userEntry : userMap.entrySet()) { + final List userEntities = userEntry.getValue(); + //单个直接取 + if(userEntities.size()==1){ + userEntityList.add(userEntities.get(0)); + }else{ + log.info("工号[{}]查到[{}]个账号",userEntry.getKey(),userEntities.size()); + //多个账号若有jobCode根据jobCode查询,没有传jobCode选择主岗 否则出错 + UserEntity userEntity = findUserWithJobCodeOrMajorPosition(userEntry.getKey(),userEntities, userJobCodeMap); + if(null!=userEntity){ + userEntityList.add(userEntity); + }else{ + log.error("工号[{}]查询账号出错",userEntry.getKey()); + } + } + + } + return userEntityList; + } + + private static UserEntity findUserWithJobCodeOrMajorPosition(String userCode,List userEntities, Map userJobCodeMap) { + final String jobCode = userJobCodeMap.get(userCode); + if(!StringUtils.isBlank(jobCode)){ + log.info("工号[{}]传入岗位:[{}]",userCode,jobCode); + for (UserEntity userEntity : userEntities) { + if(userEntity.getJobCode().equals(jobCode)){ + return userEntity; + } + } + } + log.info("工号[{}]查询主岗",userCode); + //没有传jobCode选择主岗 + return findMajorPositionUser(userEntities); + } + + private static UserEntity findMajorPositionUser(List userEntities) { + for (UserEntity userEntity : userEntities) { + //工号和登录号相等是主岗 + if(userEntity.getWorkcode().equals(userEntity.getLoginid())){ + return userEntity; + } + } + return null; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dao/ContractModeDao.java b/src/main/java/com/engine/htxc/contract/dao/ContractModeDao.java new file mode 100644 index 0000000..c1ecc6f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dao/ContractModeDao.java @@ -0,0 +1,82 @@ +package com.engine.htxc.contract.dao; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.contract.util.ContractUtil; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; + +import java.util.HashMap; +import java.util.Map; + +/** + *

关于合同建模状态修改的类型

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ContractModeDao.java + * @createTime 2022年08月31日 20:33:00 + */ +public class ContractModeDao { + + private DbTools dbtools=new DbTools(); + + public Map modemap=new HashMap<>(); + + public String modeid=""; + + public String modetable=""; + + /** + * 默认标识,判断是否初始化成功 + * */ + private boolean flag=false; + + public ContractModeDao(String htlx,String id) { + inittable(htlx); + if(!flag || StringUtils.isBlank(id)){ + return ; + } + Map wheremap=new HashMap<>(); + wheremap.put("id",id); + modemap=dbtools.gettabletomap(modetable,wheremap); + } + + public ContractModeDao(String htlx,String htbh,String htbb) { + inittable(htlx); + if(!flag || StringUtils.isBlank(htbh) || StringUtils.isBlank(htbb)){ + return ; + } + Map wheremap=new HashMap<>(); + wheremap.put("htbh",htbh); + wheremap.put("dqbb",htbb); + modemap=dbtools.gettabletomap(modetable,wheremap); + if(modemap!=null && !modemap.isEmpty()){ + modeid= Util.null2String(modemap.get("id")); + } + } + + public boolean updateMode(Map setmap){ + if(!flag){ + return false; + } + if(setmap==null || setmap.isEmpty()){ + return false; + } + if(StringUtils.isBlank(modeid) || StringUtils.isBlank(modetable)){ + return false; + } + Map wheremap=new HashMap<>(1); + wheremap.put("id",modeid); + return dbtools.updateSql(modetable,setmap,wheremap); + + } + + private void inittable(String htlx){ + if(StringUtils.isBlank(htlx) ){ + return ; + } + modetable= ContractUtil.getContractTableName(htlx); + if(!StringUtils.isBlank(modetable)){ + flag=true; + } + } +} diff --git a/src/main/java/com/engine/htxc/contract/dao/ProductDao.java b/src/main/java/com/engine/htxc/contract/dao/ProductDao.java new file mode 100644 index 0000000..d01c9ab --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dao/ProductDao.java @@ -0,0 +1,53 @@ +package com.engine.htxc.contract.dao; + +import com.engine.htxc.contract.entity.UfProduct; +import com.engine.htxc.contract.entity.UfProductCounterParty; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2315:55 + * @Description: 产品信息dao + * @ModifyLog: + **/ +public class ProductDao { + public static UfProduct selectProductByProductId(String productId){ + if (StringUtils.isEmpty(productId)) { + return null; + } + String sql="select id,requestid,productid,productname from uf_product where productid=?"; + final RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql,productId); + if(recordSet.next()){ + return null; + } + final UfProduct ufProduct = new UfProduct(); + ufProduct.setId(recordSet.getInt("id")); + ufProduct.setProductname(recordSet.getString("productname")); + ufProduct.setProductid(recordSet.getString("productid")); + return ufProduct; + } + + public static UfProductCounterParty selectUfProductCounterpartyByProductid(String productid){ + if(StringUtils.isBlank(productid)){ + return null; + } + String sql="select id,requestid,productid,socialcreditcode from uf_prodcontrelation where productid=?"; + final RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql,productid); + final boolean next = recordSet.next(); + if(!next){ + return null; + } + final UfProductCounterParty ufProductCounterParty = new UfProductCounterParty(); + ufProductCounterParty.setId(recordSet.getInt("id")); + ufProductCounterParty.setRequestid(recordSet.getInt("requestid")); + ufProductCounterParty.setProductid(recordSet.getString("productid")); + ufProductCounterParty.setSocialcreditcode(recordSet.getString("socialcreditcode")); + return ufProductCounterParty; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ConcerningForeignEnum.java b/src/main/java/com/engine/htxc/contract/dto/ConcerningForeignEnum.java new file mode 100644 index 0000000..2b01ef2 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ConcerningForeignEnum.java @@ -0,0 +1,21 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:10 + * @Description: 是否涉外 + * @ModifyLog: + **/ +public enum ConcerningForeignEnum { + /** + * 涉外 + */ + CONCERNING_FOREIGN, + /** + * 不涉外 + */ + NO_CONCERNING_FOREIGN +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ContractDetailDTO.java b/src/main/java/com/engine/htxc/contract/dto/ContractDetailDTO.java new file mode 100644 index 0000000..904f9cc --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ContractDetailDTO.java @@ -0,0 +1,183 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:39 + * @Description: 合同详细信息 + * @ModifyLog: + **/ +public class ContractDetailDTO implements Serializable { + /** + * 合同名称 + */ + private String contractName; + + /** + * 对手方 + */ + private List counterPartyList; + + /** + * 产品编码 + */ + private List productCodeList; + + /** + * 合同正文 + */ + private List mainFileList; + + /** + * 合同附件 + */ + private List attachedFileList; + + /** + * 印章 + */ + private List seals; + + /** + * 合同备注 + * + */ + private String contractComment; + + /** + * 文本来源 LOCAL 本地上传/NORMAL 标准文本/EXAMPLE 示范文本 + * + */ + private String textSource; + + /** + * 未使用范本原因 + * + */ + private String unusedTextReason; + + /** + * 起草人工号 + */ + private String userCode; + + /** + * 起草人部门 + */ + private String userDeptCode; + + /** + * 自动用印 必填 模板编号 + */ + private String templateNo; + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + + public List getCounterPartyList() { + return counterPartyList; + } + + public void setCounterPartyList(List counterPartyList) { + this.counterPartyList = counterPartyList; + } + + public List getProductCodeList() { + return productCodeList; + } + + public void setProductCodeList(List productCodeList) { + this.productCodeList = productCodeList; + } + + public List getMainFileList() { + return mainFileList; + } + + public void setMainFileList(List mainFileList) { + this.mainFileList = mainFileList; + } + + public List getAttachedFileList() { + return attachedFileList; + } + + public void setAttachedFileList(List attachedFileList) { + this.attachedFileList = attachedFileList; + } + + public List getSeals() { + return seals; + } + + public void setSeals(List seals) { + this.seals = seals; + } + + public String getContractComment() { + return contractComment; + } + + public void setContractComment(String contractComment) { + this.contractComment = contractComment; + } + + public String getTextSource() { + return textSource; + } + + public void setTextSource(String textSource) { + this.textSource = textSource; + } + + public String getUnusedTextReason() { + return unusedTextReason; + } + + public void setUnusedTextReason(String unusedTextReason) { + this.unusedTextReason = unusedTextReason; + } + + public String getUserCode() { + return userCode; + } + + public void setUserCode(String userCode) { + this.userCode = userCode; + } + + public String getUserDeptCode() { + return userDeptCode; + } + + public void setUserDeptCode(String userDeptCode) { + this.userDeptCode = userDeptCode; + } + + public String getTemplateNo() { + return templateNo; + } + + public void setTemplateNo(String templateNo) { + this.templateNo = templateNo; + } + + @Override + public String toString() { + return "ContractDetailDTO{" + "contractName='" + contractName + '\'' + ", counterPartyList=" + counterPartyList + + ", productCodeList=" + productCodeList + ", mainFileList=" + mainFileList + ", attachedFileList=" + + attachedFileList + ", seals=" + seals + ", contractComment='" + contractComment + '\'' + ", textSource='" + + textSource + '\'' + ", unusedTextReason='" + unusedTextReason + '\'' + ", userCode='" + userCode + '\'' + + ", userDeptCode='" + userDeptCode + '\'' + ", templateNo='" + templateNo + '\'' + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ContractFileDTO.java b/src/main/java/com/engine/htxc/contract/dto/ContractFileDTO.java new file mode 100644 index 0000000..32fb8a6 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ContractFileDTO.java @@ -0,0 +1,123 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:40 + * @Description: 合同文件 + * @ModifyLog: + **/ +public class ContractFileDTO implements Serializable { + /** + * 文件名称 + */ + private String fileName; + /** + * 文件存储网关 + */ + private String fileId; + /** + * 文件后缀 + */ + private String suffix; + + /** + * 用印方式 枚举值:电子用印,物理用印,物理和电子,不用印 + */ + private String sealMethod; + + /** + * 电子用印方式 枚举值:电子件,防伪打印件,对手方电子件 + */ + private String esealMethod; + /** + * 单双面打印 枚举值:单面打印,双面打印 + */ + private String printBothSide; + + /** + * 打印份数 用印方式:电子用印方式:防伪打印件时,打印份数赋值给防伪打印份数; 物理和电子方式:打印份数同时赋值给物理用印份数和防伪打印份数 + */ + private Integer printCount; + + /** + * 物理用印份数 用印方式:物理用印时,打印份数赋值给物理用印份数; + */ + private Integer physicalSealCount; + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public String getFileId() { + return fileId; + } + + public void setFileId(String fileId) { + this.fileId = fileId; + } + + public String getSuffix() { + return suffix; + } + + public void setSuffix(String suffix) { + this.suffix = suffix; + } + + public String getSealMethod() { + return sealMethod; + } + + public void setSealMethod(String sealMethod) { + this.sealMethod = sealMethod; + } + + public String getEsealMethod() { + return esealMethod; + } + + public void setEsealMethod(String esealMethod) { + this.esealMethod = esealMethod; + } + + public String getPrintBothSide() { + return printBothSide; + } + + public void setPrintBothSide(String printBothSide) { + this.printBothSide = printBothSide; + } + + public Integer getPrintCount() { + return printCount; + } + + public void setPrintCount(Integer printCount) { + this.printCount = printCount; + } + + public Integer getPhysicalSealCount() { + return physicalSealCount; + } + + public void setPhysicalSealCount(Integer physicalSealCount) { + this.physicalSealCount = physicalSealCount; + } + + @Override + public String toString() { + return "ContractFileDTO{" + "fileName='" + fileName + '\'' + ", fileId='" + fileId + '\'' + ", suffix='" + + suffix + '\'' + ", sealMethod='" + sealMethod + '\'' + ", esealMethod='" + esealMethod + '\'' + + ", printBothSide='" + printBothSide + '\'' + ", printCount=" + printCount + ", physicalSealCount=" + + physicalSealCount + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ContractNatureEnum.java b/src/main/java/com/engine/htxc/contract/dto/ContractNatureEnum.java new file mode 100644 index 0000000..eff449f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ContractNatureEnum.java @@ -0,0 +1,20 @@ +package com.engine.htxc.contract.dto; +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:14 + * @Description: 合同性质枚举 主合同,补充协议 + * @ModifyLog: + **/ +public enum ContractNatureEnum { + /** + * 主合同 + */ + MAIN_CONTRACT, + /** + * 补充协议 + */ + SUPPLEMENTARY_AGREEMENT +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ContractProcessDTO.java b/src/main/java/com/engine/htxc/contract/dto/ContractProcessDTO.java new file mode 100644 index 0000000..82c47e9 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ContractProcessDTO.java @@ -0,0 +1,177 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:40 + * @Description: 合同流程数据 + * @ModifyLog: + **/ +public class ContractProcessDTO implements Serializable { + /** + * 调用方 + */ + private String sysCode; + + /** + * 发起类型 + */ + private String moduleCode; + /** + * 合同列表 + */ + private List contractList; + + /** + * 合同流程标题 + */ + private String processTitle; + /** + * 合同经办人 + */ + private String userCode; + /** + * 合同经办人部门编码 + */ + private String userDeptCode; + /** + * 联系电话 + */ + private String telephone; + + /** + * 合同分类 + */ + private String contractCategoryId; + + /** + * 通知阅读人id集合 + */ + private List noticeReaderIds; + + /** + * 内部审核 + */ + private List internalAuditIds; + + /** + * 部门领导 + */ + private List deptHeadIds; + + /** + * 是否自动用印表示 + */ + private Boolean autoSealFlag; + + public String getSysCode() { + return sysCode; + } + + public void setSysCode(String sysCode) { + this.sysCode = sysCode; + } + + public String getModuleCode() { + return moduleCode; + } + + public void setModuleCode(String moduleCode) { + this.moduleCode = moduleCode; + } + + public String getProcessTitle() { + return processTitle; + } + + public void setProcessTitle(String processTitle) { + this.processTitle = processTitle; + } + + public String getUserCode() { + return userCode; + } + + public void setUserCode(String userCode) { + this.userCode = userCode; + } + + public String getUserDeptCode() { + return userDeptCode; + } + + public void setUserDeptCode(String userDeptCode) { + this.userDeptCode = userDeptCode; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + public String getContractCategoryId() { + return contractCategoryId; + } + + public void setContractCategoryId(String contractCategoryId) { + this.contractCategoryId = contractCategoryId; + } + + public List getNoticeReaderIds() { + return noticeReaderIds; + } + + public void setNoticeReaderIds(List noticeReaderIds) { + this.noticeReaderIds = noticeReaderIds; + } + + public List getInternalAuditIds() { + return internalAuditIds; + } + + public void setInternalAuditIds(List internalAuditIds) { + this.internalAuditIds = internalAuditIds; + } + + public List getDeptHeadIds() { + return deptHeadIds; + } + + public void setDeptHeadIds(List deptHeadIds) { + this.deptHeadIds = deptHeadIds; + } + + public List getContractList() { + return contractList; + } + + public void setContractList(List contractList) { + this.contractList = contractList; + } + + public Boolean getAutoSealFlag() { + return autoSealFlag; + } + + public void setAutoSealFlag(Boolean autoSealFlag) { + this.autoSealFlag = autoSealFlag; + } + + @Override + public String toString() { + return "ContractProcessDTO{" + "sysCode='" + sysCode + '\'' + ", moduleCode='" + moduleCode + '\'' + + ", contractList=" + contractList + ", processTitle='" + processTitle + '\'' + ", userCode='" + userCode + + '\'' + ", userDeptCode='" + userDeptCode + '\'' + ", telephone='" + telephone + '\'' + + ", contractCategoryId='" + contractCategoryId + '\'' + ", noticeReaderIds=" + noticeReaderIds + + ", internalAuditIds=" + internalAuditIds + ", deptHeadIds=" + deptHeadIds + ", autoSealFlag=" + + autoSealFlag + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ContractStatusEnum.java b/src/main/java/com/engine/htxc/contract/dto/ContractStatusEnum.java new file mode 100644 index 0000000..6cf4bdb --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ContractStatusEnum.java @@ -0,0 +1,31 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:16 + * @Description: 合同状态枚举 + * @ModifyLog: + **/ +public enum ContractStatusEnum { + //0草稿 + DRAFT, + //1待审批 + TO_APPROVE, + //2审批中 + APPROVING, + //3待签订 + TO_SIGN, + //4已签订 + SIGN_FINISH, + //5废弃中 + DISCARDING, + //6已废弃 + DISCARD_FINISH, + //7履约中 + PERFORMING, + //8履约完成, + PERFORM_FINISH +} diff --git a/src/main/java/com/engine/htxc/contract/dto/CounterPartyDTO.java b/src/main/java/com/engine/htxc/contract/dto/CounterPartyDTO.java new file mode 100644 index 0000000..09ba933 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/CounterPartyDTO.java @@ -0,0 +1,46 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:40 + * @Description: 对手方信息 + * @ModifyLog: + **/ +public class CounterPartyDTO implements Serializable { + + /** + * 证书类型 + */ + private String certType; + + /** + * 证件号码:统一社会信用代码 或身份证 + */ + private String certNo; + + public String getCertType() { + return certType; + } + + public void setCertType(String certType) { + this.certType = certType; + } + + public String getCertNo() { + return certNo; + } + + public void setCertNo(String certNo) { + this.certNo = certNo; + } + + @Override + public String toString() { + return "CounterPartyDTO{" + "certType='" + certType + '\'' + ", certNo='" + certNo + '\'' + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/CurrencyEnum.java b/src/main/java/com/engine/htxc/contract/dto/CurrencyEnum.java new file mode 100644 index 0000000..f901793 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/CurrencyEnum.java @@ -0,0 +1,38 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/9/6 9:48 + * @Description: 币种 + * @ModifyLog: + **/ +public enum CurrencyEnum { + /** + :CNY人民币 + */ + CNY, + /** + * HKD港币 + */ + HKD, + /** + * USD美元 + */ + USD, + /** + * EUR欧元 + */ + EUR, + /** + * GBP英镑 + */ + GBP, + /** + * JPY日元 + */ + JPY + +} diff --git a/src/main/java/com/engine/htxc/contract/dto/EsealMethodEnum.java b/src/main/java/com/engine/htxc/contract/dto/EsealMethodEnum.java new file mode 100644 index 0000000..1916cd3 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/EsealMethodEnum.java @@ -0,0 +1,31 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:41 + * @Description: 电子用印方式 + * @ModifyLog: + **/ +public enum EsealMethodEnum { + + // 电子件,防伪打印件,对手方电子件,双方在线签署 + /** + * 电子件 + */ + E_FILE, + /** + * 防伪打印件 + */ + RXF_FILE, + /** + * 对手方电子件 + */ + OPPOSITE_E_FILE, + /** + * 双方在线签署 + */ + ONLINE_SIGN +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ModuleCodeEnum.java b/src/main/java/com/engine/htxc/contract/dto/ModuleCodeEnum.java new file mode 100644 index 0000000..144ddba --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ModuleCodeEnum.java @@ -0,0 +1,22 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2914:33 + * @Description: + * @ModifyLog: + **/ +public enum ModuleCodeEnum { + /** + * 普通合同 + */ + NORMAL, + /** + * 在线签署合同 + */ + ONLINE + +} diff --git a/src/main/java/com/engine/htxc/contract/dto/PrintSideEnum.java b/src/main/java/com/engine/htxc/contract/dto/PrintSideEnum.java new file mode 100644 index 0000000..f76c603 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/PrintSideEnum.java @@ -0,0 +1,22 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:41 + * @Description: 单双面打印 + * @ModifyLog: + **/ +public enum PrintSideEnum { + // 单面打印,双面打印 + /** + * 单面打印 + */ + SINGLE, + /** + * 双面打印 + */ + BOTH +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ProcessInfoDTO.java b/src/main/java/com/engine/htxc/contract/dto/ProcessInfoDTO.java new file mode 100644 index 0000000..d853e97 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ProcessInfoDTO.java @@ -0,0 +1,45 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:41 + * @Description: 发起后返回流程信息 + * @ModifyLog: + **/ +public class ProcessInfoDTO implements Serializable { + /** + * 流程id + */ + private String requestId; + + /** + * 流程编号 + */ + private String workflowNo; + + public String getRequestId() { + return requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public String getWorkflowNo() { + return workflowNo; + } + + public void setWorkflowNo(String workflowNo) { + this.workflowNo = workflowNo; + } + + @Override + public String toString() { + return "ProcessInfoDTO{" + "requestId='" + requestId + '\'' + ", workflowNo='" + workflowNo + '\'' + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ProductCounterPartyDTO.java b/src/main/java/com/engine/htxc/contract/dto/ProductCounterPartyDTO.java new file mode 100644 index 0000000..0990ef3 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ProductCounterPartyDTO.java @@ -0,0 +1,97 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 16:57 + * @Description: 产品对手方关系 + * @ModifyLog: + **/ +public class ProductCounterPartyDTO implements Serializable { + /** + * 产品名称 + */ + private String productName; + + /** + * 产品唯一标识 + */ + private String productCode; + /** + * 证件类型 + */ + private String certType; + + /** + * 证件号码: 统一社会信用代码,身份证 + */ + private String certNo; + /** + * 对手方名称 + */ + private String counterPartyName; + + /** + * 机构类型 个人 企业 + */ + private String counterPartyType; + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getCertType() { + return certType; + } + + public void setCertType(String certType) { + this.certType = certType; + } + + public String getCertNo() { + return certNo; + } + + public void setCertNo(String certNo) { + this.certNo = certNo; + } + + public String getCounterPartyName() { + return counterPartyName; + } + + public void setCounterPartyName(String counterPartyName) { + this.counterPartyName = counterPartyName; + } + + public String getCounterPartyType() { + return counterPartyType; + } + + public void setCounterPartyType(String counterPartyType) { + this.counterPartyType = counterPartyType; + } + + @Override + public String toString() { + return "ProductCounterPartyDTO{" + "productName='" + productName + '\'' + ", productCode='" + productCode + '\'' + + ", certType='" + certType + '\'' + ", certNo='" + certNo + '\'' + ", counterPartyName='" + + counterPartyName + '\'' + ", counterPartyType='" + counterPartyType + '\'' + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ProductCounterpartyEnum.java b/src/main/java/com/engine/htxc/contract/dto/ProductCounterpartyEnum.java new file mode 100644 index 0000000..c681d6d --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ProductCounterpartyEnum.java @@ -0,0 +1,18 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2317:07 + * @Description: 添加产品对手方结果 + * @ModifyLog: + **/ +public enum ProductCounterpartyEnum { + CREATE_SUCCESS, + PRODUCT_EXIST, + COUNTERPARTY_EXIST, + PRODUCT_COUNTERPARTY_EXIST, + PRODUCT_OTHER_COUNTERPARTY_EXIST +} diff --git a/src/main/java/com/engine/htxc/contract/dto/ProductInfoDTO.java b/src/main/java/com/engine/htxc/contract/dto/ProductInfoDTO.java new file mode 100644 index 0000000..aed4e97 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/ProductInfoDTO.java @@ -0,0 +1,45 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:18 + * @Description: 产品信息DTO + * @ModifyLog: + **/ +public class ProductInfoDTO implements Serializable { + /** + * 产品名称 + */ + private String productName; + + /** + * 产品id; + */ + private String productId; + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductId() { + return productId; + } + + public void setProductId(String productId) { + this.productId = productId; + } + + @Override + public String toString() { + return "ProductInfoDTO{" + "productName='" + productName + '\'' + ", productId='" + productId + '\'' + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/dto/SealMethodEnum.java b/src/main/java/com/engine/htxc/contract/dto/SealMethodEnum.java new file mode 100644 index 0000000..fb30bc4 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/SealMethodEnum.java @@ -0,0 +1,30 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:43 + * @Description: 用印方式 + * @ModifyLog: + **/ +public enum SealMethodEnum { + // 电子用印,物理用印,物理和电子,不用印 + /** + * 电子用印 + */ + E_SEAL, + /** + * 物理用印 + */ + PHYSIC_SEAL, + /** + * 物理和电子 + */ + E_PHYSIC_SEAL, + /** + * 不用印 + */ + NO_SEAL +} diff --git a/src/main/java/com/engine/htxc/contract/dto/SecretLevelEnum.java b/src/main/java/com/engine/htxc/contract/dto/SecretLevelEnum.java new file mode 100644 index 0000000..1f16cb3 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/SecretLevelEnum.java @@ -0,0 +1,19 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:19 + * @Description: 安全等级 枚举值:普通商密,核心商密,外部公开,内部公开 + * @ModifyLog: + **/ +public enum SecretLevelEnum { + + NORMAL_BUSINESS_SECRET, + CORE_BUSINESS_SECRET, + EXTERNAL_PUBLIC, + INTERNAL_PUBLIC, + +} diff --git a/src/main/java/com/engine/htxc/contract/dto/TextSourceEnum.java b/src/main/java/com/engine/htxc/contract/dto/TextSourceEnum.java new file mode 100644 index 0000000..420d3b0 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/TextSourceEnum.java @@ -0,0 +1,26 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/23 10:43 + * @Description: 文本来源 + * @ModifyLog: + **/ +public enum TextSourceEnum { + /** + * 本地上传 + */ + LOCAL, + /** + * 标准文本 + */ + STANDARD, + /** + * 示范文本 + */ + EXAMPLE + +} diff --git a/src/main/java/com/engine/htxc/contract/dto/UrgencyEum.java b/src/main/java/com/engine/htxc/contract/dto/UrgencyEum.java new file mode 100644 index 0000000..e22a5f5 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/UrgencyEum.java @@ -0,0 +1,25 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:21 + * @Description: 紧急程度 枚举值:一般 紧急 特急 + * @ModifyLog: + **/ +public enum UrgencyEum { + /** + * 一般 + */ + NORMAL, + /** + * 紧急 + */ + URGENT, + /** + * 特急 + */ + EXTRA_URGENT +} diff --git a/src/main/java/com/engine/htxc/contract/dto/UseTextEnum.java b/src/main/java/com/engine/htxc/contract/dto/UseTextEnum.java new file mode 100644 index 0000000..0bb4727 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/UseTextEnum.java @@ -0,0 +1,21 @@ +package com.engine.htxc.contract.dto; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:22 + * @Description: 是否使用范本 + * @ModifyLog: + **/ +public enum UseTextEnum { + /** + * 使用范本 + */ + USE_TEXT, + /** + * 未使用范本 + */ + NO_TEXT +} diff --git a/src/main/java/com/engine/htxc/contract/dto/UserDeptInfoDTO.java b/src/main/java/com/engine/htxc/contract/dto/UserDeptInfoDTO.java new file mode 100644 index 0000000..8a5f1d5 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/dto/UserDeptInfoDTO.java @@ -0,0 +1,48 @@ +package com.engine.htxc.contract.dto; + +import java.io.Serializable; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2913:30 + * @Description: + * @ModifyLog: + **/ +public class UserDeptInfoDTO implements Serializable { + private String userCode; + private String deptCode; + private String jobCode; + + public String getUserCode() { + return userCode; + } + + public void setUserCode(String userCode) { + this.userCode = userCode; + } + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + public String getJobCode() { + return jobCode; + } + + public void setJobCode(String jobCode) { + this.jobCode = jobCode; + } + + @Override + public String toString() { + return "UserDeptInfoDTO{" + "userCode='" + userCode + '\'' + ", deptCode='" + deptCode + '\'' + ", jobCode='" + + jobCode + '\'' + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/entity/CghtMainEntity.java b/src/main/java/com/engine/htxc/contract/entity/CghtMainEntity.java new file mode 100644 index 0000000..4b27051 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/CghtMainEntity.java @@ -0,0 +1,932 @@ +package com.engine.htxc.contract.entity; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:23 + * @Description: 采购发起合同Entity + * @ModifyLog: + **/ +public class CghtMainEntity { + private Integer id; + + private Integer requestid; + + private Integer sfsymbfb; + + private String htmc; + + private Integer bmdj; + + private Integer formmodeid; + + private Integer modedatacreater; + + private Integer modedatacreatertype; + + private String modedatacreatedate; + + private String modedatacreatetime; + + private Integer modedatamodifier; + + private String modedatamodifydatetime; + + private String modeuuid; + + private Integer sfsw; + + private Integer htjexz; + + private Integer bz; + + private String htjedx; + + private Integer sflx; + + private Integer sffs; + + private Integer sfxjwfk; + + private String wdsfyy; + + private Integer zt; + + private String htbh; + + private String htlx; + + private Integer htzwbj; + + private Integer htxz; + + private String htdsf; + + private String htzje; + + private String zhrmb; + + private String sfwdsf; + + private String glht; + + private Integer qcbm; + + private Integer qcjg; + + private String htzw; + + private String htzwfzzd; + + private String htfj; + + private String htfjfzzd; + + private String beizhu; + + private String syyhsxm; + + private String htzwdzyyj; + + private String htfjdzyyj; + + private String fhtlx; + + private String fid; + + private String bgjlbd; + + private Integer fpxz; + + private String sh; + + private String htlxwb; + + private Integer bzhlz; + + private String jshjje; + + private String xzfb; + + private Integer jsbz; + + private String sfktj; + + private String wsymbyy; + + private String qcrq; + + private Integer htsplcrequestid; + + private Integer yyjgdzt; + + private Integer dqbb; + + private String yyjdbs; + + private String cyyz; + + private Integer qcr; + + private String symblj; + + private String syscode; + + private String modulecode; + + private Integer lkrqsfytsyq; + + private String tsyqms; + + private String yyrq; + + private String htqsj; + + private String fzyy; + + private String fzrq; + + private String htgdj; + + private String jsgdrq; + + private String ndgdrq; + + private String gdbz; + + private Integer gdlx; + + private String lyks; + + private String lyjs; + + private String lyjh; + + private Integer mqyfje; + + private Integer htyfje; + + private Integer fkqs; + + private Integer sfymqlyrq; + + private String gllc; + + private Integer yjlyscdwt; + + private String xgcgx; + + private String glqsxx; + + private String glfzxx; + + private String glgdxx; + + private String gllyxx; + + private Integer dfkje; + + private String yfkbl; + + private String htspr; + + private String yz; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getRequestid() { + return requestid; + } + + public void setRequestid(Integer requestid) { + this.requestid = requestid; + } + + public Integer getSfsymbfb() { + return sfsymbfb; + } + + public void setSfsymbfb(Integer sfsymbfb) { + this.sfsymbfb = sfsymbfb; + } + + public String getHtmc() { + return htmc; + } + + public void setHtmc(String htmc) { + this.htmc = htmc; + } + + public Integer getBmdj() { + return bmdj; + } + + public void setBmdj(Integer bmdj) { + this.bmdj = bmdj; + } + + public Integer getFormmodeid() { + return formmodeid; + } + + public void setFormmodeid(Integer formmodeid) { + this.formmodeid = formmodeid; + } + + public Integer getModedatacreater() { + return modedatacreater; + } + + public void setModedatacreater(Integer modedatacreater) { + this.modedatacreater = modedatacreater; + } + + public Integer getModedatacreatertype() { + return modedatacreatertype; + } + + public void setModedatacreatertype(Integer modedatacreatertype) { + this.modedatacreatertype = modedatacreatertype; + } + + public String getModedatacreatedate() { + return modedatacreatedate; + } + + public void setModedatacreatedate(String modedatacreatedate) { + this.modedatacreatedate = modedatacreatedate; + } + + public String getModedatacreatetime() { + return modedatacreatetime; + } + + public void setModedatacreatetime(String modedatacreatetime) { + this.modedatacreatetime = modedatacreatetime; + } + + public Integer getModedatamodifier() { + return modedatamodifier; + } + + public void setModedatamodifier(Integer modedatamodifier) { + this.modedatamodifier = modedatamodifier; + } + + public String getModedatamodifydatetime() { + return modedatamodifydatetime; + } + + public void setModedatamodifydatetime(String modedatamodifydatetime) { + this.modedatamodifydatetime = modedatamodifydatetime; + } + + public String getModeuuid() { + return modeuuid; + } + + public void setModeuuid(String modeuuid) { + this.modeuuid = modeuuid; + } + + public Integer getSfsw() { + return sfsw; + } + + public void setSfsw(Integer sfsw) { + this.sfsw = sfsw; + } + + public Integer getHtjexz() { + return htjexz; + } + + public void setHtjexz(Integer htjexz) { + this.htjexz = htjexz; + } + + public Integer getBz() { + return bz; + } + + public void setBz(Integer bz) { + this.bz = bz; + } + + public String getHtjedx() { + return htjedx; + } + + public void setHtjedx(String htjedx) { + this.htjedx = htjedx; + } + + public Integer getSflx() { + return sflx; + } + + public void setSflx(Integer sflx) { + this.sflx = sflx; + } + + public Integer getSffs() { + return sffs; + } + + public void setSffs(Integer sffs) { + this.sffs = sffs; + } + + public Integer getSfxjwfk() { + return sfxjwfk; + } + + public void setSfxjwfk(Integer sfxjwfk) { + this.sfxjwfk = sfxjwfk; + } + + public String getWdsfyy() { + return wdsfyy; + } + + public void setWdsfyy(String wdsfyy) { + this.wdsfyy = wdsfyy; + } + + public Integer getZt() { + return zt; + } + + public void setZt(Integer zt) { + this.zt = zt; + } + + public String getHtbh() { + return htbh; + } + + public void setHtbh(String htbh) { + this.htbh = htbh; + } + + public String getHtlx() { + return htlx; + } + + public void setHtlx(String htlx) { + this.htlx = htlx; + } + + public Integer getHtzwbj() { + return htzwbj; + } + + public void setHtzwbj(Integer htzwbj) { + this.htzwbj = htzwbj; + } + + public Integer getHtxz() { + return htxz; + } + + public void setHtxz(Integer htxz) { + this.htxz = htxz; + } + + public String getHtdsf() { + return htdsf; + } + + public void setHtdsf(String htdsf) { + this.htdsf = htdsf; + } + + public String getHtzje() { + return htzje; + } + + public void setHtzje(String htzje) { + this.htzje = htzje; + } + + public String getZhrmb() { + return zhrmb; + } + + public void setZhrmb(String zhrmb) { + this.zhrmb = zhrmb; + } + + public String getSfwdsf() { + return sfwdsf; + } + + public void setSfwdsf(String sfwdsf) { + this.sfwdsf = sfwdsf; + } + + public String getGlht() { + return glht; + } + + public void setGlht(String glht) { + this.glht = glht; + } + + public Integer getQcbm() { + return qcbm; + } + + public void setQcbm(Integer qcbm) { + this.qcbm = qcbm; + } + + public Integer getQcjg() { + return qcjg; + } + + public void setQcjg(Integer qcjg) { + this.qcjg = qcjg; + } + + public String getHtzw() { + return htzw; + } + + public void setHtzw(String htzw) { + this.htzw = htzw; + } + + public String getHtzwfzzd() { + return htzwfzzd; + } + + public void setHtzwfzzd(String htzwfzzd) { + this.htzwfzzd = htzwfzzd; + } + + public String getHtfj() { + return htfj; + } + + public void setHtfj(String htfj) { + this.htfj = htfj; + } + + public String getHtfjfzzd() { + return htfjfzzd; + } + + public void setHtfjfzzd(String htfjfzzd) { + this.htfjfzzd = htfjfzzd; + } + + public String getBeizhu() { + return beizhu; + } + + public void setBeizhu(String beizhu) { + this.beizhu = beizhu; + } + + public String getSyyhsxm() { + return syyhsxm; + } + + public void setSyyhsxm(String syyhsxm) { + this.syyhsxm = syyhsxm; + } + + public String getHtzwdzyyj() { + return htzwdzyyj; + } + + public void setHtzwdzyyj(String htzwdzyyj) { + this.htzwdzyyj = htzwdzyyj; + } + + public String getHtfjdzyyj() { + return htfjdzyyj; + } + + public void setHtfjdzyyj(String htfjdzyyj) { + this.htfjdzyyj = htfjdzyyj; + } + + public String getFhtlx() { + return fhtlx; + } + + public void setFhtlx(String fhtlx) { + this.fhtlx = fhtlx; + } + + public String getFid() { + return fid; + } + + public void setFid(String fid) { + this.fid = fid; + } + + public String getBgjlbd() { + return bgjlbd; + } + + public void setBgjlbd(String bgjlbd) { + this.bgjlbd = bgjlbd; + } + + public Integer getFpxz() { + return fpxz; + } + + public void setFpxz(Integer fpxz) { + this.fpxz = fpxz; + } + + public String getSh() { + return sh; + } + + public void setSh(String sh) { + this.sh = sh; + } + + public String getHtlxwb() { + return htlxwb; + } + + public void setHtlxwb(String htlxwb) { + this.htlxwb = htlxwb; + } + + public Integer getBzhlz() { + return bzhlz; + } + + public void setBzhlz(Integer bzhlz) { + this.bzhlz = bzhlz; + } + + public String getJshjje() { + return jshjje; + } + + public void setJshjje(String jshjje) { + this.jshjje = jshjje; + } + + public String getXzfb() { + return xzfb; + } + + public void setXzfb(String xzfb) { + this.xzfb = xzfb; + } + + public Integer getJsbz() { + return jsbz; + } + + public void setJsbz(Integer jsbz) { + this.jsbz = jsbz; + } + + public String getSfktj() { + return sfktj; + } + + public void setSfktj(String sfktj) { + this.sfktj = sfktj; + } + + public String getWsymbyy() { + return wsymbyy; + } + + public void setWsymbyy(String wsymbyy) { + this.wsymbyy = wsymbyy; + } + + public String getQcrq() { + return qcrq; + } + + public void setQcrq(String qcrq) { + this.qcrq = qcrq; + } + + public Integer getHtsplcrequestid() { + return htsplcrequestid; + } + + public void setHtsplcrequestid(Integer htsplcrequestid) { + this.htsplcrequestid = htsplcrequestid; + } + + public Integer getYyjgdzt() { + return yyjgdzt; + } + + public void setYyjgdzt(Integer yyjgdzt) { + this.yyjgdzt = yyjgdzt; + } + + public Integer getDqbb() { + return dqbb; + } + + public void setDqbb(Integer dqbb) { + this.dqbb = dqbb; + } + + public String getYyjdbs() { + return yyjdbs; + } + + public void setYyjdbs(String yyjdbs) { + this.yyjdbs = yyjdbs; + } + + public String getCyyz() { + return cyyz; + } + + public void setCyyz(String cyyz) { + this.cyyz = cyyz; + } + + public Integer getQcr() { + return qcr; + } + + public void setQcr(Integer qcr) { + this.qcr = qcr; + } + + public String getSymblj() { + return symblj; + } + + public void setSymblj(String symblj) { + this.symblj = symblj; + } + + public String getSyscode() { + return syscode; + } + + public void setSyscode(String syscode) { + this.syscode = syscode; + } + + public String getModulecode() { + return modulecode; + } + + public void setModulecode(String modulecode) { + this.modulecode = modulecode; + } + + public Integer getLkrqsfytsyq() { + return lkrqsfytsyq; + } + + public void setLkrqsfytsyq(Integer lkrqsfytsyq) { + this.lkrqsfytsyq = lkrqsfytsyq; + } + + public String getTsyqms() { + return tsyqms; + } + + public void setTsyqms(String tsyqms) { + this.tsyqms = tsyqms; + } + + public String getYyrq() { + return yyrq; + } + + public void setYyrq(String yyrq) { + this.yyrq = yyrq; + } + + public String getHtqsj() { + return htqsj; + } + + public void setHtqsj(String htqsj) { + this.htqsj = htqsj; + } + + public String getFzyy() { + return fzyy; + } + + public void setFzyy(String fzyy) { + this.fzyy = fzyy; + } + + public String getFzrq() { + return fzrq; + } + + public void setFzrq(String fzrq) { + this.fzrq = fzrq; + } + + public String getHtgdj() { + return htgdj; + } + + public void setHtgdj(String htgdj) { + this.htgdj = htgdj; + } + + public String getJsgdrq() { + return jsgdrq; + } + + public void setJsgdrq(String jsgdrq) { + this.jsgdrq = jsgdrq; + } + + public String getNdgdrq() { + return ndgdrq; + } + + public void setNdgdrq(String ndgdrq) { + this.ndgdrq = ndgdrq; + } + + public String getGdbz() { + return gdbz; + } + + public void setGdbz(String gdbz) { + this.gdbz = gdbz; + } + + public Integer getGdlx() { + return gdlx; + } + + public void setGdlx(Integer gdlx) { + this.gdlx = gdlx; + } + + public String getLyks() { + return lyks; + } + + public void setLyks(String lyks) { + this.lyks = lyks; + } + + public String getLyjs() { + return lyjs; + } + + public void setLyjs(String lyjs) { + this.lyjs = lyjs; + } + + public String getLyjh() { + return lyjh; + } + + public void setLyjh(String lyjh) { + this.lyjh = lyjh; + } + + public Integer getMqyfje() { + return mqyfje; + } + + public void setMqyfje(Integer mqyfje) { + this.mqyfje = mqyfje; + } + + public Integer getHtyfje() { + return htyfje; + } + + public void setHtyfje(Integer htyfje) { + this.htyfje = htyfje; + } + + public Integer getFkqs() { + return fkqs; + } + + public void setFkqs(Integer fkqs) { + this.fkqs = fkqs; + } + + public Integer getSfymqlyrq() { + return sfymqlyrq; + } + + public void setSfymqlyrq(Integer sfymqlyrq) { + this.sfymqlyrq = sfymqlyrq; + } + + public String getGllc() { + return gllc; + } + + public void setGllc(String gllc) { + this.gllc = gllc; + } + + public Integer getYjlyscdwt() { + return yjlyscdwt; + } + + public void setYjlyscdwt(Integer yjlyscdwt) { + this.yjlyscdwt = yjlyscdwt; + } + + public String getXgcgx() { + return xgcgx; + } + + public void setXgcgx(String xgcgx) { + this.xgcgx = xgcgx; + } + + public String getGlqsxx() { + return glqsxx; + } + + public void setGlqsxx(String glqsxx) { + this.glqsxx = glqsxx; + } + + public String getGlfzxx() { + return glfzxx; + } + + public void setGlfzxx(String glfzxx) { + this.glfzxx = glfzxx; + } + + public String getGlgdxx() { + return glgdxx; + } + + public void setGlgdxx(String glgdxx) { + this.glgdxx = glgdxx; + } + + public String getGllyxx() { + return gllyxx; + } + + public void setGllyxx(String gllyxx) { + this.gllyxx = gllyxx; + } + + public Integer getDfkje() { + return dfkje; + } + + public void setDfkje(Integer dfkje) { + this.dfkje = dfkje; + } + + public String getYfkbl() { + return yfkbl; + } + + public void setYfkbl(String yfkbl) { + this.yfkbl = yfkbl; + } + + public String getHtspr() { + return htspr; + } + + public void setHtspr(String htspr) { + this.htspr = htspr; + } + + public String getYz() { + return yz; + } + + public void setYz(String yz) { + this.yz = yz; + } +} diff --git a/src/main/java/com/engine/htxc/contract/entity/Docdetail.java b/src/main/java/com/engine/htxc/contract/entity/Docdetail.java new file mode 100644 index 0000000..7d6538f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/Docdetail.java @@ -0,0 +1,1112 @@ +package com.engine.htxc.contract.entity; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:24 + * @Description: 文档详情表entity + * @ModifyLog: + **/ +public class Docdetail { + private Integer id; + + private Integer maincategory; + + private Integer subcategory; + + private Integer seccategory; + + private Integer doctype; + + private Integer doclangurage; + + private String docapprovable; + + private String docreplyable; + + private String isreply; + + private Integer replydocid; + + private String docsubject; + + private String docsharetype; + + private Integer shareroleid; + + private String docpublishtype; + + private Integer itemid; + + private Integer itemmaincategoryid; + + private Integer hrmresid; + + private Integer crmid; + + private Integer projectid; + + private Integer financeid; + + private Integer financerefenceid1; + + private Integer financerefenceid2; + + private Integer doccreaterid; + + private Integer docdepartmentid; + + private String doccreatedate; + + private String doccreatetime; + + private Integer doclastmoduserid; + + private String doclastmoddate; + + private String doclastmodtime; + + private Integer docapproveuserid; + + private String docapprovedate; + + private String docapprovetime; + + private Integer docarchiveuserid; + + private String docarchivedate; + + private String docarchivetime; + + private String parentids; + + private Integer assetid; + + private Integer ownerid; + + private String keyword; + + private Integer accessorycount; + + private Integer replaydoccount; + + private String usertype; + + private String docno; + + private String cancopy; + + private String canremind; + + private Integer countmark; + + private Integer summark; + + private Integer sumreadcount; + + private String orderable; + + private String docextendname; + + private String doccode; + + private Integer docedition; + + private Integer doceditionid; + + private Integer ishistory; + + private Integer maindoc; + + private Integer approvetype; + + private Integer readoptercanprint; + + private Integer docvaliduserid; + + private String docvaliddate; + + private String docvalidtime; + + private Integer docpubuserid; + + private String docpubdate; + + private String docpubtime; + + private Integer docreopenuserid; + + private String docreopendate; + + private String docreopentime; + + private Integer docinvaluserid; + + private String docinvaldate; + + private String docinvaltime; + + private Integer doccanceluserid; + + private String doccanceldate; + + private String doccanceltime; + + private Integer selectedpubmouldid; + + private String checkoutstatus; + + private Integer checkoutuserid; + + private String checkoutusertype; + + private String checkoutdate; + + private String checkouttime; + + private String hasusedtemplet; + + private String invalidationdate; + + private String doccreatertype; + + private String doclastmodusertype; + + private String docapproveusertype; + + private String docvalidusertype; + + private String docinvalusertype; + + private String docarchiveusertype; + + private String doccancelusertype; + + private String docpubusertype; + + private String docreopenusertype; + + private String ownertype; + + private Integer docstatus; + + private Integer canprintednum; + + private Integer hasprintednum; + + private Integer approverequestid; + + private Integer fromworkflow; + + private Integer istop; + + private String topdate; + + private String toptime; + + private String topstartdate; + + private String topenddate; + + private Integer invalidrequestid; + + private Integer editmouldid; + + private String ecologyPinyinSearch; + + private Integer docvestin; + + private Integer sumdownload; + + private Integer secretlevel; + + private Integer replyremind; + + private String scheduledreleasedate; + + private String secretvalidity; + + private Integer themeshowpic; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getMaincategory() { + return maincategory; + } + + public void setMaincategory(Integer maincategory) { + this.maincategory = maincategory; + } + + public Integer getSubcategory() { + return subcategory; + } + + public void setSubcategory(Integer subcategory) { + this.subcategory = subcategory; + } + + public Integer getSeccategory() { + return seccategory; + } + + public void setSeccategory(Integer seccategory) { + this.seccategory = seccategory; + } + + public Integer getDoctype() { + return doctype; + } + + public void setDoctype(Integer doctype) { + this.doctype = doctype; + } + + public Integer getDoclangurage() { + return doclangurage; + } + + public void setDoclangurage(Integer doclangurage) { + this.doclangurage = doclangurage; + } + + public String getDocapprovable() { + return docapprovable; + } + + public void setDocapprovable(String docapprovable) { + this.docapprovable = docapprovable; + } + + public String getDocreplyable() { + return docreplyable; + } + + public void setDocreplyable(String docreplyable) { + this.docreplyable = docreplyable; + } + + public String getIsreply() { + return isreply; + } + + public void setIsreply(String isreply) { + this.isreply = isreply; + } + + public Integer getReplydocid() { + return replydocid; + } + + public void setReplydocid(Integer replydocid) { + this.replydocid = replydocid; + } + + public String getDocsubject() { + return docsubject; + } + + public void setDocsubject(String docsubject) { + this.docsubject = docsubject; + } + + public String getDocsharetype() { + return docsharetype; + } + + public void setDocsharetype(String docsharetype) { + this.docsharetype = docsharetype; + } + + public Integer getShareroleid() { + return shareroleid; + } + + public void setShareroleid(Integer shareroleid) { + this.shareroleid = shareroleid; + } + + public String getDocpublishtype() { + return docpublishtype; + } + + public void setDocpublishtype(String docpublishtype) { + this.docpublishtype = docpublishtype; + } + + public Integer getItemid() { + return itemid; + } + + public void setItemid(Integer itemid) { + this.itemid = itemid; + } + + public Integer getItemmaincategoryid() { + return itemmaincategoryid; + } + + public void setItemmaincategoryid(Integer itemmaincategoryid) { + this.itemmaincategoryid = itemmaincategoryid; + } + + public Integer getHrmresid() { + return hrmresid; + } + + public void setHrmresid(Integer hrmresid) { + this.hrmresid = hrmresid; + } + + public Integer getCrmid() { + return crmid; + } + + public void setCrmid(Integer crmid) { + this.crmid = crmid; + } + + public Integer getProjectid() { + return projectid; + } + + public void setProjectid(Integer projectid) { + this.projectid = projectid; + } + + public Integer getFinanceid() { + return financeid; + } + + public void setFinanceid(Integer financeid) { + this.financeid = financeid; + } + + public Integer getFinancerefenceid1() { + return financerefenceid1; + } + + public void setFinancerefenceid1(Integer financerefenceid1) { + this.financerefenceid1 = financerefenceid1; + } + + public Integer getFinancerefenceid2() { + return financerefenceid2; + } + + public void setFinancerefenceid2(Integer financerefenceid2) { + this.financerefenceid2 = financerefenceid2; + } + + public Integer getDoccreaterid() { + return doccreaterid; + } + + public void setDoccreaterid(Integer doccreaterid) { + this.doccreaterid = doccreaterid; + } + + public Integer getDocdepartmentid() { + return docdepartmentid; + } + + public void setDocdepartmentid(Integer docdepartmentid) { + this.docdepartmentid = docdepartmentid; + } + + public String getDoccreatedate() { + return doccreatedate; + } + + public void setDoccreatedate(String doccreatedate) { + this.doccreatedate = doccreatedate; + } + + public String getDoccreatetime() { + return doccreatetime; + } + + public void setDoccreatetime(String doccreatetime) { + this.doccreatetime = doccreatetime; + } + + public Integer getDoclastmoduserid() { + return doclastmoduserid; + } + + public void setDoclastmoduserid(Integer doclastmoduserid) { + this.doclastmoduserid = doclastmoduserid; + } + + public String getDoclastmoddate() { + return doclastmoddate; + } + + public void setDoclastmoddate(String doclastmoddate) { + this.doclastmoddate = doclastmoddate; + } + + public String getDoclastmodtime() { + return doclastmodtime; + } + + public void setDoclastmodtime(String doclastmodtime) { + this.doclastmodtime = doclastmodtime; + } + + public Integer getDocapproveuserid() { + return docapproveuserid; + } + + public void setDocapproveuserid(Integer docapproveuserid) { + this.docapproveuserid = docapproveuserid; + } + + public String getDocapprovedate() { + return docapprovedate; + } + + public void setDocapprovedate(String docapprovedate) { + this.docapprovedate = docapprovedate; + } + + public String getDocapprovetime() { + return docapprovetime; + } + + public void setDocapprovetime(String docapprovetime) { + this.docapprovetime = docapprovetime; + } + + public Integer getDocarchiveuserid() { + return docarchiveuserid; + } + + public void setDocarchiveuserid(Integer docarchiveuserid) { + this.docarchiveuserid = docarchiveuserid; + } + + public String getDocarchivedate() { + return docarchivedate; + } + + public void setDocarchivedate(String docarchivedate) { + this.docarchivedate = docarchivedate; + } + + public String getDocarchivetime() { + return docarchivetime; + } + + public void setDocarchivetime(String docarchivetime) { + this.docarchivetime = docarchivetime; + } + + public String getParentids() { + return parentids; + } + + public void setParentids(String parentids) { + this.parentids = parentids; + } + + public Integer getAssetid() { + return assetid; + } + + public void setAssetid(Integer assetid) { + this.assetid = assetid; + } + + public Integer getOwnerid() { + return ownerid; + } + + public void setOwnerid(Integer ownerid) { + this.ownerid = ownerid; + } + + public String getKeyword() { + return keyword; + } + + public void setKeyword(String keyword) { + this.keyword = keyword; + } + + public Integer getAccessorycount() { + return accessorycount; + } + + public void setAccessorycount(Integer accessorycount) { + this.accessorycount = accessorycount; + } + + public Integer getReplaydoccount() { + return replaydoccount; + } + + public void setReplaydoccount(Integer replaydoccount) { + this.replaydoccount = replaydoccount; + } + + public String getUsertype() { + return usertype; + } + + public void setUsertype(String usertype) { + this.usertype = usertype; + } + + public String getDocno() { + return docno; + } + + public void setDocno(String docno) { + this.docno = docno; + } + + public String getCancopy() { + return cancopy; + } + + public void setCancopy(String cancopy) { + this.cancopy = cancopy; + } + + public String getCanremind() { + return canremind; + } + + public void setCanremind(String canremind) { + this.canremind = canremind; + } + + public Integer getCountmark() { + return countmark; + } + + public void setCountmark(Integer countmark) { + this.countmark = countmark; + } + + public Integer getSummark() { + return summark; + } + + public void setSummark(Integer summark) { + this.summark = summark; + } + + public Integer getSumreadcount() { + return sumreadcount; + } + + public void setSumreadcount(Integer sumreadcount) { + this.sumreadcount = sumreadcount; + } + + public String getOrderable() { + return orderable; + } + + public void setOrderable(String orderable) { + this.orderable = orderable; + } + + public String getDocextendname() { + return docextendname; + } + + public void setDocextendname(String docextendname) { + this.docextendname = docextendname; + } + + public String getDoccode() { + return doccode; + } + + public void setDoccode(String doccode) { + this.doccode = doccode; + } + + public Integer getDocedition() { + return docedition; + } + + public void setDocedition(Integer docedition) { + this.docedition = docedition; + } + + public Integer getDoceditionid() { + return doceditionid; + } + + public void setDoceditionid(Integer doceditionid) { + this.doceditionid = doceditionid; + } + + public Integer getIshistory() { + return ishistory; + } + + public void setIshistory(Integer ishistory) { + this.ishistory = ishistory; + } + + public Integer getMaindoc() { + return maindoc; + } + + public void setMaindoc(Integer maindoc) { + this.maindoc = maindoc; + } + + public Integer getApprovetype() { + return approvetype; + } + + public void setApprovetype(Integer approvetype) { + this.approvetype = approvetype; + } + + public Integer getReadoptercanprint() { + return readoptercanprint; + } + + public void setReadoptercanprint(Integer readoptercanprint) { + this.readoptercanprint = readoptercanprint; + } + + public Integer getDocvaliduserid() { + return docvaliduserid; + } + + public void setDocvaliduserid(Integer docvaliduserid) { + this.docvaliduserid = docvaliduserid; + } + + public String getDocvaliddate() { + return docvaliddate; + } + + public void setDocvaliddate(String docvaliddate) { + this.docvaliddate = docvaliddate; + } + + public String getDocvalidtime() { + return docvalidtime; + } + + public void setDocvalidtime(String docvalidtime) { + this.docvalidtime = docvalidtime; + } + + public Integer getDocpubuserid() { + return docpubuserid; + } + + public void setDocpubuserid(Integer docpubuserid) { + this.docpubuserid = docpubuserid; + } + + public String getDocpubdate() { + return docpubdate; + } + + public void setDocpubdate(String docpubdate) { + this.docpubdate = docpubdate; + } + + public String getDocpubtime() { + return docpubtime; + } + + public void setDocpubtime(String docpubtime) { + this.docpubtime = docpubtime; + } + + public Integer getDocreopenuserid() { + return docreopenuserid; + } + + public void setDocreopenuserid(Integer docreopenuserid) { + this.docreopenuserid = docreopenuserid; + } + + public String getDocreopendate() { + return docreopendate; + } + + public void setDocreopendate(String docreopendate) { + this.docreopendate = docreopendate; + } + + public String getDocreopentime() { + return docreopentime; + } + + public void setDocreopentime(String docreopentime) { + this.docreopentime = docreopentime; + } + + public Integer getDocinvaluserid() { + return docinvaluserid; + } + + public void setDocinvaluserid(Integer docinvaluserid) { + this.docinvaluserid = docinvaluserid; + } + + public String getDocinvaldate() { + return docinvaldate; + } + + public void setDocinvaldate(String docinvaldate) { + this.docinvaldate = docinvaldate; + } + + public String getDocinvaltime() { + return docinvaltime; + } + + public void setDocinvaltime(String docinvaltime) { + this.docinvaltime = docinvaltime; + } + + public Integer getDoccanceluserid() { + return doccanceluserid; + } + + public void setDoccanceluserid(Integer doccanceluserid) { + this.doccanceluserid = doccanceluserid; + } + + public String getDoccanceldate() { + return doccanceldate; + } + + public void setDoccanceldate(String doccanceldate) { + this.doccanceldate = doccanceldate; + } + + public String getDoccanceltime() { + return doccanceltime; + } + + public void setDoccanceltime(String doccanceltime) { + this.doccanceltime = doccanceltime; + } + + public Integer getSelectedpubmouldid() { + return selectedpubmouldid; + } + + public void setSelectedpubmouldid(Integer selectedpubmouldid) { + this.selectedpubmouldid = selectedpubmouldid; + } + + public String getCheckoutstatus() { + return checkoutstatus; + } + + public void setCheckoutstatus(String checkoutstatus) { + this.checkoutstatus = checkoutstatus; + } + + public Integer getCheckoutuserid() { + return checkoutuserid; + } + + public void setCheckoutuserid(Integer checkoutuserid) { + this.checkoutuserid = checkoutuserid; + } + + public String getCheckoutusertype() { + return checkoutusertype; + } + + public void setCheckoutusertype(String checkoutusertype) { + this.checkoutusertype = checkoutusertype; + } + + public String getCheckoutdate() { + return checkoutdate; + } + + public void setCheckoutdate(String checkoutdate) { + this.checkoutdate = checkoutdate; + } + + public String getCheckouttime() { + return checkouttime; + } + + public void setCheckouttime(String checkouttime) { + this.checkouttime = checkouttime; + } + + public String getHasusedtemplet() { + return hasusedtemplet; + } + + public void setHasusedtemplet(String hasusedtemplet) { + this.hasusedtemplet = hasusedtemplet; + } + + public String getInvalidationdate() { + return invalidationdate; + } + + public void setInvalidationdate(String invalidationdate) { + this.invalidationdate = invalidationdate; + } + + public String getDoccreatertype() { + return doccreatertype; + } + + public void setDoccreatertype(String doccreatertype) { + this.doccreatertype = doccreatertype; + } + + public String getDoclastmodusertype() { + return doclastmodusertype; + } + + public void setDoclastmodusertype(String doclastmodusertype) { + this.doclastmodusertype = doclastmodusertype; + } + + public String getDocapproveusertype() { + return docapproveusertype; + } + + public void setDocapproveusertype(String docapproveusertype) { + this.docapproveusertype = docapproveusertype; + } + + public String getDocvalidusertype() { + return docvalidusertype; + } + + public void setDocvalidusertype(String docvalidusertype) { + this.docvalidusertype = docvalidusertype; + } + + public String getDocinvalusertype() { + return docinvalusertype; + } + + public void setDocinvalusertype(String docinvalusertype) { + this.docinvalusertype = docinvalusertype; + } + + public String getDocarchiveusertype() { + return docarchiveusertype; + } + + public void setDocarchiveusertype(String docarchiveusertype) { + this.docarchiveusertype = docarchiveusertype; + } + + public String getDoccancelusertype() { + return doccancelusertype; + } + + public void setDoccancelusertype(String doccancelusertype) { + this.doccancelusertype = doccancelusertype; + } + + public String getDocpubusertype() { + return docpubusertype; + } + + public void setDocpubusertype(String docpubusertype) { + this.docpubusertype = docpubusertype; + } + + public String getDocreopenusertype() { + return docreopenusertype; + } + + public void setDocreopenusertype(String docreopenusertype) { + this.docreopenusertype = docreopenusertype; + } + + public String getOwnertype() { + return ownertype; + } + + public void setOwnertype(String ownertype) { + this.ownertype = ownertype; + } + + public Integer getDocstatus() { + return docstatus; + } + + public void setDocstatus(Integer docstatus) { + this.docstatus = docstatus; + } + + public Integer getCanprintednum() { + return canprintednum; + } + + public void setCanprintednum(Integer canprintednum) { + this.canprintednum = canprintednum; + } + + public Integer getHasprintednum() { + return hasprintednum; + } + + public void setHasprintednum(Integer hasprintednum) { + this.hasprintednum = hasprintednum; + } + + public Integer getApproverequestid() { + return approverequestid; + } + + public void setApproverequestid(Integer approverequestid) { + this.approverequestid = approverequestid; + } + + public Integer getFromworkflow() { + return fromworkflow; + } + + public void setFromworkflow(Integer fromworkflow) { + this.fromworkflow = fromworkflow; + } + + public Integer getIstop() { + return istop; + } + + public void setIstop(Integer istop) { + this.istop = istop; + } + + public String getTopdate() { + return topdate; + } + + public void setTopdate(String topdate) { + this.topdate = topdate; + } + + public String getToptime() { + return toptime; + } + + public void setToptime(String toptime) { + this.toptime = toptime; + } + + public String getTopstartdate() { + return topstartdate; + } + + public void setTopstartdate(String topstartdate) { + this.topstartdate = topstartdate; + } + + public String getTopenddate() { + return topenddate; + } + + public void setTopenddate(String topenddate) { + this.topenddate = topenddate; + } + + public Integer getInvalidrequestid() { + return invalidrequestid; + } + + public void setInvalidrequestid(Integer invalidrequestid) { + this.invalidrequestid = invalidrequestid; + } + + public Integer getEditmouldid() { + return editmouldid; + } + + public void setEditmouldid(Integer editmouldid) { + this.editmouldid = editmouldid; + } + + public String getEcologyPinyinSearch() { + return ecologyPinyinSearch; + } + + public void setEcologyPinyinSearch(String ecologyPinyinSearch) { + this.ecologyPinyinSearch = ecologyPinyinSearch; + } + + public Integer getDocvestin() { + return docvestin; + } + + public void setDocvestin(Integer docvestin) { + this.docvestin = docvestin; + } + + public Integer getSumdownload() { + return sumdownload; + } + + public void setSumdownload(Integer sumdownload) { + this.sumdownload = sumdownload; + } + + public Integer getSecretlevel() { + return secretlevel; + } + + public void setSecretlevel(Integer secretlevel) { + this.secretlevel = secretlevel; + } + + public Integer getReplyremind() { + return replyremind; + } + + public void setReplyremind(Integer replyremind) { + this.replyremind = replyremind; + } + + public String getScheduledreleasedate() { + return scheduledreleasedate; + } + + public void setScheduledreleasedate(String scheduledreleasedate) { + this.scheduledreleasedate = scheduledreleasedate; + } + + public String getSecretvalidity() { + return secretvalidity; + } + + public void setSecretvalidity(String secretvalidity) { + this.secretvalidity = secretvalidity; + } + + public Integer getThemeshowpic() { + return themeshowpic; + } + + public void setThemeshowpic(Integer themeshowpic) { + this.themeshowpic = themeshowpic; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/Docimagefile.java b/src/main/java/com/engine/htxc/contract/entity/Docimagefile.java new file mode 100644 index 0000000..9d1f732 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/Docimagefile.java @@ -0,0 +1,181 @@ +package com.engine.htxc.contract.entity; +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:24 + * @Description: 文档图片表 + * @ModifyLog: + **/ +public class Docimagefile { + private Integer id; + + private Integer docid; + + private Integer imagefileid; + + private String imagefilename; + + private String imagefiledesc; + + private Integer imagefilewidth; + + private Integer imagefileheight; + + private Integer imagefielsize; + + private String docfiletype; + + private Integer versionid; + + private String versiondetail; + + private String isextfile; + + private String hasusedtemplet; + + private Integer signaturecount; + + private Integer operateuserid; + + private String operatedate; + + private String operatetime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getDocid() { + return docid; + } + + public void setDocid(Integer docid) { + this.docid = docid; + } + + public Integer getImagefileid() { + return imagefileid; + } + + public void setImagefileid(Integer imagefileid) { + this.imagefileid = imagefileid; + } + + public String getImagefilename() { + return imagefilename; + } + + public void setImagefilename(String imagefilename) { + this.imagefilename = imagefilename; + } + + public String getImagefiledesc() { + return imagefiledesc; + } + + public void setImagefiledesc(String imagefiledesc) { + this.imagefiledesc = imagefiledesc; + } + + public Integer getImagefilewidth() { + return imagefilewidth; + } + + public void setImagefilewidth(Integer imagefilewidth) { + this.imagefilewidth = imagefilewidth; + } + + public Integer getImagefileheight() { + return imagefileheight; + } + + public void setImagefileheight(Integer imagefileheight) { + this.imagefileheight = imagefileheight; + } + + public Integer getImagefielsize() { + return imagefielsize; + } + + public void setImagefielsize(Integer imagefielsize) { + this.imagefielsize = imagefielsize; + } + + public String getDocfiletype() { + return docfiletype; + } + + public void setDocfiletype(String docfiletype) { + this.docfiletype = docfiletype; + } + + public Integer getVersionid() { + return versionid; + } + + public void setVersionid(Integer versionid) { + this.versionid = versionid; + } + + public String getVersiondetail() { + return versiondetail; + } + + public void setVersiondetail(String versiondetail) { + this.versiondetail = versiondetail; + } + + public String getIsextfile() { + return isextfile; + } + + public void setIsextfile(String isextfile) { + this.isextfile = isextfile; + } + + public String getHasusedtemplet() { + return hasusedtemplet; + } + + public void setHasusedtemplet(String hasusedtemplet) { + this.hasusedtemplet = hasusedtemplet; + } + + public Integer getSignaturecount() { + return signaturecount; + } + + public void setSignaturecount(Integer signaturecount) { + this.signaturecount = signaturecount; + } + + public Integer getOperateuserid() { + return operateuserid; + } + + public void setOperateuserid(Integer operateuserid) { + this.operateuserid = operateuserid; + } + + public String getOperatedate() { + return operatedate; + } + + public void setOperatedate(String operatedate) { + this.operatedate = operatedate; + } + + public String getOperatetime() { + return operatetime; + } + + public void setOperatetime(String operatetime) { + this.operatetime = operatetime; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/ImagefileEntity.java b/src/main/java/com/engine/htxc/contract/entity/ImagefileEntity.java new file mode 100644 index 0000000..1f8be6e --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/ImagefileEntity.java @@ -0,0 +1,291 @@ +package com.engine.htxc.contract.entity; +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:25 + * @Description: 文件表 + * @ModifyLog: + **/ +public class ImagefileEntity { + private Integer imagefileid; + + private String imagefilename; + + private String imagefiletype; + + private Integer imagefileused; + + private String filerealpath; + + private String iszip; + + private String isencrypt; + + private String filesize; + + private Integer downloads; + + private String miniimgpath; + + private String imgsize; + + private String isftp; + + private Integer ftpconfigid; + + private Integer isaesencrypt; + + private String aescode; + + private String tokenkey; + + private String storagestatus; + + private String comefrom; + + private Integer objid; + + private String objotherpara; + + private String delfilerealpath; + + private Integer mainimagefile; + + private String fileid; + + private Integer secretlevel; + + private String secretvalidity; + + private Integer sensitiveWtype; + + private String sensitiveWtime; + + private byte[] imagefile; + + public Integer getImagefileid() { + return imagefileid; + } + + public void setImagefileid(Integer imagefileid) { + this.imagefileid = imagefileid; + } + + public String getImagefilename() { + return imagefilename; + } + + public void setImagefilename(String imagefilename) { + this.imagefilename = imagefilename; + } + + public String getImagefiletype() { + return imagefiletype; + } + + public void setImagefiletype(String imagefiletype) { + this.imagefiletype = imagefiletype; + } + + public Integer getImagefileused() { + return imagefileused; + } + + public void setImagefileused(Integer imagefileused) { + this.imagefileused = imagefileused; + } + + public String getFilerealpath() { + return filerealpath; + } + + public void setFilerealpath(String filerealpath) { + this.filerealpath = filerealpath; + } + + public String getIszip() { + return iszip; + } + + public void setIszip(String iszip) { + this.iszip = iszip; + } + + public String getIsencrypt() { + return isencrypt; + } + + public void setIsencrypt(String isencrypt) { + this.isencrypt = isencrypt; + } + + public String getFilesize() { + return filesize; + } + + public void setFilesize(String filesize) { + this.filesize = filesize; + } + + public Integer getDownloads() { + return downloads; + } + + public void setDownloads(Integer downloads) { + this.downloads = downloads; + } + + public String getMiniimgpath() { + return miniimgpath; + } + + public void setMiniimgpath(String miniimgpath) { + this.miniimgpath = miniimgpath; + } + + public String getImgsize() { + return imgsize; + } + + public void setImgsize(String imgsize) { + this.imgsize = imgsize; + } + + public String getIsftp() { + return isftp; + } + + public void setIsftp(String isftp) { + this.isftp = isftp; + } + + public Integer getFtpconfigid() { + return ftpconfigid; + } + + public void setFtpconfigid(Integer ftpconfigid) { + this.ftpconfigid = ftpconfigid; + } + + public Integer getIsaesencrypt() { + return isaesencrypt; + } + + public void setIsaesencrypt(Integer isaesencrypt) { + this.isaesencrypt = isaesencrypt; + } + + public String getAescode() { + return aescode; + } + + public void setAescode(String aescode) { + this.aescode = aescode; + } + + public String getTokenkey() { + return tokenkey; + } + + public void setTokenkey(String tokenkey) { + this.tokenkey = tokenkey; + } + + public String getStoragestatus() { + return storagestatus; + } + + public void setStoragestatus(String storagestatus) { + this.storagestatus = storagestatus; + } + + public String getComefrom() { + return comefrom; + } + + public void setComefrom(String comefrom) { + this.comefrom = comefrom; + } + + public Integer getObjid() { + return objid; + } + + public void setObjid(Integer objid) { + this.objid = objid; + } + + public String getObjotherpara() { + return objotherpara; + } + + public void setObjotherpara(String objotherpara) { + this.objotherpara = objotherpara; + } + + public String getDelfilerealpath() { + return delfilerealpath; + } + + public void setDelfilerealpath(String delfilerealpath) { + this.delfilerealpath = delfilerealpath; + } + + public Integer getMainimagefile() { + return mainimagefile; + } + + public void setMainimagefile(Integer mainimagefile) { + this.mainimagefile = mainimagefile; + } + + public String getFileid() { + return fileid; + } + + public void setFileid(String fileid) { + this.fileid = fileid; + } + + public Integer getSecretlevel() { + return secretlevel; + } + + public void setSecretlevel(Integer secretlevel) { + this.secretlevel = secretlevel; + } + + public String getSecretvalidity() { + return secretvalidity; + } + + public void setSecretvalidity(String secretvalidity) { + this.secretvalidity = secretvalidity; + } + + public Integer getSensitiveWtype() { + return sensitiveWtype; + } + + public void setSensitiveWtype(Integer sensitiveWtype) { + this.sensitiveWtype = sensitiveWtype; + } + + public String getSensitiveWtime() { + return sensitiveWtime; + } + + public void setSensitiveWtime(String sensitiveWtime) { + this.sensitiveWtime = sensitiveWtime; + } + + public byte[] getImagefile() { + return imagefile; + } + + public void setImagefile(byte[] imagefile) { + this.imagefile = imagefile; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfDsfgl.java b/src/main/java/com/engine/htxc/contract/entity/UfDsfgl.java new file mode 100644 index 0000000..1df3723 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfDsfgl.java @@ -0,0 +1,721 @@ +package com.engine.htxc.contract.entity; +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:25 + * @Description: 对手方表 + * @ModifyLog: + **/ +public class UfDsfgl { + private Integer id; + + private Integer requestid; + + private String dsfmc; + + private Integer dsflx; + + private String zjhm; + + private Integer formmodeid; + + private Integer modedatacreater; + + private Integer modedatacreatertype; + + private String modedatacreatedate; + + private String modedatacreatetime; + + private Integer modedatamodifier; + + private String modedatamodifydatetime; + + private String modeuuid; + + private String frxm; + + private String frsfzhm; + + private Integer zczb; + + private String gsclsj; + + private String gszcdz; + + private String lxfs; + + private String dsfbm; + + private Integer zt; + + private Integer ly; + + private String zjgxsj; + + private Integer khlx; + + private String lxdh; + + private String email; + + private String jgmc; + + private String dz; + + private String sqqsdb; + + private String bgms; + + private String bgdz; + + private String xm; + + private String dsfdwmc; + + private Integer szjg; + + private Integer szbm; + + private String lhyysm; + + private String zfyysm; + + private String hfyysm; + + private String jglx; + + private String lxr; + + private String gljg; + + private String ssxy; + + private String sxyysm; + + private String fbsxyysm; + + private String scyysm; + + private String sxyysmsx; + + private Integer scbs; + + private String khwyid; + + private Integer sfwyxtjzjh; + + private String cjywx; + + private String xgywx; + + private String ywm; + + private String ywjc; + + private String yzbm; + + private String zwm; + + private String zwjc; + + private String tyshxydmyyzz; + + private String clrq; + + private String zzjgdm; + + private String gszch; + + private String xymc; + + private String gszwmc; + + private String bgjlbd; + + private String jglxr; + + private String kycecifid; + + private String yjcxxx; + + private Integer jgcrmsclj; + + private String zhtbsj; + + private String khytfl; + + private String fid; + + private Integer dqbb; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getRequestid() { + return requestid; + } + + public void setRequestid(Integer requestid) { + this.requestid = requestid; + } + + public String getDsfmc() { + return dsfmc; + } + + public void setDsfmc(String dsfmc) { + this.dsfmc = dsfmc; + } + + public Integer getDsflx() { + return dsflx; + } + + public void setDsflx(Integer dsflx) { + this.dsflx = dsflx; + } + + public String getZjhm() { + return zjhm; + } + + public void setZjhm(String zjhm) { + this.zjhm = zjhm; + } + + public Integer getFormmodeid() { + return formmodeid; + } + + public void setFormmodeid(Integer formmodeid) { + this.formmodeid = formmodeid; + } + + public Integer getModedatacreater() { + return modedatacreater; + } + + public void setModedatacreater(Integer modedatacreater) { + this.modedatacreater = modedatacreater; + } + + public Integer getModedatacreatertype() { + return modedatacreatertype; + } + + public void setModedatacreatertype(Integer modedatacreatertype) { + this.modedatacreatertype = modedatacreatertype; + } + + public String getModedatacreatedate() { + return modedatacreatedate; + } + + public void setModedatacreatedate(String modedatacreatedate) { + this.modedatacreatedate = modedatacreatedate; + } + + public String getModedatacreatetime() { + return modedatacreatetime; + } + + public void setModedatacreatetime(String modedatacreatetime) { + this.modedatacreatetime = modedatacreatetime; + } + + public Integer getModedatamodifier() { + return modedatamodifier; + } + + public void setModedatamodifier(Integer modedatamodifier) { + this.modedatamodifier = modedatamodifier; + } + + public String getModedatamodifydatetime() { + return modedatamodifydatetime; + } + + public void setModedatamodifydatetime(String modedatamodifydatetime) { + this.modedatamodifydatetime = modedatamodifydatetime; + } + + public String getModeuuid() { + return modeuuid; + } + + public void setModeuuid(String modeuuid) { + this.modeuuid = modeuuid; + } + + public String getFrxm() { + return frxm; + } + + public void setFrxm(String frxm) { + this.frxm = frxm; + } + + public String getFrsfzhm() { + return frsfzhm; + } + + public void setFrsfzhm(String frsfzhm) { + this.frsfzhm = frsfzhm; + } + + public Integer getZczb() { + return zczb; + } + + public void setZczb(Integer zczb) { + this.zczb = zczb; + } + + public String getGsclsj() { + return gsclsj; + } + + public void setGsclsj(String gsclsj) { + this.gsclsj = gsclsj; + } + + public String getGszcdz() { + return gszcdz; + } + + public void setGszcdz(String gszcdz) { + this.gszcdz = gszcdz; + } + + public String getLxfs() { + return lxfs; + } + + public void setLxfs(String lxfs) { + this.lxfs = lxfs; + } + + public String getDsfbm() { + return dsfbm; + } + + public void setDsfbm(String dsfbm) { + this.dsfbm = dsfbm; + } + + public Integer getZt() { + return zt; + } + + public void setZt(Integer zt) { + this.zt = zt; + } + + public Integer getLy() { + return ly; + } + + public void setLy(Integer ly) { + this.ly = ly; + } + + public String getZjgxsj() { + return zjgxsj; + } + + public void setZjgxsj(String zjgxsj) { + this.zjgxsj = zjgxsj; + } + + public Integer getKhlx() { + return khlx; + } + + public void setKhlx(Integer khlx) { + this.khlx = khlx; + } + + public String getLxdh() { + return lxdh; + } + + public void setLxdh(String lxdh) { + this.lxdh = lxdh; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getJgmc() { + return jgmc; + } + + public void setJgmc(String jgmc) { + this.jgmc = jgmc; + } + + public String getDz() { + return dz; + } + + public void setDz(String dz) { + this.dz = dz; + } + + public String getSqqsdb() { + return sqqsdb; + } + + public void setSqqsdb(String sqqsdb) { + this.sqqsdb = sqqsdb; + } + + public String getBgms() { + return bgms; + } + + public void setBgms(String bgms) { + this.bgms = bgms; + } + + public String getBgdz() { + return bgdz; + } + + public void setBgdz(String bgdz) { + this.bgdz = bgdz; + } + + public String getXm() { + return xm; + } + + public void setXm(String xm) { + this.xm = xm; + } + + public String getDsfdwmc() { + return dsfdwmc; + } + + public void setDsfdwmc(String dsfdwmc) { + this.dsfdwmc = dsfdwmc; + } + + public Integer getSzjg() { + return szjg; + } + + public void setSzjg(Integer szjg) { + this.szjg = szjg; + } + + public Integer getSzbm() { + return szbm; + } + + public void setSzbm(Integer szbm) { + this.szbm = szbm; + } + + public String getLhyysm() { + return lhyysm; + } + + public void setLhyysm(String lhyysm) { + this.lhyysm = lhyysm; + } + + public String getZfyysm() { + return zfyysm; + } + + public void setZfyysm(String zfyysm) { + this.zfyysm = zfyysm; + } + + public String getHfyysm() { + return hfyysm; + } + + public void setHfyysm(String hfyysm) { + this.hfyysm = hfyysm; + } + + public String getJglx() { + return jglx; + } + + public void setJglx(String jglx) { + this.jglx = jglx; + } + + public String getLxr() { + return lxr; + } + + public void setLxr(String lxr) { + this.lxr = lxr; + } + + public String getGljg() { + return gljg; + } + + public void setGljg(String gljg) { + this.gljg = gljg; + } + + public String getSsxy() { + return ssxy; + } + + public void setSsxy(String ssxy) { + this.ssxy = ssxy; + } + + public String getSxyysm() { + return sxyysm; + } + + public void setSxyysm(String sxyysm) { + this.sxyysm = sxyysm; + } + + public String getFbsxyysm() { + return fbsxyysm; + } + + public void setFbsxyysm(String fbsxyysm) { + this.fbsxyysm = fbsxyysm; + } + + public String getScyysm() { + return scyysm; + } + + public void setScyysm(String scyysm) { + this.scyysm = scyysm; + } + + public String getSxyysmsx() { + return sxyysmsx; + } + + public void setSxyysmsx(String sxyysmsx) { + this.sxyysmsx = sxyysmsx; + } + + public Integer getScbs() { + return scbs; + } + + public void setScbs(Integer scbs) { + this.scbs = scbs; + } + + public String getKhwyid() { + return khwyid; + } + + public void setKhwyid(String khwyid) { + this.khwyid = khwyid; + } + + public Integer getSfwyxtjzjh() { + return sfwyxtjzjh; + } + + public void setSfwyxtjzjh(Integer sfwyxtjzjh) { + this.sfwyxtjzjh = sfwyxtjzjh; + } + + public String getCjywx() { + return cjywx; + } + + public void setCjywx(String cjywx) { + this.cjywx = cjywx; + } + + public String getXgywx() { + return xgywx; + } + + public void setXgywx(String xgywx) { + this.xgywx = xgywx; + } + + public String getYwm() { + return ywm; + } + + public void setYwm(String ywm) { + this.ywm = ywm; + } + + public String getYwjc() { + return ywjc; + } + + public void setYwjc(String ywjc) { + this.ywjc = ywjc; + } + + public String getYzbm() { + return yzbm; + } + + public void setYzbm(String yzbm) { + this.yzbm = yzbm; + } + + public String getZwm() { + return zwm; + } + + public void setZwm(String zwm) { + this.zwm = zwm; + } + + public String getZwjc() { + return zwjc; + } + + public void setZwjc(String zwjc) { + this.zwjc = zwjc; + } + + public String getTyshxydmyyzz() { + return tyshxydmyyzz; + } + + public void setTyshxydmyyzz(String tyshxydmyyzz) { + this.tyshxydmyyzz = tyshxydmyyzz; + } + + public String getClrq() { + return clrq; + } + + public void setClrq(String clrq) { + this.clrq = clrq; + } + + public String getZzjgdm() { + return zzjgdm; + } + + public void setZzjgdm(String zzjgdm) { + this.zzjgdm = zzjgdm; + } + + public String getGszch() { + return gszch; + } + + public void setGszch(String gszch) { + this.gszch = gszch; + } + + public String getXymc() { + return xymc; + } + + public void setXymc(String xymc) { + this.xymc = xymc; + } + + public String getGszwmc() { + return gszwmc; + } + + public void setGszwmc(String gszwmc) { + this.gszwmc = gszwmc; + } + + public String getBgjlbd() { + return bgjlbd; + } + + public void setBgjlbd(String bgjlbd) { + this.bgjlbd = bgjlbd; + } + + public String getJglxr() { + return jglxr; + } + + public void setJglxr(String jglxr) { + this.jglxr = jglxr; + } + + public String getKycecifid() { + return kycecifid; + } + + public void setKycecifid(String kycecifid) { + this.kycecifid = kycecifid; + } + + public String getYjcxxx() { + return yjcxxx; + } + + public void setYjcxxx(String yjcxxx) { + this.yjcxxx = yjcxxx; + } + + public Integer getJgcrmsclj() { + return jgcrmsclj; + } + + public void setJgcrmsclj(Integer jgcrmsclj) { + this.jgcrmsclj = jgcrmsclj; + } + + public String getZhtbsj() { + return zhtbsj; + } + + public void setZhtbsj(String zhtbsj) { + this.zhtbsj = zhtbsj; + } + + public String getKhytfl() { + return khytfl; + } + + public void setKhytfl(String khytfl) { + this.khytfl = khytfl; + } + + public String getFid() { + return fid; + } + + public void setFid(String fid) { + this.fid = fid; + } + + public Integer getDqbb() { + return dqbb; + } + + public void setDqbb(Integer dqbb) { + this.dqbb = dqbb; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt1.java b/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt1.java new file mode 100644 index 0000000..9293aec --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt1.java @@ -0,0 +1,273 @@ +package com.engine.htxc.contract.entity; + +public class UfHtqcDt1 { + private Integer id; + + private Integer mainid; + + private String cz; + + private Integer sfyy; + + private String scsj; + + private String qrwlyy; + + private Integer yyzt; + + private String yyhwj; + + private String wjmc; + + private String zpdfhwj; + + private Integer dzjyyzt; + + private Integer fwjyyzt; + + private Integer yyfs; + + private Integer dzyyfs; + + private Integer dsmdy; + + private String fwdyfs; + + private String wlyyfs; + + private String qrdzyy; + + private String yyid; + + private String yyfswb; + + private String wfqssj; + + private String sfqssj; + + private Integer qszt; + + private String yyqksm; + + private String wfyyj; + + private String yqxdyr; + + private String dsf; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getMainid() { + return mainid; + } + + public void setMainid(Integer mainid) { + this.mainid = mainid; + } + + public String getCz() { + return cz; + } + + public void setCz(String cz) { + this.cz = cz; + } + + public Integer getSfyy() { + return sfyy; + } + + public void setSfyy(Integer sfyy) { + this.sfyy = sfyy; + } + + public String getScsj() { + return scsj; + } + + public void setScsj(String scsj) { + this.scsj = scsj; + } + + public String getQrwlyy() { + return qrwlyy; + } + + public void setQrwlyy(String qrwlyy) { + this.qrwlyy = qrwlyy; + } + + public Integer getYyzt() { + return yyzt; + } + + public void setYyzt(Integer yyzt) { + this.yyzt = yyzt; + } + + public String getYyhwj() { + return yyhwj; + } + + public void setYyhwj(String yyhwj) { + this.yyhwj = yyhwj; + } + + public String getWjmc() { + return wjmc; + } + + public void setWjmc(String wjmc) { + this.wjmc = wjmc; + } + + public String getZpdfhwj() { + return zpdfhwj; + } + + public void setZpdfhwj(String zpdfhwj) { + this.zpdfhwj = zpdfhwj; + } + + public Integer getDzjyyzt() { + return dzjyyzt; + } + + public void setDzjyyzt(Integer dzjyyzt) { + this.dzjyyzt = dzjyyzt; + } + + public Integer getFwjyyzt() { + return fwjyyzt; + } + + public void setFwjyyzt(Integer fwjyyzt) { + this.fwjyyzt = fwjyyzt; + } + + public Integer getYyfs() { + return yyfs; + } + + public void setYyfs(Integer yyfs) { + this.yyfs = yyfs; + } + + public Integer getDzyyfs() { + return dzyyfs; + } + + public void setDzyyfs(Integer dzyyfs) { + this.dzyyfs = dzyyfs; + } + + public Integer getDsmdy() { + return dsmdy; + } + + public void setDsmdy(Integer dsmdy) { + this.dsmdy = dsmdy; + } + + public String getFwdyfs() { + return fwdyfs; + } + + public void setFwdyfs(String fwdyfs) { + this.fwdyfs = fwdyfs; + } + + public String getWlyyfs() { + return wlyyfs; + } + + public void setWlyyfs(String wlyyfs) { + this.wlyyfs = wlyyfs; + } + + public String getQrdzyy() { + return qrdzyy; + } + + public void setQrdzyy(String qrdzyy) { + this.qrdzyy = qrdzyy; + } + + public String getYyid() { + return yyid; + } + + public void setYyid(String yyid) { + this.yyid = yyid; + } + + public String getYyfswb() { + return yyfswb; + } + + public void setYyfswb(String yyfswb) { + this.yyfswb = yyfswb; + } + + public String getWfqssj() { + return wfqssj; + } + + public void setWfqssj(String wfqssj) { + this.wfqssj = wfqssj; + } + + public String getSfqssj() { + return sfqssj; + } + + public void setSfqssj(String sfqssj) { + this.sfqssj = sfqssj; + } + + public Integer getQszt() { + return qszt; + } + + public void setQszt(Integer qszt) { + this.qszt = qszt; + } + + public String getYyqksm() { + return yyqksm; + } + + public void setYyqksm(String yyqksm) { + this.yyqksm = yyqksm; + } + + public String getWfyyj() { + return wfyyj; + } + + public void setWfyyj(String wfyyj) { + this.wfyyj = wfyyj; + } + + public String getYqxdyr() { + return yqxdyr; + } + + public void setYqxdyr(String yqxdyr) { + this.yqxdyr = yqxdyr; + } + + public String getDsf() { + return dsf; + } + + public void setDsf(String dsf) { + this.dsf = dsf; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt3.java b/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt3.java new file mode 100644 index 0000000..e2c77d4 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt3.java @@ -0,0 +1,263 @@ +package com.engine.htxc.contract.entity; + +public class UfHtqcDt3 { + private Integer id; + + private Integer mainid; + + private String wjmc; + + private String cz; + + private Integer sfyy; + + private String scsj; + + private String qrwlyy; + + private Integer yyzt; + + private String yyhwj; + + private String zpdfhwj; + + private Integer dzjyyzt; + + private Integer fwjyyzt; + + private Integer yyfs; + + private Integer dzyyfs; + + private Integer dsmdy; + + private String fwdyfs; + + private String wlyyfs; + + private String qrdzyy; + + private String yyid; + + private String yyfswb; + + private String wfqssj; + + private String sfqssj; + + private Integer qszt; + + private String yyqksm; + + private String yqxdyr; + + private String dsf; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getMainid() { + return mainid; + } + + public void setMainid(Integer mainid) { + this.mainid = mainid; + } + + public String getWjmc() { + return wjmc; + } + + public void setWjmc(String wjmc) { + this.wjmc = wjmc; + } + + public String getCz() { + return cz; + } + + public void setCz(String cz) { + this.cz = cz; + } + + public Integer getSfyy() { + return sfyy; + } + + public void setSfyy(Integer sfyy) { + this.sfyy = sfyy; + } + + public String getScsj() { + return scsj; + } + + public void setScsj(String scsj) { + this.scsj = scsj; + } + + public String getQrwlyy() { + return qrwlyy; + } + + public void setQrwlyy(String qrwlyy) { + this.qrwlyy = qrwlyy; + } + + public Integer getYyzt() { + return yyzt; + } + + public void setYyzt(Integer yyzt) { + this.yyzt = yyzt; + } + + public String getYyhwj() { + return yyhwj; + } + + public void setYyhwj(String yyhwj) { + this.yyhwj = yyhwj; + } + + public String getZpdfhwj() { + return zpdfhwj; + } + + public void setZpdfhwj(String zpdfhwj) { + this.zpdfhwj = zpdfhwj; + } + + public Integer getDzjyyzt() { + return dzjyyzt; + } + + public void setDzjyyzt(Integer dzjyyzt) { + this.dzjyyzt = dzjyyzt; + } + + public Integer getFwjyyzt() { + return fwjyyzt; + } + + public void setFwjyyzt(Integer fwjyyzt) { + this.fwjyyzt = fwjyyzt; + } + + public Integer getYyfs() { + return yyfs; + } + + public void setYyfs(Integer yyfs) { + this.yyfs = yyfs; + } + + public Integer getDzyyfs() { + return dzyyfs; + } + + public void setDzyyfs(Integer dzyyfs) { + this.dzyyfs = dzyyfs; + } + + public Integer getDsmdy() { + return dsmdy; + } + + public void setDsmdy(Integer dsmdy) { + this.dsmdy = dsmdy; + } + + public String getFwdyfs() { + return fwdyfs; + } + + public void setFwdyfs(String fwdyfs) { + this.fwdyfs = fwdyfs; + } + + public String getWlyyfs() { + return wlyyfs; + } + + public void setWlyyfs(String wlyyfs) { + this.wlyyfs = wlyyfs; + } + + public String getQrdzyy() { + return qrdzyy; + } + + public void setQrdzyy(String qrdzyy) { + this.qrdzyy = qrdzyy; + } + + public String getYyid() { + return yyid; + } + + public void setYyid(String yyid) { + this.yyid = yyid; + } + + public String getYyfswb() { + return yyfswb; + } + + public void setYyfswb(String yyfswb) { + this.yyfswb = yyfswb; + } + + public String getWfqssj() { + return wfqssj; + } + + public void setWfqssj(String wfqssj) { + this.wfqssj = wfqssj; + } + + public String getSfqssj() { + return sfqssj; + } + + public void setSfqssj(String sfqssj) { + this.sfqssj = sfqssj; + } + + public Integer getQszt() { + return qszt; + } + + public void setQszt(Integer qszt) { + this.qszt = qszt; + } + + public String getYyqksm() { + return yyqksm; + } + + public void setYyqksm(String yyqksm) { + this.yyqksm = yyqksm; + } + + public String getYqxdyr() { + return yqxdyr; + } + + public void setYqxdyr(String yqxdyr) { + this.yqxdyr = yqxdyr; + } + + public String getDsf() { + return dsf; + } + + public void setDsf(String dsf) { + this.dsf = dsf; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt4.java b/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt4.java new file mode 100644 index 0000000..f99794e --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfHtqcDt4.java @@ -0,0 +1,63 @@ +package com.engine.htxc.contract.entity; + +public class UfHtqcDt4 { + private Integer id; + + private Integer mainid; + + private String sl; + + private String bhsje; + + private String jshjje; + + private String htslz; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getMainid() { + return mainid; + } + + public void setMainid(Integer mainid) { + this.mainid = mainid; + } + + public String getSl() { + return sl; + } + + public void setSl(String sl) { + this.sl = sl; + } + + public String getBhsje() { + return bhsje; + } + + public void setBhsje(String bhsje) { + this.bhsje = bhsje; + } + + public String getJshjje() { + return jshjje; + } + + public void setJshjje(String jshjje) { + this.jshjje = jshjje; + } + + public String getHtslz() { + return htslz; + } + + public void setHtslz(String htslz) { + this.htslz = htslz; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfOtcdertra.java b/src/main/java/com/engine/htxc/contract/entity/UfOtcdertra.java new file mode 100644 index 0000000..0b4e42a --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfOtcdertra.java @@ -0,0 +1,742 @@ +package com.engine.htxc.contract.entity; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:26 + * @Description: 场外衍生品表 + * @ModifyLog: + **/ +public class UfOtcdertra { + private Integer id; + + private Integer requestid; + + private String htlx; + + private Integer sfsymbfb; + + private String xzfb; + + private String htmc; + + private String sfwdsf; + + private Integer bmdj; + + private Integer sfsw; + + private Integer htjexz; + + private String htzje; + + private Integer bz; + + private String htjedx; + + private Integer zhrmb; + + private Integer sflx; + + private Integer sffs; + + private Integer sfxjwfk; + + private String cgfwxxxx; + + private String wdsfyy; + + private Integer zt; + + private String htbh; + + private String bhsje; + + private String syyhsxm; + + private String wsymbyy; + + private Integer htzwbj; + + private Integer htxz; + + private Integer htslz; + + private Integer qcbm; + + private Integer qcjg; + + private Integer dqbb; + + private String htzw; + + private String htzwfzzd; + + private String htfj; + + private String htfjfzzd; + + private String beizhu; + + private String htzwdzyyj; + + private String htfjdzyyj; + + private String fhtlx; + + private String zscqgs; + + private String fid; + + private String bgjlbd; + + private Integer fpxz; + + private String sh; + + private String htlxwb; + + private Integer bzhlz; + + private Integer htsplcrequestid; + + private Integer jshjje; + + private Integer jsbz; + + private String sfktj; + + private String qcrq; + + private Integer yyjgdzt; + + private String cgxgbm; + + private String yyjdbs; + + private String cyyz; + + private Integer formmodeid; + + private Integer modedatacreater; + + private Integer modedatacreatertype; + + private String modedatacreatedate; + + private String modedatacreatetime; + + private Integer modedatamodifier; + + private String modedatamodifydatetime; + + private String modeuuid; + + private Integer qcr; + + private String syscode; + + private String modulecode; + + private String htxgcp; + + private Integer gdlx; + + private Integer yspfl; + + private String htdsf; + + private String htspr; + + private String glht; + + private String yz; + + private Integer autosealflag; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getRequestid() { + return requestid; + } + + public void setRequestid(Integer requestid) { + this.requestid = requestid; + } + + public String getHtlx() { + return htlx; + } + + public void setHtlx(String htlx) { + this.htlx = htlx; + } + + public Integer getSfsymbfb() { + return sfsymbfb; + } + + public void setSfsymbfb(Integer sfsymbfb) { + this.sfsymbfb = sfsymbfb; + } + + public String getXzfb() { + return xzfb; + } + + public void setXzfb(String xzfb) { + this.xzfb = xzfb; + } + + public String getHtmc() { + return htmc; + } + + public void setHtmc(String htmc) { + this.htmc = htmc; + } + + public String getSfwdsf() { + return sfwdsf; + } + + public void setSfwdsf(String sfwdsf) { + this.sfwdsf = sfwdsf; + } + + public Integer getBmdj() { + return bmdj; + } + + public void setBmdj(Integer bmdj) { + this.bmdj = bmdj; + } + + public Integer getSfsw() { + return sfsw; + } + + public void setSfsw(Integer sfsw) { + this.sfsw = sfsw; + } + + public Integer getHtjexz() { + return htjexz; + } + + public void setHtjexz(Integer htjexz) { + this.htjexz = htjexz; + } + + public String getHtzje() { + return htzje; + } + + public void setHtzje(String htzje) { + this.htzje = htzje; + } + + public Integer getBz() { + return bz; + } + + public void setBz(Integer bz) { + this.bz = bz; + } + + public String getHtjedx() { + return htjedx; + } + + public void setHtjedx(String htjedx) { + this.htjedx = htjedx; + } + + public Integer getZhrmb() { + return zhrmb; + } + + public void setZhrmb(Integer zhrmb) { + this.zhrmb = zhrmb; + } + + public Integer getSflx() { + return sflx; + } + + public void setSflx(Integer sflx) { + this.sflx = sflx; + } + + public Integer getSffs() { + return sffs; + } + + public void setSffs(Integer sffs) { + this.sffs = sffs; + } + + public Integer getSfxjwfk() { + return sfxjwfk; + } + + public void setSfxjwfk(Integer sfxjwfk) { + this.sfxjwfk = sfxjwfk; + } + + public String getCgfwxxxx() { + return cgfwxxxx; + } + + public void setCgfwxxxx(String cgfwxxxx) { + this.cgfwxxxx = cgfwxxxx; + } + + public String getWdsfyy() { + return wdsfyy; + } + + public void setWdsfyy(String wdsfyy) { + this.wdsfyy = wdsfyy; + } + + public Integer getZt() { + return zt; + } + + public void setZt(Integer zt) { + this.zt = zt; + } + + public String getHtbh() { + return htbh; + } + + public void setHtbh(String htbh) { + this.htbh = htbh; + } + + public String getBhsje() { + return bhsje; + } + + public void setBhsje(String bhsje) { + this.bhsje = bhsje; + } + + public String getSyyhsxm() { + return syyhsxm; + } + + public void setSyyhsxm(String syyhsxm) { + this.syyhsxm = syyhsxm; + } + + public String getWsymbyy() { + return wsymbyy; + } + + public void setWsymbyy(String wsymbyy) { + this.wsymbyy = wsymbyy; + } + + public Integer getHtzwbj() { + return htzwbj; + } + + public void setHtzwbj(Integer htzwbj) { + this.htzwbj = htzwbj; + } + + public Integer getHtxz() { + return htxz; + } + + public void setHtxz(Integer htxz) { + this.htxz = htxz; + } + + public Integer getHtslz() { + return htslz; + } + + public void setHtslz(Integer htslz) { + this.htslz = htslz; + } + + public Integer getQcbm() { + return qcbm; + } + + public void setQcbm(Integer qcbm) { + this.qcbm = qcbm; + } + + public Integer getQcjg() { + return qcjg; + } + + public void setQcjg(Integer qcjg) { + this.qcjg = qcjg; + } + + public Integer getDqbb() { + return dqbb; + } + + public void setDqbb(Integer dqbb) { + this.dqbb = dqbb; + } + + public String getHtzw() { + return htzw; + } + + public void setHtzw(String htzw) { + this.htzw = htzw; + } + + public String getHtzwfzzd() { + return htzwfzzd; + } + + public void setHtzwfzzd(String htzwfzzd) { + this.htzwfzzd = htzwfzzd; + } + + public String getHtfj() { + return htfj; + } + + public void setHtfj(String htfj) { + this.htfj = htfj; + } + + public String getHtfjfzzd() { + return htfjfzzd; + } + + public void setHtfjfzzd(String htfjfzzd) { + this.htfjfzzd = htfjfzzd; + } + + public String getBeizhu() { + return beizhu; + } + + public void setBeizhu(String beizhu) { + this.beizhu = beizhu; + } + + public String getHtzwdzyyj() { + return htzwdzyyj; + } + + public void setHtzwdzyyj(String htzwdzyyj) { + this.htzwdzyyj = htzwdzyyj; + } + + public String getHtfjdzyyj() { + return htfjdzyyj; + } + + public void setHtfjdzyyj(String htfjdzyyj) { + this.htfjdzyyj = htfjdzyyj; + } + + public String getFhtlx() { + return fhtlx; + } + + public void setFhtlx(String fhtlx) { + this.fhtlx = fhtlx; + } + + public String getZscqgs() { + return zscqgs; + } + + public void setZscqgs(String zscqgs) { + this.zscqgs = zscqgs; + } + + public String getFid() { + return fid; + } + + public void setFid(String fid) { + this.fid = fid; + } + + public String getBgjlbd() { + return bgjlbd; + } + + public void setBgjlbd(String bgjlbd) { + this.bgjlbd = bgjlbd; + } + + public Integer getFpxz() { + return fpxz; + } + + public void setFpxz(Integer fpxz) { + this.fpxz = fpxz; + } + + public String getSh() { + return sh; + } + + public void setSh(String sh) { + this.sh = sh; + } + + public String getHtlxwb() { + return htlxwb; + } + + public void setHtlxwb(String htlxwb) { + this.htlxwb = htlxwb; + } + + public Integer getBzhlz() { + return bzhlz; + } + + public void setBzhlz(Integer bzhlz) { + this.bzhlz = bzhlz; + } + + public Integer getHtsplcrequestid() { + return htsplcrequestid; + } + + public void setHtsplcrequestid(Integer htsplcrequestid) { + this.htsplcrequestid = htsplcrequestid; + } + + public Integer getJshjje() { + return jshjje; + } + + public void setJshjje(Integer jshjje) { + this.jshjje = jshjje; + } + + public Integer getJsbz() { + return jsbz; + } + + public void setJsbz(Integer jsbz) { + this.jsbz = jsbz; + } + + public String getSfktj() { + return sfktj; + } + + public void setSfktj(String sfktj) { + this.sfktj = sfktj; + } + + public String getQcrq() { + return qcrq; + } + + public void setQcrq(String qcrq) { + this.qcrq = qcrq; + } + + public Integer getYyjgdzt() { + return yyjgdzt; + } + + public void setYyjgdzt(Integer yyjgdzt) { + this.yyjgdzt = yyjgdzt; + } + + public String getCgxgbm() { + return cgxgbm; + } + + public void setCgxgbm(String cgxgbm) { + this.cgxgbm = cgxgbm; + } + + public String getYyjdbs() { + return yyjdbs; + } + + public void setYyjdbs(String yyjdbs) { + this.yyjdbs = yyjdbs; + } + + public String getCyyz() { + return cyyz; + } + + public void setCyyz(String cyyz) { + this.cyyz = cyyz; + } + + public Integer getFormmodeid() { + return formmodeid; + } + + public void setFormmodeid(Integer formmodeid) { + this.formmodeid = formmodeid; + } + + public Integer getModedatacreater() { + return modedatacreater; + } + + public void setModedatacreater(Integer modedatacreater) { + this.modedatacreater = modedatacreater; + } + + public Integer getModedatacreatertype() { + return modedatacreatertype; + } + + public void setModedatacreatertype(Integer modedatacreatertype) { + this.modedatacreatertype = modedatacreatertype; + } + + public String getModedatacreatedate() { + return modedatacreatedate; + } + + public void setModedatacreatedate(String modedatacreatedate) { + this.modedatacreatedate = modedatacreatedate; + } + + public String getModedatacreatetime() { + return modedatacreatetime; + } + + public void setModedatacreatetime(String modedatacreatetime) { + this.modedatacreatetime = modedatacreatetime; + } + + public Integer getModedatamodifier() { + return modedatamodifier; + } + + public void setModedatamodifier(Integer modedatamodifier) { + this.modedatamodifier = modedatamodifier; + } + + public String getModedatamodifydatetime() { + return modedatamodifydatetime; + } + + public void setModedatamodifydatetime(String modedatamodifydatetime) { + this.modedatamodifydatetime = modedatamodifydatetime; + } + + public String getModeuuid() { + return modeuuid; + } + + public void setModeuuid(String modeuuid) { + this.modeuuid = modeuuid; + } + + public Integer getQcr() { + return qcr; + } + + public void setQcr(Integer qcr) { + this.qcr = qcr; + } + + public String getSyscode() { + return syscode; + } + + public void setSyscode(String syscode) { + this.syscode = syscode; + } + + public String getModulecode() { + return modulecode; + } + + public void setModulecode(String modulecode) { + this.modulecode = modulecode; + } + + public String getHtxgcp() { + return htxgcp; + } + + public void setHtxgcp(String htxgcp) { + this.htxgcp = htxgcp; + } + + public Integer getGdlx() { + return gdlx; + } + + public void setGdlx(Integer gdlx) { + this.gdlx = gdlx; + } + + public Integer getYspfl() { + return yspfl; + } + + public void setYspfl(Integer yspfl) { + this.yspfl = yspfl; + } + + public String getHtdsf() { + return htdsf; + } + + public void setHtdsf(String htdsf) { + this.htdsf = htdsf; + } + + public String getHtspr() { + return htspr; + } + + public void setHtspr(String htspr) { + this.htspr = htspr; + } + + public String getGlht() { + return glht; + } + + public void setGlht(String glht) { + this.glht = glht; + } + + public String getYz() { + return yz; + } + + public void setYz(String yz) { + this.yz = yz; + } + + public Integer getAutosealflag() { + return autosealflag; + } + + public void setAutosealflag(Integer autosealflag) { + this.autosealflag = autosealflag; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfOtcdertraDt.java b/src/main/java/com/engine/htxc/contract/entity/UfOtcdertraDt.java new file mode 100644 index 0000000..a898e36 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfOtcdertraDt.java @@ -0,0 +1,241 @@ +package com.engine.htxc.contract.entity; +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 21:26 + * @Description: 场外衍生品明细表 + * @ModifyLog: + **/ +public class UfOtcdertraDt { + private Integer id; + + private Integer mainid; + + private String wjmc; + + private String cz; + + private Integer sfyy; + + private String scsj; + + private String qrwlyy; + + private Integer yyzt; + + private String yyhwj; + + private String zpdfhwj; + + private Integer dzjyyzt; + + private Integer fwjyyzt; + + private Integer yyfs; + + private Integer dzyyfs; + + private Integer dsmdy; + + private String fwdyfs; + + private String wlyyfs; + + private String qrdzyy; + + private String yyid; + + private String yyfswb; + + private String dsf; + + private String yyqksm; + + private String yqxdyr; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getMainid() { + return mainid; + } + + public void setMainid(Integer mainid) { + this.mainid = mainid; + } + + public String getWjmc() { + return wjmc; + } + + public void setWjmc(String wjmc) { + this.wjmc = wjmc; + } + + public String getCz() { + return cz; + } + + public void setCz(String cz) { + this.cz = cz; + } + + public Integer getSfyy() { + return sfyy; + } + + public void setSfyy(Integer sfyy) { + this.sfyy = sfyy; + } + + public String getScsj() { + return scsj; + } + + public void setScsj(String scsj) { + this.scsj = scsj; + } + + public String getQrwlyy() { + return qrwlyy; + } + + public void setQrwlyy(String qrwlyy) { + this.qrwlyy = qrwlyy; + } + + public Integer getYyzt() { + return yyzt; + } + + public void setYyzt(Integer yyzt) { + this.yyzt = yyzt; + } + + public String getYyhwj() { + return yyhwj; + } + + public void setYyhwj(String yyhwj) { + this.yyhwj = yyhwj; + } + + public String getZpdfhwj() { + return zpdfhwj; + } + + public void setZpdfhwj(String zpdfhwj) { + this.zpdfhwj = zpdfhwj; + } + + public Integer getDzjyyzt() { + return dzjyyzt; + } + + public void setDzjyyzt(Integer dzjyyzt) { + this.dzjyyzt = dzjyyzt; + } + + public Integer getFwjyyzt() { + return fwjyyzt; + } + + public void setFwjyyzt(Integer fwjyyzt) { + this.fwjyyzt = fwjyyzt; + } + + public Integer getYyfs() { + return yyfs; + } + + public void setYyfs(Integer yyfs) { + this.yyfs = yyfs; + } + + public Integer getDzyyfs() { + return dzyyfs; + } + + public void setDzyyfs(Integer dzyyfs) { + this.dzyyfs = dzyyfs; + } + + public Integer getDsmdy() { + return dsmdy; + } + + public void setDsmdy(Integer dsmdy) { + this.dsmdy = dsmdy; + } + + public String getFwdyfs() { + return fwdyfs; + } + + public void setFwdyfs(String fwdyfs) { + this.fwdyfs = fwdyfs; + } + + public String getWlyyfs() { + return wlyyfs; + } + + public void setWlyyfs(String wlyyfs) { + this.wlyyfs = wlyyfs; + } + + public String getQrdzyy() { + return qrdzyy; + } + + public void setQrdzyy(String qrdzyy) { + this.qrdzyy = qrdzyy; + } + + public String getYyid() { + return yyid; + } + + public void setYyid(String yyid) { + this.yyid = yyid; + } + + public String getYyfswb() { + return yyfswb; + } + + public void setYyfswb(String yyfswb) { + this.yyfswb = yyfswb; + } + + public String getDsf() { + return dsf; + } + + public void setDsf(String dsf) { + this.dsf = dsf; + } + + public String getYyqksm() { + return yyqksm; + } + + public void setYyqksm(String yyqksm) { + this.yyqksm = yyqksm; + } + + public String getYqxdyr() { + return yqxdyr; + } + + public void setYqxdyr(String yqxdyr) { + this.yqxdyr = yqxdyr; + } +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/contract/entity/UfProduct.java b/src/main/java/com/engine/htxc/contract/entity/UfProduct.java new file mode 100644 index 0000000..7fcc389 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfProduct.java @@ -0,0 +1,59 @@ +package com.engine.htxc.contract.entity; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2316:02 + * @Description: 产品建模表 + * @ModifyLog: + **/ +public class UfProduct { + private Integer id; + private String productid; + private String productname; + private Integer requestid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getProductid() { + return productid; + } + + public void setProductid(String productid) { + this.productid = productid; + } + + public String getProductname() { + return productname; + } + + public void setProductname(String productname) { + this.productname = productname; + } + + public Integer getRequestid() { + return requestid; + } + + public void setRequestid(Integer requestid) { + this.requestid = requestid; + } + + @Override + public String toString() { + return "UfProduct{" + + "id=" + id + + ", productid='" + productid + '\'' + + ", productname='" + productname + '\'' + + ", requestid=" + requestid + + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/entity/UfProductCounterParty.java b/src/main/java/com/engine/htxc/contract/entity/UfProductCounterParty.java new file mode 100644 index 0000000..bf9e614 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UfProductCounterParty.java @@ -0,0 +1,61 @@ +package com.engine.htxc.contract.entity; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2316:31 + * @Description: + * @ModifyLog: + **/ +public class UfProductCounterParty{ + private Integer id; + + private Integer requestid; + private String productid; + private String socialcreditcode; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getRequestid() { + return requestid; + } + + public void setRequestid(Integer requestid) { + this.requestid = requestid; + } + + + public String getProductid() { + return productid; + } + + public void setProductid(String productid) { + this.productid = productid; + } + + public String getSocialcreditcode() { + return socialcreditcode; + } + + public void setSocialcreditcode(String socialcreditcode) { + this.socialcreditcode = socialcreditcode; + } + + @Override + public String toString() { + return "UfProductCounterParty{" + + "id=" + id + + ", requestid=" + requestid + + ", productid='" + productid + '\'' + + ", socialcreditcode='" + socialcreditcode + '\'' + + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/entity/UserEntity.java b/src/main/java/com/engine/htxc/contract/entity/UserEntity.java new file mode 100644 index 0000000..dc900b7 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/entity/UserEntity.java @@ -0,0 +1,26 @@ +package com.engine.htxc.contract.entity; + +import lombok.Data; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/9/2617:01 + * @Description: 用户信息,多个表关联数据 + * @ModifyLog: + **/ +@Data +public class UserEntity { + private String loginid; + private Integer userid; + private String username; + private String telephone; + private String email; + private Integer departmentid; + private String workcode; + private String departmentname; + private String departmentcode; + private String jobCode; +} diff --git a/src/main/java/com/engine/htxc/contract/mapper/CounterPartyMapper.java b/src/main/java/com/engine/htxc/contract/mapper/CounterPartyMapper.java new file mode 100644 index 0000000..e9a623f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/mapper/CounterPartyMapper.java @@ -0,0 +1,17 @@ +package com.engine.htxc.contract.mapper; + +import com.engine.htxc.contract.entity.UfDsfgl; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface CounterPartyMapper { + @Select({""}) + List selectCounterPartyByCertCode(@Param("items") List certCodes); +} diff --git a/src/main/java/com/engine/htxc/contract/modeaction/SaveBankInfoToCounterpartyAction.java b/src/main/java/com/engine/htxc/contract/modeaction/SaveBankInfoToCounterpartyAction.java new file mode 100644 index 0000000..82d9e23 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/modeaction/SaveBankInfoToCounterpartyAction.java @@ -0,0 +1,56 @@ +package com.engine.htxc.contract.modeaction; + + +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.contract.service.ContractService; +import com.engine.htxc.contract.service.impl.ContractServiceImpl; +import com.google.common.collect.Maps; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractdoctopdfAction.java + * @createTime 2022年07月29日 13:44:00 + */ +public class SaveBankInfoToCounterpartyAction extends AbstractModeExpandJavaCodeNew { + private DbTools dbtools=new DbTools(); + + private ContractService getService() { + return ServiceUtil.getService(ContractServiceImpl.class); + } + @Override + public Map doModeExpand(Map param) { + Map result = new HashMap(); + try { + User user = (User)param.get("user"); + int billid = -1;//数据id + int modeid = -1;//模块id + RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo"); + if(requestInfo!=null){ + billid = Util.getIntValue(requestInfo.getRequestid()); + modeid = Util.getIntValue(requestInfo.getWorkflowid()); + if(billid>0&&modeid>0){ + String tableName = dbtools.getFormmodeidToTable(String.valueOf(modeid))+"_dt2"; + String sql = "select htdsf,yxzh,khx from "+tableName+" where mainid="+billid; + List> dataList = dbtools.getSqlToList(sql); + Map data = Maps.newHashMap(); + data.put("data",dataList); + Map map = getService().saveBankInfoToCounterparty(data); + } + } + } catch (Exception e) { + result.put("errmsg",e.getMessage()); + result.put("flag", "false"); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/contract/modeexpand/RecordcontractCreationVersionExpand.java b/src/main/java/com/engine/htxc/contract/modeexpand/RecordcontractCreationVersionExpand.java new file mode 100644 index 0000000..fcb23f3 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/modeexpand/RecordcontractCreationVersionExpand.java @@ -0,0 +1,48 @@ +package com.engine.htxc.contract.modeexpand; + + +import com.engine.htxc.contract.util.RecordChangeVersion; +import org.apache.log4j.Logger; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.HashMap; +import java.util.Map; + +public class RecordcontractCreationVersionExpand extends AbstractModeExpandJavaCodeNew { + /** + * 执行模块扩展动作 + * @param param + * param包含(但不限于)以下数据 + * user 当前用户 + * importtype 导入方式(仅在批量导入的接口动作会传输) 1 追加,2覆盖,3更新,获取方式(int)param.get("importtype") + * 导入链接中拼接的特殊参数(仅在批量导入的接口动作会传输),比如a=1,可通过param.get("a")获取参数值 + * 页面链接拼接的参数,比如b=2,可以通过param.get("b")来获取参数 + * @return + */ + public Map doModeExpand(Map param) { + Map result = new HashMap(); + try { + Logger.getLogger(this.getClass().getName()).info("扩展接口参数param :"+param); + int billid = -1;//数据id + int modeid = -1;//模块id + RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo"); + if(requestInfo!=null){ + billid = Util.getIntValue(requestInfo.getRequestid()); + modeid = Util.getIntValue(requestInfo.getWorkflowid()); + if(billid>0&&modeid>0){ + //------请在下面编写业务逻辑代码------ + RecordChangeVersion.recordChangeVersion(billid,"uf_htqc"); + } + } + } catch (Exception e) { + result.put("errmsg",e.getMessage()); + result.put("flag", "false"); + } + return result; + } + + +} diff --git a/src/main/java/com/engine/htxc/contract/number/cmd/ContractNumberCmd.java b/src/main/java/com/engine/htxc/contract/number/cmd/ContractNumberCmd.java new file mode 100644 index 0000000..cee6334 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/number/cmd/ContractNumberCmd.java @@ -0,0 +1,208 @@ +package com.engine.htxc.contract.number.cmd; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.htxc.contract.number.config.NumberConfig; +import com.engine.htxc.contract.number.entity.Uf_ContractNoAggr; +import com.engine.htxc.contract.number.entity.Uf_ContractNoAggrUtil; +import com.engine.integration.util.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.DBTools; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractNumberCmd.java + * @createTime 2022年06月08日 14:24:00 + */ +public class ContractNumberCmd extends AbstractCommonCommand> { + + public ContractNumberCmd(Map params, User user) { + this.params = params; + this.user = user; + } + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + String billid= Util.null2String(this.params.get("billid")); + Map maintable=gethtqcmap(billid); + Map retmap=new HashMap(); + if(maintable==null || maintable.size()<=0){ + return null; + } + boolean iscreate=false; + String htlx=Util.null2String(maintable.get("htlx")); + String deptid=Util.null2String(this.user.getUserDepartment()); + Uf_ContractNoAggr uf_contractNoAggr = Uf_ContractNoAggrUtil.getmodeluf_contractnoaggr(billid); + if(uf_contractNoAggr==null || StringUtils.isBlank(uf_contractNoAggr.getId())){ + iscreate=true; + uf_contractNoAggr=new Uf_ContractNoAggr(); + } + if(!iscreate){ + String modehtlx=Util.null2String(uf_contractNoAggr.getHtlx()); + if(modehtlx.equals(htlx)){ + retmap.put("data",true); + return retmap; + } + } + NumberConfig numberconfig= (NumberConfig)this.params.get("numberconfig"); + String year= DateUtil.format(DateTime.now(),"yyyy"); + String month=DateUtil.format(DateTime.now(),"MM"); + String day=DateUtil.format(DateTime.now(),"dd"); + Map deptmap= getdeptname(deptid); + String deptmark=Util.null2String(deptmap.get("docnumabbreviation")); + Map maxnomap=new HashMap<>(); + maxnomap.put("year",year); + maxnomap.put("deptname",deptmark); + maxnomap.put("prefix",numberconfig.prefix); + if(!iscreate && !StringUtils.isBlank(uf_contractNoAggr.getId())){ + maxnomap.put("id",uf_contractNoAggr.getId()); + } + Integer maxno=getmaxno(maxnomap); + if(maxno<=0){ + maxno=numberconfig.firstNo; + }else{ + maxno+=1; + } + maxno=numbernofilter(maxno,numberconfig.positionNo); + if(maxno<0){ + return null; + } + try { + uf_contractNoAggr.setDay(day); + uf_contractNoAggr.setMonth(month); + uf_contractNoAggr.setYear(year); + uf_contractNoAggr.setZzbh(maxno); + uf_contractNoAggr.setZzjgjc(deptmark); + uf_contractNoAggr.setQz(numberconfig.prefix); + uf_contractNoAggr.setMbid(billid); + uf_contractNoAggr.setHtlx(htlx); + if(StringUtils.isBlank(uf_contractNoAggr.getId())){ + uf_contractNoAggr.create(); + }else{ + uf_contractNoAggr.updata(); + } + + StringBuilder mark = new StringBuilder(maxno + ""); + while (mark.length() < numberconfig.length) { + mark.insert(0, "0"); + } + String htlxvalue=""; + if(!StringUtils.isBlank(htlx)){ + htlxvalue=htlx.split("-").length>1?htlx.split("-")[htlx.split("-").length-1]:""; + } + boolean flag=updatemodel(billid,numberconfig.prefix+deptmark+year+month+day+htlxvalue+mark); + retmap.put("data",flag); + return retmap; + }catch (Exception ex){ + + } + return null; + } + + + public boolean updatemodel(String billid,String htbh){ + if(StringUtils.isBlank(billid) || StringUtils.isBlank(htbh)){ + return false; + } + + Map setmap=new HashMap<>(); + setmap.put("htbh",htbh); + Map wheremap=new HashMap<>(); + wheremap.put("id",billid); + return JAVATools.Updatesql(setmap,"uf_htqc",wheremap); + } + + + public Map gethtqcmap(String billid){ + if(StringUtils.isBlank(billid)){ + return null; + } + String sql="select htlx from uf_htqc where id=?"; + return DBTools.getsqltomap(sql,billid); + } + + /** + * @title numbernofilter + * @author K1810015 + * @updateTime 2022/6/10 9:58 + * @Remark 做过滤 + * @throws + */ + public Integer numbernofilter(int numberno,String positionNo){ + if((","+positionNo+",").indexOf(","+numberno+",")<0){ + return numberno; + } + boolean flag=true; + int sum=0; + while(flag&&sum<10000){ + numberno+=1; + if((","+positionNo+",").indexOf(","+numberno+",")<0){ + flag =false; + } + } + if(flag){ + return -1; + } + return numberno; + } + + /** + * @title getmaxno + * @author K1810015 + * @updateTime 2022/6/9 15:29 + * @Remark 获取建模表里最大的数据 + * @throws + */ + public Integer getmaxno(Map map){ + String year=Util.null2String(map.get("year")); + String deptname=Util.null2String(map.get("deptname")); + String prefix=Util.null2String(map.get("prefix")); + String id=Util.null2String(map.get("id")); + Map retmap=null; + if(StringUtils.isBlank(id)){ + String sql="select max(zzbh) as zzbh from uf_ContractNoAggr where qz=? and year=? and zzjgjc=? "; + retmap=DBTools.getsqltomap(sql,prefix,year,deptname); + }else{ + String sql="select zzbh-1 as zzbh from uf_ContractNoAggr where id=?"; + retmap=DBTools.getsqltomap(sql,id); + + } + if(retmap==null || retmap.size()<=0){ + return -1; + } + int maxno =Util.getIntValue(Util.null2String(retmap.get("zzbh")),-1); + return maxno; + } + + /** + * @title getdeptname + * @author K1810015 + * @updateTime 2022/6/9 15:08 + * @Remark 获取部门扩展表的所有数据 + * @throws + */ + public Map getdeptname(String deptid){ + RecordSet rs=new RecordSet(); + if(StringUtils.isBlank(deptid)){ + return null; + } + String sql="select * from hrmdepartmentdefined where 1=1 and deptid=?" ; + return DBTools.getsqltomap(sql,deptid); + } + + +} diff --git a/src/main/java/com/engine/htxc/contract/number/config/NumberConfig.java b/src/main/java/com/engine/htxc/contract/number/config/NumberConfig.java new file mode 100644 index 0000000..7b32ded --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/number/config/NumberConfig.java @@ -0,0 +1,20 @@ +package com.engine.htxc.contract.number.config; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractConfig.java + * @createTime 2022年06月08日 14:09:00 + */ +public class NumberConfig { + + public int length=5; + + public String positionNo=""; + + public int firstNo=1; + + public String prefix=""; + + +} diff --git a/src/main/java/com/engine/htxc/contract/number/entity/Uf_ContractNoAggr.java b/src/main/java/com/engine/htxc/contract/number/entity/Uf_ContractNoAggr.java new file mode 100644 index 0000000..a55ddd4 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/number/entity/Uf_ContractNoAggr.java @@ -0,0 +1,119 @@ +package com.engine.htxc.contract.number.entity; + +import weaver.interfaces.htsc.GlobatTools.TableUtils; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName Uf_ContractNoAggr.java + * @createTime 2022年06月09日 14:43:00 + */ +public class Uf_ContractNoAggr extends TableUtils { + public String qz; + + public String getQz() { + return qz; + } + + public void setQz(String qz) { + this.qz = qz; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getMonth() { + return month; + } + + public void setMonth(String month) { + this.month = month; + } + + public String getDay() { + return day; + } + + public void setDay(String day) { + this.day = day; + } + + public String getZzjgjc() { + return zzjgjc; + } + + public void setZzjgjc(String zzjgjc) { + this.zzjgjc = zzjgjc; + } + + public String getHtflbh() { + return htflbh; + } + + public void setHtflbh(String htflbh) { + this.htflbh = htflbh; + } + + + public String year; + public String month; + public String day; + public String zzjgjc; + public String htflbh; + + public String getMbid() { + return mbid; + } + + public void setMbid(String mbid) { + this.mbid = mbid; + } + + public String getHtlx() { + return htlx; + } + + public void setHtlx(String htlx) { + this.htlx = htlx; + } + + public String mbid; + public String htlx; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String id; + public Integer getZzbh() { + return zzbh; + } + + public void setZzbh(Integer zzbh) { + this.zzbh = zzbh; + } + + public Integer zzbh; + + @Override + public String toString() { + return "Uf_ContractNoAggr{" + + "qz='" + qz + '\'' + + ", year='" + year + '\'' + + ", month='" + month + '\'' + + ", day='" + day + '\'' + + ", zzjgjc='" + zzjgjc + '\'' + + ", htflbh='" + htflbh + '\'' + + ", zzbh='" + zzbh + '\'' + + '}'; + } +} diff --git a/src/main/java/com/engine/htxc/contract/number/entity/Uf_ContractNoAggrUtil.java b/src/main/java/com/engine/htxc/contract/number/entity/Uf_ContractNoAggrUtil.java new file mode 100644 index 0000000..5d758fe --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/number/entity/Uf_ContractNoAggrUtil.java @@ -0,0 +1,43 @@ +package com.engine.htxc.contract.number.entity; + +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.DBTools; +import weaver.interfaces.htsc.GlobatTools.TableUtils; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName Uf_ContractNoAggr.java + * @createTime 2022年06月09日 14:43:00 + */ +public class Uf_ContractNoAggrUtil extends TableUtils { + + + public static Uf_ContractNoAggr getmodeluf_contractnoaggr(String modeid){ + String sql="select id from Uf_ContractNoAggr where 1=1 and mbid=?"; + Map map=DBTools.getsqltomap(sql,modeid); + if(map==null || map.size()<=0){ + return null; + } + String id= Util.null2String(map.get("id")); + if(StringUtils.isBlank(id)){ + return null; + } + try{ + Uf_ContractNoAggr uf_contractNoAggr=(Uf_ContractNoAggr) new Uf_ContractNoAggr().select(id); + if(uf_contractNoAggr==null){ + return null; + } + if(StringUtils.isBlank(uf_contractNoAggr.getId())){ + return null; + }; + return uf_contractNoAggr; + }catch (Exception e){ + + } + return null; + } +} diff --git a/src/main/java/com/engine/htxc/contract/number/service/ContractNumberService.java b/src/main/java/com/engine/htxc/contract/number/service/ContractNumberService.java new file mode 100644 index 0000000..e131573 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/number/service/ContractNumberService.java @@ -0,0 +1,16 @@ +package com.engine.htxc.contract.number.service; + +import weaver.hrm.User; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractNumberService.java + * @createTime 2022年06月08日 14:20:00 + */ +public interface ContractNumberService { + + public Boolean createNumber(Map map, User user); +} diff --git a/src/main/java/com/engine/htxc/contract/number/service/impl/ContractNumberServiceImpl.java b/src/main/java/com/engine/htxc/contract/number/service/impl/ContractNumberServiceImpl.java new file mode 100644 index 0000000..551e54a --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/number/service/impl/ContractNumberServiceImpl.java @@ -0,0 +1,94 @@ +package com.engine.htxc.contract.number.service.impl; + +import com.engine.htsc.seal.web.RedisTools; +import com.engine.htxc.contract.number.cmd.ContractNumberCmd; +import com.engine.htxc.contract.number.config.NumberConfig; +import com.engine.htxc.contract.number.service.ContractNumberService; +import com.engine.core.impl.Service; +import com.engine.integration.util.StringUtils; +import redis.clients.jedis.Jedis; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.wechat.util.Utils; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractNumberServiceImpl.java + * @createTime 2022年06月08日 14:20:00 + */ +public class ContractNumberServiceImpl extends Service implements ContractNumberService { + + private PropBean pb=new PropBean(); + private BaseBean bs=new BaseBean(); + @Override + public Boolean createNumber(Map map, User user) { + + if(map==null || map.size()<=0 ){ + return false; + } + NumberConfig numberConfig=new NumberConfig(); + //先去取外部的变量因素 + String firstno= Utils.null2String(pb.getPropName("contract.firstno")); + String positionno= Utils.null2String(pb.getPropName("contract.positionno")); + String prefix=Utils.null2String(pb.getPropName("contract.prefix")); + if(StringUtils.isBlank(prefix)){ + return false; + } + numberConfig.prefix=prefix; + if(!StringUtils.isBlank(positionno)){ + numberConfig.positionNo=positionno; + } + if(!StringUtils.isBlank(firstno)){ + int isum=Util.getIntValue(firstno,-1); + if(isum>0){ + numberConfig.firstNo=isum; + } + } + + map.put("numberconfig",numberConfig); + //重置配置 config文件 + + String deptid=Util.null2String(user.getUserDepartment()); + + // Jedis jedis = RedisTools.GetJedis(); + // String rediskey = "dept"+deptid+"_redis_key"; + boolean flag=false; + Map retmap= new ContractNumberCmd(map,user).execute(null); + String value=""; + if(retmap!=null && retmap.size()>0){ + value=Util.null2String(retmap.get("data")); + } + if("true".equals(value)){ + flag= true; + } +// try{ +// int counts=0; +// int expireTime=Util.getIntValue(Util.null2String(pb.getPropName("RedisExpiretime"))); +// boolean redisfalg=RedisTools.TryGetDistributedLock(jedis,rediskey,deptid,expireTime); +// bs.writeLog("redis开始状态:"+redisfalg+",deptid:"+deptid); +// while (redisfalg==false && counts<10) { +// Thread.sleep(500); +// counts++; +// redisfalg=RedisTools.TryGetDistributedLock(jedis,rediskey,deptid,expireTime); +// } +// bs.writeLog("redis结束状态:"+redisfalg+",deptid:"+deptid); +// }catch (Exception e){ +// bs.writeLog(rediskey+"保存失败"+e.getMessage()); +// }finally { +// bs.writeLog(rediskey+"解锁开始"); +// RedisTools.releaseDistributedLock(jedis,rediskey,deptid); +// bs.writeLog(rediskey+"解锁结束"); +// bs.writeLog(rediskey+"释放锁开始"); +// jedis.close(); +// bs.writeLog(rediskey+"释放锁结束"); +// } + return flag; + } + + +} diff --git a/src/main/java/com/engine/htxc/contract/service/ContractListService.java b/src/main/java/com/engine/htxc/contract/service/ContractListService.java new file mode 100644 index 0000000..3068eff --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/ContractListService.java @@ -0,0 +1,8 @@ +package com.engine.htxc.contract.service; + +import java.util.Map; + +public interface ContractListService { + + Map deleteData(Map paramMap); +} diff --git a/src/main/java/com/engine/htxc/contract/service/ContractService.java b/src/main/java/com/engine/htxc/contract/service/ContractService.java new file mode 100644 index 0000000..61cf352 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/ContractService.java @@ -0,0 +1,99 @@ +package com.engine.htxc.contract.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.htxc.contract.dto.ContractProcessDTO; +import com.engine.htxc.contract.dto.ProcessInfoDTO; +import com.engine.htxc.contract.entity.CghtMainEntity; +import weaver.hrm.User; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractService.java + * @createTime 2022年07月01日 09:59:00 + */ +public interface ContractService { + + /** + *

备份出一个新的附件

+ * @title getfileinfo + * @author K1810015 + * @updateTime 2022/9/5 10:51 + */ + public JSONArray getfileinfo(User user,Map map); + + /** + *

获取附件的详细细信息

+ * @title getdocimagefileinfo + * @author K1810015 + * @updateTime 2022/9/5 10:52 + */ + public JSONArray getdocimagefileinfo(User user,Map map); + + /** + *

修改合同状态

+ * @title updateStatus + * @author K1810015 + * @updateTime 2022/9/5 10:51 + */ + public boolean updateStatus(User user,Map map); + + public boolean updateContractenType(User user,Map map); + + /** + *

合同建模发起流程取消关联

+ * @title unLinkMode + * @author K1810015 + * @updateTime 2022/9/5 10:51 + */ + public String unLinkMode(User user,Map map); + + /** + *

合同建模发起流程关联

+ * @title linkMode + * @author K1810015 + * @updateTime 2022/9/5 10:50 + */ + public String linkMode(User user,Map map); + + /** + *

分送节点人员下一步骤必填选项

+ * @title WorkflowNextJudge + * @author K1810015 + * @updateTime 2022/8/26 14:37 + */ + public String workflowNextJudge(User user,Map map); + + public String guidePages(User user,Map map); + + /** + *

根据获取合同建模里所有印章的名称

+ * @title todosealname + * @author K1810015 + * @updateTime 2022/9/5 10:47 + */ + public String todosealname(User user,Map map); + + + /** + * 采购发起合同草稿 + * @param cghtMainEntity + * @return + */ + CghtMainEntity createCghtqc(CghtMainEntity cghtMainEntity); + + + /** + * 创建合同并发起合同流程 + * @param user 系统用户 + * @param contractProcessDTO 合同流程数据 + * @return + */ + ProcessInfoDTO startContractProcess(User user, ContractProcessDTO contractProcessDTO); + + Map saveBankInfoToCounterparty(Map paramMap); + +} diff --git a/src/main/java/com/engine/htxc/contract/service/ContractUpdateWfService.java b/src/main/java/com/engine/htxc/contract/service/ContractUpdateWfService.java new file mode 100644 index 0000000..9194a77 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/ContractUpdateWfService.java @@ -0,0 +1,16 @@ +package com.engine.htxc.contract.service; + +import weaver.hrm.User; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractUpdateWfService.java + * @createTime 2022年08月12日 11:31:00 + */ +public interface ContractUpdateWfService { + + public void updateworkflow(Map map, User user); +} diff --git a/src/main/java/com/engine/htxc/contract/service/ContractdoctopdfService.java b/src/main/java/com/engine/htxc/contract/service/ContractdoctopdfService.java new file mode 100644 index 0000000..d3ca9da --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/ContractdoctopdfService.java @@ -0,0 +1,21 @@ +package com.engine.htxc.contract.service; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractdoctopdfService.java + * @createTime 2022年07月29日 13:50:00 + */ +public interface ContractdoctopdfService { + + /** + *

建模保存之后doc转dpf

+ * @title doctopdf + * @author K1810015 + * @updateTime 2022/7/31 23:15 + * @throws + */ + public void doctopdf(Map map); +} diff --git a/src/main/java/com/engine/htxc/contract/service/CounterpartyService.java b/src/main/java/com/engine/htxc/contract/service/CounterpartyService.java new file mode 100644 index 0000000..24e660f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/CounterpartyService.java @@ -0,0 +1,8 @@ +package com.engine.htxc.contract.service; + +import java.util.Map; + +public interface CounterpartyService { + + Map getRoleName(Map map); +} diff --git a/src/main/java/com/engine/htxc/contract/service/ProductCounterpartyService.java b/src/main/java/com/engine/htxc/contract/service/ProductCounterpartyService.java new file mode 100644 index 0000000..6660091 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/ProductCounterpartyService.java @@ -0,0 +1,23 @@ +package com.engine.htxc.contract.service; + +import com.engine.htxc.contract.dto.ProductCounterPartyDTO; +import com.engine.htxc.contract.dto.ProductCounterpartyEnum; +import weaver.hrm.User; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2315:15 + * @Description: 产品对手方接口 + * @ModifyLog: + **/ +public interface ProductCounterpartyService { + /** + * 添加产品对手方 + * @param user + * @param productCounterParty + */ + ProductCounterpartyEnum addProductCounterParty(User user, ProductCounterPartyDTO productCounterParty); +} diff --git a/src/main/java/com/engine/htxc/contract/service/impl/ContractListServiceImpl.java b/src/main/java/com/engine/htxc/contract/service/impl/ContractListServiceImpl.java new file mode 100644 index 0000000..de753e3 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/impl/ContractListServiceImpl.java @@ -0,0 +1,65 @@ +package com.engine.htxc.contract.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.contract.service.ContractListService; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class ContractListServiceImpl extends Service implements ContractListService { + + private DbTools dbtools=new DbTools(); + private PropBean pb=new PropBean(); + @Override + public Map deleteData(Map paramMap) { + String ids = paramMap.get("ids") == null? "":paramMap.get("ids").toString(); + Map apiData = Maps.newHashMap(); + List errorHtbhs = Lists.newArrayList(); + apiData.put("code","200"); + try { + String sql = "select count(0) num from UF_CONTRACTLIST where zt!=0 and htbh in ("+ids+")"; + int num = dbtools.ifExist(sql); + if (num > 0){ //删除的数据中有不是草稿的数据 + apiData.put("code","400"); + apiData.put("message","只能删除草稿状态的数据"); + return apiData; + } + //获得表单id及对应的billid + String billIdSql = "select formidd,bid,htbh from UF_CONTRACTLIST where htbh in ("+ids+")"; + List> list = dbtools.getSqlToList(billIdSql); + Map>> collect = list.stream().collect(Collectors.groupingBy(e -> e.get("formidd").toString())); + collect.entrySet().forEach(e -> { + String formid = e.getKey(); + String tableName = dbtools.getFormidToTable(formid); + String billids = ""; + String htbh = ""; + for (Map map : e.getValue()){ + billids = billids + map.get("bid") +","; + htbh = htbh + map.get("htbh")+","; + } + htbh = htbh.substring(0,htbh.length()-1); + billids = billids.substring(0,billids.length()-1); + String deleteSql = "delete from "+tableName+" where id in ("+billids+")"; + boolean result = dbtools.execteSql(deleteSql); + if (!result){ + errorHtbhs.add(htbh); + } + }); + + }catch (Exception e){ + apiData.put("code","400"); + apiData.put("message",e.getMessage()); + } + if (errorHtbhs.size() >0){ + apiData.put("code","400"); + apiData.put("message","删除失败"); + apiData.put("errorData",errorHtbhs); + } + return apiData; + } +} diff --git a/src/main/java/com/engine/htxc/contract/service/impl/ContractServiceImpl.java b/src/main/java/com/engine/htxc/contract/service/impl/ContractServiceImpl.java new file mode 100644 index 0000000..151588f --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/impl/ContractServiceImpl.java @@ -0,0 +1,775 @@ +package com.engine.htxc.contract.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.htxc.common.R; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.base.BaseUtil; +import com.engine.htxc.commonutil.db.EntityCrudUtil; +import com.engine.htxc.commonutil.fileutil.FileUtil; +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.htxc.contract.cmd.WorkflowNextJudgeCmd; +import com.engine.htxc.contract.dao.CghtDao; +import com.engine.htxc.contract.dao.ContractDao; +import com.engine.htxc.contract.dao.ContractModeDao; +import com.engine.htxc.contract.dto.*; +import com.engine.htxc.contract.entity.*; +import com.engine.htxc.contract.number.entity.Uf_ContractNoAggr; +import com.engine.htxc.contract.service.ContractService; +import static com.engine.htxc.workflow.create.business.contract.init.ContractSignType.Archived; + +import com.engine.htxc.contract.util.ContractUtil; +import com.engine.htxc.eseal.service.EsealService; +import com.engine.htxc.eseal.service.impl.EsealServiceImpl; +import com.engine.htxc.workflow.create.autotrigger.contract.service.impl.AutoApprovalServiceImpl; +import com.engine.htxc.workflow.create.autotrigger.contract.vo.AutoApproval; +import com.engine.integration.util.StringUtils; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.conn.RecordSetTrans; +import weaver.docs.docs.DocIdUpdate; +import weaver.docs.docs.DocImageManager; +import weaver.docs.docs.ImageFileIdUpdate; +import weaver.docs.docs.VersionIdUpdate; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.DBTools; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractServiceImpl.java + * @createTime 2022年07月01日 09:59:00 + */ +public class ContractServiceImpl extends Service implements ContractService { + + private static final Logger logger= LoggerFactory.getLogger(ContractServiceImpl.class); + + public static final int DEFAULT_DOCLANGURAGE = 7; + /** + * 主目录默认值 + */ + public static final int DEFAULT_MAINCATEGORY = -1; + /** + * 子目录默认值 + */ + public static final int DEFAULT_SUBCATEGORY = -1; + /** + * 落款日期是否特殊要求默认值 + */ + public static final String LKRQSFYTSYQ_DEFAULT = "0"; + /** + * 非压缩文件 + */ + public static final String IS_NOT_ZIP = "0"; + public static final int SFXJWFK_NO = 1; + public static final String SFWDSF_DEFAULT = "0"; + public static final String BHSJE_DEFAULT = "0.00"; + + private final DbTools dbtools=new DbTools(); + private PropBean pb=new PropBean(); + + private EsealService esealService=ServiceUtil.getService(EsealServiceImpl.class); + + @Override + public JSONArray getfileinfo(User user, Map map) { + String contractmode= Util.null2String(map.get("contractmode")); + if(StringUtils.isBlank(contractmode)){ + return null; + } + String sql="select wj as docid,mbmc as filename from uf_wdzx where mbbh in (?)"; + List> retlist= DBTools.getsqltolist(sql,contractmode); + if(retlist==null || retlist.size()<=0){ + return null; + } + JSONArray jsonArray= new FileUtil().getfilelinfo(user,retlist); + return jsonArray; + } + + @Override + public JSONArray getdocimagefileinfo(User user, Map map) { + JSONArray jsonarray=new JSONArray(); + String docids= Util.null2String(map.get("docids")); + if(StringUtils.isBlank(docids)){ + return jsonarray; + } + jsonarray= new FileUtil().getdocimagefileinfo(user, Arrays.stream(docids.split(",")).collect(Collectors.toList())); + return jsonarray; + } + + + @Override + public boolean updateStatus(User user, Map map) { + + String formid = Util.null2String(map.get("formid")); + String id = Util.null2String(map.get("id")); + if (StringUtils.isBlank(id) || StringUtils.isBlank(formid)) { + return false; + } + Map setmap = new HashMap<>(1); + setmap.put("yyjgdzt", Util.null2String(Archived.getValue())); + String tablename = dbtools.getFormmodeidToTable(formid); + if (StringUtils.isBlank(tablename)) { + return false; + } + Map wheremap = new HashMap<>(1); + wheremap.put("id", id); + return dbtools.updateSql(tablename, setmap, wheremap); + } + + @Override + public boolean updateContractenType(User user, Map map) { + String gdlx = Util.null2String(map.get("gdlx")); + String gdbz = Util.null2String(map.get("gdbz")); + String formid = Util.null2String(map.get("formid")); + String id = Util.null2String(map.get("id")); + if (StringUtils.isBlank(id) || StringUtils.isBlank(formid) || StringUtils.isBlank(gdlx)) { + return false; + } + Map setmap = new HashMap<>(1); + setmap.put("gdlx", gdlx); + if (!StringUtils.isBlank(gdbz)) { + setmap.put("gdbz", gdbz); + } + String tablename = dbtools.getFormmodeidToTable(formid); + if (StringUtils.isBlank(tablename)) { + return false; + } + Map wheremap = new HashMap<>(1); + wheremap.put("id", id); + return dbtools.updateSql(tablename, setmap, wheremap); + } + + @Override + public String linkMode(User user, Map map) { + String requestid=Util.null2String(map.get("requestid")); + if(StringUtils.isBlank(requestid)){ + return JSON.toJSONString(R.error("参数有误")); + } + List> detail=dbtools.getRequestidToMapList(requestid,null,4); + if(detail==null && detail.size()<=0){ + return JSON.toJSONString(R.error("数据有误")); + } + Map setmap=new HashMap<>(2); + setmap.put("htsplcrequestid",requestid); + setmap.put("zt","2"); + detail.forEach((item)->{ + Map detailmap=(HashMap)item; + String htbh=Util.null2String(detailmap.get("htbh")); + String htbb=Util.null2String(detailmap.get("htbb")); + String htlx=Util.null2String(detailmap.get("htlx")); + if(!StringUtils.isBlank(htbb) && !StringUtils.isBlank(htbh) && !StringUtils.isBlank(htlx)){ + //做删除操作 + ContractModeDao contractModeDao=new ContractModeDao(htlx,htbh,htbb); + if(!StringUtils.isBlank(contractModeDao.modeid)){ + contractModeDao.updateMode(setmap); + } + } + }); + + return JSON.toJSONString(R.ok("已关联!")); + } + + @Override + public String unLinkMode(User user, Map map) { + String requestid=Util.null2String(map.get("requestid")); + if(StringUtils.isBlank(requestid)){ + return JSON.toJSONString(R.error("参数有误")); + } + List> detail=dbtools.getRequestidToMapList(requestid,null,4); + if(detail==null && detail.size()<=0){ + return JSON.toJSONString(R.error("数据有误")); + } + Map setmap=new HashMap<>(2); + setmap.put("htsplcrequestid",""); + setmap.put("zt","0"); + detail.forEach((item)->{ + Map detailmap=(HashMap)item; + String htbh=Util.null2String(detailmap.get("htbh")); + String htbb=Util.null2String(detailmap.get("htbb")); + String htlx=Util.null2String(detailmap.get("htlx")); + if(!StringUtils.isBlank(htbb) && !StringUtils.isBlank(htbh) && !StringUtils.isBlank(htlx)){ + //做删除操作 + ContractModeDao contractModeDao=new ContractModeDao(htlx,htbh,htbb); + if(contractModeDao!=null){ + contractModeDao.updateMode(setmap); + } + } + }); + + return JSON.toJSONString(R.ok("已删除!")); + } + + + + @Override + public String workflowNextJudge(User user, Map map) { + String requestid=Util.null2String(map.get("requestid")); + if(StringUtils.isBlank(requestid)){ + return JSON.toJSONString(R.error("参数有误")); + } + CustomizeLog.printLog("参看参数:"+requestid+"userid:"+user.toString()); + Map retmap= new WorkflowNextJudgeCmd(map,user).execute(null); + if(retmap==null || retmap.isEmpty()){ + return(JSON.toJSONString(R.error("参数有误"))) ; + } + if((boolean)retmap.get("flag")==true){ + return JSON.toJSONString( R.ok("true")); + } + return JSON.toJSONString(R.error(Util.null2String(retmap.get("msg")))); + + } + + @Override + public String guidePages(User user, Map map) { + String htbhs=Util.null2String(map.get("htbhs")); + Map res=new HashMap<>(2); + if(StringUtils.isBlank(htbhs)){ + return JSON.toJSONString(R.error("参数有误")); + } + String condition = Arrays.stream(htbhs.split(",")).distinct().map((item)->"\'"+item+"\'").collect(Collectors.joining(",")); + String validSql = " select wm_concat_old(distinct htlx) htlx from uf_contractlist where htbh in ("+condition+") "; + String htlx= dbtools.getsqlonevalue(validSql,null); + if(StringUtils.isBlank(htlx)){ + return JSON.toJSONString(R.error("查询结果集有误")); + } + Integer count=htlx.split(",").length; + res.put("htlx",htlx); + res.put("count",count); + if(count!=1) { + return JSON.toJSONString( R.ok(res)); + } + //查询合同所有附件 + List fjlist=new ArrayList<>(); + // by wf 添加印章字段、常用印章字段 + List ztlist=new ArrayList<>(); + List yzlist=new ArrayList<>(); + List cyyzlist=new ArrayList<>(); + String configSql = " select a.jmbd maintable,b.jmbd dttable,fjzd from uf_htspckhtqcpzb a, uf_htspckhtqcpzb_dt1 b " + + " where a.id=b.mainid and htfl='"+htlx+"'"; + List configlist=dbtools.getSqlToList(configSql,null); + if(configlist==null &&configlist.size()<=0){ + //查询结果 + return JSON.toJSONString(R.error("配置文件有误")); + } + configlist.forEach((item)->{ + Map configmap=(HashMap)item; + String maintable = Util.null2String(configmap.get("maintable")); + String dttable = Util.null2String(configmap.get("dttable")); + String fjzd = Util.null2String(configmap.get("fjzd")); + String fjSql = " select wm_concat_old("+fjzd+") as "+fjzd+" from "+maintable+" a,"+dttable+" b where a.id=b.mainid and htbh in("+condition+")"; + String filevalue= dbtools.getsqlonevalue(fjSql); + if(!StringUtils.isBlank(filevalue)){ + fjlist.add(Arrays.stream(filevalue.split(",")).distinct().collect(Collectors.joining(","))); + } + String yzSql = " select yz,cyyz,zt from "+maintable+" where htbh in("+condition+")"; + List> signlist= dbtools.getSqlToList(yzSql); + if (signlist!=null &&signlist.size()>0) { + signlist.forEach((signmap)->{ + yzlist.add(Util.null2String(signmap.get("yz"))); + cyyzlist.add(Util.null2String(signmap.get("cyyz"))); + ztlist.add(Util.null2String(signmap.get("zt"))); + + }); + + } + }); + boolean flag= true; + if(!ztlist.isEmpty()){ + flag= ztlist.stream().allMatch(item->(",0,6,").indexOf(","+item+",")>=0); + } + + res.put("flag",flag); + + res.put("htfj",fjlist.stream().distinct().collect(Collectors.joining(","))); + res.put("yz", Arrays.stream(yzlist.stream().collect(Collectors.joining(",")).split(",")).distinct().collect(Collectors.joining(",")) ); + res.put("cyyz",Arrays.stream(cyyzlist.stream().collect(Collectors.joining(",")).split(",")).distinct().collect(Collectors.joining(","))); + return JSON.toJSONString( R.ok(res)); + } + + + @Override + public String todosealname(User user, Map map){ + String htlx=Util.null2String(map.get("htlx")); + String htbh=Util.null2String(map.get("htbh")); + + String tablename= ContractUtil.getContractTableName(htlx); + if(StringUtils.isBlank(tablename)){ + return JSON.toJSONString(R.error("参数有误")); + } + String signcount= ContractDao.getSealCount(tablename,htbh); + if(StringUtils.isBlank(signcount)){ + return JSON.toJSONString(R.error("查询数据有误")); + } + Map esealwhere=new HashMap<>(1); + esealwhere.put("sealno",signcount); + List> list= esealService.getSealNoToName(esealwhere,user); + Map retlist=new HashMap<>(1); + retlist.put("data",list); + return JSON.toJSONString(R.ok(retlist)); + } + + @Override + public CghtMainEntity createCghtqc(CghtMainEntity cghtMainEntity) { + //类型加前缀 + cghtMainEntity.setHtlx(addCategoryPrefix(pb, cghtMainEntity.getHtlx())); + + //生成合同编号 + Uf_ContractNoAggr contractNo = getContractNoObj(cghtMainEntity.getQcbm(),cghtMainEntity.getHtlx()); + final String htbh = genContractNo(contractNo); + logger.info("合同编号:[{}]",htbh); + cghtMainEntity.setHtbh(htbh); + + //插入采购合同起草主表 明细表 + CghtDao.insertCghtqcMain(contractNo,cghtMainEntity); + return cghtMainEntity; + } + + @Override + public ProcessInfoDTO startContractProcess(final User user, ContractProcessDTO contractProcessDTO) { + final List contractList = contractProcessDTO.getContractList(); + if(null==contractList||contractList.isEmpty()){ + logger.error("合同详情为空"); + return null; + } + logger.info("创建合同数:[{}]",contractList.size()); + final Map userInfoMap = ContractDao.getUserByWorkcodeAndDeptCode(contractProcessDTO.getUserCode(), contractProcessDTO.getUserDeptCode()); + + RecordSetTrans rst=new RecordSetTrans(); + rst.setAutoCommit(false); + try { + //拟搞人信息 + //保存合同详情 + List contractCodeList=saveContractDetailList(user, contractProcessDTO, userInfoMap, contractList, rst); + //发起流程 + logger.info("合同数据草稿创建完成,发起流程"); + final int requestId = startProcess(contractProcessDTO, userInfoMap, contractCodeList); + logger.info("合同创建处理结束,流程requestId:[{}]",requestId); + if(requestId<0){ + throw new RuntimeException("发起流程失败"); + } + final ProcessInfoDTO processInfoDTO = new ProcessInfoDTO(); + processInfoDTO.setRequestId(String.valueOf(requestId)); + processInfoDTO.setWorkflowNo(String.join(",", contractCodeList)); + + rst.commit(); + logger.info("流程发起成功,合同数据已commit"); + return processInfoDTO; + } catch (Exception e) { + logger.error("发起流程出错,数据回滚",e); + rst.rollback(); + }finally { + rst.setAutoCommit(true); + } + return null; + } + + private List saveContractDetailList(User user, ContractProcessDTO contractProcessDTO, Map userInfoMap, List contractList, RecordSetTrans rst) throws Exception { + //收集合同编号 + List contractCodeList=new ArrayList<>(); + for (ContractDetailDTO contractDetailDTO : contractList) { + //主表数据 + //插入合同主表数据 + logger.info("创建合同主表数据:[{}]",contractDetailDTO.getContractName()); + final UfOtcdertra contractMain = setContractMainData(contractProcessDTO, userInfoMap, contractDetailDTO, pb); + //生成合同编号 + Uf_ContractNoAggr contractNo = getContractNoObj(Integer.valueOf(userInfoMap.get("DEPARTMENTID")),contractMain.getHtlx()); + final String htbh = genContractNo(contractNo); + logger.info("生成合同编号:[{}]",htbh); + //收集合同编号 + contractCodeList.add(htbh); + contractMain.setHtbh(htbh); + + //保存合同数据 + EntityCrudUtil.transInsert(rst,"uf_otcdertra",contractMain,UfOtcdertra.class); + //查询合同id + final int dataId = ContractDao.getDataIdByUuid(rst,contractMain.getModeuuid()); + contractMain.setId(dataId); + + //关联合同编号记录 + contractNo.setMbid(Util.null2String(dataId)); + //插入合同编号组合 + EntityCrudUtil.transInsert(rst,"uf_contractnoaggr",contractNo,Uf_ContractNoAggr.class); + + + //插入正文文件信息 UF_OTCDERTRA_DT1 + logger.info("创建合同正文数:[{}]",contractDetailDTO.getMainFileList().size()); + final List mainfileids = createAttachFiles(user, rst, contractDetailDTO, contractMain, "uf_otcdertra_dt1"); + //保存合同正文id 到主表 + contractMain.setHtzw(String.join(",",mainfileids)); + + //插入附件文件信息 UF_OTCDERTRA_DT3 附件可以为空 + if(null!=contractDetailDTO.getAttachedFileList()){ + logger.info("创建合同附件数:[{}]",contractDetailDTO.getAttachedFileList().size()); + final List attachFiles = createAttachFiles(user, rst, contractDetailDTO, contractMain, "uf_otcdertra_dt3"); + //保存合同附件id 到主表 + contractMain.setHtfj(String.join(",",attachFiles)); + } + + //更新主表正文和附件字段 + ContractDao.updateUfOtcdertraFiles(rst, contractMain); + logger.info("权限重构:[{}]",dataId); + //权限重构 + modeRight(contractMain); + + } + return contractCodeList; + } + + private void modeRight(UfOtcdertra contractMain) { + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + modeRightInfo.editModeDataShare(contractMain.getQcr(), contractMain.getFormmodeid(), contractMain.getId()); + } + + + + private List createAttachFiles(User user, RecordSetTrans rst, ContractDetailDTO contractDetailDTO, UfOtcdertra contractMain, String tableName) throws Exception { + List fileIds=new ArrayList<>(); + for (ContractFileDTO contractFileDTO : contractDetailDTO.getMainFileList()) { + logger.info("合同文件名称:[{}]",contractFileDTO.getFileName()); + + //插入docdetail + final Docdetail docdetail = insertDocDetail(rst, contractFileDTO); + fileIds.add(String.valueOf(docdetail.getId())); + + //插入imagefile + final ImagefileEntity imagefile = insertImagefile(rst, contractFileDTO); + + //插入docimagefile + insertDocImagefile(user, rst, contractFileDTO, docdetail, imagefile); + + insertUfOtcdertraDt(rst, contractMain, tableName, contractFileDTO, docdetail); + } + return fileIds; + } + + private void insertUfOtcdertraDt(RecordSetTrans rst, UfOtcdertra contractMain, String tableName, ContractFileDTO contractFileDTO, Docdetail docdetail) throws Exception { + final UfOtcdertraDt attachFileEnty = new UfOtcdertraDt(); + attachFileEnty.setMainid(contractMain.getId()); + //wjmc 文件名称 + attachFileEnty.setWjmc(String.valueOf(docdetail.getId())); + //yyfs 用印方式 + attachFileEnty.setYyfs(SealMethodEnum.valueOf(contractFileDTO.getSealMethod()).ordinal()); + //dzyyfs 电子用印方式 + attachFileEnty.setDzyyfs(EsealMethodEnum.valueOf(contractFileDTO.getEsealMethod()).ordinal()); + //dsmdy 单双面打印 + attachFileEnty.setDsmdy(PrintSideEnum.valueOf(contractFileDTO.getPrintBothSide()).ordinal()); + //fwdyfs/wlyyfs "防伪打印份数/ + //物理用印份数" + attachFileEnty.setFwdyfs(Util.null2String(contractFileDTO.getPrintCount())); + attachFileEnty.setWlyyfs(Util.null2String(contractFileDTO.getPrintCount())); + //用印状态默认0 + attachFileEnty.setYyzt(0); + + EntityCrudUtil.transInsert(rst, tableName,attachFileEnty,UfOtcdertraDt.class); + } + + //文档索引不可回滚 + private Docdetail insertDocDetail(RecordSetTrans rst, ContractFileDTO contractFileDTO) throws Exception { + //插入docdetail + final Docdetail docdetail = new Docdetail(); + docdetail.setDocsubject(contractFileDTO.getFileName()); + docdetail.setDocextendname(contractFileDTO.getSuffix()); + docdetail.setDoclangurage(DEFAULT_DOCLANGURAGE); + docdetail.setMaincategory(DEFAULT_MAINCATEGORY); + final PropBean propBean = new PropBean(); + docdetail.setSeccategory(Integer.valueOf(propBean.getPropName("contract.jc.seccategory"))); + docdetail.setSubcategory(DEFAULT_SUBCATEGORY); + int docId = new DocIdUpdate().getDocNewId(); + if (docId<0) { + logger.error("获取 Docdetail id失败"); + throw new RuntimeException("获取 Docdetail id失败"); + } + docdetail.setId(docId); + logger.info("Docdetail id:[{}]",docdetail.getId()); + EntityCrudUtil.transInsert(rst,"docdetail",docdetail,Docdetail.class); + return docdetail; + } + + + + private void insertDocImagefile(User user, RecordSetTrans rst, ContractFileDTO contractFileDTO, Docdetail docdetail, ImagefileEntity imagefile) throws Exception { + Docimagefile docimagefile=new Docimagefile(); + docimagefile.setDocid(docdetail.getId()); + docimagefile.setImagefileid(imagefile.getImagefileid()); + docimagefile.setImagefilename(contractFileDTO.getFileName()); + docimagefile.setIsextfile("1"); + final LocalDateTime now = LocalDateTime.now(); + docimagefile.setOperatedate(now.format(DateTimeFormatter.ISO_LOCAL_DATE)); + docimagefile.setOperatetime(now.format(DateTimeFormatter.ofPattern("HH:mm:ss"))); + docimagefile.setOperateuserid(user.getUID()); + final DocImageManager docImageManager = new DocImageManager(); + int docimageId = docImageManager.getNextDocImageFileId(); + if(docimageId<0){ + throw new RuntimeException("获取 Docimagefile id 失败"); + } + docimagefile.setId(docimageId); + logger.info("Docimagefile id:[{}]",docimagefile.getId()); + + int versionId = new VersionIdUpdate().getVersionNewId(); + docimagefile.setVersionid(versionId); + logger.info("Docimagefile versionid:[{}]",docimagefile.getId()); + EntityCrudUtil.transInsert(rst,"DocImageFile",docimagefile,Docimagefile.class); + } + + private ImagefileEntity insertImagefile(RecordSetTrans rst, ContractFileDTO contractFileDTO) throws Exception { + final ImagefileEntity imagefile = new ImagefileEntity(); + int imagefileId=new ImageFileIdUpdate().getImageFileNewId(); + if(imagefileId<0){ + throw new RuntimeException("获取imagefileId失败"); + } + logger.info("imagefile id:[{}]",imagefileId); + imagefile.setImagefileid(imagefileId); + imagefile.setImagefilename(contractFileDTO.getFileName()); + imagefile.setFileid(contractFileDTO.getFileId()); + imagefile.setImagefiletype("application/octet-stream"); + imagefile.setIszip(IS_NOT_ZIP); + EntityCrudUtil.transInsert(rst,"imagefile",imagefile, ImagefileEntity.class); + return imagefile; + } + + + /** + * 业务类建模默认值: + * @param contractProcessDTO + * @param userInfo + * @param contractDetailDTO + * @param pb + * @return + */ + private UfOtcdertra setContractMainData(ContractProcessDTO contractProcessDTO, Map userInfo, ContractDetailDTO contractDetailDTO, PropBean pb) { + //建模主表 + final UfOtcdertra contractMain = EntityCrudUtil.createModeBaseAttributes("uf_otcdertra", UfOtcdertra.class); + //设置默认值 + //币种(bz)默认=0 人民币 + contractMain.setBz(CurrencyEnum.CNY.ordinal()); + //不含税金额 (bhsje) 默认=0.00 + contractMain.setBhsje(BHSJE_DEFAULT); + //向境外收付款(sfxjwfk)默认=1 + contractMain.setSfxjwfk(SFXJWFK_NO); + //无明确对手方(sfwdsf) 默认=0 + contractMain.setSfwdsf(SFWDSF_DEFAULT); + + contractMain.setModedatacreater(Integer.valueOf(userInfo.get("USERID"))); + //htmc 合同名称 + contractMain.setHtmc(contractDetailDTO.getContractName()); + + //htdsf 合同对手方 + final List counterPartyList = contractDetailDTO.getCounterPartyList(); + final List idCardList = counterPartyList.stream().map(CounterPartyDTO::getCertNo).collect(Collectors.toList()); + final List codeList = ContractDao.selectCounterPartyByCertCode(idCardList); + contractMain.setHtdsf(String.join(",", codeList)); + + //bmdj 保密等级 + contractMain.setBmdj(SecretLevelEnum.NORMAL_BUSINESS_SECRET.ordinal()); + //htlx 合同类型 + if(StringUtils.isBlank(contractProcessDTO.getContractCategoryId())){ + contractMain.setHtlx(pb.getPropName("contract.jc.categoryId")); + }else{ + contractMain.setHtlx(addCategoryPrefix(pb, contractProcessDTO.getContractCategoryId())); + } + //qcbm 起草部门 + contractMain.setQcbm(Integer.valueOf(userInfo.get("DEPARTMENTID"))); + //qcr 起草人 + contractMain.setQcr(Integer.valueOf(userInfo.get("USERID"))); + //qcrq 起草日期 + contractMain.setQcrq(LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE)); + //htjexz 合同金额性质 + contractMain.setHtjexz(AmountTypeEnum.NO_AMOUNT.ordinal()); + //sfsw 是否涉外 + contractMain.setSfsw(ConcerningForeignEnum.NO_CONCERNING_FOREIGN.ordinal()); + //htxz 合同性质 + contractMain.setHtxz(ContractNatureEnum.MAIN_CONTRACT.ordinal()); + //beizhu 备注 + contractMain.setBeizhu(contractDetailDTO.getContractComment()); + //yz 印章 + //查询印章是否存在 + contractMain.setYz(String.join(",", contractDetailDTO.getSeals())); + + //sfsymbfb 是否使用模板范本 + final String textSource = contractDetailDTO.getTextSource(); + if(TextSourceEnum.LOCAL.name().equals(textSource)){ + contractMain.setSfsymbfb(UseTextEnum.NO_TEXT.ordinal()); + }else{ + contractMain.setSfsymbfb(UseTextEnum.USE_TEXT.ordinal()); + } + //wsymbyy 未使用模板原因 + contractMain.setWsymbyy(contractDetailDTO.getUnusedTextReason()); + //dqbb 当前版本 + contractMain.setDqbb(Util.getIntValue(pb.getPropName("contract.currentVersion"),1)); + //zt 合同状态 + contractMain.setZt(ContractStatusEnum.DRAFT.ordinal()); + //autoSealFlag 字段用印 + contractMain.setAutosealflag(contractProcessDTO.getAutoSealFlag()?1:0); + return contractMain; + } + + private String genContractNo(Uf_ContractNoAggr contractNo) { + return contractNo.getQz()+ contractNo.getZzjgjc()+ contractNo.getYear()+ contractNo.getMonth()+ contractNo.getDay()+String.format("%05d", contractNo.getZzbh()); + } + + /** + * 获取合同编号 + * @param deptId + * @param htlx + * @return + */ + private Uf_ContractNoAggr getContractNoObj(int deptId,String htlx) { + final String deptAbbr = ContractDao.getDeptAbbrByDeptId(deptId); + final DateTime now = DateTime.now(); + String year= DateUtil.format(now,"yyyy"); + String month=DateUtil.format(now,"MM"); + String day=DateUtil.format(now,"dd"); + final String prefix = pb.getPropName("contract.prefix"); + final int zzbh = ContractDao.getMaxNum(deptAbbr, year, prefix); + + Uf_ContractNoAggr contractNo=new Uf_ContractNoAggr(); + contractNo.setDay(day); + contractNo.setMonth(month); + contractNo.setYear(year); + contractNo.setZzbh(zzbh); + contractNo.setZzjgjc(deptAbbr); + contractNo.setQz(prefix); + contractNo.setHtlx(htlx); + return contractNo; + } + + + + + /** + * + * + * { + * "requestnam": "流程标题", + * "creatorid": "拟稿人", + * "szbm": "所在部门", + * "szjg": "所在机构", + * "jjcd": "缓急程度", + * "lxfs": "联系方式", + * "ngrq": "拟稿时间", + * "nbsh": "内部审核", + * "bmld": "部门领导", + * "sqjh": "授权简化", + * "qttzyddx": "通知阅读对象", + * "shfs": "审核方式:默认:0", + * "lkrqsfytsyq": "落款日期是否有特殊要求 = 否", + * "xzhtlb": "选择合同列表,DAS创建建模表成功后,存合同编码", + * "yz": "印章" + * } + * @param contractProcessDTO + * @param contractCodeList + * @return + */ + private int startProcess(ContractProcessDTO contractProcessDTO, Map userInfo, List contractCodeList) { + + Set sealSet=new HashSet<>(); + contractProcessDTO.getContractList().forEach(contractDetailDTO -> sealSet.addAll(contractDetailDTO.getSeals())); + AutoApproval autoApproval=new AutoApproval(); + autoApproval.setCreatorid(userInfo.get("USERID")); + autoApproval.setRequestname(contractProcessDTO.getProcessTitle()); + autoApproval.setSzbm(userInfo.get("DEPARTMENTID")); + autoApproval.setSzjg(BaseUtil.getusertoszjg(userInfo.get("USERID"))); + //紧急程度默认0 + autoApproval.setJjcd(String.valueOf(UrgencyEum.NORMAL.ordinal())); + autoApproval.setLxfs(contractProcessDTO.getTelephone()); + autoApproval.setNgrq(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))); + //内部审核 + if(contractProcessDTO.getInternalAuditIds()!=null&&!contractProcessDTO.getInternalAuditIds().isEmpty()){ + autoApproval.setNbsh(ContractDao.getUsersByWorkcodeAndJobCodeList(contractProcessDTO.getInternalAuditIds()).stream().map(user->Util.null2String(user.getUserid())).collect(Collectors.joining(","))); + } + //部门领导 + if(null!=contractProcessDTO.getDeptHeadIds()&&!contractProcessDTO.getDeptHeadIds().isEmpty()){ + autoApproval.setBmld(ContractDao.getUsersByWorkcodeAndJobCodeList(contractProcessDTO.getDeptHeadIds()).stream().map(user->Util.null2String(user.getUserid())).collect(Collectors.joining(","))); + } + + //授权简化 + autoApproval.setSqjh(Util.null2String(AuthoritySimplifyEnum.NO_SIMPLIFY.ordinal())); + //通知阅读 + if(null!=contractProcessDTO.getNoticeReaderIds()&&!contractProcessDTO.getNoticeReaderIds().isEmpty()){ + autoApproval.setQttzyddx(ContractDao.getUsersByWorkcodeAndJobCodeList(contractProcessDTO.getNoticeReaderIds()).stream().map(user->Util.null2String(user.getUserid())).collect(Collectors.joining(","))); + } + //审核方式 默认1 并发 + autoApproval.setShfs(String.valueOf(ApprovalWayEnum.PARALLEL.ordinal())); + //落款日期默认0 + autoApproval.setLkrqsfytsyq(LKRQSFYTSYQ_DEFAULT); + autoApproval.setXzhtlb(String.join(",", contractCodeList)); + if(StringUtils.isBlank(contractProcessDTO.getContractCategoryId())){ + autoApproval.setHtlx(pb.getPropName("contract.jc.categoryId")); + }else{ + autoApproval.setHtlx(addCategoryPrefix(pb, contractProcessDTO.getContractCategoryId())); + } + autoApproval.setYz(String.join(",", sealSet)); + return ServiceUtil.getService(AutoApprovalServiceImpl.class).create(autoApproval); + } + + private String addCategoryPrefix(PropBean pb, String contractCategoryId) { + return pb.getPropName("contract.jc.categoryPrefix") + "_" + contractCategoryId; + } + + + @Override + public Map saveBankInfoToCounterparty(Map paramMap) { + List> data =(List>)paramMap.get("data"); + Map apiData = Maps.newHashMap(); + apiData.put("code","200"); + List errorData = Lists.newArrayList(); + String sql = "select id from uf_dsfgl where dsfbm=? and scbs!=1 and fid is null"; + try { + data.forEach(e -> { + String htdsf = e.get("htdsf") == null?"":e.get("htdsf").toString(); + String yhzh = e.get("yxzh") == null?"":e.get("yxzh").toString(); + String khh = e.get("khx") == null?"":e.get("khx").toString(); + if (!"".equals(htdsf)){ + List> idList = dbtools.getSqlToList(sql,htdsf); + if (idList.size() > 0){ + String mainid = idList.get(0).get("id").toString(); + String ifexistSql = "select count(0) num from uf_dsfgl_dt2 where mainid ="+mainid+" and yxzh="+yhzh; + int num = dbtools.ifExist(ifexistSql); + //当银行账户不存在时不存在时才插入新数据 + if (num == 0){ + Map map = Maps.newHashMap(); + map.put("htdsf",htdsf); + map.put("yxzh",yhzh); + map.put("khx",khh); + map.put("mainid",mainid); + boolean result = dbtools.insert("uf_dsfgl_dt2",map); + if (!result){ + errorData.add(yhzh); + } + } + } + } + }); + }catch (Exception e){ + apiData.put("code","400"); + apiData.put("message",e.getMessage()); + } + if (errorData.size() > 0){ + apiData.put("code","400"); + apiData.put("message","添加失败"); + apiData.put("errorData",errorData); + } + + return apiData; + } +} diff --git a/src/main/java/com/engine/htxc/contract/service/impl/ContractUpdateWfServiceImpl.java b/src/main/java/com/engine/htxc/contract/service/impl/ContractUpdateWfServiceImpl.java new file mode 100644 index 0000000..e48d979 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/impl/ContractUpdateWfServiceImpl.java @@ -0,0 +1,97 @@ +package com.engine.htxc.contract.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.base.BaseUtil; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.contract.service.ContractUpdateWfService; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractUpdateWfServiceImpl.java + * @createTime 2022年08月12日 11:32:00 + */ +public class ContractUpdateWfServiceImpl extends Service implements ContractUpdateWfService { + + private DbTools dbtools=new DbTools(); + private PropBean pb=new PropBean(); + private String wktablename=""; + private String modetablename=""; + @Override + public void updateworkflow(Map map, User user) { + this.modetablename = Util.null2String(map.get("tablename")); + String billid = Util.null2String(map.get("billid")); + String sql="select htbh,yz from "+modetablename+" where id=?"; + Map mapvalue= dbtools.getsqltomap(sql,billid); + if(mapvalue==null || mapvalue.size()<=0){ + return ; + } + String htbh=Util.null2String(mapvalue.get("htbh")); + String yz=Util.null2String(mapvalue.get("yz")); + if(StringUtils.isBlank(htbh)){ + return ; + } + getwktablename(); + List> maplist=getwktableall(htbh); + if(maplist.size()<=0){ + return ; + } + maplist.forEach((item)->{ + String id=Util.null2String(item.get("id")); + String xzhtlb=Util.null2String(item.get("xzhtlb")); + String yzoldvalue=Util.null2String(item.get("yz")); + String yznewvalue=yz; + if(!StringUtils.isBlank(id) && !StringUtils.isBlank(xzhtlb)){ + if(xzhtlb.split(",").length>1){ + yznewvalue=getmodeesealall(modetablename,xzhtlb); + } + if(!BaseUtil.stringcompare(yznewvalue,yzoldvalue)){ + Map setmap=new HashMap<>(); + + setmap.put("yz", Arrays.stream(yznewvalue.split(",")).distinct().collect(Collectors.joining(","))); + + Map wheremap=new HashMap<>(); + wheremap.put("id",id); + dbtools.updateSql(this.wktablename,setmap,wheremap); + }; + } + }); + } + + + private List> getwktableall(String htbh){ + List> listmap=new ArrayList<>(); + if(StringUtils.isBlank(htbh)){ + return listmap; + } + + if(StringUtils.isBlank(this.wktablename)){ + return listmap; + } + String sql="select id,yz,xzhtlb from "+this.wktablename+" where instr(','||xzhtlb||',',',"+htbh+",')>0"; + return dbtools.getSqlToList(sql); + } + + private void getwktablename(){ + String number=pb.getPropName("contract.approval.unnumber"); + this.wktablename=dbtools.getUnnumberToTablename(number); + } + + private String getmodeesealall(String tablename,String htbh){ + if(StringUtils.isBlank(tablename) || StringUtils.isBlank(htbh)){ + return ""; + } + String sql="select wm_concat_old(yz) as yz from "+tablename+" where htbh in ("+ + Arrays.stream(htbh.split(",")).distinct().filter(Objects::nonNull).map((item)->"\'"+item+"'").collect(Collectors.joining(",")) + +")"; + return dbtools.getsqlonevalue(sql); + } + +} diff --git a/src/main/java/com/engine/htxc/contract/service/impl/ContractdoctopdfServiceImpl.java b/src/main/java/com/engine/htxc/contract/service/impl/ContractdoctopdfServiceImpl.java new file mode 100644 index 0000000..dee0766 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/impl/ContractdoctopdfServiceImpl.java @@ -0,0 +1,85 @@ +package com.engine.htxc.contract.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.fileutil.GatewayUtil; +import com.engine.htxc.contract.service.ContractdoctopdfService; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.wps.doccenter.convert.DocTypeConvert; +import weaver.wps.doccenter.utils.Tools; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

节点后将doc转pdf,目前为测试,后期会采用异步的方式

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ContractdoctopdfServiceimpl.java + * @createTime 2022年07月29日 13:50:00 + */ +public class ContractdoctopdfServiceImpl extends Service implements ContractdoctopdfService { + + + private DbTools dbTools=new DbTools(); + + private String inerttablename="uf_htqc_dt5"; + + public String detaillist="1,3"; + + @Override + public void doctopdf(Map map) { + String billid= Util.null2String(map.get("billid")); + if(StringUtils.isBlank(billid)){ + return ; + } + + Arrays.stream(detaillist.split(",")).forEach((item)->{ + List> listmap= gettablemap(billid,item); + if(listmap!=null && listmap.size()>0){ + listmap.forEach((Map retmap)->{ + // String wjmcvalue=Util.null2String(retmap.get("wjmc")); + String imagefilename=Util.null2String(retmap.get("imagefilename")); + String imagefileid=Util.null2String(retmap.get("imagefileid")); + Map pdfmap = new HashMap(5); + String oldimagefilenamepdf = (!Tools.isEmptyOrNull(imagefilename) && imagefilename.contains(".") ? imagefilename.substring(0, imagefilename.lastIndexOf(".")) : imagefilename) + ".pdf"; + pdfmap.put("imagefileid", imagefileid + ""); + pdfmap.put("fromMould","ecology"); + pdfmap.put("fileName", imagefilename); + pdfmap.put("targetFileFormat", "PDF"); + pdfmap.put("targetFilename", oldimagefilenamepdf); + DocTypeConvert convertDocToPdf = new DocTypeConvert(this.user); + int newimagefileid= convertDocToPdf.convertDocType(pdfmap); + if(newimagefileid>0){ + String fileid=GatewayUtil.sendGateway(newimagefileid,oldimagefilenamepdf); + if(!StringUtils.isBlank(fileid)) { + Map wheremap = new HashMap<>(4); + wheremap.put("mainid", billid); + wheremap.put("wgid", fileid); + wheremap.put("imagefileid", imagefileid); + wheremap.put("newimagefileid", Util.null2String(newimagefileid)); + wheremap.put("name",oldimagefilenamepdf); + dbTools.insert(inerttablename, wheremap); + } + } + }); + } + }); + } + + public List gettablemap(String mainid,String detailid){ + if(StringUtils.isBlank(mainid) || StringUtils.isBlank(detailid) ){ + return null; + } + String sql="select wjmc,d.imagefileid ,d.imagefilename ,dt5.imagefileid old_image from uf_htqc_dt"+detailid+" t " + + "left join docimagefile d on t.wjmc=d.docid " + + "left join uf_htqc_dt5 dt5 on d.imagefileid=dt5.imagefileid " + + "where t.mainid='"+mainid+"' and (dt5.imagefileid is null or dt5.imagefileid !=d.imagefileid ) "; + return new DbTools().getSqlToList(sql); + } + + +} diff --git a/src/main/java/com/engine/htxc/contract/service/impl/CounterpartyServiceImpl.java b/src/main/java/com/engine/htxc/contract/service/impl/CounterpartyServiceImpl.java new file mode 100644 index 0000000..23c9cc9 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/impl/CounterpartyServiceImpl.java @@ -0,0 +1,35 @@ +package com.engine.htxc.contract.service.impl; + + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.contract.service.CounterpartyService; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; + +import java.util.List; +import java.util.Map; + +@Slf4j +public class CounterpartyServiceImpl extends Service implements CounterpartyService { + + private DbTools dbTools=new DbTools(); + + @Override + public Map getRoleName(Map map) { + Map apidatas = Maps.newHashMap(); + try { + String userId = map.get("userId") ==null ? "":map.get("userId").toString(); + String sql = "select b.rolesmark,c.lastname,a.roleid,c.id from hrmrolemembers a,hrmroles b,hrmresource c where a.roleid=b.id and a.resourceid=c.id and c.id=?"; + List> dataList = dbTools.getSqlToList(sql,userId); + apidatas.put("code","200"); + apidatas.put("data",dataList); + apidatas.put("userid",userId); + }catch (Exception e){ + log.error("get rolename fail [{}]", e); + apidatas.put("code","400"); + apidatas.put("message",e.getMessage()); + } + return apidatas; + } +} diff --git a/src/main/java/com/engine/htxc/contract/service/impl/ProductCounterpartyServiceImpl.java b/src/main/java/com/engine/htxc/contract/service/impl/ProductCounterpartyServiceImpl.java new file mode 100644 index 0000000..8e9df9a --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/service/impl/ProductCounterpartyServiceImpl.java @@ -0,0 +1,87 @@ +package com.engine.htxc.contract.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.EntityCrudUtil; +import com.engine.htxc.contract.dao.ContractDao; +import com.engine.htxc.contract.dao.ProductDao; +import com.engine.htxc.contract.dto.ProductCounterPartyDTO; +import com.engine.htxc.contract.dto.ProductCounterpartyEnum; +import com.engine.htxc.contract.entity.UfDsfgl; +import com.engine.htxc.contract.entity.UfProduct; +import com.engine.htxc.contract.entity.UfProductCounterParty; +import com.engine.htxc.contract.service.ProductCounterpartyService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2315:35 + * @Description: + * @ModifyLog: + **/ +public class ProductCounterpartyServiceImpl extends Service implements ProductCounterpartyService { + + private static final Logger logger= LoggerFactory.getLogger(ProductCounterpartyServiceImpl.class); + + @Override + public ProductCounterpartyEnum addProductCounterParty(User user, ProductCounterPartyDTO productCounterParty) { + // 插入产品关系 + //根据产品编码查对手方和产品关系表 判断是否和对手方编码一致 + ProductCounterpartyEnum result=ProductCounterpartyEnum.CREATE_SUCCESS; + final UfProductCounterParty ufProductCounterParty = ProductDao.selectUfProductCounterpartyByProductid(productCounterParty.getProductCode()); + if(null!=ufProductCounterParty){ + if(null!=ufProductCounterParty.getSocialcreditcode()&&ufProductCounterParty.getSocialcreditcode().equals(productCounterParty.getCertNo())){ + logger.info("产品已存在和该对手方关系"); + result= ProductCounterpartyEnum.PRODUCT_COUNTERPARTY_EXIST; + }else{ + logger.error("产品已存在和其他对手方关系"); + result= ProductCounterpartyEnum.PRODUCT_OTHER_COUNTERPARTY_EXIST; + } + return result; + } + final String certNo = productCounterParty.getCertNo(); + final List usccList = new ArrayList<>(); + usccList.add(certNo); + final List cpList = ContractDao.selectCounterPartyByCertCode(usccList); + // 不存在对手方 创建对手方 + if(cpList.isEmpty()){ + logger.info("对手方不存在,新建对手方"); + final UfDsfgl ufDsfgl = EntityCrudUtil.createModeBaseAttributes("uf_dsfgl", UfDsfgl.class); + ufDsfgl.setModedatacreater(user.getUID()); + ufDsfgl.setDsfmc(productCounterParty.getCounterPartyName()); + ufDsfgl.setDqbb(1); + EntityCrudUtil.insertEntity("uf_dsfgl",ufDsfgl,UfDsfgl.class); + }else{ + result=ProductCounterpartyEnum.COUNTERPARTY_EXIST; + } + + UfProduct ufProduct = ProductDao.selectProductByProductId(productCounterParty.getProductCode()); + if(null==ufProduct){ + logger.info("产品信息不存在,新建产品"); + final UfProduct ufProduct1 = new UfProduct(); + ufProduct1.setProductid(productCounterParty.getProductCode()); + ufProduct1.setProductname(productCounterParty.getProductName()); + EntityCrudUtil.insertEntity("uf_product",ufProduct1,UfProduct.class); + }else{ + if(ProductCounterpartyEnum.COUNTERPARTY_EXIST==result){ + result=ProductCounterpartyEnum.PRODUCT_COUNTERPARTY_EXIST; + }else{ + result =ProductCounterpartyEnum.PRODUCT_EXIST; + } + } + logger.info("创建产品对手方关系 productid=[{}],socialcreditcode=[{}]",productCounterParty.getProductCode(),productCounterParty.getProductName()); + final UfProductCounterParty ufProductCounterParty1 = new UfProductCounterParty(); + ufProductCounterParty1.setSocialcreditcode(productCounterParty.getCertNo()); + ufProductCounterParty1.setProductid(productCounterParty.getProductCode()); + EntityCrudUtil.insertEntity("uf_prodcontrelation",ufProductCounterParty1,UfProductCounterParty.class); + return result; + + } +} diff --git a/src/main/java/com/engine/htxc/contract/util/ContractUtil.java b/src/main/java/com/engine/htxc/contract/util/ContractUtil.java new file mode 100644 index 0000000..224374e --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/util/ContractUtil.java @@ -0,0 +1,380 @@ +package com.engine.htxc.contract.util; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.definedfield.HrmFieldManager; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ContractUtil { + + private ContractUtil(){ + + } + + /** + * 查询表单字段 + * @param tablename + * @return + */ + public static Map> getTableFieldInfo(String tablename){ + return getTableFieldInfo(tablename,0); + } + + /** + * 获取表单字段信息 + * @param tablename + * @param dtnum + * @return + */ + public static Map> getTableFieldInfo(String tablename,int dtnum){ + Map> infoMap = new HashMap<>(); + RecordSet rs = new RecordSet(); + String fieldsSql = " select b.* from workflow_bill a,workflow_billfield b " + + " where a.id=b.billid and a.tablename=? "; + if(dtnum>0){ + String dtname = tablename+"_dt"+dtnum; + fieldsSql += " and detailtable = '"+dtname+"' "; + }else{ + fieldsSql += " and detailtable is null "; + } + + rs.executeQuery(fieldsSql,tablename); + while(rs.next()){ + String fieldid = Util.null2String(rs.getString("id")); + String fieldname = Util.null2String(rs.getString("fieldname")).toLowerCase(); + String fielddbtype = Util.null2String(rs.getString("fielddbtype")); + String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype")); + String type = Util.null2String(rs.getString("type")); + + Map item = new HashMap<>(); + item.put("fieldid",fieldid); + item.put("fieldname",fieldname); + item.put("fielddbtype",fielddbtype); + item.put("fieldhtmltype",fieldhtmltype); + item.put("type",type); + + infoMap.put(fieldname,item); + + } + return infoMap; + } + + /** + * 合同审批发起节点构建合同查询参数 + * @param htlb + * @return + */ + public static JSONArray getParams(String htlb, String tableName){ + RecordSet rs = new RecordSet(); + JSONArray paramArr = new JSONArray(); + String condition = String.format("'%s'", StringUtils.join(htlb.split(","),"','")); + String sql = " select t.* from " + + "(select row_number() over(partition by htbh order by dqbb desc) rn,c.* " + + " from ( select htbh,dqbb,sjfl,a.htlx from "+tableName+" a,uf_type_of_contract b " + + " where substr(a.htlx,instr(a.htlx,'_')+1) =b.htlxbm " + + " and a.htbh in("+condition+") " + + " ) c " + + ") t where t.rn=1 "; + + rs.execute(sql); + while (rs.next()){ + String htbh = Util.null2String(rs.getString("htbh")); + String version = Util.null2String(rs.getString("dqbb")); + String sjfl = Util.null2String(rs.getString("sjfl")); + String htlx = Util.null2String(rs.getString("htlx")); + + JSONObject paramObj = new JSONObject(); + paramObj.put("htbh",htbh); + paramObj.put("version",version); + paramObj.put("fhtfl",sjfl); + paramObj.put("htlx",htlx); + paramArr.add(paramObj); + } + return paramArr; + } + + /** + * 根据合同类型查询合同主表名 + * @param htlx + * @return + */ + public static String getContractTableName(String htlx){ + return getContractTableName(htlx,-1); + } + + /** + * 根据合同类型查询合同相关名 + * @param htlx 合同类型 + * @param type 表类型 + * @return + */ + public static String getContractTableName(String htlx,int type){ + String tableName = ""; + String configSql = "select jmbd from uf_htspckhtqcpzb where htfl=? "; + if(type>=0){ + configSql = " select b.jmbd from uf_htspckhtqcpzb a,uf_htspckhtqcpzb_dt1 b where a.id=b.mainid and htfl=? and zslb="+type; + } + RecordSet rs = new RecordSet(); + rs.executeQuery(configSql,htlx); + if(rs.next()){ + tableName = Util.null2String(rs.getString("jmbd")) ; + } + return tableName; + } + + + /** + * 获取字段的显示值 + * @param fieldInfo 字段信息 + * @param fieldvalue 字段值 + * @param user + * + * @return + */ + public static String getFieldValue(Map fieldInfo, String fieldvalue, User user){ + String fieldid = fieldInfo.get("fieldid"); + String fiedlddbtype = fieldInfo.get("fielddbtype"); + String fieldhtmltype = fieldInfo.get("fieldhtmltype"); + String detailtype = fieldInfo.get("type"); + String showValue = fieldvalue; + + try{ + if("5".equals(fieldhtmltype)){ + // 查询选择框的所有可以选择的值 + RecordSet rs = new RecordSet(); + rs.executeQuery("select selectvalue,selectname from workflow_SelectItem where cancel=0 and fieldid =? and selectvalue=? ",new Object[]{fieldid,fieldvalue}); + if (rs.next()) { + showValue = Util.null2String(rs.getString("selectname")); + } + }else if("6".equals(fieldhtmltype)){ + //doc类型 + if(fieldvalue.length()>0){ + RecordSet rs = new RecordSet(); + rs.executeQuery("select docid,imagefileid, imagefilename from docimagefile where docid=? order by versionid desc ",fieldvalue); + if (rs.next()) { + String docid = rs.getString("docid"); + String imagefileid = rs.getString("imagefileid"); + String imagefilename = rs.getString("imagefilename"); + showValue = docid+","+imagefileid+","+imagefilename; + } + } + }else if("3".equals(fieldhtmltype) && fieldvalue.length()>0){ + HrmFieldManager hrmFieldManager = new HrmFieldManager(); + showValue = hrmFieldManager.getFieldvalue(user, fiedlddbtype, Util.getIntValue(fieldid), Util.getIntValue(fieldhtmltype), Util.getIntValue(detailtype), fieldvalue, 0); + } + }catch (Exception e){ + new BaseBean().writeLog(e); + } + return showValue; + } + + + /** + * 查询合同基本要素信息 + * @param htbh 合同编号 + * @param htlx 合同类型 + * @param user + * @return + */ + public static Map getContractMainData(String htbh,String htlx,User user){ + Map htitem = new HashMap(); + RecordSet rs = new RecordSet(); + String configSql = " select jmbd,htxxzszd from uf_htspckhtqcpzb where htfl=? "; + rs.executeQuery(configSql,htlx); + if(rs.next()){ + //表单名 + String jmbd = Util.null2String(rs.getString("jmbd")); + //表单字段 + String htxxzszd = Util.null2String(rs.getString("htxxzszd")); + + String baseInfoSql = " select * from (select "+htxxzszd+" from "+jmbd+" where htbh=? order by dqbb desc ) where rownum=1 "; + Map> mainTableFieldInfo = ContractUtil.getTableFieldInfo(jmbd,0); + rs.executeQuery(baseInfoSql,htbh); + if(rs.next()){ + String[] columns = rs.getColumnName(); + for(int i=0;i fieldInfo = mainTableFieldInfo.get(fieldname); + String showname = getFieldValue(fieldInfo,fieldvalue,user); + htitem.put(fieldname+"span",showname); + } + } + } + } + return htitem; + } + + /** + * 获取合同文件数据 + * @param htlx 合同类型 + * @param mainid 主数据id + * @param type 正文或附件 + * @param user 当前用户 + * @return + */ + public static List> getContractFileData(String htlx, int mainid, int type, User user){ + List> dataList = new ArrayList<>(); + RecordSet rs = new RecordSet(); + RecordSet rs2 = new RecordSet(); + String configSql = " select zslbms,b.jmbd,htxxmxzszd from uf_htspckhtqcpzb a,uf_htspckhtqcpzb_dt1 b " + + "where a.id=b.mainid and htfl=? and zslb=? "; + rs.executeQuery(configSql,new Object[]{htlx,type}); + if(rs.next()) { + String jmbd = Util.null2String(rs.getString("jmbd")); + String htxxmxzszd = Util.null2String(rs.getString("htxxmxzszd")); + + String mainTable = jmbd.substring(0,jmbd.lastIndexOf("_")); + int dtnum = Integer.parseInt(jmbd.substring(jmbd.lastIndexOf("dt")+2)); + Map> dtFieldInfo = getTableFieldInfo(mainTable,dtnum); + String dataSql = " select "+htxxmxzszd+" from "+jmbd+" where mainid=? order by yyfs "; + rs2.executeQuery(dataSql,mainid); + String[] columns = rs2.getColumnName(); + while (rs2.next()){ + Map item = new HashMap(); + for (int i = 0; i < columns.length; i++) { + String fieldname = columns[i].toLowerCase(); + String fieldvalue = Util.null2String(rs2.getString(fieldname)); + item.put(fieldname, fieldvalue); + //id字段不处理 + if("id".equals(fieldname)){ + continue; + } + //用印后文件字段可能包含多个文件单独处理 + if("yyhwj".equals(fieldname)){ + if(StringUtils.isNotBlank(fieldvalue)){ + List> esealFileList = getEsealFile(fieldname,fieldvalue,dtFieldInfo,user); + item.put(fieldname+"Obj", esealFileList); + } + continue; + } + addFieldShowName(item,fieldname,fieldvalue,dtFieldInfo,user); + } + dataList.add(item); + } + } + return dataList; + } + + /** + * 添加字段的显示值 + * @param item + * @param fieldname + * @param fieldvalue + * @param tableField + * @param user + * @return + */ + public static Map addFieldShowName(Map item,String fieldname,String fieldvalue,Map> tableField, User user){ + Map fieldInfo = tableField.get(fieldname); + String showname = getFieldValue(fieldInfo, fieldvalue,user); + String fieldhtmltype = fieldInfo.get("fieldhtmltype"); + if ("6".equals(fieldhtmltype) && !"".equals(showname)) { + String[] docInfo = showname.split(","); + if (docInfo.length == 3) { + item.put("docid", docInfo[0]); + item.put("imagefileid", docInfo[1]); + item.put("imagefilename", docInfo[2]); + } + }else if("3".equals(fieldhtmltype) && !"".equals(showname)){ + String[] fieldvalues = Util.splitString(fieldvalue, ","); + String[] fieldshownames = Util.splitString(showname, ","); + List> replaceDatas = new ArrayList>(); + for(int j=0; fieldvalues!=null&&j replaceData = new HashMap(); + replaceData.put("id", fieldvalues[j]); + replaceData.put("name", fieldshownames[j]); + replaceDatas.add(replaceData); + } + item.put(fieldname + "span", showname); + item.put(fieldname + "Obj",replaceDatas); + }else { + item.put(fieldname + "span", showname); + } + return item; + } + + /** + * @description: 获取用印后文件 + * @version: 1.0 + * @author: wanxq + * @date: 2022年08月23 10:36:12 + * @param: [fieldname, fieldvalue, tableField, user] + * @return: java.util.List> + **/ + public static List> getEsealFile(String fieldname, String fieldvalue,Map> tableField,User user){ + List> esealFileList = new ArrayList<>(); + Map fieldInfo = tableField.get(fieldname); + String[] sealFileIds = fieldvalue.split(","); + for(int i=0;i fileMap = new HashMap<>(); + fileMap.put("docid", docInfo[0]); + fileMap.put("imagefileid", docInfo[1]); + fileMap.put("imagefilename", docInfo[2]); + esealFileList.add(fileMap); + } + } + } + return esealFileList; + } + + /** + * 根据合同类型获取默认建模查看页面地址 + * @param htlx 合同类型 + * @return + */ + public static String getViewUrl(String htlx){ + return getViewUrl(htlx,"0"); + } + + /** + * 根据合同类型获取默认建模查看页面地址 + * @param htlx 合同类型 + * @return + */ + public static String getViewUrl(String htlx,String ismobile){ + String viewUrl = ""; + RecordSet rs = new RecordSet(); + String configSql = " select jmckmburl,mobiledydjmckurl from uf_htspckhtqcpzb where htfl=? "; + rs.executeQuery(configSql,htlx); + if(rs.next()){ + viewUrl = Util.null2String(rs.getString("jmckmburl")); + if("1".equals(ismobile)){ + viewUrl = Util.null2String(rs.getString("mobiledydjmckurl")); + } + } + return viewUrl; + } + + public static String getEditUrl(String wfunnumber,String htlx,String nodeunnumber){ + String editUrl = ""; + RecordSet rs = new RecordSet(); + String configSql = " select jmmburl from uf_contapprtemp where lc=? and htlx=? and lcjd=? "; + rs.executeQuery(configSql,new Object[]{wfunnumber,htlx,nodeunnumber}); + if(rs.next()){ + editUrl = Util.null2String(rs.getString("jmmburl")); + } + return editUrl; + } +} diff --git a/src/main/java/com/engine/htxc/contract/util/RecordChangeFieldLog.java b/src/main/java/com/engine/htxc/contract/util/RecordChangeFieldLog.java new file mode 100644 index 0000000..be3092a --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/util/RecordChangeFieldLog.java @@ -0,0 +1,99 @@ +package com.engine.htxc.contract.util; + +import weaver.conn.RecordSet; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class RecordChangeFieldLog { + + /** + * 插入变更日志表 + * @param tableName 变更的表名 + * @param conditionMap 插入变更日志所需参数 + * @param dataMap 变更字段及对应的值 + * @throws Exception + */ + public static void recordChange(String tableName, Map conditionMap, Map dataMap) throws Exception { + String id = conditionMap.get("id");//数据id + String selectParam = ""; + String columnName = ""; + String formId = conditionMap.get("formId");//表单id + String modeId = conditionMap.get("modeId");//模块id + String userId = conditionMap.get("userId");//操作人用户id + String primaryName = conditionMap.get("primaryName");//表的主键名称 + String operateType = conditionMap.get("operateType");//操作类型 1:新建 2:修改 3:删除 4:查看 5:状态变更 + String viewtype = conditionMap.get("viewtype");//0:主表1:从表 + String operateName = ""; + switch (operateType){ + case "1": + operateName="新建"; + break; + case "2": + operateName="修改"; + break; + case "3": + operateName="删除"; + break; + case "5": + operateName="状态变更"; + break; + } + for (Map.Entry entry : dataMap.entrySet()) { + selectParam = selectParam + entry.getKey().toLowerCase() + ","; + columnName = columnName + "'"+entry.getKey().toLowerCase() +"'"+ ","; + } + selectParam=selectParam.substring(0,selectParam.length()-1); + columnName=columnName.substring(0,columnName.length()-1); + RecordSet rs = new RecordSet(); + //查询老数据sql + String oldValueSql = "select "+selectParam + " from "+tableName+" where "+primaryName+" in ("+id+")"; + String[] columns = selectParam.split(","); + Map oldMap = new HashMap<>(); //老数据map + rs.executeQuery(oldValueSql); + if (rs.next()){ + for (String column :columns){ + if ("1".equals(operateType)){//当为新建时 + oldMap.put(column,""); + }else { + oldMap.put(column,rs.getString(column)); + } + } + } + + //查询字段ID方法 + String fieldSql = "select id,fieldname from workflow_billfield where billid="+formId+" and fieldname in ("+columnName+")"; + if (viewtype != null){ + fieldSql = fieldSql + " and viewtype="+viewtype; + } + rs.executeQuery(fieldSql); + Map fieldMap = new HashMap<>(); + while (rs.next()){ + fieldMap.put(rs.getString("fieldname"),rs.getString("id")); + } + //插入Modeviewlog_82507语句 + String uuid = UUID.randomUUID().toString(); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd&HH:mm:ss"); + String[] date = sdf2.format(new Date()).split("&"); + String insertModeviewsql = "insert into Modeviewlog_"+modeId+"(relatedid,relatedname,operatetype,operatedesc,operateuserid,operatedate,operatetime,clientaddress)values(?,?,?,?,?,?,?,?)"; + Object[] params = {id,"-",operateType,operateName,userId,date[0],date[1],uuid}; + boolean bool = rs.executeUpdate(insertModeviewsql,params); + //查询viewlogId + String viewLogIdsql = "select id from Modeviewlog_"+modeId +" where clientaddress='"+uuid+"'"; + String viewLogId = ""; + rs.executeQuery(viewLogIdsql); + if (rs.next()){ + viewLogId = rs.getString("id"); + } + String insertModelog = "insert into modelogfielddetail (viewlogid,fieldid,fieldvalue,prefieldvalue,modeid) values(?,?,?,?,?)"; + for (Map.Entry oldEntry:oldMap.entrySet()){ + if (fieldMap.get(oldEntry.getKey()) != null && !"".equals(fieldMap.get(oldEntry.getKey()))){ + Object[] modelogParams = {viewLogId,fieldMap.get(oldEntry.getKey()),dataMap.get(oldEntry.getKey().toUpperCase()),oldEntry.getValue(),modeId}; + boolean result = rs.executeUpdate(insertModelog,modelogParams); + } + } + } +} diff --git a/src/main/java/com/engine/htxc/contract/util/RecordChangeVersion.java b/src/main/java/com/engine/htxc/contract/util/RecordChangeVersion.java new file mode 100644 index 0000000..b358c82 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/util/RecordChangeVersion.java @@ -0,0 +1,94 @@ +package com.engine.htxc.contract.util; + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class RecordChangeVersion { + private static BaseBean bb = new BaseBean(); + + /** + * 变更快照方法 + * @param billid 数据id + * @param tableName 主表建模表表名 + * @throws Exception + */ + public static void recordChangeVersion(int billid,String tableName)throws Exception{ + String querySql = "select * from "+tableName+" where id="+billid; + Map dataMap = new HashMap<>(); + RecordSet rs = new RecordSet(); + rs.executeQuery(querySql); + if (rs.next()){ + String[] columNames = rs.getColumnName(); + for (String str : columNames){ + dataMap.put(str,rs.getString(str)); + } + } + PropBean pb = new PropBean(); + String counterpartySnapshotmodeid = pb.getPropName("contractCreationSnapshotmodeid"); + dataMap.put("FORMMODEID",counterpartySnapshotmodeid); + dataMap.put("FID",billid); + String uuid = UUID.randomUUID().toString(); + dataMap.put("MODEUUID",uuid); + int dqbb = Integer.valueOf(dataMap.get("DQBB").toString()); + dqbb = dqbb+1; + String names=""; + String values=""; + for (Map.Entry entry :dataMap.entrySet()){ + names = names + entry.getKey() +","; + values = values +"'"+entry.getValue()+"'" +","; + }; + //插入快照版本并修改主记录的当前版本 + names = names.substring(0,names.length()-1); + values = values.substring(0,values.length()-1); + String insertSql = "insert into "+tableName+" ("+names+") values ("+values+")"; + bb.writeLog("插入语句 insertSql:"+insertSql); + rs.executeUpdate("update "+tableName+" set DQBB = ? where id=?", dqbb,billid); + rs.executeUpdate(insertSql); + + //查询快照版本billid + rs.executeQuery("select id from "+tableName+" where modeuuid=?",uuid); + if (rs.next()){ + String id = rs.getString("id"); + //插入明细表1 + insertDetail(tableName+"_dt1",id,billid); + //插入明细表2 + insertDetail(tableName+"_dt2",id,billid); + //插入明细表3 + insertDetail(tableName+"_dt3",id,billid); + } + + } + public static void insertDetail(String tableName,String id,int billid){ + RecordSet rs = new RecordSet(); + //插入明细表 + String detail1Sql = "select * from "+tableName+" where mainid=?"; + //获取主记录明细表数据 + rs.executeQuery(detail1Sql,billid); + while (rs.next()){ + Map detail1Map = new HashMap<>(); + String[] columNames = rs.getColumnName(); + for (String str : columNames){ + detail1Map.put(str,rs.getString(str)); + } + detail1Map.put("MAINID",id); + String names=""; + String values=""; + for (Map.Entry entry :detail1Map.entrySet()){ + names = names + entry.getKey() +","; + values = values +"'"+entry.getValue()+"'" +","; + }; + names = names.substring(0,names.length()-1); + values = values.substring(0,values.length()-1); + //插入快照的明细表 + String insertSql = "insert into "+tableName+" ("+names+") values ("+values+")"; + bb.writeLog("插入明细表"+tableName+":"+insertSql); + rs.executeUpdate(insertSql); + } + + } +} diff --git a/src/main/java/com/engine/htxc/contract/web/ContractAction.java b/src/main/java/com/engine/htxc/contract/web/ContractAction.java new file mode 100644 index 0000000..88bf284 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/web/ContractAction.java @@ -0,0 +1,300 @@ +package com.engine.htxc.contract.web; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.apprchalink.contract.service.ContractLinkService; +import com.engine.htxc.apprchalink.contract.service.impl.ContractLinkServiceImpl; +import com.engine.htxc.common.ParamValidException; +import com.engine.htxc.common.R; +import com.engine.htxc.common.dto.EcologyCommonResponseDTO; +import com.engine.htxc.commonutil.base.RequestJsonUtil; +import com.engine.htxc.contract.dto.*; +import com.engine.htxc.contract.service.ContractService; +import com.engine.htxc.contract.service.impl.ContractServiceImpl; +import com.google.common.collect.Maps; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractAction.java + * @createTime 2022年07月01日 09:56:00 + */ +public class ContractAction { + + private static final Logger logger= LoggerFactory.getLogger(ContractAction.class); + + private ContractService getService() { + return ServiceUtil.getService(ContractServiceImpl.class); + } + + + ContractLinkService contractLinkService= + ServiceUtil.getService(ContractLinkServiceImpl.class); + + + @POST + @Path("/getdocmodeinfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getdocmodeinfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + JSONArray jsonarray= getService().getfileinfo(user, ParamUtil.request2Map(request)); + return JAVATools.Apiretrun("200",jsonarray); + } catch (Exception e) { + e.printStackTrace(); + return JAVATools.Apiretrun("400","error"); + } + } + + @POST + @Path("/getdocimagefileinfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getdocimagefileinfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + JSONArray jsonarray= getService().getdocimagefileinfo(user, ParamUtil.request2Map(request)); + return JAVATools.Apiretrun("200",jsonarray); + } catch (Exception e) { + e.printStackTrace(); + return JAVATools.Apiretrun("400","error"); + } + } + + + + + @POST + @Path("/contractuser") + @Produces({MediaType.TEXT_PLAIN}) + public String contractuser(@Context HttpServletRequest request, @Context HttpServletResponse response){ + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + JSONObject jsonobj = RequestJsonUtil.getRequestJsonObject(request); + if(jsonobj==null || jsonobj.size()<=0){ + retjson.put("status", "400"); + retjson.put("error", "参数有误"); + return retjson.toJSONString(); + } + JSONObject jsonObject = contractLinkService.getnextuser(jsonobj); + if (jsonObject != null) { + retjson.put("status", "200"); + retjson.put("data", jsonObject); + } else { + retjson.put("status", "400"); + retjson.put("error", "参数有误"); + } + return retjson.toJSONString(); + }catch (Exception e){ + retjson.put("status", "400"); + retjson.put("error", "参数有误"); + return retjson.toJSONString(); + } + } + + + @POST + @Path("/updatestatus") + @Produces({MediaType.TEXT_PLAIN}) + public String updatestatus(@Context HttpServletRequest request, @Context HttpServletResponse response){ + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + boolean flag= getService().updateStatus(user,ParamUtil.request2Map(request)); + return JSONObject.toJSONString(R.ok(Util.null2String(flag))); + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + + /** + *

分送节点下一步骤判断

+ * @title workflowNextJudge + * @author K1810015 + * @updateTime 2022/8/26 17:42 + */ + @POST + @Path("/workflowNextJudge") + @Produces({MediaType.TEXT_PLAIN}) + public String workflowNextJudge(@Context HttpServletRequest request, @Context HttpServletResponse response){ + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + return getService().workflowNextJudge(user,ParamUtil.request2Map(request)); + + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + + + @POST + @Path("/updateContractenType") + @Produces({MediaType.TEXT_PLAIN}) + public String updateContractenType(@Context HttpServletRequest request, @Context HttpServletResponse response){ + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + boolean flag= getService().updateContractenType(user,ParamUtil.request2Map(request)); + return JSONObject.toJSONString(R.ok(Util.null2String(flag))); + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + + + @POST + @Path("/startContractProcess") + @Produces({MediaType.TEXT_PLAIN}) + public String startContractProcess(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + + final String contractDataJson = Util.null2String(request.getParameter("contractData")); + logger.info("传入合同流程数据:[{}]",contractDataJson); + final ContractProcessDTO contractProcessDTO = JSON.parseObject(contractDataJson, ContractProcessDTO.class); + new ContractProcessValidator(contractProcessDTO).validate(); + + final ProcessInfoDTO processInfoDTO = getService().startContractProcess(user, contractProcessDTO); + logger.info("返回数据:[{}]",processInfoDTO); + + if(processInfoDTO==null){ + return EcologyCommonResponseDTO.failJson("流程发起失败"); + } + return EcologyCommonResponseDTO.successJson(processInfoDTO); + }catch (ParamValidException | IllegalArgumentException e){ + logger.error("参数校验失败",e); + return EcologyCommonResponseDTO.failJson("参数校验失败:"+e.getMessage()); + }catch (Exception e){ + logger.error("发起合同流程失败",e); + } + return EcologyCommonResponseDTO.failJson("流程发起失败"); + } + + + + /** + * 保存合同起草的开户行等信息到对手方明细表中 + * @param request + * @param response + * @return + */ + @POST + @Path("/saveBankInfoToCounterparty") + @Produces({MediaType.TEXT_PLAIN}) + public String saveBankInfoToCounterparty(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + Map paramMap = ParamUtil.request2Map(request); + String dataString = paramMap.get("data")==null?"":paramMap.get("data").toString(); + List dataList = JSON.parseArray(dataString,Map.class); + Map data = Maps.newHashMap(); + data.put("data",dataList); + return JSON.toJSONString(getService().saveBankInfoToCounterparty(data)); + }catch (Exception e){ + logger.error("保存异常",e); + } + return JAVATools.Apiretrun("-1", "保存合同起草的开户行等信息到对手方明细表中失败"); + } + + + /** + *

合同审批流程保存之后关联建模

+ * @title linkMode + * @author K1810015 + * @updateTime 2022/8/31 19:54 + */ + @POST + @Path("/linkmode") + @Produces({MediaType.TEXT_PLAIN}) + public String linkmode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + return getService().linkMode(user,ParamUtil.request2Map(request)); + + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + + /** + *

删除流程关联建模

+ * @title linkMode + * @author K1810015 + * @updateTime 2022/8/31 19:54 + */ + @POST + @Path("/unlinkmode") + @Produces({MediaType.TEXT_PLAIN}) + public String unlinkmode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + return getService().unLinkMode(user,ParamUtil.request2Map(request)); + + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + /** + *

引导页面

+ * @title guidePages + * @author K1810015 + * @updateTime 2022/9/1 15:28 + */ + @POST + @Path("/guidePages") + @Produces({MediaType.TEXT_PLAIN}) + public String guidePages(@Context HttpServletRequest request, @Context HttpServletResponse response) { + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + return getService().guidePages(user,ParamUtil.request2Map(request)); + + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + + /** + *

引导页面

+ * @title guidePages + * @author K1810015 + * @updateTime 2022/9/1 15:28 + */ + @POST + @Path("/todosealname") + @Produces({MediaType.TEXT_PLAIN}) + public String todosealname(@Context HttpServletRequest request, @Context HttpServletResponse response) { + JSONObject retjson = new JSONObject(); + try { + User user = HrmUserVarify.getUser(request, response); + return getService().todosealname(user,ParamUtil.request2Map(request)); + + }catch (Exception e){ + return JSONObject.toJSONString(R.error("msg")); + } + } + +} diff --git a/src/main/java/com/engine/htxc/contract/web/ContractApprovalAction.java b/src/main/java/com/engine/htxc/contract/web/ContractApprovalAction.java new file mode 100644 index 0000000..80a92a9 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/web/ContractApprovalAction.java @@ -0,0 +1,373 @@ +package com.engine.htxc.contract.web; + +import com.alibaba.fastjson.JSON; +import com.engine.htsc.workflow.util.WorkflowUtil; +import com.engine.htxc.common.R; +import com.engine.htxc.contract.util.ContractUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author : wanxq + * @Date : 2022年05月27日09:43:26 + * @Version : 1.0 + * @Description : 合同审批流程相关接口 + **/ +public class ContractApprovalAction { + + private static final Logger LOG = LoggerFactory.getLogger(ContractApprovalAction.class); + + /** + * @description: 更新合同状态 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月12 17:08:44 + * @param: [request, response] + * @return: java.lang.String + **/ + @POST + @Path("/contractstatus/update") + @Produces({MediaType.TEXT_PLAIN}) + public String updateContractStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { + String contractids = Util.null2String(request.getParameter("contractids")); + String zt = Util.null2String(request.getParameter("zt")); + + try { + String updateSql = " update uf_htqc set zt="+zt+" where id in("+contractids+") "; + RecordSet rs = new RecordSet(); + boolean result = rs.execute(updateSql); + if(result){ + return JSON.toJSONString(R.ok()); + }else { + return JSON.toJSONString(R.error("合同状态更新失败")); + } + } catch (Exception e) { + LOG.error("更新合同状态出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description: 更新合同附件 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月26 13:24:12 + * @param: [request, response] + * @return: java.lang.String + **/ + @POST + @Path("/updateWfContractFile") + @Produces({MediaType.TEXT_PLAIN}) + public String updateWfContractFile(@Context HttpServletRequest request, @Context HttpServletResponse response) { + String fileids = Util.null2String(request.getParameter("fileids")); + String requestid = Util.null2String(request.getParameter("requestid")); + + try { + RecordSet rs = new RecordSet(); + String tableName = WorkflowUtil.getTableName(requestid); + String updateSql = " update "+tableName+" set htfj=? where requestid=? "; + boolean result = rs.executeUpdate(updateSql,new Object[]{fileids,requestid}); + if(result){ + return JSON.toJSONString(R.ok()); + }else { + return JSON.toJSONString(R.error("更新合同附件失败")); + } + + } catch (Exception e) { + LOG.error("更新合同附件出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description:查询合同编辑地址 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月27 13:51:33 + * @param: [request, response] + * @return: java.lang.String + **/ + @GET + @Path("/contract/getEditUrl") + @Produces({MediaType.TEXT_PLAIN}) + public String getEditUrl(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + int requestid = Util.getIntValue(request.getParameter("requestid")); + int nodeid = Util.getIntValue(request.getParameter("nodeid")); + int wfuserid = Util.getIntValue(request.getParameter("f_weaver_belongto_userid")); + String wfunnumber = Util.null2String(request.getParameter("wfunnumber")); + String nodeunnumber = Util.null2String(request.getParameter("nodeunnumber")); + String htlx = Util.null2String(request.getParameter("htlx")); + + RecordSet rs = new RecordSet(); + Map data = new HashMap<>(); + data.put("hasRight", false); + data.put("isEdit", false); + + //判断是否是流程当前节点参与人 + String url = ""; + String sql = " select 1 from workflow_currentoperator where requestid=? and nodeid=? and userid=? "; + + try { + rs.executeQuery(sql,new Object[]{requestid,nodeid,wfuserid}); + if(rs.next() || requestid<0){ + url = ContractUtil.getEditUrl(wfunnumber,htlx,nodeunnumber); + data.put("hasRight", true); + data.put("isEdit", true); + } + + //如果无权限编辑或者未找到配置的编辑地址,默认查看地址 + if("".equals(url)){ + url = ContractUtil.getViewUrl(htlx); + } + data.put("url",url); + apidatas.put("data", data); + return JSON.toJSONString(R.ok(apidatas)); + } catch (Exception e) { + LOG.error("获取合同编辑地址出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description: 查询合同查看地址 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月27 15:42:06 + * @param: [request, response] + * @return: java.lang.String + **/ + @GET + @Path("/contract/getViewUrl") + @Produces({MediaType.TEXT_PLAIN}) + public String getViewUrl(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + String htlx = Util.null2String(request.getParameter("htlx")); + String ismobile = Util.null2String(request.getParameter("ismobile"),"0"); + try { + String viewUrl = ContractUtil.getViewUrl(htlx,ismobile); + apidatas.put("url", viewUrl); + return JSON.toJSONString(R.ok(apidatas)); + } catch (Exception e) { + LOG.error("获取合同合查看地址出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description: 更新用印方式 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月28 10:11:48 + * @param: [request, response] + * @return: java.lang.String + **/ + @POST + @Path("/contract/updateSealSetting") + @Produces({MediaType.TEXT_PLAIN}) + public String updateSealSetting(@Context HttpServletRequest request, @Context HttpServletResponse response) { + + User user = HrmUserVarify.getUser(request, response); + Map apidatas = new HashMap<>(); + int dataid = Util.getIntValue(request.getParameter("dataid")); + int mainid = Util.getIntValue(request.getParameter("mainid")); + String htlx = Util.null2String(request.getParameter("htlx")); + int type = Util.getIntValue(request.getParameter("type")); + String yyfs = Util.null2String(request.getParameter("yyfs")); + String dzyyfs = Util.null2String(request.getParameter("dzyyfs")); + String dsmdy = Util.null2String(request.getParameter("dsmdy")); + String yqxdyr = Util.null2String(request.getParameter("yqxdyr")); + String fwdyfs = Util.null2String(request.getParameter("fwdyfs")); + String wlyyfs = Util.null2String(request.getParameter("wlyyfs")); + String yyfswb = Util.null2String(request.getParameter("yyfswb")); + String yyqksm = Util.null2String(request.getParameter("yyqksm")); + try { + RecordSet rs = new RecordSet(); + String jmbd = ContractUtil.getContractTableName(htlx,type); + String updateSql = " update "+jmbd+" set yyfs=?,dzyyfs=?"+ + ",dsmdy=?,yqxdyr=?,fwdyfs=?,wlyyfs=?,yyfswb=?,yyqksm=? where id=? "; + boolean result = rs.executeUpdate(updateSql,new Object[]{yyfs,dzyyfs,dsmdy,yqxdyr,fwdyfs,wlyyfs,yyfswb,yyqksm,dataid}); + if(result){ + List> docData = ContractUtil.getContractFileData(htlx,mainid,type,user); + apidatas.put("docData", docData); + return JSON.toJSONString(R.ok(apidatas)); + }else { + return JSON.toJSONString(R.error("更新用印方式失败")); + } + } catch (Exception e) { + LOG.error("更新用印方式出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description: 更新确认物理用印状态 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月28 09:34:15 + * @param: [request, response] + * @return: java.lang.String + **/ + @POST + @Path("/contract/updateQrwlyyStatus") + @Produces({MediaType.TEXT_PLAIN}) + public String updateQrwlyyStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { + int dataid = Util.getIntValue(request.getParameter("dataid")); + String htlx = Util.null2String(request.getParameter("htlx")); + int type = Util.getIntValue(request.getParameter("type")); + String qrwlyy = Util.null2String(request.getParameter("qrwlyy")); + + try { + RecordSet rs = new RecordSet(); + String jmbd = ContractUtil.getContractTableName(htlx,type); + String updateSql = " update "+jmbd+" set qrwlyy=? where id=? "; + boolean result = rs.executeUpdate(updateSql,new Object[]{qrwlyy,dataid}); + if(result){ + return JSON.toJSONString(R.ok()); + }else { + return JSON.toJSONString(R.error("更新确认物理用印状态失败")); + } + } catch (Exception e) { + LOG.error("更新确认物理用印状态出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description: 批量刷新用印方式 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月28 16:17:44 + * @param: [request, response] + * @return: java.lang.String + **/ + @POST + @Path("/contract/batchBrushSealWay") + @Produces({MediaType.TEXT_PLAIN}) + public String batchBrushSealWay(@Context HttpServletRequest request, @Context HttpServletResponse response) { + + User user = HrmUserVarify.getUser(request, response); + Map apidatas = new HashMap<>(); + int dataid = Util.getIntValue(request.getParameter("dataid")); + int mainid = Util.getIntValue(request.getParameter("mainid")); + String htlx = Util.null2String(request.getParameter("htlx")); + int type = Util.getIntValue(request.getParameter("type")); + String needBrushDataIds = Util.null2String(request.getParameter("needBrushDataIds")); + + try { + RecordSet rs = new RecordSet(); + String jmbd = ContractUtil.getContractTableName(htlx,type); + String updateSql = " update "+jmbd+" a set (a.yyfs, a.dzyyfs,a.dsmdy,a.yqxdyr,a.fwdyfs,a.wlyyfs,a.yyfswb) = " + + " (select b.yyfs, b.dzyyfs,b.dsmdy,b.yqxdyr,b.fwdyfs,b.wlyyfs,b.yyfswb from "+jmbd+" b where b.id=?) where a.id in("+needBrushDataIds+") "; + boolean result = rs.executeUpdate(updateSql,new Object[]{dataid}); + if(result){ + List> files = ContractUtil.getContractFileData(htlx,mainid,type,user); + apidatas.put("files", files); + return JSON.toJSONString(R.ok(apidatas)); + }else { + return JSON.toJSONString(R.error("批量刷新用印方式失败")); + } + } catch (Exception e) { + LOG.error("批量刷新用印方式出错:",e); + return JSON.toJSONString(R.error()); + + } + } + + + /** + * @description: 查询合同相关附件 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月18 15:13:13 + * @param: [request, response] + * @return: java.lang.String + **/ + @GET + @Path("/contract/file") + @Produces({MediaType.TEXT_PLAIN}) + public String getContractFileData(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map apidatas = new HashMap<>(); + int mainid = Util.getIntValue(request.getParameter("mainid")); + String htlx = Util.null2String(request.getParameter("htlx")); + int type = Util.getIntValue(request.getParameter("type")); + try { + List> files = ContractUtil.getContractFileData(htlx,mainid,type,user); + apidatas.put("files", files); + return JSON.toJSONString(R.ok(apidatas)); + } catch (Exception e) { + LOG.error("查询合同附件出错:",e); + return JSON.toJSONString(R.error()); + } + } + + /** + * @description: 查询合同信息 + * @version: 1.0 + * @author: wanxq + * @date: 2022年07月18 10:20:42 + * @param: [request, response] + * @return: java.lang.String + **/ + @GET + @Path("/contractinfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getContractInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + + User user = HrmUserVarify.getUser(request, response); + Map apidatas = new HashMap<>(); + + String htlb = Util.null2String(request.getParameter("htlb")); + String htlx = Util.null2String(request.getParameter("htlx")); + String[] htbhs = htlb.split(","); + + List> dataList = new ArrayList<>(); + try { + for(int i=0;i contractData = ContractUtil.getContractMainData(htbh,htlx,user); + if(contractData.size()>0){ + int mainid = Integer.parseInt((String) contractData.get("id")); + + List> docData = ContractUtil.getContractFileData(htlx,mainid,0,user); + contractData.put("docInfo",docData); + + List> attatchData = ContractUtil.getContractFileData(htlx,mainid,1,user); + contractData.put("attachInfo",attatchData); + + dataList.add(contractData); + } + } + apidatas.put("dataList",dataList); + return JSON.toJSONString(R.ok(apidatas)); + + } catch (Exception e) { + LOG.error("查询合同信息出错:",e); + return JSON.toJSONString(R.error()); + } + } + + + + + +} diff --git a/src/main/java/com/engine/htxc/contract/web/ContractListAction.java b/src/main/java/com/engine/htxc/contract/web/ContractListAction.java new file mode 100644 index 0000000..74ff14a --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/web/ContractListAction.java @@ -0,0 +1,55 @@ +package com.engine.htxc.contract.web; + +import com.alibaba.fastjson.JSON; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.contract.dto.ContractProcessDTO; +import com.engine.htxc.contract.dto.ProcessInfoDTO; +import com.engine.htxc.contract.service.ContractListService; +import com.engine.htxc.contract.service.impl.ContractListServiceImpl; +import com.engine.htxc.contract.service.impl.ContractServiceImpl; +import com.google.common.collect.Maps; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810036 + * @version: 1.0 + * @CreateDate: 2022/8/26 + * @Description: 合同列表action + * @ModifyLog: + **/ +public class ContractListAction { + private static final Logger logger= LoggerFactory.getLogger(ContractListAction.class); + private ContractListService contractListService = ServiceUtil.getService(ContractListServiceImpl.class); + + @POST + @Path("/deleteListData") + @Produces({MediaType.TEXT_PLAIN}) + public String deleteListData(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apiData = Maps.newHashMap(); + try { + Map paramMap = ParamUtil.request2Map(request); + return JSON.toJSONString(contractListService.deleteData(paramMap)); + }catch (Exception e){ + logger.error("删除异常",e); + } + return JAVATools.Apiretrun("-1", "删除数据失败"); + } +} diff --git a/src/main/java/com/engine/htxc/contract/web/ContractProcessValidator.java b/src/main/java/com/engine/htxc/contract/web/ContractProcessValidator.java new file mode 100644 index 0000000..c59d1a2 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/web/ContractProcessValidator.java @@ -0,0 +1,236 @@ +package com.engine.htxc.contract.web; + +import com.engine.htxc.common.ParamValidException; +import com.engine.htxc.contract.dao.ContractDao; +import com.engine.htxc.contract.dto.*; +import com.engine.htxc.contract.entity.UserEntity; +import com.engine.integration.util.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.List; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/9/29:59 + * @Description: 合同流程数据校验 + * @ModifyLog: + **/ +public class ContractProcessValidator { + + private static final Logger logger= LoggerFactory.getLogger(ContractProcessValidator.class); + /** + * 最大文件数 + */ + public static final int MAX_FILE_COUNT = 100; + + private ContractProcessDTO contractProcessDTO; + + public ContractProcessValidator(ContractProcessDTO contractProcessDTO){ + this.contractProcessDTO=contractProcessDTO; + } + + public void validate() throws ParamValidException { + logger.info("调用系统:[{}]",contractProcessDTO.getSysCode()); + //校验 ContractProcessDTO + if (StringUtils.isBlank(contractProcessDTO.getSysCode())) { + throw new ParamValidException("sysCode参数不能为空"); + } + //流程标题 + if(StringUtils.isBlank(contractProcessDTO.getProcessTitle())){ + throw new ParamValidException("流程标题不能为空"); + } + //合同详情列表 + if(null==contractProcessDTO.getContractList()||contractProcessDTO.getContractList().isEmpty()){ + throw new ParamValidException("合同列表不能为空"); + } + //必填,true:自动用印,false:非自动用印。 + //自动用印为true,必须传模板id(遍历合同列表判断,只要有一个不包含模板id,抛异常) + validateAutoSeal(); + + //拟稿人工号 + if (StringUtils.isBlank(contractProcessDTO.getUserCode())) { + throw new ParamValidException("拟稿人工号为空"); + } + + //拟稿人部门 + if(StringUtils.isBlank(contractProcessDTO.getUserDeptCode())){ + throw new ParamValidException("拟稿人部门为空"); + } + + final Map user = ContractDao.getUserByWorkcodeAndDeptCode(contractProcessDTO.getUserCode(), contractProcessDTO.getUserDeptCode()); + if(user.isEmpty()||StringUtils.isBlank(user.get("USERID"))){ + throw new ParamValidException("拟搞人不存在"); + } + + //校验合同类型 + if(StringUtils.isBlank(contractProcessDTO.getContractCategoryId())){ + throw new ParamValidException("合同类型不能为空"); + } + final PropBean propBean = new PropBean(); + if(!ContractDao.checkCategory(propBean.getPropName("contract.jc.categoryPrefix")+"_"+contractProcessDTO.getContractCategoryId())){ + throw new ParamValidException("合同类型不存在"); + } + + //校验审批人员 + validateProcessApprovers(); + + //校验 合同详情 ContractDetailDTO + validateContractDetail(); + } + + private void validateProcessApprovers() { + //通知阅读人员 默认主岗 + final List noticeReaderIds = contractProcessDTO.getNoticeReaderIds(); + if(null!= noticeReaderIds &&!noticeReaderIds.isEmpty()){ + final List noticeReaders = ContractDao.getUsersByWorkcodeAndJobCodeList(noticeReaderIds); + if(noticeReaders.size()!= noticeReaderIds.size()){ + throw new ParamValidException("通知阅读人员有误"); + } + } + + //内部审核人员 + final List internalAuditIds = contractProcessDTO.getInternalAuditIds(); + if(null!= internalAuditIds &&!internalAuditIds.isEmpty()){ + final List internalUsers = ContractDao.getUsersByWorkcodeAndJobCodeList(internalAuditIds); + if(internalUsers.size()!= internalAuditIds.size()){ + throw new ParamValidException("内部审核人员有误"); + } + } + + //部门领导 + final List deptHeadIds = contractProcessDTO.getDeptHeadIds(); + if(null!= deptHeadIds &&!deptHeadIds.isEmpty()){ + final List headers = ContractDao.getUsersByWorkcodeAndJobCodeList(deptHeadIds); + if(headers.size()!= deptHeadIds.size()){ + throw new ParamValidException("部门领导人员有误"); + } + } + } + + private void validateAutoSeal() { + if(contractProcessDTO.getAutoSealFlag()){ + for (ContractDetailDTO contractDetailDTO : contractProcessDTO.getContractList()) { + final String templateNo = contractDetailDTO.getTemplateNo(); + if(StringUtils.isBlank(templateNo)){ + throw new ParamValidException("合同名称:"+contractDetailDTO.getContractName()+" 自动用印,模板编号不能为空"); + } + if(!ContractDao.checkTemplateNo(templateNo)){ + throw new ParamValidException("合同名称:"+contractDetailDTO.getContractName()+" 模板编号查不到对应模板id"); + } + } + } + } + + + private void validateContractDetail() { + //是否普通合同或在线合同校验 + final ModuleCodeEnum moduleCodeEnum = ModuleCodeEnum.valueOf(contractProcessDTO.getModuleCode()); + for (ContractDetailDTO contractDetailDTO : contractProcessDTO.getContractList()) { + //contractName + if(StringUtils.isBlank(contractDetailDTO.getContractName())){ + throw new ParamValidException("合同名称不能为空"); + } + //校验对手方 + validateCounterparty(contractDetailDTO.getCounterPartyList()); + //产品编码 + validateProductCode(moduleCodeEnum, contractDetailDTO.getProductCodeList()); + //合同正文校验 + if(null==contractDetailDTO.getMainFileList()||contractDetailDTO.getMainFileList().isEmpty()){ + throw new ParamValidException("合同正文不能为空"); + } + validateContractMainFile(contractDetailDTO.getMainFileList()); + + //合同附件校验 合同附件可以为空 + if(null!=contractDetailDTO.getAttachedFileList()){ + validateContractMainFile(contractDetailDTO.getAttachedFileList()); + } + //合同印章校验 + validateContractSeals(contractDetailDTO.getSeals()); + //合同起草人工号 暂时复制流程拟稿人 + //合同起草人部门 暂时复制流程拟稿人 + //合同备注 + //文本来源 + TextSourceEnum.valueOf(contractDetailDTO.getTextSource()); + //未使用范本原因 + if(TextSourceEnum.LOCAL.name().equals(contractDetailDTO.getTextSource())&&StringUtils.isBlank(contractDetailDTO.getTextSource())){ + throw new ParamValidException("本地上传,未使用范本原因不能为空"); + } + } + } + + private void validateProductCode(ModuleCodeEnum moduleCodeEnum,final List productCodeList) { + if(moduleCodeEnum ==ModuleCodeEnum.ONLINE){ + if(null== productCodeList || productCodeList.isEmpty()){ + throw new ParamValidException("产品编码不能为空"); + } + final List dsfbmList = ContractDao.selectCounterPartyByCertCode(productCodeList); + if(dsfbmList.isEmpty()){ + throw new ParamValidException("产品无关联对手方信息"); + } + //查出关联关系个数少于产品个数 + if(dsfbmList.size()< productCodeList.size()){ + throw new ParamValidException("部分产品无关联对手方"); + } + final String flag = dsfbmList.get(0); + if (StringUtils.isBlank(flag)) { + throw new ParamValidException("产品关联对手方错误"); + } + //校验对手方是否同一个 + for (String dsfbm : dsfbmList) { + if(!flag.equals(dsfbm)){ + throw new ParamValidException("关联对手方编码不唯一"); + } + } + + } + } + + private void validateContractSeals(List seals) { + if(null!= seals&&!seals.isEmpty()){ + final List contractSeal = ContractDao.findContractSeal(seals); + if(contractSeal.size()!= seals.size()){ + throw new ParamValidException("印章校验失败"); + } + } + } + + private void validateContractMainFile(List mainFileList) { + + //单个合同文件数量限制 HTO-14585 + if(mainFileList.size()> MAX_FILE_COUNT){ + throw new ParamValidException("合同文件超过最大文件数"+MAX_FILE_COUNT); + } + + for (ContractFileDTO contractFileDTO : mainFileList) { + //文件名称 + if(StringUtils.isBlank(contractFileDTO.getFileName())){ + throw new ParamValidException("文件名称不能为空"); + } + //存储网关文件id + if(StringUtils.isBlank(contractFileDTO.getFileId())){ + throw new ParamValidException("文件id不能为空"); + } + //文件后缀 + if(StringUtils.isBlank(contractFileDTO.getSuffix())){ + throw new ParamValidException("文件后缀不能为空"); + } + } + + } + + private void validateCounterparty(List counterPartyList) { + //证件类型 + //证件号 + final List counterparty = ContractDao.findCounterparty(counterPartyList); + if(counterparty.size()!=counterPartyList.size()){ + throw new ParamValidException("校验对手方失败"); + } + } + +} diff --git a/src/main/java/com/engine/htxc/contract/web/CounterpartyAction.java b/src/main/java/com/engine/htxc/contract/web/CounterpartyAction.java new file mode 100644 index 0000000..ba260b8 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/web/CounterpartyAction.java @@ -0,0 +1,59 @@ +package com.engine.htxc.contract.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.contract.service.CounterpartyService; +import com.engine.htxc.contract.service.impl.CounterpartyServiceImpl; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.general.BaseBean; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +/** + * @author K1810036 + * @version 1.0.0 + * @ClassName CounterpartyAction.java + * @createTime 2022年09月05日 09:56:00 + */ +@Slf4j +public class CounterpartyAction { + private static final Logger logger= LoggerFactory.getLogger(CounterpartyAction.class); + + private CounterpartyService getService() { + return ServiceUtil.getService(CounterpartyServiceImpl.class); + } + + + @POST + @Path("/getRoleName") + @Produces({MediaType.TEXT_PLAIN}) + public String getRoleName(@Context HttpServletRequest request, @Context HttpServletResponse response) { + HashMap apidatas = new HashMap<>(); + BaseBean bb = new BaseBean(); + try { + User user = HrmUserVarify.getUser(request, response); + int userId = user.getUID(); + Map paramMap = Maps.newHashMap(); + paramMap.put("userId",userId); + + return JSONObject.toJSONString(getService().getRoleName(paramMap)); + } catch (Exception e) { + log.error("get rolename fail [{}]", e); + return JAVATools.Apiretrun("400","error"); + } + } +} diff --git a/src/main/java/com/engine/htxc/contract/web/ProductCounterpartyAction.java b/src/main/java/com/engine/htxc/contract/web/ProductCounterpartyAction.java new file mode 100644 index 0000000..8852159 --- /dev/null +++ b/src/main/java/com/engine/htxc/contract/web/ProductCounterpartyAction.java @@ -0,0 +1,59 @@ +package com.engine.htxc.contract.web; + +import com.alibaba.fastjson.JSON; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.common.dto.EcologyCommonResponseDTO; +import com.engine.htxc.contract.dto.ProductCounterPartyDTO; +import com.engine.htxc.contract.dto.ProductCounterpartyEnum; +import com.engine.htxc.contract.service.ProductCounterpartyService; +import com.engine.htxc.contract.service.impl.ProductCounterpartyServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/2315:19 + * @Description: 添加产品对手方关系action + * @ModifyLog: + **/ +public class ProductCounterpartyAction { + private static final Logger logger= LoggerFactory.getLogger(ProductCounterpartyAction.class); + + private ProductCounterpartyService productCounterpartyService=ServiceUtil.getService(ProductCounterpartyServiceImpl.class); + + @POST + @Path("/addProductCounterParty") + @Produces({MediaType.TEXT_PLAIN}) + public String addProductCounterParty(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try{ + User user = HrmUserVarify.getUser(request, response); + final String productCounterPartyJson = Util.null2String(request.getParameter("productCounterParty")); + logger.info("传入合同流程数据:[{}]",productCounterPartyJson); + final ProductCounterPartyDTO productCounterParty = JSON.parseObject(productCounterPartyJson, ProductCounterPartyDTO.class); + ProductCounterpartyEnum result=productCounterpartyService.addProductCounterParty(user,productCounterParty); + logger.info("添加产品对手方结果:[{}]",result); + if(result==ProductCounterpartyEnum.PRODUCT_OTHER_COUNTERPARTY_EXIST){ + return EcologyCommonResponseDTO.failJson(ProductCounterpartyEnum.PRODUCT_OTHER_COUNTERPARTY_EXIST.name()); + } + return EcologyCommonResponseDTO.successJson(result.name()); + + }catch (Exception e){ + logger.error("创建产品对手方发生异常",e); + } + return EcologyCommonResponseDTO.failJson("创建产品对手方发生错误"); + } +} diff --git a/src/main/java/com/engine/htxc/document/DocTemplateAction.java b/src/main/java/com/engine/htxc/document/DocTemplateAction.java new file mode 100644 index 0000000..78633a5 --- /dev/null +++ b/src/main/java/com/engine/htxc/document/DocTemplateAction.java @@ -0,0 +1,68 @@ +package com.engine.htxc.document; + +import com.alibaba.fastjson.JSON; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.document.service.impl.DocTemplateServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.hrm.HrmUserVarify; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810050 + * @version: 1.0 + * @CreateDate: 2022/8/18 18:06 + * @Description: 文档中心模板action + * @ModifyLog: 修改路径名称,类名 + **/ +public class DocTemplateAction { + + private static final Logger logger= LoggerFactory.getLogger(DocTemplateAction.class); + + private DocTemplateServiceImpl docTemplateService(){ + return ServiceUtil.getService(DocTemplateServiceImpl.class); + } + + + /** + * 根据模板编号查询存储网关id + * @param req 模板编号 + * @param rep 模板编号存储网关文件id + * @return + */ + @GET + @Path("/getSgFileidByTemplateNos") + @Produces({MediaType.APPLICATION_JSON}) + public String getSgFileidByTemplateNo(@Context HttpServletRequest req, @Context HttpServletResponse rep){ + HrmUserVarify.getUser(req, rep); + String templateNos = req.getParameter("templateNos"); + logger.info("传入模板编号: [{}]",templateNos); + try { + List result = docTemplateService().getSgFileIdByTemplateNos(Stream.of(templateNos.split(",")).collect(Collectors.toList())); + HashMap map = new HashMap<>(); + map.put("code", 200); + map.put("msg", "success"); + map.put("data", result); + return JSON.toJSONString(map); + }catch (Exception e){ + logger.error("查询模板信息失败",e); + } + return JAVATools.Apiretrun("400","查询文档失败"); + + } +} diff --git a/src/main/java/com/engine/htxc/document/dao/DocTemplateDao.java b/src/main/java/com/engine/htxc/document/dao/DocTemplateDao.java new file mode 100644 index 0000000..0d77f6d --- /dev/null +++ b/src/main/java/com/engine/htxc/document/dao/DocTemplateDao.java @@ -0,0 +1,27 @@ +package com.engine.htxc.document.dao; + +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.Collections; +import java.util.List; + +/** + * @author K1810050 + */ +public class DocTemplateDao { + public static List findSgFileIdByTemplateNos(List templateNos){ + if(null==templateNos||templateNos.isEmpty()){ + return Collections.emptyList(); + } + String sql = " SELECT " + + " c.fileid,b.mbbh,b.mbmc,b.yqsyxt,b.bb as bbh" + + " FROM " + + " docimagefile a ,uf_wdzx b,imagefile c " + + " where " + + " a.docid=b.wj and a.imagefileid=c.imagefileid and b.zt=1 and b.mbbh in ('" + + String.join("','", templateNos) + + "' )"; + + return JAVATools.GetTableToListMap(sql, null); + } +} diff --git a/src/main/java/com/engine/htxc/document/service/DocTemplateService.java b/src/main/java/com/engine/htxc/document/service/DocTemplateService.java new file mode 100644 index 0000000..37765fb --- /dev/null +++ b/src/main/java/com/engine/htxc/document/service/DocTemplateService.java @@ -0,0 +1,7 @@ +package com.engine.htxc.document.service; + +import java.util.List; + +public interface DocTemplateService { + List getSgFileIdByTemplateNos(List templateNos); +} diff --git a/src/main/java/com/engine/htxc/document/service/impl/DocTemplateServiceImpl.java b/src/main/java/com/engine/htxc/document/service/impl/DocTemplateServiceImpl.java new file mode 100644 index 0000000..933ebae --- /dev/null +++ b/src/main/java/com/engine/htxc/document/service/impl/DocTemplateServiceImpl.java @@ -0,0 +1,17 @@ +package com.engine.htxc.document.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.document.dao.DocTemplateDao; +import com.engine.htxc.document.service.DocTemplateService; + +import java.util.List; + +/** + * @author K1810050 + */ +public class DocTemplateServiceImpl extends Service implements DocTemplateService { + @Override + public List getSgFileIdByTemplateNos(List templateNos) { + return DocTemplateDao.findSgFileIdByTemplateNos(templateNos); + } +} diff --git a/src/main/java/com/engine/htxc/eseal/business/contract/service/ContractEsealService.java b/src/main/java/com/engine/htxc/eseal/business/contract/service/ContractEsealService.java new file mode 100644 index 0000000..4ee0e26 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/business/contract/service/ContractEsealService.java @@ -0,0 +1,26 @@ +package com.engine.htxc.eseal.business.contract.service; + +import com.engine.htxc.eseal.uinterface.Eseal; +import weaver.hrm.User; + +import java.util.Map; + +/** + *

合同相关流程处理类

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ContractEsealService.java + * @createTime 2022年06月21日 13:53:00 + */ +public interface ContractEsealService { + + /** + *

合同流程发送eseal消息

+ * @title sendEseal + * @author K1810015 + * @param map 自定义传参内容 + * @param user 当前操作人 + */ + Eseal sendEseal(Map map, User user); + +} diff --git a/src/main/java/com/engine/htxc/eseal/business/contract/service/impl/ContractEsealServiceImpl.java b/src/main/java/com/engine/htxc/eseal/business/contract/service/impl/ContractEsealServiceImpl.java new file mode 100644 index 0000000..14e57f5 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/business/contract/service/impl/ContractEsealServiceImpl.java @@ -0,0 +1,80 @@ +package com.engine.htxc.eseal.business.contract.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.eseal.business.contract.service.ContractEsealService; +import com.engine.htxc.eseal.uinterface.Eseal; +import com.engine.htxc.eseal.uinterface.EsealInit; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractEsealServiceImpl.java + * @createTime 2022年06月21日 13:56:00 + */ +public class ContractEsealServiceImpl extends EsealInit implements ContractEsealService,Eseal { + + @Override + public Eseal sendEseal(Map map,User user) { + Map initmap=new HashMap<>(4); + String type=Util.null2String(map.get("type")); + String yzid=Util.null2String(map.get("yzid")); + String tablename=Util.null2String(map.get("tablename")); + initmap.put("tablename",tablename); + initmap.put(fileid,Util.null2String(map.get("id"))); + initmap.put("docid",Util.null2String(map.get("docid"))); + if("0".equals(type)){ + initmap.put("detailnum","1"); + }else{ + initmap.put("detailnum","3"); + } + init(initmap,user); + int ngrvalue=Util.getIntValue(Util.null2String(this.maintable.get("qcr")),-1); + if(ngrvalue>0){ + esealConfig.user=new UserHt(this.user.getUID()); + }else{ + esealConfig.user=new UserHt(user.getUID()); + } + esealConfig.code=Util.null2String(pb.getPropName("AutoSign.code")); + esealConfig.yzcode=yzid; + this.autopdf=true; + this.autopdfname=tablename+"_dt5"; + return this; + } + + @Override + public boolean sendseal() { + JSONObject jsonject=dataload(); + if(jsonject==null || jsonject.size()<=0){ + this.flag=false; + return false; + } + sendpost(jsonject.toJSONString()); + return this.flag; + } + + @Override + public JSONObject callback() { + if(!this.flag) { + JSONObject jsonObject=new JSONObject(); + jsonObject.put("status", "500"); + jsonObject.put("error", "送用印失败!"); + return jsonObject; + } + String where =" where mainid in ("+id+") and wjmc in ("+ Arrays.stream(docids.split(",")).map(item->"'"+item+"'").collect(Collectors.joining(","))+")"; + callbacktble(this.tablename+"_dt"+this.detailnum,"yyzt",where); + if(!this.flag) { + return retjsonobject; + } + retjsonobject.put("msg", "200"); + retjsonobject.put("data", "送e-seal用印成功"); + return retjsonobject; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/config/EsealConfig.java b/src/main/java/com/engine/htxc/eseal/config/EsealConfig.java new file mode 100644 index 0000000..39dc3b7 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/config/EsealConfig.java @@ -0,0 +1,218 @@ +package com.engine.htxc.eseal.config; +import cn.hutool.core.date.DateUtil; +import static com.engine.htxc.eseal.type.EffectType.PAPER; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.eseal.counterparty.service.impl.CounterpartyServiceImpl; +import com.engine.htxc.eseal.counterparty.vo.Counterparty; +import com.engine.htxc.eseal.type.EffectType; +import com.engine.htxc.eseal.type.IColumnType; +import com.engine.integration.util.StringUtils; +import com.engine.common.util.ServiceUtil; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; + + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealConfig.java + * @createTime 2022年06月21日 15:09:00 + */ +public class EsealConfig { + public UserHt user; + public UserHt operator; + public String yzcode=""; + public String flowNum="htbh"; + public String typestatus="yyzt"; + public String detailyyid="yyid"; + public String linktalbe="uf_esealmodeinfo"; + public String linktalbeenum="CONTRACT"; + public String revokeFlag="false"; + public String codeType="USC"; + public String ownerType="INSIDE"; + public String signNum="1"; + public String keyword="华泰证券股份有限公司签章"; + public String signatoryType="ENTERPRISE"; + public String signMethod="TRUSTEESHIP"; + public String signedExamine="DISABLE"; + public String code=""; + public int enddateday=30; + public String docType; + public EffectType effectType; + public String esealtype=""; + public String counterpartyids=""; + public List acrossSealSkipPage=new ArrayList<>(Arrays.asList(new String[]{"DISABLE","ENABLE"})); + public Map map=new HashMap<>(); + + public EsealConfig() { + map.put("flowName","htmc"); + map.put("flowNum","htbh"); + } + + public EsealConfig signUsermap(){ + if(operator==null){ + return this; + } + map.put("signUserId",operator.getWorkcode()); + map.put("signUserName",operator.getLastname()); + return this; + } + + public EsealConfig flowOwnermapmap(){ + if(user==null){ + return this; + } + try { + DepartmentComInfo dc = new DepartmentComInfo(); + Map flowOwnermap = new HashMap<>(2); + flowOwnermap.put("personNum", user.getWorkcode() ); + flowOwnermap.put("personName", user.getUsername()); + //部门编码 + String orgId = Util.null2String(dc.getDepartmentCode(user.getUserDepartment() + "")); + flowOwnermap.put("orgId", orgId); + //部门编码 + String orgName = Util.null2String(dc.getDepartmentName(user.getUserDepartment() + "")); + flowOwnermap.put("orgName", orgName); + flowOwnermap.put("flowSendTime", DateUtil.date().toString("yyyy-MM-dd hh:mm:ss")); + map.put("flowOwner", flowOwnermap); + }catch (Exception exo){ + + } + return this; + } + + public EsealConfig docSigns(List> list){ + if(list==null || list.size()<=0){ + return this; + } + List docsignlist=new ArrayList(); + list.forEach((Map map)->{ + Map docSigns=new HashMap<>(4); + docSigns.put("docId",map.get("docId")); + docSigns.put("fileNameDisplay",Util.null2String(map.get("fileNameDisplay"))); + docSigns.put("uniqueKey",Util.null2String(map.get("uniqueKey"))); + docSigns.put("effectType",Util.null2String(map.get("effectType"))); + if(!StringUtils.isBlank(Util.null2String(map.get("effectType")))){ + IColumnType iColumnType=(IColumnType)map.get("effectType"); + if(PAPER.equals(iColumnType)){ + docSigns.put("acrossSealSkipPage",Util.null2String(map.get("acrossSealSkipPage"))); + docSigns.put("printSetting",printSetting( + Util.null2String(map.get("printuser")), + Util.null2String(map.get("printNum")))); + } + } + + docSigns.put("docType",docType); + docSigns.put("signMethod","ORDER"); + docSigns.put("validityStartDate",DateUtil.date().toString("yyyy-MM-dd hh:mm:ss")); + docSigns.put("validityEndDate",DateUtil.date().toString("yyyy-MM-dd hh:mm:ss")); + + List> signerslist=new ArrayList(); + signerslist.add(getsigners()); + if(esealtype.equals("online") &&!StringUtils.isBlank(counterpartyids)){ + //双方签署场景,取对手方场景 + signerslist= addsigners(signerslist); + } + docSigns.put("signers",signerslist); + docsignlist.add(docSigns); + }); + + map.put("docSigns",docsignlist); + + return this; + } + + public Map getsigners(){ + Map signers=new HashMap<>(9); + this.signNum="1"; + signers.put("signatoryType",signatoryType); + signers.put("ownerType",ownerType); + signers.put("codeType",codeType); + signers.put("code",code); + signers.put("sealId",yzcode); + signers.put("keyWord",keyword); + signers.put("signMethod",signMethod); + signers.put("signNum",signNum); + signers.put("revokeFlag",revokeFlag); + signers.put("signedExamine",signedExamine); + return signers; + } + + public List addsigners(List list){ + Map counterpartymap=new HashMap<>(1); + counterpartymap.put("ids",counterpartyids); + List listcounterpart= ServiceUtil.getService(CounterpartyServiceImpl.class).getcounterpartyvo(counterpartymap); + if(listcounterpart==null || listcounterpart.size()<=0){ + return null; + } + listcounterpart.forEach(counterparty->{ + Map signers=new HashMap<>(3); + signers.put("signatoryType",counterparty.getSignatoryType()); + signers.put("codeType",counterparty.getCodeType()); + signers.put("code",counterparty.getCode()); + if("PERSONAL".equals(counterparty.getSignatoryType())){ + signers.put("name",counterparty.getName()); + signers.put("mail",counterparty.getMail()); + signers.put("mobile",counterparty.getMobile()); + } + //固定 + signers.put("ownerType","OUTSIDE"); + signers.put("sealId",""); + signers.put("signMethod",signMethod); + this.signNum=Util.null2String(Util.getIntValues(signNum)+1); + signers.put("signNum",signNum); + signers.put("revokeFlag",revokeFlag); + signers.put("signedExamine",signedExamine); + list.add(signers); + }); + return list; + } + + + public Map printSetting(String userids,String fwdyfs){ + + Map retmap= getUserMap(userids); + Map printSetting=new HashMap<>(3); + if(retmap!=null && retmap.size()>0){ + printSetting.put("personName",Util.null2String(retmap.get("username"))); + printSetting.put("personNum",Util.null2String(retmap.get("userworkcode"))); + } + printSetting.put("printNum",fwdyfs); + + return printSetting; + } + + + + + private Map getUserMap(String userids){ + String value=""; + Map map=new HashMap<>(2); + if("".equals(userids)){ + return map; + } + List userName= new ArrayList<>(); + List userWorkcode= new ArrayList<>(); + String[] userarray=userids.split(","); + Arrays.stream(userarray).forEach((userid) -> { + try { + UserHt user = new UserHt(Integer.parseInt(userid)); + if(user!=null){ + userName.add(user.getUsername()); + userWorkcode.add(user.getWorkcode()); + } + }catch (Exception e){ + + } + }); + map.put("username",userName.stream().collect(Collectors.joining(","))); + map.put("userworkcode",userWorkcode.stream().collect(Collectors.joining(","))); + return map; + } + + + +} diff --git a/src/main/java/com/engine/htxc/eseal/counterparty/convert/CounterpartyDao.java b/src/main/java/com/engine/htxc/eseal/counterparty/convert/CounterpartyDao.java new file mode 100644 index 0000000..66c26e4 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/counterparty/convert/CounterpartyDao.java @@ -0,0 +1,55 @@ +package com.engine.htxc.eseal.counterparty.convert; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.eseal.counterparty.vo.Counterparty; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; + +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName CounterpartyDao.java + * @createTime 2022-08-02 16:23:00 + */ +public class CounterpartyDao { + public static Counterparty getTabletoVo(String dsfbm){ + Counterparty counterparty=new Counterparty(); + if(StringUtils.isBlank(dsfbm)){ + return null; + } + String sql=" select t.id,dsflx,dsfmc,frxm,frsfzhm,lxdh,email, " + + "(select zjhm from uf_dsfgl_dt1 where mainid=t.id and zjlx='103100') as cardno, " + + "(select zjhm from uf_dsfgl_dt1 where mainid=t.id and zjlx='103200') code " + + " from uf_dsfgl t where dsfbm= ? "; + DbTools dbTools=new DbTools(); + Map map= dbTools.getsqltomap(sql,dsfbm); + if(map==null || map.size()<=0){ + return null; + } + String dsflx= Util.null2String(map.get("dsflx")); + if("0".equals(dsflx)){ + + counterparty.setSignatoryType("PERSONAL"); + counterparty.setCodeType("ID"); + counterparty.setCode(Util.null2String(map.get("cardno"))); + counterparty.setName(Util.null2String(map.get("frxm"))); + counterparty.setMail(Util.null2String(map.get("email"))); + counterparty.setMobile(Util.null2String(map.get("lxdh"))); + }else if("1".equals(dsflx)){ + + counterparty.setSignatoryType("ENTERPRISE"); + counterparty.setCodeType("USC"); + counterparty.setCode(Util.null2String(map.get("code"))); + }else if("2".equals(dsflx)){ + + counterparty.setSignatoryType("ENTERPRISE"); + counterparty.setCodeType("USC"); + counterparty.setCode(Util.null2String(map.get("code"))); + } + return counterparty; + } + + +} diff --git a/src/main/java/com/engine/htxc/eseal/counterparty/service/CounterpartyService.java b/src/main/java/com/engine/htxc/eseal/counterparty/service/CounterpartyService.java new file mode 100644 index 0000000..17126a3 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/counterparty/service/CounterpartyService.java @@ -0,0 +1,16 @@ +package com.engine.htxc.eseal.counterparty.service; + +import com.engine.htxc.eseal.counterparty.vo.Counterparty; + +import java.util.List; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName CounterpartyService.java + * @createTime 2022年08月02日 16:18:00 + */ +public interface CounterpartyService { + public List getcounterpartyvo(Map map); +} diff --git a/src/main/java/com/engine/htxc/eseal/counterparty/service/impl/CounterpartyServiceImpl.java b/src/main/java/com/engine/htxc/eseal/counterparty/service/impl/CounterpartyServiceImpl.java new file mode 100644 index 0000000..7f1f880 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/counterparty/service/impl/CounterpartyServiceImpl.java @@ -0,0 +1,41 @@ +package com.engine.htxc.eseal.counterparty.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.eseal.counterparty.convert.CounterpartyDao; +import com.engine.htxc.eseal.counterparty.service.CounterpartyService; +import com.engine.htxc.eseal.counterparty.vo.Counterparty; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName CounterpartyServiceImpl.java + * @createTime 2022年08月02日 16:18:00 + */ +public class CounterpartyServiceImpl extends Service implements CounterpartyService { + + @Override + public List getcounterpartyvo(Map map) { + if(map==null || map.size()<=0){ + return null; + } + String ids= Util.null2String(map.get("ids")); + if(StringUtils.isBlank(ids)){ + return null; + } + List list=new ArrayList(); + Arrays.stream(ids.split(",")).forEach((item)->{ + Counterparty counterparty= CounterpartyDao.getTabletoVo(item); + if(counterparty!=null){ + list.add(counterparty); + } + }); + return list; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/counterparty/type/CodetypeEnum.java b/src/main/java/com/engine/htxc/eseal/counterparty/type/CodetypeEnum.java new file mode 100644 index 0000000..c05e8b4 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/counterparty/type/CodetypeEnum.java @@ -0,0 +1,27 @@ +package com.engine.htxc.eseal.counterparty.type; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName CodetypeEnum.java + * @createTime 2022年08月02日 16:15:00 + */ +public enum CodetypeEnum { + USC("USC"); + + CodetypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + private String value; + + +} diff --git a/src/main/java/com/engine/htxc/eseal/counterparty/vo/Counterparty.java b/src/main/java/com/engine/htxc/eseal/counterparty/vo/Counterparty.java new file mode 100644 index 0000000..a3b3420 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/counterparty/vo/Counterparty.java @@ -0,0 +1,75 @@ +package com.engine.htxc.eseal.counterparty.vo; + +/** + *

定义对手方实际使用参数

+ * @author K1810015 + * @version 1.0.0 + * @ClassName counterparty.java + * @createTime 2022年08月02日 16:10:00 + */ +public class Counterparty { + public String signatoryType; + public String codeType; + public String code; + public String name; + + public String getSignatoryType() { + return signatoryType; + } + + public void setSignatoryType(String signatoryType) { + this.signatoryType = signatoryType; + } + + public String getCodeType() { + return codeType; + } + + public void setCodeType(String codeType) { + this.codeType = codeType; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getMail() { + return mail; + } + + public void setMail(String mail) { + this.mail = mail; + } + + public String getKeyWord() { + return keyWord; + } + + public void setKeyWord(String keyWord) { + this.keyWord = keyWord; + } + + public String mobile; + public String mail; + public String keyWord; +} diff --git a/src/main/java/com/engine/htxc/eseal/dao/ContractBaseDao.java b/src/main/java/com/engine/htxc/eseal/dao/ContractBaseDao.java new file mode 100644 index 0000000..7c9d87a --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/dao/ContractBaseDao.java @@ -0,0 +1,23 @@ +package com.engine.htxc.eseal.dao; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractBaseDao.java + * @createTime 2022年07月20日 09:55:00 + */ +public class ContractBaseDao { + + public static String tablename="uf_htqc"; + + public static String getcontractnotoid(String lcbh){ + if(StringUtils.isBlank(lcbh)){ + return ""; + } + String sql="select id from "+tablename+" where 1=1 and htbh=? "; + return new DbTools().getsqlonevalue(sql,lcbh); + } +} diff --git a/src/main/java/com/engine/htxc/eseal/dao/CounterpartySignerDao.java b/src/main/java/com/engine/htxc/eseal/dao/CounterpartySignerDao.java new file mode 100644 index 0000000..f471581 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/dao/CounterpartySignerDao.java @@ -0,0 +1,36 @@ +package com.engine.htxc.eseal.dao; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; + +/** + *

+ * 对手方用印相关查询 + *

+ * + * @author K1810015 + * @version 1.0.0 + * @ClassName counterpartySignerDao.java + * @createTime 2022年07月29日 00:25:00 + */ +public class CounterpartySignerDao { + + private static String tablename = "uf_dsfgl"; + + public static List> getdatabyid(String bm) { + List> list = new ArrayList<>(); + if (StringUtils.isBlank(bm)) { + return list; + } + String sql = "select * from " + tablename + " where 1=1 and dsfbm in (" + + Arrays.stream(bm.split(",")).distinct().map(item -> "\'" + item + "\'").collect(Collectors.joining(",")) + + ")"; + return new DbTools().getSqlToList(sql); + } +} diff --git a/src/main/java/com/engine/htxc/eseal/dao/EsealBaseDao.java b/src/main/java/com/engine/htxc/eseal/dao/EsealBaseDao.java new file mode 100644 index 0000000..9a546ad --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/dao/EsealBaseDao.java @@ -0,0 +1,84 @@ +package com.engine.htxc.eseal.dao; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; + +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealBaseDao.java + * @createTime 2022年07月10日 14:22:00 + */ +public class EsealBaseDao { + + public static PropBean pb = new PropBean(); + + public static DbTools dbtools = new DbTools(); + + public static Map getsealmap(String lcxx, String eselname, String deptid) { + if (StringUtils.isBlank(lcxx) || StringUtils.isBlank(eselname) || StringUtils.isBlank(deptid)) { + return null; + } + String deptnamevalue = Util.null2String(pb.getPropName("contract.eseal.deptname")); + if (deptnamevalue.equals(eselname)) { + String sql = "select t1.id,t1.yzmc,t1.yzlx from uf_ContractSeal t1,uf_tsld t2 where t2.yz = t1.yzlx " + + "and t1.ssjg = '" + deptid + "' and t2.lcxx=? and t2.qt=? "; + return dbtools.getsqltomap(sql, lcxx, eselname); + } else { + String sql = "select t1.id,t1.yzmc,t1.yzlx from uf_ContractSeal" + + " t1,uf_tsld t2 where t2.yz = t1.yzbh and t2.lcxx=? and t2.qt=?"; + return dbtools.getsqltomap(sql, lcxx, eselname); + } + } + + /** + *

修改印章编号

+ * @title getmodelsealmap + * @author K1810015 + * @updateTime 2022/8/30 20:33 + */ + public static Map getmodelsealmap(String lcxx, String eselname, String deptid) { + if (StringUtils.isBlank(lcxx) || StringUtils.isBlank(eselname) || StringUtils.isBlank(deptid)) { + return null; + } + String deptnamevalue = Util.null2String(pb.getPropName("contract.eseal.deptname")); + if (deptnamevalue.equals(eselname)) { + String sql = "select t1.yzbh as id,t1.yzmc,t1.yzlx from uf_ContractSeal t1,uf_quickseal t2 where t2.yz = t1.yzbh " + + "and t1.ssjg = '" + deptid + "' and t2.gljm=? and t2.unkey=?"; + return dbtools.getsqltomap(sql, lcxx, eselname); + } else { + String sql = "select t1.yzbh as id,t1.yzmc,t1.yzlx from uf_ContractSeal" + + " t1,uf_quickseal t2 where t2.yz = t1.yzbh and t2.gljm=? and t2.unkey=?"; + return dbtools.getsqltomap(sql, lcxx, eselname); + } + + } + + /** + *

修改印章编号

+ * @title getmodelsealmap + * @author K1810015 + * @updateTime 2022/8/30 20:33 + */ + public static List> getSealNoToName(String esealno) { + List> list=new ArrayList<>(); + if (StringUtils.isBlank(esealno) ) { + return list; + } + String sql =" select * from uf_ContractSeal where yzbh in ("+ Arrays.stream(esealno.split(",")).distinct().map(item->"\'"+item+"\'").collect(Collectors.joining(","))+")"; + return dbtools.getSqlToList(sql, null); + + } + + + +} diff --git a/src/main/java/com/engine/htxc/eseal/dao/EsealTableLinkDao.java b/src/main/java/com/engine/htxc/eseal/dao/EsealTableLinkDao.java new file mode 100644 index 0000000..821d2d0 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/dao/EsealTableLinkDao.java @@ -0,0 +1,55 @@ +package com.engine.htxc.eseal.dao; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.eseal.config.EsealConfig; +import com.engine.integration.util.StringUtils; +import weaver.general.StringUtil; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealTableLink.java + * @createTime 2022年07月04日 00:47:00 + */ +public class EsealTableLinkDao { + DbTools dbTools=new DbTools(); + public boolean insertlink(Map map,EsealConfig esealConfig){ + if(map==null || map.size()<=0){ + return false; + } + String flownum= Util.null2String(map.get("flownum")); + + if(StringUtils.isBlank(flownum)){ + return false; + } + if(selectlink(flownum,esealConfig)){ + return true; + } + Map setmap=new HashMap<>(); + setmap.put("flownum",flownum); + setmap.put("glzb",esealConfig.linktalbeenum); + return dbTools.insert(esealConfig.linktalbe,setmap); + + } + + private boolean selectlink(String flownum,EsealConfig esealConfig){ + if(StringUtils.isBlank(flownum)){ + return false; + } + String sql="select glzb from "+esealConfig.linktalbe+" where 1=1 and flownum=? "; + + Map retmap= dbTools.getsqltomap(sql,flownum); + if(retmap!=null && retmap.size()>0) { + return true; + }else + { + return false; + } + + } +} diff --git a/src/main/java/com/engine/htxc/eseal/dao/SendSignetDao.java b/src/main/java/com/engine/htxc/eseal/dao/SendSignetDao.java new file mode 100644 index 0000000..6463a89 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/dao/SendSignetDao.java @@ -0,0 +1,89 @@ +package com.engine.htxc.eseal.dao; + +import com.engine.integration.util.StringUtils; +import com.weaver.formmodel.mobile.mec.handler.List; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class SendSignetDao { + /*** + * + * @return + */ + public static String getTableByRequestid(String requestid){ + RecordSet rs = new RecordSet(); + String formid = "formtable_main_" ; + + String sql =" select abs(t.formid) as formid \n" + + " from workflow_base t\n" + + " inner join workflow_requestbase l on l.workflowid = t.id\n" + + " where l.requestid="+requestid+"" ; + rs.execute(sql); + if(rs.next()){ + formid = formid+ Util.getIntValues(rs.getString("formid")); + } + return formid; + } + + public static Map getesealInfo(String requestid, String detailtable, String formtable){ + BaseBean bb=new BaseBean(); + String sql=""; + String GW_GZZDTYPE=Util.null2String(new PropBean().getPropName("GW_GZZDTYPE")); + String gzddnumber=Util.null2String(JAVATools.getmainunnumber(Util.null2String(requestid))); + if(!"".equals(GW_GZZDTYPE)&&!"".equals(gzddnumber)&&GW_GZZDTYPE.indexOf(gzddnumber)>=0){ + sql=" select t.id,t.wh, t.ngr,t.fs,t.szbm,t.szjg,t.lxfs,t.jjcd,t.ngrq , (select yzbh from uf_yinzhang where id=t.yz) as yz, t.zwpdf," + + " (select wm_concat_old(wdid) from " + detailtable + " where sfyy='1' and sflzlc=1 and mainid=t.id and (fjpdflx is null or fjpdflx!='1' ) ) as fjid " + + " from " + formtable + " t " + + " where sfcwgz=0 and requestid='" + requestid + "'"; + }else{ + sql=" select t.id,t.wh, t.ngr,t.fs,t.szbm,t.szjg,t.lxfs,t.jjcd,t.ngrq , (select yzbh from uf_yinzhang where id=t.yz) as yz, t.zwpdf," + + " (select wm_concat_old(wdid) from " + detailtable + " where sfyy='1' and sflzlc=1 and mainid=t.id) as fjid " + + " from " + formtable + " t " + + " where sfcwgz=0 and requestid='" + requestid + "'"; + } + + bb.writeLog("【自动触发用印单】sql:" + sql); + bb.writeLog("【自动触发用印单】获取流程主表信息sql,主表表单是:" + formtable); + return JAVATools.GetTableToMap(sql,null); + } + + public static String filedistinct(String a,String b){ + String value=""; + if("".equals(a)&& "".equals(b)){ + return value; + } + if("".equals(a)){ + value=b; + }else if("".equals(b)){ + value=a; + }else{ + value=a+","+b; + } + return value; + } + + public static void updatewfstatus(Map map){ + if(map==null || map.size()<=0){ + return ; + } + String id=Util.null2String(map.get("id")); + String tablename=Util.null2String(map.get("tablename")); + if(StringUtils.isBlank(id) || StringUtils.isBlank(tablename)){ + return ; + } + String htoagllc=Util.null2String(map.get("htoagllc")); + + Map wheremap=new HashMap<>(1); + wheremap.put("id",id); + Map setmap=new HashMap<>(2); + setmap.put("htoagllc",htoagllc); +; + JAVATools.Updatesql(setmap,tablename,wheremap); + } +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/SealResponseAction.java b/src/main/java/com/engine/htxc/eseal/responseaction/SealResponseAction.java new file mode 100644 index 0000000..fb01910 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/SealResponseAction.java @@ -0,0 +1,119 @@ +package com.engine.htxc.eseal.responseaction; + +import com.alibaba.fastjson.JSONObject; +import com.engine.htxc.commonutil.base.RequestJsonUtil; +import static com.engine.htxc.commonutil.log.CustomizeLog.printLog; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.eseal.responseaction.num.EsealClassType; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; + +/** + *

用印流程回参的入口类

+ * @title SealPesponseAction + * @author K1810015 + * @updateTime 2022/9/13 9:41 + */ +public class SealResponseAction { + public PropBean pb = new PropBean(); + private DbTools dbtools=new DbTools(); + + /** + *

返回参数

+ * @title receiveSeal + * @author K1810015 + * @updateTime 2022/9/13 9:50 + */ + @POST + @Path("/receiveSeal") + @Produces({MediaType.TEXT_PLAIN}) + public String receiveSeal(@Context HttpServletRequest request, @Context HttpServletResponse response) { + JSONObject apidatas = new JSONObject(); + printLog("获取到消息!!!!"); + String yywjSignfile = pb.getPropName("yywj_signfile"); + printLog("获取用印文件路径:" + yywjSignfile); + try { + String recordvalue = Util.null2String(RequestJsonUtil.getRequestJsonString(request)); + if (!StringUtils.isBlank(recordvalue)) { + + printLog("接收到用印文件请求消息!!!!"); + JSONObject recordsObject = JSONObject.parseObject(recordvalue); + printLog("接收到用印文件请求消息!!!!"+ recordvalue); + String flowNum = recordsObject.getString("flowNum"); + //判断流程-如果是用印登记单流程就继续,如果不是就转到service + printLog("接收到用印文件请flowNum:" + flowNum); + String value=getnumber(flowNum); + EsealClassType esealClassType=EsealClassType.where(value); + if(StringUtils.isBlank(esealClassType.getValue())|| "-1".equals(esealClassType.getValue())){ + apidatas.put("resultMsg", "接口参数为空"); + apidatas.put("status", "-1"); + } + Class calss= Class.forName(esealClassType.getValue()); + Object ob=calss.getConstructor(String.class).newInstance(value); + Method m = calss.getMethod("receivestatus",JSONObject.class); + m.invoke(ob,recordsObject); + } else { + apidatas.put("resultMsg", "接口参数为空"); + apidatas.put("status", "-1"); + } + } catch (Exception e) { + apidatas.put("resultMsg", "异常"); + apidatas.put("status", "-1"); + } + return apidatas.toJSONString(); + } + + /** + *

通过flownum取流程表名和主键

+ * @title getnumber + * @author K1810015 + * @updateTime 2022/9/13 9:45 + */ + public String getnumber(String flowNum){ + String value=dbtools.getRequestidByRequestMark(flowNum); + String tablenumber=""; + if(!StringUtils.isBlank(value)){ + //流程走向 + tablenumber=dbtools.getmainunnumber(value); + }else{ + //建模走向 + String tablennumKey=othertable(flowNum); + if(!StringUtils.isBlank(tablennumKey)){ + tablenumber=tablennumKey; + } + } + return tablenumber; + } + + /** + *

判断流程是否存在建模

+ * @title othertable + * @author K1810015 + * @updateTime 2022/9/13 9:44 + */ + public String othertable(String flowNum){ + if(StringUtils.isBlank(flowNum)){ + return ""; + } + Map map=new HashMap<>(1); + map.put("flownum",flowNum); + Map retmap= dbtools.gettabletomap("uf_esealmodeinfo",map); + if(retmap==null || retmap.size()<=0){ + return ""; + } + return Util.null2String(retmap.get("glzb")); + + } + +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/business/contract/service/EsealContractReq.java b/src/main/java/com/engine/htxc/eseal/responseaction/business/contract/service/EsealContractReq.java new file mode 100644 index 0000000..f0d6d81 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/business/contract/service/EsealContractReq.java @@ -0,0 +1,302 @@ +package com.engine.htxc.eseal.responseaction.business.contract.service; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.htsc.seal.web.RedisTools; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.htxc.eseal.responseaction.coninterface.EsealResponseInterface; +import com.engine.htxc.eseal.responseaction.num.EsealTypeEnum; +import com.engine.htxc.eseal.responseaction.util.EsealPesUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import redis.clients.jedis.Jedis; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.MessageDetailLog; +import weaver.interfaces.htsc.comInfo.PropBean; +import com.engine.htxc.eseal.responseaction.num.FileSignsStatusEnum; +import static com.engine.htxc.eseal.responseaction.num.SignsStatusEnum.Completed; + + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealContractReq.java + * @createTime 2022年06月28日 00:40:00 + */ +@Slf4j +public class EsealContractReq extends EsealPesUtil implements EsealResponseInterface { + + /** + * 特殊情况,同事返回RXF和pdf + */ + public String systemdas="DAS"; + + public EsealContractReq(String tablename){ + super(tablename); + if (systemdas.equals(tablename)){ + reponseSealConfig.securityautopdf=true; + } + } + public PropBean pb = new PropBean(); + Map mainmap=new HashMap<>(); + private DbTools dbtools=new DbTools(); + public FileSignsStatusEnum fileSignsStatusEnum; + public EsealTypeEnum esealTypeEnum; + public boolean flag=true; + public JSONObject retmes=new JSONObject(); + + public JSONObject mainjson=new JSONObject(); + + @Override + public JSONObject receivestatus(JSONObject jsonObject) { + String flowNum = jsonObject.getString("flowNum"); + if(StringUtils.isBlank(flowNum)){ + retmes.put("resultMsg","参数有误"); + retmes.put("status", "-1"); + return retmes; + } + initload(flowNum); + if(StringUtils.isBlank(this.id)){ + retmes.put("resultMsg","异常"); + retmes.put("status", "-1"); + return retmes; + } + mainjson=jsonObject; + CustomizeLog.printLog("receiveSeal start:"+id); + String manualSigndoctype = pb.getPropName("eseal.contract.doctype"); + try{ + + MessageDetailLog messageDetailLog = new MessageDetailLog(tablename); + String docSigns = jsonObject.getString("docSigns"); + JSONArray docSignsArray = JSONArray.parseArray(docSigns); + for(int i=0;i0){ + this.mainsignfieldname="htfjdzyyj"; + } + if(StringUtils.isBlank(this.detailtable)){ + retmes.put("resultMsg","明细表异常"); + retmes.put("status", "-1"); + return retmes; + } + String dzyyfs=Util.null2String(this.detailmap.get("dzyyfs")); + esealTypeEnum=EsealTypeEnum.where(dzyyfs); + String docType = docSignObject.get("docType").toString(); + if(manualSigndoctype.equals(docType)){ + boolean signersFlag = true; + JSONArray signersArray = JSONArray.parseArray(signers); + for(int j=0;j保存用印成功的文件

+ * @title save + * @author K1810015 + * @updateTime 2022/8/3 11:32 + * @throws + */ + private void save(JSONObject docSignObject,JSONArray signersArray){ + try{ + int newdocid=saveFileid(docSignObject,esealTypeEnum); + if(newdocid<0){ + CustomizeLog.printLog("newdocid没有获取到:"+newdocid); + retmes.put("resultMsg","参数有误"); + retmes.put("status", "400"); + this.flag=false; + return ; + } + updateSignStatus("3",String.valueOf(newdocid)); + signdate(signersArray); + dosavemain(newdocid); + }catch (Exception e){ + CustomizeLog.printLog(e.getMessage()); + this.flag=false; + retmes.put("resultMsg","异常"); + retmes.put("status", "-1"); + } + } + + private void dosavemain(int newdocid){ + Jedis jedis = RedisTools.GetJedis(); + String rediskey = tablename+"_redis_key"; + try{ + int expireTime= Util.getIntValue(Util.null2String(pb.getPropName("RedisExpiretime"))); + boolean redisfalg=RedisTools.getDistributedLock(jedis,rediskey,id,expireTime,500,10); + if(redisfalg){ + updateMainTable(String.valueOf(newdocid)); + } + }catch (Exception e){ + log.error(rediskey+"保存失败"+e.getMessage()); + }finally { + log.info(rediskey+"解锁开始"); + RedisTools.releaseDistributedLock(jedis,rediskey,id); + log.info(rediskey+"解锁结束"); + log.info(rediskey+"释放锁开始"); + jedis.close(); + log.info (rediskey+"释放锁结束"); + } + } + + + /** + *

在先用印成功的文件

+ * @title onlinesave + * @author K1810015 + * @updateTime 2022/8/3 11:32 + * @throws + */ + private void onlineStarting(JSONObject docSignObject,JSONArray signersArray){ + if(detailmap==null || detailmap.size()<=0){ + return ; + } + String wfqssj=Util.null2String(detailmap.get("wfqssj")); + String qszt=Util.null2String(detailmap.get("qszt")); + if(!StringUtils.isBlank(wfqssj) && !StringUtils.isBlank(qszt)){ + return; + } + signersArray.stream().forEach(item->{ + JSONObject obj=(JSONObject) item; + if(obj!=null && obj.size()>0){ + String code= Util.null2String(obj.get("code")); + if(!StringUtils.isBlank(code) &&!StringUtils.isBlank(yzcode)){ + if(Arrays.stream(code.split(",")).collect(Collectors.toList()).removeAll( + Arrays.stream(yzcode.split(",")).collect(Collectors.toList()) + )){ + //修改我方签署时间 + String docstatus= Util.null2String(obj.get("status")); + int newdocid=saveFileid(docSignObject,esealTypeEnum); + if(!StringUtils.isBlank(docstatus) &&docstatus.equals(Completed.getValue())){ + String signTime =Util.null2String(obj.get("signTime")); + if(!StringUtils.isBlank(signTime)){ + Map wheremap=new HashMap<>(2); + wheremap.put("wfqssj",signTime); + wheremap.put("qszt","1"); + if(newdocid>0){ + wheremap.put("wfyyj",Util.null2String(newdocid)); + } + updatiltable(wheremap); + updateSignStatus("2",String.valueOf(newdocid)); + dosavemain(newdocid); + } + + } + } + } + } + }); + } + + private void initload(String flownum){ + if(StringUtils.isBlank(flownum)){ + return ; + } + String sql="select * from "+this.tablename+" where 1=1 "; + Map wheremap=new HashMap<>(1); + wheremap.put("htbh",flownum); + Map retmap=dbtools.gettabletomap(this.tablename,wheremap); + if(retmap==null || retmap.size()<=0){ + return ; + } + mainmap=retmap; + this.id=Util.null2String(retmap.get("id")); + this.yzcode=Util.null2String(pb.getPropName("AutoSign.code")); + } + + private void signdate(JSONArray signersArray){ + List datelist=new ArrayList<>(); + signersArray.stream().forEach(item->{ + JSONObject obj=(JSONObject) item; + if(obj!=null && obj.size()>0){ + //修改我方签署时间 + String docstatus= Util.null2String(obj.get("status")); + if(!StringUtils.isBlank(docstatus) &&docstatus.equals(Completed.getValue())){ + String signTime =Util.null2String(obj.get("signTime")); + if(!StringUtils.isBlank(signTime)){ + datelist.add(DateUtil.parse(signTime)); + } + } + } + }); + if(datelist==null || datelist.size()<0){ + return ; + } + datelist.sort(Comparator.comparing(DateTime::getTime)); + String datetime= ((DateTime)datelist.get(datelist.size()-1)).toString("yyyy-MM-dd HH:mm:ss"); + Map wheremap=new HashMap<>(2); + wheremap.put("sfqssj",datetime); + wheremap.put("qszt","2"); + updatiltable(wheremap); + } + + +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/config/ReponseSealConfig.java b/src/main/java/com/engine/htxc/eseal/responseaction/config/ReponseSealConfig.java new file mode 100644 index 0000000..95a07b2 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/config/ReponseSealConfig.java @@ -0,0 +1,13 @@ +package com.engine.htxc.eseal.responseaction.config; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ReponseSealConfig.java + * @createTime 2022年09月13日 15:04:00 + */ +public class ReponseSealConfig { + + //电子防伪打印件是否保存dpf文件,默认关闭 + public boolean securityautopdf=false; +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/coninterface/EsealResponseInterface.java b/src/main/java/com/engine/htxc/eseal/responseaction/coninterface/EsealResponseInterface.java new file mode 100644 index 0000000..06f2abb --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/coninterface/EsealResponseInterface.java @@ -0,0 +1,15 @@ +package com.engine.htxc.eseal.responseaction.coninterface; + +import com.alibaba.fastjson.JSONObject; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealTypeUtil.java + * @createTime 2022年06月26日 23:47:00 + */ +public interface EsealResponseInterface { + + public JSONObject receivestatus(JSONObject jsonObject); + +} \ No newline at end of file diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealClassType.java b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealClassType.java new file mode 100644 index 0000000..e45a92d --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealClassType.java @@ -0,0 +1,48 @@ +package com.engine.htxc.eseal.responseaction.num; + +import com.engine.htxc.eseal.type.IColumnType; +import com.engine.integration.util.StringUtils; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealClassType.java + * @createTime 2022年06月28日 23:06:00 + */ +public enum EsealClassType implements IColumnType { + + + CONTRACTOTCDERTRA("uf_otcdertra","com.engine.htxc.eseal.responseaction.business.contract.service.EsealContractReq"), + CONTRACTHTQC("uf_htqc","com.engine.htxc.eseal.responseaction.business.contract.service.EsealContractReq"), + OTHER("OTHER","-1"); + private final String key; + private final String value; + + private EsealClassType(final String key, final String value) { + this.key = key; + this.value = value; + } + + @Override + public String getKey() { + return key; + } + + @Override + public String getValue() { + return value; + } + + public static EsealClassType where(String key){ + if(StringUtils.isBlank(key)){ + return OTHER; + } + EsealClassType[] value= EsealClassType.values(); + for(EsealClassType esealClassType:value){ + if(key.equals(esealClassType.getKey())){ + return esealClassType; + } + } + return OTHER; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealEnumWhere.java b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealEnumWhere.java new file mode 100644 index 0000000..3d448aa --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealEnumWhere.java @@ -0,0 +1,13 @@ +package com.engine.htxc.eseal.responseaction.num; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName Eseal.java + * @createTime 2022年08月03日 14:22:00 + */ +public interface EsealEnumWhere { + + public T where(String key); + +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealTableEnum.java b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealTableEnum.java new file mode 100644 index 0000000..ee443f8 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealTableEnum.java @@ -0,0 +1,25 @@ +package com.engine.htxc.eseal.responseaction.num; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealTableEnum.java + * @createTime 2022年06月28日 00:22:00 + */ +public enum EsealTableEnum { + + SUCCESS(""); + + private final String value; + + private EsealTableEnum( final String value) { + + this.value = value; + } + + + + public String getValue() { + return value; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealTypeEnum.java b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealTypeEnum.java new file mode 100644 index 0000000..ce932c9 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/num/EsealTypeEnum.java @@ -0,0 +1,40 @@ +package com.engine.htxc.eseal.responseaction.num; + +import com.engine.integration.util.StringUtils; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealTypeEnum.java + * @createTime 2022年08月03日 15:25:00 + */ +public enum EsealTypeEnum { + EOHTER("-1"), + Electronics("0"), + ESecurity("1"), + Opponent("2"), + Online("3"); + + + private EsealTypeEnum( final String value) { + this.value = value; + } + private final String value; + public String getValue() { + return value; + } + + + public static EsealTypeEnum where(String key) { + if(StringUtils.isBlank(key)){ + return EOHTER; + } + EsealTypeEnum[] value= EsealTypeEnum.values(); + for(EsealTypeEnum esealTypeEnum:value){ + if(key.equals(esealTypeEnum.getValue())){ + return esealTypeEnum; + } + } + return null; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/num/FileSignsStatusEnum.java b/src/main/java/com/engine/htxc/eseal/responseaction/num/FileSignsStatusEnum.java new file mode 100644 index 0000000..a1e948a --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/num/FileSignsStatusEnum.java @@ -0,0 +1,47 @@ +package com.engine.htxc.eseal.responseaction.num; + +import com.engine.integration.util.StringUtils; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName FileSignsStatus.java + * @createTime 2022年08月03日 11:45:00 + */ +public enum FileSignsStatusEnum { + OTHER("-1"), + Ediet("0"), + Starting("1"), + Frozen("2"), + Rescinded("3"), + Expired("4"), + Completed("5"), + Refuse("6"), + WatermarkSucess("7"), + WatermarkRefuse("8"), + Abandon("9"); + + FileSignsStatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + private final String value; + + + public static FileSignsStatusEnum where(String key) { + if(StringUtils.isBlank(key)){ + return OTHER; + } + FileSignsStatusEnum[] value= FileSignsStatusEnum.values(); + for(FileSignsStatusEnum fileSignsStatusEnum:value){ + if(key.equals(fileSignsStatusEnum.getValue())){ + return fileSignsStatusEnum; + } + } + return null; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/num/SignsStatusEnum.java b/src/main/java/com/engine/htxc/eseal/responseaction/num/SignsStatusEnum.java new file mode 100644 index 0000000..842f5e0 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/num/SignsStatusEnum.java @@ -0,0 +1,44 @@ +package com.engine.htxc.eseal.responseaction.num; + +import com.engine.integration.util.StringUtils; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName SignsStatus.java + * @createTime 2022年08月03日 13:31:00 + */ +public enum SignsStatusEnum { + OTHER("-1"), + Wait("0"), + Starting("1"), + Rescinded("3"), + Completed("5"), + Refuse("6"), + Fail("7"); + + SignsStatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + private final String value; + + + public static SignsStatusEnum where(String key) { + if(StringUtils.isBlank(key)){ + return OTHER; + } + SignsStatusEnum[] value= SignsStatusEnum.values(); + for(SignsStatusEnum signsStatusEnum:value){ + if(key.equals(signsStatusEnum.getValue())){ + return signsStatusEnum; + } + } + return null; + } + +} diff --git a/src/main/java/com/engine/htxc/eseal/responseaction/util/EsealPesUtil.java b/src/main/java/com/engine/htxc/eseal/responseaction/util/EsealPesUtil.java new file mode 100644 index 0000000..38d222e --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/responseaction/util/EsealPesUtil.java @@ -0,0 +1,287 @@ +package com.engine.htxc.eseal.responseaction.util; + +import cn.hutool.core.date.DateTime; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.core.impl.Service; +import com.engine.htsc.seal.web.ManualworkflowAction; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.fileutil.GatewayUtil; +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.htxc.eseal.responseaction.config.ReponseSealConfig; +import com.engine.htxc.eseal.responseaction.num.EsealTypeEnum; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.GlobatTools.MessageDetailLog; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealPesUtil.java + * @createTime 2022年06月26日 23:46:00 + */ +public class EsealPesUtil extends Service { + + public String id = ""; + public String tablename = ""; + public String yzcode=""; + public ReponseSealConfig reponseSealConfig=new ReponseSealConfig(); + public String mainsignfieldname="htzwdzyyj"; + public String detailtable = ""; + public String detailid = ""; + public Map detailmap=new HashMap<>(); + public String detailtypefieldname = "yyzt"; + public String desealdocfieldname = "yyhwj"; + public String desealdocnum="1,3"; + public String detailyyid="yyid"; + public String detailelectronicfield="dzyyfs"; + public String detail="1,3"; + public MessageDetailLog messageDetailLog = null; + + public EsealPesUtil() { + + } + public EsealPesUtil(String value) { + tablename = value; + messageDetailLog = new MessageDetailLog(value); + } + + /** + *

拒签。将数据库明细表的值修改

+ * @title refuseSet + * @author K1810015 + * @updateTime 2022/9/13 13:49 + */ + public void refuseSet(String tablename, String request, String value) { + messageDetailLog.writLogsnotretrun(request, value, "2", messageDetailLog.refuse); + new ManualworkflowAction().callbackflow(value, "5"); + } + + /** + *

水印.不做任何处理。只写入日志

+ * @title watermarkSet + * @author K1810015 + * @updateTime 2022/9/13 13:49 + */ + public void watermarkSet(String tablename, String request, String value) { + messageDetailLog.writLogsnotretrun(request, value, "2", messageDetailLog.watermark); + } + + /** + *

水印失败,则失败

+ * @title watermarkfail + * @author K1810015 + * @updateTime 2022/9/13 13:48 + */ + public void watermarkfail(String tablename, String request, String value, String docid) { + messageDetailLog.writLogsnotretrun(request, value, "2", messageDetailLog.fail); + new ManualworkflowAction().callbackflow(value, "4"); + } + + + public void updateSignStatus(String yyzt, String yyhwj) { + + if (StringUtils.isBlank(detailtable) || StringUtils.isBlank(yyzt)) { + return; + } + Map wheremap = new HashMap<>(1); + wheremap.put("id", this.detailid); + Map setmap = new HashMap<>(2); + setmap.put(detailtypefieldname, yyzt); + setmap.put(desealdocfieldname, yyhwj); + JAVATools.Updatesql(setmap, this.detailtable, wheremap); + } + + public void updateMainTable(String newDzyyj){ + BaseBean bs = new BaseBean(); + RecordSet rs = new RecordSet(); + List dzyyjList = new ArrayList<>(); + String mainid = ""; + String dzyyj = ""; + String sql = "select id from "+this.tablename+" where id = '"+id+"'"; + bs.writeLog(sql); + rs.executeQuery(sql); + if(rs.next()){ + mainid = Util.null2String(rs.getString("id")); + } + + String detailsql = "select wm_concat_old("+desealdocfieldname+") as "+desealdocfieldname+" from "+detailtable+" where mainid = '"+id+"' and yyzt=3"; + bs.writeLog(detailsql); + rs.executeQuery(detailsql); + if(rs.next()){ + String yyhwj = Util.null2String(rs.getString(desealdocfieldname)); + if(StringUtils.isNotEmpty(yyhwj)){ + dzyyjList.addAll(Arrays.stream(yyhwj.split(",")).collect(Collectors.toList())); + } + } + + dzyyj = dzyyjList.stream().collect(Collectors.joining(",")); + bs.writeLog(mainsignfieldname+":"+dzyyj); + String updateSql = "update "+tablename+" set "+mainsignfieldname+"= '"+dzyyj+"' where id = '"+id+"'"; + bs.writeLog(updateSql); + rs.executeUpdate(updateSql); + } + + public String getDzyyfs(String docidStr){ + RecordSet rs = new RecordSet(); + + String dzyyfs = ""; + String sql = "select "+detailelectronicfield+" from "+detailtable+" where "+detailyyid+" = '"+docidStr+"'"; + rs.executeQuery(sql); + if(rs.next()){ + dzyyfs = Util.null2String(rs.getString("dzyyfs")); + } + return dzyyfs; + } + + public String getfiledocid(String fileid,String docidStr){ + RecordSet rs = new RecordSet(); + + String docid = ""; + String sql = "select "+fileid+" from "+detailtable+" where "+detailyyid+" = '"+docidStr+"'"; + rs.executeQuery(sql); + if(rs.next()){ + docid = Util.null2String(rs.getString(fileid)); + } + return docid; + } + + public void getdetailid(String newDzyyj){ + DbTools dbTools=new DbTools(); + Arrays.stream(desealdocnum.split(",")).forEach((item)->{ + String detailsql = "select * from "+tablename+"_dt"+item+" where "+detailyyid+" = '"+newDzyyj+"'"; + Map dtmap= dbTools.getsqltomap(detailsql,null); + if(dtmap!=null && dtmap.size()>0){ + String id = Util.null2String(dtmap.get("id")); + if(!StringUtils.isBlank(id)){ + this.detailid=id; + this.detailtable=tablename+"_dt"+item; + this.detailmap=dtmap; + } + } + }); + + } + + public String getSignCode(String id,String tablename){ + if(com.engine.integration.util.StringUtils.isBlank(id) || com.engine.integration.util.StringUtils.isBlank(tablename)){ + return ""; + } + RecordSet rs = new RecordSet(); + String yzbhvalue=""; + rs.execute("select wm_concat_old(yzbh) as yzbh from "+tablename+" where id in ("+id+")"); + if (rs.getArray().size()<=0) { + return ""; + } + while(rs.next()){ + yzbhvalue=Util.null2String(rs.getString("yzbh")) ; + } + return yzbhvalue; + } + + + public void updatiltable(Map setmap) { + if (StringUtils.isBlank(detailtable) || StringUtils.isBlank(detailid)) { + return; + } + Map wheremap = new HashMap<>(1); + wheremap.put("id", this.detailid); + JAVATools.Updatesql(setmap, this.detailtable, wheremap); + } + + /** + *

获取dpf文件

+ * @title getesealpdffileid + * @author K1810015 + * @updateTime 2022/9/13 13:48 + */ + public String getEsealPdfFileid(JSONObject docSignObject){ + StringBuilder fileId = new StringBuilder(); + JSONArray signedFileArray = docSignObject.getJSONArray("signedFile"); + for (int j = 0; j < signedFileArray.size(); j++) { + JSONObject signedObject = signedFileArray.getJSONObject(j); + fileId.append(signedObject.getString("fileId")); + } + return fileId.toString(); + } + + public String getEsealRxfFieldid(JSONObject docSignObject){ + StringBuilder fileId = new StringBuilder(); + JSONArray rxfFilesArray = docSignObject.getJSONArray("rxfFiles"); + if(rxfFilesArray!=null&&rxfFilesArray.size()>0){ + for (int j=0;j保存用印后文件

+ * @title savefileid + * @author K1810015 + * @updateTime 2022/8/3 11:32 + * @throws + */ + public int saveFileid(JSONObject docSignObject, + EsealTypeEnum esealTypeenum){ + int newdocid =-1; + String docidStr = docSignObject.get("docId").toString(); + String fileNamedisplay=docSignObject.get("fileNameDisplay").toString(); + String oldFileNamedisplay=docSignObject.get("fileNameDisplay").toString(); + String fileId=""; + List list=new ArrayList<>(); + switch (esealTypeenum) { + + case Opponent: + fileId=getEsealPdfFileid(docSignObject); + break; + case ESecurity:{ + //只是判断可不可保存,不一定返回的是pdf文件 + if(reponseSealConfig.securityautopdf){ + fileId=getEsealPdfFileid(docSignObject); + } + if(StringUtils.isBlank(fileId)){ + fileId=getEsealRxfFieldid(docSignObject); + if(fileNamedisplay.split("\\.").length>1){ + fileNamedisplay=fileNamedisplay.substring(0,fileNamedisplay.lastIndexOf("."))+".RXF"; + } + + } + break; + } + case Electronics: { + fileId=getEsealPdfFileid(docSignObject); + break; + } + case Online:{ + fileId=getEsealPdfFileid(docSignObject); + break; + } + default: + break; + } + CustomizeLog.printLog("docId:"+this.detailid+"fileId:"+fileId.toString()); + if(StringUtils.isBlank(fileId)){ + CustomizeLog.printLog("newdocid没有获取到:"+this.detailid); + return newdocid; + } + int olddocid= Util.getIntValue(Util.null2String(getfiledocid("wjmc",docidStr)),-1); + newdocid= Util.getIntValue(GatewayUtil.getWayToDocId(fileId,fileNamedisplay,olddocid),-1); + return newdocid; + + } + + +} + + diff --git a/src/main/java/com/engine/htxc/eseal/service/EsealService.java b/src/main/java/com/engine/htxc/eseal/service/EsealService.java new file mode 100644 index 0000000..1b9c78c --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/service/EsealService.java @@ -0,0 +1,40 @@ +package com.engine.htxc.eseal.service; + +import weaver.hrm.User; + +import java.util.List; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealService.java + * @createTime 2022年06月16日 13:22:00 + */ +public interface EsealService { + + /** + *

根据部门去建模表中取对应印章名称

+ * @title getsealname + * @author K1810015 + * @updateTime 2022/9/5 10:44 + */ + public Map getsealname(Map map,User user); + + /** + *

合同流程送eseal平台接口

+ * @title sendcontracteseal + * @author K1810015 + * @updateTime 2022/9/5 10:46 + */ + public String sendcontracteseal(Map map, User user); + + /** + *

根据eseal编号获取名称

+ * @title getSealNoToName + * @author K1810015 + * @updateTime 2022/9/5 10:46 + */ + public List> getSealNoToName(Map map, User user); + +} diff --git a/src/main/java/com/engine/htxc/eseal/service/SendSignetService.java b/src/main/java/com/engine/htxc/eseal/service/SendSignetService.java new file mode 100644 index 0000000..68eae32 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/service/SendSignetService.java @@ -0,0 +1,9 @@ +package com.engine.htxc.eseal.service; + +import java.util.Map; + +public interface SendSignetService { + + void sendsealworkflow(Map map); + +} diff --git a/src/main/java/com/engine/htxc/eseal/service/impl/EsealServiceImpl.java b/src/main/java/com/engine/htxc/eseal/service/impl/EsealServiceImpl.java new file mode 100644 index 0000000..ee0d8a7 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/service/impl/EsealServiceImpl.java @@ -0,0 +1,92 @@ +package com.engine.htxc.eseal.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.htsc.seal.web.SealSync; +import com.engine.htxc.eseal.business.contract.service.ContractEsealService; +import com.engine.htxc.eseal.business.contract.service.impl.ContractEsealServiceImpl; +import com.engine.htxc.eseal.dao.ContractBaseDao; +import com.engine.htxc.eseal.dao.EsealBaseDao; +import com.engine.htxc.eseal.service.EsealService; +import com.engine.htxc.eseal.uinterface.Eseal; +import com.engine.htxc.eseal.uinterface.EsealInit; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.DBTools; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EsealServiceImpl.java + * @createTime 2022年06月16日 13:22:00 + */ +public class EsealServiceImpl extends Service implements EsealService { + @Override + public String sendcontracteseal(Map map, User user) { + String docid = Util.null2String(map.get("docid")); + String id = Util.null2String(map.get("id")); + String type = Util.null2String(map.get("type")); + if(StringUtils.isBlank(docid) || StringUtils.isBlank(id) ||StringUtils.isBlank(type) ){ + return JAVATools.Apiretrun("400","参数有误"); + } + Eseal eseal= ServiceUtil.getService(ContractEsealServiceImpl.class).sendEseal(map,user); + eseal.sendseal(); + JSONObject jsonObject= eseal.callback(); + //初始化参数 + return jsonObject.toJSONString(); + } + + @Override + public Map getsealname(Map map,User user) { + //wf表示workflow,用于区分流程合 + String wftype="wf"; + String unnumber=Util.null2String(map.get("unnumber")); + String sealname= Util.null2String(map.get("sealname")); + String deptid= Util.null2String(map.get("deptid")); + String type= Util.null2String(map.get("type")); + Map resultMap = new HashMap<>(3); + if(StringUtils.isBlank(deptid) ||StringUtils.isBlank(unnumber) || StringUtils.isBlank(sealname)){ + return resultMap; + } + Arrays.stream(sealname.split(",")).forEach((value)->{ + Map mapvalue=new HashMap<>(3); + if(wftype.equals(type)){ + mapvalue= EsealBaseDao.getsealmap(unnumber,value,deptid); + }else{ + mapvalue= EsealBaseDao.getmodelsealmap(unnumber,value,deptid); + } + if(mapvalue!=null && mapvalue.size()>0){ + resultMap.put(value,mapvalue); + } + }); + return resultMap; + } + + @Override + public List> getSealNoToName(Map map, User user) { + List> list=new ArrayList<>(); + if (map == null || map.size() <= 0) { + return list; + } + String sealno=Util.null2String(map.get("sealno")); + + List> retlist= EsealBaseDao.getSealNoToName(sealno); + if(retlist.isEmpty()){ + return retlist; + } + list= retlist.stream().map(item-> { + Map itemmap=new HashMap<>(2); + itemmap.put("yzmc",item.get("yzmc")); + itemmap.put("yzbh",item.get("yzbh")); + return itemmap; + }).collect(Collectors.toList()); + return list; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/service/impl/SendSignetServiceImpl.java b/src/main/java/com/engine/htxc/eseal/service/impl/SendSignetServiceImpl.java new file mode 100644 index 0000000..1a1729a --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/service/impl/SendSignetServiceImpl.java @@ -0,0 +1,119 @@ +package com.engine.htxc.eseal.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.core.impl.Service; +import com.engine.htxc.eseal.dao.SendSignetDao; +import com.engine.htxc.eseal.service.SendSignetService; +import com.engine.integration.util.StringUtils; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.cus.HTUtil; +import weaver.interfaces.htsc.util.UploadDocUtil; + +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +public class SendSignetServiceImpl extends Service implements SendSignetService { + + @Override + public void sendsealworkflow(Map map) { + BaseBean bb=new BaseBean(); + UploadDocUtil uploadDocUtil=new UploadDocUtil(); + String detailid= Util.null2String(map.get("detailid")); + String signetdetailid= Util.null2String(map.get("signetdetailid")); + String requestid= Util.null2String(map.get("requestid")); + String requestname=Util.null2String(map.get("requestname")); + if(StringUtils.isBlank(detailid) || StringUtils.isBlank(signetdetailid) || + StringUtils.isBlank(requestid) || StringUtils.isBlank(requestname)){ + bb.writeLog("触发用印登记单错误!参数:"+"detailid:"+detailid+"signetdetailid:"+signetdetailid+"requestid:"+requestid+"requestname:"+requestname); + return; + } + + + + String formTable = SendSignetDao.getTableByRequestid(requestid); + String detailtable = formTable + "_dt" + detailid; + bb.writeLog("
formTable:" + formTable); + if (!"".equals(formTable)) { + List> docList = new ArrayList>(); + List> fileList = new ArrayList>(); //用印文件选择 + JSONObject jsonObject = new JSONObject(); + + + Map sealmap = SendSignetDao.getesealInfo(requestid, detailtable, formTable); + if (sealmap == null || sealmap.size() <= 0) { + bb.writeLog("用印登记单"); + return; + } + String id = Util.null2String(sealmap.get("id")); + String yz = Util.null2String(sealmap.get("yz")); + String zwpdf = Util.null2String(sealmap.get("zwpdf")); + String fjid = Util.null2String(sealmap.get("fjid")); + String ngr = Util.null2String(sealmap.get("ngr")); + String szbm = Util.null2String(sealmap.get("szbm")); + String szjg = Util.null2String(sealmap.get("szjg")); + String lxfs = Util.null2String(sealmap.get("lxfs")); + String jjcd = Util.null2String(sealmap.get("jjcd")); + String ngrq = Util.null2String(sealmap.get("ngrq")); + String fs = Util.null2String(sealmap.get("fs")); + String filedistinct = SendSignetDao.filedistinct(zwpdf, fjid); + if ("".equals(ngr) || "".equals(yz) || "".equals(filedistinct)) { + return; + } + + User usr = new User(Util.getIntValue(ngr)); + Map mapstr = new HashMap<>(); + JSONObject sealjson = new JSONObject(); + sealjson.put("yz", yz); + sealjson.put("yywj", filedistinct); + sealjson.put("ngr", ngr); + // sealjson.put("gllc", Util.null2String(requestid)); + sealjson.put("szbm", szbm); + sealjson.put("szjg", szjg); + sealjson.put("lxfs", lxfs); + sealjson.put("fs", fs); + sealjson.put("jjcd", jjcd); + sealjson.put("ngsj", ngrq); + sealjson.put("lylx", JAVATools.getmainunnumber(Util.null2String(requestid))); + // sealjson.put("fj", filedistinct); + sealjson.put("requestid", Util.null2String(requestid)); + sealjson.put("requestname", requestname); + bb.writeLog("公文类数据调用拥有登记单参数:" + sealjson.toJSONString()); + String url=new PropBean().getPropName("htoa.esealworkflow"); + String response=new HTUtil().httpPostRaw(url,sealjson.toJSONString(),null,"utf-8"); + if(StringUtils.isBlank(response)){ + return; + } + try { + JSONObject json = JSONObject.parseObject(response); + String status=Util.null2String(json.get("status")); + if(!"200".equals(status)){ + return ; + } + String datavalue=Util.null2String(json.get("data")); + if(StringUtils.isBlank(datavalue)){ + return ; + } + JSONObject jsonvalue = JSONObject.parseObject(datavalue); + String htoaid=Util.null2String(jsonvalue.get("id")); + if(StringUtils.isBlank(htoaid) ){ + return ; + } + Map updatemap=new HashMap<>(); + updatemap.put("id",id); + updatemap.put("tablename",formTable); + updatemap.put("htoagllc",htoaid); + + SendSignetDao.updatewfstatus(updatemap); + }catch (Exception e){ + + } + } + } + + +} diff --git a/src/main/java/com/engine/htxc/eseal/type/EffectType.java b/src/main/java/com/engine/htxc/eseal/type/EffectType.java new file mode 100644 index 0000000..beda4fd --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/type/EffectType.java @@ -0,0 +1,32 @@ +package com.engine.htxc.eseal.type; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EffectType.java + * @createTime 2022年06月22日 16:28:00 + */ +public enum EffectType implements IColumnType { + + //SINGLEWATERMARK("PAPER","0"), + ELECTRONIC("ELECTRONIC","0"), + PAPER("PAPER","1"), + NOWATERMARK("NOWATERMARK","2"); + private final String key; + private final String value; + + private EffectType(final String key, final String value) { + this.key = key; + this.value = value; + } + + @Override + public String getKey() { + return key; + } + + @Override + public String getValue() { + return value; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/type/Esealresult.java b/src/main/java/com/engine/htxc/eseal/type/Esealresult.java new file mode 100644 index 0000000..b000716 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/type/Esealresult.java @@ -0,0 +1,30 @@ +package com.engine.htxc.eseal.type; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName EffectType.java + * @createTime 2022年06月22日 16:28:00 + */ +public enum Esealresult implements IColumnType { + + SUCCESS("SUCCESS","2"), + ERROR("ERROR","4"); + private final String key; + private final String value; + + private Esealresult(final String key, final String value) { + this.key = key; + this.value = value; + } + + @Override + public String getKey() { + return key; + } + + @Override + public String getValue() { + return value; + } +} diff --git a/src/main/java/com/engine/htxc/eseal/type/IColumnType.java b/src/main/java/com/engine/htxc/eseal/type/IColumnType.java new file mode 100644 index 0000000..2e8d63f --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/type/IColumnType.java @@ -0,0 +1,19 @@ +package com.engine.htxc.eseal.type; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName IColumnType.java + * @createTime 2022年06月22日 16:30:00 + */ +public interface IColumnType { + /** + * 获取字段类型 + */ + String getValue(); + + /** + * 获取字段类型完整名 + */ + String getKey(); +} diff --git a/src/main/java/com/engine/htxc/eseal/uinterface/Eseal.java b/src/main/java/com/engine/htxc/eseal/uinterface/Eseal.java new file mode 100644 index 0000000..a40e21f --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/uinterface/Eseal.java @@ -0,0 +1,29 @@ +package com.engine.htxc.eseal.uinterface; + +import com.alibaba.fastjson.JSONObject; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName Eseal.java + * @createTime 2022年06月20日 14:31:00 + * @REMARK 信创环境下送用印统一管理 + */ +public interface Eseal{ + /** + *

发送用印平台请求

+ * @title sendseal + * @author K1810015 + * @updateTime 2022/9/13 10:16 + */ + public boolean sendseal(); + + /** + *

用印请求之后的回参处理

+ * @title callback + * @author K1810015 + * @updateTime 2022/9/13 10:16 + */ + public JSONObject callback(); + +} diff --git a/src/main/java/com/engine/htxc/eseal/uinterface/EsealInit.java b/src/main/java/com/engine/htxc/eseal/uinterface/EsealInit.java new file mode 100644 index 0000000..3eb5227 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/uinterface/EsealInit.java @@ -0,0 +1,394 @@ +package com.engine.htxc.eseal.uinterface; + + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.fileutil.GatewayUtil; +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.eseal.config.EsealConfig; +import static com.engine.htxc.eseal.type.EffectType.*; +import static com.engine.htxc.eseal.type.Esealresult.ERROR; +import static com.engine.htxc.eseal.type.Esealresult.SUCCESS; + +import com.engine.htxc.eseal.dao.EsealTableLinkDao; +import com.engine.integration.util.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import weaver.interfaces.htsc.GlobatTools.MessageDetailLog; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.cus.HTUtil; +import weaver.wps.doccenter.convert.DocTypeConvert; +import weaver.wps.doccenter.utils.Tools; +import java.text.MessageFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + *

提供用印流程所需要的通用子方法。需要用印的流程继承该类

+ * @author K1810015 + * @version 1.0.0 + * @ClassName EsealInit.java + * @createTime 2022年06月20日 15:09:00 + */ +public class EsealInit extends Service { + + + + public User user; + + public String id; + + public String fileid = "id"; + + public String docids = ""; + public String tablename; + public int detailnum; + public String detailname=""; + public String responsevalue = ""; + + public Map maintable; + + public List> deteillist; + + public EsealConfig esealConfig; + + public String url; + + public PropBean pb = new PropBean(); + + public JSONObject retjsonobject = new JSONObject(); + + public String requestvalue = ""; + + public Boolean flag=false; + + public boolean autopdf=false; + + public String autopdfname=""; + + public void init(Map map, User user) { + id = Util.null2String(map.get("id")); + detailnum = Util.getIntValue(Util.null2String(map.get("detailnum")), -1); + tablename = Util.null2String(map.get("tablename")); + detailname=tablename+"_dt"+detailnum; + String docid = Util.null2String(map.get("docid")); + if ("".equals(id) || detailnum <= 0 || user == null) { + return; + } + docids=docid; + if (esealConfig == null) { + esealConfig = new EsealConfig(); + } + esealConfig.linktalbeenum=tablename; + esealConfig.operator = new UserHt(user.getUID()); + this.user = user; + if (StringUtils.isBlank(tablename)) { + String tablenamevalue = JAVATools.getMaintable(id); + this.tablename = tablenamevalue; + this.fileid = "requestid"; + } + if (StringUtils.isBlank(tablename)) { + return; + } + String sql = "select * from " + tablename + " where 1=1"; + Map mainmap = new HashMap<>(1); + mainmap.put(fileid, id); + maintable = JAVATools.GetTableToMap(sql, mainmap); + String detailsql = "select detail.* from " + tablename + "_dt" + detailnum + " detail left join " + tablename + " dt on dt.id=detail.mainid where dt." + fileid + "='" + id + "' "; + if (!StringUtils.isBlank(docid)) { + detailsql += "and detail.wjmc in (" + Arrays.stream(docid.split(",")).map(item -> "'" + item + "'").collect(Collectors.joining(",")) + ")"; + } + deteillist = JAVATools.GetTableToListMap(detailsql, null); + } + + /** + * @throws + * @title 封装默认的数据 + * @author K1810015 + * @updateTime 2022/6/21 17:42 + * @Remark + */ + public JSONObject dataload() { + + if (maintable == null || maintable.size() <= 0 || + deteillist == null || deteillist.size() <= 0) { + return null; + } + if (esealConfig == null) { + esealConfig = new EsealConfig(); + } + String doctype = pb.getPropName("eseal.contract.doctype"); + esealConfig.docType = doctype; + Map mainmap = new HashMap(1); + esealConfig.map.forEach((key, value) -> { + mainmap.put(key, this.maintable.get(Util.null2String(value))); + }); + + String flownum=Util.null2String(mainmap.get("flowNum")); + if(!StringUtils.isBlank(flownum)){ + EsealTableLinkDao esealTableLinkDao=new EsealTableLinkDao(); + Map esealinkmap=new HashMap<>(1); + esealinkmap.put("flownum",flownum); + esealTableLinkDao.insertlink(esealinkmap,esealConfig); + + } + List detaillistnew = new ArrayList(); + this.deteillist.forEach((Map detailmap) -> { + Map detailmapnew = new HashMap<>(5); + + String id = Util.null2String(detailmap.get("id")); + String wjmc = Util.null2String(detailmap.get("wjmc")); + String dzyyfs = Util.null2String(detailmap.get("dzyyfs")); + int dsmdy = Util.getIntValue(Util.null2String(detailmap.get("dsmdy")), -1); + + if ("0".equals(dzyyfs) || "1".equals(dzyyfs) || "2".equals(dzyyfs) || "3".equals(dzyyfs)) { + //获取文件名称的信息 + Map filemap = getfilemap(wjmc); + if (filemap != null) { + detailmapnew.put("uniqueKey", filemap.get("fileid")); + detailmapnew.put("fileNameDisplay", filemap.get("imagefilename")); + String docid= filemap.get("imagefileid")+ DateUtil.format(DateTime.now(),"yyyyMMddHHmmss"); + updateyyid(id,docid); + detailmapnew.put("docId",docid); + if ("0".equals(dzyyfs)) { + esealConfig.effectType=ELECTRONIC; + } else if ("1".equals(dzyyfs)) { + if (dsmdy > 0 && esealConfig.acrossSealSkipPage.size() - 1 >= dsmdy) { + detailmapnew.put("acrossSealSkipPage", Util.null2String(esealConfig.acrossSealSkipPage.get(dsmdy))); + } + esealConfig.effectType=PAPER; + String yqxdyr = Util.null2String(detailmap.get("yqxdyr")); + String fwdyfs = Util.null2String(detailmap.get("fwdyfs")); + detailmapnew.put("printNum", fwdyfs); + detailmapnew.put("printuser", yqxdyr); + }else if("2".equals(dzyyfs)){ + esealConfig.effectType=NOWATERMARK; + }else if("3".equals(dzyyfs)){ + esealConfig.effectType=ELECTRONIC; + esealConfig.esealtype="online"; + esealConfig.counterpartyids=Util.null2String(this.maintable.get("htdsf")); + } + detailmapnew.put("effectType", esealConfig.effectType); + detaillistnew.add(detailmapnew); + } + + } + + }); + Map map = esealConfig.signUsermap().flowOwnermapmap().docSigns(detaillistnew).map; + map.put("appId", pb.getPropName("eseal.contract.appid")); + map.put("secret", pb.getPropName("eseal.contract.secret")); + if (mainmap != null && mainmap.size() > 0) { + mainmap.forEach((key, value) -> { + map.put(Util.null2String(key), Util.null2String(value)); + }); + } + JSONObject jsonObject = new JSONObject(map); + return jsonObject; + } + + + public void sendpost(String body) { + CustomizeLog.printLog(body); + + String response = ""; + + try { + PropBean pb = new PropBean(); + if (StringUtils.isBlank(url)) { + url=Util.null2String(pb.getPropName("eseal.url")); + } + CustomizeLog.printLog(url); + requestvalue=body; + response = new HTUtil().httpPostRaw(url, body, null, null); + flag=true; + } catch (Exception e) { + + } + + responsevalue = response; + } + + public void callbacktble(String tablename,String fileidvalue,String where) { + flag=false; + if(StringUtils.isBlank(tablename) || StringUtils.isBlank(fileidvalue) || StringUtils.isBlank(where)){ + return; + } + MessageDetailLog messageDetailLog=new MessageDetailLog("uf_htqc"); + try{ + if (StringUtils.isBlank(responsevalue)) { + retjsonobject.put("status", "500"); + retjsonobject.put("error", "手动签章接口返回结果为空"); + return ; + } + JSONObject res = JSONObject.parseObject(responsevalue); + //标识200-成功,否则失败 + String msg = Util.null2String(res.get("msg")); + Map wheremap=new HashMap<>(1); + wheremap.put("id",id); + String updateSql = "update "+this.tablename+"_dt"+this.detailnum+" set yyzt = ''{0}'',qrdzyy = ''{1}''"; + if (!"success".equals(msg)) { + retjsonobject.put("status", "500"); + retjsonobject.put("error", "送e-seal用印失败"); + updateSql= MessageFormat.format(updateSql,ERROR.getValue(),"0"); + updateSql=updateSql+where; + String reqvalue=requestvalue; + + messageDetailLog.writeinseertLogs(id, reqvalue, "1", messageDetailLog.fail, messageDetailLog.success, responsevalue); + updatestatus(updateSql); + flag=false; + return ; + } + updateSql= MessageFormat.format(updateSql,SUCCESS.getValue(),"1"); + updateSql=updateSql+where; + updatestatus(updateSql); + messageDetailLog.writeinseertLogs(id,requestvalue, "1", messageDetailLog.success, messageDetailLog.success, responsevalue); + flag=true; + } + catch(Exception e) + { + e.printStackTrace(); + retjsonobject.put("status", "500"); + retjsonobject.put("error", "送e-seal用印失败"); + } +} + + public Boolean updatestatus(String sql){ + if(StringUtils.isBlank(sql) || sql.indexOf("where")<0){ + return false; + } + RecordSet rs=new RecordSet(); + Boolean flag= rs.execute(sql); + return flag; + } + + + + /** + * @title 明细表修改状态 + * @author K1810015 + * @updateTime 2022/6/21 15:18 + * @Remark + * @throws + */ + public void updatestatus(Map setmap,String detailid){ + + CustomizeLog.printLog("detailid:"+detailid+"setmap"+setmap); + if(setmap==null || setmap.size()<=0 ){ + CustomizeLog.printLog("参数为空"); + } + Map wheremap=new HashMap<>(1); + if(StringUtils.isBlank(detailid)){ + wheremap.put("mainid",this.id); + }else{ + wheremap.put("id",detailid); + } + JAVATools.Updatesql(setmap,this.tablename+"_dt"+this.detailnum,wheremap); + } + + + public Map getfilemap(String wjmc){ + String sql =" select t.maincategory,t.docsubject,t.seccategory,t.docextendname,l.imagefilename,t.doctype,p.filesize, " + + " l.docfiletype,p.iszip,p.fileid,p.imagefiletype,p.imagefileid,p.filerealpath,t.doccreaterid " + + " from docdetail t " + + " inner join docimagefile l on l.docid = t.id " + + " inner join imagefile p on p.imagefileid = l.imagefileid " + + " where docid=? and versionid IN(select max(versionid) from DocImageFile where docid=? ) "; + Map map= new DbTools().getsqltomap(sql,wjmc,wjmc); + if(map==null || map.size()<=0){ + return null; + } + int newimagefileid=0; + int imagefileid=Util.getIntValue(Util.null2String(map.get("imagefileid")),-1); + if(autopdf &&!StringUtils.isBlank(autopdfname)){ + Map autofileidmap =getautopdf(Util.null2String(imagefileid)); + if(autofileidmap!=null && autofileidmap.size()>0){ + Map retmap=new HashMap<>(3); + retmap.put("fileid",autofileidmap.get("fileid")); + retmap.put("imagefilename",autofileidmap.get("name")); + retmap.put("imagefileid",newimagefileid); + CustomizeLog.printLog(retmap.toString()); + return retmap; + } + } + String docsubject=Util.null2String(map.get("docsubject")); + String imagefilename=Util.null2String(map.get("imagefilename")); + String fileid=Util.null2String(map.get("fileid")); + if(StringUtils.isBlank(imagefilename) ||StringUtils.isBlank(docsubject) || imagefilename.split("\\.").length<=1 ){ + return null; + } + String doctype=imagefilename.split("\\.")[imagefilename.split("\\.").length-1]; + if("pdf".equals(doctype.toLowerCase())){ + if(StringUtils.isBlank(fileid)){ + fileid=GatewayUtil.sendGateway(imagefileid,docsubject+".pdf"); + } + }else{ + JSONArray jsonArray=new JSONArray(); + CustomizeLog.printLog("imagefileid:"+imagefileid+"docsubject"+docsubject); + Map pdfmap = new HashMap(5); + String oldImagefilenamepdf = (!Tools.isEmptyOrNull(imagefilename) && imagefilename.contains(".") ? imagefilename.substring(0, imagefilename.lastIndexOf(".")) : imagefilename) + ".pdf"; + pdfmap.put("imagefileid", imagefileid + ""); + pdfmap.put("fromMould","ecology"); + pdfmap.put("fileName", imagefilename); + pdfmap.put("targetFileFormat", "PDF"); + pdfmap.put("targetFilename", oldImagefilenamepdf); + DocTypeConvert convertDocToPdf = new DocTypeConvert(this.user); + newimagefileid= convertDocToPdf.convertDocType(pdfmap); + if(newimagefileid>0){ + fileid=GatewayUtil.sendGateway(imagefileid,docsubject+".pdf"); + imagefilename=oldImagefilenamepdf; + } + } + Map retmap=new HashMap<>(3); + retmap.put("fileid",fileid); + retmap.put("imagefilename",imagefilename); + retmap.put("imagefileid",newimagefileid); + CustomizeLog.printLog(retmap.toString()); + return retmap; + } + + public String getSignCode(String id,String tablename){ + if(StringUtils.isBlank(id) || StringUtils.isBlank(tablename)){ + return ""; + } + RecordSet rs = new RecordSet(); + String yzbhvalue=""; + rs.execute("select wm_concat_old(yzbh) as yzbh from "+tablename+" where yzbh in ("+id+")"); + if (rs.getArray().size()<=0) { + return ""; + } + while(rs.next()){ + yzbhvalue=Util.null2String(rs.getString("yzbh")) ; + } + return yzbhvalue; + } + + private Map getautopdf(String imagefileid){ + Map rmap=new HashMap<>(2); + String sql="select * from "+ autopdfname+" where 1=1 and imagefileid=?"; + Map retmap=new DbTools().getsqltomap(sql,imagefileid); + if(retmap==null || retmap.size()<=0){ + return rmap; + } + rmap.put("fileid",retmap.get("wgid")); + rmap.put("name",retmap.get("name")); + return rmap; + } + + + public void updateyyid(String detailid, String yyid){ + Map setmap=new HashMap<>(1); + setmap.put(this.esealConfig.detailyyid, yyid); + Map wheremap=new HashMap<>(1); + wheremap.put("id",detailid); + DbTools dbTools=new DbTools(); + dbTools.updateSql(this.detailname,setmap,wheremap); + } +} diff --git a/src/main/java/com/engine/htxc/eseal/web/EsealAction.java b/src/main/java/com/engine/htxc/eseal/web/EsealAction.java new file mode 100644 index 0000000..5bc13b8 --- /dev/null +++ b/src/main/java/com/engine/htxc/eseal/web/EsealAction.java @@ -0,0 +1,75 @@ +package com.engine.htxc.eseal.web; + + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.eseal.service.impl.EsealServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +/** + *

送用印流程入口

+ * @author K1810015 + * @version 1.0.0 + * @ClassName esealAction.java + * @createTime 2022年06月16日 11:41:00 + * @REMARK + */ +public class EsealAction { + + private EsealServiceImpl esealService=ServiceUtil.getService(EsealServiceImpl.class); + + /** + *

合同流程送eseal关联

+ * @title sendeseal + * @author K1810015 + * @updateTime 2022/9/13 10:11 + */ + @POST + @Path("/sendeseal") + @Produces(MediaType.TEXT_PLAIN) + public String sendeseal(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return esealService.sendcontracteseal(ParamUtil.request2Map(request), user); + } catch (Exception e) { + return JAVATools.Apiretrun("400", "error"); + } + //数据转换 + } + + /** + *

查询eseal名称

+ * @title getsealname + * @author K1810015 + * @updateTime 2022/9/13 10:12 + */ + @POST + @Path("/getsealname") + @Produces({MediaType.TEXT_PLAIN}) + public String getsealname(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map retmap = new HashMap(1); + JAVATools.SetCmdwritelog("----getsealname-----"); + try { + User user = HrmUserVarify.getUser(request, response); + retmap = esealService.getsealname(ParamUtil.request2Map(request),user); + } catch (Exception e) { + return JAVATools.Apiretrun("400", "error"); + } + return JAVATools.Apiretrun("200", new JSONObject(retmap)); + } + + + +} diff --git a/src/main/java/com/engine/htxc/htqc/dao/HtqcDao.java b/src/main/java/com/engine/htxc/htqc/dao/HtqcDao.java new file mode 100644 index 0000000..f82812d --- /dev/null +++ b/src/main/java/com/engine/htxc/htqc/dao/HtqcDao.java @@ -0,0 +1,216 @@ +package com.engine.htxc.htqc.dao; + +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810039 + * @version: 1.0 + * @CreateDate: 2022-09-23 11:31 + * @Description: 合同模块相关Dao + * @ModifyLog: + **/ +@Slf4j +public class HtqcDao { + + /** + * 根据产品id获取对应的对手方编码和名称 + * @param productIds 产品id + * @return 对手方 map{编码:名称} + */ + public static Map getDsfNameAndCodeDao(String productIds) { + log.info("productIds:[{}]",productIds); + Map dsfMap = new HashMap<>(); + final RecordSet rs = new RecordSet(); + String prodIds = converString(productIds); + log.info("prodIds:[{}]",prodIds); + String sql = "select distinct a.SOCIALCREDITCODE,b.DSFMC from uf_prodcontrelation a left join uf_dsfgl b on b.DSFBM = a.SOCIALCREDITCODE where a.PRODUCTID in ("+prodIds+")"; + log.info(sql); + try { + rs.execute(sql); + while (rs.next()){ + dsfMap.put(Util.null2String(rs.getString("SOCIALCREDITCODE")),Util.null2String(rs.getString("DSFMC"))); + } + } catch (Exception e) { + log.error("getDsfNameAndCode查询数据异常:",e); + } + log.info("dsfMap:[{}]", JSON.toJSONString(dsfMap)); + return dsfMap; + } + + + public static Map getContractInfoDao(String htbhs) { + log.info("htbhs:[{}]",htbhs); + Map resMap = new HashMap<>(); + final RecordSet rs = new RecordSet(); + String condition = String.format("'%s'", StringUtils.join(htbhs.split(","),"','")); + String validSql = " select htlx,count(1) num from uf_contractlist " + + "where htbh in ("+condition+") group by htlx "; + log.info(validSql); + rs.execute(validSql); + int count = rs.getCounts(); + resMap.put("count",count); + log.info("count:[{}]",count); + + if(count == 1){ + rs.next(); + String htlx = Util.null2String(rs.getString("htlx")); + resMap.put("htlx",htlx); + log.info("htlx:[{}]",htlx); + // 业务类 + if(htlx.contains("YW")){ + Map yspflMap = new HashMap<>(); + String ywSql = "select yspfl from uf_otcdertra where HTBH in ("+condition+")"; + log.info(ywSql); + RecordSet ywRs = new RecordSet(); + ywRs.execute(ywSql); + while (ywRs.next()){ + String yspfl = Util.null2String(ywRs.getString("yspfl")); + log.info("yspfl:[{}]",yspfl); + yspflMap.put(yspfl,yspfl); + } + log.info("yspflMap:[{}]",JSON.toJSONString(yspflMap)); + resMap.put("yspfl",yspflMap.size()); + }else { + resMap.put("yspfl",1); + } + + //查询合同所有附件 + String fjids = ""; + // by wf 添加印章字段、常用印章字段 + List yzlist=new ArrayList<>(); + List cyyzlist=new ArrayList<>(); + List ztlist=new ArrayList<>(); + RecordSet rs2 = new RecordSet(); + + String configSql = " select a.jmbd maintable,b.jmbd dttable,fjzd from uf_htspckhtqcpzb a, uf_htspckhtqcpzb_dt1 b " + + " where a.id=b.mainid and htfl='"+htlx+"'"; + log.info(configSql); + rs.execute(configSql); + while (rs.next()){ + String maintable = Util.null2String(rs.getString("maintable")); + String dttable = Util.null2String(rs.getString("dttable")); + String fjzd = Util.null2String(rs.getString("fjzd")); + + String fjSql = " select "+fjzd+" from "+maintable+" a,"+dttable+" b where a.id=b.mainid and htbh in("+condition+")"; + log.info(fjSql); + rs2.execute(fjSql); + while(rs2.next()){ + String fj = Util.null2String(rs2.getString(fjzd)); + fjids += fj+","; + } + log.info("1-fjids:[{}]",fjids); + + String yzSql = " select yz,cyyz,zt from "+maintable+" where htbh in("+condition+")"; + log.info(yzSql); + rs2.execute(yzSql); + while(rs2.next()){ + yzlist.add(Util.null2String(rs2.getString("yz"))); + cyyzlist.add(Util.null2String(rs2.getString("cyyz"))); + ztlist.add(Util.null2String(rs2.getString("zt"))); + } + } + if(StringUtils.isNotBlank(fjids)){ + fjids = fjids.substring(0,fjids.length()-1); + } + log.info("2-fjids:[{}]",fjids); + boolean flag= true; + if(!ztlist.isEmpty()){ + flag= ztlist.stream().allMatch(item-> (",0,6,").contains("," + item + ",")); + } + resMap.put("htfj",fjids); + resMap.put("flag",flag); + resMap.put("yz", Arrays.stream(String.join(",", yzlist).split(",")).distinct().collect(Collectors.joining(",")) ); + resMap.put("cyyz",Arrays.stream(String.join(",", cyyzlist).split(",")).distinct().collect(Collectors.joining(","))); + } + log.info("resMap:[{}]", JSON.toJSONString(resMap)); + return resMap; + } + + + /** + * 将"1,2,3,.."格式的字符串,转换成"'1','2','3',..."格式的字符串 + * @param strs + * @return + */ + public static String converString(String strs){ + if (StringUtils.isNotBlank(strs)){ + String[] idStrs = strs.trim().split(","); + if (idStrs.length > 0){ + StringBuffer sbf = new StringBuffer(); + for (String str : idStrs) { + if (StringUtils.isNotBlank(str)){ + sbf.append("'").append(str.trim()).append("'").append(","); + } + } + if (sbf.length() > 0){ + sbf = sbf.deleteCharAt(sbf.length() - 1); + return sbf.toString(); + } + } + } + return ""; + } + + public static int getCurrentUserRole(String currentUserId){ + log.info("currentUserId:[{}]",currentUserId); + // 获取 loginId + String loginId = ""; + try { + String sql = "select LOGINID from HRMRESOURCE where ID = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql,currentUserId); + if (rs.next()){ + loginId = Util.null2String(rs.getString("LOGINID")); + } + log.info("loginId:[{}]",loginId); + } catch (Exception e) { + log.error("查询用户loginId出错:",e); + } + if (StringUtils.isBlank(loginId)){ + log.info("当前用户[{}]的loginId未查到,请检查",currentUserId); + return -1; + } + + PropBean pb = new PropBean(); + // 总部办公室归档管理员角色,成员 loginId + String [] zbbgsSysAdminArr = pb.getPropName("ht_zbbgsgdgly").split(","); + // 部门年度归档管理员角色,成员loginId + String [] bmndSysAdminArr = pb.getPropName("ht_bmndgdgly").split(","); + // 业务主管部门归档管理员角色,成员loginId + String [] ywzgbmSysAdminArr = pb.getPropName("ht_ywzgbmgdgly").split(","); + + int role = -1; + // 判断当前用户的角色 + if (ArrayUtils.contains(zbbgsSysAdminArr,loginId)){ + // 总部办公室归档管理员 + log.info("当前用户[{}]为总部办公室归档管理员",loginId); + role = 0; + }else if (ArrayUtils.contains(bmndSysAdminArr,loginId)){ + // 部门年度归档管理员 + log.info("部门年度归档管理员-loginId:[{}]",loginId); + role = 1; + }else if (ArrayUtils.contains(ywzgbmSysAdminArr,loginId)){ + // 业务主管部门归档管理员 + log.info("业务主管部门归档管理员-loginId:[{}]",loginId); + role = 2; + }else { + // 普通用户 + log.info("普通用户-loginId:[{}]",loginId); + role = 3; + } + log.info("用户[{}]的身份:[{}]",loginId,role); + return role; + } + +} diff --git a/src/main/java/com/engine/htxc/htqc/service/HtqcYwService.java b/src/main/java/com/engine/htxc/htqc/service/HtqcYwService.java new file mode 100644 index 0000000..f2430c9 --- /dev/null +++ b/src/main/java/com/engine/htxc/htqc/service/HtqcYwService.java @@ -0,0 +1,11 @@ +package com.engine.htxc.htqc.service; + +import java.util.Map; + +public interface HtqcYwService { + Map getDsf(String productIds); + + Map getContractInfo(String htbhs); + + int getCurrentUserRole(String currentUserId); +} diff --git a/src/main/java/com/engine/htxc/htqc/service/impl/HtqcYwServiceImpl.java b/src/main/java/com/engine/htxc/htqc/service/impl/HtqcYwServiceImpl.java new file mode 100644 index 0000000..0256fc4 --- /dev/null +++ b/src/main/java/com/engine/htxc/htqc/service/impl/HtqcYwServiceImpl.java @@ -0,0 +1,38 @@ +package com.engine.htxc.htqc.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.htqc.dao.HtqcDao; +import com.engine.htxc.htqc.service.HtqcYwService; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810039 + * @version: 1.0 + * @CreateDate: 2022-09-14 16:39 + * @Description: 合同起草 业务类型 + * @ModifyLog: + **/ +@Slf4j +public class HtqcYwServiceImpl extends Service implements HtqcYwService { + + @Override + public Map getDsf(String productIds) { + return HtqcDao.getDsfNameAndCodeDao(productIds); + } + + @Override + public Map getContractInfo(String htbhs) { + return HtqcDao.getContractInfoDao(htbhs); + } + + @Override + public int getCurrentUserRole(String currentUserId) { + return HtqcDao.getCurrentUserRole(currentUserId); + } + + +} diff --git a/src/main/java/com/engine/htxc/htqc/web/HtqcYwAction.java b/src/main/java/com/engine/htxc/htqc/web/HtqcYwAction.java new file mode 100644 index 0000000..329f77c --- /dev/null +++ b/src/main/java/com/engine/htxc/htqc/web/HtqcYwAction.java @@ -0,0 +1,108 @@ +package com.engine.htxc.htqc.web; + +import com.alibaba.fastjson.JSON; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.common.EcologyResponseDTO; +import com.engine.htxc.htqc.service.HtqcYwService; +import com.engine.htxc.htqc.service.impl.HtqcYwServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810039 + * @version: 1.0 + * @CreateDate: 2022-09-14 16:35 + * @Description: 合同模块相关接口 + * @ModifyLog: + **/ +@Slf4j +public class HtqcYwAction { + public HtqcYwService getHtqcYwService (){ + return ServiceUtil.getService(HtqcYwServiceImpl.class); + } + /** + * 通过合同相关产品的id,获取产品对应的对手方编码 + */ + @POST + @Path("/getDsf") + @Produces({MediaType.TEXT_PLAIN}) + public String getDsf(@Context HttpServletRequest request, @Context HttpServletResponse response){ + try{ + String productIds = request.getParameter("productIds"); + log.info("getDsf--begin--传入数据productIds:[{}]",productIds); + if (StringUtils.isBlank(productIds)){ + log.error("productIds is blank"); + return EcologyResponseDTO.failJson("productIds为空,请检查"); + } + Map dsfMap = getHtqcYwService().getDsf(productIds); + if (dsfMap.isEmpty()){ + return EcologyResponseDTO.failJson("返回数据dsfMap为空,请检查"); + } + log.info("getDsf--end--返回数据dsfMap:[{}]", JSON.toJSONString(dsfMap)); + return EcologyResponseDTO.successJson(dsfMap); + }catch (Exception e){ + log.error("getDsf 接口异常,请检查:",e); + return EcologyResponseDTO.failJson("getDsf 接口异常,请检查"); + } + } + + @GET + @Path("/getContractInfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getContractInfo(@Context HttpServletRequest request, @Context HttpServletResponse response){ + try{ + String htbhs = request.getParameter("htbhs"); + log.info("getContractInfo--begin--htbhs:[{}]",htbhs); + if (StringUtils.isBlank(htbhs)){ + log.error("htbhs is blank"); + return EcologyResponseDTO.failJson("htbhs为空,请检查"); + } + Map resMap = getHtqcYwService().getContractInfo(htbhs); + log.info("getContractInfo--end--返回数据resMap:[{}]", JSON.toJSONString(resMap)); + return EcologyResponseDTO.successJson(resMap); + }catch (Exception e){ + log.error("getContractInfo 接口异常,请检查:",e); + return EcologyResponseDTO.failJson("getContractInfo 接口异常,请检查"); + } + } + + /** + * 获取当前用户的身份 + */ + @GET + @Path("/getCurrentUserRole") + @Produces({MediaType.TEXT_PLAIN}) + public String getCurrentUserRole(@Context HttpServletRequest request, @Context HttpServletResponse response){ + try{ + String currentUserId = request.getParameter("currentUserId"); + log.info("getCurrentUserRole--begin--currentUserId:[{}]",currentUserId); + if (StringUtils.isBlank(currentUserId)){ + log.error("currentUserId is blank"); + return EcologyResponseDTO.failJson("currentUserId为空,请检查"); + } + int role = getHtqcYwService().getCurrentUserRole(currentUserId); + if (role < 0){ + log.error("role < 0,请检查"); + return EcologyResponseDTO.failJson("role < 0,请检查"); + } + log.info("getCurrentUserRole--end--返回数据role:[{}]", role); + return EcologyResponseDTO.successJson(role); + }catch (Exception e){ + log.error("getCurrentUserRole 接口异常,请检查:",e); + return EcologyResponseDTO.failJson("getCurrentUserRole 接口异常,请检查"); + } + } + +} diff --git a/src/main/java/com/engine/htxc/itcglc/cmd/CreateRequestCmd.java b/src/main/java/com/engine/htxc/itcglc/cmd/CreateRequestCmd.java new file mode 100644 index 0000000..19b9411 --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/cmd/CreateRequestCmd.java @@ -0,0 +1,235 @@ +package com.engine.htxc.itcglc.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.itcglc.action.ItcglcCreateCgrwdAction; +import weaver.interfaces.htsc.util.HT_WorkflowInfo; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class CreateRequestCmd extends AbstractCommonCommand> { + + public CreateRequestCmd(Map params, User user) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + int isok = 0; + HT_WorkflowInfo HT_WorkflowInfo = new HT_WorkflowInfo(); + Map apimap = new HashMap(); + String requestid = Util.null2String(params.get("requestid")); + bb.writeLog("requestid:"+requestid); + ItcglcCreateCgrwdAction ItcglcCreateCgrwdAction = new ItcglcCreateCgrwdAction(); + try{ + String formtable = HT_WorkflowInfo.getFormTableByRequestid(requestid); + String requestname = HT_WorkflowInfo.getRequestnameByRequestid(requestid); + int dt5count = 0; + String dtsql = " select * from "+formtable+" t inner join "+formtable+"_dt5 l on l.mainid = t.id where requestid="+requestid; + rs.execute(dtsql); + while(rs.next()){ + dt5count++; + } + if(dt5count >0){ + isok = ItcglcCreateCgrwdAction.createRequest(requestid,formtable,requestname); + if(isok > 0){ + + int loginid = user.getUID(); + PropBean pb = new PropBean(); + String yjngr = pb.getPropName("cgd_yj_ngr"); + String fyjngr = pb.getPropName("cgd_fyj_ngr"); + + int yj_bool = 0 ; + int fyj_bool = 0; + String yjngrid = "" ; + String fyjngrid = "" ; + if(!"".equals(yjngr)) { + String hrmSql = " select id from hrmresource where workcode='"+yjngr+"' and belongto is null" ; + rs.execute(hrmSql); + if(rs.next()){ + yjngrid = Util.null2String(rs.getString("id")) ; + } + ; + String selSql = " select requestid from workflow_currentoperator where requestid="+requestid+" and userid="+yjngrid ; + rs.execute(selSql); + if(rs.next()){ + yj_bool++; + } + } + if(!"".equals(fyjngr)) { + + String hrmSql = " select id from hrmresource where workcode='"+fyjngr+"' and belongto is null" ; + rs.execute(hrmSql); + if(rs.next()){ + fyjngrid = Util.null2String(rs.getString("id")) ; + } + + String selSql = " select requestid from workflow_currentoperator where requestid="+requestid+" and userid="+fyjngrid ; + rs.execute(selSql); + if(rs.next()){ + fyj_bool++; + } + } + + if(yj_bool ==0 || fyj_bool==0) + { + String currentnodeid = "" ; + String sql = " select currentnodeid from workflow_requestbase h where requestid= "+requestid; + rs.execute(sql); + if (rs.next()){ + currentnodeid = Util.null2String(rs.getString("currentnodeid")); + } + if(!"".equals(currentnodeid)){ + + String curr_requestid = "" ; + String groupid = "" ; + String workflowid = "" ; + String workflowtype = "" ; + String nodeid = "" ; + String groupdetailid = "" ; + + String selSql = " select requestid,groupid,workflowid,workflowtype,nodeid,groupdetailid from workflow_currentoperator where requestid="+curr_requestid+" and nodeid="+currentnodeid+" order by showorder desc" ; + rs.execute(selSql); + if(rs.next()){ + curr_requestid = Util.null2String(rs.getString("requestid")); + groupid = Util.null2String(rs.getString("groupid")); + workflowid = Util.null2String(rs.getString("workflowid")); + workflowtype = Util.null2String(rs.getString("workflowtype")); + nodeid = Util.null2String(rs.getString("nodeid")); + groupdetailid = Util.null2String(rs.getString("groupdetailid")); + } + + String agentorbyagentid = "-1"; + String agenttype = "0"; + String showorder = "1"; + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");//设置日期格式 + + String receivedate = sdf1.format(new Date()) ; + String receivetime = sdf2.format(new Date()) ; + if(yj_bool ==0){ + sql = " select max(showorder)+1 as showorder from workflow_currentoperator where requestid= "+curr_requestid+" and nodeid="+currentnodeid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + showorder = Util.null2String(rs.getString("showorder")); + } + + sql = " insert into workflow_currentoperator(requestid,userid,groupid,workflowid,workflowtype,usertype,nodeid,agentorbyagentid,\n" + + " agenttype,showorder,receivedate,receivetime,viewtype,iscomplete,islasttimes,groupdetailid,needwfback,isremark,preisremark)\n" + + " values("+curr_requestid+","+yjngrid+","+groupid+","+workflowid+","+workflowtype+",0,"+nodeid+","+agentorbyagentid+","+agenttype+","+showorder+",'"+receivedate+"','"+receivetime+"',0,0,1,"+groupdetailid+",1,8,8)" ; + bb.writeLog("sql:"+sql); + rs.executeUpdate(sql); + } + + if(fyj_bool ==0){ + + sql = " select max(showorder)+1 as showorder from workflow_currentoperator where requestid= "+curr_requestid+" and nodeid="+currentnodeid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + showorder = Util.null2String(rs.getString("showorder")); + } + + sql = " insert into workflow_currentoperator(requestid,userid,groupid,workflowid,workflowtype,usertype,nodeid,agentorbyagentid,\n" + + " agenttype,showorder,receivedate,receivetime,viewtype,iscomplete,islasttimes,groupdetailid,needwfback,isremark,preisremark)\n" + + " values("+curr_requestid+","+fyjngrid+","+groupid+","+workflowid+","+workflowtype+",0,"+nodeid+","+agentorbyagentid+","+agenttype+","+showorder+",'"+receivedate+"','"+receivetime+"',0,0,1,"+groupdetailid+",1,8,8)" ; + bb.writeLog("sql:"+sql); + rs.executeUpdate(sql); + } + } + } + } + }else{ + isok = -1000; + } + + }catch (Exception e){ + System.out.println(e); + } + apimap.put("msg",isok+""); + return apimap; + } + + /*** + * + * @param url + * @param params + * @param headsMap + * @return + */ + public String sendPost(String url, String params, Map headsMap) + { + //BaseBean bb = new BaseBean(); + String body = ""; + String encoding = "UTF-8"; + //创建httpclient对象 + CloseableHttpClient client = HttpClients.createDefault(); + //创建post方式请求对象 + HttpPost httpPost = new HttpPost(url); + + + //设置参数到请求对象中 + StringEntity strEntity = new StringEntity(params,encoding);//解决中文乱码问题 + strEntity.setContentEncoding(encoding); + strEntity.setContentType("application/json"); + httpPost.setEntity(strEntity); + + //设置header信息 + //指定报文头【Content-type】、【User-Agent】 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + + if (headsMap != null && !headsMap.isEmpty()) { + headsMap.forEach((key, value) -> { + //bb.writeLog("key:"+key+" value:"+value); + httpPost.addHeader(key, value); + }); + } + //执行请求操作,并拿到结果(同步阻塞) + CloseableHttpResponse response = null; + try { + response = client.execute(httpPost); + //获取结果实体 + HttpEntity entity = response.getEntity(); + if (entity != null) { + //按指定编码转换结果实体为String类型 + body = EntityUtils.toString(entity, encoding); + } + EntityUtils.consume(entity); + //释放链接 + response.close(); + } catch (IOException e) { + System.out.println("OrganizationSyn-e:"+e); + e.printStackTrace(); + } + return body; + } + +} diff --git a/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcFreeNodeCmd.java b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcFreeNodeCmd.java new file mode 100644 index 0000000..e0d3c8c --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.itcglc.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class ItcglcFreeNodeCmd extends AbstractCommonCommand> { + + public ItcglcFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String uf_freenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + uf_freenode += uf_freenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + uf_freenode ); + String str = equestStr( freenode, uf_freenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcLdspInfoCmd.java b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcLdspInfoCmd.java new file mode 100644 index 0000000..b201a2a --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcLdspInfoCmd.java @@ -0,0 +1,102 @@ +package com.engine.htxc.itcglc.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.GCONST; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.*; +import java.util.stream.Collectors; + +public class ItcglcLdspInfoCmd extends AbstractCommonCommand> { + + public ItcglcLdspInfoCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + System.out.println( "in=================ItlxlcLdspInfoCmd" ); + Map apimap = new HashMap(); + + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + + PropBean pb = new PropBean(); + String ldspjd = pb.getNodeIdsByUnNumber("itlxsq_gsldsp"); //领导审批节点 + + String ldsp_value = Util.null2String(params.get("ldsp_value")); + + System.out.println("ldsp_value:"+ldsp_value); + + List qcList = new ArrayList(); + if(!"".equals(ldsp_value) && ldsp_value !=null) + { + List lis = Arrays.asList(ldsp_value.split(",")); + qcList = lis.stream().distinct().collect(Collectors.toList()); + } + + List list = new ArrayList<>(); + String sql = " select distinct userid from workflow_currentoperator where requestid="+requestid+" and nodeid in("+ldspjd+") and userid in ("+ldsp_value+")"; + System.out.println(sql); + rs.executeQuery(sql); + while(rs.next()){ + String userid = Util.null2String(rs.getString("userid")); + list.add(userid); + } + + int retval = 0; + if(qcList !=null && qcList.size() >0 ) + { + if(list !=null && list.size() > 0) + { + int wscount = 0; + for(String ldspid : qcList) + { + if(!list.contains(ldspid)) + { + wscount++; + } + } + if(wscount>0){ + retval = 0; + }else{ + retval = 1; + } + }else{ + retval = 1; + } + }else{ + retval = 1; + } + apimap.put("count",retval); + return apimap; + } + + public static void main(String[] args) { + GCONST.setRootPath("WEB-INF/"); + GCONST.setServerName("ecology"); + Map params=new HashMap<>(); + params.put("requestid","6814809"); + params.put("ldsp_value","22797,17556"); + User user = new User(); + user.setUid(11260); + com.engine.htsc.itcglc.cmd.ItcglcLdspInfoCmd ItlxlcLdspInfoCmd = new com.engine.htsc.itcglc.cmd.ItcglcLdspInfoCmd(user,params); + CommandContext ceshi= new CommandContext(null,null); + ItlxlcLdspInfoCmd.execute(ceshi); + } + +} diff --git a/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcProjectInfoCmd.java b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcProjectInfoCmd.java new file mode 100644 index 0000000..6b885ba --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcProjectInfoCmd.java @@ -0,0 +1,970 @@ +package com.engine.htxc.itcglc.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.htsc.itlxlc.util.RequestShareUtil; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.GCONST; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.cus.HTUtil; + +import java.io.IOException; +import java.util.*; + +public class ItcglcProjectInfoCmd extends AbstractCommonCommand> { + + public ItcglcProjectInfoCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + String formid = Util.null2String(params.get("formid")); + String cglxfieldis = ""; + String cglxsql = " select id from workflow_billfield where billid="+formid+" and fieldname='cglx' " ; + rs.execute(cglxsql); + if(rs.next()){ + cglxfieldis = Util.null2String(rs.getString("id")); + } + + bb.writeLog("cglxfieldis:"+cglxfieldis); + String cgfsfieldis = ""; + String cgfssql = " select id from workflow_billfield where billid="+formid+" and fieldname='cgfs' " ; + rs.execute(cgfssql); + if(rs.next()){ + cgfsfieldis = Util.null2String(rs.getString("id")); + } + bb.writeLog("cgfsfieldis:"+cgfsfieldis); + + System.out.println( "in=================ItcglcProjectInfoCmd" ); + Map apimap = new HashMap(); + + String projCode = Util.null2String(params.get("projectCode")); + int nf = Util.getIntValue(Util.null2String(params.get("nf"))); + String userid = Util.null2String(user.getUID()); + System.out.println("userid:"+userid); + + PropBean pb = new PropBean(); + String url = pb.getPropName("ItcglcProjectDetailUrl") ; + bb.writeLog("url:"+url); + + Map headers = new HashMap(); + + HTUtil htutil = new HTUtil(); + String token = htutil.getAppToken(); + headers.put("JTXT-AUTH-TOKEN", token); + headers.put("JTXT-AUTH-TYPE", "APP"); + + JSONObject jsonObject = new JSONObject(); + String workcode = ""; + String sql = " select workcode from hrmresource where id= "+userid; + rs.execute(sql); + if(rs.next()){ + workcode = Util.null2String(rs.getString("workcode")); + } + + List> nlist = new ArrayList>(); + List> n1list = new ArrayList>(); + List> n2list = new ArrayList>(); + + List> itlxsqlist = new ArrayList>(); + List> xgcglclist = new ArrayList>(); + List> cgxxlist = new ArrayList>(); + + String hrmids = "" ; + List> hrmList = new ArrayList>(); + String xcgwyhsy = "1"; + String projectNumber = ""; + String xmmczw = "" ; + + String requestids = ""; + + //查询it立项申请表单中是否存在对应流程 + sql = "select abs(formid) formid from workflow_base where unnumber = 'itlxsq' and isvalid = 1"; + rs.executeQuery(sql); + String formtable = "formtable_main_"; + if(rs.next()){ + formtable = formtable + rs.getString("formid"); + } + sql = "select * from " + formtable + " where xmbh = ? "; + rs.executeQuery(sql , projCode); + if(rs.next()){ + //如果存在,该条记录详细从本地表单中取数据 + System.out.println("----------------it采购需求接口优化-从表单获取数据 明细表5从接口中获取---------------"); + projectNumber = rs.getString("xmbh"); //项目编号 + xmmczw = rs.getString("xmmczw"); // 项目名称中文 + + String id = rs.getString("id"); //id + + Map hrmMap = null; + sql = " select id,lastname from hrmresource where workcode='"+ workcode +"' and belongto is null "; + rs.execute(sql); + + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + hrmids += hrmids=="" ? hrmid : ","+hrmid ; + hrmMap = new HashMap(); + hrmMap.put("id",hrmid); + hrmMap.put("name",lastname); + hrmList.add(hrmMap); + } + + //nlist 取明细表 + sql = "select a.* ,b.departmentname from " + formtable + "_dt6 a left join hrmdepartment b on a.fycdbm = b.id where mainid = ? "; + rs.executeQuery(sql,id); + Map dataMap = null; + while (rs.next()){ + String deptid = Util.null2String(rs.getString("fycdbm")); + String deptname = Util.null2String(rs.getString("departmentname")); + String yskmmc = Util.null2String(rs.getString("yskm")); + String yskmbm = Util.null2String(rs.getString("yskmbm")); + String jewyhs = Util.null2String(rs.getString("jewyhs")); + + dataMap = new HashMap(); + dataMap.put("yskmmc",yskmmc); + dataMap.put("yskmbm",yskmbm); + dataMap.put("BudgetAmt",jewyhs); + dataMap.put("deptid",deptid); + dataMap.put("deptname",deptname); + nlist.add(dataMap); + } + + //n1list 取明细表 + sql = "select a.* ,b.departmentname from " + formtable + "_dt7 a left join hrmdepartment b on a.fycdbm = b.id where mainid = ? "; + rs.executeQuery(sql,id); + Map dataMap1 = null; + while (rs.next()){ + String deptid = Util.null2String(rs.getString("fycdbm")); + String deptname = Util.null2String(rs.getString("departmentname")); + String yskmmc = Util.null2String(rs.getString("yskm")); + String yskmbm = Util.null2String(rs.getString("yskmbm")); + String jewyhs = Util.null2String(rs.getString("jewyhs")); + + dataMap1 = new HashMap(); + dataMap1.put("yskmmc",yskmmc); + dataMap1.put("yskmbm",yskmbm); + dataMap1.put("BudgetAmt",jewyhs); + dataMap1.put("deptid",deptid); + dataMap1.put("deptname",deptname); + n1list.add(dataMap1); + } + + //n2list 取明细表 + sql = "select a.* ,b.departmentname from " + formtable + "_dt8 a left join hrmdepartment b on a.fycdbm = b.id where mainid = ? "; + rs.executeQuery(sql,id); + Map dataMap2 = null; + while (rs.next()){ + String deptid = Util.null2String(rs.getString("fycdbm")); + String deptname = Util.null2String(rs.getString("departmentname")); + String yskmmc = Util.null2String(rs.getString("yskm")); + String yskmbm = Util.null2String(rs.getString("yskmbm")); + String jewyhs = Util.null2String(rs.getString("jewyhs")); + + dataMap2 = new HashMap(); + dataMap2.put("yskmmc",yskmmc); + dataMap2.put("yskmbm",yskmbm); + dataMap2.put("BudgetAmt",jewyhs); + dataMap2.put("deptid",deptid); + dataMap2.put("deptname",deptname); + n2list.add(dataMap2); + } + + // itlxsqlist xgcglclist cgxxlist 内容从接口中获取 + try{ + //011516 + jsonObject.put("badge",workcode); + jsonObject.put("projectCode",projCode); + String response = sendPost(url,jsonObject.toJSONString(),headers); + bb.writeLog("response:"+response); + System.out.println("response:"+response); + if(!"".equals(response)){ + JSONObject retJson = JSONObject.parseObject(response); + + //itlxsqlist 取接口 + if(retJson.containsKey("otherWorkflowList1")){ + JSONArray itlxsqArray = retJson.getJSONArray("otherWorkflowList1"); + Map itlxsqMap = null; + for(int i=0;i-1){ + String requsturl = itlxsqurl.substring(itlxsqurl.indexOf("requestid")); + if(requsturl.indexOf("&") > -1){ + String itlx_requetsid = requsturl.substring(10,requsturl.indexOf("&")); + if(!"".equals(itlx_requetsid) && !"1".equals(itlx_requetsid)){ + int num = getWorkflowStoped(itlx_requetsid); + if(num == 0){ + requestids += requestids=="" ? itlx_requetsid : ","+itlx_requetsid ; + + itlxsqMap = new HashMap(); + itlxsqMap.put("title",title); + itlxsqMap.put("workflownum",workFlowNum); + itlxsqMap.put("workflownumber",workFlowNumber); + itlxsqMap.put("url",itlxsqurl); + itlxsqlist.add(itlxsqMap); + + } + } + }else{ + String itlx_requetsid = requsturl.substring(10); + if(!"".equals(itlx_requetsid) && !"1".equals(itlx_requetsid)){ + int num = getWorkflowStoped(itlx_requetsid); + if(num == 0){ + requestids += requestids=="" ? itlx_requetsid : ","+itlx_requetsid ; + + itlxsqMap = new HashMap(); + itlxsqMap.put("title",title); + itlxsqMap.put("workflownum",workFlowNum); + itlxsqMap.put("workflownumber",workFlowNumber); + itlxsqMap.put("url",itlxsqurl); + itlxsqlist.add(itlxsqMap); + + } + } + } + } + } + + } + } + + //xgcglclist 取接口 + if(retJson.containsKey("purchaseList")) { + JSONArray xgcglcArray = retJson.getJSONArray("purchaseList"); + Map xgcglcMap = null; + for(int i=0;i-1){ + String requsturl = cgxglcurl.substring(cgxglcurl.indexOf("requestid")); + if(requsturl.indexOf("&") > -1){ + String cgxglc_requetsid = requsturl.substring(10,requsturl.indexOf("&")); + if(!"".equals(cgxglc_requetsid) && !"1".equals(cgxglc_requetsid)){ + int num = getWorkflowStoped(cgxglc_requetsid); + if(num == 0){ + requestids += requestids=="" ? cgxglc_requetsid : ","+cgxglc_requetsid ; + + xgcglcMap = new HashMap(); + xgcglcMap.put("title",title); + xgcglcMap.put("workflownum",workFlowNum); + xgcglcMap.put("url",cgxglcurl); + xgcglclist.add(xgcglcMap); + + } + } + }else{ + String cgxglc_requetsid = requsturl.substring(10); + if(!"".equals(cgxglc_requetsid) && !"1".equals(cgxglc_requetsid)){ + int num = getWorkflowStoped(cgxglc_requetsid); + if(num == 0){ + requestids += requestids=="" ? cgxglc_requetsid : ","+cgxglc_requetsid ; + + xgcglcMap = new HashMap(); + xgcglcMap.put("title",title); + xgcglcMap.put("workflownum",workFlowNum); + xgcglcMap.put("url",cgxglcurl); + xgcglclist.add(xgcglcMap); + + } + } + } + } + } + + } + } + + //cgxxlist 取接口 + if(retJson.containsKey("itsystemPurchaseData")){ + JSONObject cgxxObject = retJson.getJSONObject("itsystemPurchaseData"); + System.out.println("cgxxObject:"+cgxxObject); + if(cgxxObject !=null){ + JSONArray cgxxArray = cgxxObject.getJSONArray("item"); + System.out.println("cgxxArray:"+cgxxArray.size()); + Map cgxxMap = null; + + int d_xcgwyhsy = 0; + for(int i=0;i=2000000) + { + if("0".equals(cgfs) || "1".equals(cgfs) || "4".equals(cgfs) || "5".equals(cgfs)){ + + d_xcgwyhsy++; + } + } + } + + //String y_department = Util.null2String(cgxxObj.get("y_department")); + String y_department_id = Util.null2String(cgxxObj.get("y_department_id")); + List> ysbmList = new ArrayList>(); + String ysbm = "" ; + if(!"".equals(y_department_id)) + { + Map ysbmMap = null; + y_department_id = "'"+y_department_id.replaceAll(",","','")+"'"; + sql = " select id,departmentname from hrmdepartment l where l.departmentcode in("+y_department_id+")"; + rs.execute(sql); + while (rs.next()){ + String deptid = Util.null2String(rs.getString("id")); + String departmentname = Util.null2String(rs.getString("departmentname")); + ysbm += ysbm=="" ? deptid : ","+deptid ; + + ysbmMap = new HashMap(); + ysbmMap.put("id",deptid); + ysbmMap.put("name",departmentname); + ysbmList.add(ysbmMap); + } + } + String c_content = Util.null2String(cgxxObj.get("c_content")); + String cgzd = Util.null2String(cgxxObj.get("purchase_system")); +// String cgzd = "" ; +// if (!"".equals(purchase_system)) { +// sql = " select selectvalue from workflow_selectitem where fieldid="+cgzdfieldis+" and selectname = '"+purchase_system+"'" ; +// rs.execute(sql); +// if (rs.next()){ +// cgzd = Util.null2String(rs.getString("selectvalue")); +// } +// } + String purchase_terms = Util.null2String(cgxxObj.get("purchase_terms")); + String team_id = Util.null2String(cgxxObj.get("team_id")); + String c_remark = Util.null2String(cgxxObj.get("c_remark")); + //String purchaseNum = Util.null2String(cgxxObj.get("purchaseNum")); + + String cgfzr = "" ; + List> cgfzrList = new ArrayList>(); + String caigoufuzerenid = Util.null2String(cgxxObj.get("caigoufuzerenid")); + if(!"".equals(caigoufuzerenid)) + { + Map cgfzrMap = null; + sql = " select id,lastname from hrmresource where workcode='"+caigoufuzerenid+"' and belongto is null "; + rs.execute(sql); + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + cgfzr += cgfzr=="" ? hrmid : ","+hrmid ; + cgfzrMap = new HashMap(); + cgfzrMap.put("id",hrmid); + cgfzrMap.put("name",lastname); + cgfzrList.add(cgfzrMap); + } + } + +// String caigoufuzeren = Util.null2String(cgxxObj.get("caigoufuzeren")); + String project_name = Util.null2String(cgxxObj.get("project_name")); +// String it_project_num = Util.null2String(cgxxObj.get("it_project_num")); +// String beforehandPublicity = Util.null2String(cgxxObj.get("beforehandPublicity")); + + cgxxMap = new HashMap(); + cgxxMap.put("appid",app_id); + cgxxMap.put("cglx",cglx); + cgxxMap.put("cgfs",cgfs); + cgxxMap.put("ysbm",ysbm); + cgxxMap.put("ysbmObj",ysbmList); + cgxxMap.put("ysje",c_money); + cgxxMap.put("sl",number_units); + cgxxMap.put("cgfzr",cgfzr); + cgxxMap.put("cgfzrObj",cgfzrList); + cgxxMap.put("cgnr",c_content); + cgxxMap.put("cgzd",cgzd); + cgxxMap.put("ejcgzd",purchase_terms); + cgxxMap.put("gys",team_id); + cgxxMap.put("bz",c_remark); + cgxxMap.put("xmmczw",project_name); + cgxxlist.add(cgxxMap); + + System.out.println("4444444"); + } + + if(d_xcgwyhsy > 0) + { + xcgwyhsy = "0"; + } + } + } + + } + }catch (Exception e){ + System.out.println("e---"+e); + bb.writeLog("e--:"+e); + } + + }else{ + //原逻辑 + try{ + //011516 + jsonObject.put("badge",workcode); + jsonObject.put("projectCode",projCode); + String response = sendPost(url,jsonObject.toJSONString(),headers); + bb.writeLog("response:"+response); + System.out.println("response:"+response); + if(!"".equals(response)) + { + JSONObject retJson = JSONObject.parseObject(response); + String projectMasterPracticebadge = retJson.getString("projectMasterPracticebadge"); + Map hrmMap = null; + if(!"".equals(projectMasterPracticebadge)) + { + sql = " select id,lastname from hrmresource where workcode='"+projectMasterPracticebadge+"' and belongto is null "; + rs.execute(sql); + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + hrmids += hrmids=="" ? hrmid : ","+hrmid ; + hrmMap = new HashMap(); + hrmMap.put("id",hrmid); + hrmMap.put("name",lastname); + hrmList.add(hrmMap); + } + } + + projectNumber = retJson.getString("projectNumber"); + System.out.println("projectNumber:"+projectNumber); + xmmczw = retJson.getString("projectName"); + + System.out.println("xmmczw:"+xmmczw); + + //itlxsqlist + if(retJson.containsKey("otherWorkflowList1")){ + JSONArray itlxsqArray = retJson.getJSONArray("otherWorkflowList1"); + Map itlxsqMap = null; + for(int i=0;i-1){ + String requsturl = itlxsqurl.substring(itlxsqurl.indexOf("requestid")); + if(requsturl.indexOf("&") > -1){ + String itlx_requetsid = requsturl.substring(10,requsturl.indexOf("&")); + if(!"".equals(itlx_requetsid) && !"1".equals(itlx_requetsid)){ + int num = getWorkflowStoped(itlx_requetsid); + if(num == 0){ + requestids += requestids=="" ? itlx_requetsid : ","+itlx_requetsid ; + + itlxsqMap = new HashMap(); + itlxsqMap.put("title",title); + itlxsqMap.put("workflownum",workFlowNum); + itlxsqMap.put("workflownumber",workFlowNumber); + itlxsqMap.put("url",itlxsqurl); + itlxsqlist.add(itlxsqMap); + + } + } + }else{ + String itlx_requetsid = requsturl.substring(10); + if(!"".equals(itlx_requetsid) && !"1".equals(itlx_requetsid)){ + int num = getWorkflowStoped(itlx_requetsid); + if(num == 0){ + requestids += requestids=="" ? itlx_requetsid : ","+itlx_requetsid ; + + itlxsqMap = new HashMap(); + itlxsqMap.put("title",title); + itlxsqMap.put("workflownum",workFlowNum); + itlxsqMap.put("workflownumber",workFlowNumber); + itlxsqMap.put("url",itlxsqurl); + itlxsqlist.add(itlxsqMap); + + } + } + } + } + } + + } + } + + //xgcglclist + if(retJson.containsKey("purchaseList")) { + JSONArray xgcglcArray = retJson.getJSONArray("purchaseList"); + Map xgcglcMap = null; + for(int i=0;i-1){ + String requsturl = cgxglcurl.substring(cgxglcurl.indexOf("requestid")); + if(requsturl.indexOf("&") > -1){ + String cgxglc_requetsid = requsturl.substring(10,requsturl.indexOf("&")); + if(!"".equals(cgxglc_requetsid) && !"1".equals(cgxglc_requetsid)){ + int num = getWorkflowStoped(cgxglc_requetsid); + if(num == 0){ + requestids += requestids=="" ? cgxglc_requetsid : ","+cgxglc_requetsid ; + + xgcglcMap = new HashMap(); + xgcglcMap.put("title",title); + xgcglcMap.put("workflownum",workFlowNum); + xgcglcMap.put("url",cgxglcurl); + xgcglclist.add(xgcglcMap); + + } + } + }else{ + String cgxglc_requetsid = requsturl.substring(10); + if(!"".equals(cgxglc_requetsid) && !"1".equals(cgxglc_requetsid)){ + int num = getWorkflowStoped(cgxglc_requetsid); + if(num == 0){ + requestids += requestids=="" ? cgxglc_requetsid : ","+cgxglc_requetsid ; + + xgcglcMap = new HashMap(); + xgcglcMap.put("title",title); + xgcglcMap.put("workflownum",workFlowNum); + xgcglcMap.put("url",cgxglcurl); + xgcglclist.add(xgcglcMap); + + } + } + } + } + } + + } + } + + //cgxxlist 取接口 + if(retJson.containsKey("itsystemPurchaseData")){ + JSONObject cgxxObject = retJson.getJSONObject("itsystemPurchaseData"); + System.out.println("cgxxObject:"+cgxxObject); + if(cgxxObject !=null){ + JSONArray cgxxArray = cgxxObject.getJSONArray("item"); + System.out.println("cgxxArray:"+cgxxArray.size()); + Map cgxxMap = null; + + int d_xcgwyhsy = 0; + for(int i=0;i=2000000) + { + if("0".equals(cgfs) || "1".equals(cgfs) || "4".equals(cgfs) || "5".equals(cgfs)){ + + d_xcgwyhsy++; + } + } + } + + //String y_department = Util.null2String(cgxxObj.get("y_department")); + String y_department_id = Util.null2String(cgxxObj.get("y_department_id")); + List> ysbmList = new ArrayList>(); + String ysbm = "" ; + if(!"".equals(y_department_id)) + { + Map ysbmMap = null; + y_department_id = "'"+y_department_id.replaceAll(",","','")+"'"; + sql = " select id,departmentname from hrmdepartment l where l.departmentcode in("+y_department_id+")"; + rs.execute(sql); + while (rs.next()){ + String deptid = Util.null2String(rs.getString("id")); + String departmentname = Util.null2String(rs.getString("departmentname")); + ysbm += ysbm=="" ? deptid : ","+deptid ; + + ysbmMap = new HashMap(); + ysbmMap.put("id",deptid); + ysbmMap.put("name",departmentname); + ysbmList.add(ysbmMap); + } + } + String c_content = Util.null2String(cgxxObj.get("c_content")); + String cgzd = Util.null2String(cgxxObj.get("purchase_system")); +// String cgzd = "" ; +// if (!"".equals(purchase_system)) { +// sql = " select selectvalue from workflow_selectitem where fieldid="+cgzdfieldis+" and selectname = '"+purchase_system+"'" ; +// rs.execute(sql); +// if (rs.next()){ +// cgzd = Util.null2String(rs.getString("selectvalue")); +// } +// } + String purchase_terms = Util.null2String(cgxxObj.get("purchase_terms")); + String team_id = Util.null2String(cgxxObj.get("team_id")); + String c_remark = Util.null2String(cgxxObj.get("c_remark")); + //String purchaseNum = Util.null2String(cgxxObj.get("purchaseNum")); + + String cgfzr = "" ; + List> cgfzrList = new ArrayList>(); + String caigoufuzerenid = Util.null2String(cgxxObj.get("caigoufuzerenid")); + if(!"".equals(caigoufuzerenid)) + { + Map cgfzrMap = null; + sql = " select id,lastname from hrmresource where workcode='"+caigoufuzerenid+"' and belongto is null "; + rs.execute(sql); + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + cgfzr += cgfzr=="" ? hrmid : ","+hrmid ; + cgfzrMap = new HashMap(); + cgfzrMap.put("id",hrmid); + cgfzrMap.put("name",lastname); + cgfzrList.add(cgfzrMap); + } + } + +// String caigoufuzeren = Util.null2String(cgxxObj.get("caigoufuzeren")); + String project_name = Util.null2String(cgxxObj.get("project_name")); +// String it_project_num = Util.null2String(cgxxObj.get("it_project_num")); +// String beforehandPublicity = Util.null2String(cgxxObj.get("beforehandPublicity")); + + cgxxMap = new HashMap(); + cgxxMap.put("appid",app_id); + cgxxMap.put("cglx",cglx); + cgxxMap.put("cgfs",cgfs); + cgxxMap.put("ysbm",ysbm); + cgxxMap.put("ysbmObj",ysbmList); + cgxxMap.put("ysje",c_money); + cgxxMap.put("sl",number_units); + cgxxMap.put("cgfzr",cgfzr); + cgxxMap.put("cgfzrObj",cgfzrList); + cgxxMap.put("cgnr",c_content); + cgxxMap.put("cgzd",cgzd); + cgxxMap.put("ejcgzd",purchase_terms); + cgxxMap.put("gys",team_id); + cgxxMap.put("bz",c_remark); + cgxxMap.put("xmmczw",project_name); + cgxxlist.add(cgxxMap); + + System.out.println("4444444"); + } + + if(d_xcgwyhsy > 0) + { + xcgwyhsy = "0"; + } + } + } + + //nlist 取明细表 + if(retJson.containsKey("projectDetail")){ + JSONObject projDetailObj = retJson.getJSONObject("projectDetail"); + if(projDetailObj !=null) + { + String budgetData = projDetailObj.getString("budgetData").replaceAll("\n",""); + System.out.println("budgetData:"+budgetData); + if(!"".equals(budgetData) && budgetData.startsWith(" nodes = topEle.elements("Item"); + Map dataMap = null; + for (Iterator it = nodes.iterator(); it.hasNext();) + { + Element elm = (Element) it.next(); + + String BudgetYear = elm.elementTextTrim("BudgetYear"); + System.out.println("BudgetYear:" + BudgetYear); + + String BudgetNoAmt = elm.elementTextTrim("BudgetNoAmt"); + System.out.println("BudgetNoAmt:" + BudgetNoAmt); + + String BudgetId = elm.elementTextTrim("BudgetId"); + System.out.println("BudgetId:" + BudgetId); + + + + String BudgetDep = elm.elementTextTrim("BudgetDep"); + System.out.println("BudgetDep:" + BudgetDep); + String deptid = "" ; + String deptname = "" ; + + + String BudgetAmt = elm.elementTextTrim("BudgetAmt"); + System.out.println("BudgetAmt:" + BudgetAmt); + + String BudgetAcct = elm.elementTextTrim("BudgetAcct"); + System.out.println("BudgetAcct:" + BudgetAcct); + + if(!"".equals(BudgetDep)) + { + + sql = " select id,departmentname from hrmdepartment where departmentcode='"+BudgetDep+"' "; + rs.execute(sql); + if(rs.next()){ + deptid = Util.null2String(rs.getString("id")); + deptname = Util.null2String(rs.getString("departmentname")); + } + } + + String yskmmc = ""; + if(!"".equals(BudgetAcct)){ + sql = " select yskmmc from uf_kmpz where yskmbm='"+BudgetAcct+"' "; + rs.execute(sql); + if(rs.next()){ + yskmmc = Util.null2String(rs.getString("yskmmc")); + } + } + + dataMap = new HashMap(); + dataMap.put("BudgetAcct",BudgetAcct); + dataMap.put("BudgetYear",BudgetYear); + dataMap.put("BudgetId",BudgetId); + dataMap.put("yskmmc",yskmmc); + dataMap.put("yskmbm",BudgetAcct); + dataMap.put("BudgetAmt",BudgetAmt); + dataMap.put("BudgetDep",BudgetDep); + dataMap.put("deptid",deptid); + dataMap.put("deptname",deptname); + + if(BudgetYear.equals(Util.null2String(nf))) + { + nlist.add(dataMap); + } + + if(BudgetYear.equals(Util.null2String(nf+1))) + { + n1list.add(dataMap); + } + + if(BudgetYear.equals(Util.null2String(nf+2))) + { + n2list.add(dataMap); + } + } + } + } + } + + } + }catch (Exception e){ + System.out.println("e---"+e); + bb.writeLog("e--:"+e); + } + + } + + if(!"".equals(requestids)){ + try{ + RequestShareUtil RequestShareUtil = new RequestShareUtil(); + bb.writeLog("ItcglcProjectInfoCmd--RequestShareUtil--"+requestids); + RequestShareUtil.addShare(Util.null2String(userid),requestids); + }catch (Exception e){ + bb.writeLog("e---"+e); + } + } + + System.out.println("cgxxlist:"+cgxxlist.size()); + apimap.put("value",hrmids); + apimap.put("specialobj",hrmList); + apimap.put("xmbh",projectNumber); + apimap.put("xcgwyhsy",xcgwyhsy);//需采购委员会审议 + apimap.put("xmmczw",xmmczw); + + apimap.put("xglcoa",requestids);//相关流程oa + + apimap.put("nlist",nlist); + apimap.put("n1list",n1list); + apimap.put("n2list",n2list); + + apimap.put("itlxsqlist",itlxsqlist); + apimap.put("xgcglclist",xgcglclist); + apimap.put("cgxxlist",cgxxlist); + return apimap; + } + /*** + * + * @param url + * @param params + * @param headsMap + * @return + */ + public String sendPost(String url, String params, Map headsMap) + { + //BaseBean bb = new BaseBean(); + String body = ""; + String encoding = "UTF-8"; + //创建httpclient对象 + CloseableHttpClient client = HttpClients.createDefault(); + //创建post方式请求对象 + HttpPost httpPost = new HttpPost(url); + + + //设置参数到请求对象中 + StringEntity strEntity = new StringEntity(params,encoding);//解决中文乱码问题 + strEntity.setContentEncoding(encoding); + strEntity.setContentType("application/json"); + httpPost.setEntity(strEntity); + + //设置header信息 + //指定报文头【Content-type】、【User-Agent】 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + + if (headsMap != null && !headsMap.isEmpty()) { + headsMap.forEach((key, value) -> { + //bb.writeLog("key:"+key+" value:"+value); + httpPost.addHeader(key, value); + }); + } + //执行请求操作,并拿到结果(同步阻塞) + CloseableHttpResponse response = null; + try { + response = client.execute(httpPost); + //获取结果实体 + HttpEntity entity = response.getEntity(); + if (entity != null) { + //按指定编码转换结果实体为String类型 + body = EntityUtils.toString(entity, encoding); + } + EntityUtils.consume(entity); + //释放链接 + response.close(); + } catch (IOException e) { + System.out.println("OrganizationSyn-e:"+e); + e.printStackTrace(); + } + return body; + } + + + public int getWorkflowStoped(String requestid){ + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + int i = 0; + try{ + String sql = " select requestid from workflow_requestbase t\n" + + " where t.requestid="+requestid+" and (t.isstopped=1 or t.currentnodeid in(select id from workflow_nodebase k where k.unnumber in('itcgsq_zz','itlxsq_zz') )) " ; + rs.execute(sql); + if (rs.next()){ + i++; + } + bb.writeLog("requestid:"+requestid); + bb.writeLog("sql:"+sql); + bb.writeLog("i:"+i); + + }catch (Exception e){ + } + return i; + } + + public static void main(String[] args) { + GCONST.setRootPath("WEB-INF/"); + GCONST.setServerName("ecology"); + Map params=new HashMap<>(); + params.put("usercode","011516"); + params.put("projectCode","622043"); + params.put("nf","2021"); + + User user = new User(5620); + com.engine.htsc.itcglc.cmd.ItcglcProjectInfoCmd ItcglcProjectInfoCmd = new com.engine.htsc.itcglc.cmd.ItcglcProjectInfoCmd(user,params); + CommandContext ceshi = new CommandContext(null,null); + ItcglcProjectInfoCmd.execute(ceshi); + } + + + + +} diff --git a/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcProjectListCmd.java b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcProjectListCmd.java new file mode 100644 index 0000000..e0b25d8 --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/cmd/ItcglcProjectListCmd.java @@ -0,0 +1,233 @@ +package com.engine.htxc.itcglc.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.GCONST; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +public class ItcglcProjectListCmd extends AbstractCommonCommand> { + + public ItcglcProjectListCmd(Map params) { + this.params = params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + + Map apimap = new HashMap(); + String pcode = Util.null2String(params.get("projectCode")); + String pstate = Util.null2String(params.get("projectState")); + String pname = Util.null2String(params.get("projectName")); + String processno = Util.null2String(params.get("processNo")); + String pmanager = Util.null2String(params.get("projectManager")); + String usercode = Util.null2String(params.get("usercode")); + + bb.writeLog("usercode:"+usercode); + + PropBean pb = new PropBean(); + String url = pb.getPropName("ItcglcProjectQueryUrl") ; + //String url = "http://168.61.69.225:8080/jtxt/ITProjects/getProjectInfoBySearch"; + bb.writeLog(url); + Map headers = new HashMap<>(); + String workcode = "" ; + if(!"".equals(usercode)){ + String sql = " select workcode from hrmresource where id="+usercode+" "; + bb.writeLog(sql); + rs.execute(sql); + if(rs.next()){ + workcode = Util.null2String(rs.getString("workcode")); + } + } + bb.writeLog("workcode:"+workcode); + + JSONObject jsonObject = new JSONObject(); + //011516 + jsonObject.put("badge",workcode); + + List> list = new ArrayList>(); + + try{ + bb.writeLog("jsonObject:"+jsonObject); + + String response = sendPost(url,jsonObject.toJSONString(),headers); + bb.writeLog("response:"+response); + if(!"".equals(response)) + { + Map dataMap = null; + JSONArray jsonArray = JSONArray.parseArray(response); + for(int i=0;i(); + dataMap.put("projectState",dataJson.getString("projectState")); + dataMap.put("projectName",dataJson.getString("projectName")); + dataMap.put("processNo",dataJson.getString("processNo")); + dataMap.put("projectManager",dataJson.getString("projectManager")); + dataMap.put("projectCode",dataJson.getString("projectCode")); + dataMap.put("completeTime",dataJson.getString("completeTime")); + //判断是否关联本地oa流程 + + String sql = "select abs(formid) formid from workflow_base where unnumber = 'itlxsq' and isvalid = 1"; + rs.executeQuery(sql); + String formtable = ""; + if(rs.next()){ + formtable = "formtable_main_" + rs.getString("formid"); + } + if(!"".equals(formtable)){ + sql = "select * from " + formtable + " where xmbh = ?"; + rs.executeQuery(sql, dataJson.getString("projectCode")); + if(rs.next()){ + dataMap.put("gllcFlag","1");//加入一个标记,标识是否关联本地oa 1:关联 0:无 + dataMap.put("lcbt",rs.getString("lcbt")); //添加一条记录流程标题 + }else{ + dataMap.put("gllcFlag","0"); + dataMap.put("lcbt",""); + } + }else{ + dataMap.put("gllcFlag","0"); + dataMap.put("lcbt",""); + } + + list.add(dataMap); + } + + if(list !=null && list.size() >0) + { + Pattern name = Pattern.compile(pname); + Pattern code = Pattern.compile(pcode); + Pattern state = Pattern.compile(pstate); + Pattern rocessno = Pattern.compile(processno); + Pattern manager = Pattern.compile(pmanager); + + if(!"".equals(state)){ + list = list.stream().filter(map -> state.matcher(Util.null2String(map.get("projectState"))).find()).collect(Collectors.toList()); + } + if(!"".equals(pcode)){ + list = list.stream().filter(map -> code.matcher(Util.null2String(map.get("projectCode"))).find()).collect(Collectors.toList()); + } + if(!"".equals(pname)){ + list = list.stream().filter(map -> name.matcher(Util.null2String(map.get("projectName"))).find()).collect(Collectors.toList()); + } + if(!"".equals(manager)){ + list = list.stream().filter(map -> manager.matcher(Util.null2String(map.get("projectManager"))).find()).collect(Collectors.toList()); + } + if(!"".equals(rocessno)){ + list = list.stream().filter(map -> rocessno.matcher(Util.null2String(map.get("projectManager"))).find()).collect(Collectors.toList()); + } + } + } + }catch (Exception e){ + System.out.println(e); + } + bb.writeLog("list:"+list.size()); + apimap.put("data",list); + apimap.put("count",list.size()); + return apimap; + } + + /*** + * + * @param url + * @param params + * @param headsMap + * @return + */ + public String sendPost(String url, String params, Map headsMap) + { + //BaseBean bb = new BaseBean(); + String body = ""; + String encoding = "UTF-8"; + //创建httpclient对象 + CloseableHttpClient client = HttpClients.createDefault(); + //创建post方式请求对象 + HttpPost httpPost = new HttpPost(url); + + + //设置参数到请求对象中 + StringEntity strEntity = new StringEntity(params,encoding);//解决中文乱码问题 + strEntity.setContentEncoding(encoding); + strEntity.setContentType("application/json"); + httpPost.setEntity(strEntity); + + //设置header信息 + //指定报文头【Content-type】、【User-Agent】 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + + if (headsMap != null && !headsMap.isEmpty()) { + headsMap.forEach((key, value) -> { + //bb.writeLog("key:"+key+" value:"+value); + httpPost.addHeader(key, value); + }); + } + //执行请求操作,并拿到结果(同步阻塞) + CloseableHttpResponse response = null; + try { + response = client.execute(httpPost); + //获取结果实体 + HttpEntity entity = response.getEntity(); + if (entity != null) { + //按指定编码转换结果实体为String类型 + body = EntityUtils.toString(entity, encoding); + } + EntityUtils.consume(entity); + //释放链接 + response.close(); + } catch (IOException e) { + System.out.println("OrganizationSyn-e:"+e); + e.printStackTrace(); + } + return body; + } + + + public static void main(String[] args) { + GCONST.setRootPath("WEB-INF/"); + GCONST.setServerName("ecology"); + Map params=new HashMap<>(); + params.put("size","10"); + params.put("page","1"); + params.put("usercode","5620"); + + params.put("ProjectCode",""); + params.put("projectState",""); + params.put("projectName",""); + params.put("processNo",""); + params.put("projectManager",""); + + com.engine.htsc.itcglc.cmd.ItcglcProjectListCmd ItcglcProjectListCmd = new com.engine.htsc.itcglc.cmd.ItcglcProjectListCmd(params); + CommandContext ceshi = new CommandContext(null,null); + ItcglcProjectListCmd.execute(ceshi); + } + + +} diff --git a/src/main/java/com/engine/htxc/itcglc/cmd/cgplanListCmd.java b/src/main/java/com/engine/htxc/itcglc/cmd/cgplanListCmd.java new file mode 100644 index 0000000..b0b1845 --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/cmd/cgplanListCmd.java @@ -0,0 +1,347 @@ +package com.engine.htxc.itcglc.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.GCONST; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.util.HT_SelectField; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class cgplanListCmd extends AbstractCommonCommand> { + + public cgplanListCmd(Map params) { + this.params = params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + HT_SelectField HT_SelectField = new HT_SelectField(); + Map apimap = new HashMap(); + String usercode = Util.null2String(params.get("usercode")); + System.out.println("usercode:"+usercode); + PropBean pb = new PropBean(); + String url = pb.getPropName("Itcglc_cgjhurl") ; + //String url = "http://168.61.69.225:8080/jtxt/ITProjects/getNonstandardizedItProcurement" ; + + String workflowid = pb.getActiveWorkflowIdByUnNumber("itcgsq"); + System.out.println("workflowid:"+workflowid); + String cglxfieldis = HT_SelectField.getbillFieldByWorkflowid(workflowid,"cglx","dt5"); + String cgfsfieldis = HT_SelectField.getbillFieldByWorkflowid(workflowid,"cgfs","dt5"); + System.out.println("cglxfieldis:"+cglxfieldis); + System.out.println("cgfsfieldis:"+cgfsfieldis); + + Map headers = new HashMap(); + String workcode = "" ; + if(!"".equals(usercode)){ + String sql = " select workcode from hrmresource where id="+usercode+" and belongto is null "; + rs.execute(sql); + if(rs.next()){ + workcode = Util.null2String(rs.getString("workcode")); + } + } + System.out.println("workcode:"+workcode); + + JSONObject jsonObject = new JSONObject(); + //011516 + jsonObject.put("badge",workcode); + List> cgxxlist = new ArrayList>(); + Map cgxxMap = null; + try{ + String response = sendPost(url,jsonObject.toJSONString(),headers); + System.out.println("response:"+response); + if(!"".equals(response)) + { + JSONObject responseJson = JSONObject.parseObject(response); + if(!"".equals(responseJson)){ + if(responseJson.containsKey("itsystemPurchaseData")){ + + JSONObject cgxxObject = responseJson.getJSONObject("itsystemPurchaseData"); + if(cgxxObject !=null){ + JSONArray cgxxArray = cgxxObject.getJSONArray("item"); + + + for(int i=0;i> ysbmList = new ArrayList>(); + String ysbm = "" ; + if(!"".equals(y_department_id)) + { + Map ysbmMap = null; + y_department_id = "'"+y_department_id.replaceAll(",","','")+"'"; + String sql = " select id,departmentname from hrmdepartment l where l.departmentcode in("+y_department_id+")"; + rs.execute(sql); + while (rs.next()){ + String deptid = Util.null2String(rs.getString("id")); + String departmentname = Util.null2String(rs.getString("departmentname")); + ysbm += ysbm=="" ? deptid : ","+deptid ; + + ysbmMap = new HashMap(); + ysbmMap.put("id",deptid); + ysbmMap.put("name",departmentname); + ysbmList.add(ysbmMap); + } + } + String c_content = Util.null2String(cgxxObj.get("c_content")); + String cgzd = Util.null2String(cgxxObj.get("purchase_system")); + + String purchase_terms = Util.null2String(cgxxObj.get("purchase_terms")); + String team_id = Util.null2String(cgxxObj.get("team_id")); + String c_remark = Util.null2String(cgxxObj.get("c_remark")); + + String cgfzr = "" ; + List> cgfzrList = new ArrayList>(); + String caigoufuzerenid = Util.null2String(cgxxObj.get("caigoufuzerenid")); + if(!"".equals(caigoufuzerenid)) + { + Map cgfzrMap = null; + String sql = " select id,lastname from hrmresource where workcode='"+caigoufuzerenid+"' and belongto is null "; + rs.execute(sql); + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + cgfzr += cgfzr=="" ? hrmid : ","+hrmid ; + cgfzrMap = new HashMap(); + cgfzrMap.put("id",hrmid); + cgfzrMap.put("name",lastname); + cgfzrList.add(cgfzrMap); + } + } + String project_name = Util.null2String(cgxxObj.get("project_name")); + + cgxxMap = new HashMap(); + cgxxMap.put("appid",app_id); + cgxxMap.put("cglx",cglx); + cgxxMap.put("cgfs",cgfs); + cgxxMap.put("ysbm",ysbm); + cgxxMap.put("ysbmObj",ysbmList); + cgxxMap.put("ysje",c_money); + cgxxMap.put("sl",number_units); + cgxxMap.put("cgfzr",cgfzr); + cgxxMap.put("cgfzrObj",cgfzrList); + cgxxMap.put("cgnr",c_content); + cgxxMap.put("cgzd",cgzd); + cgxxMap.put("ejcgzd",purchase_terms); + cgxxMap.put("gys",team_id); + cgxxMap.put("bz",c_remark); + cgxxMap.put("xmmczw",project_name); + cgxxlist.add(cgxxMap); + } + } + } + } + } + }catch (Exception e){ + System.out.println(e); + } + System.out.println("cgxxlist:"+cgxxlist.size()); + apimap.put("cgxxlist",cgxxlist); + apimap.put("count",cgxxlist.size()); + return apimap; + } + + /*** + * + * @param url + * @param params + * @param headsMap + * @return + */ + public String sendPost(String url, String params, Map headsMap) + { + //BaseBean bb = new BaseBean(); + String body = ""; + String encoding = "UTF-8"; + //创建httpclient对象 + CloseableHttpClient client = HttpClients.createDefault(); + //创建post方式请求对象 + HttpPost httpPost = new HttpPost(url); + + + //设置参数到请求对象中 + StringEntity strEntity = new StringEntity(params,encoding);//解决中文乱码问题 + strEntity.setContentEncoding(encoding); + strEntity.setContentType("application/json"); + httpPost.setEntity(strEntity); + + //设置header信息 + //指定报文头【Content-type】、【User-Agent】 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + + if (headsMap != null && !headsMap.isEmpty()) { + headsMap.forEach((key, value) -> { + //bb.writeLog("key:"+key+" value:"+value); + httpPost.addHeader(key, value); + }); + } + //执行请求操作,并拿到结果(同步阻塞) + CloseableHttpResponse response = null; + try { + response = client.execute(httpPost); + //获取结果实体 + HttpEntity entity = response.getEntity(); + if (entity != null) { + //按指定编码转换结果实体为String类型 + body = EntityUtils.toString(entity, encoding); + } + EntityUtils.consume(entity); + //释放链接 + response.close(); + } catch (IOException e) { + System.out.println("OrganizationSyn-e:"+e); + e.printStackTrace(); + } + return body; + } + + + public static void main(String[] args) { + GCONST.setRootPath("WEB-INF/"); + GCONST.setServerName("ecology"); + Map params=new HashMap<>(); + params.put("size","10"); + params.put("page","1"); + params.put("usercode","5620"); + HT_SelectField HT_SelectField = new HT_SelectField(); + PropBean pb = new PropBean(); + + String workflowid = pb.getActiveWorkflowIdByUnNumber("itcgsq"); + System.out.println("workflowid:"+workflowid); + String cglxfieldis = HT_SelectField.getbillFieldByWorkflowid(workflowid,"cglx","dt5"); + String cgfsfieldis = HT_SelectField.getbillFieldByWorkflowid(workflowid,"cgfs","dt5"); + + System.out.println("cglxfieldis:"+cglxfieldis); + System.out.println("cgfsfieldis:"+cgfsfieldis); + + List> cgxxlist = new ArrayList>(); + List> list = new ArrayList>(); + + RecordSet rs = new RecordSet(); + String usercode = "12977" ; + String workcode = "" ; + if(!"".equals(usercode)){ + String sql = " select workcode from hrmresource where id="+usercode+" and belongto is null "; + rs.execute(sql); + if(rs.next()){ + workcode = Util.null2String(rs.getString("workcode")); + } + } + + com.engine.htsc.itcglc.cmd.cgplanListCmd cgplanListCmd = new com.engine.htsc.itcglc.cmd.cgplanListCmd(params); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("badge",workcode); + Map headers = new HashMap(); + String url = "http://168.61.69.225:8080/jtxt/ITProjects/getNonstandardizedItProcurement" ; + + String response = cgplanListCmd.sendPost(url,jsonObject.toJSONString(),headers); + System.out.println("response:"+response); + + System.out.println("response:"+response); + if(!"".equals(response)) + { + JSONObject responseJson = JSONObject.parseObject(response); + if(!"".equals(responseJson)){ + if(responseJson.containsKey("itsystemPurchaseData")){ + + JSONObject cgxxObject = responseJson.getJSONObject("itsystemPurchaseData"); + if(cgxxObject !=null){ + JSONArray cgxxArray = cgxxObject.getJSONArray("item"); + Map cgxxMap = null; + + for(int i=0;i(); + cgxxMap.put("appid",app_id); + cgxxMap.put("cglx",cglx); + cgxxMap.put("cgfs",cgfs); + cgxxMap.put("ysbm",departmentname); + cgxxMap.put("ysje",c_money); + cgxxMap.put("sl",number_units); + cgxxMap.put("cgfzr",caigoufuzeren); + cgxxMap.put("cgnr",c_content); + cgxxMap.put("cgzd",cgzd); + cgxxMap.put("ejcgzd",purchase_terms); + cgxxMap.put("gys",team_id); + cgxxMap.put("bz",c_remark); + cgxxMap.put("xmmczw",project_name); + cgxxlist.add(cgxxMap); + } + } + } + } + } + } +} diff --git a/src/main/java/com/engine/htxc/itcglc/service/ItcglcService.java b/src/main/java/com/engine/htxc/itcglc/service/ItcglcService.java new file mode 100644 index 0000000..c32c718 --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/service/ItcglcService.java @@ -0,0 +1,55 @@ +package com.engine.htxc.itcglc.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface ItcglcService { + + + + /*** + * + * @param params + * @return + */ + Map getItcgProject(Map params); + + /*** + * + * @param user + * @param params + * @return + */ + Map getItcgProjectInfo(User user, Map params); + + /*** + * + * @param user + * @param params + * @return + */ + Map getLsdpInfo(User user, Map params); + + /** + * + * @param params + * @return + */ + Map createFreeNode(User user, Map params); + + /** + * + * @param params + * @return + */ + Map getcgplanlist(Map params); + + /*** + * + * @param params + * @return + */ + Map createCgrwdRequest(Map params, User user); + +} diff --git a/src/main/java/com/engine/htxc/itcglc/service/impl/ItcglcServiceImpl.java b/src/main/java/com/engine/htxc/itcglc/service/impl/ItcglcServiceImpl.java new file mode 100644 index 0000000..c7198e6 --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/service/impl/ItcglcServiceImpl.java @@ -0,0 +1,42 @@ +package com.engine.htxc.itcglc.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.itcglc.cmd.*; +import com.engine.htxc.itcglc.service.ItcglcService; +import weaver.hrm.User; + +import java.util.Map; + +public class ItcglcServiceImpl extends Service implements ItcglcService { + + @Override + public Map getItcgProject(Map params) { + return commandExecutor.execute(new ItcglcProjectListCmd(params)); + } + + @Override + public Map getItcgProjectInfo(User user, Map params) { + return commandExecutor.execute(new ItcglcProjectInfoCmd(user,params)); + } + + @Override + public Map getLsdpInfo(User user, Map params) { + return commandExecutor.execute(new ItcglcLdspInfoCmd(user,params)); + } + + + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new ItcglcFreeNodeCmd(user,params)); + } + + @Override + public Map getcgplanlist(Map params) { + return commandExecutor.execute(new cgplanListCmd(params)); + } + + @Override + public Map createCgrwdRequest(Map params, User user) { + return commandExecutor.execute(new CreateRequestCmd(params,user)); + } +} diff --git a/src/main/java/com/engine/htxc/itcglc/web/ItcglcAction.java b/src/main/java/com/engine/htxc/itcglc/web/ItcglcAction.java new file mode 100644 index 0000000..9c1e456 --- /dev/null +++ b/src/main/java/com/engine/htxc/itcglc/web/ItcglcAction.java @@ -0,0 +1,246 @@ +package com.engine.htxc.itcglc.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.itcglc.service.ItcglcService; +import com.engine.htxc.itcglc.service.impl.ItcglcServiceImpl; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItcglcAction { + + public ItcglcService getService(HttpServletRequest request, HttpServletResponse response){ + return (ItcglcService) ServiceUtil.getService(ItcglcServiceImpl.class); + } + + @POST + @Path("/getItcgProject") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public String getItcgProject(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + ResourceComInfo ResourceComInfo = null; + try { + Map param = ParamUtil.request2Map(request); + String userid = Util.null2String(param.get("usercode")); + System.out.println("userid:"+userid); + apidatas = getService(request,response).getItcgProject(param); + + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/getItcgProjectInfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getItlxProjectInfo(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).getItcgProjectInfo(user,param); + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/getBshqbm") + @Produces({MediaType.TEXT_PLAIN}) + public String getBshqbm(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String itlxlx_bshqbm = pb.getPropName("itcglx_bshqbm"); + + if(!"".equals(itlxlx_bshqbm)) + { + itlxlx_bshqbm = "'"+itlxlx_bshqbm.replaceAll(",","','")+"'"; + + String deptids = ""; + List> list = new ArrayList>(); + Map deptamap = null; + String sql = " select id,departmentname from hrmdepartment where departmentcode in ("+itlxlx_bshqbm+") "; + rs.execute(sql); + while (rs.next()){ + String deptid = Util.null2String(rs.getString("id")) ; + String departmentname = Util.null2String(rs.getString("departmentname")) ; + + deptids += deptids=="" ? deptid : ","+deptid ; + deptamap = new HashMap(); + deptamap.put("id",deptid); + deptamap.put("name",departmentname); + list.add(deptamap); + } + + apidatas.put("value",deptids); + apidatas.put("specialobj",list); + + apidatas.put("api_status", true); + + }else{ + apidatas.put("api_status", true); + } + + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/getLsdpInfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getLsdpInfo(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).getLsdpInfo(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/getldsplist") + @Produces({MediaType.TEXT_PLAIN}) + public String getldsplist(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + int requestid = Util.getIntValue(Util.null2String(request.getParameter("requestid"))); // + int workflowid = Util.getIntValue(Util.null2String(request.getParameter("workflowid"))); // + + PropBean pb = new PropBean(); + String nodeid = pb.getNodeIdsByUnNumber("itcgsq_gsldsp"); + + List> dataList = new ArrayList>(); + String fieldvalue = ""; + RecordSet rs = new RecordSet(); + + String sql =" select t.userid,h.lastname,k.departmentname \n" + + " from workflow_currentoperator t\n" + + " inner join hrmresource h on h.id = t.userid\n" + + " inner join hrmdepartment k on k.id = h.departmentid\n" + + " where t.requestid=" +requestid + + " and t.workflowid=" + workflowid+ + " and t.nodeid in("+nodeid+") " + + " order by receivedate,receivetime"; + rs.execute(sql); + while (rs.next()){ + String userid = Util.null2String(rs.getString("userid")); + String lastname = Util.null2String(rs.getString("lastname")); + String departmentname = Util.null2String(rs.getString("departmentname")); + fieldvalue += fieldvalue == ""? userid : ","+userid ; + Map itemMap = new HashMap(); + itemMap.put("id",userid); + itemMap.put("name",lastname+"("+departmentname+")"); + dataList.add(itemMap); + } + apidatas.put("value",fieldvalue); + apidatas.put("specialobj",dataList); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/getcgplanlist") + @Produces({MediaType.TEXT_PLAIN}) + public String getcgplanlist(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).getcgplanlist(param); + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/createCgrwdRequest") + @Produces({MediaType.TEXT_PLAIN}) + public String createCgrwdRequest(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).createCgrwdRequest(param,user); + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + +} diff --git a/src/main/java/com/engine/htxc/jzxcshb/cmd/JzxcshbFreeNodeCmd.java b/src/main/java/com/engine/htxc/jzxcshb/cmd/JzxcshbFreeNodeCmd.java new file mode 100644 index 0000000..49740a7 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcshb/cmd/JzxcshbFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.jzxcshb.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class JzxcshbFreeNodeCmd extends AbstractCommonCommand> { + + public JzxcshbFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/jzxcshb/service/JzxcshbService.java b/src/main/java/com/engine/htxc/jzxcshb/service/JzxcshbService.java new file mode 100644 index 0000000..ae06bd0 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcshb/service/JzxcshbService.java @@ -0,0 +1,15 @@ +package com.engine.htxc.jzxcshb.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface JzxcshbService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + + Map getTzydry(Map param); + + String getNewRequestLog(Map param); +} diff --git a/src/main/java/com/engine/htxc/jzxcshb/service/impl/JzxcshbServiceImpl.java b/src/main/java/com/engine/htxc/jzxcshb/service/impl/JzxcshbServiceImpl.java new file mode 100644 index 0000000..f9e9464 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcshb/service/impl/JzxcshbServiceImpl.java @@ -0,0 +1,106 @@ +package com.engine.htxc.jzxcshb.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.jzxcshb.cmd.JzxcshbFreeNodeCmd; +import com.engine.htxc.jzxcshb.service.JzxcshbService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-22 14:00 + * @Description:竞争性磋商汇报相关业务方法 + * @ModifyLog: + **/ +public class JzxcshbServiceImpl extends Service implements JzxcshbService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new JzxcshbFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + BaseBean bb = new BaseBean(); + String requestid = (String)param.get("requestid"); + JAVATools.writelog("招标汇报requestid"+requestid); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'jzxcshb')) and unnumber = 'jzxcshb_ldsp'"; + JAVATools.writelog("招标汇报workSql"+workSql); + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + bb.writeLog("招标汇报sql"+sql); + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } + + @Override + public String getNewRequestLog(Map param) { + String requestId = (String)param.get("requestId"); + String number = (String)param.get("number"); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("getNewRequestLog---requestId"+requestId); + bb.writeLog("getNewRequestLog---number"+number); + String nodeSql = "select * from workflow_nodebase where unnumber = "+number+"_ldsp"; + rs.getString(nodeSql); + rs.next(); + String nodeId = rs.getString("nodeid"); + String sql = "select logtype from (select rownum ,w.* from workflow_requestlog w where requestid = '"+requestId+"' and nodeid = '"+nodeId+"' order by concat(w.operatedate,' ',w.operatetime) desc) where rownum = 1 "; + rs.execute(sql); + if(rs.next()){ + return rs.getString("logtype"); + } + return null; + } +} diff --git a/src/main/java/com/engine/htxc/jzxcshb/web/JzxcshbAction.java b/src/main/java/com/engine/htxc/jzxcshb/web/JzxcshbAction.java new file mode 100644 index 0000000..7b5a7bf --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcshb/web/JzxcshbAction.java @@ -0,0 +1,138 @@ +package com.engine.htxc.jzxcshb.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.jzxcshb.service.JzxcshbService; +import com.engine.htxc.jzxcshb.service.impl.JzxcshbServiceImpl; +import org.apache.commons.lang3.StringUtils; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-22 14:00 + * @Description:竞争性磋商汇报相关接口 + * @ModifyLog: + **/ +public class JzxcshbAction { + + private JzxcshbService getService(){ + return ServiceUtil.getService(JzxcshbServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 这个接口是用来回来获取领导i审批节点的领导的最新审批意见 + * @param request + * @param response + * @return + */ + @GET + @Path("/getNewRequestLog") + @Produces({MediaType.TEXT_PLAIN}) + public String getNewRequestLog(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map map = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("竞争性磋商汇报requestid="+param.get("requestid")); + String result = getService().getNewRequestLog(param); + if(StringUtils.isNotBlank(result)){ + map.put("data",result); + }else{ + map.put("data",""); + } + map.put("code",200); + map.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/jzxcsqs/cmd/JzxcsqsFreeNodeCmd.java b/src/main/java/com/engine/htxc/jzxcsqs/cmd/JzxcsqsFreeNodeCmd.java new file mode 100644 index 0000000..f39a958 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcsqs/cmd/JzxcsqsFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.jzxcsqs.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class JzxcsqsFreeNodeCmd extends AbstractCommonCommand> { + + public JzxcsqsFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/jzxcsqs/service/JzxcsqsService.java b/src/main/java/com/engine/htxc/jzxcsqs/service/JzxcsqsService.java new file mode 100644 index 0000000..427e69e --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcsqs/service/JzxcsqsService.java @@ -0,0 +1,12 @@ +package com.engine.htxc.jzxcsqs.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface JzxcsqsService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + Map getTzydry(Map param); +} diff --git a/src/main/java/com/engine/htxc/jzxcsqs/service/impl/JzxcsqsServiceImpl.java b/src/main/java/com/engine/htxc/jzxcsqs/service/impl/JzxcsqsServiceImpl.java new file mode 100644 index 0000000..582fd14 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcsqs/service/impl/JzxcsqsServiceImpl.java @@ -0,0 +1,70 @@ +package com.engine.htxc.jzxcsqs.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.jzxcsqs.cmd.JzxcsqsFreeNodeCmd; +import com.engine.htxc.jzxcsqs.service.JzxcsqsService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class JzxcsqsServiceImpl extends Service implements JzxcsqsService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new JzxcsqsFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + String requestid = (String)param.get("requestid"); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'jzxcsqs')) and unnumber = 'jzxcsqs_ldsp'"; + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/jzxcsqs/web/JzxcsqsAction.java b/src/main/java/com/engine/htxc/jzxcsqs/web/JzxcsqsAction.java new file mode 100644 index 0000000..a8a7ca6 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxcsqs/web/JzxcsqsAction.java @@ -0,0 +1,97 @@ +package com.engine.htxc.jzxcsqs.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.jzxcsqs.service.JzxcsqsService; +import com.engine.htxc.jzxcsqs.service.impl.JzxcsqsServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class JzxcsqsAction { + + private JzxcsqsService getService(){ + return ServiceUtil.getService(JzxcsqsServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} diff --git a/src/main/java/com/engine/htxc/jzxtphb/cmd/JzxtphbFreeNodeCmd.java b/src/main/java/com/engine/htxc/jzxtphb/cmd/JzxtphbFreeNodeCmd.java new file mode 100644 index 0000000..30165e0 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtphb/cmd/JzxtphbFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.jzxtphb.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class JzxtphbFreeNodeCmd extends AbstractCommonCommand> { + + public JzxtphbFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/jzxtphb/service/JzxtphbService.java b/src/main/java/com/engine/htxc/jzxtphb/service/JzxtphbService.java new file mode 100644 index 0000000..fa9ca35 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtphb/service/JzxtphbService.java @@ -0,0 +1,13 @@ +package com.engine.htxc.jzxtphb.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface JzxtphbService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + + Map getTzydry(Map param); +} diff --git a/src/main/java/com/engine/htxc/jzxtphb/service/impl/JzxtphbServiceImpl.java b/src/main/java/com/engine/htxc/jzxtphb/service/impl/JzxtphbServiceImpl.java new file mode 100644 index 0000000..ff8c1d5 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtphb/service/impl/JzxtphbServiceImpl.java @@ -0,0 +1,77 @@ +package com.engine.htxc.jzxtphb.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.jzxtphb.cmd.JzxtphbFreeNodeCmd; +import com.engine.htxc.jzxtphb.service.JzxtphbService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class JzxtphbServiceImpl extends Service implements JzxtphbService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new JzxtphbFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + BaseBean bb = new BaseBean(); + String requestid = (String)param.get("requestid"); + JAVATools.writelog("招标汇报requestid"+requestid); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'jzxtphb')) and unnumber = 'jzxtphb_ldsp'"; + JAVATools.writelog("招标汇报workSql"+workSql); + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + bb.writeLog("招标汇报sql"+sql); + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/jzxtphb/web/JzxtphbAction.java b/src/main/java/com/engine/htxc/jzxtphb/web/JzxtphbAction.java new file mode 100644 index 0000000..b8aacdf --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtphb/web/JzxtphbAction.java @@ -0,0 +1,98 @@ +package com.engine.htxc.jzxtphb.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.jzxtphb.service.JzxtphbService; +import com.engine.htxc.jzxtphb.service.impl.JzxtphbServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class JzxtphbAction { + + private JzxtphbService getService(){ + return ServiceUtil.getService(JzxtphbServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} diff --git a/src/main/java/com/engine/htxc/jzxtpqs/cmd/JzxtpqsFreeNodeCmd.java b/src/main/java/com/engine/htxc/jzxtpqs/cmd/JzxtpqsFreeNodeCmd.java new file mode 100644 index 0000000..1724ef9 --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtpqs/cmd/JzxtpqsFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.jzxtpqs.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class JzxtpqsFreeNodeCmd extends AbstractCommonCommand> { + + public JzxtpqsFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/jzxtpqs/service/JzxtpqsService.java b/src/main/java/com/engine/htxc/jzxtpqs/service/JzxtpqsService.java new file mode 100644 index 0000000..f4e371b --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtpqs/service/JzxtpqsService.java @@ -0,0 +1,12 @@ +package com.engine.htxc.jzxtpqs.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface JzxtpqsService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + Map getTzydry(Map param); +} diff --git a/src/main/java/com/engine/htxc/jzxtpqs/service/impl/JzxtpqsServiceImpl.java b/src/main/java/com/engine/htxc/jzxtpqs/service/impl/JzxtpqsServiceImpl.java new file mode 100644 index 0000000..bbf093e --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtpqs/service/impl/JzxtpqsServiceImpl.java @@ -0,0 +1,70 @@ +package com.engine.htxc.jzxtpqs.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.jzxtpqs.cmd.JzxtpqsFreeNodeCmd; +import com.engine.htxc.jzxtpqs.service.JzxtpqsService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class JzxtpqsServiceImpl extends Service implements JzxtpqsService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new JzxtpqsFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + String requestid = (String)param.get("requestid"); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'jzxtpqs')) and unnumber = 'jzxtpqs_ldsp'"; + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/jzxtpqs/web/JzxtpqsAction.java b/src/main/java/com/engine/htxc/jzxtpqs/web/JzxtpqsAction.java new file mode 100644 index 0000000..fa87c7b --- /dev/null +++ b/src/main/java/com/engine/htxc/jzxtpqs/web/JzxtpqsAction.java @@ -0,0 +1,97 @@ +package com.engine.htxc.jzxtpqs.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.jzxtpqs.service.JzxtpqsService; +import com.engine.htxc.jzxtpqs.service.impl.JzxtpqsServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class JzxtpqsAction { + + private JzxtpqsService getService(){ + return ServiceUtil.getService(JzxtpqsServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} diff --git a/src/main/java/com/engine/htxc/receipt/web/ReceiptWebForwardAction.java b/src/main/java/com/engine/htxc/receipt/web/ReceiptWebForwardAction.java new file mode 100644 index 0000000..51ee946 --- /dev/null +++ b/src/main/java/com/engine/htxc/receipt/web/ReceiptWebForwardAction.java @@ -0,0 +1,73 @@ +package com.engine.htxc.receipt.web; + +import com.alibaba.fastjson.JSON; +import com.engine.common.util.ParamUtil; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.cus.HTUtil; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class ReceiptWebForwardAction { + + @POST + @Path("/createFromReceipt") + @Produces({MediaType.TEXT_PLAIN}) + public String forwardCreateFromReceipt(@Context HttpServletRequest request, @Context HttpServletResponse response){ + BaseBean bs = new BaseBean(); + Map apidatas = new HashMap(); + bs.writeLog("----ReceiptWebForwardAction-----"); + try{ + String requestid = request.getParameter("requestid"); + + Map requestMap = new HashMap<>(); + requestMap.put("requestid",requestid); + PropBean pb = new PropBean(); + //触发协作任务地址 + String receiptCreateTaskUrl = Util.null2String(pb.getPropName("receipt.creatTask.url"))+"?requestid="+requestid; + bs.writeLog("doCreatTask----->" + receiptCreateTaskUrl); + HTUtil htUtil = new HTUtil(); + return htUtil.httpPostRaw(receiptCreateTaskUrl, JSON.toJSON(requestMap).toString(), null, null); + }catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + + return JSON.toJSONString(apidatas); + } + + @POST + @Path("/getTaskBySubRequestid") + @Produces({MediaType.TEXT_PLAIN}) + public String forwardGetTaskBySubRequestid(@Context HttpServletRequest request, @Context HttpServletResponse response) { + BaseBean bs = new BaseBean(); + Map apidatas = new HashMap(); + bs.writeLog("----ReceiptWebForwardAction-----"); + try { + String requestid = request.getParameter("requestid"); + Map requestMap = new HashMap(); + requestMap.put("requestid", requestid); + PropBean pb = new PropBean(); + String receiptGetTaskUrl = Util.null2String(pb.getPropName("receipt.getTask.url")) + "?requestid=" + requestid; + bs.writeLog("doGetTask----->" + receiptGetTaskUrl); + HTUtil htUtil = new HTUtil(); + return htUtil.httpPostRaw(receiptGetTaskUrl, JSON.toJSON(requestMap).toString(), null, null); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + return JSON.toJSONString(apidatas); + } + } + +} diff --git a/src/main/java/com/engine/htxc/swtp/cmd/SwtpFreeNodeCmd.java b/src/main/java/com/engine/htxc/swtp/cmd/SwtpFreeNodeCmd.java new file mode 100644 index 0000000..ceaea89 --- /dev/null +++ b/src/main/java/com/engine/htxc/swtp/cmd/SwtpFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.swtp.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class SwtpFreeNodeCmd extends AbstractCommonCommand> { + + public SwtpFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/swtp/service/SwtpService.java b/src/main/java/com/engine/htxc/swtp/service/SwtpService.java new file mode 100644 index 0000000..641affb --- /dev/null +++ b/src/main/java/com/engine/htxc/swtp/service/SwtpService.java @@ -0,0 +1,13 @@ +package com.engine.htxc.swtp.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface SwtpService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + Map getTzydry(Map param); + +} diff --git a/src/main/java/com/engine/htxc/swtp/service/impl/SwtpServiceImpl.java b/src/main/java/com/engine/htxc/swtp/service/impl/SwtpServiceImpl.java new file mode 100644 index 0000000..6f0c196 --- /dev/null +++ b/src/main/java/com/engine/htxc/swtp/service/impl/SwtpServiceImpl.java @@ -0,0 +1,76 @@ +package com.engine.htxc.swtp.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.swtp.cmd.SwtpFreeNodeCmd; +import com.engine.htxc.swtp.service.SwtpService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class SwtpServiceImpl extends Service implements SwtpService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new SwtpFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + BaseBean bb = new BaseBean(); + String requestid = (String)param.get("requestid"); + JAVATools.writelog("招标汇报requestid"+requestid); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'swtp')) and unnumber = 'swtp_ldsp'"; + JAVATools.writelog("招标汇报workSql"+workSql); + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + bb.writeLog("招标汇报sql"+sql); + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/swtp/web/SwtpAction.java b/src/main/java/com/engine/htxc/swtp/web/SwtpAction.java new file mode 100644 index 0000000..f11094d --- /dev/null +++ b/src/main/java/com/engine/htxc/swtp/web/SwtpAction.java @@ -0,0 +1,98 @@ +package com.engine.htxc.swtp.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.swtp.service.SwtpService; +import com.engine.htxc.swtp.service.impl.SwtpServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class SwtpAction { + + private SwtpService getService(){ + return ServiceUtil.getService(SwtpServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/cmd/CgrwdProjectInfoCmd.java b/src/main/java/com/engine/htxc/tycgrwd/cmd/CgrwdProjectInfoCmd.java new file mode 100644 index 0000000..45c13cf --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/cmd/CgrwdProjectInfoCmd.java @@ -0,0 +1,607 @@ +package com.engine.htxc.tycgrwd.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.htsc.itlxlc.util.RequestShareUtil; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.GCONST; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.interfaces.htsc.cus.HTUtil; + +import java.io.IOException; +import java.util.*; + +public class CgrwdProjectInfoCmd extends AbstractCommonCommand> { + + public CgrwdProjectInfoCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + String formid = Util.null2String(params.get("formid")); + String cglxfieldis = ""; + String cglxsql = " select id from workflow_billfield where billid="+formid+" and fieldname='cglx' " ; + rs.execute(cglxsql); + if(rs.next()){ + cglxfieldis = Util.null2String(rs.getString("id")); + } + + bb.writeLog("cglxfieldis:"+cglxfieldis); + String cgfsfieldis = ""; + String cgfssql = " select id from workflow_billfield where billid="+formid+" and fieldname='cgfs' " ; + rs.execute(cgfssql); + if(rs.next()){ + cgfsfieldis = Util.null2String(rs.getString("id")); + } + bb.writeLog("cgfsfieldis:"+cgfsfieldis); + + System.out.println( "in=================ItcglcProjectInfoCmd" ); + Map apimap = new HashMap(); + + String projCode = Util.null2String(params.get("projectCode")); + int nf = Util.getIntValue(Util.null2String(params.get("nf"))); + String userid = Util.null2String(user.getUID()); + System.out.println("userid:"+userid); + + PropBean pb = new PropBean(); + String url = pb.getPropName("ItcglcProjectDetailUrl") ; + bb.writeLog("url:"+url); + + Map headers = new HashMap(); + + HTUtil htutil = new HTUtil(); + String token = htutil.getAppToken(); + headers.put("JTXT-AUTH-TOKEN", token); + headers.put("JTXT-AUTH-TYPE", "APP"); + + JSONObject jsonObject = new JSONObject(); + String workcode = ""; + String sql = " select workcode from hrmresource where id= "+userid; + rs.execute(sql); + if(rs.next()){ + workcode = Util.null2String(rs.getString("workcode")); + } + + List> nlist = new ArrayList>(); + List> n1list = new ArrayList>(); + List> n2list = new ArrayList>(); + + List> itlxsqlist = new ArrayList>(); + List> xgcglclist = new ArrayList>(); + List> cgxxlist = new ArrayList>(); + + String hrmids = "" ; + List> hrmList = new ArrayList>(); + String xcgwyhsy = "1"; + String projectNumber = ""; + String xmmczw = "" ; + + String requestids = ""; + try{ + //011516 + jsonObject.put("badge",workcode); + jsonObject.put("projectCode",projCode); + String response = sendPost(url,jsonObject.toJSONString(),headers); + bb.writeLog("response:"+response); + System.out.println("response:"+response); + if(!"".equals(response)) + { + JSONObject retJson = JSONObject.parseObject(response); + String projectMasterPracticebadge = retJson.getString("projectMasterPracticebadge"); + Map hrmMap = null; + if(!"".equals(projectMasterPracticebadge)) + { + sql = " select id,lastname from hrmresource where workcode='"+projectMasterPracticebadge+"' and belongto is null "; + rs.execute(sql); + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + hrmids += hrmids=="" ? hrmid : ","+hrmid ; + hrmMap = new HashMap(); + hrmMap.put("id",hrmid); + hrmMap.put("name",lastname); + hrmList.add(hrmMap); + } + } + + projectNumber = retJson.getString("projectNumber"); + System.out.println("projectNumber:"+projectNumber); + xmmczw = retJson.getString("projectName"); + + System.out.println("xmmczw:"+xmmczw); + + if(retJson.containsKey("otherWorkflowList1")){ + JSONArray itlxsqArray = retJson.getJSONArray("otherWorkflowList1"); + Map itlxsqMap = null; + for(int i=0;i-1){ + String requsturl = itlxsqurl.substring(itlxsqurl.indexOf("requestid")); + if(requsturl.indexOf("&") > -1){ + String itlxRequetsId = requsturl.substring(10,requsturl.indexOf("&")); + if(!"".equals(itlxRequetsId) && !"1".equals(itlxRequetsId)){ + int num = getWorkflowStoped(itlxRequetsId); + if(num == 0){ + requestids += requestids=="" ? itlxRequetsId : ","+itlxRequetsId ; + + itlxsqMap = new HashMap(); + itlxsqMap.put("title",title); + itlxsqMap.put("workflownum",workFlowNum); + itlxsqMap.put("workflownumber",workFlowNumber); + itlxsqMap.put("url",itlxsqurl); + itlxsqlist.add(itlxsqMap); + + } + } + }else{ + String itLxRequetsId = requsturl.substring(10); + if(!"".equals(itLxRequetsId) && !"1".equals(itLxRequetsId)){ + int num = getWorkflowStoped(itLxRequetsId); + if(num == 0){ + requestids += requestids=="" ? itLxRequetsId : ","+itLxRequetsId ; + + itlxsqMap = new HashMap(); + itlxsqMap.put("title",title); + itlxsqMap.put("workflownum",workFlowNum); + itlxsqMap.put("workflownumber",workFlowNumber); + itlxsqMap.put("url",itlxsqurl); + itlxsqlist.add(itlxsqMap); + + } + } + } + } + } + + } + } + + if(retJson.containsKey("purchaseList")) + { + JSONArray xgcglcArray = retJson.getJSONArray("purchaseList"); + Map xgcglcMap = null; + for(int i=0;i-1){ + String requsturl = cgxglcurl.substring(cgxglcurl.indexOf("requestid")); + if(requsturl.indexOf("&") > -1){ + String cgxglcRequetsId = requsturl.substring(10,requsturl.indexOf("&")); + if(!"".equals(cgxglcRequetsId) && !"1".equals(cgxglcRequetsId)){ + int num = getWorkflowStoped(cgxglcRequetsId); + if(num == 0){ + requestids += requestids=="" ? cgxglcRequetsId : ","+cgxglcRequetsId ; + + xgcglcMap = new HashMap(); + xgcglcMap.put("title",title); + xgcglcMap.put("workflownum",workFlowNum); + xgcglcMap.put("url",cgxglcurl); + xgcglclist.add(xgcglcMap); + + } + } + }else{ + String cgxglcRequetsId = requsturl.substring(10); + if(!"".equals(cgxglcRequetsId) && !"1".equals(cgxglcRequetsId)){ + int num = getWorkflowStoped(cgxglcRequetsId); + if(num == 0){ + requestids += requestids=="" ? cgxglcRequetsId : ","+cgxglcRequetsId ; + + xgcglcMap = new HashMap(); + xgcglcMap.put("title",title); + xgcglcMap.put("workflownum",workFlowNum); + xgcglcMap.put("url",cgxglcurl); + xgcglclist.add(xgcglcMap); + + } + } + } + } + } + + } + } + + if(retJson.containsKey("itsystemPurchaseData")){ + JSONObject cgxxObject = retJson.getJSONObject("itsystemPurchaseData"); + System.out.println("cgxxObject:"+cgxxObject); + if(cgxxObject !=null){ + JSONArray cgxxArray = cgxxObject.getJSONArray("item"); + System.out.println("cgxxArray:"+cgxxArray.size()); + Map cgxxMap = null; + + int dXcgwyhsy = 0; + for(int i=0;i=2000000) + { + if("0".equals(cgfs) || "1".equals(cgfs) || "4".equals(cgfs) || "5".equals(cgfs)){ + + dXcgwyhsy++; + } + } + } + + //String y_department = Util.null2String(cgxxObj.get("y_department")); + String yDepartmentId = Util.null2String(cgxxObj.get("y_department_id")); + List> ysbmList = new ArrayList>(); + String ysbm = "" ; + if(!"".equals(yDepartmentId)) + { + Map ysbmMap = null; + yDepartmentId = "'"+yDepartmentId.replaceAll(",","','")+"'"; + sql = " select id,departmentname from hrmdepartment l where l.departmentcode in("+yDepartmentId+")"; + rs.execute(sql); + while (rs.next()){ + String deptid = Util.null2String(rs.getString("id")); + String departmentname = Util.null2String(rs.getString("departmentname")); + ysbm += ysbm=="" ? deptid : ","+deptid ; + + ysbmMap = new HashMap(); + ysbmMap.put("id",deptid); + ysbmMap.put("name",departmentname); + ysbmList.add(ysbmMap); + } + } + String cContent = Util.null2String(cgxxObj.get("c_content")); + String cgzd = Util.null2String(cgxxObj.get("purchase_system")); +// String cgzd = "" ; +// if (!"".equals(purchase_system)) { +// sql = " select selectvalue from workflow_selectitem where fieldid="+cgzdfieldis+" and selectname = '"+purchase_system+"'" ; +// rs.execute(sql); +// if (rs.next()){ +// cgzd = Util.null2String(rs.getString("selectvalue")); +// } +// } + String purchaseTerms = Util.null2String(cgxxObj.get("purchase_terms")); + String teamId = Util.null2String(cgxxObj.get("team_id")); + String cRemark = Util.null2String(cgxxObj.get("c_remark")); + //String purchaseNum = Util.null2String(cgxxObj.get("purchaseNum")); + + String cgfzr = "" ; + List> cgfzrList = new ArrayList>(); + String caigoufuzerenid = Util.null2String(cgxxObj.get("caigoufuzerenid")); + if(!"".equals(caigoufuzerenid)) + { + Map cgfzrMap = null; + sql = " select id,lastname from hrmresource where workcode='"+caigoufuzerenid+"' and belongto is null "; + rs.execute(sql); + while (rs.next()){ + String hrmid = Util.null2String(rs.getString("id")); + String lastname = Util.null2String(rs.getString("lastname")); + cgfzr += cgfzr=="" ? hrmid : ","+hrmid ; + cgfzrMap = new HashMap(); + cgfzrMap.put("id",hrmid); + cgfzrMap.put("name",lastname); + cgfzrList.add(cgfzrMap); + } + } + +// String caigoufuzeren = Util.null2String(cgxxObj.get("caigoufuzeren")); + String projectName = Util.null2String(cgxxObj.get("project_name")); +// String it_project_num = Util.null2String(cgxxObj.get("it_project_num")); +// String beforehandPublicity = Util.null2String(cgxxObj.get("beforehandPublicity")); + + cgxxMap = new HashMap(); + cgxxMap.put("appid",appId); + cgxxMap.put("cglx",cglx); + cgxxMap.put("cgfs",cgfs); + cgxxMap.put("ysbm",ysbm); + cgxxMap.put("ysbmObj",ysbmList); + cgxxMap.put("ysje",cMoney); + cgxxMap.put("sl",numberUnits); + cgxxMap.put("cgfzr",cgfzr); + cgxxMap.put("cgfzrObj",cgfzrList); + cgxxMap.put("cgnr",cContent); + cgxxMap.put("cgzd",cgzd); + cgxxMap.put("ejcgzd",purchaseTerms); + cgxxMap.put("gys",teamId); + cgxxMap.put("bz",cRemark); + cgxxMap.put("xmmczw",projectName); + cgxxlist.add(cgxxMap); + + System.out.println("4444444"); + } + + if(dXcgwyhsy > 0) + { + xcgwyhsy = "0"; + } + } + } + + if(retJson.containsKey("projectDetail")){ + JSONObject projDetailObj = retJson.getJSONObject("projectDetail"); + if(projDetailObj !=null) + { + String budgetData = projDetailObj.getString("budgetData").replaceAll("\n",""); + System.out.println("budgetData:"+budgetData); + if(!"".equals(budgetData) && budgetData.startsWith(" nodes = topEle.elements("Item"); + Map dataMap = null; + for (Iterator it = nodes.iterator(); it.hasNext();) + { + Element elm = (Element) it.next(); + + String budgetYear = elm.elementTextTrim("BudgetYear"); + System.out.println("BudgetYear:" + budgetYear); + + String budgetNoAmt = elm.elementTextTrim("BudgetNoAmt"); + System.out.println("BudgetNoAmt:" + budgetNoAmt); + + String budgetId = elm.elementTextTrim("BudgetId"); + System.out.println("BudgetId:" + budgetId); + + + + String budgetDep = elm.elementTextTrim("BudgetDep"); + System.out.println("BudgetDep:" + budgetDep); + String deptid = "" ; + String deptname = "" ; + + + String budgetAmt = elm.elementTextTrim("BudgetAmt"); + System.out.println("BudgetAmt:" + budgetAmt); + + String budgetAcct = elm.elementTextTrim("BudgetAcct"); + System.out.println("BudgetAcct:" + budgetAcct); + + if(!"".equals(budgetDep)) + { + + sql = " select id,departmentname from hrmdepartment where departmentcode='"+budgetDep+"' "; + rs.execute(sql); + if(rs.next()){ + deptid = Util.null2String(rs.getString("id")); + deptname = Util.null2String(rs.getString("departmentname")); + } + } + + String yskmmc = ""; + if(!"".equals(budgetAcct)){ + sql = " select yskmmc from uf_kmpz where yskmbm='"+budgetAcct+"' "; + rs.execute(sql); + if(rs.next()){ + yskmmc = Util.null2String(rs.getString("yskmmc")); + } + } + + dataMap = new HashMap(); + dataMap.put("BudgetAcct",budgetAcct); + dataMap.put("BudgetYear",budgetYear); + dataMap.put("BudgetId",budgetId); + dataMap.put("yskmmc",yskmmc); + dataMap.put("yskmbm",budgetAcct); + dataMap.put("BudgetAmt",budgetAmt); + dataMap.put("BudgetDep",budgetDep); + dataMap.put("deptid",deptid); + dataMap.put("deptname",deptname); + + if(budgetYear.equals(Util.null2String(nf))) + { + nlist.add(dataMap); + } + + if(budgetYear.equals(Util.null2String(nf+1))) + { + n1list.add(dataMap); + } + + if(budgetYear.equals(Util.null2String(nf+2))) + { + n2list.add(dataMap); + } + } + } + } + } + } + }catch (Exception e){ + System.out.println("e---"+e); + bb.writeLog("e--:"+e); + } + + + if(!"".equals(requestids)){ + try{ + RequestShareUtil requestShareUtil = new RequestShareUtil(); + bb.writeLog("ItcglcProjectInfoCmd--RequestShareUtil--"+requestids); + requestShareUtil.addShare(Util.null2String(userid),requestids); + }catch (Exception e){ + bb.writeLog("e---"+e); + } + } + + System.out.println("cgxxlist:"+cgxxlist.size()); + apimap.put("value",hrmids); + apimap.put("specialobj",hrmList); + apimap.put("xmbh",projectNumber); + apimap.put("xcgwyhsy",xcgwyhsy); + apimap.put("xmmczw",xmmczw); + + apimap.put("xglcoa",requestids); + + apimap.put("nlist",nlist); + apimap.put("n1list",n1list); + apimap.put("n2list",n2list); + + apimap.put("itlxsqlist",itlxsqlist); + apimap.put("xgcglclist",xgcglclist); + apimap.put("cgxxlist",cgxxlist); + return apimap; + } + /*** + * + * @param url + * @param params + * @param headsMap + * @return + */ + public String sendPost(String url, String params, Map headsMap) + { + //BaseBean bb = new BaseBean(); + String body = ""; + String encoding = "UTF-8"; + //创建httpclient对象 + CloseableHttpClient client = HttpClients.createDefault(); + //创建post方式请求对象 + HttpPost httpPost = new HttpPost(url); + + + //设置参数到请求对象中 + StringEntity strEntity = new StringEntity(params,encoding);//解决中文乱码问题 + strEntity.setContentEncoding(encoding); + strEntity.setContentType("application/json"); + httpPost.setEntity(strEntity); + + //设置header信息 + //指定报文头【Content-type】、【User-Agent】 + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + + if (headsMap != null && !headsMap.isEmpty()) { + headsMap.forEach((key, value) -> { + //bb.writeLog("key:"+key+" value:"+value); + httpPost.addHeader(key, value); + }); + } + //执行请求操作,并拿到结果(同步阻塞) + CloseableHttpResponse response = null; + try { + response = client.execute(httpPost); + //获取结果实体 + HttpEntity entity = response.getEntity(); + if (entity != null) { + //按指定编码转换结果实体为String类型 + body = EntityUtils.toString(entity, encoding); + } + EntityUtils.consume(entity); + //释放链接 + response.close(); + } catch (IOException e) { + System.out.println("OrganizationSyn-e:"+e); + e.printStackTrace(); + } + return body; + } + + + public int getWorkflowStoped(String requestid){ + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + int i = 0; + try{ + String sql = " select requestid from workflow_requestbase t\n" + + " where t.requestid="+requestid+" and (t.isstopped=1 or t.currentnodeid in(select id from workflow_nodebase k where k.unnumber in('itcgsq_zz','itlxsq_zz') )) " ; + rs.execute(sql); + if (rs.next()){ + i++; + } + bb.writeLog("requestid:"+requestid); + bb.writeLog("sql:"+sql); + bb.writeLog("i:"+i); + + }catch (Exception e){ + } + return i; + } + + public static void main(String[] args) { + GCONST.setRootPath("WEB-INF/"); + GCONST.setServerName("ecology"); + Map params=new HashMap<>(); + params.put("usercode","011516"); + params.put("projectCode","621041"); + params.put("nf","2021"); + + User user = new User(5620); + com.engine.htsc.cgrwd.cmd.CgrwdProjectInfoCmd itcglcProjectInfoCmd = new com.engine.htsc.cgrwd.cmd.CgrwdProjectInfoCmd(user,params); + CommandContext ceshi = new CommandContext(null,null); + itcglcProjectInfoCmd.execute(ceshi); + } + + + + +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/judgeTheProcessInTransit/JudgeTheProcessInTransit.java b/src/main/java/com/engine/htxc/tycgrwd/judgeTheProcessInTransit/JudgeTheProcessInTransit.java new file mode 100644 index 0000000..e3075f2 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/judgeTheProcessInTransit/JudgeTheProcessInTransit.java @@ -0,0 +1,12 @@ +package com.engine.htxc.tycgrwd.judgeTheProcessInTransit; + +public interface JudgeTheProcessInTransit { + /** + * 采购项目转用的,判断采购项目在不在途 + * @param table + * @param xmid + * @return + */ + boolean isComplete(String table,String xmid); + boolean isComplete(String requestid); +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/judgeTheProcessInTransit/WhetherInTransit.java b/src/main/java/com/engine/htxc/tycgrwd/judgeTheProcessInTransit/WhetherInTransit.java new file mode 100644 index 0000000..069923f --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/judgeTheProcessInTransit/WhetherInTransit.java @@ -0,0 +1,97 @@ +package com.engine.htxc.tycgrwd.judgeTheProcessInTransit; + +import weaver.conn.RecordSet; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +public class WhetherInTransit implements JudgeTheProcessInTransit { + @Override + public boolean isComplete(String table, String xmid) { + RecordSet rs = new RecordSet(); + RecordSet mainRs = new RecordSet(); + RecordSet completeRs = new RecordSet(); + String sql = "select * from "+table+"_dt4 where xmid = "+xmid; + rs.execute(sql); + ArrayList list = new ArrayList<>(); + while(rs.next()){ + String mainid = rs.getString("mainid"); + String mainSql = "select * from " + table+ " where id = "+mainid; + mainRs.execute(mainSql); + mainRs.next(); + String requestid = mainRs.getString("requestid"); + String stopSql = "select a.isremark,a.iscomplete ,b.isstopped from workflow_currentoperator a right join workflow_requestbase b " + + "on a.requestid = b.requestid where a.requestid = "+requestid; + completeRs.execute(stopSql); + ArrayList completes = new ArrayList<>(); + while (completeRs.next()){ + String iscomplete = completeRs.getString("iscomplete"); + String isstopped = completeRs.getString("isstopped"); + if(Objects.equals(iscomplete,"1")){ + completes.add(1); + } else if(Objects.equals(isstopped,"1")){ + completes.add(0); + }else{ + completes.add(0); + } + } + List collect = completes.stream().filter((item) -> { + return item > 0; + }).collect(Collectors.toList()); + if(collect.size()>0){ + list.add("1"); + }else{ + list.add("0"); + } + + } + if(list.size()==0){ + return true; + }else{ + Iterator iterator = list.iterator(); + while(iterator.hasNext()){ + String next = iterator.next(); + if(Objects.equals(next,"0")){ + return true; + } + } + } + + return false; + + } + + @Override + public boolean isComplete(String requestid) { + RecordSet completeRs = new RecordSet(); + //判断是不是在途 + ArrayList list = new ArrayList<>(); + String stopSql = "select a.isremark,a.iscomplete ,b.isstopped from workflow_currentoperator a right join workflow_requestbase b " + + "on a.requestid = b.requestid where a.requestid = "+requestid; + completeRs.execute(stopSql); + ArrayList completes = new ArrayList<>(); + while (completeRs.next()){ + String iscomplete = completeRs.getString("iscomplete"); + String isstopped = completeRs.getString("isstopped"); + if(Objects.equals(iscomplete,"1")){ + completes.add(0); + } else if(Objects.equals(isstopped,"1")){ + completes.add(1); + }else{ + completes.add(0); + } + } + + List collect = completes.stream().filter((item) -> { + return item > 0; + }).collect(Collectors.toList()); + if(collect.size()>0){ + return false; + }else{ + return true; + } + } +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/service/TycgrwdService.java b/src/main/java/com/engine/htxc/tycgrwd/service/TycgrwdService.java new file mode 100644 index 0000000..da06a9c --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/service/TycgrwdService.java @@ -0,0 +1,22 @@ +package com.engine.htxc.tycgrwd.service; + +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public interface TycgrwdService { + + /*** + * + * @param user + * @param params + * @return + */ + Map getCgrwdProjectInfo(User user, Map params); + ArrayList> getCgxm(String id ); + Map createFreeNode(User user, Map params); + + ArrayList> getRequestid(String xmid); +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/service/cmd/TycgrwdFreeNodeCmd.java b/src/main/java/com/engine/htxc/tycgrwd/service/cmd/TycgrwdFreeNodeCmd.java new file mode 100644 index 0000000..9de093c --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/service/cmd/TycgrwdFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.tycgrwd.service.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class TycgrwdFreeNodeCmd extends AbstractCommonCommand> { + + public TycgrwdFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/service/impl/TycgrwdServiceImpl.java b/src/main/java/com/engine/htxc/tycgrwd/service/impl/TycgrwdServiceImpl.java new file mode 100644 index 0000000..8cb06c9 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/service/impl/TycgrwdServiceImpl.java @@ -0,0 +1,186 @@ +package com.engine.htxc.tycgrwd.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htsc.itcglc.cmd.ItcglcProjectInfoCmd; +import com.engine.htxc.tycgrwd.judgeTheProcessInTransit.JudgeTheProcessInTransit; +import com.engine.htxc.tycgrwd.judgeTheProcessInTransit.WhetherInTransit; +import com.engine.htxc.tycgrwd.service.TycgrwdService; +import com.engine.htxc.tycgrwd.service.cmd.TycgrwdFreeNodeCmd; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class TycgrwdServiceImpl extends Service implements TycgrwdService{ + + @Override + public Map getCgrwdProjectInfo(User user, Map params) { + return commandExecutor.execute(new ItcglcProjectInfoCmd(user,params)); + } + + @Override + public ArrayList> getCgxm(String id) { + PropBean pb = new PropBean(); + String ufSql = "select * from uf_cgxq where zt = 1 and CGXMLX = "+id; + RecordSet rs = new RecordSet(); + RecordSet dtRs = new RecordSet(); + RecordSet deptRs = new RecordSet(); + RecordSet hrmRs = new RecordSet(); + RecordSet cgzdRs = new RecordSet(); + rs.execute(ufSql); + ArrayList> list = new ArrayList<>(); + while(rs.next()){ + String xmid = rs.getString("id");//采购项目id +// 手动发起采购任务单流程,选择项目名称,带出采购项目到明细表 +// 采购项目需要完成通用采购申请流程(即在采购申请流程中为办结),并且没有在途的和已办结的通用采购任务单流程。 +// 或者判断,采购项在采购任务单流程中被终止的。 + String tycgsqTable = pb.getPropName("tycgsq_table"); + String tycgrwdTablename = pb.getPropName("tycgrwd_tablename"); + JudgeTheProcessInTransit judge = new WhetherInTransit(); + //这一步是用来判断这个采购项目是不是已经做过采购项目 + boolean complete = judge.isComplete(tycgsqTable, xmid); + if(complete){ + continue; + } + String sql = "select requestid from "+tycgrwdTablename +" where id = (select mainid from "+tycgrwdTablename+"_dt5 where xmid = "+xmid +")"; + dtRs.execute(sql); + if(dtRs.next()){ + String requestid = dtRs.getString("requestid"); + //过滤已经办结的 + if(judge.isComplete(requestid)){ + continue; + } + HashMap map = new HashMap<>(); + map.put("bz",rs.getString("bz")); + String cgzdSql = "select * from uf_cgzdsjzd where id = " + rs.getString("cgzd") ; + cgzdRs.execute(cgzdSql); + String cgzd = ""; + if(cgzdRs.next()){ + cgzd =cgzdRs.getString("cgzdmc"); + } + map.put("cgzd",cgzd); + map.put("cgtk",rs.getString("cgtk")); + map.put("xmbh",rs.getString("xmbh")); + map.put("xmlb",rs.getString("xmlb")); + map.put("cgfs",rs.getString("cgfs")); + //预算部门改为浏览按钮格式 + ArrayList> deptList = new ArrayList<>(); + String deprtSql = "select * from HRMDEPARTMENT where id in( "+rs.getString("ysssbm") + ")"; + deptRs.execute(deprtSql); + while(deptRs.next()){ + HashMap dept = new HashMap<>(); + dept.put("id",deptRs.getString("id")); + dept.put("name",deptRs.getString("departmentname")); + deptList.add(dept); + } + map.put("ysssbm",deptList); + map.put("ysje",rs.getString("ysje")); + map.put("cgnr",rs.getString("cgnr")); + map.put("gys",rs.getString("gys")); + map.put("cgsl",rs.getString("cgsl")); + //采购负责人改为浏览按钮格式 + ArrayList> hrmList = new ArrayList<>(); + String hrmSql = "select * from hrmresource where id in ( "+rs.getString("xmfzr") + ") and status = 1"; + hrmRs.execute(hrmSql); + while(hrmRs.next()){ + HashMap hrm = new HashMap<>(); + hrm.put("id",hrmRs.getString("id")); + hrm.put("name",hrmRs.getString("lastname")); + hrmList.add(hrm); + } + map.put("xmfzr",hrmList); + map.put("xmmc",rs.getString("xmmc")); + map.put("id",rs.getString("id")); + list.add(map); + }else{ + HashMap map = new HashMap<>(); + map.put("bz",rs.getString("bz")); + String cgzdSql = "select * from uf_cgzdsjzd where id = " + rs.getString("cgzd") ; + cgzdRs.execute(cgzdSql); + String cgzd = ""; + if(cgzdRs.next()){ + cgzd =cgzdRs.getString("cgzdmc"); + } + map.put("cgzd",cgzd); + map.put("cgtk",rs.getString("cgtk")); + map.put("xmbh",rs.getString("xmbh")); + map.put("xmlb",rs.getString("xmlb")); + map.put("cgfs",rs.getString("cgfs")); + //预算部门改为浏览按钮格式 + ArrayList> deptList = new ArrayList<>(); + String deprtSql = "select * from HRMDEPARTMENT where id in( "+rs.getString("ysssbm") + ")"; + deptRs.execute(deprtSql); + while(deptRs.next()){ + HashMap dept = new HashMap<>(); + dept.put("id",deptRs.getString("id")); + dept.put("name",deptRs.getString("departmentname")); + deptList.add(dept); + } + map.put("ysssbm",deptList); + map.put("ysje",rs.getString("ysje")); + map.put("cgnr",rs.getString("cgnr")); + map.put("gys",rs.getString("gys")); + map.put("cgsl",rs.getString("cgsl")); + //采购负责人改为浏览按钮格式 + ArrayList> hrmList = new ArrayList<>(); + String hrmSql = "select * from hrmresource where id in ( "+rs.getString("xmfzr") + ") and status = 1"; + hrmRs.execute(hrmSql); + while(hrmRs.next()){ + HashMap hrm = new HashMap<>(); + hrm.put("id",hrmRs.getString("id")); + hrm.put("name",hrmRs.getString("lastname")); + hrmList.add(hrm); + } + map.put("xmfzr",hrmList); + map.put("xmmc",rs.getString("xmmc")); + map.put("id",rs.getString("id")); + list.add(map); + } + + + } + return list; + } + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new TycgrwdFreeNodeCmd(user,params)); + } + + @Override + public ArrayList> getRequestid(String xmids) { + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + ArrayList> list = new ArrayList>(); + ArrayList requestids = new ArrayList<>(); + String tycgsqTable = pb.getPropName("tycgsq_table"); + if(StringUtils.isNotBlank(xmids)){ + String[] split = xmids.split(","); + for (String xmid:split) { + String sql = "select * from (select rownum num, a.* from "+tycgsqTable+" a where id = (select mainid from "+tycgsqTable+"_dt4 where xmid = "+xmid+") order by id desc ) where num =1"; + rs.execute(sql); + if(rs.next()){ + HashMap map = new HashMap<>(); + String lcbt = rs.getString("lcbt"); + String requestid = rs.getString("requestid"); + String lcbh = rs.getString("lcbh"); + if(!requestids.contains(requestid)){ + requestids.add(requestid); + map.put("lcbt",lcbt); + map.put("requestid",requestid); + map.put("lcbh",lcbh); + list.add(map); + } + } + } + + } + + + return list; + } + +} diff --git a/src/main/java/com/engine/htxc/tycgrwd/web/TycgrwdAction.java b/src/main/java/com/engine/htxc/tycgrwd/web/TycgrwdAction.java new file mode 100644 index 0000000..6fd115f --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgrwd/web/TycgrwdAction.java @@ -0,0 +1,231 @@ +package com.engine.htxc.tycgrwd.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; + +import com.engine.htsc.payment.util.PayUtil; +import com.engine.htxc.tycgrwd.service.TycgrwdService; +import com.engine.htxc.tycgrwd.service.impl.TycgrwdServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class TycgrwdAction { + + public TycgrwdService getService(HttpServletRequest request, HttpServletResponse response){ + return (TycgrwdService) ServiceUtil.getService(TycgrwdServiceImpl.class); + } + public TycgrwdService getService2(){ + return (TycgrwdService) ServiceUtil.getService(TycgrwdServiceImpl.class); + } + + @GET + @Path("/getimagefileid") + @Produces({MediaType.TEXT_PLAIN}) + public String getImageFileid(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + Map param = ParamUtil.request2Map(request); + RecordSet rs = new RecordSet(); + String docids = Util.null2String(param.get("docids")); + String imagefileids = "" ; + if(!"".equals(docids)){ + String sql = " select imagefileid from docimagefile where docid in("+docids+") "; + rs.execute(sql); + while(rs.next()){ + String imagefileid = Util.null2String(rs.getString("imagefileid")) ; + imagefileids += imagefileids==""? imagefileid : ","+imagefileid ; + } + } + apidatas.put("imagefileids", imagefileids); + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + +// 解决冲突 + + @GET + @Path("/getCgrwdProjectInfo") + @Produces({MediaType.TEXT_PLAIN}) + public String getCgrwdProjectInfo(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).getCgrwdProjectInfo(user,param); + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @GET + @Path("/createRequestMark") + @Produces({MediaType.TEXT_PLAIN}) + public String createRequestMark(@Context HttpServletRequest request, @Context HttpServletResponse response){ + + Map apidatas = new HashMap(); + + ModeRightInfo modeRightInfo = new ModeRightInfo(); + RecordSet rs = new RecordSet(); + int workFlowId = Util.getIntValue(request.getParameter("workflowid")); + int formModeId = PayUtil.getFormModeIdByCubeName("uf_fklcbh"); + + try{ + String sql = "select WORKFLOWNAME,UNNUMBER from workflow_base where ID=?"; + rs.executeQuery(sql, workFlowId); + String name = ""; + if (rs.next()) { + name = rs.getString("WORKFLOWNAME"); + } + if (!"".equals(name)) { + String unNumber = PayUtil.getUnNumberByWorkFlowId(workFlowId); + LocalDateTime now = LocalDateTime.now(); + String yM = now.format(DateTimeFormatter.ofPattern("yyyyMM")); + + synchronized (this) { + + StringBuilder mark = new StringBuilder(); //流程编码 + rs.executeQuery(" select id,lsh,MODEUUID from uf_fklcbh where ny = '" + yM + "' and LCLX='" + unNumber + "'"); + if (rs.next()) { + //更新 + int num = Util.getIntValue(rs.getString("lsh")) + 1; + int id = Util.getIntValue(rs.getString("id")); + String updateSql = "update uf_fklcbh set lsh=? where id=?"; + rs.executeUpdate(updateSql, num, id); + mark = new StringBuilder(num + ""); + while (mark.length() < 6) { + mark.insert(0, "0"); + } + mark = new StringBuilder(name + now.format(DateTimeFormatter.ofPattern("yyyyMM")) + mark); + } else { + String modeUuid = UUID.randomUUID().toString(); + String userId = Util.null2String(request.getParameter("f_weaver_belongto_userid")); + String userType = Util.null2String(request.getParameter("f_weaver_belongto_usertype")); + String createDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + String createTime = now.format(DateTimeFormatter.ofPattern("HH:mm:ss")); + //插入 + String insertSql = " insert into uf_fklcbh" + + " (FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME,MODEUUID,LSH,NY,LCLX) \n" + + " values(?,?,?,?,?,?,?,?,?)"; + + rs.executeUpdate(insertSql, formModeId, userId, userType, createDate, createTime, modeUuid, "1", yM, unNumber); + mark = new StringBuilder(name + now.format(DateTimeFormatter.ofPattern("yyyyMM")) + "000001"); + + //权限重构 + int dataId = PayUtil.getDataIdByUUID(modeUuid); + modeRightInfo.editModeDataShare(1, formModeId, dataId); + } + + apidatas.put("value",mark.toString()); + apidatas.put("api_status", true); + apidatas.put("api_errormsg", ""); + } + }else{ + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "流程名称为空"); + } + }catch (Exception e){ + e.printStackTrace(); + + apidatas.put("api_status", false); + apidatas.put("api_errormsg", e.getMessage()); + } + + return JSONObject.toJSONString(apidatas); + } + @GET + @Path("/getCgxm") + @Produces({MediaType.TEXT_PLAIN}) + public String getCgxm(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String id = request.getParameter("id");//立项项目开发文档 + TycgrwdService service = getService(request, response); + ArrayList> cgxm = service.getCgxm(id); + map.put("data",cgxm); + map.put("code",200); + map.put("msg","success"); + }catch (Exception e){ + map.put("code",500); + map.put("msg","error"); + map.put("data",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService(request,response).createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 这个接口是用来处理手动发起采购任务单流程时,获取通用采购流程requestid和名称 + * @param request + * @param response + * @return + */ + @GET + @Path("/getRequestid") + @Produces({MediaType.TEXT_PLAIN}) + public String getRequestid(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String xmids = request.getParameter("xmids"); + TycgrwdService service = getService(request, response); + ArrayList> cgxm = service.getRequestid(xmids); + map.put("data",cgxm); + map.put("code",200); + map.put("msg","success"); + }catch (Exception e){ + map.put("code",500); + map.put("msg","error"); + map.put("data",e.getMessage()); + } + return JSONObject.toJSONString(map); + } +} + + diff --git a/src/main/java/com/engine/htxc/tycgsq/service/TycgsqService.java b/src/main/java/com/engine/htxc/tycgsq/service/TycgsqService.java new file mode 100644 index 0000000..7d99f13 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/service/TycgsqService.java @@ -0,0 +1,12 @@ +package com.engine.htxc.tycgsq.service; + +import java.util.ArrayList; +import java.util.HashMap; + +public interface TycgsqService { + ArrayList> getLxxmByCgxmlx(String cgxmlx); + + boolean allowDelete(String ids); + + ArrayList allowSubmit(String ids,String requestid); +} diff --git a/src/main/java/com/engine/htxc/tycgsq/service/impl/TycgsqServiceImpl.java b/src/main/java/com/engine/htxc/tycgsq/service/impl/TycgsqServiceImpl.java new file mode 100644 index 0000000..2259989 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/service/impl/TycgsqServiceImpl.java @@ -0,0 +1,285 @@ +package com.engine.htxc.tycgsq.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.tycgsq.service.TycgsqService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.*; +import java.util.stream.Collectors; + +public class TycgsqServiceImpl extends Service implements TycgsqService { + @Override + public ArrayList> getLxxmByCgxmlx(String cgxmlx) { + RecordSet rs = new RecordSet(); + RecordSet deptRs = new RecordSet(); + RecordSet hrmRs = new RecordSet(); + RecordSet cgzdRs = new RecordSet(); + PropBean pb = new PropBean(); + String table = pb.getPropName("tycgsq_table"); + ArrayList> list = new ArrayList<>(); + String sql = "select * from uf_cgxq where zt = 1 and CGXMLX = "+cgxmlx; + rs.execute(sql); + while(rs.next()){ + String id = rs.getString("id"); + Boolean complete = isComplete(table, id); + if(complete){ + continue; + } + HashMap map = new HashMap<>(); + map.put("bz",rs.getString("bz")); + String cgzdSql = "select * from uf_cgzdsjzd where id = " + rs.getString("cgzd") ; + cgzdRs.execute(cgzdSql); + String cgzd = ""; + if(cgzdRs.next()){ + cgzd =cgzdRs.getString("cgzdmc"); + } + map.put("cgzd",cgzd); + map.put("cgtk",rs.getString("cgtk")); + map.put("xmbh",rs.getString("xmbh")); + map.put("xmlb",rs.getString("xmlb")); + map.put("cgfs",rs.getString("cgfs")); + //预算部门改为浏览按钮格式 + ArrayList> deptList = new ArrayList<>(); + String deprtSql = "select * from HRMDEPARTMENT where id in( "+rs.getString("ysssbm") + ")"; + deptRs.execute(deprtSql); + while(deptRs.next()){ + HashMap dept = new HashMap<>(); + dept.put("id",deptRs.getString("id")); + dept.put("name",deptRs.getString("departmentname")); + deptList.add(dept); + } + map.put("ysssbm",deptList); + map.put("ysje",rs.getString("ysje")); + map.put("cgnr",rs.getString("cgnr")); + map.put("gys",rs.getString("gys")); + map.put("cgsl",rs.getString("cgsl")); + //采购负责人改为浏览按钮格式 + ArrayList> hrmList = new ArrayList<>(); + String hrmSql = "select * from hrmresource where id in ( "+rs.getString("xmfzr") + ") and status = 1"; + hrmRs.execute(hrmSql); + while(hrmRs.next()){ + HashMap hrm = new HashMap<>(); + hrm.put("id",hrmRs.getString("id")); + hrm.put("name",hrmRs.getString("lastname")); + hrmList.add(hrm); + } + map.put("xmfzr",hrmList); + map.put("xmmc",rs.getString("xmmc")); + map.put("id",rs.getString("id")); + list.add(map); + } + return list; + } + + @Override + public boolean allowDelete(String ids) { + RecordSet rs = new RecordSet(); + String sql = "select * from uf_cgxmgl where id in ("+ids +")"; + rs.execute(sql); + boolean flag = false; + while(rs.next()){ + String zt = rs.getString("zt"); + if(!Objects.equals("0",zt)){ + flag = true; + } + } + if(flag){ + return flag; + }else{ + String deleteSsql = "delete from uf_cgxmgl where id in ("+ids +")"; + rs.execute(deleteSsql); + return flag; + } + } + + @Override + public ArrayList allowSubmit(String ids,String requestid) { + PropBean pb = new PropBean(); + RecordSet rs = new RecordSet(); + String table = pb.getPropName("tycgsq_table"); + ArrayList list = new ArrayList<>(); + if(StringUtils.isNotBlank(ids)){ + String[] split = ids.split(","); + for (String xmid :split) { + Boolean complete = isComplete(table, xmid,requestid); + if(complete){ + String sql = "select * from uf_cgxq where id = " +xmid ; + rs.execute(sql); + rs.next(); + String xmmc = rs.getString("xmmc"); + list.add(xmmc); + } + } + } + return list; + } + + /** + * 用来判断当前的流程是否有在途流程 + * @param table + * @param id 采购项目id + * @return + */ + public Boolean isComplete(String table, String id,String request ) { + RecordSet rs = new RecordSet(); + RecordSet mainRs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + RecordSet completeRs = new RecordSet(); + String sql = "select * from "+table+"_dt4 where xmid = "+id; + rs.execute(sql); + ArrayList list = new ArrayList<>(); + ArrayList bools = new ArrayList<>(); + while(rs.next()){ + String mainid = rs.getString("mainid"); + String mainSql = "select * from " + table+ " where id = "+mainid; + mainRs.execute(mainSql); + mainRs.next(); + String requestid = mainRs.getString("requestid"); + //如果是当前的流程不算有在途流程 + if(Objects.equals(request,requestid)){continue;} + //首先判断它是不是在拟稿页面保存没有提交 + String logSql = "select * from workflow_requestlog where requestid = "+requestid; + rs1.execute(logSql); + int logCounts = rs1.getCounts(); + rs1.next(); + String logtype = rs1.getString("logtype"); + String currentSql = "select * from workflow_currentoperator where requestid ="+requestid; + rs1.execute(currentSql); + int currentCounts = rs1.getCounts(); + String requestSql = "select * from workflow_requestbase where requestid = "+requestid; + rs1.execute(requestSql); + rs1.next(); + String isstopde = rs1.getString("isstopped"); + if((Objects.equals("1",logtype) && logCounts ==1&¤tCounts==1) || "1".equals(isstopde)){ + bools.add(false) ; + }else{ + bools.add(true) ; + } + + String stopSql = "select a.isremark,a.iscomplete ,b.isstopped from workflow_currentoperator a right join workflow_requestbase b " + + "on a.requestid = b.requestid where a.requestid = "+requestid; + completeRs.execute(stopSql); + ArrayList completes = new ArrayList<>(); + while (completeRs.next()){ + String iscomplete = completeRs.getString("iscomplete"); + String isstopped = completeRs.getString("isstopped"); + if(Objects.equals(iscomplete,"1")){ + completes.add(0); + } else if(Objects.equals(isstopped,"1")){ + completes.add(1); + }else{ + completes.add(0); + } + } + List collect = completes.stream().filter((item) -> { + return item > 0; + }).collect(Collectors.toList()); + if(collect.size()>0){ + list.add("1"); + }else{ + list.add("0"); + } + + } + //判断是不是都保存在拟稿 + List collect = bools.stream().filter((item) -> { + return item == true; + }).collect(Collectors.toList()); + if(collect.size()==0){ + return false; + } + //判断是否在途 + Iterator iterator = list.iterator(); + while(iterator.hasNext()){ + String next = iterator.next(); + if(Objects.equals(next,"0")){ + return true; + } + } + return false; + } + /** + * 用来判断当前的流程是否有在途流程 + * @param table + * @param id 采购项目id + * @return + */ + public Boolean isComplete(String table, String id ) { + RecordSet rs = new RecordSet(); + RecordSet mainRs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + RecordSet completeRs = new RecordSet(); + String sql = "select * from "+table+"_dt4 where xmid = "+id; + rs.execute(sql); + ArrayList list = new ArrayList<>(); + ArrayList bools = new ArrayList<>(); + while(rs.next()){ + String mainid = rs.getString("mainid"); + String mainSql = "select * from " + table+ " where id = "+mainid; + mainRs.execute(mainSql); + mainRs.next(); + String requestid = mainRs.getString("requestid"); + //首先判断它是不是在拟稿页面保存没有提交 + String logSql = "select * from workflow_requestlog where requestid = "+requestid; + rs1.execute(logSql); + int logCounts = rs1.getCounts(); + rs1.next(); + String logtype = rs1.getString("logtype"); + String currentSql = "select * from workflow_currentoperator where requestid ="+requestid; + rs1.execute(currentSql); + int currentCounts = rs1.getCounts(); + String requestSql = "select * from workflow_requestbase where requestid = "+requestid; + rs1.execute(requestSql); + rs1.next(); + String isstopde = rs1.getString("isstopped"); + if((Objects.equals("1",logtype) && logCounts ==1&¤tCounts==1) || "1".equals(isstopde)){ + bools.add(false) ; + }else{ + bools.add(true) ; + } + + String stopSql = "select a.isremark,a.iscomplete ,b.isstopped from workflow_currentoperator a right join workflow_requestbase b " + + "on a.requestid = b.requestid where a.requestid = "+requestid; + completeRs.execute(stopSql); + ArrayList completes = new ArrayList<>(); + while (completeRs.next()){ + String iscomplete = completeRs.getString("iscomplete"); + String isstopped = completeRs.getString("isstopped"); + if(Objects.equals(iscomplete,"1")){ + completes.add(0); + } else if(Objects.equals(isstopped,"1")){ + completes.add(1); + }else{ + completes.add(0); + } + } + List collect = completes.stream().filter((item) -> { + return item > 0; + }).collect(Collectors.toList()); + if(collect.size()>0){ + list.add("1"); + }else{ + list.add("0"); + } + + } + //判断是不是都保存在拟稿 + List collect = bools.stream().filter((item) -> { + return item == true; + }).collect(Collectors.toList()); + if(collect.size()==0){ + return false; + } + //判断是否在途 + Iterator iterator = list.iterator(); + while(iterator.hasNext()){ + String next = iterator.next(); + if(Objects.equals(next,"0")){ + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetBeagentAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetBeagentAjax.java new file mode 100644 index 0000000..7617b5a --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetBeagentAjax.java @@ -0,0 +1,83 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; +import weaver.workflow.request.wfAgentCondition; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 13:38 + * @Description://采购相关接口 + * @ModifyLog: + **/ +public class GetBeagentAjax { + @GET + @Path("/getBeagentAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getBeagentAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap result = new HashMap<>(); + try { + ResourceComInfo resourceInfo = new ResourceComInfo(); + DepartmentComInfo departInfo = new DepartmentComInfo(); + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + PropBean pb = new PropBean(); + String requestid = Util.null2String(request.getParameter("requestid")); + String wfunnumber = Util.null2String(request.getParameter("wfunnumber")); + String workflowid = pb.getActiveWorkflowIdByUnNumber(wfunnumber); + String operatorid = Util.null2String(request.getParameter("operatorid")); + bb.writeLog("requestid:"+requestid); + bb.writeLog("workflowid:"+workflowid); + bb.writeLog("operatorid:"+operatorid); + JSONObject json = new JSONObject(); + wfAgentCondition wfAgentCondition = new wfAgentCondition(); + JSONArray jsonArray = new JSONArray(); + Map map = wfAgentCondition.getAgentInfoByResouce(workflowid,operatorid,requestid); + for(Map.Entry entry : map.entrySet()) + { + String key = entry.getKey(); + String value = entry.getValue(); + String name = "" ; + if(value !="") + { + name = resourceInfo.getLastname(value); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("operatorid",key); + jsonObject.put("beagentid",value); + jsonObject.put("beagentname",name); + jsonArray.add(jsonObject); + } +// json.put("data",jsonArray); + bb.writeLog( "getFreeNode_Ajax=================json:" + json.toJSONString() ); +// out.print(json.toJSONString()); + result.put("code",200); + result.put("msg","SUCCESS"); + result.put("data",jsonArray); + } catch (Exception e) { + e.printStackTrace(); + result.put("code",500); + result.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(result); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetBrowerValue.java b/src/main/java/com/engine/htxc/tycgsq/web/GetBrowerValue.java new file mode 100644 index 0000000..4b36bd1 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetBrowerValue.java @@ -0,0 +1,63 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 14:50 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetBrowerValue { + + + @GET + @Path("/getBrowerValue") + @Produces({MediaType.TEXT_PLAIN}) + public String getBrowerValue(@Context HttpServletRequest request, @Context HttpServletResponse response){ + + String fieldvalue = Util.null2String(request.getParameter("fieldvalue")); + Map dataMap = new HashMap(); + RecordSet rs = new RecordSet(); + String sql = "select a.id,lastname,workcode,departmentname from hrmresource a " + + " left join hrmdepartment b on a.departmentid=b.id where a.id in ("+fieldvalue+") order by instr('"+fieldvalue+"',id)"; + rs.execute(sql); + List> dataList = new ArrayList>(); + while(rs.next()){ + String id = Util.null2String(rs.getString("id")); + String name = Util.null2String(rs.getString("lastname")); + String workcode = Util.null2String(rs.getString("workcode")); + String departmentname = Util.null2String(rs.getString("departmentname")); + + Map itemMap = new HashMap(); + itemMap.put("id",id); + itemMap.put("name",name+"("+departmentname+")"); + + dataList.add(itemMap); + + } + + dataMap.put("value",fieldvalue); + dataMap.put("specialobj",dataList); + dataMap.put("code",200); +// out.print(JSONObject.fromObject(dataMap).toString()); + return JSONObject.toJSONString(dataMap); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetDepartmentId.java b/src/main/java/com/engine/htxc/tycgsq/web/GetDepartmentId.java new file mode 100644 index 0000000..1652670 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetDepartmentId.java @@ -0,0 +1,80 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-09-05 16:21 + * @Description:通用采购申请相关接口,原来的jsp转java + * @ModifyLog: + **/ +public class GetDepartmentId { + @GET + @Path("/getDepartmentId") + @Produces({MediaType.TEXT_PLAIN}) + public String getDepartmentId(@Context HttpServletRequest request, @Context HttpServletResponse response){ + String requestid = request.getParameter("requestid"); + JSONObject deptObj = new JSONObject(); + BaseBean bs = new BaseBean(); + HashMap map = new HashMap<>(); + try{ + //1.获取用户id + List userList = new ArrayList<>(); + RecordSet userRs = new RecordSet(); + String userSql = "select userid from workflow_currentoperator where requestid = "+requestid+" and nodeid < 0"; + userRs.execute(userSql); + while (userRs.next()){ + int userid = Util.getIntValue(userRs.getString("userid")); + userList.add(userid); + } + String userIdStr = StringUtils.join(userList, ","); + + if ("".equals(userIdStr)){ + userIdStr = "-1"; + } + //2.根据用户id获取部门Id + RecordSet deptrs = new RecordSet(); + String deptSql = "select DISTINCT departmentid from hrmresource where id in ("+userIdStr+") and status = 1"; + deptrs.execute(deptSql); + + List deptIdList = new ArrayList<>(); + while (deptrs.next()){ + int departmentid = Util.getIntValue(deptrs.getString("departmentid")); + deptIdList.add(departmentid); + } + String deptIdStr = StringUtils.join(deptIdList, ","); + + if ("".equals(deptIdStr)){ + deptIdStr = "-1"; + } + deptObj.put("deptId",deptIdStr); + map.put("code","200"); + map.put("msg","SUCCESS"); + map.put("data",deptIdStr); + }catch (Exception e){ + e.printStackTrace(); + map.put("code","500"); + map.put("msg","ERROR"); + map.put("data",e.getMessage()); + } + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetDeptShortName.java b/src/main/java/com/engine/htxc/tycgsq/web/GetDeptShortName.java new file mode 100644 index 0000000..74ad27f --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetDeptShortName.java @@ -0,0 +1,103 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.resource.ResourceComInfo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-09-05 16:35 + * @Description:通用采购相关接口 ,原来的jsp转java + * @ModifyLog: + **/ +public class GetDeptShortName { + @GET + @Path("/getDeptShortName") + @Produces({MediaType.TEXT_PLAIN}) + public String getDeptShortName(@Context HttpServletRequest request, @Context HttpServletResponse response){ + String fieldvalue = Util.null2String(request.getParameter("fieldvalue")); + String type = Util.null2String(request.getParameter("type")); + Map dataMap = new HashMap(); + List> dataList = new ArrayList>(); + ResourceComInfo resourceComInfo = null; + DepartmentComInfo departmentComInfo = null; + try { + resourceComInfo = new ResourceComInfo(); + departmentComInfo = new DepartmentComInfo(); + } catch (Exception e) { + e.printStackTrace(); + } + String[] idArr = fieldvalue.split(","); + for(int i=0;i itemMap = new HashMap(); + itemMap.put("id",idArr[i]); + itemMap.put("name",showname); + dataList.add(itemMap); + + + } + dataMap.put("code",200); + dataMap.put("msg","SUCCESS"); + dataMap.put("value",fieldvalue); + dataMap.put("specialobj",dataList); + + return JSONObject.toJSONString(dataMap); + } + /** + * 根据部门查询一级部门简称 + * @param deptid + * @return + */ + public String getTopDeptShortName(String deptid){ + String shortName = ""; + String sql = " select deptid,cmpAbbre from hrmdepartment a,hrmdepartmentdefined b " + + " where a.id=b.deptid and a.id in(select id from ( SELECT id,departmentname,supdepid,level " + + " FROM hrmdepartment " + + " START WITH id=? "+ + " connect by nocycle prior supdepid=id ) " + + " where supdepid is null or supdepid=0) "; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql,new Object[]{deptid}); + if(rs.next()){ + String cdeptid = Util.null2String(rs.getString("deptid")); + shortName = Util.null2String(rs.getString("cmpAbbre")); + if(deptid.equals(cdeptid)){ + shortName = "("+shortName+")"; + }else{ + DepartmentComInfo deptComInfo = new DepartmentComInfo(); + String deptname = deptComInfo.getDepartmentname(deptid); + shortName = "("+shortName+"/"+deptname+")"; + } + } + return shortName; + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetFreeNodeAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetFreeNodeAjax.java new file mode 100644 index 0000000..8f0f1a8 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetFreeNodeAjax.java @@ -0,0 +1,254 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.resource.ResourceComInfo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 11:26 + * @Description: + * @ModifyLog: + **/ +public class GetFreeNodeAjax { + @GET + @Path("/getFreeNodeAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getFreeNodeAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + RecordSet rs2 = new RecordSet(); + RecordSet rs3 = new RecordSet(); + HashMap map = new HashMap<>(); + try { + ResourceComInfo resourceInfo = new ResourceComInfo(); + DepartmentComInfo departInfo = new DepartmentComInfo(); + bb.writeLog( "in=================getFreeNode_Ajax" ); + int requestid = Util.getIntValue( request.getParameter( "requestid" ) ); + int workflowid = Util.getIntValue( request.getParameter( "workflowid" ) ); + int nodeid = Util.getIntValue( request.getParameter( "nodeid" ) ); + JSONObject json = new JSONObject(); + bb.writeLog( "in=================nodeid:" + nodeid ); + int xybzvalue = Util.getIntValue( request.getParameter( "xybzvalue" ) ); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + String jsonArr = Util.null2String( request.getParameter( "jsonArr" ) ); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String hqbm = departInfo.getDepartmentName( hqbmvalue ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeArray.add( nodeDataJson1 ); + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + //nodeDataJson2.put( "signType", "1" ); + + String deptcode = departInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + User user = HrmUserVarify.getUser( request, response ); + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap<>(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + rs.next(); + int formmodeid = Util.getIntValue( rs.getString( "id" ) ); + String freenode = ""; + String freenode1 = ""; + rs2.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs2.next()) { + String id = Util.null2String(rs2.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + rs3.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs3.next()) { + //freenode1 = Util.null2String( rs3.getString( "freenode1" ) );//自由节点 + String id = Util.null2String(rs3.getString("id")); + freenode1 += freenode1==""? id : ","+id ;//自由节点 + + } + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + //bmfzrNode = Util.null2String( rs.getString( "bmfzrNode" ) );//部门负责人节点 + } + } + if(!"".equals(zdrys)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + //zdryNode = Util.null2String( rs.getString( "zdryNode" ) );//指定人员节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + freenode1 ); + String str = equestStr( freenode, freenode1 ); + rs2.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + rs1.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs1.next()) { + int id = Util.getIntValue( rs1.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + + map.put("flag",true); + map.put("code",200); + map.put("msg","SUCCESS"); + }else { + map.put("flag",false); + map.put("code",200); + map.put("msg","SUCCESS"); + } + bb.writeLog( "getFreeNode_Ajax=================json:" + JSONObject.toJSONString(map) ); + return JSONObject.toJSONString(map); + } catch (Exception e) { + e.printStackTrace(); + map.put("msg",e.getMessage()); + map.put("code",500); + return JSONObject.toJSONString(map); + } + + } + public static String equestStr(String str1, String str2) { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetHqbmAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetHqbmAjax.java new file mode 100644 index 0000000..5296076 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetHqbmAjax.java @@ -0,0 +1,91 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 13:58 + * @Description:采购模块相关接口 + * @ModifyLog: + **/ +public class GetHqbmAjax { + @GET + @Path("/getHqbmAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getHqbmAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + int requestid = Util.getIntValue(Util.null2String(request.getParameter("requestid"))); // + int workflowid = Util.getIntValue(Util.null2String(request.getParameter("workflowid"))); // + String zbhqbm = Util.null2String(request.getParameter("hqbm")); + PropBean pb = new PropBean(); + String fieldid = pb.getPropName("zbzysx_hqbm_hqyy_fieldid"); // "11014"; + String formTable = "" ; + String sql = " select abs(formid) as formid from workflow_base where id = "+workflowid; + rs.execute(sql); + if(rs.next()){ + formTable = "formtable_main_"+Util.null2String(rs.getString("formid")); + } + Map dataMap = new HashMap(); + List> list = new ArrayList>(); + Map map = null; + String hqbms = "" ; + + if(!"".equals(zbhqbm)) + { + if(!"".equals(formTable)) + { + sql = " select h.id,h.departmentname,l.hqbm,l.bmzz,k.selectname\n" + + " from hrmdepartment h " + + " left join "+formTable+"_dt2 l on l.hqbm = h.id \n" + + " left join "+formTable+" t on l.mainid = t.id\n" + + " left join workflow_selectitem k on k.selectvalue = l.bmzz and k.fieldid= "+fieldid+ + " where requestid=" + requestid + + " and h.id in("+zbhqbm+") "; + + bb.writeLog("sql:"+sql); + rs.execute(sql); + + while (rs.next()){ + map = new HashMap(); + String hqbm = Util.null2String(rs.getString("id")); + String departmentname = Util.null2String(rs.getString("departmentname")); + String selectname = Util.null2String(rs.getString("selectname")); + if(!"".equals(selectname)){ + map.put("name",departmentname+"("+selectname+")"); + }else{ + map.put("name",departmentname); + } + hqbms += hqbms == "" ? hqbm : ","+hqbm ; + map.put("id",hqbm); + + list.add(map); + } + } + } + + dataMap.put("value",hqbms); + dataMap.put("specialobj",list); + dataMap.put("code",200); + return JSONObject.toJSONString(dataMap); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetLdspAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetLdspAjax.java new file mode 100644 index 0000000..5c59100 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetLdspAjax.java @@ -0,0 +1,66 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 15:01 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetLdspAjax { + @GET + @Path("/getLdspAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getLdspAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + int requestid = Util.getIntValue(Util.null2String(request.getParameter("requestid"))); // + int workflowid = Util.getIntValue(Util.null2String(request.getParameter("workflowid"))); // + String nodeid = Util.null2String( request.getParameter( "nodeid" ) ); + List> dataList = new ArrayList>(); + Map dataMap = new HashMap(); + String fieldvalue = ""; + RecordSet rs = new RecordSet(); + String sql =" select t.userid,h.lastname,k.departmentname \n" + + " from workflow_currentoperator t\n" + + " inner join hrmresource h on h.id = t.userid\n" + + " inner join hrmdepartment k on k.id = h.departmentid\n" + + " where t.requestid=" +requestid + + " and t.workflowid=" + workflowid+ + " and t.nodeid in("+nodeid+") " + + //" and t.agenttype in(0,1) " + + " order by receivedate,receivetime"; + rs.execute(sql); + + while (rs.next()){ + String userid = Util.null2String(rs.getString("userid")); + String lastname = Util.null2String(rs.getString("lastname")); + String departmentname = Util.null2String(rs.getString("departmentname")); + fieldvalue += fieldvalue == ""? userid : ","+userid ; + Map itemMap = new HashMap(); + itemMap.put("id",userid); + itemMap.put("name",lastname+"("+departmentname+")"); + dataList.add(itemMap); + } + dataMap.put("value",fieldvalue); + dataMap.put("specialobj",dataList); + dataMap.put("code",200); + return JSONObject.toJSONString(dataMap); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetNbshryAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetNbshryAjax.java new file mode 100644 index 0000000..cd96c97 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetNbshryAjax.java @@ -0,0 +1,73 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 17:28 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetNbshryAjax { + @GET + @Path("/getNbshryAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getNbshryAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + String szbm = Util.null2String( request.getParameter( "szbm" ) );//所在部门 + //String ngr = Util.null2String( request.getParameter( "ngr" ) );//拟稿人 + //String sblb = Util.null2String( request.getParameter( "sblb" ) );//申报类别 + + JSONArray arr = new JSONArray(); + JSONObject data = new JSONObject(); + + //szbm = szbm.replace("'","','"); + //ngr = ngr.replace("'","','"); + + String value = ""; + + String sql ="select * from uf_lcgwry where jg = "+szbm+" and xzlc = 'zbzysx'"; + rs.executeQuery(sql); + RecordSet hrRs = new RecordSet(); + bb.writeLog(sql); + while (rs.next()) { + String ry = Util.null2String( rs.getString( "ry" ) );//人员 + value += value ==""? ry : ","+ry ; + String hrSql = "select * from hrmresource where id = " + ry; + hrRs.executeQuery(hrSql); + hrRs.next(); + String name = Util.null2String( hrRs.getString( "LASTNAME" ) ) ; + JSONObject json = new JSONObject(); + json.put( "id", ry ); + json.put( "name", name ); + arr.add(json); + } + data.put("value",value); + data.put("specialobj",arr); + map.put("code",200); + map.put("msg","SUCCESS"); + map.put("data",data); + + bb.writeLog( "getRequestType_Ajax=================json:" + JSONObject.toJSONString(map) ); +// out.print( data.toJSONString() ); + return JSONObject.toJSONString(map) ; + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetQzsybmAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetQzsybmAjax.java new file mode 100644 index 0000000..39fb3cf --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetQzsybmAjax.java @@ -0,0 +1,41 @@ +package com.engine.htxc.tycgsq.web; + +import weaver.conn.RecordSet; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 18:24 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetQzsybmAjax { + @GET + @Path("/getQzsybmAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getQzsybmAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + + return null; + } + public static String getJob(String id) { + RecordSet rs = new RecordSet(); + rs.executeQuery( "select s.jobtitlename from hrmresource h,hrmjobtitles s where h.jobtitle =s.id and h.id='" + id + "'" ); + String jobtitlename = ""; + if (rs.next()) { + jobtitlename = Util.null2String( rs.getString( "jobtitlename" ) ); + } + return jobtitlename; + + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetRequestTypeAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetRequestTypeAjax.java new file mode 100644 index 0000000..f20999b --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetRequestTypeAjax.java @@ -0,0 +1,72 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 17:02 + * @Description: + * @ModifyLog: + **/ +public class GetRequestTypeAjax { + + @GET + @Path("/getRequestTypeAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getRequestTypeAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + HashMap map = new HashMap<>(); + String szbm = Util.null2String( request.getParameter( "szbm" ) );//所在部门 + String ngr = Util.null2String( request.getParameter( "ngr" ) );//拟稿人 + JSONObject json = new JSONObject(); + + String sblb = "" ; +// String sql =" select sblb as id from ( "+ +// " select sblb from uf_zysxsyfw where " + +// " (to_char(ngr) is null and to_char(ngbm) is null) or"+ +// " (to_char(ngr) is null and to_char(ngbm) ='"+szbm+"') or"+ +// " (to_char(ngr) ='"+ngr+"' and to_char(ngbm) is null " + +// " ) group by sblb order by sblb) "; + + String sql =" select sblb as id\n" + + " from (select sblb\n" + + " from uf_zysxsyfw \n" + + " where ( to_char(ngr) is null and to_char(ngbm) is null )\n" + + " or ( to_char(ngr) is null and instr(','||to_char(ngbm)||',',',"+szbm+",') > 0 )\n" + + " or ( to_char(ngbm) is null and instr(','||to_char(ngr)||',',',"+ngr+",') > 0 )\n" + + " group by sblb\n" + + " order by sblb" + + " ) \n " ; + + rs.executeQuery(sql); + bb.writeLog(sql); + while (rs.next()) { + String id = Util.null2String( rs.getString( "id" ) );//申请类别 + sblb += sblb ==""? id : ","+id ;//自由节点 + } + +// json.put( "sblb", sblb ); + map.put("data",sblb); + map.put("code",200); + map.put("msg","SUCCESS"); + bb.writeLog( "getRequestType_Ajax=================json:" + JSONObject.toJSONString(map) ); +// out.print( json.toJSONString() ); + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetSyfwModelAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetSyfwModelAjax.java new file mode 100644 index 0000000..c6a84b4 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetSyfwModelAjax.java @@ -0,0 +1,371 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.resource.ResourceComInfo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 16:23 + * @Description: + * @ModifyLog: + **/ +public class GetSyfwModelAjax { + @GET + @Path("/getSyfwModelAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getSyfwModelAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + ResourceComInfo resourceInfo = null; + try { + resourceInfo = new ResourceComInfo(); + + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + BaseBean bb = new BaseBean(); + DepartmentComInfo departInfo = new DepartmentComInfo(); + String sblb = Util.null2String( request.getParameter( "sblb" ) );//申报类别 +// String sblx = Util.null2String( request.getParameter( "sblx" ) );//申报类型 + String sblx = Util.null2String( request.getParameter( "sblb" ) );//申报类型 + String deptid = Util.null2String( request.getParameter( "szbm" ) );//部门ID + int requestid = Util.getIntValue( request.getParameter( "requestid" ) );//部门ID + + JSONObject jsonData = new JSONObject(); + String sql = " select syfw,bjhqbm,fgldsf,qzsydx,qzsyry,zdfgld,kxhqbm from uf_tycgsqsyfw where sblx='" + sblx + "'"; + rs.writeLog("sql:"+sql); + rs.executeQuery( sql ); + bb.writeLog( sql ); + JSONArray jsonArray = new JSONArray(); + String fgldsf = ""; + String deptleaders = ""; + String bjhqbms = "" ; //必经会签部门 + String kxhqbms = "" ; // 可选会签部门 + String qzsydx = "" ; //强制会签部门 + String qzsyryid = ""; //强制送阅人员 + if (rs.next()) { + fgldsf = Util.null2String(rs.getString("fgldsf"));//分管领导审批 + bjhqbms = Util.null2String( rs.getString( "bjhqbm" ));//必经会签部门 + kxhqbms = Util.null2String( rs.getString( "kxhqbm" ) );//可选会签部门 + qzsydx = Util.null2String( rs.getString( "qzsydx" ) );//强制送阅部门 + qzsyryid = Util.null2String( rs.getString( "qzsyry" ) );//强制送阅人员 + } + + bb.writeLog("fgldsf:"+fgldsf); + if (fgldsf.equals( "0" )) + { + deptleaders = getDeptleaders(deptid); + bb.writeLog("通用审批deptleaders:"+deptleaders); + if(!"".equals(deptleaders)){ + bb.writeLog("通用审批deptleaders:"+deptleaders); + List leadersArry = Arrays.asList(deptleaders.split(",")); + + for(String leaders : leadersArry) + { + String deptleadersname = resourceInfo.getLastname(leaders);//部门分管领导名称 + bb.writeLog("通用审批deptleadersname:"+deptleadersname); + JSONObject json = new JSONObject(); + json.put( "id", leaders ); + json.put( "name", deptleadersname ); + jsonArray.add( json ); + } + } + } + + jsonData.put("ldspid", deptleaders ); + jsonData.put("ldsp", jsonArray); + bb.writeLog("通用审批jsonArray:"+jsonArray); + + // 会签部门 + String bjhqbmids = "" ; + JSONArray bjhqbmArray = new JSONArray(); + if(!"".equals(bjhqbms)){ + List arr = Arrays.asList(bjhqbms.split(",")); + for (String bjhqbm : arr) { + if(!bjhqbm.equals(deptid)) + { + JSONObject json1 = new JSONObject(); + String bjhqbmname = departInfo.getDepartmentName( bjhqbm );//必经会签部门名称 + json1.put( "id", bjhqbm ); + json1.put( "name", bjhqbmname ); + bjhqbmArray.add( json1 ); + + bjhqbmids += bjhqbmids == "" ? bjhqbm : ","+bjhqbm ; + } + } + } + + jsonData.put( "bjhqbmid", bjhqbmids ); + if(!"".equals(kxhqbms)){ + List arr1 = Arrays.asList(kxhqbms.split(",")); + for (String kxhqbm : arr1) { + if(!kxhqbm.equals(deptid)){ + String kxhqbmname = departInfo.getDepartmentName( kxhqbm );//可选会签部门名称 + JSONObject json11 = new JSONObject(); + json11.put( "id", kxhqbm ); + json11.put( "name", kxhqbmname ); + bjhqbmArray.add( json11 ); + } + } + } + jsonData.put( "kxhqbmid", kxhqbms ); + jsonData.put( "hqbm", bjhqbmArray ); + /*** + * 通知阅读对象汇总 + */ + String qzsydxids = ""; + List qzsydxList = new ArrayList(); + if(!"".equals(qzsydx)) + { + String sql1 = " select id,lastname,departmentid from hrmresource where departmentid in (" + qzsydx + ") and status = 1 order by dsporder"; + rs1.executeQuery( sql1 ); + + while (rs1.next()) { + String id = Util.null2String( rs1.getString( "id" ) ); + qzsydxids += qzsydxids == "" ? id : "," + id; + String departmentid = Util.null2String(rs1.getString("departmentid")); + if(qzsydxList !=null && qzsydxList.size() > 0){ + if(!qzsydxList.contains(departmentid)){ + qzsydxList.add(departmentid); + } + }else{ + qzsydxList.add(departmentid); + } + } + } + + JSONArray replaceObject = getReplaceDatas(sblx); + jsonData.put( "qzsyryid", qzsyryid ); //部门里人员ID + jsonData.put( "qzsydxid", qzsydxids ); // 人员汇总ID + jsonData.put( "tzyddx", replaceObject ); //人员名称,部门展示 + + String qzsyry = ""; + if(!"".equals(qzsyryid)) + { + List tzryArray = Arrays.asList(qzsyryid.split(",")); + if(tzryArray!=null && tzryArray.size() > 0){ + for (String tzryid : tzryArray) { + qzsyry += qzsyry == "" ? "hrm_"+tzryid : "," + "hrm_"+tzryid; + } + } + } + + String qzsydxbm = ""; + if(qzsydxList !=null && qzsydxList.size() >0){ + for (String str : qzsydxList) + { + qzsydxbm += qzsydxbm == "" ? "dept_"+str : "," + "dept_"+str; + } + } + + jsonData.put( "qzsyrys", qzsyry ); //人员 + jsonData.put( "qzsydxs", qzsydxbm ); //部门 + + bb.writeLog( "getSyfwModel_Ajax=================jsonData:" + jsonData.toJSONString() ); +// out.print( jsonData.toJSONString() ); + map.put("code",200); + map.put("msg","SUCCESS"); + map.put("data",jsonData); + } catch (Exception e) { + e.printStackTrace(); + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + public String getDeptleaders(String deptid) + { + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + DepartmentComInfo departmentComInfo = null; + try{ + departmentComInfo = new DepartmentComInfo(); + }catch (Exception e){ + } + String deptleaders = ""; + rs.executeQuery( "select deptleaders from hrmdepartmentdefined where deptid='" + deptid + "'" ); + if (rs.next()) { + deptleaders = Util.null2String( rs.getString( "deptleaders" ) ); + } + bb.writeLog("deptleaders:"+deptleaders); + return deptleaders; + } + + /*** + * + * @param sblx + * @return + */ + public JSONArray getReplaceDatas(String sblx) + { + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + RecordSet rs2 = new RecordSet(); + BaseBean bb = new BaseBean(); + JSONArray replaceDatas = new JSONArray(); + DepartmentComInfo departInfo = null; + try{ + departInfo = new DepartmentComInfo(); + + String qzsydxs = ""; + String qzsyrys = ""; + String sql = " select qzsydx,qzsyry from uf_tycgsqsyfw where sblx='" + sblx + "'"; + rs.executeQuery( sql ); + if (rs.next()) { + qzsydxs = Util.null2String(rs.getString("qzsydx"));//强制送阅部门 + qzsyrys = Util.null2String(rs.getString("qzsyry"));//强制送阅人员 + } + + bb.writeLog("qzsydxs:"+qzsydxs); + bb.writeLog("qzsyrys:"+qzsyrys); + + if (!"".equals(qzsydxs)) + { + String[] children = new String[0]; + List qzsydxList = Arrays.asList(qzsydxs.split(",")); + for(String qzsydx : qzsydxList) + { + JSONObject deptJson = new JSONObject(); + bb.writeLog("qzsydx:"+qzsydx); + String qzsydxname = departInfo.getDepartmentName( qzsydx );//强制送阅部门名称 + String sql1 = " select h.id,h.lastname,h.workcode,h.pinyinlastname,h.subcompanyid1,t.supdepid from hrmresource h,hrmdepartment t where h.departmentid=t.id and h.departmentid= " + qzsydx + " and h.status = 1 order by dsporder"; + bb.writeLog("sql1:"+sql1); + + rs1.executeQuery( sql1 ); + JSONArray users = new JSONArray(); + String ids = ""; + String subcompanyid1 = ""; + String supdepid = ""; + while (rs1.next()) { + String[] displayKeys = {"lastnamespan", "workcodespan", "departmentidspan", "jobtitlespan"}; + String id = Util.null2String( rs1.getString( "id" ) ); + String lastname = Util.null2String( rs1.getString( "lastname" ) ); + String workcode = Util.null2String( rs1.getString( "workcode" ) ); + subcompanyid1 = Util.null2String( rs1.getString( "subcompanyid1" ) ); + String pinyinlastname = Util.null2String( rs1.getString( "pinyinlastname" ) ); + supdepid = Util.null2String( rs1.getString( "supdepid" ) ); + ids += ids == "" ? id+ "" : "," + id; + JSONObject userJson = new JSONObject(); + userJson.put( "departmentid", qzsydx ); + userJson.put( "departmentidspan", qzsydx ); + userJson.put( "departmentname", qzsydx ); + userJson.put( "displayKeys", displayKeys ); + userJson.put( "icon", "/htoa/messager/usericon/" + workcode + "/" + workcode + ".jpg" ); + userJson.put( "id", id ); + userJson.put( "jobtitlename", getJob( id ) ); + userJson.put( "jobtitlespan", getJob( id ) ); + userJson.put( "lastname", lastname ); + userJson.put( "lastnamespan", lastname ); + userJson.put( "nodeid", "resource_" + id + "x" ); + userJson.put( "pinyinlastname", pinyinlastname ); + userJson.put( "subcompanyid", subcompanyid1 ); + userJson.put( "subcompanyname", "华泰集团" ); + userJson.put( "supsubcompanyid", "0" ); + userJson.put( "supsubcompanyname", "" ); + userJson.put( "type", "resource" ); + userJson.put( "workcodespan", workcode ); + users.add( userJson ); + } + deptJson.put( "children", children ); + deptJson.put( "crmNames", "" ); + deptJson.put( "icon", "/images/treeimages/subCopany_Colse_wev8.gif" ); + deptJson.put( "id", qzsydx ); + deptJson.put( "isLeaf", false ); + deptJson.put( "isParent", "true" ); + deptJson.put( "lastname", qzsydxname ); + deptJson.put( "name", qzsydxname ); + deptJson.put( "nocheck", "Y" ); + deptJson.put( "nodeid", "dept_" + qzsydx + "x" ); + deptJson.put( "treeKey", "wea0-com_1x-subcom_" + subcompanyid1 + "x-dept_" + supdepid + "x-dept_" + qzsydx + "x" ); + deptJson.put( "type", "dept" ); + deptJson.put( "users", users ); + replaceDatas.add( deptJson ); + } + } + + if(!"".equals(qzsyrys)) + { + String sql2 = " select id,lastname,workcode,departmentid,jobtitle,mobile,pinyinlastname,messagerurl,subcompanyid1 from hrmresource where id in (" + qzsyrys + ") and status = 1 order by dsporder"; + bb.writeLog("sql2:"+sql2); + rs2.executeQuery( sql2 ); + while (rs2.next()) { + JSONObject hrmJson = new JSONObject(); + String id = Util.null2String( rs2.getString( "id" ) ); + String lastname = Util.null2String( rs2.getString( "lastname" ) ); + String workcode = Util.null2String( rs2.getString( "workcode" ) ); + String jobtitle = Util.null2String( rs2.getString( "jobtitle" ) ); + String mobile = Util.null2String( rs2.getString( "mobile" ) ); + String pinyinlastname = Util.null2String( rs2.getString( "pinyinlastname" ) ); + String departmentid = Util.null2String( rs2.getString( "departmentid" ) ); + String messagerurl = Util.null2String( rs2.getString( "messagerurl" ) ); + String subcompanyid = Util.null2String( rs2.getString( "subcompanyid1" ) ); + String departmentname = departInfo.getDepartmentName( departmentid ); + hrmJson.put( "crmNames", "" + departmentname + "/华泰集团" ); + hrmJson.put( "departmentid", departmentid ); + hrmJson.put( "departmentidspan", departmentname ); + hrmJson.put( "departmentname", departmentname ); + hrmJson.put( "icon", "/htoa/messager/usericon/" + workcode + "/" + workcode + ".jpg" ); + hrmJson.put( "id", id ); + hrmJson.put( "img", "/htoa/messager/usericon/" + workcode + "/" + workcode + ".jpg" ); + hrmJson.put( "jobtitle", jobtitle ); + hrmJson.put( "jobtitlename", getJob( id ) ); + hrmJson.put( "jobtitlespan", getJob( id ) ); + hrmJson.put( "lastname", lastname ); + hrmJson.put( "lastnamespan", lastname ); + hrmJson.put( "messagerurl", messagerurl ); + hrmJson.put( "mobile", mobile ); + hrmJson.put( "name", lastname ); + hrmJson.put( "nodeid", "resource_" + id + "x" ); + hrmJson.put( "pinyinlastname", pinyinlastname ); + hrmJson.put( "subcompanyid", subcompanyid ); + hrmJson.put( "subcompanyid1", subcompanyid ); + hrmJson.put( "subcompanyname", "华泰集团" ); + hrmJson.put( "supsubcompanyid", "0" ); + hrmJson.put( "supsubcompanyname", "" ); + hrmJson.put( "type", "resource" ); + hrmJson.put( "workcode", workcode ); + hrmJson.put( "workcodespan", workcode ); + replaceDatas.add( hrmJson ); + } + } + }catch (Exception e){ + } + return replaceDatas; + } + + /*** + * + * @param id + * @return + */ + public static String getJob(String id) { + RecordSet rs = new RecordSet(); + rs.executeQuery( "select s.jobtitlename from hrmresource h,hrmjobtitles s where h.jobtitle =s.id and h.id='" + id + "'" ); + String jobtitlename = ""; + if (rs.next()) { + jobtitlename = Util.null2String( rs.getString( "jobtitlename" ) ); + } + return jobtitlename; + + } + +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetSyfwSblxAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetSyfwSblxAjax.java new file mode 100644 index 0000000..2d2f922 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetSyfwSblxAjax.java @@ -0,0 +1,63 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 17:17 + * @Description: 采购相关接口 + * @ModifyLog: + **/ +public class GetSyfwSblxAjax { + + @GET + @Path("/getSyfwSblxAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getSyfwSblxAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + HashMap map = new HashMap<>(); + String szbm = Util.null2String( request.getParameter( "szbm" ) );//所在部门 + String ngr = Util.null2String( request.getParameter( "ngr" ) );//拟稿人 + String sblb = Util.null2String( request.getParameter( "sblb" ) );//申报类别 + JSONObject json = new JSONObject(); + + //szbm = szbm.replace("'","','"); + //ngr = ngr.replace("'","','"); + + String sblx = ""; + + String sql =" select sblx as id from uf_zysxsyfw where sblb='"+sblb+"' " + + " and ((to_char(ngr) is null and to_char(ngbm) is null) " + + " or (instr(','||ngbm||',','"+szbm+"')>0 ) "+ + " or (instr(','||ngr||',','"+ngr+"')>0 ) ) "; + rs.executeQuery(sql); + bb.writeLog(sql); + while (rs.next()) { + String id = Util.null2String( rs.getString( "id" ) );//申请类别 + sblx += sblx ==""? id : ","+id ;//自由节点 + } + + map.put( "data", sblx ); + map.put( "code", 200 ); + map.put( "msg", "SUCCESS" ); + bb.writeLog( "getRequestType_Ajax=================json:" + JSONObject.toJSONString(map)); +// out.print( json.toJSONString() ); + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowKgshqAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowKgshqAjax.java new file mode 100644 index 0000000..bbc8cb3 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowKgshqAjax.java @@ -0,0 +1,84 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 15:39 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetWorkflowKgshqAjax { + @GET + @Path("/getWorkflowKgshqAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getWorkflowKgshqAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap(); + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + bb.writeLog("getworkflow_kgshq_Ajax.jsp"); + int formid = Math.abs(Util.getIntValue( request.getParameter( "formid" ) ));//请求ID + int requestid = Util.getIntValue( request.getParameter( "requestid" ) ); + JSONObject json = new JSONObject(); + String tablename = "formtable_main_".concat( formid+""); + bb.writeLog(" select id from " + tablename + " where requestid ='" + requestid + "'"); + rs.executeQuery( " select id from " + tablename + " where requestid ='" + requestid + "'" ); + rs.next(); + String mainid = Util.null2String( rs.getString( "id" ) );//mainid + bb.writeLog("mainid:"+mainid); + rs.executeQuery( " select bmfzr from " + tablename + "_dt3 where mainid ='" + mainid + "'" ); + bb.writeLog("mainid:"+mainid); + List list1 = new ArrayList<>(); + List list2= new ArrayList<>(); + bb.writeLog("567567"); + + while (rs.next()) { + String bmfzr = Util.null2String( rs.getString( "bmfzr" ) );//部门负责人 + if(!"".equals(bmfzr) && bmfzr !=null){ + list1.add(bmfzr); + } + } + bb.writeLog("list1",list1.toString()); + + bb.writeLog("select operatorids from workflow_freenode where requestid = '"+requestid+"'"); + rs.executeQuery("select operatorids from workflow_freenode where requestid = '"+requestid+"'"); + while (rs.next()){ + String operatorids = Util.null2String(rs.getString("operatorids")); + if(!"".equals(operatorids) && operatorids !=null){ + list2.add(operatorids); + } + } + bb.writeLog("list2",list2.toString()); + + int count = 0; + if (list2.containsAll(list1)){ + count = 1; + } +// json.put("count",count); + map.put("code",200); + map.put("msg","SUCCESS"); + map.put("data",count); + bb.writeLog( "getworkflow_kgshq_Ajax=================json:" + JSONObject.toJSONString(map)); +// out.print( json.toJSONString() ); + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowLdspAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowLdspAjax.java new file mode 100644 index 0000000..24c56ad --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowLdspAjax.java @@ -0,0 +1,93 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.ArrayList; +import java.util.stream.Collectors; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 15:11 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetWorkflowLdspAjax { + @GET + @Path("/getWorkflowLdspAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getWorkflowLdspAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap(); + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + int requestid = Util.getIntValue( request.getParameter( "requestid" ) ); + String nodeid = Util.null2String( request.getParameter( "nodeid" )); + String login = Util.null2String( request.getParameter( "loginid" )); + bb.writeLog("login:"+login); + JSONObject json = new JSONObject(); + String loginids = ""; + + List qcList = new ArrayList<>(); + if(!"".equals(login) && login !=null) + { + List lis = Arrays.asList(login.split(",")); + qcList = lis.stream().distinct().collect(Collectors.toList()); + } + + bb.writeLog("loginids="+loginids); + List list = new ArrayList<>(); + String sql = " select distinct userid from workflow_currentoperator where requestid="+requestid+" and nodeid in("+nodeid+") "; + bb.writeLog(sql); + rs.executeQuery(sql); + while(rs.next()){ + String userid = Util.null2String(rs.getString("userid")); + list.add(userid); + } + + int retval = 0; + if(qcList !=null && qcList.size() >0 ){ + if(list !=null && list.size() > 0){ + int wscount = 0; + for(String ldspid : qcList) + { + if(!list.contains(ldspid)){ + wscount++; + } + } + if(wscount>0){ + retval = 0; + }else{ + retval = 1; + } + }else{ + retval = 1; + } + }else{ + retval = 1; + } + +// json.put("count",retval); + map.put("data",retval); + map.put("code",200); + map.put("msg","SUCCESS"); + bb.writeLog( "getworkflow_ldsp_Ajax=================json:" +JSONObject.toJSONString(map) ); +// out.print( json.toJSONString() ); + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowShqAjax.java b/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowShqAjax.java new file mode 100644 index 0000000..a49f4e0 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/GetWorkflowShqAjax.java @@ -0,0 +1,76 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-08-24 16:07 + * @Description:采购相关接口 + * @ModifyLog: + **/ +public class GetWorkflowShqAjax { + @GET + @Path("/getWorkflowShqAjax") + @Produces({MediaType.TEXT_PLAIN}) + public String getWorkflowShqAjax(@Context HttpServletRequest request, @Context HttpServletResponse response){ + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + BaseBean bb = new BaseBean(); + HashMap map = new HashMap(); + int formid = Math.abs(Util.getIntValue( request.getParameter( "formid" ) ));//请求ID + int requestid = Util.getIntValue( request.getParameter( "requestid" ) ); + JSONObject json = new JSONObject(); + String tablename = "formtable_main_".concat( formid+""); + rs.executeQuery( " select id from " + tablename + " where requestid ='" + requestid + "'" ); + rs.next(); + String mainid = Util.null2String( rs.getString( "id" ) );//mainid + rs1.executeQuery( " select bmfzr from " + tablename + "_dt2 where mainid ='" + mainid + "'" ); + + List list1 = new ArrayList<>(); + List list2= new ArrayList<>(); + + while (rs1.next()) { + String bmfzr = Util.null2String( rs1.getString( "bmfzr" ) );//部门负责人 + if(!"".equals(bmfzr) && bmfzr !=null){ + list1.add(bmfzr); + } + } + + rs.executeQuery("select operatorids from workflow_freenode where requestid = '"+requestid+"'"); + while (rs.next()){ + String operatorids = Util.null2String(rs.getString("operatorids")); + if(!"".equals(operatorids) && operatorids !=null){ + list2.add(operatorids); + } + } + int count = 0; + if (list2.containsAll(list1)){ + count = 1; + } +// json.put("count",count); + map.put("code",200); + map.put("msg","SUCCESS"); + map.put("data",count); + bb.writeLog( "getworkflow_shq_Ajax=================json:" + JSONObject.toJSONString(map)); +// out.print( json.toJSONString() ); + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsq/web/TycgsqAction.java b/src/main/java/com/engine/htxc/tycgsq/web/TycgsqAction.java new file mode 100644 index 0000000..d81bbee --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsq/web/TycgsqAction.java @@ -0,0 +1,119 @@ +package com.engine.htxc.tycgsq.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.tycgsq.service.TycgsqService; +import com.engine.htxc.tycgsq.service.impl.TycgsqServiceImpl; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.HashMap; + +public class TycgsqAction { + private TycgsqService getTycgsqService(){return ServiceUtil.getService(TycgsqServiceImpl.class);}; + + /** + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getLxxmByCgxmlx") + @Produces({MediaType.TEXT_PLAIN}) + public String getLxxmByCgxmlx(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String cgxmlx = request.getParameter("cgxmlx"); + ArrayList> lxxmByCgxmlx = getTycgsqService().getLxxmByCgxmlx(cgxmlx); + map.put("code",200); + map.put("msg","success"); + map.put("data",lxxmByCgxmlx); + }catch (Exception e){ + map.put("code",500); + map.put("msg","err"); + map.put("data",""); + } + return JSONObject.toJSONString(map); + } + + /** + * 这个接口用来判断立项项目列表是否允许删除 + * @param request + * @param response + * @return + */ + @GET + @Path("/allowDelete") + @Produces({MediaType.TEXT_PLAIN}) + public String allowDelete(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String ids = request.getParameter("ids"); + boolean b = getTycgsqService().allowDelete(ids); + map.put("code",200); + map.put("msg","success"); + map.put("data",b); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + + /** + * 这个接口是用来校验通用采购申请提交时,明细表采购项目是否存在在途流程 + * @param request + * @param response + * @return + */ + @GET + @Path("/allowSubmit") + @Produces({MediaType.TEXT_PLAIN}) + public String allowSubmit(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String ids = request.getParameter("ids"); + String requestid = request.getParameter("requestid"); + ArrayList list = getTycgsqService().allowSubmit(ids,requestid); + map.put("code",200); + map.put("msg","success"); + map.put("data",list); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } + + /** + * 根据 + * @param request + * @param response + * @return + */ + @GET + @Path("/getGllcByJmid") + @Produces({MediaType.TEXT_PLAIN}) + public String getGllcByJmid(@Context HttpServletRequest request, @Context HttpServletResponse response){ + HashMap map = new HashMap<>(); + try{ + String ids = request.getParameter("ids"); + String requestid = request.getParameter("requestid"); + ArrayList list = getTycgsqService().allowSubmit(ids,requestid); + map.put("code",200); + map.put("msg","success"); + map.put("data",list); + }catch (Exception e){ + map.put("code",500); + map.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(map); + } +} diff --git a/src/main/java/com/engine/htxc/tycgsqehy/common/CommonResult.java b/src/main/java/com/engine/htxc/tycgsqehy/common/CommonResult.java new file mode 100644 index 0000000..2fbde8b --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsqehy/common/CommonResult.java @@ -0,0 +1,68 @@ +package com.engine.htxc.tycgsqehy.common; + + + + +import com.alibaba.fastjson.JSONObject; +import com.engine.htxc.tycgsqehy.entity.TycgsqEntity; + +import java.util.ArrayList; +import java.util.HashMap; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-09-14 15:19 + * @Description: + * @ModifyLog: + **/ +public class CommonResult { + private T data; + private String msg; + private String code; + + public T getT() { + return data; + } + + public void setT(T data) { + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public CommonResult(T data) { + this.data = data; + } + public CommonResult ok(){ + this.data = data; + this.code="200"; + this.msg="SUUCESS"; + return this; + } + public CommonResult error(){ + this.data = data; + this.code="400"; + this.msg="ERROR"; + return this; + } + + + +} diff --git a/src/main/java/com/engine/htxc/tycgsqehy/entity/TycgsqEntity.java b/src/main/java/com/engine/htxc/tycgsqehy/entity/TycgsqEntity.java new file mode 100644 index 0000000..7d00892 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsqehy/entity/TycgsqEntity.java @@ -0,0 +1,53 @@ +package com.engine.htxc.tycgsqehy.entity; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-09-14 16:41 + * @Description: + * @ModifyLog: + **/ +public class TycgsqEntity { + //requestid + private String requestId; + //系统 + private String system; + //requestname + private String requestName; + //流程编号 + private String lcbh; + + public String getLcbh() { + return lcbh; + } + + public void setLcbh(String lcbh) { + this.lcbh = lcbh; + } + + public String getRequestName() { + return requestName; + } + + public void setRequestName(String requestName) { + this.requestName = requestName; + } + + public String getRequestId() { + return requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public String getSystem() { + return system; + } + + public void setSystem(String system) { + this.system = system; + } +} diff --git a/src/main/java/com/engine/htxc/tycgsqehy/service/TycgsqehyService.java b/src/main/java/com/engine/htxc/tycgsqehy/service/TycgsqehyService.java new file mode 100644 index 0000000..79dc723 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsqehy/service/TycgsqehyService.java @@ -0,0 +1,9 @@ +package com.engine.htxc.tycgsqehy.service; + +import com.engine.htxc.tycgsqehy.entity.TycgsqEntity; + +import java.util.List; + +public interface TycgsqehyService { + List getRequestIdByXmbh(String xmbh); +} diff --git a/src/main/java/com/engine/htxc/tycgsqehy/service/impl/TycgsqehyServiceImpl.java b/src/main/java/com/engine/htxc/tycgsqehy/service/impl/TycgsqehyServiceImpl.java new file mode 100644 index 0000000..e497f34 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsqehy/service/impl/TycgsqehyServiceImpl.java @@ -0,0 +1,67 @@ +package com.engine.htxc.tycgsqehy.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.tycgsqehy.entity.TycgsqEntity; +import com.engine.htxc.tycgsqehy.service.TycgsqehyService; +import weaver.conn.RecordSet; +import weaver.conn.RecordSetDataSource; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-09-14 15:52 + * @Description:通用采购二合一的相关实现 + * @ModifyLog: + **/ +public class TycgsqehyServiceImpl extends Service implements TycgsqehyService { + + @Override + public List getRequestIdByXmbh(String xmbh) { + ArrayList list = new ArrayList<>(); + //171数据库链接 + RecordSetDataSource rsds = new RecordSetDataSource("tycgsq171"); + PropBean pb = new PropBean(); + //171it采购的表名 + String tableSql = "select * from workflow_bill where id = (select formid from workflow_base where unnumber ='itcgsq' and ISVALID = 1) "; + rsds.execute(tableSql); + boolean next = rsds.next(); +// System.out.println(next); + String TycgsqItTableName = rsds.getString("tablename"); + String itSql = "select a.*,b.* from "+TycgsqItTableName+" a ,workflow_requestbase b where a.requestid = b.requestid and a.xmbh ='"+xmbh+"'"; + rsds.execute(itSql); + while(rsds.next()){ + String requestId = rsds.getString("requestid"); + TycgsqEntity entity = new TycgsqEntity(); + entity.setRequestId(requestId); + entity.setSystem("htoa"); + entity.setLcbh(rsds.getString("lcbh")); + entity.setRequestName(rsds.getString("requestname")); + list.add(entity); + } + RecordSet rs = new RecordSet(); + String sql = "select * from workflow_bill where id = (select formid from workflow_base where unnumber ='cgsq') "; + rs.execute(sql); + if(rs.next()){ + String tablename = rs.getString("tablename"); + sql = "select a.*,b.* from " +tablename+" a ,workflow_requestbase b where a.requestid = b.requestid and a.xmbh = ?"; + rs.execute(sql,xmbh); + while(rs.next()){ + String requestId = rs.getString("requestid"); + TycgsqEntity entity = new TycgsqEntity(); + entity.setRequestId(requestId); + entity.setSystem("xcoa"); + entity.setRequestName(rs.getString("requestname")); + entity.setLcbh(rs.getString("lcbh")); + list.add(entity); + } + } +// System.out.println(list.toString()); + return list; + } +} diff --git a/src/main/java/com/engine/htxc/tycgsqehy/web/TycgsqehyAction.java b/src/main/java/com/engine/htxc/tycgsqehy/web/TycgsqehyAction.java new file mode 100644 index 0000000..90538f1 --- /dev/null +++ b/src/main/java/com/engine/htxc/tycgsqehy/web/TycgsqehyAction.java @@ -0,0 +1,49 @@ +package com.engine.htxc.tycgsqehy.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.tycgsq.service.impl.TycgsqServiceImpl; +import com.engine.htxc.tycgsqehy.common.CommonResult; +import com.engine.htxc.tycgsqehy.entity.TycgsqEntity; +import com.engine.htxc.tycgsqehy.service.TycgsqehyService; +import com.engine.htxc.tycgsqehy.service.impl.TycgsqehyServiceImpl; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Collections; +import java.util.List; + +/** + * @Title: ecology-9 + * @Company: 泛微软件 + * @author: K1810027 + * @version: 1.0 + * @CreateDate: 2022-09-14 15:17 + * @Description: + * @ModifyLog: + **/ +public class TycgsqehyAction { + private TycgsqehyService tycgsqehyService(){ return ServiceUtil.getService(TycgsqehyServiceImpl.class); } + + /** + * 通过项目编号查询171的IT采购和125通用采购流程包含此项目编号的流程 + * @param request + * @param response + * @return + */ + @GET + @Path("/getRequestIdByXmbh") + @Produces({MediaType.TEXT_PLAIN}) + public String getRequestIdByXmbh(@Context HttpServletRequest request, @Context HttpServletResponse response){ + String xmbh = request.getParameter("xmbh"); + List list = tycgsqehyService().getRequestIdByXmbh(xmbh); + CommonResult commonResult = new CommonResult(list); + + return JSONObject.toJSONString(commonResult.ok()); + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/autotrigger/contract/vo/ContractInfo.java b/src/main/java/com/engine/htxc/workflow/create/autotrigger/contract/vo/ContractInfo.java new file mode 100644 index 0000000..9e9a52f --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/autotrigger/contract/vo/ContractInfo.java @@ -0,0 +1,73 @@ +package com.engine.htxc.workflow.create.autotrigger.contract.vo; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ContractInfo.java + * @createTime 2022年08月05日 13:51:00 + */ +public class ContractInfo { + public String htbh; + public String htbb; + public String htlx; + public String htflx; + public String htmkid; + public String sflx; + public String htjexz; + + public String getHtbh() { + return htbh; + } + + public void setHtbh(String htbh) { + this.htbh = htbh; + } + + public String getHtbb() { + return htbb; + } + + public void setHtbb(String htbb) { + this.htbb = htbb; + } + + public String getHtlx() { + return htlx; + } + + public void setHtlx(String htlx) { + this.htlx = htlx; + } + + public String getHtflx() { + return htflx; + } + + public void setHtflx(String htflx) { + this.htflx = htflx; + } + + public String getHtmkid() { + return htmkid; + } + + public void setHtmkid(String htmkid) { + this.htmkid = htmkid; + } + + public String getSflx() { + return sflx; + } + + public void setSflx(String sflx) { + this.sflx = sflx; + } + + public String getHtjexz() { + return htjexz; + } + + public void setHtjexz(String htjexz) { + this.htjexz = htjexz; + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/approval/service/impl/Endtosign.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/approval/service/impl/Endtosign.java new file mode 100644 index 0000000..bcf5799 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/approval/service/impl/Endtosign.java @@ -0,0 +1,121 @@ +package com.engine.htxc.workflow.create.business.contract.approval.service.impl; + +import cn.hutool.core.date.DateTime; +import com.engine.htxc.commonutil.base.BaseUtil; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.commonutil.workflow.WorkflowCreate; + +import static com.engine.htxc.workflow.create.business.contract.init.ContractType.ContractwaitSign; + +import com.engine.htxc.workflow.create.business.contract.init.ContractWorkflowData; +import com.engine.htxc.workflow.create.business.contract.util.ContracrtBaseUtil; +import com.engine.htxc.workflow.create.business.contract.util.ContractUpdateStatus; +import com.engine.htxc.workflow.create.cinterface.CustomizeWorkflow; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

触发签订流程

+ * @author K1810015 + * @version 1.0.0 + * @ClassName approvaltosign.java + * @createTime 2022年07月20日 17:00:00 + */ +public class Endtosign extends ContractWorkflowData implements CustomizeWorkflow { + + + private PropBean pb=new PropBean(); + private String requestnamevalue=""; + Map requestnamemap=new HashMap<>(); + + + public Endtosign(Map map) { + super(map); + } + + + @Override + public int create() { + Map mainmap=this.getmaintable(null); + String workflowid=Util.null2String(pb.getPropName("constract.sign.workflowid")); + if(StringUtils.isBlank(requestid) || StringUtils.isBlank(requestname)){ + return -101; + } + String creatorid=Util.null2String(map.get("creatorid")); + if(StringUtils.isBlank(creatorid)){ + return -102; + } + String xzhtlb=Util.null2String(mainmap.get("xzhtlb")); + String htbb=Util.null2String(mainmap.get("htbb")); + Map wheremap=new HashMap<>(); + wheremap.put("htbh",xzhtlb); + wheremap.put("htbb",htbb); + requestnamemap= ContracrtBaseUtil.getufhtqcmap(wheremap); + String prefix=Util.null2String(pb.getPropName("constract.sign.workflowname")); + if(requestnamemap==null || requestnamemap.size()<=0){ + return -106; + } + String requestnamevalue=prefix+requestnamemap.get("htmc"); + Map retmap=initdata(); + if(retmap==null || retmap.size()<=0){ + return -103; + } + WorkflowCreate workflowCreate=WorkflowCreate.createWorkflow(p->{ + p.setCreatorId(creatorid); + p.setWorkflowId(workflowid); + p.setRequestName(requestnamevalue); + p.setIsNextFlow(""); + p.setRequestMainMap(retmap); + }).workflowCreateByRequestMap(); + String value=workflowCreate.requestid; + if(Util.getIntValue(value,-100)>0){ + String htdsf = Util.null2String(requestnamemap.get("htdsf")); + if (!StringUtils.isBlank(htdsf)) { + List> dsflist = new ArrayList<>(); + Arrays.stream(htdsf.split(",")).distinct().forEach((item) -> { + Map dsfmap = new HashMap<>(1); + dsfmap.put("dsfmc", Util.null2String(item)); + dsflist.add(dsfmap); + }); + workflowCreate.workflowCreatelist("5", dsflist); + } + ContractUpdateStatus contractUpdateStatus=ContractUpdateStatus.createContractUpdateStatus(requestid,new User(Util.getIntValue(creatorid,-1))); + Map modeset=new HashMap<>(); + modeset.put("zt",Util.null2String(ContractwaitSign.getValue())); + modeset.put("glqsxx",contractUpdateStatus.initgllc("glqsxx",value)); + contractUpdateStatus.modeupdate(modeset); + + } + return Util.getIntValue(value,-100); + } + + public Map initdata(){ + String field= "ngr,szbm,szjg,jjcd,lxfs,ngrq,jjyy,xzhtlb,htbb,htlx,fhtlx,htzt,gljmmc"; + Mapmaintable=getmaintable(Arrays.stream(field.split(",")).collect(Collectors.toList())); + Map retmap=new HashMap<>(); + int creatorid=Util.getIntValue(Util.null2String(map.get("creatorid")),-1); + UserHt userht=new UserHt(creatorid); + retmap.put("ngr",Util.null2String(creatorid)); + retmap.put("szbm",Util.null2String(userht.getUserDepartment())); + retmap.put("szjg",Util.null2String(BaseUtil.getusertoszjg(Util.null2String(creatorid)))); + retmap.put("jjcd",Util.null2String(maintable.get("jjcd"))); + retmap.put("lxfs",Util.null2String(userht.getMobile())); + retmap.put("ngrq", DateTime.now().toString("yyyy-MM-dd hh:mm")); + retmap.put("jjyy",Util.null2String(maintable.get("jjyy"))); + retmap.put("xzhtlb",Util.null2String(maintable.get("xzhtlb"))); + retmap.put("htbb",Util.null2String(maintable.get("htbb"))); + retmap.put("htlx",Util.null2String(maintable.get("htlx"))); + retmap.put("fhtlx",Util.null2String(maintable.get("fhtlx"))); + retmap.put("htzt",Util.null2String(maintable.get("htzt"))); + retmap.put("gljmmc",Util.null2String(maintable.get("gljmmc"))); + Map result= retmap.entrySet().stream().filter(mapfilter-> + !StringUtils.isBlank(Util.null2String(mapfilter.getValue())) + ).collect(Collectors.toMap(p->p.getKey(),p-> p.getValue())); + return result; + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/convention/service/impl/ConventionserviceImpl.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/convention/service/impl/ConventionserviceImpl.java new file mode 100644 index 0000000..d21e339 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/convention/service/impl/ConventionserviceImpl.java @@ -0,0 +1,107 @@ +package com.engine.htxc.workflow.create.business.contract.convention.service.impl; + +import cn.hutool.core.date.DateTime; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.commonutil.workflow.WorkflowCreate; +import com.engine.htxc.workflow.create.business.contract.init.ContractWorkflowData; +import com.engine.htxc.workflow.create.business.contract.util.ContracrtBaseUtil; +import com.engine.htxc.workflow.create.business.contract.util.ContractUpdateStatus; +import com.engine.htxc.workflow.create.cinterface.CustomizeWorkflow; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

创建流程--合同履约

+ * @author K1810015 + * @version 1.0.0 + * @ClassName service.java + * @createTime 2022年07月22日 10:53:00 + */ +public class ConventionserviceImpl extends ContractWorkflowData implements CustomizeWorkflow { + + private PropBean pb=new PropBean(); + private WorkflowCreate workflowCreate=new WorkflowCreate(); + Map requestnamemap=new HashMap<>(); + + public ConventionserviceImpl(Map map) { + super(map); + } + + + @Override + public int create() { + Map mainmap=this.getmaintable(null); + String workflowid= Util.null2String(pb.getPropName("constract.convertion.workflowid")); + if(StringUtils.isBlank(requestid) || StringUtils.isBlank(requestname)){ + return -101; + } + String creatorid=Util.null2String(mainmap.get("lyclr")); + if(StringUtils.isBlank(creatorid)){ + return -102; + } + String xzhtlb=Util.null2String(mainmap.get("xzhtlb")); + String htbb=Util.null2String(mainmap.get("htbb")); + Map wheremap=new HashMap<>(2); + wheremap.put("htbh",xzhtlb); + wheremap.put("htbb",htbb); + requestnamemap= ContracrtBaseUtil.getufhtqcmap(wheremap); + if(requestnamemap==null || requestnamemap.size()<=0){ + return -106; + } + String prefix=Util.null2String(pb.getPropName("constract.convertion.workflowname")); + String requestnamevalue=prefix+requestnamemap.get("htmc"); + String contractmodeid=Util.null2String(requestnamemap.get("id")); + Map retmap=initdata(); + if(retmap==null || retmap.size()<=0){ + return -103; + } + String value= WorkflowCreate.createWorkflow(p->{ + p.setCreatorId(creatorid); + p.setWorkflowId(workflowid); + p.setRequestName(requestnamevalue); + p.setIsNextFlow(""); + p.setRequestMainMap(retmap); + }).workflowCreateByRequestMap().requestid; + if(Util.getIntValue(value,-100)>0){ + ContractUpdateStatus.createContractUpdateStatus(requestid,user).donewkend(value); + } + return Util.getIntValue(value,-100); + } + public Map initdata(){ + String field= "ngr,szbm,szjg,jjcd,lxfs,qsrqfzzd,ngrq,jjyy,xzhtlb,htbb,htlx,fhtlx,htzt,gljmmc"; + Mapmaintable=getmaintable(Arrays.stream(field.split(",")).collect(Collectors.toList())); + Map retmap=new HashMap<>(15); + int creatorid= Util.getIntValue(Util.null2String(maintable.get("ngr")),-1); + UserHt userht=new UserHt(creatorid); + retmap.put("ngr",Util.null2String(creatorid)); + retmap.put("szbm",Util.null2String(maintable.get("szbm"))); + retmap.put("szjg",Util.null2String(maintable.get("szjg"))); + retmap.put("jjcd",Util.null2String(maintable.get("jjcd"))); + retmap.put("lxfs",Util.null2String(userht.getMobile())); + retmap.put("ngrq", DateTime.now().toString("yyyy-MM-dd hh:mm")); + retmap.put("jjyy",Util.null2String(maintable.get("jjyy"))); + retmap.put("xzhtlb",Util.null2String(maintable.get("xzhtlb"))); + retmap.put("htbb",Util.null2String(maintable.get("htbb"))); + retmap.put("htlx",Util.null2String(maintable.get("htlx"))); + retmap.put("fhtlx",Util.null2String(maintable.get("fhtlx"))); + retmap.put("qsrqfzzd",Util.null2String(maintable.get("qsrqfzzd"))); + retmap.put("htzt",Util.null2String(maintable.get("htzt"))); + retmap.put("gljmmc",Util.null2String(maintable.get("gljmmc"))); + retmap.put("sfymqlyrq","0"); + String htjexz=Util.null2String(requestnamemap.get("htjexz")); + if(!StringUtils.isBlank(htjexz)){ + //无需转化 + retmap.put("jelx",htjexz); + } + Map result= retmap.entrySet().stream().filter(mapfilter-> + !StringUtils.isBlank(Util.null2String(mapfilter.getValue())) + ).collect(Collectors.toMap(p->p.getKey(),p-> p.getValue())); + return result; + } + +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/ConstractEndService.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/ConstractEndService.java new file mode 100644 index 0000000..b12eabb --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/ConstractEndService.java @@ -0,0 +1,10 @@ +package com.engine.htxc.workflow.create.business.contract.end.service; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ConstractEndService.java + * @createTime 2022年07月15日 10:20:00 + */ +public interface ConstractEndService { +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/impl/ConstractDiscardServiceImpl.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/impl/ConstractDiscardServiceImpl.java new file mode 100644 index 0000000..b16bbd0 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/impl/ConstractDiscardServiceImpl.java @@ -0,0 +1,98 @@ +package com.engine.htxc.workflow.create.business.contract.end.service.impl; + +import cn.hutool.core.date.DateTime; +import com.engine.htxc.commonutil.base.BaseUtil; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.commonutil.workflow.WorkflowCreate; +import com.engine.htxc.workflow.create.business.contract.init.ContractWorkflowData; +import com.engine.htxc.workflow.create.business.contract.util.ContracrtBaseUtil; +import com.engine.htxc.workflow.create.cinterface.CustomizeWorkflow; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.engine.htxc.workflow.create.business.contract.init.ContractType.ContractDiscarding; + +/** + * @Remark 合同触发签订 --合同状态 废弃中 + * @author K1810015 + * @version 1.0.0 + * @ClassName ConstractDiscardServiceImpl.java + * @createTime 2022年07月17日 19:59:00 + */ +public class ConstractDiscardServiceImpl extends ContractWorkflowData implements CustomizeWorkflow { + + private PropBean pb=new PropBean(); + private WorkflowCreate workflowCreate=new WorkflowCreate(); + + public ConstractDiscardServiceImpl(Map map) { + super(map); + } + + + @Override + public int create() { + Map mainmap=this.getmaintable(null); + String workflowid=Util.null2String(pb.getPropName("constract.discard.workflowid")); + if(StringUtils.isBlank(requestid) || StringUtils.isBlank(requestname)){ + return -101; + } + String creatorid=Util.null2String(map.get("creatorid")); + if(StringUtils.isBlank(creatorid)){ + return -102; + } + String xzhtlb=Util.null2String(mainmap.get("xzhtlb")); + String htbb=Util.null2String(mainmap.get("htbb")); + Map wheremap=new HashMap<>(); + wheremap.put("htbh",xzhtlb); + wheremap.put("htbb",htbb); + Map requestnamemap= ContracrtBaseUtil.getufhtqcmap(wheremap); + String prefix=Util.null2String(pb.getPropName("constract.discard.workflowname")); + String requestnamevalue=prefix+requestnamemap.get("htmc"); + String contractmodeid=Util.null2String(requestnamemap.get("id")); + Map retmap=initdata(); + if(retmap==null || retmap.size()<=0){ + return -103; + } + String value= WorkflowCreate.createWorkflow(p->{ + p.setCreatorId(creatorid); + p.setWorkflowId(workflowid); + p.setRequestName(requestnamevalue); + p.setIsNextFlow(""); + p.setRequestMainMap(retmap); + }).workflowCreateByRequestMap().requestid; + return Util.getIntValue(value,-100); + + } + public Map initdata(){ + String field= "ngr,szbm,szjg,jjcd,lxfs,ngrq,jjyy,xzhtlb,htbb,htlx,fhtlx,htzt,gljmmc"; + Mapmaintable=getmaintable(Arrays.stream(field.split(",")).collect(Collectors.toList())); + Map retmap=new HashMap<>(); + int creatorid= Util.getIntValue(Util.null2String(map.get("creatorid")),-1); + UserHt userht=new UserHt(creatorid); + retmap.put("ngr",Util.null2String(creatorid)); + retmap.put("szbm",Util.null2String(userht.getUserDepartment())); + retmap.put("szjg",Util.null2String(BaseUtil.getusertoszjg(Util.null2String(creatorid)))); + retmap.put("jjcd",Util.null2String(maintable.get("jjcd"))); + retmap.put("lxfs",Util.null2String(userht.getMobile())); + retmap.put("ngrq", DateTime.now().toString("yyyy-MM-dd hh:mm")); + retmap.put("jjyy",Util.null2String(maintable.get("jjyy"))); + retmap.put("xzhtlb",Util.null2String(maintable.get("xzhtlb"))); + retmap.put("htbb",Util.null2String(maintable.get("htbb"))); + retmap.put("htlx",Util.null2String(maintable.get("htlx"))); + retmap.put("fhtlx",Util.null2String(maintable.get("fhtlx"))); + retmap.put("htzt",Util.null2String(maintable.get("htzt"))); + retmap.put("gljmmc",Util.null2String(maintable.get("gljmmc"))); + + Map result= retmap.entrySet().stream().filter(mapfilter-> + !StringUtils.isBlank(Util.null2String(mapfilter.getValue())) + ).collect(Collectors.toMap(p->p.getKey(),p-> p.getValue())); + return result; + } +} + diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/impl/ConstractEndServiceImpl.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/impl/ConstractEndServiceImpl.java new file mode 100644 index 0000000..94d8003 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/end/service/impl/ConstractEndServiceImpl.java @@ -0,0 +1,115 @@ +package com.engine.htxc.workflow.create.business.contract.end.service.impl; + +import cn.hutool.core.date.DateTime; +import com.engine.htxc.commonutil.base.BaseUtil; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.commonutil.user.UserHt; +import com.engine.htxc.commonutil.workflow.WorkflowCreate; +import com.engine.htxc.workflow.create.business.contract.init.ContractWorkflowData; +import com.engine.htxc.workflow.create.business.contract.util.ContracrtBaseUtil; +import com.engine.htxc.workflow.create.cinterface.CustomizeWorkflow; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

触发合同归档流程 合同状态则已签订

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ConstractEndServiceImpl.java + * @createTime 2022年07月15日 10:20:00 + */ +public class ConstractEndServiceImpl extends ContractWorkflowData implements CustomizeWorkflow { + + private PropBean pb=new PropBean(); + + + public ConstractEndServiceImpl(Map map) { + super(map); + } + + + @Override + public int create() { + + Map mainmap=this.getmaintable(null); + String workflowid=Util.null2String(pb.getPropName("constract.end.workflowid")); + if(StringUtils.isBlank(requestid) || StringUtils.isBlank(requestname)){ + return -101; + } + String creatorid=Util.null2String(mainmap.get("ngr")); + if(StringUtils.isBlank(creatorid)){ + return -102; + } + String xzhtlb=Util.null2String(mainmap.get("xzhtlb")); + String htbb=Util.null2String(mainmap.get("htbb")); + Map wheremap=new HashMap<>(2); + wheremap.put("htbh",xzhtlb); + wheremap.put("htbb",htbb); + Map requestnamemap= ContracrtBaseUtil.getufhtqcmap(wheremap); + String prefix=Util.null2String(pb.getPropName("constract.end.workflowname")); + String requestnamevalue=prefix+requestnamemap.get("htmc"); + Map retmap=initdata(); + if(retmap==null || retmap.size()<=0){ + return -103; + } + String value=WorkflowCreate.createWorkflow(p->{ + p.setCreatorId(creatorid); + p.setWorkflowId(workflowid); + p.setRequestName(requestnamevalue); + p.setIsNextFlow(""); + p.setRequestMainMap(retmap); + }).workflowCreateByRequestMap().requestid; + return Util.getIntValue(value,-100); + } + public Map initdata(){ + String field= "ngr,szbm,szjg,jjcd,qsrqfzzd,htyjsmj,lxfs,ngrq,jjyy,xzhtlb,htbb,htlx,fhtlx,htzt,gljmmc"; + Mapmaintable=getmaintable(Arrays.stream(field.split(",")).collect(Collectors.toList())); + Map retmap=new HashMap<>(15); + int creatorid=Util.getIntValue(Util.null2String(map.get("creatorid")),-1); + UserHt userht=new UserHt(creatorid); + retmap.put("ngr",Util.null2String(creatorid)); + retmap.put("szbm",Util.null2String(userht.getUserDepartment())); + retmap.put("szjg",Util.null2String(BaseUtil.getusertoszjg(Util.null2String(creatorid)))); + retmap.put("jjcd",Util.null2String(maintable.get("jjcd"))); + retmap.put("lxfs",Util.null2String(userht.getMobile())); + retmap.put("ngrq", DateTime.now().toString("yyyy-MM-dd hh:mm")); + retmap.put("jjyy",Util.null2String(maintable.get("jjyy"))); + retmap.put("xzhtlb",Util.null2String(maintable.get("xzhtlb"))); + retmap.put("htbb",Util.null2String(maintable.get("htbb"))); + retmap.put("htlx",Util.null2String(maintable.get("htlx"))); + retmap.put("fhtlx",Util.null2String(maintable.get("fhtlx"))); + retmap.put("htzt",Util.null2String(maintable.get("htzt"))); + String qsrqfzzd=getMaxDate(5); + retmap.put("qsrqfzzd",Util.null2String(qsrqfzzd)); + retmap.put("gljmmc",Util.null2String(maintable.get("gljmmc"))); + String htyjsmj=Util.null2String(maintable.get("htyjsmj")); + if(!StringUtils.isBlank(htyjsmj)){ + retmap.put("htyjsmj", newFileIds(htyjsmj).stream().collect(Collectors.joining(","))); + } + + Map result= retmap.entrySet().stream().filter(mapfilter-> + !StringUtils.isBlank(Util.null2String(mapfilter.getValue())) + ).collect(Collectors.toMap(p->p.getKey(),p-> p.getValue())); + return result; + } + + public String getMaxDate(int dtnum){ + String datestr=DateTime.now().toString("yyyy-MM-dd"); + if(StringUtils.isBlank(this.mainid)||dtnum<=-1){ + return datestr; + } + DbTools dbtools=new DbTools(); + String sql="select to_char(max(to_date(htqsrq,'yyyy-MM-dd')),'yyyy-MM-dd') as maxdate from "+this.tablename+"_dt"+dtnum+" where mainid=?"; + Map retmap= dbtools.getsqltomap(sql,this.mainid); + if(retmap==null || retmap.size()<=0){ + return datestr; + } + + return Util.null2String(retmap.get("maxdate")); + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractSignType.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractSignType.java new file mode 100644 index 0000000..88c50cc --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractSignType.java @@ -0,0 +1,25 @@ +package com.engine.htxc.workflow.create.business.contract.init; + +/** + *

归档及用印状态枚举类

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ContractSignType.java + * @createTime 2022年07月25日 15:43:00 + */ +public enum ContractSignType { + CEwaitDeptEnd(2), + CEwDeptEnding(3), + CEwDeptEnd(4), + Archived(6); + public final int value; + + ContractSignType(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractType.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractType.java new file mode 100644 index 0000000..223647f --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractType.java @@ -0,0 +1,28 @@ +package com.engine.htxc.workflow.create.business.contract.init; + +/** + *

合同状态的枚举类

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ContractType.java + * @createTime 2022年07月25日 11:17:00 + */ +public enum ContractType { + ContractwaitSign(3), + ContractDiscarding(5), + ContractDoneSignEnd(6), + Contractconvention(7), + ContractDoneSign(4), + ThePerformanceToComplete(10); + + public final int value; + + ContractType(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractWorkflowData.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractWorkflowData.java new file mode 100644 index 0000000..9a04144 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/init/ContractWorkflowData.java @@ -0,0 +1,114 @@ +package com.engine.htxc.workflow.create.business.contract.init; + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; +import weaver.docs.docs.DocManager; +import weaver.general.Util; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

提供一个和合同相关的类型

+ * @author K1810015 + * @version 1.0.0 + * @ClassName contractInit.java + * @createTime 2022年07月15日 10:23:00 + */ +public class ContractWorkflowData extends Service { + + private DbTools dbTools=new DbTools(); + public Map map=new HashMap<>(); + public String requestid=""; + public String mainid=""; + public String requestname=""; + public String tablename="uf_htqc"; + public String filedvalue="*"; + + public ContractWorkflowData(Map map){ + if(map!=null && map.size()>0){ + this.map=map; + this.requestid= Util.null2String(map.get("requestid")); + if(!StringUtils.isBlank(this.requestid)){ + Map requestnamemap=new HashMap<>(1); + requestnamemap.put("requestid",requestid); + this.requestname=Util.null2String(dbTools.getRequesName(requestnamemap)); + this.tablename=dbTools.getTableName(requestid); + } + } + } + + public Map getmaintable(List fieldlist){ + Map retmap=new HashMap<>(1); + if(StringUtils.isBlank(requestid)){ + return retmap; + } + + if(fieldlist!=null && fieldlist.size()>0){ + filedvalue=fieldlist.stream().collect(Collectors.joining(",")); + } + retmap=dbTools.getRequestidToMap(requestid,fieldlist); + if(retmap==null|| retmap.size()<=0){ + return retmap; + } + String id=Util.null2String(retmap.get("id")); + if(StringUtils.isBlank(id)){ + return retmap; + } + this.mainid=id; + return retmap; + } + + public List> getdetailtable(int number,List fieldlist){ + List> maplist=new ArrayList<>(); + if(number<0){ + return maplist; + } + if(StringUtils.isBlank(mainid)){ + getmaintable(null); + if(StringUtils.isBlank(mainid)) { + return maplist; + } + } + if(fieldlist!=null && fieldlist.size()>0){ + filedvalue=fieldlist.stream().collect(Collectors.joining(",")); + } + List> retlist=dbTools.getRequestidToMapList(requestid,fieldlist,number); + if(retlist==null|| retlist.size()<=0){ + return maplist; + } + retlist.forEach((Map mapvalue)->{ + Map newmap=new HashMap<>(1); + mapvalue.keySet().forEach((key)->{ + if(!StringUtils.isBlank(key) && !StringUtils.isBlank(Util.null2String(mapvalue.get(key)))){ + newmap.put(key,Util.null2String(mapvalue.get(key))); + } + }); + if(newmap!=null && newmap.size()>0){ + maplist.add(newmap); + } + }); + return maplist; + } + + + public List newFileIds(String htyjsmj){ + List list=new ArrayList<>(); + if(!StringUtils.isBlank(htyjsmj)){ + Arrays.stream(htyjsmj.split(",")).forEach((item) -> { + DocManager docManager = new DocManager(); + docManager.setId(Util.getIntValue(item, -1)); + try { + docManager.copyDocForNoRightAndNoChangeStatus(); + int newdocid = docManager.getId(); + if(newdocid>0){ + list.add(Util.null2String(newdocid)); + } + }catch (Exception e){ + } + }); + } + return list; + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/sign/service/impl/ConstracSignServiceImpl.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/sign/service/impl/ConstracSignServiceImpl.java new file mode 100644 index 0000000..a675736 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/sign/service/impl/ConstracSignServiceImpl.java @@ -0,0 +1,73 @@ +package com.engine.htxc.workflow.create.business.contract.sign.service.impl; + +import cn.hutool.core.date.DateTime; +import com.engine.htxc.commonutil.workflow.WorkflowCreate; +import com.engine.htxc.workflow.create.business.contract.init.ContractWorkflowData; +import com.engine.htxc.workflow.create.cinterface.CustomizeWorkflow; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.interfaces.htsc.comInfo.PropBean; +import java.util.*; + + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName ConstractDiscardServiceImpl.java + * @createTime 2022年07月17日 19:59:00 + */ +public class ConstracSignServiceImpl extends ContractWorkflowData implements CustomizeWorkflow { + + private PropBean pb=new PropBean(); + + public ConstracSignServiceImpl(Map map) { + super(map); + } + + + @Override + public int create() { + String workflowid=Util.null2String(pb.getPropName("constract.sign.workflowid")); + if(StringUtils.isBlank(requestid) || StringUtils.isBlank(requestname)){ + return -101; + } + String creatorid=Util.null2String(map.get("creatorid")); + if(StringUtils.isBlank(creatorid)){ + return -102; + } + String requestnamevalue=requestname+"-"+DateTime.now().toString("yyyyMMdd"); + Map retmap=initdata(); + if(retmap==null || retmap.size()<=0){ + return -103; + } + WorkflowCreate workflowCreate= WorkflowCreate.createWorkflow(p->{ + p.setCreatorId(creatorid); + p.setWorkflowId(workflowid); + p.setRequestName(requestnamevalue); + p.setIsNextFlow(""); + p.setRequestMainMap(retmap); + }).workflowCreateByRequestMap(); + if(StringUtils.isBlank(workflowCreate.requestid)){ + return -1; + } + List> list4= getdetailtable(4,null); + List> list5 =getdetailtable(5,null); + String value= workflowCreate.workflowCreatelist("4",list4).workflowCreatelist("5",list5).requestid; + return Util.getIntValue(value,-100); + } + public Map initdata(){ + Mapmaintable=getmaintable(null); + Map retmap=new HashMap<>(2); + maintable.entrySet().forEach(p->{ + if(!StringUtils.isBlank(p.getKey()) && + !StringUtils.isBlank(Util.null2String(p.getValue())) ){ + retmap.put(p.getKey(),Util.null2String(p.getValue())); + } + }); + retmap.remove("id"); + retmap.remove("yzhqdcs"); + maintable.put("ngrq", DateTime.now().toString("yyyy-MM-dd hh:mm")); + return retmap; + } +} + diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/util/ContracrtBaseUtil.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/util/ContracrtBaseUtil.java new file mode 100644 index 0000000..4080036 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/util/ContracrtBaseUtil.java @@ -0,0 +1,84 @@ +package com.engine.htxc.workflow.create.business.contract.util; + +import java.util.*; +import java.util.stream.Collectors; + +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.integration.util.StringUtils; + +import weaver.general.Util; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName BaseUtil.java + * @createTime 2022年07月22日 14:59:00 + * @Remark + */ +public class ContracrtBaseUtil { + + private ContracrtBaseUtil() {} + + /** + * @title getrcontractdrafted + * @author K1810015 + * @updateTime 2022/7/22 15:01 + * @Remark 获取合同建木表qcr字段 + * @throws + */ + public static List getrcontractdrafted(Map map) { + List list = new ArrayList<>(); + if (map == null || map.size() <= 0) { + return list; + } + String htbh = Util.null2String(map.get("htbh")); + String htbb = Util.null2String(map.get("htbb")); + if (StringUtils.isBlank(htbh) || StringUtils.isBlank(htbb)) { + return list; + } + String sql = "select qcr from uf_htqc where htbh=? and dqbb=?"; + list.add(htbh); + list.add(htbb); + String value = new DbTools().getsqlonevalue(sql, list); + if (StringUtils.isBlank(value)) { + return list; + } + return Arrays.stream(value.split(",")).collect(Collectors.toList()); + } + + public static Map getufhtqcmap(Map map) { + Map mapvalue = new HashMap<>(1); + if (map == null || map.size() <= 0) { + return mapvalue; + } + String htbh = Util.null2String(map.get("htbh")); + String htbb = Util.null2String(map.get("htbb")); + if (StringUtils.isBlank(htbh) || StringUtils.isBlank(htbb)) { + return mapvalue; + } + Map wheremap = new HashMap<>(); + wheremap.put("htbh", htbh); + wheremap.put("dqbb", htbb); + mapvalue = new DbTools().gettabletomap("uf_htqc", wheremap); + if (mapvalue == null || mapvalue.size() <= 0) { + return mapvalue; + } + return mapvalue; + } + + public static Map getmodeltype(Map map) { + Map retmap=new HashMap<>(1); + if (map == null || map.size() <= 0) { + return retmap; + } + String type = Util.null2String(map.get("contracttype")); + if (StringUtils.isBlank(type)) { + return retmap; + } + + String sql = "select * from uf_htspckhtqcpzb where htfl=?"; + + retmap= new DbTools().getsqltomap(sql, type); + return retmap; + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/business/contract/util/ContractUpdateStatus.java b/src/main/java/com/engine/htxc/workflow/create/business/contract/util/ContractUpdateStatus.java new file mode 100644 index 0000000..2c2e7f5 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/business/contract/util/ContractUpdateStatus.java @@ -0,0 +1,346 @@ +package com.engine.htxc.workflow.create.business.contract.util; + +import static com.engine.htxc.workflow.create.business.contract.init.ContractSignType.CEwDeptEnd; +import static com.engine.htxc.workflow.create.business.contract.init.ContractSignType.CEwaitDeptEnd; +import static com.engine.htxc.workflow.create.business.contract.init.ContractType.*; + +import java.util.*; +import java.util.stream.Collectors; + +import com.engine.htxc.commonutil.db.DbTools; +import static com.engine.htxc.commonutil.type.DateEnum.ShortSuffix; +import com.engine.integration.util.StringUtils; + +import cn.hutool.core.date.DateTime; +import weaver.docs.docs.DocManager; +import weaver.general.Util; +import weaver.hrm.User; + +/** + *

+ * @author K1810015 + * @version 1.0.0 + * @ClassName ContractUpdateStatus.java + * @createTime 2022-08-15 19:43:00 + */ +public class ContractUpdateStatus { + + public String requestid=""; + + public String xzhtlb=""; + public String htbb=""; + + public User user; + + public String tablename=""; + public Map formtablemap=new HashMap<>(); + + + + + private String modetable=""; + private String modeid=""; + public Map modetablemap=new HashMap<>(); + + + private DbTools dbtools=new DbTools(); + + public ContractUpdateStatus(String requestid, String xzhtlb, String htbb, Map modetablemap, + User user) { + this.requestid = requestid; + this.xzhtlb = xzhtlb; + this.htbb = htbb; + this.user = user; + this.modetablemap = modetablemap; + } + public ContractUpdateStatus(String requestid, User user) { + this.requestid = requestid; + this.user = user; + } + + + + public void init() { + tablename = dbtools.getTableName(requestid); + formtablemap = dbtools.getRequestidToMap(requestid, null); + boolean flag= (StringUtils.isBlank(xzhtlb) || StringUtils.isBlank(htbb)) && modetablemap.size() <= 0 ; + if (flag) { + xzhtlb = Util.null2String(formtablemap.get("xzhtlb")); + htbb = Util.null2String(formtablemap.get("htbb")); + Map wheremap = new HashMap<>(2); + wheremap.put("htbh", xzhtlb); + wheremap.put("htbb", htbb); + if (!StringUtils.isBlank(xzhtlb) && !StringUtils.isBlank(htbb)) { + modetablemap = ContracrtBaseUtil.getufhtqcmap(wheremap); + if (modetablemap != null && modetablemap.size() >= 0) { + this.modeid = Util.null2String(modetablemap.get("id")); + } + } + + } else { + if (StringUtils.isBlank(modeid) && modetablemap.size() > 0) { + this.modeid = Util.null2String(modetablemap.get("id")); + } + } + modetable="uf_htqc"; + } + + /** + *

+ * @title ContractUpdateStatus + * @author K1810015 + * @createtime 2022/8/16 10:24 + * @throws + */ + public static ContractUpdateStatus createContractUpdateStatus(String requestid, String xzhtlb, String htbb, + Map map, User user) { + ContractUpdateStatus contractUpdateStatus = new ContractUpdateStatus(requestid, xzhtlb, htbb, map, user); + return contractUpdateStatus; + } + + public static ContractUpdateStatus createContractUpdateStatus(String requestid, User user) { + ContractUpdateStatus contractUpdateStatus = new ContractUpdateStatus(requestid, user); + return contractUpdateStatus; + } + + private List newFileIds(String htyjsmj){ + List list=new ArrayList<>(); + if(!StringUtils.isBlank(htyjsmj)){ + Arrays.stream(htyjsmj.split(",")).forEach((item) -> { + DocManager docManager = new DocManager(); + docManager.setId(Util.getIntValue(item, -1)); + try { + docManager.copyDocForNoRightAndNoChangeStatus(); + int newdocid = docManager.getId(); + if(newdocid>0){ + list.add(Util.null2String(newdocid)); + } + }catch (Exception e){ + } + }); + } + return list; + } + +//*****************************以下为业务************************** + + /** + *

废止流程办结之后操作

+ * @title Discardend + * @author K1810015 + * @updateTime 2022/8/16 14:23 + */ + public void approvalend(String newrequestid){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0){ + return ; + } + Map wheremap = new HashMap<>(1); + wheremap.put("id", modeid); + Map setmap = new HashMap<>(2); + setmap.put("zt", Util.null2String(ContractwaitSign.getValue())); + //合同审批流程发起关联到建模对应的字段 + setmap.put("glqsxx", initgllc("glqsxx",newrequestid)); + dbtools.updateSql(modetable, setmap, wheremap); + Map tablewheremap = new HashMap<>(1); + tablewheremap.put("requestid", requestid); + Map tablesetmap = new HashMap<>(1); + tablesetmap.put("lyjszt", "1"); + dbtools.updateSql(tablename, tablesetmap, tablewheremap); + } + + + /** + * @title signend + * @author K1810015 + * @updateTime 2022/8/16 14:22 + */ + public void signend(String newrequestid){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0){ + return ; + } + String czxz = Util.null2String(formtablemap.get("czxz")); + String htyjsmj = Util.null2String(formtablemap.get("htyjsmj")); + + Map wheremap = new HashMap<>(1); + wheremap.put("id", modeid); + Map setmap = new HashMap<>(1); + List htqsjlist=newFileIds(htyjsmj); + setmap.put("htqsj",Util.null2String(htqsjlist.stream().collect(Collectors.joining(",")))); + if("0".equals(czxz)){ + setmap.put("zt", Util.null2String(ContractDoneSign.getValue())); + setmap.put("yyjgdzt", Util.null2String(CEwaitDeptEnd.getValue())); + setmap.put("glgdxx",initgllc("glgdxx",newrequestid)); + }else if("1".equals(czxz)){ + setmap.put("zt", Util.null2String(ContractwaitSign.getValue())); + }else if("2".equals(czxz)){ + setmap.put("zt", Util.null2String(ContractDiscarding.getValue())); + setmap.put("glfzxx",initgllc("glfzxx",newrequestid)); + } + + dbtools.updateSql(modetable, setmap, wheremap); + List> insertlist = new ArrayList<>(); + List> modelist = dbtools.getRequestidToMapList(requestid, null, 5); + modelist.forEach((item) -> { + String dsfmc = Util.null2String(item.get("dsfmc")); + String htqsrq = Util.null2String(item.get("htqsrq")); + if (!StringUtils.isBlank(dsfmc)) { + Map insertmap = new HashMap<>(3); + insertmap.put("dsfmc", dsfmc); + insertmap.put("htqsrq", htqsrq); + insertmap.put("mainid", modeid); + insertlist.add(insertmap); + } + }); + if (insertlist.size() > 0) { + String modetabledt6 = modetable + "_dt6"; + Map deltemap = new HashMap<>(1); + deltemap.put("mainid", modeid); + dbtools.delete(modetabledt6, deltemap); + dbtools.insertAllSql(modetabledt6, insertlist); + } + } + + /** + *

废止流程办结之后操作

+ * @title Discardend + * @author K1810015 + * @updateTime 2022/8/16 14:23 + */ + public void discardend(){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0){ + return ; + } + String fzyy=Util.null2String(formtablemap.get("fzyy")); + Map wheremap=new HashMap<>(1); + wheremap.put("id",modeid); + Map setmap=new HashMap<>(4); + setmap.put("zt",Util.null2String(ContractDoneSignEnd.getValue())); + setmap.put("fzyy",Util.null2String(fzyy)); + setmap.put("fzrq", DateTime.now().toString(ShortSuffix.getValue())); + dbtools.updateSql(modetable,setmap,wheremap); + } + + + /** + *

归档流程办结

+ * @title Conventionend + * @author K1810015 + * @updateTime 2022/8/16 15:38 + */ + public void donewkend(String newrequestid){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0){ + return ; + } + Map wheremap=new HashMap<>(1); + wheremap.put("id",modeid); + Map setmap=new HashMap<>(7); + List htqsjlist=newFileIds(Util.null2String(formtablemap.get("htyjsmj"))); + setmap.put("htgdj",Util.null2String(htqsjlist.stream().collect(Collectors.joining(",")))); + setmap.put("zt",Util.null2String(Contractconvention.getValue())); + setmap.put("yyjgdzt",Util.null2String(CEwDeptEnd.getValue())); + setmap.put("gdbz",Util.null2String(formtablemap.get("gdbz"))); + setmap.put("jsgdrq",DateTime.now().toString(ShortSuffix.getValue())); + setmap.put("gllyxx",initgllc("gllyxx",newrequestid)); + dbtools.updateSql(modetable,setmap,wheremap); + } + + public ContractUpdateStatus modeupdatezt(int value){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0){ + return this; + } + Map wheremap=new HashMap<>(1); + wheremap.put("id",modeid); + Map setmap=new HashMap<>(1); + setmap.put("zt",Util.null2String(value)); + dbtools.updateSql(modetable,setmap,wheremap); + return this; + } + + public ContractUpdateStatus modeupdate(Map setmap){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0 || setmap==null || setmap.size()<=0){ + return this; + } + Map wheremap=new HashMap<>(1); + wheremap.put("id",modeid); + dbtools.updateSql(modetable,setmap,wheremap); + return this; + } + + public ContractUpdateStatus tableUpdateType(Map tablesetmap){ + init(); + if(tablesetmap==null || tablesetmap.isEmpty()){ + return this; + } + init(); + Map tablewheremap = new HashMap<>(1); + tablewheremap.put("requestid", requestid); + dbtools.updateSql(tablename, tablesetmap, tablewheremap); + return this; + + } + /** + *

履约流程办结

+ * @title Conventionend + * @author K1810015 + * @updateTime 2022/8/16 15:38 + */ + public void convertionend(){ + init(); + if(StringUtils.isBlank(requestid) || modetablemap.size()<=0 || formtablemap.size()<=0){ + return ; + } + Map wheremap=new HashMap<>(1); + + wheremap.put("id",modeid); + Map setmap=new HashMap<>(10); + setmap.put("htgdj",Util.null2String(formtablemap.get("sfymqlyrq"))); + setmap.put("lyks",Util.null2String(formtablemap.get("lyks"))); + setmap.put("lyjs",Util.null2String(formtablemap.get("lyjs"))); + setmap.put("lyjh",Util.null2String(formtablemap.get("lyjh"))); + setmap.put("mqyfje",Util.null2String(formtablemap.get("mqyfje"))); + setmap.put("htyfje",Util.null2String(formtablemap.get("htyfje"))); + setmap.put("fkqs",Util.null2String(formtablemap.get("fkqs"))); + setmap.put("jsgdrq",DateTime.now().toString(ShortSuffix.getValue())); + dbtools.updateSql(modetable,setmap,wheremap); + List> insertlist=new ArrayList<>(); + List> modelist=dbtools.getRequestidToMapList(requestid,null,5); + modelist.forEach((item)->{ + Map insertmap=new HashMap<>(5); + insertmap.put("fkbl",Util.null2String(item.get("fkbl"))); + insertmap.put("fkje",Util.null2String(item.get("fkje"))); + insertmap.put("fpje",Util.null2String(item.get("fpje"))); + insertmap.put("fksj",Util.null2String(item.get("fksj"))); + insertmap.put("mainid",modeid); + insertlist.add(insertmap); + }); + if(insertlist.size()>0){ + dbtools.insertAllSql(modetable+"_dt7",insertlist); + } + } + + public String initgllc(String oldkey,String newrequestid){ + if(modetablemap==null || modetablemap.size()<=0){ + init(); + } + String gllcvalue= Util.null2String(modetablemap.get(oldkey)); + if(StringUtils.isBlank(newrequestid)){ + return gllcvalue; + } + + if(StringUtils.isBlank(gllcvalue)){ + gllcvalue=newrequestid; + }else{ + gllcvalue+=","+newrequestid; + } + return gllcvalue; + } + + + +} diff --git a/src/main/java/com/engine/htxc/workflow/create/cinterface/CustomizeWorkflow.java b/src/main/java/com/engine/htxc/workflow/create/cinterface/CustomizeWorkflow.java new file mode 100644 index 0000000..e3fcb82 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/cinterface/CustomizeWorkflow.java @@ -0,0 +1,19 @@ +package com.engine.htxc.workflow.create.cinterface; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName CustomizeWorkflow.java + * @createTime 2022年07月15日 09:43:00 + * @Remark 自定义创建流程 + */ +public interface CustomizeWorkflow { + + /** + *

创建流程的接口

+ * @title create + * @author K1810015 + * @updateTime 2022/8/21 22:29 + */ + public int create(); +} diff --git a/src/main/java/com/engine/htxc/workflow/create/cnum/Converclasspage.java b/src/main/java/com/engine/htxc/workflow/create/cnum/Converclasspage.java new file mode 100644 index 0000000..a016a24 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/cnum/Converclasspage.java @@ -0,0 +1,23 @@ +package com.engine.htxc.workflow.create.cnum; +import static com.engine.htxc.workflow.create.cnum.Workflowenum.Other; + +/** + *

如果通过

+ * @author K1810015 + * @version 1.0.0 + * @ClassName Converclasspage.java + * @createTime 2022年07月17日 20:27:00 + */ +public class Converclasspage{ + + public Workflowenum selectClassPage(String unnumberkey){ + Workflowenum[] cworkflowTypes= Workflowenum.values(); + for (Workflowenum item:cworkflowTypes) { + if(unnumberkey.equals(item.getClassname())){ + return item; + } + } + return Other; + } + + } diff --git a/src/main/java/com/engine/htxc/workflow/create/cnum/CworkflowType.java b/src/main/java/com/engine/htxc/workflow/create/cnum/CworkflowType.java new file mode 100644 index 0000000..0034de0 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/cnum/CworkflowType.java @@ -0,0 +1,28 @@ +package com.engine.htxc.workflow.create.cnum; + +/** + *

用于调用方(枚举类型)集成

+ *

调用方参数存在classname、classpackage可用于重载该方法直接获取

+ * 也可以作为返回参数 + * @version 1.0.0 + * @ClassName CworkflowType.java + * @createTime 2022年07月17日 20:28:00 + */ +public interface CworkflowType { + + /** + *

用于继承方调用classname参数

+ * @title getClassname + * @author K1810015 + * @updateTime 2022/8/21 23:11 + */ + public String getClassname(); + + /** + *

用于继承方调用classpackage方法

+ * @title getClasspackage + * @author K1810015 + * @updateTime 2022/8/21 23:11 + */ + public String getClasspackage(); +} diff --git a/src/main/java/com/engine/htxc/workflow/create/cnum/Workflowenum.java b/src/main/java/com/engine/htxc/workflow/create/cnum/Workflowenum.java new file mode 100644 index 0000000..c28093d --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/cnum/Workflowenum.java @@ -0,0 +1,38 @@ +package com.engine.htxc.workflow.create.cnum; + +/** + *

流程相关的创建方法的集合

+ * 通过CustomizeworkflowServiceImpl这个方法调用 + * 在此枚举中添加对应key->value,通过唯一标识来获取自定义的创建流程接口 + * @author K1810015 + * @version 1.0.0 + * @ClassName workflowenum.java + * @createTime 2022年07月15日 17:23:00 + */ +public enum Workflowenum implements CworkflowType { + + ContractEnd("zbhtgd","com.engine.htxc.workflow.create.business.contract.end.service.impl.ConstractEndServiceImpl"), + ContractDiscard("zbhtfq","com.engine.htxc.workflow.create.business.contract.end.service.impl.ConstractDiscardServiceImpl"), + ContractSign("zbhtqd","com.engine.htxc.workflow.create.business.contract.sign.service.impl.ConstracSignServiceImpl"), + Approvaltosign("approvaltosign","com.engine.htxc.workflow.create.business.contract.approval.service.impl.Approvaltosign"), + Convention("convention","com.engine.htxc.workflow.create.business.contract.convention.service.impl.ConventionserviceImpl"), + Endtosign("endtosign","com.engine.htxc.workflow.create.business.contract.approval.service.impl.Endtosign"), + Other("-1",""); + private final String classname; + private final String classpackage; + + private Workflowenum(final String classname, final String classpackage) { + this.classname = classname; + this.classpackage = classpackage; + } + + @Override + public String getClassname() { + return classname; + } + + @Override + public String getClasspackage() { + return classpackage; + } +} diff --git a/src/main/java/com/engine/htxc/workflow/create/service/CustomizeworkflowService.java b/src/main/java/com/engine/htxc/workflow/create/service/CustomizeworkflowService.java new file mode 100644 index 0000000..427e6e5 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/service/CustomizeworkflowService.java @@ -0,0 +1,23 @@ +package com.engine.htxc.workflow.create.service; + +import weaver.hrm.User; +import java.util.Map; + +/** + *

合同归档流程相关工具service层

+ * @author K1810015 + * @version 1.0.0 + * @ClassName CustomizeworkflowServiceImpl.java + * @createTime 2022年07月15日 09:47:00 + */ +public interface CustomizeworkflowService { + + /** + *

创建合同归档流程

+ * @title CreateContractEnd + * @author K1810015 + * @updateTime 2022/7/15 9:55 + * @throws + */ + public int createContractEnd(Map map, User user); +} diff --git a/src/main/java/com/engine/htxc/workflow/create/service/impl/CustomizeworkflowServiceImpl.java b/src/main/java/com/engine/htxc/workflow/create/service/impl/CustomizeworkflowServiceImpl.java new file mode 100644 index 0000000..0ead085 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/create/service/impl/CustomizeworkflowServiceImpl.java @@ -0,0 +1,43 @@ +package com.engine.htxc.workflow.create.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.workflow.create.cnum.Converclasspage; +import com.engine.htxc.workflow.create.cnum.Workflowenum; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import java.lang.reflect.Method; +import java.util.Map; + +/** + * @author K1810015 + * @version 1.0.0 + * @ClassName CustomizeworkflowService.java + * @createTime 2022年07月15日 09:50:00 + */ +public class CustomizeworkflowServiceImpl extends Service implements com.engine.htxc.workflow.create.service.CustomizeworkflowService { + + @Override + public int createContractEnd(Map map, User user) { + String unkey= Util.null2String(map.get("unkey")); + map.put("creatorid",user.getUID()); + Converclasspage converclasspage=new Converclasspage(); + Workflowenum workflowenum=converclasspage.selectClassPage(unkey); + if(workflowenum==null || StringUtils.isBlank(workflowenum.getClassname()) || "-1".equals(workflowenum.getClassname())){ + return -1; + } + try { + String pagevalue = workflowenum.getClasspackage(); + Class classvalue = Class.forName(pagevalue); + Object ob= classvalue.getConstructor(Map.class).newInstance(map); + Method m = classvalue.getMethod("create"); + Integer internum= (Integer) m.invoke(ob); + return internum; + }catch (Exception e){ + return -1; + } + + } + + +} diff --git a/src/main/java/com/engine/htxc/workflow/select/service/WorkflowSelectService.java b/src/main/java/com/engine/htxc/workflow/select/service/WorkflowSelectService.java new file mode 100644 index 0000000..4b42fb5 --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/select/service/WorkflowSelectService.java @@ -0,0 +1,22 @@ +package com.engine.htxc.workflow.select.service; + +import java.util.Map; + +/** + *

提供流程查询的方法

+ * @author K1810015 + * @version 1.0.0 + * @ClassName WorkflowselectService.java + * @createTime 2022-08-15 09:56:00 + */ +public interface WorkflowSelectService { + + /** + *

获取自由节点是否送过

+ * @title getnodeflag + * @author K1810015 + * @updateTime 2022/8/21 22:35 + */ + public boolean getnodeflag(Map map); + +} diff --git a/src/main/java/com/engine/htxc/workflow/select/service/impl/WorkflowSelectServiceImpl.java b/src/main/java/com/engine/htxc/workflow/select/service/impl/WorkflowSelectServiceImpl.java new file mode 100644 index 0000000..2b2eb5e --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/select/service/impl/WorkflowSelectServiceImpl.java @@ -0,0 +1,59 @@ +package com.engine.htxc.workflow.select.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.commonutil.db.DbTools; +import com.engine.htxc.workflow.select.service.WorkflowSelectService; +import com.engine.integration.util.StringUtils; +import weaver.general.Util; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

流程查询修改

+ * @author K1810015 + * @version 1.0.0 + * @ClassName WorkflowselectService.java + * @createTime 2022-08-15 09:56:00 + */ +public class WorkflowSelectServiceImpl extends Service implements WorkflowSelectService { + + private DbTools dbTools=new DbTools(); + + @Override + public boolean getnodeflag(Map map) { + String requestid= Util.null2String(map.get("requestid")); + String nodenumber= Util.null2String(map.get("nodenumber")); + String isfreenode=Util.null2String(map.get("isfreenode")); + String deptid=Util.null2String(map.get("deptid")); + String userid=Util.null2String(map.get("userid")); + if(StringUtils.isBlank(requestid) || StringUtils.isBlank(nodenumber)){ + return false; + } + String nodeid= dbTools.getNodeunnumberToid(nodenumber); + + if(StringUtils.isBlank(nodeid)){ + return false; + } + + String sql=" select * from workflow_requestlog where 1=1 and requestid=? "; + if(!StringUtils.isBlank(deptid)){ + sql+=" and operatordept in ("+ Arrays.stream(deptid.split(",")).collect(Collectors.joining(","))+") "; + } + if(!StringUtils.isBlank(userid)){ + sql+=" and operator in ( select id from hrmresource where workcode in ( select workcode from hrmresource where id in ("+userid+") ) )"; + } + if(StringUtils.isBlank(isfreenode)){ + sql+=" and nodeid<0"; + }else { + sql+=" and nodeid='"+nodeid+"'"; + } + List> listmap= dbTools.getSqlToList(sql,requestid); + if(listmap!=null && listmap.size()>0){ + return true; + } + return false; + } +} diff --git a/src/main/java/com/engine/htxc/workflow/select/web/WorkflowSelectAction.java b/src/main/java/com/engine/htxc/workflow/select/web/WorkflowSelectAction.java new file mode 100644 index 0000000..730fa3c --- /dev/null +++ b/src/main/java/com/engine/htxc/workflow/select/web/WorkflowSelectAction.java @@ -0,0 +1,40 @@ +package com.engine.htxc.workflow.select.web; + +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.commonutil.log.CustomizeLog; +import com.engine.htxc.commonutil.ret.Creturn; +import com.engine.htxc.workflow.select.service.WorkflowSelectService; +import com.engine.htxc.workflow.select.service.impl.WorkflowSelectServiceImpl; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + *

流程查询的result接口入口

+ * @author K1810015 + * @version 1.0.0 + * @ClassName WorkflowselectAction.java + * @createTime 2022-08-15 09:56:00 + */ +public class WorkflowSelectAction { + + private WorkflowSelectService workflowSelectService= + ServiceUtil.getService(WorkflowSelectServiceImpl.class); + + @POST + @Path("/getnodeflag") + @Produces({MediaType.TEXT_PLAIN}) + public String getnodeflag(@Context HttpServletRequest request, @Context HttpServletResponse response) { + CustomizeLog.printLog("查看参数̬"+ParamUtil.request2Map(request).toString()); + boolean flag= workflowSelectService.getnodeflag( ParamUtil.request2Map(request)); + return Creturn.Ok(flag); + + } + + +} diff --git a/src/main/java/com/engine/htxc/zbhb/cmd/ZbhbFreeNodeCmd.java b/src/main/java/com/engine/htxc/zbhb/cmd/ZbhbFreeNodeCmd.java new file mode 100644 index 0000000..1854b40 --- /dev/null +++ b/src/main/java/com/engine/htxc/zbhb/cmd/ZbhbFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.zbhb.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class ZbhbFreeNodeCmd extends AbstractCommonCommand> { + + public ZbhbFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/zbhb/service/ZbhbService.java b/src/main/java/com/engine/htxc/zbhb/service/ZbhbService.java new file mode 100644 index 0000000..b4118a7 --- /dev/null +++ b/src/main/java/com/engine/htxc/zbhb/service/ZbhbService.java @@ -0,0 +1,13 @@ +package com.engine.htxc.zbhb.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface ZbhbService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + + Map getTzydry(Map param); +} diff --git a/src/main/java/com/engine/htxc/zbhb/service/impl/ZbhbServiceImpl.java b/src/main/java/com/engine/htxc/zbhb/service/impl/ZbhbServiceImpl.java new file mode 100644 index 0000000..cf27cfb --- /dev/null +++ b/src/main/java/com/engine/htxc/zbhb/service/impl/ZbhbServiceImpl.java @@ -0,0 +1,77 @@ +package com.engine.htxc.zbhb.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.zbhb.cmd.ZbhbFreeNodeCmd; +import com.engine.htxc.zbhb.service.ZbhbService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class ZbhbServiceImpl extends Service implements ZbhbService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new ZbhbFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + BaseBean bb = new BaseBean(); + String requestid = (String)param.get("requestid"); + JAVATools.writelog("招标汇报requestid"+requestid); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'zbhb')) and unnumber = 'zbhb_ldsp'"; + JAVATools.writelog("招标汇报workSql"+workSql); + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + bb.writeLog("招标汇报sql"+sql); + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/zbhb/web/ZbhbAction.java b/src/main/java/com/engine/htxc/zbhb/web/ZbhbAction.java new file mode 100644 index 0000000..78e7512 --- /dev/null +++ b/src/main/java/com/engine/htxc/zbhb/web/ZbhbAction.java @@ -0,0 +1,98 @@ +package com.engine.htxc.zbhb.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.zbhb.service.ZbhbService; +import com.engine.htxc.zbhb.service.impl.ZbhbServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class ZbhbAction { + + private ZbhbService getService(){ + return ServiceUtil.getService(ZbhbServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} diff --git a/src/main/java/com/engine/htxc/zbqs/cmd/ZbqsFreeNodeCmd.java b/src/main/java/com/engine/htxc/zbqs/cmd/ZbqsFreeNodeCmd.java new file mode 100644 index 0000000..897bbdb --- /dev/null +++ b/src/main/java/com/engine/htxc/zbqs/cmd/ZbqsFreeNodeCmd.java @@ -0,0 +1,250 @@ +package com.engine.htxc.zbqs.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.ServiceUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.workflow.service.RequestFreeFlowService; +import com.engine.workflow.service.impl.RequestFreeFlowServiceImpl; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.htsc.comInfo.PropBean; + +import java.util.HashMap; +import java.util.Map; + +public class ZbqsFreeNodeCmd extends AbstractCommonCommand> { + + public ZbqsFreeNodeCmd(User user, Map params) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + DepartmentComInfo departmentComInfo = null; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog( "in=================ItlxlcFreeNodeCmd" ); + Map apimap = new HashMap(); + try{ + PropBean pb = new PropBean(); + departmentComInfo = new DepartmentComInfo(); + int requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid"))); + int nodeid = Util.getIntValue(Util.null2String(params.get("nodeid"))); + + int xybzvalue = Util.getIntValue(Util.null2String(params.get("xybzvalue"))); + String jdfl = ""; + if (xybzvalue == 0) { + jdfl = "6"; + } else if (xybzvalue == 1) { + jdfl = "11"; + } + + String jsonArr = Util.null2String(Util.null2String(params.get("jsonArr"))); + bb.writeLog("jsonArr:"+jsonArr); + JSONArray jsonArray = JSONArray.parseArray( jsonArr ); + JSONObject freeNode = new JSONObject(); + JSONArray nodeData = new JSONArray(); + String bmfzrs = ""; + String zdrys = ""; + for (int i = 0; i < jsonArray.size(); i++) { + String hqbmvalue = Util.null2String( jsonArray.getJSONObject( i ).get( "hqbmvalue" ) ); + String zdry = Util.null2String( jsonArray.getJSONObject( i ).get( "zdry" ) ); + String bmfzr = Util.null2String( jsonArray.getJSONObject( i ).get( "bmfzr" ) ); + bb.writeLog("zdry:"+zdry); + bb.writeLog("bmfzr:"+bmfzr); + String sfhq = Util.null2String( jsonArray.getJSONObject( i ).get( "sfhq" ) ); + if ("1".equals( sfhq )) { + JSONArray nodeArray = new JSONArray(); + if (!"".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); //会签方式,(0:非会签、1:会签、2:依次逐个签) //20201226 + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); //会签方式,(0:非会签、1:会签、2:依次逐个签) + } + + nodeArray.add( nodeDataJson1 ); + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue == 0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + + } else if (!"".equals( zdry ) && "".equals( bmfzr )) { + JSONObject nodeDataJson1 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson1.put( "nodename", "指定人员" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", 1 ); + } + if(xybzvalue==1){ + nodeDataJson1.put( "nodename", "跨公司会签" ); + nodeDataJson1.put( "operators", zdry ); + nodeDataJson1.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeArray.add( nodeDataJson1 ); + + } else if ("".equals( zdry ) && !"".equals( bmfzr )) { + JSONObject nodeDataJson2 = new JSONObject(); + if(xybzvalue==0){ + nodeDataJson2.put( "nodename", "会签部门负责人" ); + String deptcode = departmentComInfo.getDepartmentCode(hqbmvalue); + bb.writeLog("deptcode:"+deptcode); + // ZZ001014 + if("ZZ001014".equals(deptcode)){ + nodeDataJson2.put( "signType", "0" ); //20201226 + }else{ + nodeDataJson2.put( "signType", "1" ); //20201226 + } + } + + if(xybzvalue==1){ + nodeDataJson2.put( "nodename", "跨公司会签" ); + nodeDataJson2.put( "signType", Util.getIntValue( sfhq ) ); + } + nodeDataJson2.put( "operators", bmfzr ); + nodeArray.add( nodeDataJson2 ); + } + nodeData.add( nodeArray ); + freeNode.put( "nodeData", nodeData ); + freeNode.put( "mergeType", 1 ); //合并方式,(1:按比例方式通过,2:按分支数通过) + freeNode.put( "mergeValue", 100 ); + bmfzrs += bmfzrs == "" ? "'" + bmfzr + "'" + "" : "," + "'" + bmfzr + "'"; + zdrys += zdrys == "" ? "'" + zdry + "'" + "" : "," + "'" + zdry + "'"; + } + } + + int userid = user.getUID(); + // 自由节点参数 + Map params = new HashMap(); + params.put( "requestid", requestid ); + params.put( "nodeid", nodeid ); + params.put( "workflowid", workflowid ); + params.put( "nodetype", 2 ); + params.put( "nextNodeEditPurview", 2 ); + params.put( "allowModify", 1 ); + params.put( "isFlowToNext", 0 ); + params.put( "isAddToParentGroup", 1 ); + params.put( "isParallel", 0 ); + params.put( "freeNodeData", freeNode ); + if (freeNode.size() > 0) { + bb.writeLog( "=================params:" + params.toString() ); + + //生产自由节点 + RequestFreeFlowService freeFlowService = ServiceUtil.getService( RequestFreeFlowServiceImpl.class, user ); + freeFlowService.generateFreeNode( params ); + int formmodeid = 0 ; + rs.executeQuery( "select m.id from modeinfo m left join WORKFLOW_BILL b on m.formid = b.id where b.tablename = 'uf_qzyjhqb'" ); + if(rs.next()){ + formmodeid = Util.getIntValue( rs.getString( "id" ) ); + } + + + String freenode = ""; + rs.executeQuery( "select id from workflow_freenode where requestid ='" + requestid + "'" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + freenode += freenode==""? id : ","+id ;//自由节点 + } + + String ufFreenode = ""; + rs.executeQuery( " select freenode as id from uf_qzyjhqb where lcid ='" + requestid + "'" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + ufFreenode += ufFreenode==""? id : ","+id ;//自由节点 + } + + String bmfzrNode= ""; + String zdryNode= ""; + if(!"".equals(bmfzrs)){ + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+bmfzrs+")" ); + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + bmfzrNode += bmfzrNode ==""? id : ","+id ;//自由节点 + } + } + if(!"".equals(zdrys)) + { + rs.executeQuery( " select id from workflow_freenode where requestid ='" + requestid + "' and to_char(operatorids) in ("+zdrys+")" ); + while (rs.next()) { + String id = Util.null2String(rs.getString("id")); + zdryNode += zdryNode ==""? id : ","+id ;//自由节点 + } + } + bb.writeLog( "=================freenode:" + freenode + ",freenode1:" + ufFreenode ); + String str = equestStr( freenode, ufFreenode ); + boolean flag = rs.executeUpdate( "insert into uf_qzyjhqb(lcid,jdfl,freenode,formmodeid,bmfzr,zdry) values('" + requestid + "','" + jdfl + "','" + str + "','" + formmodeid + "','"+bmfzrNode+"','"+zdryNode+"')" ); + if(flag){ + rs.executeQuery( "select id from uf_qzyjhqb where requestid='" + requestid + "'" ); + while (rs.next()) + { + int id = Util.getIntValue(rs.getString( "id" ) ); + ModeRightInfo moderight = new ModeRightInfo(); + moderight.editModeDataShare( userid, formmodeid, id ); + } + apimap.put("flag",true); + } + }else { + apimap.put("flag",false); + } + + }catch (Exception e){ + + } + return apimap; + } + + /*** + * + * @param str1 + * @param str2 + * @return + */ + public static String equestStr(String str1, String str2) + { + StringBuilder sb = new StringBuilder(); + String[] strings = str1.split( "," ); + for (String s : strings) { + if (!str2.contains( s )) { + sb.append( s + "," ); + } + } + String str = sb.substring( 0, sb.length() - 1 ).toString(); + return str; + } + +} diff --git a/src/main/java/com/engine/htxc/zbqs/service/ZbqsService.java b/src/main/java/com/engine/htxc/zbqs/service/ZbqsService.java new file mode 100644 index 0000000..607a767 --- /dev/null +++ b/src/main/java/com/engine/htxc/zbqs/service/ZbqsService.java @@ -0,0 +1,12 @@ +package com.engine.htxc.zbqs.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface ZbqsService { + Map createFreeNode(User user, Map params); + + Map judgeLdsp(Map param); + Map getTzydry(Map param); +} diff --git a/src/main/java/com/engine/htxc/zbqs/service/impl/ZbqsServiceImpl.java b/src/main/java/com/engine/htxc/zbqs/service/impl/ZbqsServiceImpl.java new file mode 100644 index 0000000..c64c9ec --- /dev/null +++ b/src/main/java/com/engine/htxc/zbqs/service/impl/ZbqsServiceImpl.java @@ -0,0 +1,70 @@ +package com.engine.htxc.zbqs.service.impl; + +import com.engine.core.impl.Service; +import com.engine.htxc.zbqs.cmd.ZbqsFreeNodeCmd; +import com.engine.htxc.zbqs.service.ZbqsService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class ZbqsServiceImpl extends Service implements ZbqsService { + @Override + public Map createFreeNode(User user, Map params) { + return commandExecutor.execute(new ZbqsFreeNodeCmd(user,params)); + } + + @Override + public Map judgeLdsp(Map param) { + String requestid = (String)param.get("requestid"); + HashMap map = new HashMap<>(); + RecordSet rs = new RecordSet(); + String workSql = "select id from workflow_nodebase where id in (select nodeid from workflow_flownode where workflowid = (select id from workflow_base where unnumber = 'zbqs')) and unnumber = 'zbqs_ldsp'"; + rs.execute(workSql); + if(rs.next()){ + String nodeid = rs.getString("id"); + String sql = "select * from workflow_requestlog where requestid = "+requestid+" and nodeid = "+nodeid; + rs.execute(sql); + if(rs.next()){ + map.put("data",true); + }else{ + map.put("data",false); + } + } + + return map; + } + @Override + public Map getTzydry(Map param) { + + HashMap result = new HashMap<>(); + String jmid = (String)param.get("jmid"); + ArrayList ids = new ArrayList<>(); + ArrayList> specialobj = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if(StringUtils.isNotBlank(jmid)){ + String ufSql ="select xmfzr from uf_cgxq where id =" + jmid; + rs.execute(ufSql); + if(rs.next()){ + String xmfzr = rs.getString("xmfzr"); + String hrmSql = "select id,lastname from hrmresource where id in ("+xmfzr+")"; + rs.execute(hrmSql); + while(rs.next()){ + String id = rs.getString("id"); + String lastname = rs.getString("lastname"); + HashMap map = new HashMap<>(); + map.put("id",id); + map.put("name",lastname); + ids.add(id); + specialobj.add(map); + } + } + result.put("value",ids); + result.put("specialobj",specialobj); + } + return result; + } +} diff --git a/src/main/java/com/engine/htxc/zbqs/web/ZbqsAction.java b/src/main/java/com/engine/htxc/zbqs/web/ZbqsAction.java new file mode 100644 index 0000000..db099ea --- /dev/null +++ b/src/main/java/com/engine/htxc/zbqs/web/ZbqsAction.java @@ -0,0 +1,97 @@ +package com.engine.htxc.zbqs.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.htxc.zbqs.service.ZbqsService; +import com.engine.htxc.zbqs.service.impl.ZbqsServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.htsc.GlobatTools.JAVATools; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class ZbqsAction { + + private ZbqsService getService(){ + return ServiceUtil.getService(ZbqsServiceImpl.class); + } + + @POST + @Path("/createFreeNode") + @Produces({MediaType.TEXT_PLAIN}) + public String createFreeNode(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().createFreeNode(user,param); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 送办结之前校验送过公司领导,否则限制提交 + * @param request + * @param response + * @return + */ + @GET + @Path("/judgeLdsp") + @Produces({MediaType.TEXT_PLAIN}) + public String judgeLdsp(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + apidatas = getService().judgeLdsp(param); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + /** + * 这个接口是用来获取采购项目跳转过来的通知阅读人员,添加到页面通知阅读人员 + * @param request + * @param response + * @return + */ + @GET + @Path("/getTzydry") + @Produces({MediaType.TEXT_PLAIN}) + public String getTzydry(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser( request, response ); + Map param = ParamUtil.request2Map(request); + JAVATools.writelog("招标汇报requestid="+param.get("requestid")); + Map result = getService().getTzydry(param); + apidatas.put("data",result); + apidatas.put("code",200); + apidatas.put("msg","success"); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("code",500); + apidatas.put("msg",e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +}