# 工作历接口文档

# 工作历作息时间管理

## 工作历作息时间查询

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarDate/queryWorkCalendarDateList
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId":"Pj1101050029",                // 项目ID ，必填
    "ruleId":"WR1335232948013666305",          //规则ID，选填
    "calendarId":"WC1335228701901586434",		// 工作历ID，选填
    "objId":"Bd440307000375f48be8ed6b47189da6f2db66fd3a65", //对象ID，选填
	"calendarName": "开闭店工作历类型",                   // 工作历类型名称，选填
    "dictType": "shop",         // 约定的类型
    "dictTypes": [				//批量时查询时字段
    	"shop"
    ]
    "dictCode": [               // 约定的编码，不填就是此类型下所有的  2-开店时间;3-商业闭店时间;4-娱乐闭店时间
        "2-dOfW", "3-dOfW", "4-dOfW"
    ]
    "workDateStart":"20201205", //需要查询的时间段范围的日期开始，必填
    "workDateEnd":"20201207"   //需要查询的时间段范围的日期结束，必填
}
```

返回：

```
{
    "content": [
        {
            "timeTable": [],
            "workDate": "20201205"
        },
        {
            "timeTable": [],
            "workDate": "20201206"
        },
        {
            "timeTable": [
                {
                    "calendarDesc": "开闭店工作历类型",
                    "calendarId": "WC1335228701901586434",
                    "calendarName": "开闭店工作历类型",
                    "customFlag":"0",	//0-非自定义，1-自定义
                    "dictCode": "4",
                    "dictType": "shop",
                    "projectId": "Pj1101050029",
                    "ruleId": "WR1335232948013666305",
                    "workDate": "20201207",
                    "workTime": "230000"
                }
            ],
            "workDate": "20201207"
        }
    ],
    "count": 3,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 批量添加工作历作息时间信息

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarDate/createCustomCalendarDate
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId":"Pj1101081009",                  // 项目ID ，必填
    "batchInfo":[
        {
            "calendarId":"WC1335782235639480322",        // 工作历ID，必填
            "dictType": "shop",         // 约定的类型，必填
            "dictCode": "2",            // 约定的编码，必填
            "workDate":"20201214",      // 作息日期YYYYMMDD，必填
            "workTime":"220000"   		// 作息时间点HHMMSS，必填
        }
    ]
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "添加成功"
}
```

## 多时间段添加工作历作息时间信息

**说明：每次都是根据dictType先删再建**

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarDate/createCustomCalendarMoreDate
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                    // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId":"Pj1101081009",         // 项目ID ，必填
    "calendarId":"WC1335782235639480322",        // 工作历ID，必填
    "dictType": "shop",         		// 约定的类型，必填
    "dictCode": "2",            		// 约定的编码，选填
    "workDateStart":"20201201",      	// 开始作息日期YYYYMMDD，必填
    "workDateEnd":"20201215",   		// 结束作息日期YYYYMMDD，必填
    "timetable":[
        "01:00-02:00", "05:30-06:30"
    ]
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "添加成功"
}
```

## 定义工作历标签属性

```
URL：http://192.168.64.18:9930/calendar/v2.0/calendarLabel/updateCalendarDateAttribute
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
	"groupCode":"WD",				// 集团编码，必填
	"labels": [
        {
            "userId": "QKZZ",                   // 用户ID ，必填
            "projectId": "Pj1209010205",        // 项目ID ，必填
            "isUpdate":true,					// 是否在创建或更新之前，优先删除此段日期下已存在的标签属性，默认true
            "isDelete":false,					// 是否只删除此段日期下已存在的标签属性，默认false
            "calendarId": "WC1367022614879485953",  //工作历ID，必填
            "labelDateStart": "20210303",       //标签所属开始日期  YYYYMMdd，必填
            "labelDateEnd": "20210331",         //标签所属开始日期  YYYYMMdd，必填
            "dictType": "ServerNum",           		//来源于字典值查询接口，当diyLabel为0的时候，必填，1的时候，选填;
            "dictCode": "ServerNum-1",          	//来源于字典值查询接口，当diyLabel为0的时候，必填，1的时候，选填;
            "diyLabel":"0",                      	//是否自定义，0-非自定义，1-自定义；
            "diyValue":["小明", "小红"]         	  //自定义的时候，必填
        }
	],
	"times": [
        {
            "userId":"QKZZ",                    // 用户ID ，必填
            "projectId":"Pj1101081009",         // 项目ID ，必填
            "isDelete":false,					// 是否只删除此段日期下已存在的作息时间属性，默认false
            "calendarId":"WC1335782235639480322",        // 工作历ID，必填
            "dictType": "shop",         		// 约定的类型，必填
            "dictCode": "2",            		// 约定的编码，选填
            "workDateStart":"20201201",      	// 开始作息日期YYYYMMDD，必填
            "workDateEnd":"20201215",   		// 结束作息日期YYYYMMDD，必填
            "timetable":[						// 作息时间点集合timetable，isDelete true-无意义，false-必填
                "01:00-02:00", "05:30-06:30"
            ]
        }
	]
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "添加成功"
}
```

