You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.6 KiB
126 lines
3.6 KiB
#include"kutil.h"
|
|
#include <iostream>
|
|
#include <map>
|
|
#include <vector>
|
|
#include <string>
|
|
#include "libxl.h"
|
|
#include <io.h>
|
|
#include <direct.h>
|
|
#include <cfm/cfm.h>
|
|
#include <wchar.h>
|
|
#include <locale>
|
|
#include <codecvt>
|
|
#include <chrono>
|
|
#include <Windows.h>
|
|
#include <thread>
|
|
#include <regex>
|
|
#include <res\reservation.h>
|
|
#include "libxl.h"
|
|
#include <map>
|
|
#include <fstream>
|
|
#include <iostream>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <filesystem>
|
|
#include <sys/stat.h>
|
|
#include <iostream>
|
|
#include "ado.h"
|
|
using namespace libxl;
|
|
using namespace std::chrono_literals;
|
|
using namespace std;
|
|
|
|
#define debug true
|
|
#define ITK_err 919012
|
|
|
|
int LD_TaskAssignmentDate(EPM_action_message_t msg) {
|
|
printf("=========================开始===================\n");
|
|
int cnt = 0;
|
|
char** vals = NULL;
|
|
//获取首选项的值
|
|
PREF_ask_char_values("LD_dbinfo2", &cnt, &vals);
|
|
//获取当前时间
|
|
time_t now = time(0);
|
|
tm* p = localtime(&now);
|
|
char dateNow[128] = "";
|
|
sprintf_s(dateNow, "%04d%02d%02d%02d%02d%02d", 1900 + p->tm_year, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);
|
|
string dateString = dateNow;
|
|
|
|
int ifail = ITK_ok;
|
|
int attachments_num = 0;
|
|
tag_t rootTask = NULLTAG, * attachments = NULLTAG;
|
|
//获取任务对象
|
|
EPM_ask_root_task(msg.task, &rootTask);
|
|
//获取任务目标对象
|
|
EPM_ask_attachments(rootTask, EPM_target_attachment, &attachments_num, &attachments);
|
|
|
|
|
|
for (int r = 0; r < attachments_num; r++) {
|
|
char* itemObjId;
|
|
char* objectType;
|
|
char* revision_id;
|
|
AOM_ask_value_string(attachments[r], "object_type", &objectType);
|
|
printf("objectType===%s\n", objectType);
|
|
if (strcmp(objectType, "LD6_CusProdFolder") == 0) {
|
|
|
|
//获取前面condition节点的值
|
|
tag_t* fnd0ActuatedInteractiveTsks_val;
|
|
int fnd0ActuatedInteractiveTsks_num = 0;
|
|
AOM_ask_value_tags(attachments[r], "fnd0ActuatedInteractiveTsks", &fnd0ActuatedInteractiveTsks_num, &fnd0ActuatedInteractiveTsks_val);
|
|
if (fnd0ActuatedInteractiveTsks_num > 0) {
|
|
|
|
for (int i = 0; i < fnd0ActuatedInteractiveTsks_num; i++)
|
|
{
|
|
char* task_type;
|
|
AOM_ask_value_string(fnd0ActuatedInteractiveTsks_val[i], "task_type", &task_type);
|
|
printf("task_type===%s\n", task_type);
|
|
if (strcmp(task_type, "EPMConditionTask") == 0) {
|
|
|
|
char* task_result;
|
|
AOM_ask_value_string(fnd0ActuatedInteractiveTsks_val[i], "task_result", &task_result);
|
|
printf("task_result===%s\n", task_result);
|
|
|
|
//连接数据库保存当前名称到数据库
|
|
char* folder_uid;
|
|
ITK__convert_tag_to_uid(attachments[r], &folder_uid);//获取文件夹uid
|
|
|
|
if (open("infodba", "infodba", vals[1], vals[0])) {
|
|
printf("=========================连接失败===================\n");
|
|
}
|
|
else {
|
|
//获取当前时间
|
|
auto now = std::chrono::system_clock::now();
|
|
std::time_t time = std::chrono::system_clock::to_time_t(now);
|
|
std::tm* ptm = std::localtime(&time);
|
|
char buf[128];
|
|
strftime(buf, sizeof(buf), "%Y-%m-%d", ptm);
|
|
printf("time===%s\n", buf);
|
|
//update语句
|
|
char sql[200] = "";
|
|
sprintf(sql, "UPDATE LD6_NewProdForm_VALUES SET TaskAssignmentDate = '%s' WHERE ClientProductFolderPUID = '%s' AND NewProductTaskItem = '%s'", buf, folder_uid, task_result);
|
|
printf("sql===%s\n", sql);
|
|
if (ExecuteSQLNoInputParam(sql) == 0)
|
|
{
|
|
printf("=========================修改成功===================\n");
|
|
}
|
|
else
|
|
{
|
|
printf("=========================修改失败===================\n");
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
printf("=========================结束===================\n");
|
|
return 0;
|
|
}
|
|
|
|
|