#HTXC-1# 初始化开发环境

main
shilei 3 years ago
parent b2f7b01c9c
commit 56082f3d05

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

@ -0,0 +1,277 @@
package com.api.browser.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.api.browser.bean.ListHeadBean;
import com.api.browser.service.BrowserService;
import com.api.browser.util.*;
import com.engine.htsc.payment.util.HttpUtil;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.interfaces.htsc.util.TokenUtil;
import weaver.systeminfo.SystemEnv;
import weaver.workflow.request.RequestBaseUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
public class OldOaBrowserService extends BrowserService {
@Override
public Map<String, Object> getBrowserData(Map<String, Object> paramMap) throws Exception {
HashMap localHashMap1 = new HashMap();
JSONArray jsonArray =new JSONArray();
List dataList = new ArrayList();
//获取起始值
int min = Integer.valueOf(paramMap.get("min").toString());
//获取末尾值
int max = Integer.valueOf(paramMap.get("max").toString());
//用户ID
String userId = Util.null2String(paramMap.get("wfCreater"));
String type = "2";
//标题
String requestName = Util.null2String(paramMap.get("title"));
//流程编号
String workFlowNum = Util.null2String(paramMap.get("workflownum"));
//创建人
String creater = Util.null2String(paramMap.get("creater"));
int pageNumber = Integer.parseInt(Util.null2String(paramMap.get("current")));
int pageSize = Integer.parseInt(Util.null2String(paramMap.get("pageSize")));
JSONObject jsonObject=new JSONObject();
jsonObject.put("title",requestName);
jsonObject.put("workFlowNum",workFlowNum);
jsonObject.put("drafterName",creater);
jsonObject.put("pageNumber",pageNumber);
jsonObject.put("pageSize",pageSize);
jsonObject.put("type",type);
try {
RecordSet rs = new RecordSet();
String workCodesql = " select workcode from hrmresource where id=?";
rs.executeQuery(workCodesql,userId);
if (rs.next()){
jsonObject.put("userId",rs.getString("workcode"));
log.debug("请求参数jsonObject: [{}]",jsonObject);
//查询接口
String urlSql = "select xtmc,qqdz,appid from UF_LCJKDZ where sfqy=0";
rs.executeQuery(urlSql);
List<Map<String,String>> urlList = new ArrayList<>();
while (rs.next()){
Map<String,String> map = Maps.newHashMap();
map.put("xtmc",rs.getString("xtmc"));
map.put("qqdz",rs.getString("qqdz"));
map.put("appid",rs.getString("appid"));
urlList.add(map);
}
for (Map<String,String> url:urlList){
String responsestr = "";
if (url.get("appid") != null && !"".equals(url.get("appid"))){
responsestr = TokenUtil.post(url.get("xtmc"),"/api/ohtersystem/workflow/todos",jsonObject.toJSONString(),url.get("appid"));
}else {
responsestr = HttpUtil.postApplicationJson(url.get("qqdz")+"todos", jsonObject.toJSONString());
}
log.debug("responsestr[{}]",responsestr);
if (!"".equals(responsestr)){
JSONObject jsonObjectstr = JSONObject.parseObject(responsestr);
if(jsonObjectstr!=null&&jsonObjectstr.size()>0){
jsonArray.addAll(jsonObjectstr.getJSONArray("data"));
}
}
}
localHashMap1.put(BrowserConstant.BROWSER_RESULT_TOTAL,jsonArray.size());
/**
*
*/
if (max > jsonArray.size()){
max = jsonArray.size();
}
for (int i=(min-1);i<max;i++){
Map<String,Object> dataMap = new HashMap();
Map jsonMap = (Map) jsonArray.get(i);
dataMap.put(BrowserConstant.BROWSER_LIST_CHECKBOX_FIELDNAME,jsonMap.get("url")+"^"+jsonMap.get("requestid"));
// dataMap.put("id",jsonMap.get("url")+"^"+jsonMap.get("type"));
dataMap.put("id",jsonMap.get("url")+"^"+jsonMap.get("requestid"));
dataMap.put("title",jsonMap.get("title"));
dataMap.put("workflownum",jsonMap.get("referencenumber"));
dataMap.put("creater",jsonMap.get("createrName"));
dataMap.put("createdate",jsonMap.get("createDate")+" "+jsonMap.get("createTime"));
dataMap.put("url",jsonMap.get("url"));
dataList.add(dataMap);
}
}
}catch (Exception e){
log.error("sync fund status fail, catch error: [{}]", e);
}
List localObject = new ArrayList();
localObject.add(new ListHeadBean(BrowserConstant.BROWSER_LIST_CHECKBOX_FIELDNAME, BoolAttr.TRUE));
localObject.add(new ListHeadBean("id", BoolAttr.TRUE).setIsPrimarykey(BoolAttr.TRUE));
ListHeadBean localListHeadBean = new ListHeadBean("title", SystemEnv.getHtmlLabelName(502369, this.user.getLanguage()), 1, BoolAttr.TRUE);
localListHeadBean.setOldWidth("25%");
localObject.add(localListHeadBean);
localListHeadBean = new ListHeadBean("workflownum", SystemEnv.getHtmlLabelName(19502, this.user.getLanguage()));
localListHeadBean.setOldWidth("25%");
localObject.add(localListHeadBean);
localListHeadBean = new ListHeadBean("creater", SystemEnv.getHtmlLabelName(882, this.user.getLanguage()));
localListHeadBean.setOldWidth("25%");
localObject.add(localListHeadBean);
localListHeadBean = new ListHeadBean("createdate", SystemEnv.getHtmlLabelName(1339, this.user.getLanguage()));
localListHeadBean.setOldWidth("25%");
localObject.add(localListHeadBean);
localHashMap1.put(BrowserConstant.BROWSER_RESULT_COLUMN, localObject);
localHashMap1.put(BrowserConstant.BROWSER_RESULT_DATA, dataList);
localHashMap1.put(BrowserConstant.BROWSER_RESULT_TYPE, Integer.valueOf(BrowserDataType.LIST_SPLIT_DATA_O.getTypeid()));
return (Map<String, Object>)localHashMap1;
}
public Map<String, Object> getBrowserConditionInfo(Map<String, Object> paramMap)
throws Exception
{
HashMap localHashMap = new HashMap();
ArrayList localArrayList1 = new ArrayList();
ConditionFactory localConditionFactory = new ConditionFactory(this.user);
localArrayList1.add(localConditionFactory.createCondition(ConditionType.INPUT, 19502, "workflownum"));
localArrayList1.add(localConditionFactory.createCondition(ConditionType.INPUT, 882, "creater"));
localArrayList1.add(localConditionFactory.createCondition(ConditionType.INPUT, 502369, "title"));
localHashMap.put(BrowserConstant.BROWSER_RESULT_CONDITIONS, localArrayList1);
return (Map<String, Object>)(Map<String, Object>)localHashMap;
}
public Map<String, Object> getMultBrowserDestData(Map<String, Object> var1){
HashMap var2 = new HashMap();
String var3 = Util.null2String(var1.get(BrowserConstant.BROWSER_MULT_DEST_SELECTIDS));
ArrayList dataList = new ArrayList();
if ("".equals(var3)) {
return var2;
} else {
String[] values = var3.split(",");
Map<String,String> idMap = new HashMap<>();
String id="";
for (int i=0;i<values.length;i++){
String value = values[i];
String[] val = value.split("\\^");
if (val.length>1){
String systemName = val[0].split("/")[3];//系统标识 xcoa、htoa
if (idMap.get(systemName) == null){
idMap.put(systemName,val[1]);
}else {
String ids = idMap.get(systemName) +","+val[1];
idMap.put(systemName,ids);
}
}
}
log.debug("请求参数ids: [{}]",idMap);
try {
RecordSet rs = new RecordSet();
//查询接口
String urlSql = "select xtmc,qqdz,appid from UF_LCJKDZ where sfqy=0";
rs.executeQuery(urlSql);
Map<String,String> urlMap = new HashMap<>();
while (rs.next()){
if (idMap.get(rs.getString("xtmc")) !=null){
String ids = idMap.get(rs.getString("xtmc"));
String xtmc = rs.getString("xtmc");
String url = rs.getString("qqdz");
String appid = rs.getString("appid");
JSONObject jsonObject=new JSONObject();
jsonObject.put("requestIds",ids);
jsonObject.put("xtmc",rs.getString("xtmc"));
String responsestr = "";
if (appid != null && !"".equals(appid)){
responsestr = TokenUtil.post(xtmc,"/api/ohtersystem/workflow/getRequestData",jsonObject.toJSONString(),appid);
}else {
responsestr = HttpUtil.postApplicationJson(url+"getRequestData", jsonObject.toJSONString());
}
log.debug("responsestr[{}]",responsestr);
if (!"".equals(responsestr)){
JSONObject jsonObjectstr = JSONObject.parseObject(responsestr);
if(jsonObjectstr!=null&&jsonObjectstr.size()>0){
dataList.addAll(jsonObjectstr.getJSONArray("data"));
}
}
}
}
}catch (Exception e){
log.error("sync fund status fail, catch error: [{}]", e);
}
// String var4 = "select requestid,creatertype,requestname,requestmark,requestnamenew,creater,createdate,createtime from workflow_requestbase where requestid in (" + ids + ")";
// RecordSet rs = new RecordSet();
// rs.executeSql(var4);
// ResourceComInfo var6 = new ResourceComInfo();
// CustomerInfoComInfo var7 = new CustomerInfoComInfo();
// ArrayList var8 = new ArrayList();
//
// while(rs.next()) {
// String var9 = Util.null2String(rs.getString("requestid"));
// String var10 = Util.null2String(rs.getString("creater"));
// String var11 = Util.null2String(rs.getString("createdate"));
// String var12 = Util.null2String(rs.getString("createtime"));
// String var13 = Util.null2String(rs.getString("requestname"));
//// String var14 = this.getRequestname("", var9 + "+" + this.user.getLanguage() + "+" + var13);
// String var15 = Util.null2String(rs.getString("createtype"));
// if ("1".equals(var15)) {
// var10 = var7.getCustomerInfoname(var10);
// } else {
// var10 = var6.getResourcename(var10);
// }
//
// HashMap var16 = new HashMap();
// var16.put("id", var9);
// var16.put("title", var13);
// var16.put("workflownum", Util.null2String(rs.getString("requestmark")));
//// var16.put("titlespan", var13);
//// var16.put("titlenew", var14);
// var16.put("creater", var10);
// var16.put("createdate", var11 + " " + var12);
// var8.add(var16);
// }
var2.put(BrowserConstant.BROWSER_RESULT_DATA, dataList);
var2.put(BrowserConstant.BROWSER_RESULT_TYPE, BrowserDataType.LIST_ALL_DATA.getTypeid());
return var2;
}
}
public String getRequestname(String var1, String var2) {
int var3 = Util.getIntValue(var2.substring(0, var2.indexOf("+")));
var2 = var2.substring(var2.indexOf("+") + 1);
int var4 = Util.getIntValue(var2.substring(0, var2.indexOf("+")));
String var5 = var2.substring(var2.indexOf("+") + 1);
RecordSet var6 = new RecordSet();
var6.executeQuery("select id,formid,isbill from workflow_base t1 where exists (select 1 from workflow_requestbase t2 where t2.workflowid = t1.id and t2.requestid = ? )", new Object[]{var3});
int var7 = 0;
int var8 = 0;
int var9 = 0;
if (var6.next()) {
var7 = var6.getInt(1);
var8 = var6.getInt(2);
var9 = var6.getInt(3);
}
RequestBaseUtil var10 = new RequestBaseUtil();
var5 = var10.formatRequestname(var5, var7 + "", var3 + "", var9, var8, var4);
return var5;
}
}

@ -0,0 +1,9 @@
package com.api.htsc.smsd;
import com.engine.htsc.smsd.web.AddYfkDataAction;
import javax.ws.rs.Path;
@Path("/htsc/yfk")
public class AddYfkDataActionApi extends AddYfkDataAction {
}