## 更新工作历作息时间

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarDate/updateCustomCalendarDate
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "projectId":"Pj1101081009",                  // 项目ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "batchInfo":[
        {
            "id":"WD1338066552063373313",		// 作息时间ID，必填
            "calendarId":"WC1335782235639480322",        // 工作历ID，必填
            "dictType": "shop",         // 约定的类型，必填
            "dictCode": "2",            // 约定的编码，必填
            "workDate":"20201214",      //作息日期YYYYMMDD，必填
            "workTime":"230000"   //作息时间点HHMMSS，必填
        }
    ]
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "更新成功"
}
```

## 删除工作历作息时间

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarDate/deleteCustomCalendarDate
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId":"Pj1101050029",                  // 项目ID ，必填
    "id":"WD1335560618685612034",           // 作息时间ID，选填
    "dictType": "shop",         // 约定的类型，必填
    "dictCode": [        		// 约定的编码，选填，不填为删除dictType下所有的code定义的作息时间信息
        "3"
    ],           
    "workDateStart":"20201201",      	// 开始作息日期YYYYMMDD，必填
    "workDateEnd":"20201215"   		// 结束作息日期YYYYMMDD，必填
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "删除成功"
}
```

# 工作历类型管理

## 工作历类型查询

	URL：http://192.168.64.18:9930/calendar/v2.0/workCalendar/queryWorkCalendarList
	Method：POST
	Header：Content-Type=application/json

请求：

	{
	    "userId":"QKZZ",                           // 用户ID ，必填
	    "groupCode":"WD",				// 集团编码，必填
	    "projectId":"Pj1101050029",                  // 项目ID ，必填
	    "id":"WC1335218584007233538",        // 工作历ID，选填
	    "calendarName":"开闭店",                 //工作历名称，选填
	    "objId":"Bd440307000375f48be8ed6b47189da6f2db66fd3a65"	//对象ID，查询出此对象对应的工作历ID，选填，和ID同时存在时，以id为准，objId失效
	}

返回：

	{
	    "content": [
	        {
	            "calendarDesc": "开闭店工作历类型",
	            "calendarName": "开闭店工作历类型",
	            "createTime": "20201205214452",
	            "delFlag": "0",
	            "groupCode":"WD",
	            "id": "WC1335218584007233538",
	            "projectId": "Pj1101050029",
	            "updateTime": "20201205214458",
	            "updateUser": "QKZZ"
	        }
	    ],
	    "count": 1,
	    "respCode": "00000",
	    "respMsg": "success"
	}

## 工作历类型名称重复性校验

	URL：http://192.168.64.18:9930/calendar/v2.0/workCalendar/validCalendarName
	Method：POST
	Header：Content-Type=application/json

请求：

	{
	    "id": "WC1335218584007233538",           // 工作历类型ID，当为更新的时候，必填
	    "groupCode": "WD",  // 集团编码，必填
	    "projectId": "Pj1101051130",    //项目ID，必填
	    "calendarName": "乾坤测试", // 工作历类型名称 ，必填
	    "userId": "b9df7de50df148d3be69bcebab30c396" // 用户ID，必填，不做为sql条件
	}

返回：

	// 验证通过，可以使用
	{
	    "respCode": "00000",		// 00000 代表可用
	    "respMsg": "可用"
	}
	// 验证不通过，名称重复
	{
	    "respCode": "C0341",		// C0341 不可用
	    "respMsg": "名称重复"
	}

## 创建工作历类型

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendar/createWorkCalendar
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
	"calendarDesc": "开闭店工作历类型",         // 工作历类型描述
	"groupCode":"WD",				// 集团编码，必填
	"calendarName": "开闭店工作历类型",         // 工作历类型名称，必填，项目下唯一
    "userId":"QKZZ",                           // 用户ID ，必填，不做为sql条件
    "projectId":"Pj1101050029",                  // 项目ID，必填，作为sql条件
    "objIds":[								// 对象ID集合，选填
    	"Bd440307000375f48be8ed6b47189da6f2db66fd3a65"
    ]
}
```

返回：

```
{
    "content": "WC1335207337782165505",		// 工作历类型ID
    "respCode": "00000",
    "respMsg": "新增成功"
}
```

## 根据模板创建工作历类型

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendar/createWorkCalendarFromId
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
	"groupCode":"WD",				// 集团编码，必填
	"calendarDesc": "开闭店工作历类型",         // 工作历类型描述
	"calendarName": "开闭店工作历类型",         // 工作历类型名称，必填，项目下唯一
	"fromId":"WC1335207337782165503",		 //工作历来源ID，必填
    "userId":"QKZZ",                           // 用户ID ，必填，不做为sql条件
    "projectId":"Pj1101050029",                // 项目ID，必填，作为sql条件
    "objIds":[								// 对象ID集合，选填
    	"Bd440307000375f48be8ed6b47189da6f2db66fd3a65"
    ]
}
```

返回：

```
{
    "content": "WC1335207337782165505",		// 工作历类型ID
    "respCode": "00000",
    "respMsg": "新增成功"
}
```

## 更新工作历类型

	URL：http://192.168.64.18:9930/calendar/v2.0/workCalendar/updateWorkCalendar
	Method：POST
	Header：Content-Type=application/json

