2025-08-19稻花香集团上线部署

This commit is contained in:
2025-08-20 00:34:34 +08:00
parent c448007ccd
commit 22e34d0032
17 changed files with 260 additions and 137 deletions

View File

@@ -35,7 +35,7 @@ public class DhxFlowWaitHandlesso extends BaseController {
}
public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("123123123123123");
// System.out.println("");
ConfigVo configVo = getDhxBacklogConfig();
ModelAndView mv = new ModelAndView();
// 根据当前账号获取流程平台账号

View File

@@ -63,7 +63,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
for (Map map : list) {
ret.put("groupid", map.get("groupid").toString());
ret.put("groupname", map.get("groupname").toString());
System.out.println("考勤组为:"+ret);
}
} catch (BusinessException e) {
// TODO Auto-generated catch block
@@ -154,7 +153,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
Map<String, Object> map = new HashMap<String, Object>();
String sql = getdeptBysuperDeptId;
sql = sql.replace("${dingdingdeptid}", deptid);
System.out.println(sql);
Object[] params = new Object[] {};
ResultSet rs = super.executeQuery(sql, params);
try {
@@ -163,7 +161,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
map.put("oadeptname", rs.getString("oadeptname"));
map.put("dingdingdeptid", rs.getString("dingdingdeptid"));
map.put("dingdingdeptname", rs.getString("dingdingdeptname"));
System.out.println(map);
}
} catch (SQLException e) {
e.printStackTrace();
@@ -185,14 +182,12 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
p.add(name);
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
System.out.println("getdeptByPathName:"+list.size());
if(list.size()==0) {
return null;
}
for (Map map : list) {
ret.put("name", map.get("name"));
ret.put("id", map.get("id"));
System.out.println(ret);
}
} catch (BusinessException e) {
// TODO Auto-generated catch block
@@ -218,13 +213,11 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
System.out.println(map);
Map<String,Object> m = new HashMap<String, Object>();
m.put("dingdingdeptid", map.get("dingdingdeptid"));
m.put("dingdingdeptname", map.get("dingdingdeptname"));
m.put("oadeptid", map.get("oadeptid"));
m.put("oadeptname", map.get("oadeptname"));
System.out.println(m);
ret.add(m);
}
} catch (BusinessException e) {
@@ -252,7 +245,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
System.out.println(map);
ret.put("id", map.get("id"));
ret.put("name", map.get("name"));
ret.put("path", map.get("path"));
@@ -291,7 +283,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
boolean boo = false;
String sql = getdeptsizeBydingdingid;
sql = sql.replace("${dingdingdeptid}", dingdingdeptid);
System.out.println(sql);
Object[] params = new Object[] {};
ResultSet rs = super.executeQuery(sql, params);
try {
@@ -377,7 +368,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
System.out.println(map);
Map<String,Object> m = new HashMap<String, Object>();
m.put("clockInDate", map.get("field0008").toString());
m.put("referenceDate", map.get("field0009").toString());
@@ -403,7 +393,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
@Override
public int addCheckOnWorkAttendance(CheckOnWorkAttendanceVo checkOnWorkAttendanceVo) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("开始保存考勤数据");
int i = 0 ;
JDBCAgent agent = new JDBCAgent();
try {
@@ -466,22 +455,17 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
sql.append(",'"+checkOnWorkAttendanceVo.getState()+"'");
sql.append(",'"+checkOnWorkAttendanceVo.getGroupName()+"')");
System.out.println("打印参数"+sql.toString());
List<Object> p = new ArrayList<Object>();
i=agent.execute(sql.toString(), p);
} catch (BusinessException e) {
e.printStackTrace();
System.out.println(e);
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e);
} finally {
if (agent != null) {
agent.close();
}
}
System.out.println("创建数据条数"+i);
return i;
}
@@ -498,7 +482,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
System.out.println(map);
Map<String,Object> m = new HashMap<String, Object>();
m.put("member", map.get("field0003"));
m.put("type", map.get("field0031"));
@@ -611,9 +594,7 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
p.add(endDate);
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
System.out.println(list.size());
for (Map map : list) {
System.out.println(map);
Map<String, Object> m = new HashMap<String, Object>();
m.put("member", map.get("field0003"));
m.put("type", "出差");
@@ -717,7 +698,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
System.out.println(map);
Map<String,Object> m = new HashMap<String, Object>();
m.put("member", map.get("field0007"));
m.put("type", "补卡" );
@@ -821,7 +801,6 @@ public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
System.out.println(map);
Map<String,Object> m = new HashMap<String, Object>();
m.put("dingdingmemberid", map.get("dingdingmemberid"));
m.put("dingdingmembername", map.get("dingdingmembername"));

View File

@@ -93,7 +93,6 @@ public class DingdingService {
do {
attendance.put("offset",offset);
attendance.put("size", 10);
System.out.println("创建参数:"+attendance.toString());
DingtalkUtil dingtalkUtil = new DingtalkUtil();
JSONObject ret = dingtalkUtil.doPost(attendance.toString(), "https://oapi.dingtalk.com/topapi/attendance/getsimplegroups");
JSONObject result = ret.getJSONObject("result");
@@ -142,7 +141,6 @@ public class DingdingService {
// 设置查询钉钉的参数
deptparam.put("dept_id", deptids.get(in));
deptparam.put("language", "zh_CN");
System.out.println("创建参数:"+deptparam.toString());
DingtalkUtil dingtalkUtil = new DingtalkUtil();
JSONObject ret = dingtalkUtil.doPost(deptparam.toString(), "https://oapi.dingtalk.com/topapi/v2/department/listsub");
JSONArray departments = ret.getJSONArray("result");
@@ -172,9 +170,7 @@ public class DingdingService {
continue;
}
}else {
System.out.println("本层为部门层级");
// 上级单位不为集团则先根据原本对应关系查询出所在单位信息
log.info("1."+department);
Thread.sleep(400);
Map<String,Object> supdeptmap = dingdingDao.getdeptBysuperDeptId(department.getString("parent_id"));
if("340713772".equals(department.getString("parent_id"))|| supdeptmap.isEmpty()) {
@@ -185,8 +181,6 @@ public class DingdingService {
parammap.put("oadeptname", supdeptmap.get("oadeptname")+"-"+department.getString("name"));
parammap.put("dingdingdeptid", department.getString("dept_id"));
parammap.put("dingdingdeptname", department.getString("name"));
System.out.println("oaid:"+parammap.get("oadeptid")+"oaname:"+parammap.get("oadeptname")+
"dingdingid:"+parammap.get("dingdingdeptid")+"dingdingname:"+parammap.get("dingdingdeptname"));
dingdingDao.adddept(parammap);
continue;
}
@@ -245,7 +239,6 @@ public class DingdingService {
userparam.put("size",100);
JSONObject useridret = dingtalkUtil.doPost(userparam.toString(), "https://oapi.dingtalk.com/topapi/user/listsimple");
JSONObject result = useridret.getJSONObject("result");
System.out.println(result);
if(result==null){
System.out.println("接口调用失败跳过当前循环");
ishasmore = false;
@@ -309,7 +302,6 @@ public class DingdingService {
public String dingdingclockin(){
try {
String membernum = dingdingDao.getDingdingOaMemberNum();
log.info(membernum);
// 查询当前系统人员对照表中的人员信息
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember("0",membernum);
// 一次封装12人的考勤数据
@@ -508,7 +500,6 @@ public class DingdingService {
public String dingdingclockin(String datestr) {
try {
String membernum = dingdingDao.getDingdingOaMemberNum();
log.info(membernum);
// 查询当前系统人员对照表中的人员信息
List<Map<String,Object>> members = dingdingDao.getDingdingOaMember("0",membernum);
// 一次封装12人的考勤数据
@@ -746,7 +737,6 @@ public class DingdingService {
checkOnWorkAttendanceVo.setGroupName(clockInList.get(0).get("groupName").toString());
// 判断考勤时间点上打卡状态
for (Map<String, Object> clockIn : clockInList) {
log.info(clockIn);
// 设置考勤相关数据
if ("上班1".equals(clockIn.get("type").toString())) {
checkOnWorkAttendanceVo.setShangbanDate1(simpleDateFormat.parse(clockIn.get("referenceDate").toString()));
@@ -817,7 +807,6 @@ public class DingdingService {
// calendar表示时间前一个月的时间点。查询 单据结束时间在查询开始时间之后并且单据开始时间在查询结束时间之前的单据
// 查询当前人员一年内的请假单 map 人员,请假类型,开始时间 ,结束时间
log.info("请假参数时间段"+memberId+"~~~~~~~~~~~~"+sdf.format(calendar.getTime())+"~~~~~~"+dateStr);
List<Map<String,Object>> leaves = dingdingDao.getLeave(memberId,sdf.format(calendar.getTime()),dateStr);
leaveUpdateWorkAttendance(leaves,memberId);
@@ -888,7 +877,6 @@ public class DingdingService {
// String yesterday = sdf.format(calendar1.getTime());
// 查询参数的打卡记录
List<Map<String, Object>> clockInList = dingdingDao.getClockInBymember(dateStr, memberId);
log.info("指定时间的考勤数据条数:"+clockInList.size());
if (clockInList.size() > 0) {
// 设置ID
checkOnWorkAttendanceVo.setId(UUIDUtil.getUUIDLong());
@@ -960,14 +948,12 @@ public class DingdingService {
}
// 保存打卡数据到数据库表中
int addin = dingdingDao.addCheckOnWorkAttendance(checkOnWorkAttendanceVo);
log.info("当前考勤人员为:"+checkOnWorkAttendanceVo.getMemberId()+"添加信息条数为"+addin);
}
// 根据单据修改当前人员一月内的考勤情况
// calendar表示时间前一个月的时间点。查询 单据结束时间在查询开始时间之后并且单据开始时间在查询结束时间之前的单据
// 查询当前人员一年内的请假单 map 人员,请假类型,开始时间 ,结束时间
log.info("请假参数时间段"+memberId+"~~~~~~~~~~~~"+sdf.format(calendar.getTime())+"~~~~~~"+dateStr);
List<Map<String,Object>> leaves = dingdingDao.getLeave(memberId,sdf.format(calendar.getTime()),dateStr);
leaveUpdateWorkAttendance(leaves,memberId);
@@ -1027,7 +1013,6 @@ public class DingdingService {
}
}
// 下班1
log.info("xiaban1"+cowav.getXiabanDate1());
if(cowav.getXiabanDate1() == null ){
cowav.setXiaban1(list.get("type").toString());
}else {
@@ -1038,7 +1023,6 @@ public class DingdingService {
}
}
// 上班2
log.info("shangban2"+cowav.getShangbanDate2());
if(cowav.getShangbanDate2() == null){
cowav.setShangban2(list.get("type").toString());
}else {
@@ -1049,7 +1033,6 @@ public class DingdingService {
}
}
// 下班2
log.info("xiaban2"+cowav.getXiabanDate2());
if(cowav.getXiabanDate2() == null ){
cowav.setXiaban2(list.get("type").toString());
}else {
@@ -1125,7 +1108,6 @@ public class DingdingService {
list.get("startDateStr").toString().substring(0,10),list.get("endDateStr").toString().substring(0,10));
for (CheckOnWorkAttendanceVo cowav:workAttendanceByDates) {
// 上班1
log.info(cowav.getState());
if(cowav.getShangbanDate1() == null ){
cowav.setShangban1(list.get("type").toString());
}else {
@@ -1244,9 +1226,7 @@ public class DingdingService {
}
}
// 状态
log.info("状态变化前字段内容"+cowav);
cowav = setState(cowav);
log.info("变化后的考勤对象"+cowav);
int i = dingdingDao.updateWorkAttendance(cowav);
log.info("考勤对象变化是否成功"+i);
}
@@ -1254,18 +1234,6 @@ public class DingdingService {
log.info("补卡后的考勤变化完成。");
}
// -4304583669849241253 2024-01-29 16:11:00.0 2024-01-31 12:00:00.0
// public void setWorkAttendance1(){
// Map<String,Object> list = new HashMap<String,Object>();
// list.put("startDateStr","2024-01-29 16:11:00.0");
// list.put("endDateStr","2024-01-31 12:00:00.0");
// List<CheckOnWorkAttendanceVo> workAttendanceByDates = dingdingDao.getWorkAttendanceByDate("-4304583669849241253",
// list.get("startDateStr").toString().substring(0,10),list.get("endDateStr").toString().substring(0,10));
// for (CheckOnWorkAttendanceVo checkOnWorkAttendanceVo:workAttendanceByDates) {
// System.out.println(checkOnWorkAttendanceVo.toString());
// }
// }
// 设置汇总后的考勤情况 通过考勤结果进行考勤状态汇总
public CheckOnWorkAttendanceVo setState(CheckOnWorkAttendanceVo checkOnWorkAttendanceVo){
String shangban1 = checkOnWorkAttendanceVo.getShangban1();

View File

@@ -12,8 +12,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.seeyon.apps.src_dingding.service.DingdingService;
//import com.seeyon.apps.src_automatic.task.PushAuCardTask;
//import com.seeyon.apps.src_bill_detail.manager.PushZcService;
/**

View File

@@ -75,7 +75,6 @@ public class DingtalkUtil {
os.write(str.getBytes("UTF-8"));
}
// 连接对象获取一个输入流,向远程读取
System.out.println(connection.getResponseCode());
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
// 对输入流对象进行包装:charset根据工作项目组的要求来设置

View File

@@ -78,13 +78,7 @@ public abstract class MemberOrganizationCommonNode extends ACommonSuperNode {
JSONObject res = ProtUtil.doPost(param,memberOrganizationAddUrl);
log.info(res.toString());
context.setResponse(res.toString());
// MemberOrganizationResponse mor = new MemberOrganizationResponse(res);
// String resDatastr = mor.getData();
JSONObject resDatastr = res.getJSONObject("data");
// resDatastr = "{'param':'"+resDatastr+"'}";
// JSONObject resDatajson = JSONObject.parseObject(resDatastr);
// JSONArray successMsgs = resDatajson.getJSONArray("param");
// JSONObject successMsg = successMsgs.getJSONObject(0);
if(res.getInteger("code")==0){
// JSONObject ent = successMsg.getJSONObject("ent");
log.info("人员组织架构创建完成,人员名称为"+resDatastr.getString("name")+",ID为"+resDatastr.getString("id"));
@@ -94,8 +88,6 @@ public abstract class MemberOrganizationCommonNode extends ACommonSuperNode {
}
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构创建完成:人员名称为"+resDatastr.getString("name"));
}else{
// JSONObject ent = successMsg.getJSONObject("ent");
// String msgInfo = successMsg.getString("msgInfo");
String message = res.getString("message");
// 判断当前参数是否存在问题
String msg = "人员组织架构创建失败:"+message;

View File

@@ -116,7 +116,7 @@ public class MemberTaskFinishNode extends ACommonSuperNode {
} catch (NoSuchFieldException e) {
subFieldDataVo = formDataVo.getFieldData(value);
}
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
String subFieldDataDb = subFieldDataVo.getDbValue()==null?"":subFieldDataVo.getDbValue().toString();
jsonObject.put("value",subFieldDataDb);
fields.add(jsonObject);
}

View File

@@ -118,7 +118,7 @@ public class MemberYearTaskNode extends ACommonSuperNode {
} catch (NoSuchFieldException e) {
subFieldDataVo = formDataVo.getFieldData(value);
}
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
String subFieldDataDb = subFieldDataVo.getDbValue()==null?"":subFieldDataVo.getDbValue().toString();
jsonObject.put("value",subFieldDataDb);
fields.add(jsonObject);
}

View File

@@ -119,7 +119,7 @@ public class MembersMoveNode extends ACommonSuperNode {
} catch (NoSuchFieldException e) {
subFieldDataVo = formDataVo.getFieldData(value);
}
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
String subFieldDataDb = subFieldDataVo.getDbValue()==null?"":subFieldDataVo.getDbValue().toString();
jsonObject.put("value",subFieldDataDb);
fields.add(jsonObject);
}

View File

@@ -117,7 +117,8 @@ public class TrainingRecordNode extends ACommonSuperNode {
} catch (NoSuchFieldException e) {
subFieldDataVo = formDataVo.getFieldData(value);
}
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
String subFieldDataDb = subFieldDataVo.getDbValue()==null?"":subFieldDataVo.getDbValue().toString();
jsonObject.put("value",subFieldDataDb);
fields.add(jsonObject);
}

View File

@@ -376,6 +376,7 @@ public class ParamUtil {
// 查询人员控件信息
if (fieldDataVo.getDbValue() != null) {
String dbValue = fieldDataVo.getDbValue().toString();
log.info("档案表调整人员信息获取参数为:"+dbValue+fieldDataVo.getStringValue()+fieldDataVo.getDisplay());
long memberId = Long.parseLong(dbValue);
V3xOrgMember v3xOrgMember = getOrgManager().getMemberById(memberId);
// 设置人员数据值

View File

@@ -5,7 +5,8 @@ import java.util.Map;
public interface IOrganizationInitializationDao {
// 根据人员ID获取人员档案信息
public List<Map<String,Object>> getMemberFileByMemberId(String memberId);
// 获取所有人员档案信息
public List<Map<String,Object>> getMemberFiles();
// 获取指定人员的教育经历

View File

@@ -24,6 +24,7 @@ public class OrganizationInitializationDaoImpl implements IOrganizationInitiali
// private String getMemberwcqks = "select * from formson_0210 where formmain_id = ?";
// 正式环境
private String getMemberFileByMemberId = "select * from formmain_10295 where field0007 = ?";
private String getMemberFiles = "select * from formmain_10295";
private String getMemberjyjls = "select * from formson_10296 where formmain_id = ?";
private String getMembergzjls = "select * from formson_10297 where formmain_id = ?";
@@ -37,6 +38,33 @@ public class OrganizationInitializationDaoImpl implements IOrganizationInitiali
private String getMemberzygxs = "select * from formson_10409 where formmain_id = ?";
private String getMemberwcqks = "select * from formson_10554 where formmain_id = ?";
public List<Map<String,Object>> getMemberFileByMemberId(String memberId){
List<Map<String,Object>> ret = new ArrayList<Map<String,Object>>();
JDBCAgent agent = new JDBCAgent();
try {
StringBuilder sql = new StringBuilder(getMemberFileByMemberId);
List<Object> p = new ArrayList<Object>();
p.add(memberId);
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {
ret.add(map);
}
} catch (BusinessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (agent != null) {
agent.close();
}
}
return ret;
}
@Override
public List<Map<String, Object>> getMemberFiles() {
List<Map<String,Object>> ret = new ArrayList<Map<String,Object>>();

View File

@@ -28,6 +28,7 @@ import org.apache.commons.logging.LogFactory;
import javax.inject.Inject;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -54,7 +55,6 @@ public class OrganizationInitializationQuartz extends AbstractQuartzTask {
return this.attachmentManager;
}
private FileManager fileManager;
public void setFileManager(FileManager fileManager) {
this.fileManager = fileManager;
@@ -68,7 +68,6 @@ public class OrganizationInitializationQuartz extends AbstractQuartzTask {
return this.fileManager;
}
private IOrganizationInitializationDao organizationInitializationDao;
public void setOrganizationInitializationDao(IOrganizationInitializationDao organizationInitializationDao) {
@@ -127,29 +126,20 @@ public class OrganizationInitializationQuartz extends AbstractQuartzTask {
return OrganizationInitializationConstants.getPluginId();
}
// public String taskRun(String tempCode) throws Exception {
//
//// 6620799416622859810、、13886788426
// V3xOrgMember v3xOrgMember = getOrgManager().getMemberById(6620799416622859810l);
// String loginName = v3xOrgMember.getLoginName();
// v3xOrgMember.setLoginName(v3xOrgMember,loginName+"1");
//// v3xOrgMember.setV3xOrgPrincipal(loginName+"1");
// v3xOrgMember.getV3xOrgPrincipal().setLoginName(loginName+"2");
//// v3xOrgMember.setV3xOrgPrincipal(v3xOrgPrincipal);
// String loginName1 = v3xOrgMember.getLoginName();
// orgManagerDirect.updateMember(v3xOrgMember);
//
// return "";
// }
public String taskRun(String tempCode) throws Exception {
//进入定时任务同步方法
System.out.println("进入同步方法");
FormExportUtil formExportUtil = new FormExportUtil();
ConfigVo configVo = getOrganizationInitializationConfig();
InterfaceListUtil interfaceListUtil = new InterfaceListUtil();
// 查询当前人员档案数据
List<Map<String,Object>> memberFiles = organizationInitializationDao.getMemberFiles();
List<Map<String,Object>> memberFiles = new ArrayList<>();
if("all".equals(tempCode)){
log.info("查询所有人员");
// 查询当前人员档案数据
memberFiles = organizationInitializationDao.getMemberFiles();
}else{
memberFiles = organizationInitializationDao.getMemberFileByMemberId(tempCode);
}
for(int i = 0 ; i < memberFiles.size(); i++){
// 获取通用token
String getTokenUrl = configVo.getParamVal(OrganizationInitializationConstants.getTokenUrl.name());

View File

@@ -0,0 +1,75 @@
package com.seeyon.apps.src_qyba.constants;
public enum MarketingCompanyConstants {
CORP_301(1007, 301, "宜昌融厚商贸有限公司", "RH", "301-RH"),
CORP_302(1008, 302, "宜昌市谷醇商贸有限公司", "GC", "302-GC"),
CORP_303(1010, 303, "上海中宜国昌商贸有限责任公司", "ZY", "303-ZY"),
CORP_304(1011, 304, "武汉市鑫稻成商贸有限责任公司", "DC", "304-DC"),
CORP_305(1012, 305, "武汉市稻盛香辉商贸有限责任公司", "XH", "305-XH"),
CORP_306(1013, 306, "崇阳县德晟隆和商贸有限公司", "DL", "306-DL"),
CORP_307(1014, 307, "崇阳县智链商贸有限公司", "ZL", "307-ZL"),
CORP_308(1015, 308, "武汉市酒韵长河商贸有限责任公司", "CH", "308-CH"),
CORP_309(1016, 309, "武汉市博汇世耀商贸有限责任公司", "BH", "309-BH"),
CORP_310(1017, 310, "武汉佳和天泰商贸有限公司", "JH", "310-JH"),
CORP_311(1018, 311, "武汉雅韵堂商贸有限公司", "YY", "311-YY"),
CORP_312(1019, 312, "武汉佳泰昌商贸有限责任公司", "JT", "312-JT"),
CORP_313(1020, 313, "武汉市卓宇轩商贸有限公司", "YX", "313-YX"),
CORP_314(1021, 314, "武汉市诚聚耀商贸有限公司", "CJ", "314-CJ"),
CORP_315(1022, 315, "武汉市智博远商贸有限公司", "ZB", "315-ZB"),
CORP_316(1023, 316, "武汉市智辉优合商贸有限责任公司", "ZH", "316-ZH"),
CORP_317(1024, 317, "武汉市明辉逸致商贸有限责任公司", "MH", "317-MH"),
CORP_318(1025, 318, "武汉市泰源瑞通商贸有限责任公司", "TY", "318-TY"),
CORP_319(1026, 319, "武汉市浩海程远商贸有限责任公司", "HH", "319-HH"),
CORP_320(1027, 320, "上高县恒耀合昌商贸有限公司", "HY", "320-HY"),
CORP_321(1028, 321, "深圳市宏盛瑞耀商贸有限公司", "HS", "321-HS"),
CORP_322(1029, 322, "宜昌市晟雅辉商贸有限公司", "YH", "322-YH"),
CORP_323(1030, 323, "开封市聚程捷商贸有限公司", "JC", "323-JC"),
CORP_324(1031, 324, "平顶山市兴博睿商贸有限公司", "XB", "324-XB"),
CORP_325(1032, 325, "宜昌市万斛舟商贸有限公司", "WH", "325-WH"),
CORP_326(1033, 326, "上高县盛禾圆商贸有限责任公司", "SH", "326-SH");
// 枚举属性
private final int pkCorp;
private final int unitCode;
private final String unitName;
private final String objTab;
private final String pathName;
/**
* 构造函数
* @param pkCorp 企业主键
* @param unitCode 单位编码
* @param unitName 单位名称
* @param objTab 对象表标识
* @param pathName 路径名称
*/
MarketingCompanyConstants(int pkCorp, int unitCode, String unitName, String objTab, String pathName) {
this.pkCorp = pkCorp;
this.unitCode = unitCode;
this.unitName = unitName;
this.objTab = objTab;
this.pathName = pathName;
}
// Getter方法
public int getPkCorp() {
return pkCorp;
}
public int getUnitCode() {
return unitCode;
}
public String getUnitName() {
return unitName;
}
public String getObjTab() {
return objTab;
}
public String getPathName() {
return pathName;
}
}

View File

@@ -3,6 +3,7 @@ package com.seeyon.apps.src_qyba.manage.impl;
import com.seeyon.apps.collaboration.manager.ColManager;
import com.seeyon.apps.collaboration.po.ColSummary;
import com.seeyon.apps.collaboration.util.ColUtil;
import com.seeyon.apps.src_qyba.constants.MarketingCompanyConstants;
import com.seeyon.apps.src_qyba.manage.MultipleViewsPrintManager;
import com.seeyon.apps.src_qyba.util.ArchiveDocUtils;
import com.seeyon.cap4.form.api.FormApi4Cap4;
@@ -30,6 +31,8 @@ import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -50,9 +53,8 @@ public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager
Long formId = ParamUtil.getLong(params, "formId", null);
String templeteId = params.get("templeteId").toString();
Long affairId = ParamUtil.getLong(params, "affairId", null);
Long summaryId = ParamUtil.getLong(params, "summaryId", null);
// Long summaryId = ParamUtil.getLong(params, "summaryId", null);
String rightId = ParamUtil.getString(params, "rightId");
// FormBean formBean = formApi4Cap4.getForm(formId);
CtpTemplate templete = templateManager.getCtpTemplate(Long.parseLong(templeteId));
FormBean formBean = formApi4Cap4.getFormByFormCode(templete);
if (Strings.isNotBlank(rightId)) {
@@ -75,23 +77,22 @@ public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager
}
}
if (CollectionUtils.isNotEmpty(formAuthViewBeans)) {
List<String> fileUrlList = new ArrayList<String>();
for (FormAuthViewBean formAuthViewBean : formAuthViewBeans) {
String rightIdStr = String.valueOf(formAuthViewBean.getId());
// 此处不需要多语言视图,只需要获取名称
FormViewBean formViewBean = formBean.getFormView(formAuthViewBean.getFormViewId());
if (Enums.ViewType.SeeyonForm == formViewBean.getFormViewTypeEnum()) {
Map<String, Object> param = new HashMap<>();
param.put("rightId", rightIdStr);
param.put("affairId", affairId);
param.put("fileName",flowName);
param.put("formId", formId);
for (FormAuthViewBean formAuthViewBean : formAuthViewBeans) {
String rightIdStr = String.valueOf(formAuthViewBean.getId());
// 此处不需要多语言视图,只需要获取名称
FormViewBean formViewBean = formBean.getFormView(formAuthViewBean.getFormViewId());
if (Enums.ViewType.SeeyonForm == formViewBean.getFormViewTypeEnum()) {
Map<String, Object> param = new HashMap<>();
param.put("rightId", rightIdStr);
param.put("affairId", affairId);
param.put("fileName",flowName);
param.put("formId", formId);
String fileUrl = screenCaptureViewInfo(param,approvalOpinions);
if (StringUtils.isNotEmpty(fileUrl)) {
result.put(formViewBean.getFormViewName(),fileUrl);
}
}
String fileUrl = screenCaptureViewInfo(param,approvalOpinions);
if (StringUtils.isNotEmpty(fileUrl)) {
result.put(formViewBean.getFormViewName(),fileUrl);
}
}
}
}
}
@@ -107,7 +108,7 @@ public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager
try {
String bodyContent = "";
StringBuffer formContent = new StringBuffer(
"<html> <head> <meta charset=\"UTF-8\"> <title>表单</title> </head> <body style=\"text-align:center;\">");
"<html> <head> <meta charset=\"UTF-8\"> <title>表单</title><style>body{font-family:\"PingFang SC\",\"Microsoft YaHei\",sans-serif;background-color:white;padding:20px;color:#333;}.opinion-container{text-align: left;display:flex;background-color:#e6f7ff;padding:10px 15px;border-radius:4px;}.tab{padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;margin-right:20px;display:flex;align-items:center;}.active-tab{background-color:#1890ff;color:white;}.tab-count{margin-left:6px;font-size:12px;opacity:0.8;}.approval-container{max-width:800px;margin:0 auto;}.approval-item{margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:15px;}.approval-header{display:flex;align-items:center;margin-bottom:8px;}.user-info{text-align: left;display:flex;align-items:center;flex-grow:1;}.username{font-weight:bold;margin-right:6px;}.department{color:#666;margin-right:10px;font-size:0.9em;}.status{color:#52c41a;margin-right:10px;}.time{color:#999;font-size:0.9em;margin-right:10px;}.action-icons{display:flex;align-items:center;}.icon{margin-left:12px;color:#999;font-size:0.9em;}.approval-content{width: 100%;text-align: left;padding-left: 0;line-height: 1.5;}.reply-info{color:#999;font-size:0.8em;margin-top:5px;margin-left:32px;}</style> </head> <body style=\"text-align:center;\">");
Long affairId = ParamUtil.getLong(param, "affairId");
Long rightId = ParamUtil.getLong(param, "rightId");
Long formId = ParamUtil.getLong(param, "formId");
@@ -131,30 +132,59 @@ public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager
}
formContent.append(bodyContent);
// 在此处添加审批意见信息
formContent.append("<div class=\"opinion-container\">");
formContent.append("<div class=\"tab active-tab\">");
formContent.append("处理人意见区");
formContent.append("<span class=\"tab-count\">(共"+approvalOpinions.size()+"条)</span>");
formContent.append("</div>");
formContent.append("</div>");
if(approvalOpinions.size()>0){
formContent.append("</br><table>");
formContent.append("<div class=\"approval-container\">");
for (Map<String,String> approvalOpinion : approvalOpinions){
formContent.append("<tr>");
formContent.append("<td style=\"width: 15%;font-size:22px;\">").append(approvalOpinion.get("memberName")).append("</td>");
formContent.append("<td style=\"width: 15%;font-size:22px;\">").append(approvalOpinion.get("memberPost")).append("</td>");
formContent.append("<td style=\"width: 25%;font-size:22px;\">").append(approvalOpinion.get("createDate")).append("</td>");
formContent.append("<td style=\"width: 45%;font-size:22px;\">").append(approvalOpinion.get("content")).append("</td>");
formContent.append("</tr>");
formContent.append("<div class=\"approval-item\">");
formContent.append("<div class=\"approval-header\">");
// formContent.append("<div class=\"avatar\">"+approvalOpinion.get("memberName").substring(0,1)+"</div>");
formContent.append("<div class=\"user-info\">");
formContent.append("<span class=\"username\">"+approvalOpinion.get("memberName")+"</span>");
formContent.append("<span class=\"department\">"+approvalOpinion.get("memberDept")+"</span>");
formContent.append("<span class=\"time\">"+approvalOpinion.get("createDate")+"</span>");
formContent.append("</div>");
formContent.append("</div>");
formContent.append("<div class=\"approval-content\">");
formContent.append(approvalOpinion.get("content"));
formContent.append("</div>");
formContent.append("</div>");
}
formContent.append("</table>");
formContent.append("</div>");
}
formContent.append("</body></html>");
String htmlTempFolder = SystemEnvironment.getSystemTempFolder() + File.separator + affairId + File.separator
+ rightId + ".html";
File formFile = new File(htmlTempFolder);
FileUtils.writeStringToFile(formFile, formContent.toString(), "UTF-8");
String pdfTempFolder = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" + File.separator + param.get("fileName") + ".pdf";
String mergePdfPath = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" ;
File mergePdfFile = new File(mergePdfPath);
if(!mergePdfFile.exists()) {
mergePdfFile.mkdirs();
}
// 判断文件下载路径
String fileName = param.get("fileName").toString();
String matchingUnitName = getMatchingUnitName(fileName);
if(matchingUnitName==null){
matchingUnitName = "null";
}
String directoryPath = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" + File.separator + matchingUnitName+ File.separator;
File directory = new File(directoryPath);
if (!directory.exists()) {
directory.mkdirs();
}
String htmlTempFolder = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" + File.separator + matchingUnitName + File.separator + param.get("fileName") + ".html";;
try (FileWriter writer = new FileWriter(htmlTempFolder)) {
writer.write(formContent.toString());
} catch (IOException e) {
System.err.println("保存文件时出错: " + e.getMessage());
}
File formFile = new File(htmlTempFolder);
FileUtils.writeStringToFile(formFile, formContent.toString(), "UTF-8");
String pdfTempFolder = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" + File.separator + matchingUnitName + File.separator + param.get("fileName") + ".pdf";
if (!ArchiveDocUtils.transHtmlToPdf(htmlTempFolder, pdfTempFolder)) {
throw new Exception("html转PDF失败");
}
@@ -164,4 +194,75 @@ public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager
}
return null;
}
/**
* 根据文档名称提取编号部分对比枚举中的objTab获取企业名称
* @param docName 文档名称,格式示例:"市场广告申请-崇阳县桃溪副食店-YX13YH202412002"
* @return 匹配的企业名称如无匹配返回null
*/
public static String getMatchingUnitName(String docName) {
// 检查输入参数是否为空
if (docName == null || docName.trim().isEmpty()) {
System.out.println("文档名称不能为空");
return null;
}
// 按"-"分割文档名称
String[] nameParts = docName.split("-");
int partsLength = nameParts.length;
// 验证分割长度是否为3或4
if (partsLength != 3 && partsLength != 4) {
System.out.println("文档名称格式不正确分割后长度必须为3或4当前为" + partsLength);
return null;
}
// 获取编号部分(数组最后一个元素)
String codeSection = nameParts[nameParts.length - 1];
String candidate = null;
// 根据分割长度提取不同位置的字符
if (partsLength == 3) {
// 分割长度为3 → 取第五六个字符索引4-5
if (codeSection.length() < 6) {
System.out.println("编号部分长度不足需≥6个字符当前长度" + codeSection.length());
return null;
}
candidate = codeSection.substring(4, 6);
System.out.println("分割长度=3提取第五六个字符" + candidate);
} else {
// 分割长度为4 → 取第一二个字符索引0-1
if (codeSection.length() < 2) {
System.out.println("编号部分长度不足需≥2个字符当前长度" + codeSection.length());
return null;
}
candidate = codeSection.substring(0, 2);
System.out.println("分割长度=4提取第一二个字符" + candidate);
}
// 遍历企业信息枚举查找匹配的objTab
for (MarketingCompanyConstants marketingCompany : MarketingCompanyConstants.values()) {
if (marketingCompany.getObjTab().equals(candidate)) {
return marketingCompany.getUnitName();
}
}
// 未找到匹配项
System.out.println("未找到匹配的企业信息,候选标识:" + candidate);
return null;
}
public static void main(String[] args) {
List<String> fileNames = new ArrayList<>();
fileNames.add("市场专项投入备案-德化县明仲食杂店-BA11HY202409021");
for(int i = 0 ; i < fileNames.size(); i++){
System.out.println("标题名称:"+fileNames.get(i)+"=======对比结果为:"+getMatchingUnitName(fileNames.get(i))+"\n");
}
}
}

View File

@@ -16,6 +16,7 @@ import com.seeyon.ctp.common.content.ContentUtil;
import com.seeyon.ctp.common.content.comment.Comment;
import com.seeyon.ctp.common.content.comment.CommentManager;
import com.seeyon.ctp.common.po.affair.CtpAffair;
import com.seeyon.ctp.organization.bo.V3xOrgDepartment;
import com.seeyon.ctp.organization.bo.V3xOrgMember;
import com.seeyon.ctp.organization.bo.V3xOrgPost;
import com.seeyon.ctp.organization.manager.OrgManager;
@@ -104,25 +105,18 @@ public class TemporaryBeianSynchronizationResource extends BaseResource{
try{
// 查询数据库,查询出来某个文件夹在的所有文档信息,遍历查询到的所有ID调用方法查询出来本地文档中心对象
String parentFrId = reqQarams.getString("parentFrId");
log.info(parentFrId);
List<Long> ids = getSrcBeianDao().getdocResources(parentFrId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<DocResourceBO> docResources = getDocApi().findDocResources(ids);
log.info(ids.toString());
for (int i = 0 ; i <docResources.size() ; i++ ){
// 查询当前的流程ID。
DocResourceBO docResource = docResources.get(i);
log.info(docResource.getFrName());
// 根据流程ID查询事项
CtpAffair ctpAffair = getAffairManager().get(docResource.getSourceId());
// 通过截图方法将表单数据生成成为图片
long colSummarId = ctpAffair.getObjectId();
ColSummary summary = getColManager().getSummaryById(colSummarId);
// log.info("formId:"+formId);
log.info("affairId:"+ctpAffair.getId());
log.info("summaryId:"+colSummarId);
log.info("formId:"+summary.getFormid());
log.info("templeteId:"+summary.getTempleteId());
String rightId = ContentUtil.findRightIdbyAffairIdOrTemplateId(ctpAffair, summary.getTempleteId());
log.info("rightId:"+rightId);
Map<String, Object> params = new HashMap<String, Object>();
@@ -140,21 +134,16 @@ public class TemporaryBeianSynchronizationResource extends BaseResource{
approvalOpinion.put("content",content);
Date createDate = comment.getCreateDate();
approvalOpinion.put("createDate",sdf.format(createDate));
// String moduleId = comment.getModuleId().toString();
long createId = comment.getCreateId();
V3xOrgMember member = getOrgManager().getMemberById(createId);
approvalOpinion.put("memberName",member.getName());
V3xOrgPost memberPost = getOrgManager().getPostById(member.getOrgPostId());
approvalOpinion.put("memberPost",memberPost.getName());
V3xOrgDepartment memberDept = getOrgManager().getDepartmentById(member.getOrgDepartmentId());
approvalOpinion.put("memberDept",memberDept.getName());
approvalOpinions.add(approvalOpinion);
}
Map<String, Object> result = getMultipleViewsPrintManager().print(params,approvalOpinions,ctpAffair.getSubject());
// 上传pdf文件到流程平台。并且调用文档中心文档创建接口。生成文档中心备案数据。
// for (Map.Entry<String, Object> entry : result.entrySet()) {
// String path = entry.getValue().toString();
//
// }
System.out.println(docResource.getId());
}