@ -0,0 +1,9 @@
package com.api.htsc.trip;
import com.engine.htsc.trip.web.AllowanceAction;
import javax.ws.rs.Path;
@Path("/htsc/trip")
public class AllowanceActionApi extends AllowanceAction {
}

@ -0,0 +1,55 @@
package com.engine.htsc.contractmanagement.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.cube.biz.CodeBuilder;
import weaver.conn.RecordSet;
import java.util.HashMap;
import java.util.Map;
public class AddContractDataCmd extends AbstractCommonCommand<Map<String, Object>> {
public AddContractDataCmd(Map<String, Object> params){
this.params = params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> responseMap = new HashMap<>();
try {
RecordSet rs = new RecordSet();
for (Map.Entry<String,Object> map : params.entrySet()){
String tableName = map.getKey();
Map<String,Object> dataMap = (Map<String,Object>)map.getValue();
String names="";
String values="";
for (Map.Entry entry :dataMap.entrySet()){
if (entry.getKey().equals("ID")){
continue;
}
names = names + entry.getKey() +",";
values = values +"'"+entry.getValue()+"'" +",";
};
names = names.substring(0,names.length()-1);
values = values.substring(0,values.length()-1);
String insertSql = "insert into "+tableName+" ("+names+") values ("+values+")";
boolean response = rs.executeUpdate(insertSql);
if (response){
responseMap.put("code","0");
}else {
responseMap.put("code","400");
responseMap.put("message","插入失败");
}
}
}catch (Exception e){
responseMap.put("code","500");
responseMap.put("message",e.getMessage());
}
return responseMap;
}
}

@ -0,0 +1,15 @@
package com.engine.htsc.financialadjustment.service;
public interface AdjustFundService {
/**
*
*/
String doBudget(String rid) throws Exception;
/**
*
*/
String doCost(String rid) throws Exception;
}

@ -0,0 +1,55 @@
package com.engine.htsc.financialadjustment.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.engine.core.impl.Service;
import com.engine.htsc.financialadjustment.service.AdjustFundService;
import com.engine.htsc.financialadjustment.util.BizUtil;
import com.engine.htsc.payment.pojo.BudgetDTO;
import com.engine.htsc.payment.pojo.CostAccountDto;
import com.engine.htsc.payment.util.BizUtils;
import weaver.general.BaseBean;
import weaver.interfaces.htsc.cus.HTUtil;
import java.util.Map;
public class AdjustFundServiceImpl extends Service implements AdjustFundService {
private final HTUtil htUtil = new HTUtil();
private final BaseBean log = new BaseBean();
@Override
public String doBudget(String rid) throws Exception {
log.writeLog("财务调整流程预算 requestId:" + rid);
BudgetDTO budgetDTO = BizUtil.getAdjustBudget(rid, "3");
if (budgetDTO == null) {
throw new Exception("构建财务调整流程预算数据报文出错,budgetDTO为空");
}
BizUtils bizUtils = new BizUtils();
Map<String, Object> paras = bizUtils.convertDtoToMap(budgetDTO);
log.writeLog("财务调整流程预算预占 入参:" + JSON.toJSONString(paras));
String ys = htUtil.budgetCommit(paras);
log.writeLog("财务调整流程预算预占 出参:" + ys);
//预占执行完后实占
budgetDTO.setBillStatus("1");
paras = bizUtils.convertDtoToMap(budgetDTO);
log.writeLog("财务调整流程预算实占 入参:" + JSON.toJSONString(paras));
String response = htUtil.budgetCommit(paras);
log.writeLog("财务调整流程预算实占 返回值:" + response);
return response;
}
@Override
public String doCost(String rid) throws Exception {
log.writeLog("财务调整流程核算 requestId:" + rid);
CostAccountDto adjustCost = BizUtil.getAdjustCost(rid, "fnaj");
@SuppressWarnings("unchecked")
Map<String, Object> paras = JSONObject.parseObject(JSON.toJSONString(adjustCost));
log.writeLog("财务调整流程核算 入参:" + JSON.toJSONString(paras));
String resp = htUtil.saveFydj(paras);
log.writeLog("财务调整流程核算 返回值:" + resp);
return resp;
}
}

@ -0,0 +1,138 @@
package com.engine.htsc.smsd.dao;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.htsc.smsd.util.AddDataUtil;
import com.greenpineyu.fel.function.operator.Add;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.Util;
import weaver.workflow.logging.Logger;
import weaver.workflow.logging.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class AddByLcbhCMD extends AbstractCommonCommand<Map<String, Object>> {
Logger logger = LoggerFactory.getLogger(AddByLcbhCMD.class);
@Override
public BizLogContext getLogContext() {
return null;
}
public AddByLcbhCMD(Map<String, Object> params) {
this.params = params;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
logger.info("===========进入Dao层AddByLcbhCMD方法===================");
Map<String, Object> result = new HashMap<>();
final String[] mainFields = {"lcbh", "hjxxjezfmx", "ngr", "szbm", "lclx"};
RecordSet rs = new RecordSet();
RecordSetTrans rst = new RecordSetTrans();
String sql;
String lcbh = Util.null2String(params.get("lcbh")).replaceAll(" ","");
logger.info("=============获取到的流程编号是:" + lcbh);
// 1、确认此付款流程编号是否在预付款台账报表中已经存在数据
sql = "select count(*) as counts from uf_PrepayMageAccRep where fklcbh = '" + lcbh + "'";
rs.executeQuery(sql);
if (rs.next()) {
if ("0".equals(Util.null2String(rs.getString("counts")))) {
// 2、付款流程数据搜集准备插入预付款台账表
// 2.1、获取流程编号对应的主表名
String mainTableName = AddDataUtil.getMaintableName("lcbh", lcbh);
if ("".equals(mainTableName)) {
result.put("isSuccess", "false");
result.put("message", "流程编号不存在,请重新输入");
} else {
// 3、确认流程是否已办结
String lcbjsj = AddDataUtil.isFinished(lcbh, mainTableName);
if (!"".equals(lcbjsj)) {
// 4、获取需要插入台账的数据 "lcbh","hjxxjezfmx","ngr","szbm"
Map<String, Object> mainInfo = AddDataUtil.getMainInfo(mainFields, lcbh, mainTableName);
// 流程编号-lcbh
String jbr = Util.null2String(mainInfo.get("ngr"));
String jbbm = Util.null2String(mainInfo.get("szbm"));
String lclx = Util.null2String(mainInfo.get("lclx"));
String lczbm = Util.null2String(getLczbmByLcbh(lcbh));
String htbh = AddDataUtil.getDtFieldValue("HTBH", "4", lcbh, mainTableName);
String skf = AddDataUtil.getDtFieldValue("skdw", "11", lcbh, mainTableName);
String fyqrlcbh = "";
String kpf = "";
String yfkje = "".equals(Util.null2String(mainInfo.get("hjxxjezfmx"))) ? "0.00" : Util.null2String(mainInfo.get("hjxxjezfmx"));
String yhxje = "0.00";
// 因为已核销金额默认为0所以待核销金额默认为已付款金额
String dhxje = yfkje;
// 0是1否
String sfyq = "".equals(AddDataUtil.getSfyq(lcbjsj)) ? "1" : "0";
String yqts = "".equals(AddDataUtil.getSfyq(lcbjsj)) ? "0" : AddDataUtil.getSfyq(lcbjsj);
// 流程requetsId
String requestId = AddDataUtil.getRequestIdByLcbh(lcbh, mainTableName);
// 付款状态默认为1待付款
String fkzt = "1";
// 建模权限所需字段
String formmodeid = "";
String modedatacreater = "1";
String modedatacreatertype = "0";
String modeuuid = UUID.randomUUID().toString();
rs.execute("select k.id from modeinfo k inner join workflow_bill l on formid = l.id where l.tablename = 'uf_PrepayMageAccRep'");
if (rs.next()) {
formmodeid = Util.null2String(rs.getString("id"));
}
try {
rst.setAutoCommit(false);
String insertSql = "insert into uf_PrepayMageAccRep(REQUTID,fklcbh,jbr,jbbm,lcbjsj,htbh,skf,fyqrlcbh," +
"kpf,yfkje,yhxje,dhxje,sfyq,yqts,formmodeid,modedatacreater,modedatacreatertype,modeuuid,FKZT,LCLX,LCZBM) " +
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
writeLog("即将执行的insert sql 是insert into uf_PrepayMageAccRep(REQUTID,fklcbh,jbr,jbbm,lcbjsj,htbh,skf,fyqrlcbh," +
"kpf,yfkje,yhxje,dhxje,sfyq,yqts,formmodeid,modedatacreater,modedatacreatertype,modeuuid) " +
"VALUES ('" + requestId + "','" + lcbh + "','" + jbr + "','" + jbbm + "','" + lcbjsj + "','" + htbh + "','" + skf + "','" + fyqrlcbh + "','" + kpf + "','" + yfkje + "','" + yhxje + "','" + dhxje + "','" + sfyq + "','" + yqts + "','" + formmodeid + "','" + modedatacreater + "','" + modedatacreatertype + "','" + modeuuid + "')");
rst.executeUpdate(insertSql, requestId, lcbh, jbr, jbbm, lcbjsj, htbh, skf, fyqrlcbh,
kpf, yfkje, yhxje, dhxje, sfyq, yqts, formmodeid, modedatacreater, modedatacreatertype, modeuuid, fkzt, lclx, lczbm);
rst.commit();
// 权限重构
int dataId = AddDataUtil.getDataIdByUUID(modeuuid, "uf_PrepayMageAccRep");
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.editModeDataShare(1, Integer.parseInt(formmodeid), dataId);
result.put("isSuccess", "true");
result.put("message", "新增成功");
} catch (Exception e) {
e.getMessage();
writeLog("============新增过程发生错误:" + e.getMessage());
result.put("isSuccess", "false");
result.put("message", "新增失败,更新过程发生错误,请联系管理员");
}
} else {
result.put("isSuccess", "false");
result.put("message", "流程未办结,暂不能发起新增,请重新输入");
}
}
} else {
result.put("isSuccess", "false");
result.put("message", "付款流程信息已存在");
}
} else {
result.put("isSuccess", "false");
result.put("message", "付款流程重复性检验发生错误,请联系管理员处理");
}
return result;
}
private String getLczbmByLcbh(String lcbh) {
RecordSet rs = new RecordSet();
String sql = "select t1.tablename from workflow_bill t1,workflow_base t2,workflow_requestbase t3 where t1.id =t2.formid and t2.id = t3.workflowid and t3.REQUESTMARK = ?";
rs.executeQuery(sql,lcbh);
if (rs.next()){
return Util.null2String(rs.getString("tablename"));
}else {
return "";
}
}
}

@ -0,0 +1,7 @@
package com.engine.htsc.smsd.service;
import java.util.Map;
public interface AddByLcbhService {
Map<String,Object> addYfkDataByLcbh(Map<String, Object> params);
}

@ -0,0 +1,15 @@
package com.engine.htsc.smsd.service.impl;
import com.engine.core.impl.Service;
import com.engine.htsc.smsd.dao.AddByLcbhCMD;
import com.engine.htsc.smsd.service.AddByLcbhService;
import java.util.Map;
public class AddByLcbhServiceImpl extends Service implements AddByLcbhService {
@Override
public Map<String, Object> addYfkDataByLcbh(Map<String, Object> params) {
return commandExecutor.execute(new AddByLcbhCMD(params));
}
}