请求：

	{
		"groupCode":"WD",				// 集团编码，必填
	    "id":"WC1335207337782165505",               // 工作历类型ID
		"calendarDesc": "开闭店工作历类型",         // 工作历类型描述
		"calendarName": "开闭店工作历类型",         // 工作历类型名称
	    "userId":"QKZZ",                           // 用户ID 
	    "projectId":"Pj1101050029"                  // 项目ID
	}

返回：

	{
	    "respCode": "00000",
	    "respMsg": "更新成功"
	}

## 删除工作历类型

**说明：级联删除规则信息**

	URL：http://192.168.64.18:9930/calendar/v2.0/workCalendar/deleteWorkCalendar
	Method：POST
	Header：Content-Type=application/json

请求：

	{
		"groupCode":"WD",				// 集团编码，必填
	    "id":"WC1335207337782165505",               // 工作历类型ID
	    "userId":"QKZZ",                           // 用户ID 
	    "projectId":"Pj1101050029"                  // 项目ID
	}

返回：

	{
	    "respCode": "00000",
	    "respMsg": "删除成功"
	}

# 工作历规则管理

## 工作历规则查询

	URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarRule/queryWorkCalendarRuleList
	Method：POST
	Header：Content-Type=application/json

请求：

	{
		"groupCode":"WD",				// 集团编码，必填
	    "userId":"QKZZ",                           // 用户ID ，必填
	    "projectId":"Pj1101050029",                  // 项目ID ，必填
	    "id":"WR1335224788167286786",               //规则ID，选填
	    "calendarId":"WC1335218584007233538",        // 工作历ID，选填
	    "dictType":"shop",       //字典类型，选填
	    "dictCode": [               // 约定的编码，不填就是此类型下所有的  2-开店时间;3-商业闭店时间;4-娱乐闭店时间
	        "2-dOfW", "3-dOfW", "4-dOfW"
	    ]
	}

返回：

	{
	    "content": [
	        {
	            "calendarId": "WC1335218584007233538",
	            "createTime": "20201205220931",
	            "delFlag": "0",
	            "dictCode": "4",
	            "dictType": "shop",
	            "id": "WR1335224788167286786",
	            "projectId": "Pj1101050029",
	            "ruleDateEnd": "20300101",
	            "ruleDateStart": "20200101",
	            "ruleFlag": "0",
	            "ruleTime": "230000",
	            "updateTime": "20201205220931",
	            "updateUser": "QKZZ"
	        }
	    ],
	    "count": 1,
	    "respCode": "00000",
	    "respMsg": "success"
	}

## 创建工作历规则

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarRule/createWorkCalendarRule
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId":"Pj1101081009",                  // 项目ID ，必填
    "isDelete":false,			//是否添加时，优先删除此工作历下已存在的对应dictType的规则，默认false，true删除，false或不填不删除
    "batchInfo":[
        {
            "calendarId":"WC1335782235639480322",        // 工作历ID ，必填
            "dictType":"shop",                      //类型 ，必填
            "dictCode":"2-dOfW",                         //数据code ，选填  dOfW-周
            "ruleDateStart":"20200101",             //规则生效开始日期 YYYYMMDD ，必填
            "ruleDateEnd":"20300101",               //规则结束开始日期 YYYYMMDD ，必填
            "ruleTime":"080000",                    //规则生效具体时间点 HHMMSS，选填
            "value":[                           
                // 当想要以周、月、月日设置规则时，填写此项，配合dictCode使用，如：2-dOfW;
                // dOfW-按周 取值1~7,周一到周日; dOfM-按月, 取值 1， 15， 20-25每月的第1天、15天，20~25天， mAndD-几月几日，0221，0925-1028，每年的2月21，每年的0925~1028
                "1", "2", "3"
                // 当此日下有多个时间段的时候，请在value字段内，传此值
                // "01:00-02:00","03:00-04:00"
            ]
        }   
    ]
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

## 更新工作历规则

	URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarRule/updateWorkCalendarRule
	Method：POST
	Header：Content-Type=application/json

请求：

	{
	    "userId":"QKZZ",                           // 用户ID ，必填
	    "groupCode":"WD",				// 集团编码，必填
	    "projectId":"Pj1101081009",                  // 项目ID ，必填
	    "batchInfo":[
	        {
	            "id":"WR1338035594022948865",               //规则ID，必填
	            "calendarId":"WC1335782235639480322",        // 工作历ID ，必填
	            "dictType":"shop",                      //类型 ，必填，同项目下，字典类型+数据code 联合唯一
	            "dictCode":"2-dOfW",                         //数据code ，必填  dOfW-周
	            "ruleDateStart":"20200101",             //规则生效开始日期 YYYYMMDD ，必填
	            "ruleDateEnd":"20300101",               //规则结束开始日期 YYYYMMDD ，必填
	            "ruleTime":"080000",                    //规则生效具体时间点 HHMMSS，选填
	            "value":[                           
	                // 当想要以周、月、月日设置规则时，填写此项，配合dictCode使用，如：2-dOfW;
	                // dOfW-按周 取值1~7,周一到周日; dOfM-按月, 取值 1， 15， 20-25每月的第1天、15天，20~25天， mAndD-几月几日，0221，0925-1028，每年的2月21，每年的0925~1028
	                "1", "2", "3"          
	            ]
	        }   
	    ]
	}

返回：

	{
	    "respCode": "00000",
	    "respMsg": "更新成功"
	}

