diff --git a/com/Client.java b/com/Client.java index 4e524d9..2d7ac57 100644 --- a/com/Client.java +++ b/com/Client.java @@ -2,12 +2,9 @@ package com; -import com.engine.util.XMLUtils; - import java.io.*; import java.net.Socket; import java.nio.charset.StandardCharsets; -import java.util.Map; public class Client { // public static final int port = 8090; diff --git a/com/api/tjbk/TJBKAvatarWeb.java b/com/api/tjbk/TJBKAvatarWeb.java index 46fca44..8ce6f05 100644 --- a/com/api/tjbk/TJBKAvatarWeb.java +++ b/com/api/tjbk/TJBKAvatarWeb.java @@ -9,7 +9,7 @@ import com.engine.web.Avatar.Avatar; import javax.ws.rs.Path; -@Path("/avatar") +// @Path("/avatar") public class TJBKAvatarWeb extends Avatar { } diff --git a/com/api/tjbk/TJBKYearReport.java b/com/api/tjbk/TJBKYearReport.java index 773d7bf..8434139 100644 --- a/com/api/tjbk/TJBKYearReport.java +++ b/com/api/tjbk/TJBKYearReport.java @@ -47,9 +47,9 @@ public class TJBKYearReport { // return JSONObject.toJSONString(new Result(500,"人员id为空")); // } String sql = "select * from uf_personreport where ry = ? and nd = ? order by id desc"; - LocalDate now = LocalDate.now(); - int year = now.getYear(); - recordSet.executeQuery(sql,userId,year); + // LocalDate now = LocalDate.now(); + // int year = now.getYear(); + recordSet.executeQuery(sql,userId,2023); HashMap firstMap = new HashMap<>(); String inputDateStr = "2023-08-07"; @@ -99,12 +99,14 @@ public class TJBKYearReport { sixthMap.put("qnljclgw",Util.null2String(recordSet.getString("qnljclgw"))); sixthMap.put("cgbl",Util.null2String(recordSet.getString("cgbl"))); sixthMap.put("dycclgwrq",Util.null2String(recordSet.getString("dycclgwrq"))); + sixthMap.put("clgwzwrq",Util.null2String(recordSet.getString("clgwzwrq"))); seventhMap.put("ljsyslcs",Util.null2String(recordSet.getString("ljsyslcs"))); seventhMap.put("qgzydf",Util.null2String(recordSet.getString("qgzydf"))); seventhMap.put("swsplcgs",Util.null2String(recordSet.getString("swsplcgs"))); seventhMap.put("nddjlzgyy",Util.null2String(recordSet.getString("nddjlzgyy"))); seventhMap.put("ljdjcs",Util.null2String(recordSet.getString("ljdjcs"))); seventhMap.put("zaydyy",Util.null2String(recordSet.getString("zaydyy"))); + seventhMap.put("ljsycs",Util.null2String(recordSet.getString("ljsycs"))); eighthMap.put("pjmrzxrs",Util.null2String(recordSet.getString("pjmrzxrs"))); eighthMap.put("pjmrzxrszb",Util.null2String(recordSet.getString("pjmrzxrszb"))); eighthMap.put("ljdloacs",Util.null2String(recordSet.getString("ljdloacs"))); diff --git a/com/customization/ProxyRequestForm/ProxyRequestFormServiceImpl.java b/com/customization/ProxyRequestForm/ProxyRequestFormServiceImpl.java new file mode 100644 index 0000000..e4da263 --- /dev/null +++ b/com/customization/ProxyRequestForm/ProxyRequestFormServiceImpl.java @@ -0,0 +1,413 @@ +package com.customization.ProxyRequestForm; + +import com.alibaba.fastjson.JSONObject; +import com.engine.core.cfg.annotation.CommandDynamicProxy; +import com.engine.core.cfg.annotation.ServiceDynamicProxy; +import com.engine.core.cfg.annotation.ServiceMethodDynamicProxy; +import com.engine.core.impl.aop.AbstractServiceProxy; +import com.engine.core.interceptor.AbstractCommandProxy; +import com.engine.core.interceptor.Command; +import com.engine.workflow.cmd.requestForm.GetRightMenuCmd; +import com.engine.workflow.constant.menu.SystemMenuType; +import com.engine.workflow.constant.requestForm.RequestMenuType; +import com.engine.workflow.entity.requestForm.AutoApproveEntity; +import com.engine.workflow.entity.requestForm.RightMenu; +import com.engine.workflow.service.RequestFormService; +import com.engine.workflow.service.RequestService; +import com.engine.workflow.service.impl.RequestFormServiceImpl; +import com.wbi.util.ParamUtil; +import lombok.extern.log4j.Log4j; +import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.systeminfo.SystemEnv; +import weaver.workflow.request.RequestManager; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + *
+ * @author han.mengyu
+ * @version 1.0
+ * @createDate 2021/12/29
+ */ +@ServiceDynamicProxy(target = RequestFormServiceImpl.class, desc = "移动端小号拦截小红点") +@Slf4j +public class ProxyRequestFormServiceImpl extends AbstractServiceProxy implements RequestFormService { + + + @Override + @ServiceMethodDynamicProxy(desc="移动端小号拦截小红点") + public Map updateReqInfo(HttpServletRequest httpServletRequest) { + + String loginidweaver = getCookie(httpServletRequest, "loginidweaver"); + log.info("loginidweaver==>{}",loginidweaver); + Map paramMap = ParamUtil.request2Map(httpServletRequest); + log.info("paramMap==>{}",paramMap); + //此id为小号//不请求已读接口 + if(loginidweaver.length() == 8 && "1".equals(paramMap.get("ismobile"))){ + return null; + }else { + executeMethod(httpServletRequest); + } + return null; + } + + private String getCookie(HttpServletRequest request,String name){ + try { + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if(name.equals(cookie.getName())){ + return Util.null2String(cookie.getValue()); + } + } + } + }catch (Exception e){ + log.error("getCookieError:{}",e.getMessage()); + e.printStackTrace(); + } + return ""; + } + + @Override + public Map judgeCreateRight(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public String loadForm(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public String loadPreView(Map map) { + return null; + } + + @Override + public Map loadDetailData(Map map) { + return null; + } + + @Override + public Map saveDetailPaging(Map map) { + return null; + } + + @Override + public Map copyCustomPageFile(String s) { + return null; + } + + + + @Override + public Map getLinkageResult(HttpServletRequest httpServletRequest, String s) { + return null; + } + + @Override + public Map getRightMenu(HttpServletRequest httpServletRequest, Map map) { + return null; + } + + @Override + public Map getStatusData(Map map) { + return null; + } + + @Override + public Map getStatusCount(Map map) { + return null; + } + + @Override + public Map getResourcesKey(Map map) { + return null; + } + + @Override + public Map getModifyLog(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map requestBatchSubmit(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map judgeRejectWay(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getRejectOption(Map map) { + return null; + } + + @Override + public Map requestSubmit(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map forwardSubmit(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map requestWithdraw(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map remarkSubmit(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map functionManage(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) { + return null; + } + + @Override + public Map triggerSubWf(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map uploadFile(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + return null; + } + + @Override + public Map getFileFieldObj(Map map) { + return null; + } + + @Override + public Map createWfCode(Map map) { + return null; + } + + @Override + public Map getWfCodeFieldValue(Map map) { + return null; + } + + @Override + public Map requestImport(Map map) { + return null; + } + + @Override + public Map requestDetailImport(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map chooseExceptionOperator(Map map) { + return null; + } + + @Override + public Map overTimeSetting(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getPrintLogBase(Map map) { + return null; + } + + @Override + public Map getPrintLogData(Map map) { + return null; + } + + @Override + public Map freeFlowRead(Map map) { + return null; + } + + @Override + public Map freeFlowSave(Map map) { + return null; + } + + @Override + public Map editLockOper(Map map) { + return null; + } + + @Override + public Map loadPrintTemplates(Map map) { + return null; + } + + @Override + public Map doEvalExpression(Map map) { + return null; + } + + @Override + public Map generatePrintLog(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getForwardDatas(Map map) { + return null; + } + + @Override + public Map doBack(Map map) { + return null; + } + + @Override + public Map getFormTab(Map map) { + return null; + } + + @Override + public Map getSelectNextFlowCondition(Map map) { + return null; + } + + @Override + public Map getSelectNextFlowNodes(Map map) { + return null; + } + + @Override + public Map getRemindData(Map map) { + return null; + } + + @Override + public Map judgeRequestIsValid(Map map) { + return null; + } + + @Override + public Map takeBack(Map map) { + return null; + } + + @Override + public Map getCustomOperation(Map map) { + return null; + } + + @Override + public Map runCustomOperationAction(Map map) { + return null; + } + + @Override + public Map JudgeAutoApprove(AutoApproveEntity autoApproveEntity) { + return null; + } + + @Override + public Map delApproveLog(AutoApproveEntity autoApproveEntity) { + return null; + } + + @Override + public Map verifyRequestForView(Map map) { + return null; + } + + @Override + public Map doTakEnd(HttpServletRequest httpServletRequest, Map map) { + return null; + } + + @Override + public Map importFieldLinkageCfg(Map map) { + return null; + } + + @Override + public Map importFormulaCfg(Map map) { + return null; + } + + @Override + public Map getDetailDataKeyId(Map map) { + return null; + } + + @Override + public Map judgeWorkflowPenetrate(AutoApproveEntity autoApproveEntity, RequestManager requestManager) { + return null; + } + + @Override + public Map getThPreviewUrl(Map map) { + return null; + } + + @Override + public Map getThMouldList(Map map) { + return null; + } + + @Override + public Map getDetailExpSet(Map map) { + return null; + } + + @Override + public Map saveDetailExpSet(Map map) { + return null; + } + + @Override + public Map exportFieldSet(Map map) { + return null; + } + + @Override + public Map getNextNodeContent(Map map) { + return null; + } + + @Override + public Map delRequestVerify(Map map) { + return null; + } + + @Override + public Map getFreeNodeBrowserItem(Map map) { + return null; + } + + @Override + public Map saveFreeNodeFormConfig(Map map) { + return null; + } + + @Override + public Map conformCheck(Map map) { + return null; + } + + @Override + public Map getDetailByRequestId(Map map) { + return null; + } +} diff --git a/com/customization/customWf/impl/UpdateReqInfoApiProxy.java b/com/customization/customWf/impl/UpdateReqInfoApiProxy.java new file mode 100644 index 0000000..86be99f --- /dev/null +++ b/com/customization/customWf/impl/UpdateReqInfoApiProxy.java @@ -0,0 +1,53 @@ +package com.customization.customWf.impl; + +import com.engine.core.cfg.annotation.CommandDynamicProxy; +import com.engine.core.interceptor.AbstractCommandProxy; +import com.engine.core.interceptor.Command; +import com.engine.workflow.cmd.requestForm.UpdateReqInfoCmd; +import com.wbi.util.ParamUtil; +import com.weaverboot.frame.ioc.anno.classAnno.WeaIocReplaceComponent; +import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceBefore; +import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaBeforeReplaceParam; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + + +@WeaIocReplaceComponent +@Slf4j +public class UpdateReqInfoApiProxy { + + @WeaReplaceBefore( + value = "/api/workflow/reqform/updateReqInfo", + order = 1, + description = "qwer" + ) + public void before(WeaBeforeReplaceParam weaBeforeReplaceParam) { + + HttpServletRequest request = weaBeforeReplaceParam.getRequest(); + HttpServletResponse response = weaBeforeReplaceParam.getResponse(); + // Map paramMap = ParamUtil.request2Map(request); + User user = HrmUserVarify.getUser(request, response); + Map paramMap = weaBeforeReplaceParam.getParamMap(); + Object requestid = paramMap.get("requestid"); + paramMap.put("requestid","123123"); + + } + + private String getCookie(HttpServletRequest request,String name){ + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if(name.equals(cookie.getName())){ + return cookie.getValue(); + } + } + } + return ""; + } +} diff --git a/com/customization/customWf/impl/UpdateReqInfoCmdProxy.java b/com/customization/customWf/impl/UpdateReqInfoCmdProxy.java new file mode 100644 index 0000000..c9a6eef --- /dev/null +++ b/com/customization/customWf/impl/UpdateReqInfoCmdProxy.java @@ -0,0 +1,42 @@ +package com.customization.customWf.impl; + +import com.engine.core.cfg.annotation.CommandDynamicProxy; +import com.engine.core.interceptor.AbstractCommandProxy; +import com.engine.core.interceptor.Command; + +import com.engine.workflow.cmd.requestForm.UpdateReqInfoCmd; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + + +@CommandDynamicProxy(target = UpdateReqInfoCmd.class,desc="") +@Slf4j +public class UpdateReqInfoCmdProxy extends AbstractCommandProxy> { + + @Override + public Map execute(Command> targetCommand) { + UpdateReqInfoCmd cmd = (UpdateReqInfoCmd) targetCommand; + User user = cmd.getUser(); + Map params = cmd.getParams(); + nextExecute(cmd); + // Map result = nextExecute(targetCommand); + return null; + } + + private String getCookie(HttpServletRequest request,String name){ + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if(name.equals(cookie.getName())){ + + return cookie.getValue(); + } + } + } + return ""; + } +} diff --git a/com/customization/hrm/dept/impl/Proxy.java b/com/customization/hrm/dept/impl/Proxy.java index c2f1efd..6aae382 100644 --- a/com/customization/hrm/dept/impl/Proxy.java +++ b/com/customization/hrm/dept/impl/Proxy.java @@ -5,7 +5,9 @@ import com.wbi.util.ParamUtil; import com.wbi.util.StringUtil; import com.weaverboot.frame.ioc.anno.classAnno.WeaIocReplaceComponent; import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceAfter; +import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceBefore; import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaAfterReplaceParam; +import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaBeforeReplaceParam; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; @@ -18,84 +20,16 @@ import java.util.*; @WeaIocReplaceComponent public class Proxy { - @WeaReplaceAfter( - value = "/api/hrm/base/getHrmSearchTree", + @WeaReplaceBefore( + value = "api/workflow/reqform/updateReqInfo", order = 1, description = "qwer" ) - public String after(WeaAfterReplaceParam weaAfterReplaceParam) { - HttpServletRequest request = weaAfterReplaceParam.getRequest(); - HttpServletResponse response = weaAfterReplaceParam.getResponse(); - String data = weaAfterReplaceParam.getData(); + public void before(WeaBeforeReplaceParam weaBeforeReplaceParam) { + HttpServletRequest request = weaBeforeReplaceParam.getRequest(); + HttpServletResponse response = weaBeforeReplaceParam.getResponse(); Map paramMap = ParamUtil.request2Map(request); - String type = Util.null2String(paramMap.get("type")); - String id = Util.null2String(paramMap.get("id")); User user = HrmUserVarify.getUser(request, response); - int userID = user.getUID(); - new BaseBean().writeLog("type===" + type); - if (!StringUtil.isBlank(type)){ - Map result = extracted(paramMap, JSON.parseObject(data, Map.class),userID); - return JSON.toJSONString(result); - }else { - return data; - } } - private Map extracted(Map params, Map result, int userID) { - try { - // Map resultNew = result; - String type = Util.null2String(params.get("type")); - String id = Util.null2String(params.get("id")); - RecordSet recordSet = new RecordSet(); - ArrayList idlist = new ArrayList<>(); - Map bmIdHrmMap = new HashMap<>(); - if ("1".equals(type)) { - recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where fb = ?",id); - while (recordSet.next()){ - String bm = Util.null2String(recordSet.getString("BM")); - String kjry = Util.null2String(recordSet.getString("KJRY")); - // String fb = Util.null2String(recordSet.getString("FB")); - idlist.add(bm); - bmIdHrmMap.put(bm,kjry); - } - } - if ("2".equals(type)) { - recordSet.executeQuery("select BM,KJRY,FB from uf_txlbxsbm where SJBM = ?",id); - while (recordSet.next()){ - String bm = Util.null2String(recordSet.getString("BM")); - String kjry = Util.null2String(recordSet.getString("KJRY")); - // String fb = Util.null2String(recordSet.getString("FB")); - idlist.add(bm); - bmIdHrmMap.put(bm,kjry); - } - - } - List> departmentList = (List>)(result.get("datas")); - List> departmentListNew = new ArrayList<>(); - new BaseBean().writeLog(departmentList.toString()); - new BaseBean().writeLog(idlist.toString()); - new BaseBean().writeLog(bmIdHrmMap.toString()); - for (Map department : departmentList){ - String deptid = department.get("id").toString() ; - // deptid = deptid.substring(1, deptid.length()); - if (!idlist.contains(deptid)){ - departmentListNew.add(department); - }else { - String kjry = bmIdHrmMap.get(deptid); - List kjrylist = Arrays.asList(kjry.split(",")); - if (kjrylist.contains(userID+"")){ - departmentListNew.add(department); - } - } - } - new BaseBean().writeLog(departmentListNew.toString()); - result.put("datas",departmentListNew); - new BaseBean().writeLog(result.toString()); - return result; - }catch (Exception e){ - new BaseBean().writeLog(e.getMessage()); - e.printStackTrace(); - return result; - } - } } diff --git a/com/engine/custom/corn/Thread/YearReportThread.java b/com/engine/custom/corn/Thread/YearReportThread.java index c6c08f0..4f65a47 100644 --- a/com/engine/custom/corn/Thread/YearReportThread.java +++ b/com/engine/custom/corn/Thread/YearReportThread.java @@ -1,15 +1,105 @@ package com.engine.custom.corn.Thread; +import com.engine.custom.corn.util.ReportUtil; +import com.wbi.util.Util; +import org.docx4j.wml.R; import weaver.conn.RecordSet; import weaver.conn.RecordSetDataSource; +import weaver.file.Prop; +import weaver.general.BaseBean; +import weaver.hrm.User; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; public class YearReportThread implements Runnable { + private Integer startNum; + private Integer endNum; + private final static String INSERT_SQL = "INSERT INTO uf_personreport( RY, ND, DDCS, TGWZZS, ZSHYWZ1, ZSHYWZ2, ZSHYWZ3, YSXLJFQHYCS, GRHYCYCS, ZJGXWD, GRWDGX,SKTXYSFXS, SKTXCYCS, GCZGW, LJJYZZ, LJJP, JJRCLGW, QNLJCLGW, CGBL, LJSYSLCS, QGZYDF, NDDJLZGYY,LJDJCS, ZAYDYY, LJSYCS, PJMRZXRS, PJMRZXRSZB, LJDLOACS, DLCSCGRSZB, YYGS, GWBLLCXS, SWSPLCXS,JSXXZONGSHU, XWHYCS, SWSPLCGS,FORMMODEID)" + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + String sqlhrm = "select * from Hrmresource ORDER BY id LIMIT 100 OFFSET "; + private RecordSetDataSource em7rs; + private RecordSetDataSource emprs; + private RecordSet rs; + private RecordSet rs2; + private Map map; + private Integer cnt = 0; + private BaseBean bb; + + public YearReportThread(Integer startNum, Integer endNum,Map map,Integer cnt) { + this.startNum = startNum; + this.endNum = endNum; + this.map = map; + this.cnt = cnt; + this.em7rs = new RecordSetDataSource("em7"); + this.emprs = new RecordSetDataSource("dm_msg"); + this.rs = new RecordSet(); + this.rs2 = new RecordSet(); + bb = new BaseBean(); + } @Override public void run() { - RecordSetDataSource em7rs = new RecordSetDataSource("em7"); - RecordSetDataSource emprs = new RecordSetDataSource("emp_msg"); - RecordSet rs = new RecordSet(); + writeLog("开始结束数"+startNum+"__"+endNum); + for (int i = startNum; i < endNum; i++) { + String sqlhrmWhere = sqlhrm + i*100; + rs.executeQuery(sqlhrmWhere); + while (rs.next()){ + String id = rs.getString("id"); + rs2.executeUpdate(INSERT_SQL,id,map.get("ND"),map.get("DDCS"),map.get("TGWZZS"),map.get("ZSHYWZ1"),map.get("ZSHYWZ2"),map.get("ZSHYWZ3"),map.get("YSXLJFQHYCS"),map.get("GRHYCYCS"),map.get("ZJGXWD"),map.get("GRWDGX"),map.get("SKTXYSFXS"),map.get("SKTXCYCS"),map.get("GCZGW"),map.get("LJJYZZ"),map.get("LJJP"),map.get("JJRCLGW"),map.get("QNLJCLGW"),map.get("CGBL"),map.get("LJSYSLCS"),map.get("QGZYDF"),map.get("NDDJLZGYY"),map.get("LJDJCS"),map.get("ZAYDYY"),map.get("LJSYCS"),map.get("PJMRZXRS"),map.get("PJMRZXRSZB"),map.get("LJDLOACS"),map.get("DLCSCGRSZB"),map.get("YYGS"),map.get("GWBLLCXS"),map.get("SWSPLCXS"),map.get("JSXXZONGSHU"),map.get("XWHYCS"),map.get("SWSPLCGS"),map.get("FORMMODEID")); + writeLog(rs2.getExceptionMsg()); + } + } + + //更新总行的数量 + //消息总数 + int msgCount = ReportUtil.getMsgCount(); + //分享文档总数 + int ShareDOCCount = ReportUtil.getShareDOCCount(); + //会议总次数 + int meetCount = ReportUtil.getMeetCount(); + + String updateTotalSql = "update uf_personreport set jsxxzongshu = ? ,zjgxwd = ? ,ysxljfqhycs = ? where ry != 1"; + rs.executeUpdate(updateTotalSql,msgCount,ShareDOCCount,meetCount); + //获取节假日日期字符串查询条件 + List allWeekendsOfYear = ReportUtil.getAllWeekendsOfYear(2023).stream() + .map(s -> "'" + s + "'") + .collect(Collectors.toList());; + String weekStr = String.join(",",allWeekendsOfYear); + String wfids = Prop.getPropValue("yearReport", "gwwfid"); + String slwfid = Prop.getPropValue("yearReport", "slwfid"); + String AffairsWfid = ReportUtil.getAffairsWfid(rs); + String updateuserSql = "update uf_personreport set workcode = ? , name = ? , grhycycs = ? ,grwdgx = ? ,jjrclgw = ? ,qnljclgw = ?,cgbl = ? ,ljdloacs = ?,clgwzwrq = ?,grswsps = ?,grcylts = ?,grfsxxrs = ?,grfsxxqlss=?,ljsyslcs = ?,dycclgwrq = ? where ry = ?"; + //开始更新个人的不同的数据 + for (int i = startNum; i < endNum; i++) { + String sqlhrmWhere = sqlhrm + i*100; + rs.executeQuery(sqlhrmWhere); + while (rs.next()){ + String id = rs.getString("id"); + String workcode = rs.getString("WORKCODE"); + String name = rs.getString("LASTNAME"); + int shareDocCnt = Util.getIntValue(ReportUtil.getShareDOCCountbyUserid(rs2, id)+"",0) ; + int personMeetCount = Util.getIntValue(ReportUtil.getMeetCountByUserid(rs2, id)+"",0) ; + int yearOfficialWfCount = Util.getIntValue(ReportUtil.getYearOfficialWfCount(rs2, id, wfids)+"",0) ; + int holidayOfficialWfCount = Util.getIntValue(ReportUtil.getHolidayOfficialWfCount(rs2, id, wfids,weekStr)+"",0) ; + int officialWfCountPercentage = Util.getIntValue(ReportUtil.getOfficialWfCountPercentage(rs2, id, wfids,weekStr,cnt)+"",0) ; + String lastTimeDate = Util.null2String(ReportUtil.getOfficialWflastTimeDate(rs2, id, wfids)) ; + int loginDayCount = Util.getIntValue(ReportUtil.getLoginDayCount(rs2, id)+"",0) ; + int AffairsWfCount = Util.getIntValue(ReportUtil.getYearAffairsWfCount(rs2, id, AffairsWfid)+"",0); + int MsgCount = Util.getIntValue(ReportUtil.getMsgCountByUserid(emprs, id)+"",0); + int PeopleCount = Util.getIntValue(ReportUtil.getMsgPeopleCountByUserid(emprs, id)+"",0); + int MsgGangHsienCount = Util.getIntValue(ReportUtil.getMsgGangHsienCountByUserid(emprs, id)+"",0); + int BusinessWfCount = Util.getIntValue(ReportUtil.getBusinessWfCount(rs2, id,slwfid)+"",0); + String LastOfficialWfDate = Util.null2String(ReportUtil.getLastOfficialWfDate(rs2, id,wfids)); + rs.executeUpdate(updateuserSql,workcode,name,personMeetCount,shareDocCnt,holidayOfficialWfCount,yearOfficialWfCount,officialWfCountPercentage,loginDayCount,lastTimeDate,AffairsWfCount,MsgCount,PeopleCount,MsgGangHsienCount,BusinessWfCount,LastOfficialWfDate,id); + } + } + } + public void writeLog(String log) { + bb.writeLog(Thread.currentThread().getName()+"==>YearReportThread:"+log); + } + } diff --git a/com/engine/custom/corn/WeekReportCorn.java b/com/engine/custom/corn/WeekReportCorn.java index 9135bec..4a796ae 100644 --- a/com/engine/custom/corn/WeekReportCorn.java +++ b/com/engine/custom/corn/WeekReportCorn.java @@ -18,7 +18,7 @@ public class WeekReportCorn extends BaseCronJob { public void execute() { writeLog("年度报告开始执行"); RecordSet recordSet = new RecordSet(); - deleteHistoryData(recordSet); + int startNum = 0; int endNum = 0; recordSet.executeQuery("select count(1) cnt from xlbb_grzbzz_xda"); @@ -34,9 +34,7 @@ public class WeekReportCorn extends BaseCronJob { sendMsg(startNum,endNum); } - private void deleteHistoryData(RecordSet recordSet) { - recordSet.executeUpdate("delete uf_personreport where ry != 1"); - } + private void writeLog(String log){ baseBean.writeLog(log); diff --git a/com/engine/custom/corn/YearReportCorn.java b/com/engine/custom/corn/YearReportCorn.java index 6fe519a..3028d38 100644 --- a/com/engine/custom/corn/YearReportCorn.java +++ b/com/engine/custom/corn/YearReportCorn.java @@ -1,4 +1,5 @@ package com.engine.custom.corn; +import com.engine.custom.corn.Thread.YearReportThread; import com.engine.custom.corn.util.ReportUtil; import com.icbc.api.internal.apache.http.impl.cookie.S; import com.wbi.util.Util; @@ -20,11 +21,13 @@ public class YearReportCorn extends BaseCronJob { "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; @Override public void execute() { + RecordSetDataSource em7rs = new RecordSetDataSource("em7"); - RecordSetDataSource emprs = new RecordSetDataSource("emp_msg"); + RecordSetDataSource emprs = new RecordSetDataSource("dm_msg"); RecordSet rs = new RecordSet(); RecordSet rs2 = new RecordSet(); RecordSet rs3 = new RecordSet(); + deleteHistoryData(rs2); // 获取总人数 String sql = "select count(*) cnt from Hrmresource"; rs.executeQuery(sql); @@ -36,61 +39,78 @@ public class YearReportCorn extends BaseCronJob { Map map = getConfigRecord(); int pageTotle = (int) Math.ceil(cnt/100); String sqlhrm = "select * from Hrmresource ORDER BY id LIMIT 100 OFFSET "; - for (int i = 0; i < pageTotle; i++) { - String sqlhrmWhere = sqlhrm + i*100; - rs.executeQuery(sqlhrmWhere); - while (rs.next()){ - String id = rs.getString("id"); - rs2.executeUpdate(insertSql,id,map.get("ND"),map.get("DDCS"),map.get("TGWZZS"),map.get("ZSHYWZ1"),map.get("ZSHYWZ2"),map.get("ZSHYWZ3"),map.get("YSXLJFQHYCS"),map.get("GRHYCYCS"),map.get("ZJGXWD"),map.get("GRWDGX"),map.get("SKTXYSFXS"),map.get("SKTXCYCS"),map.get("GCZGW"),map.get("LJJYZZ"),map.get("LJJP"),map.get("JJRCLGW"),map.get("QNLJCLGW"),map.get("CGBL"),map.get("LJSYSLCS"),map.get("QGZYDF"),map.get("NDDJLZGYY"),map.get("LJDJCS"),map.get("ZAYDYY"),map.get("LJSYCS"),map.get("PJMRZXRS"),map.get("PJMRZXRSZB"),map.get("LJDLOACS"),map.get("DLCSCGRSZB"),map.get("YYGS"),map.get("GWBLLCXS"),map.get("SWSPLCXS"),map.get("JSXXZONGSHU"),map.get("XWHYCS"),map.get("SWSPLCGS"),map.get("FORMMODEID")); - } - } - - //更新总行的数量 - //消息总数 - int msgCount = ReportUtil.getMsgCount(); - //分享文档总数 - int ShareDOCCount = ReportUtil.getShareDOCCount(); - //会议总次数 - int meetCount = ReportUtil.getMeetCount(); - - String updateTotalSql = "update uf_personreport set jsxxzongshu = ? ,zjgxwd = ? ,ysxljfqhycs = ? where ry != 1"; - rs.executeUpdate(updateTotalSql,msgCount,ShareDOCCount,meetCount); - //获取节假日日期字符串查询条件 - List allWeekendsOfYear = getAllWeekendsOfYear(2023).stream() - .map(s -> "'" + s + "'") - .collect(Collectors.toList());; - String weekStr = String.join(",",allWeekendsOfYear); - String wfids = Prop.getPropValue("yearReport", "gwwfid"); - String slwfid = Prop.getPropValue("yearReport", "slwfid"); - String AffairsWfid = getAffairsWfid(rs); - String updateuserSql = "update uf_personreport set grhycycs = ? ,grwdgx = ? ,jjrclgw = ? ,qnljclgw = ?,cgbl = ? ,ljdloacs = ?,clgwzwrq = ?,grswsps = ?,grcylts = ?,grfsxxrs = ?,grfsxxqlss=?,ljsyslcs = ? where ry = ?"; - //开始更新个人的不同的数据 - for (int i = 0; i < pageTotle; i++) { - String sqlhrmWhere = sqlhrm + i*100; - rs.executeQuery(sqlhrmWhere); - while (rs.next()){ - String id = rs.getString("id"); - int shareDocCnt = Util.getIntValue(ReportUtil.getShareDOCCountbyUserid(rs2, id)+"",0) ; - int personMeetCount = Util.getIntValue(ReportUtil.getMeetCountByUserid(rs2, id)+"",0) ; - int yearOfficialWfCount = Util.getIntValue(ReportUtil.getYearOfficialWfCount(rs2, id, wfids)+"",0) ; - int holidayOfficialWfCount = Util.getIntValue(ReportUtil.getHolidayOfficialWfCount(rs2, id, wfids,weekStr)+"",0) ; - int officialWfCountPercentage = Util.getIntValue(ReportUtil.getOfficialWfCountPercentage(rs2, id, wfids,weekStr,cnt)+"",0) ; - String lastTimeDate = Util.null2String(ReportUtil.getOfficialWflastTimeDate(rs2, id, wfids)) ; - int loginDayCount = Util.getIntValue(ReportUtil.getLoginDayCount(rs2, id)+"",0) ; - int AffairsWfCount = Util.getIntValue(ReportUtil.getYearAffairsWfCount(rs2, id, AffairsWfid)+"",0); - int MsgCount = Util.getIntValue(ReportUtil.getMsgCountByUserid(emprs, id)+"",0); - int PeopleCount = Util.getIntValue(ReportUtil.getMsgPeopleCountByUserid(emprs, id)+"",0); - int MsgGangHsienCount = Util.getIntValue(ReportUtil.getMsgGangHsienCountByUserid(emprs, id)+"",0); - int BusinessWfCount = Util.getIntValue(ReportUtil.getBusinessWfCount(rs2, id,slwfid)+"",0); - rs.executeUpdate(updateuserSql,personMeetCount,shareDocCnt,holidayOfficialWfCount,yearOfficialWfCount,officialWfCountPercentage,loginDayCount,lastTimeDate,AffairsWfCount,MsgCount,PeopleCount,MsgGangHsienCount,BusinessWfCount,id); + int ThreadNum = (int) Math.ceil(pageTotle/5); + for (int i = 0; i < 5; i++) { + System.out.println(i*ThreadNum+"======"+(((i+1)*ThreadNum)-1)); + if (i==4){ + new Thread(new YearReportThread(i * ThreadNum,pageTotle,map,cnt)).start(); + }else{ + new Thread(new YearReportThread(i * ThreadNum, (((i + 1) * ThreadNum) - 1),map,cnt)).start(); } } + + + + + + + + // for (int i = 0; i < pageTotle; i++) { + // String sqlhrmWhere = sqlhrm + i*100; + // rs.executeQuery(sqlhrmWhere); + // while (rs.next()){ + // String id = rs.getString("id"); + // rs2.executeUpdate(insertSql,id,map.get("ND"),map.get("DDCS"),map.get("TGWZZS"),map.get("ZSHYWZ1"),map.get("ZSHYWZ2"),map.get("ZSHYWZ3"),map.get("YSXLJFQHYCS"),map.get("GRHYCYCS"),map.get("ZJGXWD"),map.get("GRWDGX"),map.get("SKTXYSFXS"),map.get("SKTXCYCS"),map.get("GCZGW"),map.get("LJJYZZ"),map.get("LJJP"),map.get("JJRCLGW"),map.get("QNLJCLGW"),map.get("CGBL"),map.get("LJSYSLCS"),map.get("QGZYDF"),map.get("NDDJLZGYY"),map.get("LJDJCS"),map.get("ZAYDYY"),map.get("LJSYCS"),map.get("PJMRZXRS"),map.get("PJMRZXRSZB"),map.get("LJDLOACS"),map.get("DLCSCGRSZB"),map.get("YYGS"),map.get("GWBLLCXS"),map.get("SWSPLCXS"),map.get("JSXXZONGSHU"),map.get("XWHYCS"),map.get("SWSPLCGS"),map.get("FORMMODEID")); + // } + // } + // + // //更新总行的数量 + // //消息总数 + // int msgCount = ReportUtil.getMsgCount(); + // //分享文档总数 + // int ShareDOCCount = ReportUtil.getShareDOCCount(); + // //会议总次数 + // int meetCount = ReportUtil.getMeetCount(); + // + // String updateTotalSql = "update uf_personreport set jsxxzongshu = ? ,zjgxwd = ? ,ysxljfqhycs = ? where ry != 1"; + // rs.executeUpdate(updateTotalSql,msgCount,ShareDOCCount,meetCount); + // //获取节假日日期字符串查询条件 + // List allWeekendsOfYear = getAllWeekendsOfYear(2023).stream() + // .map(s -> "'" + s + "'") + // .collect(Collectors.toList());; + // String weekStr = String.join(",",allWeekendsOfYear); + // String wfids = Prop.getPropValue("yearReport", "gwwfid"); + // String slwfid = Prop.getPropValue("yearReport", "slwfid"); + // String AffairsWfid = getAffairsWfid(rs); + // String updateuserSql = "update uf_personreport set grhycycs = ? ,grwdgx = ? ,jjrclgw = ? ,qnljclgw = ?,cgbl = ? ,ljdloacs = ?,clgwzwrq = ?,grswsps = ?,grcylts = ?,grfsxxrs = ?,grfsxxqlss=?,ljsyslcs = ? where ry = ?"; + // //开始更新个人的不同的数据 + // for (int i = 0; i < pageTotle; i++) { + // String sqlhrmWhere = sqlhrm + i*100; + // rs.executeQuery(sqlhrmWhere); + // while (rs.next()){ + // String id = rs.getString("id"); + // int shareDocCnt = Util.getIntValue(ReportUtil.getShareDOCCountbyUserid(rs2, id)+"",0) ; + // int personMeetCount = Util.getIntValue(ReportUtil.getMeetCountByUserid(rs2, id)+"",0) ; + // int yearOfficialWfCount = Util.getIntValue(ReportUtil.getYearOfficialWfCount(rs2, id, wfids)+"",0) ; + // int holidayOfficialWfCount = Util.getIntValue(ReportUtil.getHolidayOfficialWfCount(rs2, id, wfids,weekStr)+"",0) ; + // int officialWfCountPercentage = Util.getIntValue(ReportUtil.getOfficialWfCountPercentage(rs2, id, wfids,weekStr,cnt)+"",0) ; + // String lastTimeDate = Util.null2String(ReportUtil.getOfficialWflastTimeDate(rs2, id, wfids)) ; + // int loginDayCount = Util.getIntValue(ReportUtil.getLoginDayCount(rs2, id)+"",0) ; + // int AffairsWfCount = Util.getIntValue(ReportUtil.getYearAffairsWfCount(rs2, id, AffairsWfid)+"",0); + // int MsgCount = Util.getIntValue(ReportUtil.getMsgCountByUserid(emprs, id)+"",0); + // int PeopleCount = Util.getIntValue(ReportUtil.getMsgPeopleCountByUserid(emprs, id)+"",0); + // int MsgGangHsienCount = Util.getIntValue(ReportUtil.getMsgGangHsienCountByUserid(emprs, id)+"",0); + // int BusinessWfCount = Util.getIntValue(ReportUtil.getBusinessWfCount(rs2, id,slwfid)+"",0); + // rs.executeUpdate(updateuserSql,personMeetCount,shareDocCnt,holidayOfficialWfCount,yearOfficialWfCount,officialWfCountPercentage,loginDayCount,lastTimeDate,AffairsWfCount,MsgCount,PeopleCount,MsgGangHsienCount,BusinessWfCount,id); + // } + // } + } private String getAffairsWfid(RecordSet rs) { String swspwftype = Prop.getPropValue("yearReport", "swspwftype"); - rs.executeQuery("select id from workflow_base where workflowtype = ?" ,swspwftype); + rs.executeQuery("select id from workflow_base where workflowtype in ( "+swspwftype+" )"); ArrayList wfids = new ArrayList<>(); while (rs.next()){ wfids.add(Util.null2String(rs.getString("id"))); @@ -195,6 +215,15 @@ public class YearReportCorn extends BaseCronJob { public static void main(String[] args) { + int ceil = (int)Math.ceil(201 / 5); + + for (int i = 0; i < 5; i++) { + System.out.println(i*ceil+"======"+(((i+1)*ceil)-1)); + } + } + + private void deleteHistoryData(RecordSet recordSet) { + recordSet.executeUpdate("delete uf_personreport where ry != 1"); } } diff --git a/com/engine/custom/corn/util/ReportUtil.java b/com/engine/custom/corn/util/ReportUtil.java index f9a0bef..d6968d3 100644 --- a/com/engine/custom/corn/util/ReportUtil.java +++ b/com/engine/custom/corn/util/ReportUtil.java @@ -2,13 +2,18 @@ package com.engine.custom.corn.util; import com.icbc.api.internal.apache.http.impl.cookie.S; import weaver.conn.RecordSet; import weaver.conn.RecordSetDataSource; +import weaver.file.Prop; import weaver.general.BaseBean; import weaver.general.Util; +import java.time.DayOfWeek; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; public class ReportUtil { @@ -19,16 +24,21 @@ public class ReportUtil { * @return */ public static int getMsgCount(){ - String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - RecordSetDataSource rs = new RecordSetDataSource("emp_msg"); - String getMsgCountSql = "select count(1) cnt from HISTORYMSG where DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"'"; - bb.writeLog("getMsgCount=="+getMsgCountSql); - rs.execute(getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + RecordSetDataSource rs = new RecordSetDataSource("emp_msg"); + String getMsgCountSql = "select count(1) cnt from HISTORYMSG where DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"'"; + writeLog("getMsgCount=="+getMsgCountSql); + rs.execute(getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } } /** @@ -36,15 +46,15 @@ public class ReportUtil { * @param dateFormat * @return */ - public static String[] getStartEndOfYear(String dateFormat) { - LocalDateTime startOfYear = LocalDateTime.of(LocalDateTime.now().getYear(), 1, 1, 0, 0, 0, 0); - LocalDateTime endOfYear = LocalDateTime.of(LocalDateTime.now().getYear(), 12, 31, 23, 59, 59, 999000000); + public static String[] getStartEndOfYear(int year, String dateFormat) { + LocalDateTime startOfYear = LocalDateTime.of(year, 1, 1, 0, 0, 0, 0); + LocalDateTime endOfYear = LocalDateTime.of(year, 12, 31, 23, 59, 59, 999000000); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat); String start = startOfYear.format(formatter); String end = endOfYear.format(formatter); - return new String[] {start, end}; + return new String[]{start, end}; } @@ -54,16 +64,22 @@ public class ReportUtil { * @return */ public static int getShareDOCCount(){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - RecordSet rs = new RecordSet(); - String getMsgCountSql = "select count(1) cnt from DOCDETAIL where seccategory = 98 and doccreatedate >= '"+startEndOfYear[0]+"' and doccreatedate <= '"+startEndOfYear[1]+"'"; - rs.execute(getMsgCountSql); - bb.writeLog("getShareDOCCount=="+getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + RecordSet rs = new RecordSet(); + String getMsgCountSql = "select count(1) cnt from DOCDETAIL where seccategory = 98 and doccreatedate >= '"+startEndOfYear[0]+"' and doccreatedate <= '"+startEndOfYear[1]+"'"; + rs.execute(getMsgCountSql); + writeLog("getShareDOCCount=="+getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } @@ -72,15 +88,21 @@ public class ReportUtil { * @return */ public static int getShareDOCCountbyUserid(RecordSet rs , String userid){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(1) cnt from DOCDETAIL where seccategory = 98 and doccreatedate >= '"+startEndOfYear[0]+"' and doccreatedate <= '"+startEndOfYear[1]+"' and doccreaterid = "+userid ; - rs.execute(getMsgCountSql); - bb.writeLog("getShareDOCCountbyUserid=="+getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(1) cnt from DOCDETAIL where seccategory = 98 and doccreatedate >= '"+startEndOfYear[0]+"' and doccreatedate <= '"+startEndOfYear[1]+"' and doccreaterid = "+userid ; + rs.execute(getMsgCountSql); + writeLog("getShareDOCCountbyUserid=="+getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } @@ -89,16 +111,22 @@ public class ReportUtil { * @return */ public static int getMeetCount(){ - String dateFormat = "yyyy-MM-dd HH:mm"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - RecordSet rs = new RecordSet(); - String getMsgCountSql = "select count(1) cnt from meeting_videolist where VIDEOMTBEGINDATE >= '"+startEndOfYear[0]+"' and VIDEOMTBEGINDATE <= '"+startEndOfYear[1]+"'"; - rs.execute(getMsgCountSql); - bb.writeLog("getMeetCount=="+getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd HH:mm"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + RecordSet rs = new RecordSet(); + String getMsgCountSql = "select count(1) cnt from meeting_videolist where VIDEOMTBEGINDATE >= '"+startEndOfYear[0]+"' and VIDEOMTBEGINDATE <= '"+startEndOfYear[1]+"'"; + rs.execute(getMsgCountSql); + writeLog("getMeetCount=="+getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } @@ -107,15 +135,21 @@ public class ReportUtil { * @return */ public static int getMeetCountByUserid(RecordSet rs , String userid){ - String dateFormat = "yyyy-MM-dd HH:mm"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(1) cnt from meeting_videolist where VIDEOMTBEGINDATE >= '"+startEndOfYear[0]+"' and VIDEOMTBEGINDATE <= '"+startEndOfYear[1]+"' and VIDEOMTCREATER = "+userid; - rs.execute(getMsgCountSql); - rs.next(); - bb.writeLog("getMeetCountByUserid=="+getMsgCountSql); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd HH:mm"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(1) cnt from meeting_videolist where VIDEOMTBEGINDATE >= '"+startEndOfYear[0]+"' and VIDEOMTBEGINDATE <= '"+startEndOfYear[1]+"' and VIDEOMTCREATER = "+userid; + rs.execute(getMsgCountSql); + rs.next(); + writeLog("getMeetCountByUserid=="+getMsgCountSql); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } /** @@ -124,12 +158,18 @@ public class ReportUtil { * @param userid * @return */ - public static int getLastOfficialWfDate(RecordSet rs , String userid ,String OfficialWfid){ - String getMsgCountSql = "select min(OPERATEDATE) from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+OfficialWfid+" )"; - rs.execute(getMsgCountSql); - rs.next(); - bb.writeLog("getMsgCountSql=="+getMsgCountSql); - return rs.getInt("cnt"); + public static String getLastOfficialWfDate(RecordSet rs , String userid ,String OfficialWfid){ + try { + String getMsgCountSql = "select min(OPERATEDATE) minDate from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+OfficialWfid+" )"; + rs.execute(getMsgCountSql); + rs.next(); + writeLog("getLastOfficialWfDate=="+getMsgCountSql); + return rs.getString("minDate"); + }catch (Exception e){ + e.printStackTrace(); + return "0"; + } + } @@ -140,16 +180,22 @@ public class ReportUtil { * @return */ public static int getYearOfficialWfCount(RecordSet rs , String userid ,String OfficialWfid){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(1) cnt from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+OfficialWfid+" ) " + - " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"; - rs.execute(getMsgCountSql); - rs.next(); - bb.writeLog("getYearOfficialWfCount=="+getMsgCountSql); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(1) cnt from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+OfficialWfid+" ) " + + " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"; + rs.execute(getMsgCountSql); + rs.next(); + writeLog("getYearOfficialWfCount=="+getMsgCountSql); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } @@ -160,11 +206,17 @@ public class ReportUtil { * @return */ public static int getHolidayOfficialWfCount(RecordSet rs , String userid ,String OfficialWfid ,String holidayStr){ - String getMsgCountSql = "select count(1) cnt from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+OfficialWfid+" ) and OPERATEDATE in ( "+holidayStr+" )"; - rs.execute(getMsgCountSql); - bb.writeLog("getHolidayOfficialWfCount=="+getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String getMsgCountSql = "select count(1) cnt from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+OfficialWfid+" ) and OPERATEDATE in ( "+holidayStr+" )"; + rs.execute(getMsgCountSql); + writeLog("getHolidayOfficialWfCount=="+getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } /** @@ -174,21 +226,26 @@ public class ReportUtil { * @return */ public static int getOfficialWfCountPercentage(RecordSet rs , String userid ,String OfficialWfid ,String holidayStr,int total){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select rank from (select * , RANK() OVER (ORDER BY cnt DESC) AS rank from" + - " (select OPERATOR, count(1) cnt from WORKFLOW_REQUESTLOG" + - " where WORKFLOWID in ("+ OfficialWfid +") and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"' group by OPERATOR)) a where a.OPERATOR = "+ userid; - rs.execute(getMsgCountSql); - bb.writeLog("getOfficialWfCountPercentage=="+getMsgCountSql); - rs.next(); - int rank = Util.getIntValue(rs.getInt("rank")); - if (0 == rank){ + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select rank from (select * , RANK() OVER (ORDER BY cnt DESC) AS rank from" + + " (select OPERATOR, count(1) cnt from WORKFLOW_REQUESTLOG" + + " where WORKFLOWID in ("+ OfficialWfid +") and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"' group by OPERATOR)) a where a.OPERATOR = "+ userid; + rs.execute(getMsgCountSql); + writeLog("getOfficialWfCountPercentage=="+getMsgCountSql); + rs.next(); + int rank = Util.getIntValue(rs.getInt("rank")); + if (0 == rank || -1 == rank){ + return 0; + } + return (int)(100.0 * (total - rank) / (total - 1)); + }catch (Exception e){ + e.printStackTrace(); return 0; } - return (int)(100.0 * (total - rank) / (total - 1)); } @@ -199,63 +256,80 @@ public class ReportUtil { * @return */ public static String getOfficialWflastTimeDate(RecordSet rs , String userid , String OfficialWfid ){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "SELECT * FROM ( " + - " SELECT * FROM WORKFLOW_REQUESTLOG where OPERATETIME <= '05:00:00' and WORKFLOWID in ("+ OfficialWfid +") " + - " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"+ - " and OPERATOR = "+ userid + - " ORDER BY OPERATETIME DESC" + - " )WHERE ROWNUM = 1"; - rs.execute(getMsgCountSql); - bb.writeLog("getOfficialWflastTimeDate=="+getMsgCountSql); - rs.next(); - int counts = rs.getCounts(); - if (counts != 0){ - return rs.getString("OPERATEDATE")+" "+rs.getString("OPERATETIME"); - }else { - getMsgCountSql = "SELECT * FROM ( " + - " SELECT * FROM WORKFLOW_REQUESTLOG where WORKFLOWID in ("+ OfficialWfid +") " + + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "SELECT * FROM ( " + + " SELECT * FROM WORKFLOW_REQUESTLOG where OPERATETIME <= '05:00:00' and WORKFLOWID in ("+ OfficialWfid +") " + " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"+ " and OPERATOR = "+ userid + " ORDER BY OPERATETIME DESC" + " )WHERE ROWNUM = 1"; rs.execute(getMsgCountSql); - bb.writeLog("getOfficialWflastTimeDate2=="+getMsgCountSql); + writeLog("getOfficialWflastTimeDate=="+getMsgCountSql); rs.next(); - return rs.getString("OPERATEDATE")+" "+rs.getString("OPERATETIME"); + int counts = rs.getCounts(); + if (counts != 0){ + return rs.getString("OPERATEDATE")+" "+rs.getString("OPERATETIME"); + }else { + getMsgCountSql = "SELECT * FROM ( " + + " SELECT * FROM WORKFLOW_REQUESTLOG where WORKFLOWID in ("+ OfficialWfid +") " + + " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"+ + " and OPERATOR = "+ userid + + " ORDER BY OPERATETIME DESC" + + " )WHERE ROWNUM = 1"; + rs.execute(getMsgCountSql); + writeLog("getOfficialWflastTimeDate2=="+getMsgCountSql); + rs.next(); + return rs.getString("OPERATEDATE")+" "+rs.getString("OPERATETIME"); + } + }catch (Exception e){ + e.printStackTrace(); + return ""; } + } //获取登录天数 public static int getLoginDayCount(RecordSet rs , String userid ){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(*) cnt from ( " + - " select OPERATEDATE from hrmsysmaintenancelog where RELATEDID = " + userid + ""+ - " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"+ - " group by OPERATEDATE)"; - rs.execute(getMsgCountSql); - bb.writeLog("getLoginDayCount=="+getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(*) cnt from ( " + + " select OPERATEDATE from hrmsysmaintenancelog where RELATEDID = " + userid + ""+ + " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"+ + " group by OPERATEDATE)"; + rs.execute(getMsgCountSql); + writeLog("getLoginDayCount=="+getMsgCountSql); + rs.next(); + return rs.getInt("cnt")*2; + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } //获取统筹全局角色的人员,返回,分割的字符串 public static String getRoleMember(RecordSet rs ){ - - String getMsgCountSql = "select RESOURCEID from hrmrolemembers mem left join hrmroles role on mem.ROLEID = role.ID where role.ROLESMARK = '统筹全局'"; - rs.execute(getMsgCountSql); - bb.writeLog("getRoleMember=="+getMsgCountSql); - ArrayList roleMember = new ArrayList<>(); - while (rs.next()){ - roleMember.add(Util.null2String(rs.getString("RESOURCEID"))); + try { + String getMsgCountSql = "select RESOURCEID from hrmrolemembers mem left join hrmroles role on mem.ROLEID = role.ID where role.ROLESMARK = '统筹全局'"; + rs.execute(getMsgCountSql); + writeLog("getRoleMember=="+getMsgCountSql); + ArrayList roleMember = new ArrayList<>(); + while (rs.next()){ + roleMember.add(Util.null2String(rs.getString("RESOURCEID"))); + } + return String.join(",",roleMember); + }catch (Exception e){ + e.printStackTrace(); + return ""; } - return String.join(",",roleMember); + } @@ -266,56 +340,84 @@ public class ReportUtil { * @return */ public static int getYearAffairsWfCount(RecordSet rs , String userid ,String AffairsWfid){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(1) cnt from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+AffairsWfid+" ) " + - " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"; - rs.execute(getMsgCountSql); - rs.next(); - bb.writeLog("getYearOfficialWfCount=="+getMsgCountSql); - return rs.getInt("cnt"); + + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(1) cnt from WORKFLOW_REQUESTLOG where OPERATOR = "+userid+" and workflowid in ( "+AffairsWfid+" ) " + + " and OPERATEDATE >= '"+startEndOfYear[0]+"' and OPERATEDATE <= '"+startEndOfYear[1]+"'"; + rs.execute(getMsgCountSql); + rs.next(); + writeLog("getYearOfficialWfCount=="+getMsgCountSql); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } + + + public static int getMsgCountByUserid(RecordSetDataSource rs,String userid){ - String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - - String getMsgCountSql = "select count(distinct TARGETID) cnt from HISTORYMSG where DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"' and fromuserid = '"+ userid+"'"; - bb.writeLog("getMsgCount=="+getMsgCountSql); - rs.execute(getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + + String getMsgCountSql = "select count(distinct TARGETID) cnt from HISTORYMSG where DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"' and fromuserid = '"+ userid+"'"; + writeLog("getMsgCount=="+getMsgCountSql); + rs.execute(getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } public static int getMsgPeopleCountByUserid(RecordSetDataSource rs,String userid){ - String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(distinct TARGETID) cnt from HISTORYMSG where TARGETTYPE = 1 and DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"' and fromuserid = '"+ userid+"'"; - bb.writeLog("getMsgCount=="+getMsgCountSql); - rs.execute(getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(distinct TARGETID) cnt from HISTORYMSG where TARGETTYPE = 1 and DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"' and fromuserid = '"+ userid+"'"; + writeLog("getMsgCount=="+getMsgCountSql); + rs.execute(getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } public static int getMsgGangHsienCountByUserid(RecordSetDataSource rs,String userid){ - String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); - String getMsgCountSql = "select count(distinct TARGETID) cnt from HISTORYMSG where TARGETTYPE = 2 and DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"' and fromuserid = '"+ userid+"'"; - bb.writeLog("getMsgCount=="+getMsgCountSql); - rs.execute(getMsgCountSql); - rs.next(); - return rs.getInt("cnt"); + try { + String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); + String getMsgCountSql = "select count(distinct TARGETID) cnt from HISTORYMSG where TARGETTYPE = 2 and DATETIME >= '"+ startEndOfYear[0] +"' and DATETIME <= '"+ startEndOfYear[1]+"' and fromuserid = '"+ userid+"'"; + writeLog("getMsgCount=="+getMsgCountSql); + rs.execute(getMsgCountSql); + rs.next(); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + } /** @@ -329,19 +431,94 @@ public class ReportUtil { * @return */ public static int getBusinessWfCount(RecordSet rs , String userid ,String Wfid){ - String dateFormat = "yyyy-MM-dd"; - String[] startEndOfYear = getStartEndOfYear(dateFormat); - System.out.println("Start of Year: " + startEndOfYear[0]); - System.out.println("End of Year: " + startEndOfYear[1]); + try { + String dateFormat = "yyyy-MM-dd"; + String[] startEndOfYear = getStartEndOfYear(2023,dateFormat); + System.out.println("Start of Year: " + startEndOfYear[0]); + System.out.println("End of Year: " + startEndOfYear[1]); String getMsgCountSql = "select count(1) cnt from workflow_requestbase where creater = "+userid+" and workflowid in ( "+Wfid+" ) " + - " and createdate >= '"+startEndOfYear[0]+"' and createdate <= '"+startEndOfYear[1]+"'"; - rs.execute(getMsgCountSql); - rs.next(); - bb.writeLog("getBusinessWfCount=="+getMsgCountSql); - return rs.getInt("cnt"); + " and createdate >= '"+startEndOfYear[0]+"' and createdate <= '"+startEndOfYear[1]+"'"; + rs.execute(getMsgCountSql); + rs.next(); + writeLog("getBusinessWfCount=="+getMsgCountSql); + return rs.getInt("cnt"); + }catch (Exception e){ + e.printStackTrace(); + return 0; + } + + } + + + /** + * 获取指定年的休息日(双休情况下) + * @param year + * @return + */ + public static List getAllWeekendsOfYear(int year) { + //将本年的周六周日加到list中 + List weekendDates = new ArrayList<>(); + LocalDate date = LocalDate.of(year, 1, 1); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + while (date.getYear() == year) { + if (date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY) { + weekendDates.add(date.format(formatter)); + } + date = date.plusDays(1); + } + //查询库里的节假日设置 + RecordSet recordSet = new RecordSet(); + // String groupid = Util.null2String(Prop.getPropValue("year_report_set", "groupid"),"24") ; + String groupid = "1" ; + recordSet.executeQuery("select changeType ,holidayDate from KQ_HolidaySet where groupid = ?",groupid); + //去掉调配工作日,加上公众假日和调配休息日 + List WorkDates = new ArrayList<>(); + List holidayDates = new ArrayList<>(); + while (recordSet.next()){ + String changeType = recordSet.getString("changeType"); + String holidayDate = recordSet.getString("holidayDate"); + if ("2".equals(changeType)){ + WorkDates.add(holidayDate); + }else if("1".equals(changeType) || "3".equals(changeType)){ + holidayDates.add(holidayDate); + } + } + weekendDates.removeAll(WorkDates); + HashSet set = new HashSet<>(); + set.addAll(weekendDates); + set.addAll(holidayDates); + return new ArrayList<>(set); + } + + + public static String getAffairsWfid(RecordSet rs) { + try { + String swspwftype = Prop.getPropValue("yearReport", "swspwftype"); + rs.executeQuery("select id from workflow_base where workflowtype = ?" ,swspwftype); + ArrayList wfids = new ArrayList<>(); + while (rs.next()){ + wfids.add(com.wbi.util.Util.null2String(rs.getString("id"))); + } + return String.join(",",wfids); + }catch (Exception e){ + e.printStackTrace(); + return ""; + } + } public static void main(String[] args) { - getMsgCount(); + // String[] dates = getStartEndOfYear(2023, "yyyy-MM-dd"); + // System.out.println("Start of the year: " + dates[0]); + // System.out.println("End of the year: " + dates[1]); + // System.out.println(Util.getIntValue(null)); + HashMap sixthMap = new HashMap<>(); + LocalDate date = LocalDate.parse("2023-10-25", DateTimeFormatter.ofPattern("yyyy-MM-dd")); + sixthMap.put("dycclgwrqMM",date.getMonthValue()+""); + sixthMap.put("dycclgwrqDD",date.getDayOfMonth()+""); + } + + public static void writeLog(String log) { + bb.writeLog(Thread.currentThread().getName()+"==>ReportUtil:"+log); } } diff --git a/com/engine/custom/sl/action/OAtoCWAction.java b/com/engine/custom/sl/action/OAtoCWAction.java index a50ca82..dffeb3b 100644 --- a/com/engine/custom/sl/action/OAtoCWAction.java +++ b/com/engine/custom/sl/action/OAtoCWAction.java @@ -4,7 +4,6 @@ import com.dcfs.fts.common.error.FtpException; import com.engine.custom.hg.util.HgUtils; import com.engine.custom.sl.entity.*; import com.engine.util.SocketClientUtil; -import com.engine.util.XMLUtils; import com.weaver.general.Util; import weaver.conn.RecordSet; import weaver.file.ImageFileManager; diff --git a/com/engine/custom/sl/entity/TravelToEsbBean.java b/com/engine/custom/sl/entity/TravelToEsbBean.java index 748e51f..44e933a 100644 --- a/com/engine/custom/sl/entity/TravelToEsbBean.java +++ b/com/engine/custom/sl/entity/TravelToEsbBean.java @@ -18,7 +18,7 @@ public class TravelToEsbBean { private String expnsRsn; private String remark; private String costDeptCode; - private String costDeptHame; + private String costDeptName; private List expndArray; @@ -36,7 +36,7 @@ public class TravelToEsbBean { "" + expnsRsn + "" + "" + remark + "" + "" + costDeptCode + "" + - "" + costDeptHame + ""); + "" + costDeptName + ""); for (ExpenseItem expenseItem : expndArray) { xmlString.append(convertObjectToXml(expenseItem, "expndArray")); @@ -181,12 +181,12 @@ public class TravelToEsbBean { this.costDeptCode = costDeptCode; } - public String getCostDeptHame() { - return costDeptHame; + public String getCostDeptName() { + return costDeptName; } - public void setCostDeptHame(String costDeptHame) { - this.costDeptHame = costDeptHame; + public void setCostDeptName(String costDeptName) { + this.costDeptName = costDeptName; } public static void main(String[] args) throws IOException { diff --git a/com/engine/tjbankSocket/impl/CWGLSocketExecute.java b/com/engine/tjbankSocket/impl/CWGLSocketExecute.java index 03e4951..aed7667 100644 --- a/com/engine/tjbankSocket/impl/CWGLSocketExecute.java +++ b/com/engine/tjbankSocket/impl/CWGLSocketExecute.java @@ -5,20 +5,14 @@ import com.cloudstore.dev.api.bean.MessageType; import com.cloudstore.dev.api.util.Util_Message; import com.engine.tjbankSocket.SocketExecute; import com.engine.util.XMLUtils; -import com.icbc.api.internal.apache.http.impl.cookie.S; import weaver.conn.RecordSet; -import weaver.conn.RecordSetTrans; import weaver.file.Prop; import weaver.general.BaseBean; -import weaver.general.GCONST; import weaver.general.StringUtil; import weaver.general.Util; -import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.RequestService; import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.nio.charset.StandardCharsets; import java.util.*; /** diff --git a/com/engine/util/SocketClientUtil.java b/com/engine/util/SocketClientUtil.java deleted file mode 100644 index c179c5c..0000000 --- a/com/engine/util/SocketClientUtil.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.engine.util; - -import com.alibaba.fastjson.JSONObject; -import org.json.JSONException; -import weaver.general.BaseBean; -import weaver.general.StringUtil; - -import java.io.*; -import java.net.Socket; -import java.nio.charset.StandardCharsets; - -//发送SocketUtil -public class SocketClientUtil { - private int port = 8090; - private String host = "127.0.0.1"; - private BaseBean bs = new BaseBean(); - - - public SocketClientUtil(String host ,int port) { - this.port = port; - this.host = host; - } - - public String send(String request) throws Exception { - // bs.writeLog("Client Start..."); - Socket socket = null; - try { - //创建一个流套接字并将其连接到指定主机上的指定端口号 - socket = new Socket(host,port); - // String str = "000006121010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币"; - // System.out.println(str); - //读取服务器端数据 - BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); - //向服务器端发送数据 - // PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8)); - PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true); - out.println(request); - char[] datalen=new char[8];//报文前八位为报文体总长度 - input.read(datalen,0,8); - String lendata=new String (datalen); - int length=Integer.parseInt(lendata); - new BaseBean().writeLog("报文长度"+length); - char[] data=new char[length]; - int datalength = input.read(data,0,length); - String requestData = new String(data); - new BaseBean().writeLog("requestData",requestData); - // String ret = input.readLine(); - System.out.println("服务器端返回过来的是: " + requestData); - bs.writeLog("服务器端返回过来的是: " + requestData); - // 如接收到 "OK" 则断开连接 - if (!StringUtil.isEmpty(requestData)) { - bs.writeLog("客户端将关闭连接"); - System.out.println("客户端将关闭连接: " + requestData); - Thread.sleep(500); - } - out.close(); - input.close(); - return requestData; - } catch (Exception e) { - bs.writeLog("客户端异常:" + e.getMessage()); - throw e; - } finally { - if (socket != null) { - try { - socket.close(); - } catch (IOException e) { - socket = null; - bs.writeLog("客户端 finally 异常:" + e.getMessage()); - } - } - } - // return "-1"; - } - - static class UpdateLogThread extends Thread { - @Override - public void run() { - try { - Thread.sleep(3000); - System.out.println("33333333"); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - } - - } - - public static void main(String[] args) { - String cece = cece(); - System.out.println(cece); - } - - - public static String cece(){ - System.out.println("1111"); - UpdateLogThread updateLogThread = new UpdateLogThread(); - updateLogThread.start(); - return "222"; - } - - -} diff --git a/com/engine/util/XMLUtils.java b/com/engine/util/XMLUtils.java deleted file mode 100644 index eea84a4..0000000 --- a/com/engine/util/XMLUtils.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.engine.util; - -import com.alibaba.druid.util.StringUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import weaver.general.BaseBean; - - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; - -public class XMLUtils { - //构建返回值 - public static String count2XML(Map headerParam,Integer todocount , Integer toreadcount ) { - try { - // 创建文档对象 - DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); - Document doc = docBuilder.newDocument(); - -// 创建根节点 - Element rootElement = doc.createElement("Service"); - doc.appendChild(rootElement); - - addServiceHeader(doc,rootElement,headerParam); - - // 创建Service_Body节点 - Element serviceBodyElement = doc.createElement("Service_Body"); - rootElement.appendChild(serviceBodyElement); - - // 创建response节点 - Element responseElement = doc.createElement("response"); - serviceBodyElement.appendChild(responseElement); - - // 创建todo节点 - Element todoElement = doc.createElement("todo"); - responseElement.appendChild(todoElement); - - // 创建count节点并设置值 - if(todocount != null) { - Element countElement = doc.createElement("count"); - countElement.setTextContent(todocount + ""); - todoElement.appendChild(countElement); - } - if(toreadcount != null){ - Element countOneElement = doc.createElement("countOne"); - countOneElement.setTextContent(toreadcount+""); - todoElement.appendChild(countOneElement); - } - - - // 将文档对象转换为XML字符串 - TransformerFactory transformerFactory = TransformerFactory.newInstance(); - Transformer transformer = transformerFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); // 设置不包含XML声明 - DOMSource source = new DOMSource(doc); - - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - StreamResult result = new StreamResult(outputStream); - - transformer.transform(source, result); - - // 将XML结果转换为字符串 - String xmlString = outputStream.toString("UTF-8"); - //System.out.println(xmlString); - return xmlString; - } catch (Exception e) { - e.printStackTrace(); - } - return ""; - } - - private static void addServiceHeader(Document doc, Element rootElement, Map headerParam) { - - // 创建Service_Body节点 - Element serviceHeaderElement = doc.createElement("Service_Header"); - rootElement.appendChild(serviceHeaderElement); - //service_sn ESB服务流水号 - if (!StringUtils.isEmpty(headerParam.get("service_sn"))){ - Element serviceSnElement = doc.createElement("service_sn"); - serviceSnElement.setTextContent(headerParam.get("service_sn")); - serviceHeaderElement.appendChild(serviceSnElement); - } - if (!StringUtils.isEmpty(headerParam.get("service_id"))){ - Element serviceIdElement = doc.createElement("service_id"); - serviceIdElement.setTextContent(headerParam.get("service_id")); - serviceHeaderElement.appendChild(serviceIdElement); - } - if (!StringUtils.isEmpty(headerParam.get("system_id"))){ - Element systemIdElement = doc.createElement("system_id"); - systemIdElement.setTextContent(headerParam.get("system_id")); - serviceHeaderElement.appendChild(systemIdElement); - } - if (!StringUtils.isEmpty(headerParam.get("requester_id"))){ - Element requesterIdElement = doc.createElement("requester_id"); - requesterIdElement.setTextContent(headerParam.get("requester_id")); - serviceHeaderElement.appendChild(requesterIdElement); - } - if (!StringUtils.isEmpty(headerParam.get("branch_id"))){ - Element branchIdElement = doc.createElement("branch_id"); - branchIdElement.setTextContent(headerParam.get("branch_id")); - serviceHeaderElement.appendChild(branchIdElement); - } - if (!StringUtils.isEmpty(headerParam.get("channel_id"))){ - Element channelIdElement = doc.createElement("channel_id"); - channelIdElement.setTextContent(headerParam.get("channel_id")); - serviceHeaderElement.appendChild(channelIdElement); - } - if (!StringUtils.isEmpty(headerParam.get("service_time"))){ - Element serviceTimeElement = doc.createElement("requester_id"); - serviceTimeElement.setTextContent(headerParam.get("service_time")); - serviceHeaderElement.appendChild(serviceTimeElement); - } - if (!StringUtils.isEmpty(headerParam.get("BnkSrlNo"))){ - Element BnkSrlNoElement = doc.createElement("BnkSrlNo"); - BnkSrlNoElement.setTextContent(headerParam.get("BnkSrlNo")); - serviceHeaderElement.appendChild(BnkSrlNoElement); - } -// if (!StringUtils.isEmpty(headerParam.get("FileFlg"))){ - Element FileFlgElement = doc.createElement("FileFlg"); - FileFlgElement.setTextContent("0"); - serviceHeaderElement.appendChild(FileFlgElement); -// } - if (!StringUtils.isEmpty(headerParam.get("SvcCd"))){ - Element SvcCdElement = doc.createElement("SvcCd"); - SvcCdElement.setTextContent(headerParam.get("SvcCd")); - serviceHeaderElement.appendChild(SvcCdElement); - } - if (!StringUtils.isEmpty(headerParam.get("SvcScn"))){ - Element SvcScnElement = doc.createElement("SvcScn"); - SvcScnElement.setTextContent(headerParam.get("SvcScn")); - serviceHeaderElement.appendChild(SvcScnElement); - } -// 响应码 - Element service_responseElement = doc.createElement("service_response"); - serviceHeaderElement.appendChild(service_responseElement); - if (!StringUtils.isEmpty(headerParam.get("status"))){ - Element statusElement = doc.createElement("status"); - statusElement.setTextContent(headerParam.get("status")); - service_responseElement.appendChild(statusElement); - } - if (!StringUtils.isEmpty(headerParam.get("code"))){ - Element codeElement = doc.createElement("code"); - codeElement.setTextContent(headerParam.get("code")); - service_responseElement.appendChild(codeElement); - } - if (!StringUtils.isEmpty(headerParam.get("desc"))){ - Element descElement = doc.createElement("desc"); - descElement.setTextContent(headerParam.get("desc")); - service_responseElement.appendChild(descElement); - } - - } - - - public static Map parseXMLToMap(String xmlString) { - // new BaseBean().writeLog("xmlString=="+xmlString); - // xmlString = new String(xmlString.getBytes(StandardCb harsets.UTF_8)).trim(); - // new BaseBean().writeLog("xmlString=="+xmlString); - xmlString = xmlString.trim(); - Map resultMap = new HashMap<>(); - try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - - ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(xmlString.getBytes(StandardCharsets.UTF_8)); - Document document = builder.parse(byteArrayInputStream); - - Element rootElement = document.getDocumentElement(); - extractValues(rootElement, resultMap); - } catch (Exception e) { - new BaseBean().writeLog(e.getMessage()); - e.printStackTrace(); - } - return resultMap; - } - - private static void extractValues(Element element, Map resultMap) { - NodeList childNodes = element.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - if (childNodes.item(i) instanceof Element) { - Element childElement = (Element) childNodes.item(i); - String nodeName = childElement.getNodeName(); - String nodeValue = childElement.getTextContent(); - resultMap.put(nodeName, nodeValue); - extractValues(childElement, resultMap); - } - } - } - - //财务系统构建返回体 - public static String CW2XML(Map headerParam,String retCd , String errorMessage ) { - try { - // 创建文档对象 - DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); - Document doc = docBuilder.newDocument(); - -// 创建根节点 - Element rootElement = doc.createElement("Service"); - doc.appendChild(rootElement); - - addServiceHeader(doc,rootElement,headerParam); - - // 创建Service_Body节点 - Element serviceBodyElement = doc.createElement("Service_Body"); - rootElement.appendChild(serviceBodyElement); - - // 创建response节点 - Element responseElement = doc.createElement("response"); - serviceBodyElement.appendChild(responseElement); - - // // 创建todo节点 - // Element todoElement = doc.createElement("todo"); - // responseElement.appendChild(todoElement); - - // 创建count节点并设置值 - if(retCd != null) { - Element countElement = doc.createElement("retCd"); - countElement.setTextContent(retCd + ""); - responseElement.appendChild(countElement); - } - if(errorMessage != null){ - Element countOneElement = doc.createElement("errorMessage"); - countOneElement.setTextContent(errorMessage+""); - responseElement.appendChild(countOneElement); - } - - - // 将文档对象转换为XML字符串 - TransformerFactory transformerFactory = TransformerFactory.newInstance(); - Transformer transformer = transformerFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); // 设置不包含XML声明 - DOMSource source = new DOMSource(doc); - - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - StreamResult result = new StreamResult(outputStream); - - transformer.transform(source, result); - - // 将XML结果转换为字符串 - String xmlString = outputStream.toString("UTF-8"); - //System.out.println(xmlString); - String length = String.format("%08d", xmlString.length()); - return length+xmlString; - } catch (Exception e) { - e.printStackTrace(); - } - return ""; - } -} diff --git a/com/engine/web/sl/SLController.java b/com/engine/web/sl/SLController.java index d91504d..32cd106 100644 --- a/com/engine/web/sl/SLController.java +++ b/com/engine/web/sl/SLController.java @@ -7,8 +7,6 @@ import com.engine.custom.sl.entity.EsbRequestHeader; import com.engine.custom.sl.entity.TravelToEsbBean; import com.engine.util.SocketClientUtil; import com.engine.util.XMLUtils; -import weaver.conn.RecordSet; -import weaver.wechat.util.Utils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -18,7 +16,6 @@ import javax.ws.rs.core.Context; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.HashMap; import java.util.Map; public class SLController { diff --git a/com/engine/web/tjbk/TJBKWorkFlow.java b/com/engine/web/tjbk/TJBKWorkFlow.java index d436211..3c2e5fa 100644 --- a/com/engine/web/tjbk/TJBKWorkFlow.java +++ b/com/engine/web/tjbk/TJBKWorkFlow.java @@ -7,9 +7,6 @@ import com.engine.common.util.ParamUtil; import com.engine.service.TJBKWorkFlowService; import com.engine.service.impl.TJBKWorkFlowServiceImpl; import com.engine.util.XMLUtils; -import com.icbc.api.internal.apache.http.impl.cookie.S; -import weaver.general.BaseBean; -import weaver.general.StringUtil; import weaver.security.rsa.IOUtils; import javax.servlet.http.HttpServletRequest; @@ -20,7 +17,6 @@ import javax.ws.rs.core.Context; import java.io.*; -import java.util.HashMap; import java.util.Map; public class TJBKWorkFlow { diff --git a/interface/transfer/reportApp.jsp b/interface/transfer/reportApp.jsp new file mode 100644 index 0000000..e50cdfa --- /dev/null +++ b/interface/transfer/reportApp.jsp @@ -0,0 +1,60 @@ +<%@ page import="weaver.conn.RecordSetDataSource" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="com.engine.custom.corn.util.ReportUtil" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<% + out.print("
最爱用APP更新开始执行"); + execute(); + out.print("
最爱用APP更新结束"); + +%> +<%! + + + public void execute() { + + RecordSet rs = new RecordSet(); + updateAppAndNum(rs); + + + + } + + private int updateAppAndNum(RecordSet rs) { + rs.executeUpdate("UPDATE uf_personreport " + + "SET " + + " (zaydyy, ljsycs) = ( " + + " SELECT MaxField, MaxValue " + + " FROM ( " + + " SELECT id , " + + " GREATEST( " + + " NVL(gsznzydjs, 0), " + + " NVL(itptdjs, 0), " + + " NVL(ygzs, 0), " + + " NVL(sktx, 0), " + + " NVL(sxsp, 0) " + + " ) AS MaxValue, " + + " CASE GREATEST( " + + " NVL(gsznzydjs, 0), " + + " NVL(itptdjs, 0), " + + " NVL(ygzs, 0), " + + " NVL(sktx, 0), " + + " NVL(sxsp, 0) " + + " ) " + + " WHEN NVL(gsznzydjs, 0) THEN '公司智能作业' " + + " WHEN NVL(itptdjs, 0) THEN 'IT项目审批' " + + " WHEN NVL(ygzs, 0) THEN '云工作室' " + + " WHEN NVL(sktx, 0) THEN '数看天行' " + + " WHEN NVL(sxsp, 0) THEN '授信审批' " + + " END AS MaxField " + + " FROM uf_personreport " + + " ) " + + " WHERE uf_personreport.id = id " + + " ) " + + "WHERE gsznzydjs is not null or itptdjs is not null or ygzs is not null or sktx is not null or sxsp is not null"); + return rs.getUpdateCount(); + } + + +%> \ No newline at end of file diff --git a/interface/transfer/reportGjc.jsp b/interface/transfer/reportGjc.jsp index 05a3574..08ff074 100644 --- a/interface/transfer/reportGjc.jsp +++ b/interface/transfer/reportGjc.jsp @@ -21,19 +21,19 @@ String out = ""; int i = updateRoleGjc(rs, roleMember); out = out + "
updateRoleGjc==>" + i; - int i1 = updateGjcOfficialWf(rs, 200); + int i1 = updateGjcOfficialWf(rs, 650); out = out + "
updateGjcOfficialWf==>" + i1; - int i2 = updateGjcAffairsWf(rs, 200); + int i2 = updateGjcAffairsWf(rs, 650); out = out + "
updateGjcAffairsWf==>" + i2; - int i3 = updateGjcBusinessWf(rs, 200); + int i3 = updateGjcBusinessWf(rs, 650); out = out + "
updateGjcBusinessWf==>" + i3; - int i4 = updateGjcShareDoc(rs, 200); + int i4 = updateGjcShareDoc(rs, 650); out = out + "
updateGjcShareDoc==>" + i4; - int i5 = updateGjcMeeting(rs, 200); + int i5 = updateGjcMeeting(rs, 650); out = out + "
updateGjcMeeting==>" + i5; - int i6 = updateGjcLogin(rs, 200); + int i6 = updateGjcLogin(rs, 650); out = out + "
updateGjcLogin==>" + i6; - int i7 = updateGjcMsg(rs, 200); + int i7 = updateGjcMsg(rs, 650); out = out + "
updateGjcMsg==>" + i7; int i8 = updateGjcNull(rs); out = out + "
updateGjcNull==>" + i8; diff --git a/interface/transfer/testError.jsp b/interface/transfer/testError.jsp index 89e387b..1d7250f 100644 --- a/interface/transfer/testError.jsp +++ b/interface/transfer/testError.jsp @@ -45,7 +45,17 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" %> <% - response.sendError(500,"报错测试"); + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if ("loginidweaver".equals(cookie.getName())) { + String cookieValue = cookie.getValue(); + // 使用cookieValue + out.print(cookieValue); + out.print(""); + } + } + } %> <%! diff --git a/opt/weaver/ecology/interface/transfer/TJBKYearReport.jsp b/opt/weaver/ecology/interface/transfer/TJBKYearReport.jsp new file mode 100644 index 0000000..48fd421 --- /dev/null +++ b/opt/weaver/ecology/interface/transfer/TJBKYearReport.jsp @@ -0,0 +1,225 @@ + +<%@ page import="java.util.Map" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="javax.ws.rs.core.Context" %> +<%@ page import="java.util.HashMap" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="java.time.LocalDate" %> +<%@ page import="java.time.format.DateTimeFormatter" %> +<%@ page import="java.time.temporal.ChronoUnit" %> +<%@ page import="weaver.general.StringUtil" %> +<%@ page import="java.time.LocalDateTime" %> +<%@ page import="java.util.Arrays" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + +<% + out.print(getVersionInfo(request,response)); +%> +<%! + public String getVersionInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap(); + Map paramMap = ParamUtil.request2Map(request); + RecordSet recordSet = new RecordSet(); + + + String userId = (String) paramMap.get("userId"); + String[] hlduserIDS = {"29","25","27","28","26","24","23","22"}; + // if (StringUtil.isEmpty(userId)){ + // return JSONObject.toJSONString(new Result(500,"人员id为空")); + // } + String sql = "select * from uf_personreport where ry = ? and nd = ? order by id desc"; + // LocalDate now = LocalDate.now(); + // int year = now.getYear(); + recordSet.executeQuery(sql,userId,2023); + HashMap firstMap = new HashMap<>(); + String inputDateStr = "2023-08-07"; + + // 解析输入日期 + LocalDate inputDate = LocalDate.parse(inputDateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + // 转换格式 + String outputDateStr = inputDate.format(DateTimeFormatter.ofPattern("yyyy年M月d日")); + // 计算距离今天的天数 + LocalDate today = LocalDate.now(); + long daysBetween = ChronoUnit.DAYS.between(inputDate, today); + // firstMap.put("ksrq",outputDateStr); + // firstMap.put("jjts",daysBetween+""); + + + System.out.println("距离今天的天数: " + daysBetween); + HashMap secondMap = new HashMap<>(); + HashMap thirdMap = new HashMap<>(); + HashMap fourthMap = new HashMap<>(); + HashMap fifthMap = new HashMap<>(); + HashMap sixthMap = new HashMap<>(); + HashMap seventhMap = new HashMap<>(); + HashMap eighthMap = new HashMap<>(); + HashMap ninthMap = new HashMap<>(); + if(recordSet.next()){ + secondMap.put("ksrq",outputDateStr); + secondMap.put("jjts",daysBetween+""); + secondMap.put("ddcs",Util.null2String(recordSet.getString("ddcs"))); + secondMap.put("yygs",Util.null2String(recordSet.getString("yygs"))); + secondMap.put("gwbllcxs",Util.null2String(recordSet.getString("gwbllcxs"))); + secondMap.put("swsplcxs",Util.null2String(recordSet.getString("swsplcxs"))); + thirdMap.put("tgwzzs",Util.null2String(recordSet.getString("tgwzzs"))); + thirdMap.put("zshywz1",Util.null2String(recordSet.getString("zshywz1"))); + thirdMap.put("zshywz2",Util.null2String(recordSet.getString("zshywz2"))); + thirdMap.put("zshywz3",Util.null2String(recordSet.getString("zshywz3"))); + fourthMap.put("jsxxzongshu",Util.null2String(recordSet.getString("jsxxzongshu"))); + fourthMap.put("ysxljfqhycs",Util.null2String(recordSet.getString("ysxljfqhycs"))); + fourthMap.put("grhycycs",Util.null2String(recordSet.getString("grhycycs"))); + fourthMap.put("zjgxwd",Util.null2String(recordSet.getString("zjgxwd"))); + fourthMap.put("grwdgx",Util.null2String(recordSet.getString("grwdgx"))); + fourthMap.put("xwhycs",Util.null2String(recordSet.getString("xwhycs"))); + try { + if (Arrays.asList(hlduserIDS).contains(userId)){ + fourthMap.put("wlsfzs","0"); + }else { + fourthMap.put("wlsfzs","1"); + } + }catch (Exception e){ + e.printStackTrace(); + } + fifthMap.put("sktxysfxs",Util.null2String(recordSet.getString("sktxysfxs"))); + fifthMap.put("sktxcycs",Util.null2String(recordSet.getString("sktxcycs"))); + sixthMap.put("gczgw",Util.null2String(recordSet.getString("gczgw"))); + sixthMap.put("ljjyzz",Util.null2String(recordSet.getString("ljjyzz"))); + sixthMap.put("ljjp",Util.null2String(recordSet.getString("ljjp"))); + sixthMap.put("jjrclgw",Util.null2String(recordSet.getString("jjrclgw"))); + sixthMap.put("qnljclgw",Util.null2String(recordSet.getString("qnljclgw"))); + sixthMap.put("cgbl",Util.null2String(recordSet.getString("cgbl"))); + String dycclgwrq = Util.null2String(recordSet.getString("dycclgwrq")); + if (!(StringUtil.isEmpty(dycclgwrq))){ + LocalDate date = LocalDate.parse(dycclgwrq, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + sixthMap.put("dycclgwrqMM",date.getMonthValue()+""); + sixthMap.put("dycclgwrqDD",date.getDayOfMonth()+""); + }else { + sixthMap.put("dycclgwrqMM",""); + sixthMap.put("dycclgwrqDD",""); + } + sixthMap.put("dycclgwrq",Util.null2String(recordSet.getString("dycclgwrq"))); + String clgwzwrq = Util.null2String(recordSet.getString("clgwzwrq")); + if (!(StringUtil.isEmpty(dycclgwrq))){ + LocalDateTime date2 = LocalDateTime.parse(clgwzwrq, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + sixthMap.put("clgwzwrqMM",date2.getMonthValue()+""); + sixthMap.put("clgwzwrqDD",date2.getDayOfMonth()+""); + }else { + sixthMap.put("clgwzwrqMM",""); + sixthMap.put("clgwzwrqDD",""); + } + sixthMap.put("clgwzwrq",Util.null2String(recordSet.getString("clgwzwrq"))); + + seventhMap.put("ljsyslcs",Util.null2String(recordSet.getString("ljsyslcs"))); + seventhMap.put("qgzydf",Util.null2String(recordSet.getString("qgzydf"))); + seventhMap.put("swsplcgs",Util.null2String(recordSet.getString("swsplcgs"))); + seventhMap.put("nddjlzgyy",Util.null2String(recordSet.getString("nddjlzgyy"))); + seventhMap.put("ljdjcs",Util.null2String(recordSet.getString("ljdjcs"))); + seventhMap.put("zaydyy",Util.null2String(recordSet.getString("zaydyy"))); + seventhMap.put("ljsycs",Util.null2String(recordSet.getString("ljsycs"))); + eighthMap.put("pjmrzxrs",Util.null2String(recordSet.getString("pjmrzxrs"))); + eighthMap.put("pjmrzxrszb",Util.null2String(recordSet.getString("pjmrzxrszb"))); + eighthMap.put("ljdloacs",Util.null2String(recordSet.getString("ljdloacs"))); + // eighthMap.put("dlcscgrszb",Util.null2String(recordSet.getString("dlcscgrszb"))); + } + String gjc = Util.null2String(recordSet.getString("gjc")); + String sfwxld = Util.null2String(recordSet.getString("sfwxld")); + ninthMap.put("sfwxld",sfwxld); + if ("统筹全局".equals(gjc)){ + ninthMap.put("gjc","统筹全局"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("sktxcycs"))); + ninthMap.put("filed2","2023-12-05 23:24:45"); + }else if("天行守护者".equals(gjc)){ + ninthMap.put("gjc","天行守护者"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("qnljclgw"))); + ninthMap.put("filed2","2023-12-05"); + ninthMap.put("filed3","27"); + }else if("勇担重担实干家".equals(gjc)){ + ninthMap.put("gjc","勇担重担实干家"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("grfsxxs"))); + ninthMap.put("filed2",Util.null2String(recordSet.getString("zwdlrq"))); + }else if("智慧OA最亲密的朋友".equals(gjc)){ + ninthMap.put("gjc","智慧OA最亲密的朋友"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("ljdloacs"))); + ninthMap.put("filed2","90%"); + }else if("社交天花板".equals(gjc)){ + ninthMap.put("gjc","社交天花板"); + ninthMap.put("filed1",112); + ninthMap.put("filed2","39"); + ninthMap.put("filed3","90%"); + }else if("人形公文处理机".equals(gjc)){ + ninthMap.put("gjc","人形公文处理机"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("qnljclgw"))); + ninthMap.put("filed2","90%"); + }else if("宝藏事务挖掘机".equals(gjc)){ + ninthMap.put("gjc","宝藏事务挖掘机"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("grswsps"))); + ninthMap.put("filed2","90%"); + }else if("走南闯北 遥遥领先".equals(gjc)){ + ninthMap.put("gjc","走南闯北 遥遥领先"); + ninthMap.put("filed1","90%"); + }else if("知识分享之光".equals(gjc)){ + ninthMap.put("gjc","知识分享之光"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("grwdgx"))); + ninthMap.put("filed2","90%"); + }else if("会议守护者".equals(gjc)) { + ninthMap.put("gjc", "会议守护者"); + ninthMap.put("filed1", Util.null2String(recordSet.getString("grhycycs"))); + ninthMap.put("filed2", "90%"); + }else if("智慧OA探索家".equals(gjc)){ + ninthMap.put("gjc","智慧OA探索家"); + }else if("夙夜在公,庭无留事1".equals(gjc)){ + ninthMap.put("gjc","夙夜在公,庭无留事"); + ninthMap.put("flag","1"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("qnljclgw"))); + ninthMap.put("filed2",Util.null2String(recordSet.getString("cgbl"))); + }else if("夙夜在公,庭无留事2".equals(gjc)){ + ninthMap.put("gjc","夙夜在公,庭无留事"); + ninthMap.put("flag","2"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("qnljclgw"))); + ninthMap.put("filed2",Util.null2String(recordSet.getString("blgwzddyt"))); + ninthMap.put("filed3",Util.null2String(recordSet.getString("ytnblgwzds"))); + }else if("兢兢业业,案无留牍".equals(gjc)){ + ninthMap.put("gjc","兢兢业业,案无留牍"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("qnljclgw"))); + ninthMap.put("filed2",Util.null2String(recordSet.getString("blgwzddyt"))); + ninthMap.put("filed3",Util.null2String(recordSet.getString("ytnblgwzds"))); + }else if("不辞辛劳,雷厉风行".equals(gjc)){ + ninthMap.put("gjc","不辞辛劳,雷厉风行"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("qnljclgw"))); + ninthMap.put("filed2",Util.null2String(recordSet.getString("blgwzddyt"))); + ninthMap.put("filed3",Util.null2String(recordSet.getString("ytnblgwzds"))); + } + + if ("0".equals(sfwxld)){ + // ninthMap.put("gjc","不辞辛劳,雷厉风行"); + ninthMap.put("filed1",Util.null2String(recordSet.getString("xxrdlcs"))); + ninthMap.put("filed2",Util.null2String(recordSet.getString("xxrdlcscgbl"))); + ninthMap.put("filed3",Util.null2String(recordSet.getString("sktx"))); + } + ninthMap.put("url",getGJCUrl(gjc)); + apidatas.put("first",firstMap); + apidatas.put("second",secondMap); + apidatas.put("third",thirdMap); + apidatas.put("fourth",fourthMap); + apidatas.put("fifth",fifthMap); + apidatas.put("sixth",sixthMap); + apidatas.put("seventh",seventhMap); + apidatas.put("eighth",eighthMap); + apidatas.put("ninth",ninthMap); + Map Result = new HashMap<>(); + Result.put("code",200); + Result.put("data",apidatas); + return JSONObject.toJSONString(Result) ; + } + + private String getGJCUrl(String gjc) { + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select * from uf_reportkeyword where name = ?" ,gjc); + recordSet.next(); + return recordSet.getString("url"); + + } +%> \ No newline at end of file diff --git a/opt/weaver/ecology/interface/transfer/YearReportCorn.jsp b/opt/weaver/ecology/interface/transfer/YearReportCorn.jsp new file mode 100644 index 0000000..0f7d45f --- /dev/null +++ b/opt/weaver/ecology/interface/transfer/YearReportCorn.jsp @@ -0,0 +1,185 @@ +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="javax.ws.rs.core.Context" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="java.time.LocalDate" %> +<%@ page import="java.time.format.DateTimeFormatter" %> +<%@ page import="java.time.temporal.ChronoUnit" %> +<%@ page import="weaver.general.StringUtil" %> +<%@ page import="java.time.LocalDateTime" %> +<%@ page import="weaver.file.Prop" %> +<%@ page import="java.time.DayOfWeek" %> +<%@ page import="java.util.*" %> +<%@ page import="weaver.conn.RecordSetDataSource" %> +<%@ page import="com.engine.custom.corn.Thread.YearReportThread" %> +<%@ page import="com.engine.custom.corn.util.ReportUtil" %> +<%@ page import="java.util.stream.Collectors" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + +<% + RecordSetDataSource em7rs = new RecordSetDataSource("em7"); + RecordSetDataSource emprs = new RecordSetDataSource("dm_msg"); + RecordSet rs = new RecordSet(); + RecordSet rs2 = new RecordSet(); + RecordSet rs3 = new RecordSet(); + String insertSql = "INSERT INTO uf_personreport( RY, ND, DDCS, TGWZZS, ZSHYWZ1, ZSHYWZ2, ZSHYWZ3, YSXLJFQHYCS, GRHYCYCS, ZJGXWD, GRWDGX,SKTXYSFXS, SKTXCYCS, GCZGW, LJJYZZ, LJJP, JJRCLGW, QNLJCLGW, CGBL, LJSYSLCS, QGZYDF, NDDJLZGYY,LJDJCS, ZAYDYY, LJSYCS, PJMRZXRS, PJMRZXRSZB, LJDLOACS, DLCSCGRSZB, YYGS, GWBLLCXS, SWSPLCXS,JSXXZONGSHU, XWHYCS, SWSPLCGS,FORMMODEID)" + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + // 获取总人数 + String sql = "select count(*) cnt from Hrmresource"; + rs.executeQuery(sql); + Integer cnt = 0; + if (rs.next()){ + cnt = rs.getInt("cnt"); + } + + + //按照模板插入写死的值 + Map map = getConfigRecord(); + + String sqlhrm = "select * from HRMRESOURCE a left join uf_personreport b on a.id = b.ry where b.ry is null and accounttype != 1 and a.workcode is not null and belongto = -1 and a.status in ( 0,1,2,3)"; + rs.executeQuery(sqlhrm); + + //获取节假日日期字符串查询条件 + List allWeekendsOfYear = ReportUtil.getAllWeekendsOfYear(2023).stream() + .map(s -> "'" + s + "'") + .collect(Collectors.toList());; + String weekStr = String.join(",",allWeekendsOfYear); + String wfids = Prop.getPropValue("yearReport", "gwwfid"); + String slwfid = Prop.getPropValue("yearReport", "slwfid"); + String AffairsWfid = ReportUtil.getAffairsWfid(rs3); + String updateuserSql = "update uf_personreport set workcode = ? , name = ? , grhycycs = ? ,grwdgx = ? ,jjrclgw = ? ,qnljclgw = ?,cgbl = ? ,ljdloacs = ?,clgwzwrq = ?,grswsps = ?,grcylts = ?,grfsxxrs = ?,grfsxxqlss=?,ljsyslcs = ?,dycclgwrq = ? where ry = ?"; + + + while (rs.next()){ + String id = rs.getString("id"); + rs2.executeUpdate(insertSql,id,map.get("ND"),map.get("DDCS"),map.get("TGWZZS"),map.get("ZSHYWZ1"),map.get("ZSHYWZ2"),map.get("ZSHYWZ3"),map.get("YSXLJFQHYCS"),map.get("GRHYCYCS"),map.get("ZJGXWD"),map.get("GRWDGX"),map.get("SKTXYSFXS"),map.get("SKTXCYCS"),map.get("GCZGW"),map.get("LJJYZZ"),map.get("LJJP"),map.get("JJRCLGW"),map.get("QNLJCLGW"),map.get("CGBL"),map.get("LJSYSLCS"),map.get("QGZYDF"),map.get("NDDJLZGYY"),map.get("LJDJCS"),map.get("ZAYDYY"),map.get("LJSYCS"),map.get("PJMRZXRS"),map.get("PJMRZXRSZB"),map.get("LJDLOACS"),map.get("DLCSCGRSZB"),map.get("YYGS"),map.get("GWBLLCXS"),map.get("SWSPLCXS"),map.get("JSXXZONGSHU"),map.get("XWHYCS"),map.get("SWSPLCGS"),map.get("FORMMODEID")); + String workcode = rs.getString("WORKCODE"); + String name = rs.getString("LASTNAME"); + int shareDocCnt = com.wbi.util.Util.getIntValue(ReportUtil.getShareDOCCountbyUserid(rs2, id)+"",0) ; + int personMeetCount = com.wbi.util.Util.getIntValue(ReportUtil.getMeetCountByUserid(rs2, id)+"",0) ; + int yearOfficialWfCount = com.wbi.util.Util.getIntValue(ReportUtil.getYearOfficialWfCount(rs2, id, wfids)+"",0) ; + int holidayOfficialWfCount = com.wbi.util.Util.getIntValue(ReportUtil.getHolidayOfficialWfCount(rs2, id, wfids,weekStr)+"",0) ; + int officialWfCountPercentage = com.wbi.util.Util.getIntValue(ReportUtil.getOfficialWfCountPercentage(rs2, id, wfids,weekStr,cnt)+"",0) ; + String lastTimeDate = com.wbi.util.Util.null2String(ReportUtil.getOfficialWflastTimeDate(rs2, id, wfids)) ; + int loginDayCount = com.wbi.util.Util.getIntValue(ReportUtil.getLoginDayCount(rs2, id)+"",0) ; + int AffairsWfCount = com.wbi.util.Util.getIntValue(ReportUtil.getYearAffairsWfCount(rs2, id, AffairsWfid)+"",0); + int MsgCount = com.wbi.util.Util.getIntValue(ReportUtil.getMsgCountByUserid(emprs, id)+"",0); + int PeopleCount = com.wbi.util.Util.getIntValue(ReportUtil.getMsgPeopleCountByUserid(emprs, id)+"",0); + int MsgGangHsienCount = com.wbi.util.Util.getIntValue(ReportUtil.getMsgGangHsienCountByUserid(emprs, id)+"",0); + int BusinessWfCount = com.wbi.util.Util.getIntValue(ReportUtil.getBusinessWfCount(rs2, id,slwfid)+"",0); + String LastOfficialWfDate = com.wbi.util.Util.null2String(ReportUtil.getLastOfficialWfDate(rs2, id,wfids)); + rs.executeUpdate(updateuserSql,workcode,name,personMeetCount,shareDocCnt,holidayOfficialWfCount,yearOfficialWfCount,officialWfCountPercentage,loginDayCount,lastTimeDate,AffairsWfCount,MsgCount,PeopleCount,MsgGangHsienCount,BusinessWfCount,LastOfficialWfDate,id); + out.print(workcode); + } + +%> +<%! + + + + private String getAffairsWfid(RecordSet rs) { + String swspwftype = Prop.getPropValue("yearReport", "swspwftype"); + rs.executeQuery("select id from workflow_base where workflowtype in ( "+swspwftype+" )"); + ArrayList wfids = new ArrayList<>(); + while (rs.next()){ + wfids.add(com.wbi.util.Util.null2String(rs.getString("id"))); + } + return String.join(",",wfids); + } + + + /** + * 获取指定年的休息日(双休情况下) + * @param year + * @return + */ + private static List getAllWeekendsOfYear(int year) { + //将本年的周六周日加到list中 + List weekendDates = new ArrayList<>(); + LocalDate date = LocalDate.of(year, 1, 1); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + while (date.getYear() == year) { + if (date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY) { + weekendDates.add(date.format(formatter)); + } + date = date.plusDays(1); + } + //查询库里的节假日设置 + RecordSet recordSet = new RecordSet(); + // String groupid = Util.null2String(Prop.getPropValue("year_report_set", "groupid"),"24") ; + String groupid = "24" ; + recordSet.executeQuery("select changeType ,holidayDate from KQ_HolidaySet where groupid = ?",groupid); + //去掉调配工作日,加上公众假日和调配休息日 + List WorkDates = new ArrayList<>(); + List holidayDates = new ArrayList<>(); + while (recordSet.next()){ + String changeType = recordSet.getString("changeType"); + String holidayDate = recordSet.getString("holidayDate"); + if ("2".equals(changeType)){ + WorkDates.add(holidayDate); + }else if("1".equals(changeType) || "3".equals(changeType)){ + holidayDates.add(holidayDate); + } + } + weekendDates.removeAll(WorkDates); + HashSet set = new HashSet<>(); + set.addAll(weekendDates); + set.addAll(holidayDates); + return new ArrayList<>(set); + } + + private Map getConfigRecord(){ + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select * from uf_personreport where ry = 1"); + recordSet.next(); + HashMap map = new HashMap<>(); + map.put("RY", com.wbi.util.Util.null2String(recordSet.getString("RY"))); + map.put("ND", com.wbi.util.Util.null2String(recordSet.getString("ND"))); + map.put("DDCS", com.wbi.util.Util.null2String(recordSet.getString("DDCS"))); + map.put("TGWZZS", com.wbi.util.Util.null2String(recordSet.getString("TGWZZS"))); + map.put("ZSHYWZ1", com.wbi.util.Util.null2String(recordSet.getString("ZSHYWZ1"))); + map.put("ZSHYWZ2", com.wbi.util.Util.null2String(recordSet.getString("ZSHYWZ2"))); + map.put("ZSHYWZ3", com.wbi.util.Util.null2String(recordSet.getString("ZSHYWZ3"))); + map.put("YSXLJFQHYCS", com.wbi.util.Util.null2String(recordSet.getString("YSXLJFQHYCS"))); + map.put("GRHYCYCS", com.wbi.util.Util.null2String(recordSet.getString("GRHYCYCS"))); + map.put("ZJGXWD", com.wbi.util.Util.null2String(recordSet.getString("ZJGXWD"))); + map.put("GRWDGX", com.wbi.util.Util.null2String(recordSet.getString("GRWDGX"))); + map.put("SKTXYSFXS", com.wbi.util.Util.null2String(recordSet.getString("SKTXYSFXS"))); + map.put("SKTXCYCS", com.wbi.util.Util.null2String(recordSet.getString("SKTXCYCS"))); + map.put("GCZGW", com.wbi.util.Util.null2String(recordSet.getString("GCZGW"))); + map.put("LJJYZZ", com.wbi.util.Util.null2String(recordSet.getString("LJJYZZ"))); + map.put("LJJP", com.wbi.util.Util.null2String(recordSet.getString("LJJP"))); + map.put("JJRCLGW", com.wbi.util.Util.null2String(recordSet.getString("JJRCLGW"))); + map.put("QNLJCLGW", com.wbi.util.Util.null2String(recordSet.getString("QNLJCLGW"))); + map.put("CGBL", com.wbi.util.Util.null2String(recordSet.getString("CGBL"))); + map.put("LJSYSLCS", com.wbi.util.Util.null2String(recordSet.getString("LJSYSLCS"))); + map.put("QGZYDF", com.wbi.util.Util.null2String(recordSet.getString("QGZYDF"))); + map.put("NDDJLZGYY", com.wbi.util.Util.null2String(recordSet.getString("NDDJLZGYY"))); + map.put("LJDJCS", com.wbi.util.Util.null2String(recordSet.getString("LJDJCS"))); + map.put("ZAYDYY", com.wbi.util.Util.null2String(recordSet.getString("ZAYDYY"))); + map.put("LJSYCS", com.wbi.util.Util.null2String(recordSet.getString("LJSYCS"))); + map.put("PJMRZXRS", com.wbi.util.Util.null2String(recordSet.getString("PJMRZXRS"))); + map.put("PJMRZXRSZB", com.wbi.util.Util.null2String(recordSet.getString("PJMRZXRSZB"))); + map.put("LJDLOACS", com.wbi.util.Util.null2String(recordSet.getString("LJDLOACS"))); + map.put("DLCSCGRSZB", com.wbi.util.Util.null2String(recordSet.getString("DLCSCGRSZB"))); + map.put("FORMMODEID", com.wbi.util.Util.null2String(recordSet.getString("FORMMODEID"))); + map.put("MODEDATACREATER", com.wbi.util.Util.null2String(recordSet.getString("MODEDATACREATER"))); + map.put("MODEDATACREATERTYPE", com.wbi.util.Util.null2String(recordSet.getString("MODEDATACREATERTYPE"))); + map.put("MODEDATACREATEDATE", com.wbi.util.Util.null2String(recordSet.getString("MODEDATACREATEDATE"))); + map.put("MODEDATACREATETIME", com.wbi.util.Util.null2String(recordSet.getString("MODEDATACREATETIME"))); + map.put("MODEDATAMODIFIER", com.wbi.util.Util.null2String(recordSet.getString("MODEDATAMODIFIER"))); + map.put("MODEDATAMODIFYDATETIME", com.wbi.util.Util.null2String(recordSet.getString("MODEDATAMODIFYDATETIME"))); + map.put("FORM_BIZ_ID", com.wbi.util.Util.null2String(recordSet.getString("FORM_BIZ_ID"))); + map.put("MODEUUID", com.wbi.util.Util.null2String(recordSet.getString("MODEUUID"))); + map.put("YYGS", com.wbi.util.Util.null2String(recordSet.getString("YYGS"))); + map.put("GWBLLCXS", com.wbi.util.Util.null2String(recordSet.getString("GWBLLCXS"))); + map.put("SWSPLCXS", com.wbi.util.Util.null2String(recordSet.getString("SWSPLCXS"))); + map.put("JSXXZONGSHU", com.wbi.util.Util.null2String(recordSet.getString("JSXXZONGSHU"))); + map.put("XWHYCS", com.wbi.util.Util.null2String(recordSet.getString("XWHYCS"))); + map.put("SWSPLCGS", com.wbi.util.Util.null2String(recordSet.getString("SWSPLCGS"))); + return map; + + } +%> \ No newline at end of file diff --git a/opt/weaver/ecology/interface/transfer/todoNum_ITXM.jsp b/opt/weaver/ecology/interface/transfer/todoNum_ITXM.jsp new file mode 100644 index 0000000..1a44832 --- /dev/null +++ b/opt/weaver/ecology/interface/transfer/todoNum_ITXM.jsp @@ -0,0 +1,124 @@ +<%@ page import="com.engine.custom.sl.entity.EsbRequestHeader" %> +<%@ page import="java.text.SimpleDateFormat" %> +<%@ page import="java.util.Date" %> +<%@ page import="com.engine.custom.sl.entity.TravelToEsbBean" %> +<%@ page import="java.nio.charset.StandardCharsets" %> +<%@ page import="com.engine.util.SocketClientUtil" %> +<%@ page import="com.engine.util.XMLUtils" %> +<%@ page import="java.util.Map" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="java.net.Socket" %> +<%@ page import="weaver.general.BaseBean" %> +<%@ page import="weaver.general.StringUtil" %> +<%@ page import="java.io.*" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="weaver.hrm.HrmUserVarify" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + +<% + + // Map param = ParamUtil.request2Map(request); + // String workCode = param.get("workCode").toString(); + String workCode = HrmUserVarify.getUser(request, response).getLoginid(); + String timeStr = generateTimestamp(); + EsbRequestHeader esbRequestHeader = new EsbRequestHeader(); + esbRequestHeader.setService_sn(timeStr+workCode); + esbRequestHeader.setSystem_id("0275"); + esbRequestHeader.setRequester_id("0258"); + esbRequestHeader.setBranch_id("ITMS0002"); + esbRequestHeader.setChannel_id("17"); + esbRequestHeader.setService_time(timeStr); + esbRequestHeader.setNeed_request(""); + esbRequestHeader.setSvcCd("500130004"); + esbRequestHeader.setSvcScn("17"); + String bnkSrlNo = esbRequestHeader.getRequester_id() + timeStr + workCode; + esbRequestHeader.setBnkSrlNo(bnkSrlNo); + esbRequestHeader.setFileFlg("0"); + String Service_Body = "todogetCountuserNum"+workCode+"" ; + String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header"); + String serviceXML = ""; + // out.print("UTF_8_serviceXML==="+ serviceXML); + serviceXML = serviceXML + Service_Header + Service_Body; + serviceXML = serviceXML + ""; + // out.print("UTF_8_serviceXML==="+ serviceXML); + String length = String.format("%08d", serviceXML.length()); + serviceXML = length + serviceXML; + serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8)); + String send = ""; + try { + send = send(serviceXML); + // out.print("返回=="+send); + }catch (Exception e){ + // out.print("异常=="+ e.getMessage()); + } + // SocketClientUtil scketClient = new SocketClientUtil("14.1.76.116",10149); + // String substring = send.substring(0, 8); + // String substring1 = send.substring(8); + // out.print(substring); + Map map = XMLUtils.parseXMLToMap(send); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("count", Util.getIntValue(map.get("count"))); + out.print(jsonObject.toJSONString()); +%> +<%! + public String send(String request) throws Exception { + // bs.writeLog("Client Start..."); + BaseBean bs = new BaseBean(); + Socket socket = null; + try { + //创建一个流套接字并将其连接到指定主机上的指定端口号 + socket = new Socket("14.1.71.90",10149); + // String str = "000006121010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币"; + // System.out.println(str); + //读取服务器端数据 + BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); + //向服务器端发送数据 + // PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8)); + PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true); + out.println(request); + char[] datalen=new char[8];//报文前八位为报文体总长度 + input.read(datalen,0,8); + String lendata=new String (datalen); + int length=Integer.parseInt(lendata); + new BaseBean().writeLog("报文长度"+length); + char[] data=new char[length]; + int datalength = input.read(data,0,length); + String requestData = new String(data); + new BaseBean().writeLog("requestData",requestData); + // String ret = input.readLine(); + System.out.println("服务器端返回过来的是: " + requestData); + bs.writeLog("服务器端返回过来的是: " + requestData); + // 如接收到 "OK" 则断开连接 + if (!StringUtil.isEmpty(requestData)) { + bs.writeLog("客户端将关闭连接"); + System.out.println("客户端将关闭连接: " + requestData); + Thread.sleep(500); + } + out.close(); + input.close(); + return requestData; + } catch (Exception e) { + bs.writeLog("客户端异常:" + e.getMessage()); + throw e; + } finally { + if (socket != null) { + try { + socket.close(); + } catch (IOException e) { + socket = null; + bs.writeLog("客户端 finally 异常:" + e.getMessage()); + } + } + } + // return "-1"; + } + + public static String generateTimestamp() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date currentDate = new Date(); + return dateFormat.format(currentDate); + } +%> \ No newline at end of file diff --git a/produce/23/transfer/mobile/getSysUrl.jsp b/produce/23/transfer/mobile/getSysUrl.jsp index 3d4abd0..a2fc4d7 100644 --- a/produce/23/transfer/mobile/getSysUrl.jsp +++ b/produce/23/transfer/mobile/getSysUrl.jsp @@ -709,11 +709,121 @@ try { if (stMsg.has("errorCode")&&"2009".equals(stMsg.getString("errorCode"))){ response.sendRedirect("https://office.bankoftianjin.com/interface/transfer/mobile/noPermissons2.html"); + }else if(stMsg.has("errorCode")&&"2008".equals(stMsg.getString("errorCode"))){ + //----------------------------------TGT未找到--------------------------------------------- + bb.writeLog("TGT未找到"); + String TGT =""; + String passWord =""; + String retMsg =""; + decriptList.add(login_id); + decriptList.add(user_password); + List resultList = rsa.decryptList(request, decriptList); + String loginId = resultList.get(0); + String userPassword = resultList.get(1); + String publicKey = getPublicKey(MachInfo); + passWord = encrypt(user_password, publicKey); + params = new HashMap<>();//参数 + params.put("username",loginId); + params.put("password",passWord); + bb.writeLog("==STparams=="+params); + + headers = new HashMap<>();//headers + headers.put("API_KEY",API_KEY); + headers.put("MACH_ID",MachInfo.get("deviceId")); + headers.put("MACH_TYPE",MachInfo.get("clientType")); + headers.put("MACH_IP",MachInfo.get("param_ip")); + // headers.put("MACH_ID","123"); + // headers.put("MACH_TYPE","0"); + // headers.put("MACH_IP","127.0.0.1"); + + retMsg = httpPostForm(tgturl,params,headers,null); + bb.writeLog("===获取TGT返回值retMsg===="+retMsg); + org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); + bb.writeLog("===获取TGT返回值===="+resMsg); + if(resMsg.has("TGT")){ + TGT = Util.null2String(resMsg.get("TGT").toString()); + }else{ + //密码不正确,执行强制退出 + if ("2002".equals(resMsg.get("errorCode")+"")){ + out.print("

您的单点系统密码已修改,请重新登录,将在3秒后退出

"); + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + JSONObject postBody = new JSONObject(); + String sysid = Prop.getPropValue("emsysinfo", "sysid"); + postBody.put("sysid",sysid); + postBody.put("userids",user.getUID()); + postBody.put("offline_type","1"); + postBody.put("client_type","1,2,3"); + String errmsg = EMExt(getEMToken(), postBody.toJSONString()); + } + }); + thread.start(); + return; + }else{ + out.print(resMsg.get("message")); + return; + } + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date now = new Date(); + Date expiresDate = new Date(now.getTime() + (4 * 60 * 60 * 1000)); + request.getSession(true).setAttribute("certified_token_expires", sdf.format(expiresDate));//记录toekn失效日期时间 + request.getSession(true).setAttribute("certified_token", TGT);//记录toekn + + responseInfo = getST(TGT,cockpitUrl,MachInfo); + if (isEmpty(responseInfo)){ + out.print("单点系统接口返回值为null"); + return; + }else { + org.json.JSONObject stMsgnew = new org.json.JSONObject(responseInfo); + if(stMsgnew.has("ST")){ + ST = Util.null2String(stMsgnew.get("ST").toString()); + }else{ + try { + if (stMsgnew.has("errorCode")&&"2009".equals(stMsgnew.getString("errorCode"))){ + response.sendRedirect("https://office.bankoftianjin.com/interface/transfer/mobile/noPermissons2.html"); + } + } catch (JSONException e) { + bb.writeLog(e); + } + out.print(Util.null2String(stMsgnew.getString("message"))); + return; + } + + String loginUrl = ""; + // String remuseUrl = bb.getPropValue("tjbkremuse", "hbUrl"); + String remuseUrl = sysUrl; + + boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; + if(isEm == true){ + loginUrl=remuseUrl+"ticket="+ST; + //loginUrl="http://123.151.115.199:8080/bi/PCFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E5%89%8D%E7%BD%AE%E9%A1%B5.db&ticket="+ST; + } + + bb.writeLog("loginUrl-->"+loginUrl); + //out.print("跳转路径-->"+loginUrl); + //out.print("进入驾驶舱成功"); + //out.print(loginUrl); + response.sendRedirect(loginUrl); + // request.getRequestDispatcher("loginUrl").forward(request,response); + } + //----------------------------------TGT未找到--------------------------------------------- + }else { + try { + out.print(Util.null2String(stMsg.getString("message"))); + } catch (org.json.JSONException e) { + e.printStackTrace(); + } } } catch (JSONException e) { bb.writeLog(e); } - out.print(Util.null2String(stMsg.getString("message"))); return; } diff --git a/produce/23/transfer/mobile/getSysUrl.zip b/produce/23/transfer/mobile/getSysUrl.zip new file mode 100644 index 0000000..735e8dc Binary files /dev/null and b/produce/23/transfer/mobile/getSysUrl.zip differ diff --git a/weaver/filter/LoginEMFilter.java b/weaver/filter/LoginEMFilter.java index 4eb3613..37f7db6 100644 --- a/weaver/filter/LoginEMFilter.java +++ b/weaver/filter/LoginEMFilter.java @@ -106,7 +106,7 @@ public class LoginEMFilter implements Filter { Date currentDate = new Date(); long difference = currentDate.getTime() - parsedDate.getTime(); - if (difference > 10 * 60 * 1000) { // 10分钟 = 10 * 60 * 1000 毫秒 + if (difference > 5 * 1000) { // 10分钟 = 10 * 60 * 1000 毫秒 return true; } else { return false; diff --git a/weaver/interfaces/workflow/action/javacode/Action20230911062023.java b/weaver/interfaces/workflow/action/javacode/Action20230911062023.java index ce2f5fe..a5a12e6 100644 --- a/weaver/interfaces/workflow/action/javacode/Action20230911062023.java +++ b/weaver/interfaces/workflow/action/javacode/Action20230911062023.java @@ -6,7 +6,6 @@ import com.engine.custom.sl.entity.*; // import com.engine.util.SocketClientUtil; import com.engine.util.SocketClientUtil; import com.engine.util.XMLUtils; -import com.icbc.api.internal.apache.http.impl.cookie.S; import com.weaver.general.Util; import org.jsoup.Jsoup; import weaver.conn.RecordSet; @@ -19,7 +18,6 @@ import weaver.soa.workflow.request.RequestInfo; import java.io.*; import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.*; @@ -78,7 +76,7 @@ public class Action20230911062023 extends BaseBean implements Action { writeLog("serviceXML==="+ serviceXML); // serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8)); writeLog("UTF_8_serviceXML==="+ serviceXML); - SocketClientUtil scketClient = new SocketClientUtil("14.1.76.116",10149); + SocketClientUtil scketClient = new SocketClientUtil("14.1.78.197",10149); String send = scketClient.send(serviceXML); String substring = send.substring(0, 8); String substring1 = send.substring(8); @@ -149,6 +147,7 @@ public class Action20230911062023 extends BaseBean implements Action { String ftpPath = ""; try { ftpPath = HgUtils.putFile(tempFilePath, requestId + File.separator + imageFileName); + } catch (FtpException e) { e.printStackTrace(); writeLog( "传输ESBftp异常"+e.getMessage()); @@ -187,7 +186,7 @@ public class Action20230911062023 extends BaseBean implements Action { //报销金额 toEsbBean.setExpnsAmt(multiply100(Util.null2String(rs.getString("bxjedwf")))); toEsbBean.setCostDeptCode((Util.null2String(rs.getString("cbzxbm")))); - toEsbBean.setCostDeptHame((Util.null2String(rs.getString("cbzxmc")))); + toEsbBean.setCostDeptName((Util.null2String(rs.getString("cbzxmc")))); //报销事由 Jsoup.parse(htmlContent).text() String expnsRsn = Util.null2String(rs.getString("bxsy")); String text = Jsoup.parse(expnsRsn).text(); diff --git a/weaver/interfaces/workflow/action/javacode/Action20231015024217.java b/weaver/interfaces/workflow/action/javacode/Action20231015024217.java index 3b0c973..da9dcf3 100644 --- a/weaver/interfaces/workflow/action/javacode/Action20231015024217.java +++ b/weaver/interfaces/workflow/action/javacode/Action20231015024217.java @@ -6,7 +6,6 @@ import com.engine.custom.sl.entity.*; // import com.engine.util.SocketClientUtil; import com.engine.util.SocketClientUtil; import com.engine.util.XMLUtils; -import com.icbc.api.internal.apache.http.impl.cookie.S; import com.weaver.general.Util; import org.jsoup.Jsoup; import weaver.conn.RecordSet; @@ -19,7 +18,6 @@ import weaver.soa.workflow.request.RequestInfo; import java.io.*; import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.*;