@ -0,0 +1,141 @@
package com.engine.htsc.smsd.util;
import cn.hutool.core.date.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class AddDataUtil {
/**
* @param type type
* @param param typevalue
* @Describe
*/
public static String getMaintableName(String type, String param) {
RecordSet rs = new RecordSet();
if ("requestid".equals(type)) {
rs.executeQuery("select t1.tablename from workflow_bill t1,workflow_base t2,workflow_requestbase t3 where t1.id =t2.formid and t2.id = t3.workflowid and t3.requestid = '" + param + "'");
if (rs.next()) {
return Util.null2String(rs.getString("tablename"));
} else {
return "";
}
} else if ("lcbh".equals(type)) {
rs.executeQuery("select t1.tablename from workflow_bill t1,workflow_base t2,workflow_requestbase t3 where t1.id =t2.formid and t2.id = t3.workflowid and t3.REQUESTMARK = '" + param + "'");
if (rs.next()) {
return Util.null2String(rs.getString("tablename"));
} else {
return "";
}
} else {
return "";
}
}
/**
* @Describe
*/
public static String isFinished(String lcbh, String tableName) {
BaseBean bb = new BaseBean();
bb.writeLog("==================判断流程是否已办结接收到的参数是lcbh:" + lcbh + ",tableName:" + tableName + "===============");
RecordSet rs = new RecordSet();
String sql = "select currentnodetype,isstopped,concat(concat(LASTOPERATEDATE,' '),LASTOPERATETIME) as lcbjsj from workflow_requestbase where requestid=(select requestid from " + tableName + " where lcbh = '" + lcbh + "')";
bb.writeLog("即将执行的获取是否已办结的sql语句是" + sql);
rs.executeQuery(sql);
if (rs.next()) {
String currentnodetype = Util.null2String(rs.getString("currentnodetype"));
String isstopped = Util.null2String(rs.getString("isstopped"));
if ((!"1".equals(isstopped)) && ("3".equals(currentnodetype))) {
return Util.null2String(rs.getString("lcbjsj"));
} else {
return "";
}
} else {
return "";
}
}
/**
* @Describe
*/
public static Map<String, Object> getMainInfo(String[] fields, String lcbh, String tableName) {
BaseBean bb = new BaseBean();
bb.writeLog("===============进入getMainInfo方法准备获取主表的相关参数==============");
Map<String, Object> mainInfo = new HashMap<>();
RecordSet rs = new RecordSet();
String sql;
sql = "select f.lcbh,f.hjxxjezfmx,f.ngr,f.szbm,b.unnumber as lclx from "+tableName+" f," +
"workflow_requestbase a,workflow_base b " +
"where f.REQUESTID = a.REQUESTID and a.WORKFLOWID = b.id and f.lcbh = '"+lcbh+"'";
bb.writeLog("即将执行获取主表信息的sql是" + sql);
rs.executeQuery(sql);
if (rs.next()) {
String[] columnNames = rs.getColumnName();
for (String columnName : columnNames) {
mainInfo.put(columnName.toLowerCase(), rs.getString(columnName));
}
}
return mainInfo;
}
/**
* @Describe
*/
public static String getDtFieldValue(String fieldName, String tableNum, String lcbh, String tableName) {
RecordSet rs = new RecordSet();
String value = "";
String sql = "select listagg(" + fieldName + ",'') as fieldName from " + tableName + "_dt" + tableNum + " where mainid = (select id from " + tableName + " where lcbh = '" + lcbh + "')";
new BaseBean().writeLog("=============即将执行获取明细表指定字段值的sql是" + sql);
rs.executeQuery(sql);
if (rs.next()) {
value = Util.null2String(rs.getString(rs.getColumnName()[0]));
}
return value;
}
/**
* @Describe
*/
public static String getSfyq(String date) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = simpleDateFormat.parse(date);
long days = DateUtil.betweenDay(date1, new Date(), true);
return days > 30 ? String.valueOf(days - 30) : "";
} catch (Exception e) {
new BaseBean().writeLog("是否逾期判断发生错误:" + e.getMessage());
e.getMessage();
return "";
}
}
public static int getDataIdByUUID(String uuid, String uf_tableName) {
RecordSet rs = new RecordSet();
int dataid = -1;
String sql = "select id from " + uf_tableName + " where modeuuid = ?";
if (rs.executeQuery(sql, uuid) && rs.next()) {
dataid = Util.getIntValue(rs.getString(1));
}
return dataid;
}
/**
* @Describe requestId
* */
public static String getRequestIdByLcbh(String lcbh, String mainTableName) {
RecordSet rs = new RecordSet();
rs.executeQuery("select requestid from "+mainTableName+" where lcbh = '"+lcbh+"'");
if (rs.next()){
return Util.null2String(rs.getString("requestid"));
}else {
return "";
}
}
}

@ -0,0 +1,45 @@
package com.engine.htsc.smsd.web;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ServiceUtil;
import com.engine.htsc.smsd.service.AddByLcbhService;
import com.engine.htsc.smsd.service.impl.AddByLcbhServiceImpl;
import weaver.general.Util;
import weaver.workflow.logging.Logger;
import weaver.workflow.logging.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Map;
public class AddYfkDataAction {
Logger logger = LoggerFactory.getLogger(AddYfkDataAction.class);
private AddByLcbhService getService(){
return ServiceUtil.getService(AddByLcbhServiceImpl.class);
}
/**
* @Describe
* @tableName uf_PrepayMageAccRep
* */
@GET
@Path("addByLcbh")
@Produces({MediaType.APPLICATION_JSON})
public String addYfkDataByFklcbh(@Context HttpServletRequest request,
@Context HttpServletResponse response){
logger.info("================进入根据流程编号向预付款建模表写入数据的方法=====================");
String lcbh = Util.null2String(request.getParameter("lcbh"));
Map<String,Object> params = new HashMap<>();
params.put("lcbh",lcbh);
Map<String, Object> result = getService().addYfkDataByLcbh(params);
return JSONObject.toJSONString(result);
}
}