## 删除工作历规则

```
URL：http://192.168.64.18:9930/calendar/v2.0/workCalendarRule/deleteWorkCalendarRule
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId":"Pj1101050029",                  // 项目ID ，必填
    "calendarId":"WC1335218584007233538",        // 工作历ID，选填
    "id":"WR1335218652328251393"        //规则ID，选填，但与工作历ID，必填其一
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "删除成功"
}
```

# 标签属性管理

## 根据时间段-自动计算出此年内不在此时间段内的日期

```
URL：http://192.168.64.18:9930/calendar/v2.0/calendarLabel/calculateExtraDate
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId": "QKZZ",                   // 用户ID ，必填
    "labelDates": [     // 计算出不在此段时间内的，当年的时间段，必填
        "20210102-20210305","20210502-20210807"
    ]
}
```

返回：

```
{
    "content": [
    	// 有序的，根据开始日期从小~大
        "20210101-20210101",
        "20210306-20210501",
        "20210808-20211231"
    ],
    "respCode": "00000",
    "respMsg": "success"
}
```

## 日期标签属性列表查询

```
URL：http://192.168.64.18:9930/calendar/v2.0/calendarLabel/queryCalendarLabelList
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId": "QKZZ",                   // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId": "Pj1209010205",        // 项目ID ，必填
    "calendarId": "WC1367022614879485953",  //工作历ID，选填
    "labelDateStart": "20210301",       //标签所属开始日期  YYYYMMdd，必填
    "labelDateEnd": "20210331",         //标签所属开始日期  YYYYMMdd，必填
    "dictType": "ServerNum",           //来源于字典值查询接口，选填;
    "dictCode": "ServerNum-1",          //来源于字典值查询接口，选填;
    "diyLabel":"0"                      //是否自定义，0-非自定义，1-自定义,选填；
}
```

返回：

```
{
    "content": [
        {
            "calendarId": "WC1367022614879485953",
            "createTime": "20210304195459",
            "dictCode": "ServerNum-1",
            "dictType": "ServerNum",
            "diyLabel": "0",
            "id": "WL1367443450996322306",
            "labelDate": "20210315",
            "projectId": "Pj1209010205",
            "updateTime": "20210304195459",
            "updateUser": "b9df7de50df148d3be69bcebab30c396"
        }
    ],
    "count": 1,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 查询标签的有效期

```
URL：http://develop.persagy.com/calendar/v2.0/calendarLabel/queryCalendarLabelValid
Method：POST
Header：Content-Type=application/json
```

请求：

```
// 因为设计允许一个项目下创建多个工作历，所以当不传objId或calendarId时，结果是不对的
{
    "userId": "QKZZ",                   // 用户ID ，必填，不做为sql条件
    "groupCode":"YL",					// 集团编码，必填，作为sql条件
    "projectId": "Pj4403050002",        // 项目ID ，必填，作为sql条件
    "objId":"Bd123546645",              // 对象ID，当其存在时 calendarId 失效，以其为准，选填，作为sql条件
    "calendarId": "WC1435880201339994114",  //工作历ID，选填，作为sql条件
    "labelDateStart": "20210301",       //标签所属开始日期  YYYYMMdd，选填;作为sql条件
    "labelDateEnd": "20210331",         //标签所属开始日期  YYYYMMdd，选填;作为sql条件
    "dictType": "ACSeason",           //来源于字典值查询接口，选填;作为sql条件
    "dictCode": "ACSeason-1",          //来源于字典值查询接口，选填;作为sql条件
    "diyLabel":"0",                      //是否自定义，0-非自定义，1-自定义,选填，作为sql条件
    "groupBy": "DICT_TYPE, DICT_CODE"	//分组条件，传列名：不传默认为 DICT_TYPE, DICT_CODE
}
```

返回：

```
{
    "content": [
        {
            "dictCode": "ACSeason-1",
            "dictType": "ACSeason",
            "labelDateEnd": "20210930",		// 此标签的有效期-结束时间
            "labelDateStart": "20210602"	// 此标签的有效期-开始时间
        }
    ],
    "count": 1,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 创建或更新或删除日期标签属性

```
URL：http://192.168.64.18:9930/calendar/v2.0/calendarLabel/updateLabelInfo
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId": "QKZZ",                   // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId": "Pj1209010205",        // 项目ID ，必填
    "isUpdate":true,					// 是否在创建或更新之前，优先删除此段日期下已存在的标签属性，默认true
    "isDelete":false,					// 是否只删除此段日期下已存在的标签属性，默认false
    "calendarId": "WC1367022614879485953",  //工作历ID，必填
    "labelDateStart": "20210303",       //标签所属开始日期  YYYYMMdd，必填
    "labelDateEnd": "20210331",         //标签所属开始日期  YYYYMMdd，必填
    "dictType": "ServerNum",           //来源于字典值查询接口，当diyLabel为0的时候，必填，1的时候，选填;
    "dictCode": "ServerNum-1",          //来源于字典值查询接口，当diyLabel为0的时候，必填，1的时候，选填;
    "diyLabel":"0",                      //是否自定义，0-非自定义，1-自定义；
    "diyValue":["小明", "小红"]         //自定义的时候，必填
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

## 删除日期标签属性

```
URL：http://192.168.64.18:9930/calendar/v2.0/calendarLabel/createLabelInfo
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId": "QKZZ",                   // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId": "Pj1209010205",        // 项目ID ，必填
    "isDelete":true,					// 是否优先删除此段日期下已存在的标签属性，默认false
    "calendarId": "WC1367022614879485953",  //工作历ID，必填
    "labelDateStart": "20210303",       //标签所属开始日期  YYYYMMdd
    "labelDateEnd": "20210331",         //标签所属开始日期  YYYYMMdd
    "labelCode": "ServerNum",           //来源于字典值查询接口
    "diyLabel": "0"                     //是否自定义，0-非自定义，1-自定义，当为1时，labelCode字段值，可以为 "1,2,3" 类型结构数据
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

# 物理世界对象管理

## 物理世界对象查询

```
URL：http://192.168.64.18:9930/calendar/v2.0/rwdObject/queryRwdObjects
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "groupCode": "WD",    // 集团编码，必填，做为sql条件
	"userId": "QKCC",       //用户ID，必填，不做为sql条件
    "projectId":"Pj4403070003",  //项目ID，必填，做为sql条件
    "id":"Bd440307000375f48be8ed6b47189da6f2db66fd3a65"	//主键ID，选填
    "objType":["space", "floor", "building", "project"]   //对象类型，默认为space, floor, building, project全查
}
```

返回：

```
{
    "content": [
        {
            "classCode": "building",
            "updateApp": "datacenter",
            "updateTime": 1608778512000,
            "createApp": "datacenter",
            "grouping": 1,
            "localId": "11",
            "virtualInfoCodes": [],
            "valid": 1,
            "localName": "111",
            "createTime": 1608778502000,
            "name": "建筑-M0S80",
            "id": "Bd440307000375f48be8ed6b47189da6f2db66fd3a65",	// 对象ID
            "projectId": "Pj4403070003",
            "objType": "building",
            "isRelated": true,						//是否存在工作历,true-存在，false-不存在
            "calendarId":"WC1369223137783271425",  //工作历ID，当isRelated为true时，存在
            "calendarId":"测试"  					//工作历名称，当isRelated为true时，存在
        }
    ],
    "count": 1,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 查询工作历对象列表

```
URL：http://192.168.64.18:9930/calendar/v2.0/rwdObject/queryCalendarObjectList
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "groupCode": "WD",    // 集团编码，必填
	"userId": "QKCC",       //用户ID，必填
    "projectId":"Pj1101051130",  //项目ID，必填
    "id": "WC1369223137783271425"            //工作历ID，选填
}
```

返回：

```
{
    "content": [
        {
            "calendarDesc": "adsf", //工作历描述
            "calendarName": "g1",	//工作历名称/
            "createTime": "20210310152105",
            "delFlag": "0",
            "groupCode": "WD",
            "id": "WC1369548849831501826",	//工作历ID
            "objects": [
                {
                    "objectName": "楼层-Y8HAJ",		//对象名称
                    "objectId": "Fl11010511304ad6248649744d6b9850352fbfbf7cdc"		//对象ID
                },
                {
                    "objectName": "万达模型测试项目2",
                    "objectId": "Pj1101051130"
                }
            ],
            "projectId": "Pj1101051130",
            "updateTime": "20210310152105",
            "updateUser": "b9df7de50df148d3be69bcebab30c396"
        }
    ],
    "count": 1,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 添加对象工作历

```
URL：http://192.168.64.18:9930/calendar/v2.0/rwdObject/addCalendarObject
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "groupCode": "WD",    // 集团编码，必填
	"userId": "QKCC",       //用户ID，必填
    "projectId":"Pj1209010205",  //项目ID，必填
    "calendarId":"WC1368868481819336705",    //工作历ID，必填
    "objId": "Sp4403070003f55c8b33cf1f45e5bfc699caaba4eedc",    // 对象ID，假如与objIds同时存在，会一起生效，选填
    "objIds": ["Sp4403070003f55c8b33cf1f45e5bfc699caaba4eedc"]   //对象ID集合，默认为space, floor, building, project，选填
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "添加成功"
}
```

## 删除对象工作历

```
URL：http://192.168.64.18:9930/calendar/v2.0/rwdObject/deleteCalendarObject
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "groupCode": "WD",    // 集团编码，必填
	"userId": "QKCC",       //用户ID，必填
    "projectId":"Pj1209010205",  //项目ID，必填
    "calendarId":"WC1368868481819336705",    //工作历ID，选填
    "objId": "Sp4403070003f55c8b33cf1f45e5bfc699caaba4eedc",    // 对象ID，假如与objIds同时存在，会一起生效，选填
    "objIds": ["Sp4403070003f55c8b33cf1f45e5bfc699caaba4eedc"]   //对象ID集合，默认为space, floor, building, project，选填
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "删除成功"
}
```

## 物理世界对象变更所属工作历

```
URL：http://192.168.64.18:9930/calendar/v2.0/rwdObject/changeCalendarObject
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "groupCode": "WD",    // 集团编码，必填
	"userId": "QKCC",       //用户ID，必填
    "projectId":"Pj1209010205",  //项目ID，必填
    "calendarId":"WC1368868481819336705",    //工作历ID，必填
    "objIds": ["Sp4403070003f55c8b33cf1f45e5bfc699caaba4eedc"]   //对象ID集合，默认为space, floor, building, project，必填
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "操作成功"
}
```

# 通用功能管理

## 字典值查询

```
URL：http://192.168.64.18:9930/calendar/v2.0/common/dictQuery
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填,不做为sql条件
    "groupCode":"WD",				// 集团编码，必填
    "calendarId":"WC1367022614879485953",	//工作历ID，一般是不需要填写的，除非此字典值是在属于某工作历类型的，而非项目的
    "dictType": "shop"         // 约定的类型，必填
}
```

返回：

```
// 当dictType: shop，开闭店类型
{
    "content": {
        "2": "开店时间",
        "3": "商业闭店时间",
        "4": "娱乐闭店时间"
    },
    "respCode": "00000",
    "respMsg": "success"
}

// 当dictType: ACSeason，空调季类别
{
    "content": {
        "ACSeason-1": "供冷",
        "ACSeason-2": "供暖",
        "ACSeason-3": "过渡"
    },
    "respCode": "00000",
    "respMsg": "success"
}

// 当dictType: ServerNum，服务人数
{
    "content": {
        "ServerNum-1": "正常",
        "ServerNum-2": "急剧增多",
        "ServerNum-3": "一般增多",
        "ServerNum-4": "急剧减少",
        "ServerNum-5": "一般减少"
    },
    "respCode": "00000",
    "respMsg": "success"
}

// 当dictType: UserNum，客流人数
{
    "content": {
        "UserNum-1": "正常",
        "UserNum-2": "急剧增多",
        "UserNum-3": "一般增多",
        "UserNum-4": "急剧减少",
        "UserNum-5": "一般减少"
    },
    "respCode": "00000",
    "respMsg": "success"
}

// 当dictType: OpenTime
{
    "content": {
        "OpenTime-1": "工作日",
        "OpenTime-2": "休息日"
    },
    "respCode": "00000",
    "respMsg": "success"
}


// 当dictType: custom-type, 当calendarId: 不为空时（工作历类型ID）
// 此时，允许code与name为相同值，如下仅是示例，并不是代表，code与name必须相同
{
    "content": {
        "小明": "小明",
        "小红": "小红",
        ...
    },
    "respCode": "00000",
    "respMsg": "success"
}
```

## 字典值创建

```
URL：http://192.168.64.18:9930/calendar/v2.0/common/dictCreate
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId": "QKZZ",               // 用户ID ，必填
    "groupCode":"WD",				// 集团编码，必填
    "projectId": "Pj1101050029",    // 项目ID ，必填
    "calendarId": "WC1367022614879485953",  //工作历ID，一般是不需要填写的，除非此字典值是在属于某工作历类型的，而非项目的,选填
    "dictType": "shop",                     // 约定的类型，必填
    "codes": [
        {
            "dictCode": "2", 	// 非必填
            "dictDesc": "开店时间" // 必填
        }
    ]
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

## 立即解析规则信息

**说明：非自定义已存在的作息时间信息被更新，不存在的被插入**

```
URL：http://192.168.64.18:9930/calendar/v2.0/common/handleParseCalendarRule
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "userId":"QKZZ",                           // 用户ID ，必填
    "projectId":"Pj1101050029",                  // 项目ID ，必填
    "ruleId":"WR1335232948013666305",               //规则ID，选填
    "calendarId":"WC1335228701901586434",        // 工作历ID，选填
    "dictType": "shop",         // 约定的类型
    "dictCode": "4",            // 约定的编码，不填就是此类型下所有的  2-开店时间;3-商业闭店时间;4-娱乐闭店时间
    "workDateStart":"20201205", //需要查询的时间段范围的日期开始，必填
    "workDateEnd":"20201207"   //需要查询的时间段范围的日期结束，必填
}
```

返回：

```
{
    "content": {
        "4": "娱乐闭店时间",
        "2": "开店时间",
        "3": "商业闭店时间"
    },
    "respCode": "00000",
    "respMsg": "success"
}
```

# 染色标尺相关接口

## 新增染色基础信息

```
URL：http://develop.persagy.com/calendar/dyeBasic/createDyeBasic
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "typeCode": "QQQQQQ", // 染色类型编码 必传
    "typeName": "AAAA", // 染色类型名称 必传
    "seasonCode": "ACSeason-3", // 季节类型编码 必传
    "seasonName": "过渡季", // 季节类型名称 必传
    "updateUserId": "423594c93c8f45ee904269f4d8d14743" // 操作人ID
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