@ -0,0 +1,125 @@
package com.engine.htsc.trip.pojo;
public class AllowancePO {
private String reqMark;
private String reqId;
private String reqTitle;
private String uid;
private String projectCode;
private String projectName;
private String crmCode;
private String crmName;
private String allowance;
private String lastOperateTime;
private String deptCode;
public String getReqMark() {
return reqMark;
}
public void setReqMark(String reqMark) {
this.reqMark = reqMark;
}
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getProjectCode() {
return projectCode;
}
public void setProjectCode(String projectCode) {
this.projectCode = projectCode;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getCrmCode() {
return crmCode;
}
public void setCrmCode(String crmCode) {
this.crmCode = crmCode;
}
public String getCrmName() {
return crmName;
}
public void setCrmName(String crmName) {
this.crmName = crmName;
}
public String getAllowance() {
return allowance;
}
public void setAllowance(String allowance) {
this.allowance = allowance;
}
public String getLastOperateTime() {
return lastOperateTime;
}
public void setLastOperateTime(String lastOperateTime) {
this.lastOperateTime = lastOperateTime;
}
public String getReqTitle() {
return reqTitle;
}
public void setReqTitle(String reqTitle) {
this.reqTitle = reqTitle;
}
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
@Override
public String toString() {
return "AllowancePO{" +
"reqMark='" + reqMark + '\'' +
", reqId='" + reqId + '\'' +
", reqTitle='" + reqTitle + '\'' +
", uid='" + uid + '\'' +
", projectCode='" + projectCode + '\'' +
", projectName='" + projectName + '\'' +
", crmCode='" + crmCode + '\'' +
", crmName='" + crmName + '\'' +
", allowance='" + allowance + '\'' +
", lastOperateTime='" + lastOperateTime + '\'' +
", deptCode='" + deptCode + '\'' +
'}';
}
}

@ -0,0 +1,113 @@
package com.engine.htsc.trip.util;
import java.io.Serializable;
/**
* Created by qlk
*/
public class AjaxResult<T> implements Serializable {
private static final long serialVersionUID = -4302377008637324176L;
/**
*
*/
private long code;
/**
*
*/
private String message;
/**
*
*/
private T data;
public long getCode() {
return code;
}
public void setCode(long code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public AjaxResult() {
}
public AjaxResult(long code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
/**
*
* @param data
*/
public static <T> AjaxResult<T> ok(T data) {
return new AjaxResult<T>(200, "", data);
}
/**
*
* @param data
* @param message
*/
public static <T> AjaxResult<T> ok(T data, String message) {
return new AjaxResult<T>(200, message, data);
}
/**
*
*/
public static <T> AjaxResult<T> failed() {
return new AjaxResult<T>(400, "fail", null);
}
/**
*
*/
public static <T> AjaxResult<T> error() {
return new AjaxResult<T>(500, "error", null);
}
/**
*
* @param message
*/
public static <T> AjaxResult<T> failed(String message) {
return new AjaxResult<T>(400, message, null);
}
/**
*
* @param message
*/
public static <T> AjaxResult<T> error(String message) {
return new AjaxResult<T>(500, message, null);
}
@Override
public String toString() {
return "AjaxResult{" +
"code=" + code +
", message='" + message + '\'' +
", data=" + data +
'}';
}
}

@ -0,0 +1,66 @@
package com.engine.htsc.trip.web;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.htsc.trip.pojo.AllowanceRequest;
import com.engine.htsc.trip.service.AllowanceService;
import com.engine.htsc.trip.service.impl.AllowanceServiceImpl;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
public class AllowanceAction {
private Log log = LogFactory.getLog(this.getClass());
private AllowanceService getService(){
return ServiceUtil.getService(AllowanceServiceImpl.class);
}
@POST
@Path("/allowance")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Map<String,Object> getAllowance( AllowanceRequest request){
Map<String, Object> apidatas = new HashMap<>();
try {
apidatas = this.getService().allowance(request);
apidatas.put("code", 200);
apidatas.put("message","接口调用成功");
}catch (Exception e){
e.printStackTrace();
apidatas.put("code",-1);
apidatas.put("message","接口调用失败");
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
log.error("isPostion catch exception");
}
return apidatas;
}
@POST
@Path("/v2/allowance")
@Produces({MediaType.APPLICATION_JSON})
public Map<String,Object> getAllowanceV2( AllowanceRequest request){
Map<String, Object> apidatas = new HashMap<>();
try {
apidatas = this.getService().execute(request);
apidatas.put("code", 200);
apidatas.put("message","接口调用成功");
}catch (Exception e){
apidatas.put("code",-1);
apidatas.put("message","接口调用失败");
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
log.error("v2 allowance catch exception",e);
}
return apidatas;
}
}

@ -0,0 +1,147 @@
package weaver.interfaces.htsc.cus.webservices.jtgl;
import java.io.Serializable;
public class AccountingDetail implements Serializable {
//费用承担人
private String expensePerson;
//费用承担人(工号)
private String expenseBadge;
//费用承担部门
private String expenseDept;
//费用承担部门
private String expenseDeptCode;
//金额
private String money;
//会计科目(名称)
private String subject;
//会计科目
private DataDictionary subjectData;
//预算项目
private DataDictionary yssuanData;
//公司项目
private String project;
//公司项目编号
private String projectCode;
//实际币种
private String moneyKind;
//汇率
private String exchangeRate;
//折合人民币
private String priceRMB;
//事由(取预算事由)
private String reason;
public String getExpensePerson() {
return expensePerson;
}
public void setExpensePerson(String expensePerson) {
this.expensePerson = expensePerson;
}
public String getExpenseBadge() {
return expenseBadge;
}
public void setExpenseBadge(String expenseBadge) {
this.expenseBadge = expenseBadge;
}
public String getExpenseDept() {
return expenseDept;
}
public void setExpenseDept(String expenseDept) {
this.expenseDept = expenseDept;
}
public String getExpenseDeptCode() {
return expenseDeptCode;
}
public void setExpenseDeptCode(String expenseDeptCode) {
this.expenseDeptCode = expenseDeptCode;
}
public String getMoney() {
return money;
}
public void setMoney(String money) {
this.money = money;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public DataDictionary getSubjectData() {
return subjectData;
}
public void setSubjectData(DataDictionary subjectData) {
this.subjectData = subjectData;
}
public DataDictionary getYssuanData() {
return yssuanData;
}
public void setYssuanData(DataDictionary yssuanData) {
this.yssuanData = yssuanData;
}
public String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public String getProjectCode() {
return projectCode;
}
public void setProjectCode(String projectCode) {
this.projectCode = projectCode;
}
public String getMoneyKind() {
return moneyKind;
}
public void setMoneyKind(String moneyKind) {
this.moneyKind = moneyKind;
}
public String getExchangeRate() {
return exchangeRate;
}
public void setExchangeRate(String exchangeRate) {
this.exchangeRate = exchangeRate;
}
public String getPriceRMB() {
return priceRMB;
}
public void setPriceRMB(String priceRMB) {
this.priceRMB = priceRMB;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}

@ -0,0 +1,271 @@
package weaver.interfaces.htsc.cwtz;
import com.alibaba.fastjson.JSONObject;
import com.engine.htsc.payment.dao.BudgetDao;
import com.engine.htsc.payment.enums.BudgetNodeType;
import com.engine.htsc.payment.util.PayUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.jdbc.SQL;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.company.DepartmentComInfo;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AddBudgetMidTable extends BaseBean implements Action {
@Override
public String execute(RequestInfo requestInfo) {
String back;
RecordSet rs = new RecordSet();
String sql = "";
String billStatus = BudgetNodeType.FINISH.getValue();
String requestid = requestInfo.getRequestid();
writeLog("获取的requestid是" + requestid + ",billStatus是" + billStatus);
try {
// 表单数据获取
String tableName = getTableNameByRequestId(requestid);
sql = "select LCBH from " + tableName + " where REQUESTID=" + requestid;
rs.executeQuery(sql);
boolean isItFlag = false;
String title = "";
if (rs.next()) {
title = rs.getString("LCBH");
}
String yskmTable = tableName + "_DT2";
boolean b = doBudgetMiddleTablePrivate(title, billStatus, null, yskmTable, tableName, isItFlag);
if (b) {
back = SUCCESS;
} else {
back = FAILURE_AND_CONTINUE;
requestInfo.getRequestManager().setMessagecontent("流程流转异常:浪潮预算中间库同步异常");
}
} catch (Exception e) {
back = FAILURE_AND_CONTINUE;
e.printStackTrace();
}
return back;
}
/**
* requestid
*/
public String getTableNameByRequestId(String requestId) {
RecordSet rs = new RecordSet();
rs.execute("select t1.tablename from workflow_bill t1,workflow_base t2,workflow_requestbase t3 \n where t1.id =t2.formid and t2.id = t3.workflowid and t3.requestid = " +
requestId);
String table = "";
if (rs.next()) {
table = Util.null2String(rs.getString("tablename"));
}
return table;
}
/**
*
*/
private boolean doBudgetMiddleTablePrivate(String requestMark, String billStatus, String fbizdate, String budgetKmTable, String mainTable, boolean isIt) {
PropBean pp = new PropBean();
BudgetDao budgetDao = new BudgetDao();
writeLog("付款流程,预算中间表更新\n @requestMark=" + requestMark + ",billStatus=" + billStatus +
",budgetKmTable=" + budgetKmTable + "@");
if (StringUtils.isBlank(requestMark) || StringUtils.isBlank(billStatus) || StringUtils.isBlank(budgetKmTable)) {
writeLog("更新失败,原因:流程编号或单据状态为空");
return false;
}
try {
// 获取外部数据源
String budgetTableName = pp.getPropName("BudgetTableName");
String nameIsExist = budgetDao.fNameIsExist(budgetTableName, requestMark);
writeLog("预算数据是否存在sql @" + nameIsExist + "@");
RecordSetDataSource rsd = new RecordSetDataSource("BudgetRecords");
rsd.execute(nameIsExist);
if (rsd.next() && StringUtils.isNotBlank(requestMark)) {
String deleteAll = String.format("delete from %s where FNAME='%s'",
budgetTableName, requestMark);
rsd.executeUpdateWithDatasource(deleteAll, "BudgetRecords");
insertBudgetMiddleTablePrivate(requestMark, billStatus, fbizdate, budgetKmTable, mainTable, isIt, rsd);
} else {
insertBudgetMiddleTablePrivate(requestMark, billStatus, fbizdate, budgetKmTable, mainTable, isIt, rsd);
}
return true;
} catch (Exception e) {
e.getMessage();
writeLog("数据添加失败,原因是:" + e);
return false;
}
}
/**
*
*/
private boolean insertBudgetMiddleTablePrivate(String requestMark, String billStatus, String fbizdate, String budgetKmTable, String mainTable, boolean isIt, RecordSetDataSource rsd) throws Exception {
writeLog("预算信息不存在,执行更新方法 insertBudgetMiddleTable\n @requestMark=" + requestMark + ",billStatus=" + billStatus + "@");
Map<String, Object> budgetBody = getBudgetBodyPrivate(requestMark, mainTable, budgetKmTable, isIt);
writeLog("获取的表单数据是:" + JSONObject.toJSONString(budgetBody));
//主表数据
List<Object> mainInfo = (List<Object>) budgetBody.get("main");
writeLog("主表数据是:" + JSONObject.toJSONString(mainInfo));
//预算数据
List<List<Object>> dtInfo = (List<List<Object>>) budgetBody.get("dt");
writeLog("明细表的记录数:" + dtInfo.size());
writeLog("他们的值是:" + JSONObject.toJSONString(dtInfo));
if (dtInfo.size() == 0) {
writeLog("插入预算表中止,因为科目信息为空");
return false;
}
// //年
// DateTimeFormatter dfOnlyYear = DateTimeFormatter.ofPattern("yyyy");
// //当前操作时间
// DateTimeFormatter dfDateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
try {
String budgetTableName = new PropBean().getPropName("BudgetTableName");
for (List<Object> singleValue : dtInfo) {
List<Object> insertValues = new ArrayList<>();
insertValues.add(billStatus);
insertValues.addAll(mainInfo);
insertValues.addAll(singleValue);
writeLog("即将插入预算中间表的数据是:" + JSONObject.toJSONString(insertValues));
String insert = insertMiddleTablePrivate(budgetTableName);
writeLog("插入中间表的sql语句是" + insert);
RecordSet recordSet = new RecordSet();
recordSet.executeUpdateWithDatasource(insert, "BudgetRecords", insertValues);
}
return true;
} catch (Exception e) {
writeLog("insertBudgetMiddleTable异常, [" + e + "]");
return false;
}
}
/**
*
*/
private Map<String, Object> getBudgetBodyPrivate(String requestMark, String main, String budgetKmTable, boolean isItFlag) throws Exception {
Map<String, Object> res = new HashMap<>();
writeLog("付款流程表名: @" + main + "@");
writeLog("付款预算表名: @" + budgetKmTable + "@");
RecordSet rs = new RecordSet();
String mainInfo = getMainInfoSql(main, requestMark);
writeLog("获取主表的sql语句是:" + mainInfo);
rs.executeQuery(mainInfo);
List<Object> mainValues = new ArrayList<>();
String mainId = "";
if (rs.next()) {
mainValues.add(requestMark);
//流程编码
mainValues.add(Util.null2String(rs.getString("REQUESTNAME")));
//拟稿人名称
mainValues.add(Util.null2String(rs.getString("LASTNAME")));
mainValues.add(Util.null2String(rs.getString("RZRQ").substring(0, 4)));
mainValues.add(Util.null2String(rs.getString("RZRQ")) + " 00:00:00");
mainId = Util.null2String(rs.getString("ID"));
}
writeLog("主表数据: @" + mainValues + "@");
res.put("main", mainValues);
//获取预算科目明细表数据
String budgetKmTableInfo = getKmTableInfoSql(budgetKmTable, mainId);
writeLog("获取预算科目明细表的sql是" + budgetKmTableInfo);
DepartmentComInfo dc = new DepartmentComInfo();
rs.executeQuery(budgetKmTableInfo);
//所有明细科目数据 add dtValues 单行明细科目数据
List<List<Object>> allDtValues = new ArrayList<>();
while (rs.next()) {
//单行明细科目数据
List<Object> dtValues = new ArrayList<>();
String yskm = Util.null2String(rs.getString("yskm"));
if (yskm.isEmpty()) {
dtValues.add("");
dtValues.add("");
} else {
String trueYskm = yskm.split("_")[1];
dtValues.add(trueYskm);
dtValues.add(PayUtil.superBudgetSubject(trueYskm));
}
// 不含税金额
String je = Util.null2String(rs.getString("je"));
dtValues.add(je);
// 未税金额
dtValues.add(je);
// 税金
dtValues.add("0");
// 实际报销金额
dtValues.add("0");
// 差旅报销金额
dtValues.add("0");
// 是否超预算
String sfcys = Util.null2String(rs.getString("sfcys"));
if ("0".equals(sfcys)) {
dtValues.add("否");
} else if ("1".equals(sfcys)) {
dtValues.add("是");
} else {
dtValues.add("");
}
dtValues.add("否");
dtValues.add("");
dtValues.add("");
// 华泰部门code
String fycdbm = Util.null2String(rs.getString("fycdbm"));
String departmentCode = dc.getDepartmentCode(fycdbm);
dtValues.add(departmentCode);
allDtValues.add(dtValues);
}
writeLog("预算表数据" + budgetKmTable + " @" + allDtValues + "@");
res.put("dt", allDtValues);
return res;
}
/**
* sql
*/
private String getMainInfoSql(String main, String requestMark) {
return new SQL() {{
SELECT_DISTINCT("t1.ID,t1.LCBH,t1.RZRQ,t2.REQUESTNAME,t3.LASTNAME,t4.DEPARTMENTCODE");
FROM(main + " t1");
LEFT_OUTER_JOIN("workflow_requestbase t2 on t1.requestid=t2.requestid");
LEFT_OUTER_JOIN("hrmresource t3 on t1.ngr=t3.id");
LEFT_OUTER_JOIN("hrmdepartment t4 on t3.departmentid=t4.id");
WHERE("t1.lcbh='" + requestMark + "'");
}}.toString();
}
/**
*
*/
private String getKmTableInfoSql(String budgetKmTable, String mainId) {
return new SQL() {{
SELECT("fycdbm,je,sfcys,yskm");
FROM(budgetKmTable);
WHERE("MAINID=" + mainId);
}}.toString();
}
/**
*
*
* @param tableName
* @return sql
*/
private String insertMiddleTablePrivate(String tableName) {
return new SQL() {{
INSERT_INTO(tableName);
VALUES("FBILLSTATUS,FNAME,FBILLTITLE,FPESONNAME," +
"YSND,FBIZDATE,FITEMDETAILNUM," +
"FCOSTITEMNUM,FSJAMOUNT,FNOTAXAMOUNT,FTAXAMOUNT,FACTUALAMOUNT," +
"FSTANDARDAMOUNT,FOVERWEIGHT,\n" +
"ISITITEM,ITITEMCODE,ITITEMNAME,FDEPTNUMBER",
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?");
}}.toString();
}
}

@ -0,0 +1,590 @@
package weaver.interfaces.htsc.job.workflow;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ServiceUtil;
import com.engine.workflow.service.WorkflowRuleService;
import com.engine.workflow.service.impl.WorkflowRuleServiceImpl;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.general.GCONST;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.integration.logging.Logger;
import weaver.integration.logging.LoggerFactory;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.interfaces.schedule.BaseCronJob;
import weaver.workflow.agent.AgentBean;
import weaver.workflow.agent.AgentDateBean;
import weaver.workflow.agent.AgentManager;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
* @ClassName: AgentSetJob
* @Description: TODO()
* @author Created by K1810006
* @date 2020112409:32:22
*
*/
/**
* method: add
* isProxyForward:
* endDate: 2021-03-03
* isCreateAgenter: 0
* isProxyDeal: 1
* bagentuid: 1
* beginDate: 2021-03-03
* rangetype: 24
* agentuid: 24209
* beginTime: 15:00
* endTime: 16:00
* isSysCreateAgenter:
* isPendThing:
* agentrange: 1
*/
public class AgentSetJob extends BaseCronJob {
private Logger logger = LoggerFactory.getLogger(this.getClass());
public static boolean checklock = true;
@Override
public void execute() {
Long begintime = System.currentTimeMillis();
logger.info(">>>>>>>>>>>>>>>>>>>>>>>" + this.getClass().getName() + ":strat");
if (checklock) {
checklock = false;
try {
User user = User.getUser(1,0);
WorkflowRuleService ruleService = (WorkflowRuleServiceImpl) ServiceUtil.getService(WorkflowRuleServiceImpl.class, user);
RecordSet rs = new RecordSet();
RecordSetDataSource rds = new RecordSetDataSource("EipAgent");
RecordSetDataSource rds2 = new RecordSetDataSource("EipAgent");
RecordSetDataSource rds3 = new RecordSetDataSource("EipAgent");
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -1);
String synTime = format.format(cal.getTime());
//删除原有授权数据
deleteOldData(user,synTime);
String dataSql = " select distinct t1.client,t1.clientDeptCode,t1.workflowname,t1.starttime,t1.endtime \n" +
" from ENTRUSTOA t1, zony_wfp_pe.entrust_portal_info t2 \n" +
" where t1.portal_id=to_char(t2.id)\n" +
" and t1.workflowname like 'ECOA%' and t1.enable=1 \n" +
" and t2.createtime >= '"+synTime+"'";
logger.info(">>>>>>>>>>>>>>>>>>>>>>>AgentSetJob syn dataSql========"+dataSql);
rds.execute(dataSql);
while(rds.next()){
String client = Util.null2String(rds.getString("client"));//授权人工号
String clientDeptCode = Util.null2String(rds.getString("clientDeptCode"));//授权人部门编码
String wfname = Util.null2String(rds.getString("workflowname")); //授权流程
String wfunnumber = wfname.substring(5);
int beagenterid = getUidByWorkcodeAndDeptcode(client,clientDeptCode);
if(beagenterid<0){
continue;
}
String workflowid = new PropBean().getActiveWorkflowIdByUnNumber(wfunnumber);
String endtime = Util.null2String(rds.getString("endtime")); //授权结束时间
String starttime = Util.null2String(rds.getString("starttime")); //授权开始时间
//重新同步门户的授权数据
String beginDate = "";
String beginTime = "";
if(!"".equals(starttime)){
beginDate = starttime.substring(0,10);
beginTime = starttime.substring(11,16);
}
String finishDate = "";
String finishTime = "";
if(!"".equals(endtime)){
finishDate = endtime.substring(0,10);
finishTime = endtime.substring(11,16);
}
//查询当前流程、当前代理人的所有有效配置
ArrayList<AgentBean> detailList = new ArrayList();
String allDataSql = " select distinct trustee,starttime,endtime from ENTRUSTOA " +
"where workflowname='"+wfname+"' and client='"+client+"' " +
" and clientDeptCode='"+clientDeptCode+"' and starttime='"+starttime+"' " +
" and endtime='"+endtime+"' and enable=1 ";
rds2.execute(allDataSql);
while(rds2.next()){
String trustee = Util.null2String(rds2.getString("trustee")); //被授权人工号(如果被授权人有多个身份,则授权给同部门的身份)
int agentuid = getUidByWorkcodeAndDeptcode(trustee,clientDeptCode);
logger.info("client="+client+" clientDeptCode="+clientDeptCode+" trustee="+trustee);
if(agentuid<0){
continue;
}
//生成对应代理人的条件规则
String linkid = getLinkid();
logger.info("AgentSetJob linkid=="+linkid);
//生成代理条件参数
Map<String,Object> allcondition = new HashMap<String,Object>();
rds3.execute(" select distinct condition from ENTRUSTOA t1 " +
" where client='"+client+"' and trustee='"+trustee+"' and clientdeptcode='"+clientDeptCode+"' " +
" and workflowname = '"+wfname+"' and starttime='"+starttime+"' and endtime='"+endtime+"' and enable=1 ");
while(rds3.next()) {
String condition = Util.null2String(rds3.getString("condition")); //授权条件
logger.info("AgentSetJob condition==="+condition);
if (!"".equals(condition)) {
Map<String,String> conditionMap = conditionStrToMap(condition);
parseCondition(allcondition,conditionMap,workflowid);
}
}
String conditionss = "";
//如果有设置代理规则,解析规则
if(allcondition.size()>0){
Map<String,Object> params = getContionParams(allcondition,workflowid,linkid);
logger.info("AgentSetJob saveRule params==========="+params);
Map res = ruleService.saveRule(params);
JSONObject jsonRes = new JSONObject(res);
if("SUCCESS".equals(jsonRes.getString("info"))) {
conditionss = jsonRes.getString("id");
}
}
//构造明细参数
AgentBean agentBean = new AgentBean();
agentBean.setAgentuid(agentuid);
agentBean.setIscreateagenter(1);
agentBean.setIsSysCreateAgenter("1");
agentBean.setIsproxydeal(1);
agentBean.setIspendthing(0);
agentBean.setAgentbatch("0.00");
agentBean.setConditionkeyid(linkid);
agentBean.setConditionss(conditionss);
//agentBean.setConditioncn();
detailList.add(agentBean);
}
if(detailList.size()==0){
continue;
}
AgentBean bean = detailList.get(0);
bean.setBagentuid(beagenterid);
bean.setBegindate(beginDate);
bean.setBegintime(beginTime);
bean.setEnddate(finishDate);
bean.setEndtime(finishTime);
//第一步 添加出被代理人的代理记录
logger.info("AgentSetJob insert agent===="+JSON.toJSONString(bean));
AgentManager agentManager = new AgentManager(user);
String agentresult = agentManager.addAgent(workflowid, bean, 1);
logger.info("AgentSetJob agentresult==="+agentresult);
int agentid = -1;
if(!"success".equals(agentresult)){
logger.error("AgentSetJob 同步门户代理数据出错,授权人:"+beagenterid+" 被授权人:"+bean.getAgentid()+" 授权流程:"+wfunnumber);
}else{
//查询生成的代理数据id
int agentuid = bean.getAgentuid();
String agentSql = " select * from workflow_agent " +
" where workflowid="+workflowid+" and beagenterid="+beagenterid+" and agenterid="+agentuid+" " +
" and begindate='"+beginDate+"' and begintime='"+beginTime+"' " +
" and enddate='"+finishDate+"' and endtime='"+finishTime+"' " ;
rs.execute(agentSql);
rs.next();
agentid = rs.getInt("agentid");
}
//第二部 给被代理人添加所有的代理明细记录
AgentDateBean agentDateBean = new AgentDateBean();
agentDateBean.setBegindate(beginDate);
agentDateBean.setBegintime(beginTime);
agentDateBean.setEnddate(finishDate);
agentDateBean.setEndtime(finishTime);
String detailResult = agentManager.changeAgentSet(agentid, agentDateBean, 2, true, detailList);
logger.info("保存明细数据结果===="+detailResult);
//生成代理数据的条件
}
} catch (Exception e) {
e.printStackTrace();
}finally {
checklock = true;
}
} else {
logger.info(this.getClass().getName() + "正在执行中...");
}
logger.info(">>>>>>>>>>>>>>>>>>>>>>>" + this.getClass().getName() + ":end 耗时:" + (System.currentTimeMillis() - begintime));
}
/**
* ID
* @param workcode
* @param deptcode
* @return
*/
public int getUidByWorkcodeAndDeptcode(String workcode,String deptcode){
//System.out.println(workcode+" "+deptcode);
int userid = -1;
RecordSet rs = new RecordSet();
rs.executeQuery(" select a.id from hrmresource a,hrmdepartment b" +
" where a.departmentid=b.id and workcode=? and departmentcode=? and status<=3 ",new Object[]{workcode,deptcode});
if(rs.next()){
userid = rs.getInt("id");
}
return userid;
}
/**
*
* @param condition
* @return
*/
public Map<String,String> conditionStrToMap(String condition){
Map<String,String> conditionKV = new LinkedHashMap<>();
String[] conditions = condition.split(";");
for(int i=0;i<conditions.length;i++){
String fieldname = conditions[i].split("=")[0];
String fieldvalue = conditions[i].split("=")[1];
conditionKV.put(fieldname,fieldvalue);
}
return conditionKV;
}
/**
*
* @param condition
* @return
*/
public Map<String,Object> parseCondition(Map<String,Object> allcondition,Map<String,String> condition,String workflowid){
RecordSet rs = new RecordSet();
for (Map.Entry<String, String> entry : condition.entrySet()) {
String fieldname = entry.getKey();
String fieldvalue = entry.getValue();
String fieldSql = "select b.*,c.labelname from workflow_base a,workflow_billfield b,htmllabelinfo c " +
" where a.formid=b.billid and b.fieldlabel=c.indexid and c.languageid=7 " +
" and a.id=? and b.fieldname=? ";
rs.executeQuery(fieldSql,new Object[]{workflowid,fieldname});
if(rs.next()){
String fieldid = Util.null2String(rs.getString("id"));
String fielddbtype = Util.null2String(rs.getString("fielddbtype"));
String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype"));
//int pubchilchoiceid = Util.getIntValue(rs.getString("pubchilchoiceid"));
int type = rs.getInt("type");
String labelname = Util.null2String(rs.getString("labelname"));
//判断是否是人力资源字段
int typehrm = -1;
if("3".equals(fieldhtmltype) && (type==1 || type==17)){
typehrm = 1;
}
String browservalue = "";
String browserspantext = "";
String browserspanlabel = "";
String selectvalue1 = "-1";
if("5".equals(fieldhtmltype)){//下拉框值转换,浏览按钮情况暂不处理
String selectRange = "";
rs.executeQuery(" select id,fieldname from workflow_billfield where childfieldid=? ",fieldid);
if(rs.next()){//是子选项,需要根据父选项确定下拉框的值
String parentFieldid = Util.null2String(rs.getString("id"));
String parentFieldname = Util.null2String(rs.getString("fieldname"));
String parentFieldvalue = condition.get(parentFieldname);
rs.executeQuery(" select childitemid from workflow_selectitem where fieldid=? and selectname=? ",new Object[]{parentFieldid,parentFieldvalue} );
rs.next();
String childitemid = Util.null2String(rs.getString("childitemid"));
if(!"".equals(childitemid)){
selectRange = " and selectvalue in ("+childitemid+") ";
}
}
rs.executeQuery(" select selectvalue from workflow_selectitem " +
"where fieldid=? and selectname=? "+selectRange,new Object[]{fieldid,fieldvalue});
rs.next();
String selectvalue = Util.null2String(rs.getString("selectvalue"));
browservalue = selectvalue;
browserspantext = fieldvalue;
browserspanlabel = fieldvalue;
selectvalue1 = selectvalue;
}
String textvalue1 = "";
if("2".equals(fieldhtmltype)){
textvalue1 = fieldvalue;
}
String valuetype = "-1";
if("2".equals(fieldhtmltype)){
valuetype = "1";
}
Map<String,Object> fieldConditionInfo = new HashMap<String,Object>();
if(allcondition.containsKey(fieldname)){
fieldConditionInfo = (Map<String, Object>) allcondition.get(fieldname);
fieldConditionInfo.put("browservalue",((String)fieldConditionInfo.get("browservalue"))+","+browservalue);
fieldConditionInfo.put("browserspantext",((String)fieldConditionInfo.get("browserspantext"))+"_"+browserspantext);
fieldConditionInfo.put("browserspanlabel",((String)fieldConditionInfo.get("browserspanlabel"))+","+browserspanlabel);
fieldConditionInfo.put("selectvalue1",((String)fieldConditionInfo.get("selectvalue1"))+","+selectvalue1);
}else{
fieldConditionInfo.put("datafield",fieldid);
fieldConditionInfo.put("datafieldlabel",labelname);
fieldConditionInfo.put("typehrm",typehrm);
fieldConditionInfo.put("htmltype",fieldhtmltype);
fieldConditionInfo.put("fieldtype",type);
fieldConditionInfo.put("dbtype",fielddbtype);
fieldConditionInfo.put("browservalue",browservalue);
fieldConditionInfo.put("browserspantext",browserspantext);
fieldConditionInfo.put("browserspanlabel",browserspanlabel);
fieldConditionInfo.put("textvalue1",textvalue1);
fieldConditionInfo.put("valuetype",valuetype);
fieldConditionInfo.put("selectvalue1",selectvalue1);
}
allcondition.put(fieldname,fieldConditionInfo);
}
}
return allcondition;
}
/**
*
* @param allcondition
* @param workflowid
* @param linkid
* @return
*/
public Map<String,Object> getContionParams(Map<String,Object> allcondition,String workflowid,String linkid){
String returnStr[] = new String[2];
String rulexml = "<?xml version='1.0' encoding='utf-8'?><expressions relation='1'>";
String condit = "";
for (Map.Entry<String, Object> entry : allcondition.entrySet()) {
String fieldname = entry.getKey();
Map<String,Object> conditionInfo = (Map<String, Object>) entry.getValue();
String xmlStr = "<expression \n" +
" id='-1'\n" +
" paramtype='-1'\n" +
" datafield='"+conditionInfo.get("datafield")+"'\n" +
" datafieldlabel='"+conditionInfo.get("datafieldlabel")+"'\n" +
" typehrm='"+conditionInfo.get("typehrm")+"'\n" +
" htmltype='"+conditionInfo.get("htmltype")+"'\n" +
" fieldtype='"+conditionInfo.get("fieldtype")+"'\n" +
" dbtype='"+conditionInfo.get("dbtype")+"'\n" +
" compareoption1='7'\n" +
" compareoption2='-1'\n" +
" browservalue='"+conditionInfo.get("browservalue")+"'\n" +
" browserspantext='"+conditionInfo.get("browserspantext")+"'\n" +
" browserspanlabel='"+conditionInfo.get("browserspanlabel")+"'\n" +
" browservalue2=''\n" +
" browserspantext2=''\n" +
" browserspanlabel2=''\n" +
" textvalue1='"+conditionInfo.get("textvalue1")+"'\n" +
" textvalue2=''\n" +
" valuetype='"+conditionInfo.get("valuetype")+"'\n" +
" valuetype2='-1'\n" +
" checkboxvalue1='-1'\n" +
" redius='-1'\n" +
" nodeId=''\n" +
" selectvalue1='"+conditionInfo.get("selectvalue1")+"'\n" +
" meetCondition='-1'\n" +
" jingdu=''\n" +
" weidu=''\n" +
" hrmConditon = ''\n" +
" hrmConditonValue=''\n" +
" /> \n";
rulexml += xmlStr;
condit += "("+conditionInfo.get("datafieldlabel")+" 属于 '"+conditionInfo.get("browserspanlabel")+"') AND ";
}
rulexml += "</expressions>";
condit = condit.substring(0,condit.lastIndexOf("AND")).trim();
condit = "("+condit+")";
int formid = getFormId(workflowid);
Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("rulexml",rulexml);
paramsMap.put("rownum","");
paramsMap.put("condit",condit);
paramsMap.put("e9nodeid","");
paramsMap.put("ruleid",0);
paramsMap.put("rulesrc",6);
paramsMap.put("formid",formid);
paramsMap.put("linkid",linkid);
paramsMap.put("isbill",1);
paramsMap.put("wfid",workflowid);
return paramsMap;
}
/**
* id
* @param workflowid
* @return
*/
public int getFormId(String workflowid){
int formid = -1;
RecordSet rs = new RecordSet();
rs.executeQuery(" select formid from workflow_base where id=? ",new Object[]{workflowid});
if(rs.next()){
formid = rs.getInt("formid");
}
return formid;
}
public static String getLinkid(){
String rnd = "";
for (int i = 0; i < 2; i++) {
rnd += new Random().nextInt(10);
}
return Calendar.getInstance().get(Calendar.MILLISECOND) +rnd;
}
/**
*
* @param workflowid
* @param beagenterid
*/
public void deleteAgentData(String workflowid,int beagenterid){
RecordSet rs = new RecordSet();
String conditionkeyid = "";
String sql1 = " select b.* from workflow_agent a,workflow_agentConditionSet b " +
"where a.agentid=b.agentid and a.beagenterid=? and a.workflowid=? and conditionkeyid is not null ";
rs.executeQuery(sql1,new Object[]{beagenterid,workflowid});
while(rs.next()){
conditionkeyid += Util.null2String(rs.getString("conditionkeyid"))+",";
}
if(!"".equals(conditionkeyid)){
conditionkeyid = conditionkeyid.substring(0,conditionkeyid.length()-1);
//删除规则
String deleteSql1 = " delete from rule_maplist where wfid="+workflowid+" and rulesrc=6 and linkid in("+conditionkeyid+")";
rs.execute(deleteSql1);
String deleteSql2 = " delete from rule_base where linkid in("+conditionkeyid+") and rulesrc=6 ";
rs.execute(deleteSql2);
}
String deleteSql3 = " delete from workflow_agentConditionSet a " +
"where exists(select 1 from workflow_agent b " +
"where a.agentid = b.agentid and b.workflowid=? and b.beagenterid=? )";
rs.executeUpdate(deleteSql3,new Object[]{workflowid,beagenterid});
String deleteSql4 = " delete from workflow_agent where workflowid=? and beagenterid=? ";
rs.executeUpdate(deleteSql4,new Object[]{workflowid,beagenterid});
}
/**
*
* @param workflowid
* @param beagenterid
*/
public void takeBackAgentData(String workflowid,int beagenterid,User user){
RecordSet rs = new RecordSet();
String sql = " select agentid from workflow_agent where beagenterid=? and workflowid=? and agenttype=1 ";
rs.executeQuery(sql,new Object[]{beagenterid,workflowid});
AgentManager agentManager = new AgentManager(user);
while(rs.next()){
int agentid = rs.getInt("agentid") ;
agentManager.takeBackAgent(agentid, true,true);
}
}
/**
* OA
*/
public void deleteOldData(User user,String synTime){
RecordSetDataSource rds = new RecordSetDataSource("EipAgent");
String dataSql = " select distinct t1.client,t1.clientDeptCode,t1.workflowname,t1.starttime,t1.endtime \n" +
"from ENTRUSTOA t1, zony_wfp_pe.entrust_portal_info t2 \n" +
"where t1.portal_id=to_char(t2.id) and t1.workflowname like 'ECOA%' \n" +
"and t2.createtime >= '"+synTime+"' ";
logger.info(">>>>>>>>>>>>>>>>>>>>>>>AgentSetJob delete dataSql========"+dataSql);
rds.execute(dataSql);
while(rds.next()) {
String client = Util.null2String(rds.getString("client"));//授权人工号
String clientDeptCode = Util.null2String(rds.getString("clientDeptCode"));//授权人部门编码
String wfname = Util.null2String(rds.getString("workflowname")); //授权流程
String wfunnumber = wfname.substring(5);
int beagenterid = getUidByWorkcodeAndDeptcode(client, clientDeptCode);
if (beagenterid < 0) {
continue;
}
String workflowid = new PropBean().getActiveWorkflowIdByUnNumber(wfunnumber);
//删除OA中当前流程、当前代理人的所有代理数据
//deleteAgentData(workflowid, beagenterid);
takeBackAgentData(workflowid,beagenterid,user);
}
}
public static void main(String[] args) {
GCONST.setRootPath("./");
GCONST.setServerName("ecology");
AgentSetJob agentSetJob = new AgentSetJob();
agentSetJob.execute();
}
}

@ -0,0 +1,318 @@
package weaver.interfaces.htsc.payment;
import com.alibaba.fastjson.JSON;
import com.engine.htsc.payment.enums.Sequences;
import com.engine.htsc.payment.util.CoWfUtil;
import com.engine.htsc.payment.util.PayUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.hrm.resource.ResourceComInfo;
import com.weaver.general.BaseBean;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.conn.RecordSetTrans;
import weaver.general.Util;
import weaver.interfaces.htsc.GlobatTools.JAVATools;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.RequestInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestService;
import weaver.workflow.request.RequestComInfo;
import weaver.workflow.workflow.WorkflowComInfo;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* uf_yfkmiddle
* formtable_main_213,
*
*/
public class AdvancePaymentJob extends weaver.interfaces.schedule.BaseCronJob {
private Log log = LogFactory.getLog(this.getClass());
@Override
public void execute() {
PropBean pp = new PropBean();
String yskmPre = pp.getPropName("YFKFYQRaccountTreeId");
String hjkmPre = pp.getPropName("YFKKJRaccountTreeId");
log.info("定时任务自动创建流程开始======");
RecordSetTrans rst = new RecordSetTrans();
RecordSet rs = new RecordSet();
RecordSet rsdetail = new RecordSet();
try{
rst.setAutoCommit(false);
PropBean pb = new PropBean();
//流水号
int number = -1;
String workflowId = pb.getPropName("YFKQR_WORKFLOWID");
String tableName = "formtable_main_";
//获取预付款流程表名
rs.executeQuery("select formid from workflow_base where id = ?",workflowId);
if (rs.next()){
int formid = Math.abs(Util.getIntValue(rs.getString("formid")));
tableName = tableName + formid;
log.info("预付款流程表名=="+tableName);
}else {
log.info("获取预付款流程表名失败==");
return;
}
String IsNextFlow = "1"; //1提交到下一节点0不提交
//1.遍历建模中间表 sfcf 1未触发
rs.executeQuery("select a.id,a.zzfptjr,a.reqid,a.lcbh,a.ngr,a.bt,a.szbm,a.jjcd,a.jjyy,a.lxfs," +
" a.ngsj,a.xjhjmx,a.ngrfyhj,a.fyhjsp,a.ggfyqtfy,a.fkxx,a.fzjgcwjl, " +
" (select wm_concat_old(b.skdw) from uf_yfkmiddle_dt11 b where a.id = b.mainid) " +
" as skdw from uf_yfkmiddle a where (a.sfcf = 1 or a.sfcf is null) and a.sffkqr = 1");
while (rs.next()) {
log.info("建模存在未触发的数据数据");
Map<String,String> requestMainMap = new HashMap<String,String>();
Integer uf_id = Util.getIntValue(rs.getString("id"));
String requestid = Util.null2String(rs.getString("reqid"));
String lcbh = Util.null2String(rs.getString("lcbh"));
String ngr = Util.null2String(rs.getString("ngr"));
String bt = Util.null2String(rs.getString("bt"));
String szbm = Util.null2String(rs.getString("szbm"));
String jjcd = Util.null2String(rs.getString("jjcd"));
String jjyy = Util.null2String(rs.getString("jjyy"));
String lxfs = Util.null2String(rs.getString("lxfs"));
String ngsj = Util.null2String(rs.getString("ngsj"));
String xjhjmx = Util.null2String(rs.getString("xjhjmx"));
String ngrfyhj = Util.null2String(rs.getString("ngrfyhj"));
String fyhjsp = Util.null2String(rs.getString("fyhjsp"));
String skdw = Util.null2String(rs.getString("skdw"));
String ggfyqtfy = Util.null2String(rs.getString("ggfyqtfy"));
String fkxx = Util.null2String(rs.getString("fkxx"));
String fzjgcwjl = Util.null2String(rs.getString("fzjgcwjl"));
String zzfptjr = Util.null2String(rs.getString("zzfptjr"));
String requestName = lcbh + bt + "的预付款费用确认";
String bz = "收款方: "+skdw;
log.info("预付款流程确认标题=="+requestName);
//生成流程编号
// int formModeId = PayUtil.getFormModeIdByCubeName("uf_fklcbh");
//// StringBuilder mark = new StringBuilder(); // 流程编码
//// String workflowName = "";
//// String unNumber = "";
////
//// rsdetail.executeQuery("select workflowname,unnumber from workflow_base where id=?",workflowId);
//// if (rsdetail.next()){
//// workflowName = Util.null2String(rsdetail.getString("workflowname"));
//// unNumber = Util.null2String(rsdetail.getString("unnumber"));
//// }
//// log.info("==流程名称和唯一编码=="+workflowName+"==="+unNumber);
//// String modeUuid = "";
//// LocalDateTime localDateTime = LocalDateTime.now();
//// String date = localDateTime.format(DateTimeFormatter.ofPattern("yyyyMM"));
//// rsdetail.executeQuery("select id,lsh,modeuuid from uf_fklcbh where ny = ? and" +
//// " lclx = ?",date,unNumber);
//// if (rsdetail.next()){
//// if (number == -1){
//// number = Util.getIntValue(rsdetail.getString("lsh")) + 1;
//// }else {
//// number = number + 1;
//// }
////
//// int id = Util.getIntValue((rsdetail.getString("id")));
//// modeUuid = Util.null2String(rsdetail.getString("modeuuid"));
////
//// rst.executeUpdate("update uf_fklcbh set lsh = ? where id = ?",number,id);
//// mark = new StringBuilder(number + "");
//// while(mark.length() < 6){
//// mark.insert(0,"0");
//// }
//// mark = new StringBuilder(workflowName + date + mark);
//// }else {
//// String createDate = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
//// String createTime = localDateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
//// //插入
//// String insertSql = "insert into uf_fklcbh" +
//// "(FORMMODEID,MODEDATACREATER,MODEDATACREATERTYPE,MODEDATACREATEDATE,MODEDATACREATETIME,MODEUUID,LSH,NY,LCLX) \n" +
//// "values(?,?,?,?,?,?,?,?,?)";
//// String uuid = UUID.randomUUID().toString();
//// modeUuid = uuid;
//// rst.executeUpdate(insertSql, formModeId, ngr, 0, createDate, createTime, uuid, "1", date, unNumber);
//// mark = new StringBuilder(workflowName + date + "000001");
//// }
// log.info("==流程编号=="+mark);
//
//
// //权限重构
// int dataId = PayUtil.getDataIdByUUID(modeUuid);
// ModeRightInfo modeRightInfo = new ModeRightInfo();
// modeRightInfo.editModeDataShare(1, formModeId, dataId);
// 预付款流程
String mark = CoWfUtil.getRequestMarkByUnNumber("zbyfkfyqr", Sequences.NET_REI_WORKFLOW_SEQ_ZB);
requestMainMap.put("zzfptjr",zzfptjr);
requestMainMap.put("ngr",ngr);
requestMainMap.put("glyfklc",requestid);
requestMainMap.put("szbm",szbm);
requestMainMap.put("jjcd",jjcd);
requestMainMap.put("jjyy",jjyy);
requestMainMap.put("lxfs",lxfs);
requestMainMap.put("ngsj",ngsj);
requestMainMap.put("xjhjmx",xjhjmx);
requestMainMap.put("ngrfyhj",ngrfyhj);
requestMainMap.put("fyhjsp",fyhjsp);
requestMainMap.put("ggfyqtfy",ggfyqtfy);
requestMainMap.put("bz",bz);
requestMainMap.put("spjg","0");
requestMainMap.put("fkxx",fkxx);
requestMainMap.put("fzjgcwjl",fzjgcwjl);
requestMainMap.put("lcbh",mark.toString());
requestMainMap = removeNullValue(requestMainMap);
log.info("预付款流程生成过滤后参数=="+ JSON.toJSONString(requestMainMap));
//2.自动创建流程获取requestid
int requestid_main_213 = Util.getIntValue(WorkflowCreateByRequestMap(ngr,workflowId,requestName,IsNextFlow,requestMainMap));
log.info("预付款流程确认自动生成requestid=="+requestid_main_213);
if (requestid_main_213 > 0) {
Integer form_id = null;
rsdetail.executeQuery("select id from "+tableName+" where requestid = ?",requestid_main_213);
if (rsdetail.next()){
form_id = Util.getIntValue(rsdetail.getString("id"));
}
//1.更新流程编号
log.info("requestid=="+requestid_main_213+"==lcbh:"+mark.toString());
rst.executeUpdate("update workflow_requestbase set requestmark = ? where requestid = ? ",mark.toString(),requestid_main_213);
//3.更新预付款流程的明细表(采用批量插入更新方法)只执行一次
String tableName_detail_eight = tableName + "_dt8";
String detail_eight_sql = "insert into "+tableName_detail_eight+" (mainid,bhsje,sj,jshjje,sy,fysjcdbm,sl,yskm,slz,htbh,cys,yskmid) " +
" select "+form_id+",bhsje,sj,jshjje,sy,fysjcdbm,sl,yskm,slz,htbh,cys,'"+yskmPre+"_'||yskm from uf_yfkmiddle_dt8 where mainid = "+uf_id+"";
log.info("批量插入sql明细表8=="+detail_eight_sql);
rst.executeUpdate(detail_eight_sql);
String tableName_detail_nine = tableName + "_dt9";
String detail_nine_sql = "insert into "+tableName_detail_nine+" (mainid,rmbje,htbh,sy,bz,hl,wbje,yskm,fysjcdbm,cys,yskmid) " +
" select "+form_id+",rmbje,htbh,sy,bz,hl,wbje,yskm,fysjcdbm,cys,'"+yskmPre+"_'||yskm from uf_yfkmiddle_dt9 where mainid = "+uf_id+"";
log.info("批量插入sql明细表9=="+detail_nine_sql);
rst.executeUpdate(detail_nine_sql);
String tableName_detail_eleven = tableName + "_dt11";
String detail_eleven_sql = "insert into "+tableName_detail_eleven+" (mainid,skdw,yxzh,khx,ss,yxzfje,xjzfje,dfkje,lsjl,khxmc) " +
" select "+form_id+",skdw,yxzh,khx,ss,yxzfje,xjzfje,dfkje,lsjl,khxmc from uf_yfkmiddle_dt11 where mainid = "+uf_id+"";
log.info("批量插入sql明细表11=="+detail_eleven_sql);
rst.executeUpdate(detail_eleven_sql);
String tableName_detail_twelve = tableName + "_dt12";
String detail_twelve_sql = "insert into "+tableName_detail_twelve+" (mainid,fysjcdbm,je,sjbz,zhrmb,hjkm,hl,hjkmid,yskmmc,yskm) " +
" select "+form_id+",fysjcdbm,je,sjbz,zhrmb,hjkm,hl,'"+hjkmPre+"_'||hjkm,yskmmc,yskm from uf_yfkmiddle_dt12 where mainid = "+uf_id+"";
log.info("批量插入sql明细表12=="+detail_twelve_sql);
rst.executeUpdate(detail_twelve_sql);
//4.更新建模中间表表示该条数据已完成新建流程
rst.executeUpdate("update uf_yfkmiddle set sfcf = 0 where reqid = ?",requestid);
log.info("AdvancePaymentJob==预付款流程自动创建成功==");
}
}
log.info("==建模中间表未存在需要自动触发的流程===");
rst.commit();
}catch (Exception e){
rst.rollback();
log.info("预付款流程自动创建失败");
e.printStackTrace();
}
}
/**
* map
* @param map
* @return
*/
public static Map<String,String> removeNullValue(Map<String,String> map){
Map<String,String> newMap = new HashMap<String,String>();
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
if(value!=null && !"".equals(value)){
newMap.put(key,value);
}
}
return newMap;
}
/**
*
* @Title:
* @param @param creatorId Id
* @param @param workflowId Id
* @param @param requestName
* @param @param IsNextFlow
* @param @param requestMap Map<fieldname,fieldvalue>=<,>
* @param @return
* @return String
* @throws
*/
public static String WorkflowCreateByRequestMap(String creatorId,String workflowId,
String requestName,String IsNextFlow,
Map<String,String> requestMainMap) {
BaseBean bs = new BaseBean();
String requestid = "";
RequestInfo requestInfo = new RequestInfo();
requestInfo.setCreatorid(creatorId);//创建人Id
requestInfo.setWorkflowid(workflowId);//工作流Id
requestInfo.setDescription(requestName);//请求标题
if(!"".equals(IsNextFlow))
{
requestInfo.setIsNextFlow(IsNextFlow);
}
//主表字段
MainTableInfo mainTableInfo = new MainTableInfo();
Property[] propertyArray = new Property[requestMainMap.size()];
int p = 0;
for (Map.Entry<String, String> entry : requestMainMap.entrySet())
{
propertyArray[p] = new Property();
propertyArray[p].setName(Util.null2String(entry.getKey()));
propertyArray[p].setValue(Util.null2String(entry.getValue()));
bs.writeLog("\r\n---p="+p+"---Key="+entry.getKey()+"---Value="+entry.getValue());
p++;
}
bs.writeLog("-----创建流程传递的参数个数p="+p);
mainTableInfo.setProperty(propertyArray);
requestInfo.setMainTableInfo(mainTableInfo);
RequestService service = new RequestService();
try {
//流程
try {
requestid = service.createRequest(requestInfo);//创建请求id
} catch (Exception e) {
bs.writeLog("预付款流程触发异常"+e.getMessage());
}
//String userId = requestInfo.getLastoperator();//请求最后的操作者
//记录日志
StringBuffer sbf = new StringBuffer("\r\n-----xwd创建工作流记录日志开始");
WorkflowComInfo wfcif =new WorkflowComInfo();
RequestComInfo rcif = new RequestComInfo();
ResourceComInfo rscif = new ResourceComInfo();
sbf.append("\r\n-----姓名:"+rscif.getLastname(rcif.getRequestCreater(requestid)));
sbf.append("\r\n-----时间:"+rcif.getRequestCreateTime(requestid));
sbf.append("\r\n-----创建流程:"+wfcif.getWorkflowname(workflowId));
sbf.append("\r\n-----请求:"+rcif.getRequestname(requestid));
sbf.append("\r\n-----请求:"+requestid);
sbf.append("\r\n-----创建工作流记录日志结束");
bs.writeLog(sbf.toString());
System.out.println(""+sbf.toString());
} catch (Exception e) {
bs.writeLog("错误:" + e);
System.out.println("错误:" + e);
}
return requestid;
}
}

@ -0,0 +1,156 @@
package weaver.interfaces.htsc.yfkqrlc.util;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.soa.workflow.request.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ActionsUtil {
// 获取主表数据
public static Map getMainInfo(RequestInfo requestInfo) {
Map map = new HashMap();
Property[] property = requestInfo.getMainTableInfo().getProperty();
for (int i = 0; i < property.length; i++) {
map.put(property[i].getName().toLowerCase(), Util.null2String(property[i].getValue()));
}
return map;
}
// 获取明细表数据
public static List getDetailInfo(RequestInfo requestInfo, int num) {
DetailTable detailTable = requestInfo.getDetailTableInfo().getDetailTable(num);
//dtltable数组中的行数据集合
Row[] rows = detailTable.getRow();
List sublist = new ArrayList();
for (int i = 0; i < rows.length; i++) {
Row row = rows[i];
Map onerow = new HashMap();
sublist.add(onerow);
Cell[] cells = row.getCell();
for (int j = 0; j < cells.length; j++) {
Cell cell = cells[j];
onerow.put(cell.getName(), Util.null2String(cell.getValue()));
}
}
return sublist;
}
/**
* @param fieldName
* @param tableNum Num
* @param requestInfo
* @param interval
* @Describe RequestInfo
*/
public static String getDataStringByRequestInfo(String fieldName, int tableNum, RequestInfo requestInfo, String interval) {
String returnResult = "";
List dtData = getDetailInfo(requestInfo, tableNum - 1);
if (dtData.size() != 0) {
List<String> htbhList = new ArrayList<>(dtData.size());
for (Object dtOne : dtData) {
Map oneRow = (Map) dtOne;
String aFieldVal = Util.null2String(oneRow.get(fieldName));
// 去重去空处理
if ((!"".equals(aFieldVal)) && (!" ".equals(aFieldVal)) && (!htbhList.contains(aFieldVal))) {
htbhList.add(aFieldVal);
}
}
htbhList.remove(null);
returnResult = StringUtils.join(htbhList, interval);
}
return returnResult;
}
/**
* @param requestId requestid
* @return Map(String, Object)
* @Describe
*/
public static Map<String, Object> yfkParamsMap(String requestId) {
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String sql = "";
String yfkTableName = new PropBean().getPropName("yfkTableName");
Map<String, Object> resultMap = new HashMap<>();
// 符合要求的预付款流程编号
List<String> rightRequestIds = new ArrayList<>();
// 获取已触发的预付款流程的流程编号(已办结并且不是终止)
sql = "select a.requestid,currentnodetype,isstopped from " + yfkTableName + " a JOIN workflow_requestbase b " +
"on a.GLYFKLC = b.requestid where GLYFKLC = '" + requestId + "'";
bb.writeLog("即将执行的sql是" + sql);
rs.executeQuery(sql);
while (rs.next()) {
String currentnodetype = Util.null2String(rs.getString("currentnodetype"));
String isstopped = Util.null2String(rs.getString("isstopped"));
if ((!"1".equals(isstopped)) && ("3".equals(currentnodetype))) {
// 已办结并且不是终止
rightRequestIds.add(Util.null2String(rs.getString("requestid")));
}
}
bb.writeLog("==============获取到归档并且不是终止的预付款流程编号有:"+ JSONObject.toJSONString(rightRequestIds));
String yfkReqIds = StringUtils.join(rightRequestIds,",");
List<String> kpf = new ArrayList<>();
// 1、获取流程编号
sql = "select REPLACE(wm_concat_old(lcbh), ',', '') as lcbh from " + yfkTableName + " where requestid in ("+yfkReqIds+")";
bb.writeLog("==========获取流程编号的sql是"+sql);
rs.executeQuery(sql);
if (rs.next()) {
resultMap.put("lcbh",Util.null2String(rs.getString("lcbh")).replaceAll("&nbsp;", " ").replaceAll("<br>", ""));
}
// 2、获取开票方
// 2.1、获取增值税的销方名称
sql = "select REPLACE(wm_concat_old(xfmc), ',', '') as xfmcs from "+yfkTableName+"_dt5 " +
"where mainid in (select id from "+yfkTableName+" where requestid in ("+yfkReqIds+"))";
bb.writeLog("获取明细表5销方名称的sql是"+sql);
rs.executeQuery(sql);
if (rs.next()) {
String xfmcs = Util.null2String(rs.getString("xfmcs"));
if (!"".equals(xfmcs)){
kpf.add(xfmcs);
}
}
// 2.2、获取其他票的开票方
sql = "select REPLACE(wm_concat_old(kpf), ',', '') as kpfs from "+yfkTableName+"_dt6 " +
"where mainid in (select id from "+yfkTableName+" where requestid in ("+yfkReqIds+"))";
bb.writeLog("获取明细表6开票方的sql是"+sql);
rs.executeQuery(sql);
if (rs.next()) {
String kpfs = Util.null2String(rs.getString("kpfs"));
if (!"".equals(kpfs)){
kpf.add(kpfs);
}
}
resultMap.put("kpf",StringUtils.join(kpf,"").replaceAll("&nbsp;", " ").replaceAll("<br>", ""));
// 3、已核销金额
sql = "select SUM(jshjze) as yhxje from "+yfkTableName+"_dt7 " +
"where mainid in (select id from "+yfkTableName+" where requestid in ("+yfkReqIds+"))";
rs.executeQuery(sql);
if (rs.next()){
resultMap.put("yhxje",Util.null2String(rs.getString("yhxje")));
}
return resultMap;
}
public static int getDataIdByUUID(String uuid, String uf_tableName) {
RecordSet rs = new RecordSet();
int dataid = -1;
String sql = "select id from " + uf_tableName + " where modeuuid = ?";
if (rs.executeQuery(sql, uuid) && rs.next()) {
dataid = Util.getIntValue(rs.getString(1));
}
return dataid;
}
}

@ -0,0 +1,124 @@
package weaver.interfaces.htsc.zgk;
import com.alibaba.fastjson.JSONObject;
import com.engine.integration.util.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.htsc.GlobatTools.JAVATools;
import weaver.interfaces.htsc.GlobatTools.Smstools;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.soa.workflow.request.RequestInfo;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author K1810039
*
*/
public class AddDefaultSendMessageAction extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<>();
try {
User user = (User)param.get("user");
int billid = -1;
int modeid = -1;
RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo");
if(requestInfo!=null){
billid = Util.getIntValue(requestInfo.getRequestid());
modeid = Util.getIntValue(requestInfo.getWorkflowid());
if(billid>0&&modeid>0){
JAVATools.writelog("-----AddDefaultSendMessageAction----");
String sql = "";
String wjmc = "";
String cjr = "";
String name = "";
String loginId = "";
String deptDirectors = "";
// 消息接收人
Set<String> receivers = new HashSet<>();
PropBean propBean = new PropBean();
RecordSet rs = new RecordSet();
//根据billid获取文件名和创建人
sql = "select WJMC,CJR from uf_xcsck where ID = "+billid;
JAVATools.writelog(sql);
rs.execute(sql);
if (rs.next()){
wjmc = rs.getString("WJMC");
cjr = rs.getString("CJR");
}
// 根据id获取创建人姓名工号
sql = "select LASTNAME,LOGINID from HRMRESOURCE where ID = "+cjr;
JAVATools.writelog(sql);
rs.execute(sql);
if (rs.next()){
name = rs.getString("LASTNAME");
loginId = rs.getString("LOGINID");
}
// 获取部门负责人
sql = "select d.DEPTDIRECTORS from HRMDEPARTMENTDEFINED d join HRMRESOURCE h on d.DEPTID = h.DEPARTMENTID where h.ID = "+cjr;
JAVATools.writelog(sql);
rs.execute(sql);
if (rs.next()){
deptDirectors = rs.getString("DEPTDIRECTORS");
}
if (StringUtils.isBlank(deptDirectors)){
result.put("flag", "true");
JAVATools.writelog("DEPTDIRECTORS is null !");
return result;
}
// 消息接收人
String[] res = deptDirectors.split(",");
for (String re : res) {
receivers.add(re);
}
// 获取消息绑定标识
int typeid = 0;
String messageId = propBean.getPropName("xcsck_addDefault_messageId");
typeid = Util.getIntValue(messageId);
JAVATools.writelog("int转化后"+messageId);
// 标题
String title = "宣传素材库文件变更提醒";
// 消息正文
String context = name + ""+loginId+"" + "于素材库中新增了"+wjmc+",请您及时查看。";
JAVATools.writelog("消息的正文内容是:"+context);
//参数打印
Map<String,Object> paramsMap = new HashMap<>();
paramsMap.put("typeid",typeid);
paramsMap.put("receiver",receivers);
paramsMap.put("title",title);
paramsMap.put("context",context);
JAVATools.writelog("传递的参数是:"+ JSONObject.toJSONString(paramsMap));
// 发送消息
Smstools smstools = new Smstools();
boolean sendResult = smstools.sendMessage(typeid, receivers, title, context, "", "");
if (sendResult){
JAVATools.writelog("send Message successfully");
}else {
JAVATools.writelog("send Message fails");
requestInfo.getRequestManager().setMessagecontent("消息发送失败,请检查参数" + typeid+"|"+JSONObject.toJSONString(receivers)+"|"+title+"|"+context+"|"+""+"|"+"");
}
}
}
result.put("flag", "true");
} catch (Exception e) {
result.put("errmsg","自定义出错信息");
result.put("flag", "false");
}
return result;
}
}

@ -0,0 +1,130 @@
package weaver.interfaces.htsc.zgk;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import com.engine.integration.util.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.htsc.GlobatTools.JAVATools;
import weaver.interfaces.htsc.GlobatTools.Smstools;
import weaver.interfaces.htsc.comInfo.PropBean;
import weaver.soa.workflow.request.RequestInfo;
/**
* @author K1810039
*
*/
public class AddSendMessageAction extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<>();
try {
User user = (User)param.get("user");
int billid = -1;
int modeid = -1;
RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo");
if(requestInfo!=null){
billid = Util.getIntValue(requestInfo.getRequestid());
modeid = Util.getIntValue(requestInfo.getWorkflowid());
if(billid>0&&modeid>0){
JAVATools.writelog("-----AddSendMessageAction----");
String sql = "";
String cjr = "";
String name = "";
String loginId = "";
String deptDirectors = "";
List<String> wjmcList = new ArrayList<>();
// 消息接收人
Set<String> receivers = new HashSet<>();
PropBean propBean = new PropBean();
RecordSet rs = new RecordSet();
//根据billid获取所有的文件名和创建人
sql = "select * from uf_scsckwj_dt1 where MAINID = "+billid;
JAVATools.writelog(sql);
rs.execute(sql);
while (rs.next()){
String wjName = rs.getString("wjmcfzzd");
if (!StringUtils.isBlank(wjName)){
wjmcList.add(wjName.substring(0,wjName.lastIndexOf(".")));
}
cjr = rs.getString("cjr");
}
String wjmcStrs = wjmcList.stream().collect(Collectors.joining(","));
// 根据id获取创建人姓名工号
sql = "select LASTNAME,LOGINID from HRMRESOURCE where ID = "+cjr;
JAVATools.writelog(sql);
rs.execute(sql);
if (rs.next()){
name = rs.getString("LASTNAME");
loginId = rs.getString("LOGINID");
}
// 获取部门负责人
sql = "select d.DEPTDIRECTORS from HRMDEPARTMENTDEFINED d join HRMRESOURCE h on d.DEPTID = h.DEPARTMENTID where h.ID = "+cjr;
JAVATools.writelog(sql);
rs.execute(sql);
if (rs.next()){
deptDirectors = rs.getString("DEPTDIRECTORS");
}
if (StringUtils.isBlank(deptDirectors)){
result.put("flag", "true");
JAVATools.writelog("DEPTDIRECTORS is null !");
return result;
}
// 消息接收人
String[] res = deptDirectors.split(",");
for (String re : res) {
receivers.add(re);
}
// 获取消息绑定标识
int typeid = 0;
String messageId = propBean.getPropName("xcsck_messageId");
typeid = Util.getIntValue(messageId);
JAVATools.writelog("int转化后"+messageId);
// 标题
String title = "宣传素材库文件变更提醒";
// 消息正文
String context = name + ""+loginId+"" + "于素材库中新增了"+wjmcStrs+",请您及时查看。";
JAVATools.writelog("消息的正文内容是:"+context);
//参数打印
Map<String,Object> paramsMap = new HashMap<>();
paramsMap.put("typeid",typeid);
paramsMap.put("receiver",receivers);
paramsMap.put("title",title);
paramsMap.put("context",context);
JAVATools.writelog("传递的参数是:"+ JSONObject.toJSONString(paramsMap));
// 发送消息
Smstools smstools = new Smstools();
boolean sendResult = smstools.sendMessage(typeid, receivers, title, context, "", "");
if (sendResult){
JAVATools.writelog("send Message successfully");
}else {
JAVATools.writelog("send Message fails");
requestInfo.getRequestManager().setMessagecontent("消息发送失败,请检查参数" + typeid+"|"+JSONObject.toJSONString(receivers)+"|"+title+"|"+context+"|"+""+"|"+"");
}
}
}
result.put("flag", "true");
} catch (Exception e) {
result.put("errmsg","自定义出错信息");
result.put("flag", "false");
}
return result;
}
}
Loading…
Cancel
Save