## 更新染色基础信息

```
URL：http://develop.persagy.com/calendar/dyeBasic/updateDyeBasic
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "id":"98af9c276010410aa56a8053f678fd8f", // 要更新的数据ID 必传
    "typeCode": "QQQQQQ", // 染色类型编码
    "typeName": "AAAA", // 染色类型名称
    "seasonCode": "ACSeason-3", // 季节类型编码
    "seasonName": "过渡季", // 季节类型名称
    "updateUserId": "423594c93c8f45ee904269f4d8d14743" // 操作人ID
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "更新成功"
}
```

## 逻辑删除染色基础信息

```
URL：http://develop.persagy.com/calendar/dyeBasic/deleteDyeBasic?dyeBasicId=必传&updateUserId=
Method：POST
Header：Content-Type=application/json
```

请求：

```
dyeBasicId=&updateUserId=
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "删除成功"
}
```

## 染色基础信息列表查询

```
URL：http://develop.persagy.com/calendar/dyeBasic/queryDyeBasicList
Method：POST
Header：Content-Type=application/json
```

请求：

```
{

}
```

返回：

```
{
    "content": [
        {
            "createTime": "2021-10-26 09:46:57", // 数据创建时间
            "id": "1afa744ee32a45da8af67f704c8c4207", // 数据主键
            "isDelete": "0", // 是否删除
            "seasonCode": "ACSeason-1", // 季节编码
            "seasonName": "供冷季", // 季节名称
            "typeCode": "cO2", // 染色类型编码
            "typeName": "空气CO2浓度", // 染色类型名称
            "updateUserId": "423594c93c8f45ee904269f4d8d14743" // 最后操作人ID
        },
        ...
    ],
    "count": 16,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 新增默认染色规则信息

```
URL：http://develop.persagy.com/calendar/dyeRuleDefault/createDyeRuleDefault
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "basicId": "8a5ec9d1c28d4804b69de317f635752d", // 染色基础表数据 必传
    "tempLowerLimit": "45", // 下限值 必传
    "lowerSymbol": "(", // 下限符号 必传
    "tempUpperLimit": "+∞", // 上限值 必传
    "upperSymbol": ")", // 上限符号 必传
    "name": "潮湿报警", // 染色标尺名称 必传
    "colorValue": "#FF0000", // 色值 必传
    "orderNum": "3", // 染色标尺排序 
    "updateUserId": "423594c93c8f45ee904269f4d8d14743", // 操作人ID
    "numSymbol": "%" // 数值单位（符号）
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

## 更新默认染色规则信息

```
URL：http://develop.persagy.com/calendar/dyeRuleDefault/updateDyeRuleDefault
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "id":"98af9c276010410aa56a8053f678fd8f", // 要更新的数据ID 必传
    "basicId": "8a5ec9d1c28d4804b69de317f635752d", // 染色基础表数据 必传
    "tempLowerLimit": "45", // 下限值 必传
    "lowerSymbol": "(", // 下限符号 必传
    "tempUpperLimit": "+∞", // 上限值 必传
    "upperSymbol": ")", // 上限符号 必传
    "name": "潮湿报警", // 染色标尺名称 必传
    "colorValue": "#FF0000", // 色值 必传
    "orderNum": "3", // 染色标尺排序 
    "updateUserId": "423594c93c8f45ee904269f4d8d14743", // 操作人ID
    "numSymbol": "%" // 数值单位（符号）
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "更新成功"
}
```

## 逻辑删除默认染色规则信息

```
URL：http://develop.persagy.com/calendar/dyeRuleDefault/deleteDyeRuleDefault?dyeRuleDefaultId=必传&updateUserId=
Method：POST
Header：Content-Type=application/json
```

请求：

```
dyeRuleDefaultId=&updateUserId=
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "删除成功"
}
```

## 默认染色规则信息列表查询

```
URL：http://develop.persagy.com/calendar/dyeRuleDefault/queryDyeRuleDefaultList
Method：POST
Header：Content-Type=application/json
```

请求：

```
{

}
```

返回：

```
{
    "content": [
        {
            "basicId": "e101200c05094f30af34c741b10e7069", // 染色基础表ID
            "colorValue": "#00B050", // 色值
            "createTime": "2021-10-27 15:17:39", // 创建时间
            "id": "bec61d651b184609b4e62b4cc02b60b8", // 数据主键
            "isDelete": "0", // 是否删除
            "lowerLimit": -99, // 下限值（99在数据库代表无穷 前端显示建议使用返回字段tempLowerLimit）
            "lowerSymbol": "(", // 下限符号
            "name": "良好", // 染色名称
            "numSymbol": "μg/m3 每24小时", // 数值单位（符号）
            "orderNum": 3, // 染色排序
            "tempLowerLimit": "(-∞", // 下限值 前端可直接用这个字段在列表回显
            "tempUpperLimit": "15)", // 上限值 前端可直接用这个字段在列表回显
            "updateUserId": "423594c93c8f45ee904269f4d8d14743", // 最后操作人ID
            "upperLimit": 15, // 上限值（99在数据库代表无穷 前端显示建议使用返回字段tempUpperLimit）
            "upperSymbol": ")" // 上限符号
        },
        ...
    ],
    "count": 16,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 新增自定义染色规则信息

```
URL：http://develop.persagy.com/calendar/dyeRuleCustom/createDyeRuleCustom
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "basicId": "8a5ec9d1c28d4804b69de317f635752d", // 染色基础表数据 必传
    "groupCode": "YL", // 集团编码 必传
    "projectId": "Pj4403050002", // 项目ID 必传
    "tempLowerLimit": "45", // 下限值 必传
    "lowerSymbol": "(", // 下限符号 必传
    "tempUpperLimit": "+∞", // 上限值 必传
    "upperSymbol": ")", // 上限符号 必传
    "name": "潮湿报警", // 染色标尺名称 必传
    "colorValue": "#FF0000", // 色值 必传
    "orderNum": "3", // 染色标尺排序 
    "updateUserId": "423594c93c8f45ee904269f4d8d14743", // 操作人ID
    "numSymbol": "%" // 数值单位（符号）
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "保存成功"
}
```

## 更新自定义染色规则信息

```
URL：http://develop.persagy.com/calendar/dyeRuleCustom/updateDyeRuleCustom
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "id":"98af9c276010410aa56a8053f678fd8f", // 要更新的数据ID 必传
    "basicId": "8a5ec9d1c28d4804b69de317f635752d", // 染色基础表数据 必传
    "groupCode": "YL", // 集团编码 必传
    "projectId": "Pj4403050002", // 项目ID 必传
    "tempLowerLimit": "45", // 下限值 必传
    "lowerSymbol": "(", // 下限符号 必传
    "tempUpperLimit": "+∞", // 上限值 必传
    "upperSymbol": ")", // 上限符号 必传
    "name": "潮湿报警", // 染色标尺名称 必传
    "colorValue": "#FF0000", // 色值 必传
    "orderNum": "3", // 染色标尺排序 
    "updateUserId": "423594c93c8f45ee904269f4d8d14743", // 操作人ID
    "numSymbol": "%" // 数值单位（符号）
}
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "更新成功"
}
```

## 逻辑删除自定义染色规则信息

```
URL：http://develop.persagy.com/calendar/dyeRuleCustom/deleteDyeRuleCustom?dyeRuleCustomId=必传&updateUserId=
Method：POST
Header：Content-Type=application/json
```

请求：

```
dyeRuleCustomId=&updateUserId=
```

返回：

```
{
    "respCode": "00000",
    "respMsg": "删除成功"
}
```

## 自定义染色规则信息列表查询

```
URL：http://develop.persagy.com/calendar/dyeRuleCustom/queryDyeRuleCustomList
Method：POST
Header：Content-Type=application/json
```

请求：

```
{

}
```

返回：

```
{
    "content": [
        {
            "basicId": "e101200c05094f30af34c741b10e7069", // 染色基础表ID
            "groupCode": "YL", // 集团编码 
            "projectId": "Pj4403050002", // 项目ID 
            "colorValue": "#00B050", // 色值
            "createTime": "2021-10-27 15:17:39", // 创建时间
            "id": "bec61d651b184609b4e62b4cc02b60b8", // 数据主键
            "isDelete": "0", // 是否删除
            "lowerLimit": -99, // 下限值（99在数据库代表无穷 前端显示建议使用返回字段tempLowerLimit）
            "lowerSymbol": "(", // 下限符号
            "name": "良好", // 染色名称
            "numSymbol": "μg/m3 每24小时", // 数值单位（符号）
            "orderNum": 3, // 染色排序
            "tempLowerLimit": "(-∞", // 下限值 前端可直接用这个字段在列表回显
            "tempUpperLimit": "15)", // 上限值 前端可直接用这个字段在列表回显
            "updateUserId": "423594c93c8f45ee904269f4d8d14743", // 最后操作人ID
            "upperLimit": 15, // 上限值（99在数据库代表无穷 前端显示建议使用返回字段tempUpperLimit）
            "upperSymbol": ")" // 上限符号
        },
        ...
    ],
    "count": 16,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 查询指定集团、项目和类型的染色标尺列表

```
URL：http://develop.persagy.com/calendar/dye/sdk/listDyeScaleplateByType
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "groupCode": "YL", // 集团编码 必传
    "projectId": "Pj4403050002", // 项目ID 必传
    "typeCode": "pM2d5" // 染色类型编码 必传
}
```

返回：

```
{
    "content": [
        {
            "name": "高", // 染色名称
            "colorValue": "#FF0000", // 色值
            "upperLimit": "+∞)", // 上限值
            "lowerLimit": "(35", // 下限值
            "ID": "0e7024ae696b44e38dbafacc86c28d18" // 染色标尺唯一ID
        },
        ...
    ],
    "count": 3,
    "respCode": "00000",
    "respMsg": "success"
}
```

## 查询空间对应的染色标尺

```
URL：http://develop.persagy.com/calendar/dye/sdk/listDyeScaleplateWithSpaceIds
Method：POST
Header：Content-Type=application/json
```

请求：

```
{
    "projectId": "Pj4403050002", // 项目ID 必传
    "groupCode": "YL", // 集团编码 必传
    "typeCode": "pM2d5", // 染色类型编码 必传
    "dynamicArray": [ // 动态监测数据 必传
        {
            "spaceId": "SP369784854323156456", // 空间ID 必传
            "realTimeNum": 22 // 动态监测值 必传
        },
        ...
    ]
}
```

返回：

```
{
    "content": [
        {
            "spaceId": "SP369784854323156456", // 空间ID
            "name": "达标", // 染色类型编码
            "colorValue": "#C5E0B3", // 色值
            "upperLimit": "35]", // 上限
            "lowerLimit": "[15", // 下限
            "ID": "b0e884ff3a5141a189f4f40b2878b83c", // 染色标尺主键
            "projectId": "Pj4403050002", // 项目ID
            "realTimeNum": 22, // 实时动态监测值
            "groupCode": "YL", // 集团编码
            "typeCode": "pM2d5" // 染色类型编码
        },,
        ...
    ],
    "count": 2,
    "respCode": "00000",
    "respMsg": "success"
}
```