#chabaodao-4# 班次接口

This commit is contained in:
shilei 2025-10-23 11:03:13 +08:00
parent b0be700da4
commit 835a39c4b5
16 changed files with 1130 additions and 3 deletions

View File

@ -3,7 +3,7 @@ package com.weaver.seconddev.chapanda.hrm.constant;
public enum DownLoadTypeEnum {
INFORMATION("0","info", "info","签署文件下载","附件管理"),
INFORMATION("0","info", "info","人员附件下载","附件管理"),
CONTRACT("1","contract", "contract","签署文件下载","人事合同"),
INCOME("2","income", "income","签署文件下载","收入证明"),
EMPLOYMENT("3","employment", "employment","签署文件下载","在职证明"),

View File

@ -166,6 +166,38 @@ public class HrmInformationFilesController {
return WeaResult.success(dataMap);
}
@WeaPermission(publicPermission = true)
@PostMapping("/getinformationpath3")
public WeaResult<Object> getInformationPath3(@RequestBody JSONObject jsonObject){
String data = String.valueOf(jsonObject.getString("data"));
log.error("data:{}",data);
JSONArray dataArray = new JSONArray();
if(StringUtils.isNotBlank(data)){
// String decodedData = hrmDownloadFilesService.convertBase64Data(data);
// log.error("decodedData:{}",decodedData);
// if(StringUtils.isNotBlank(decodedData)){
// try{
// dataArray = JSONArray.parseArray(decodedData);
// }catch (Exception e){
// log.error("{}",e);
// }
// }
try{
dataArray = JSONArray.parseArray(data);
}catch (Exception e){
log.error("{}",e);
}
}
log.error("dataArray:{}",dataArray.size());
String newZipFilePath = convertZipFile(dataArray, DownLoadTypeEnum.INFORMATION.getCode());
Map<String,Object> dataMap = new HashMap<String,Object>();
dataMap.put("filepath",newZipFilePath);
return WeaResult.success(dataMap);
}
/***
* 转换为zip文件
* @param dataArray
@ -217,7 +249,7 @@ public class HrmInformationFilesController {
log.error("fileName:{}",fileName);
byte[] filedata = hrmDownloadFilesService.convertInputStreamToBytes(inputStream);
addFileToZip(zos, filedata, fileName,jobNum,userName);
addFileToZip2(zos, filedata, fileName);
inputStream.close();
} catch (IOException e) {
@ -274,7 +306,7 @@ public class HrmInformationFilesController {
for (DownLoadTypeEnum item : values) {
log.error("item.getCode():{}",item.getCode());
if(item.getCode().equals(type)){
filename = DownLoadTypeEnum.INCOME.getFileName();
filename = DownLoadTypeEnum.INFORMATION.getFileName();
}
}
if(StringUtils.isNotBlank(filename)){
@ -313,6 +345,14 @@ public class HrmInformationFilesController {
zos.write(fileData);
zos.closeEntry();
}
private void addFileToZip2(ZipOutputStream zos, byte[] fileData, String entryName) throws IOException {
// ZipEntry entry = new ZipEntry(fileName+"_"+jobNum+"/"+entryName);
ZipEntry entry = new ZipEntry(entryName);
zos.putNextEntry(entry);
zos.write(fileData);
zos.closeEntry();
}
/**
* 测试接口
* @param request

View File

@ -0,0 +1,74 @@
package com.weaver.seconddev.chapanda.hrm.controller;
import com.alibaba.fastjson.JSONObject;
import com.weaver.common.authority.annotation.WeaPermission;
import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.seconddev.chapanda.hrm.service.HrmShiftQueryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* packageName com.weaver.seconddev.chapanda.hrm.controller
*
* @ClassName HrmShiftQueryController
* @Author shil
* @Date 2025/10/16 13:37
* @Description TODO
*/
@RestController
@RequestMapping("/api/secondev/chapanda/hrm/shift")
public class HrmShiftQueryController {
private final Logger log = LoggerFactory.getLogger(HrmShiftQueryController.class);
@Autowired
private HrmShiftQueryService hrmShiftQueryService;
@WeaPermission(publicPermission = true)
@PostMapping("/queryShiftList")
public WeaResult<Object> queryShiftList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.queryShiftList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@GetMapping("/getShiftList")
public WeaResult<Object> getShiftList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.queryShiftList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@PostMapping("/querySchedulingList")
public WeaResult<Object> querySchedulingList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.querySchedulingList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@GetMapping("/getSchedulingList")
public WeaResult<Object> getSchedulingList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.querySchedulingList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@PostMapping("/operateScheduling")
public WeaResult<Object> operateScheduling(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.operateScheduling(paramJson);
return WeaResult.success(dataList);
}
}

View File

@ -0,0 +1,72 @@
package com.weaver.seconddev.chapanda.hrm.controller;
import com.alibaba.fastjson.JSONObject;
import com.weaver.common.authority.annotation.WeaPermission;
import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.seconddev.chapanda.hrm.service.HrmShiftQueryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* packageName com.weaver.seconddev.chapanda.hrm.controller
*
* @ClassName HrmShiftQueryController
* @Author shil
* @Date 2025/10/16 13:37
* @Description TODO
*/
@RestController
@RequestMapping("/sapi/secondev/cbd/hrm/shift")
public class HrmShiftQueryOpenController {
private final Logger log = LoggerFactory.getLogger(HrmShiftQueryOpenController.class);
@Autowired
private HrmShiftQueryService hrmShiftQueryService;
@WeaPermission(publicPermission = true)
@PostMapping("/queryShiftList")
public WeaResult<Object> queryShiftList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.queryShiftList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@GetMapping("/getShiftList")
public WeaResult<Object> getShiftList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.queryShiftList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@PostMapping("/querySchedulingList")
public WeaResult<Object> querySchedulingList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.querySchedulingList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@GetMapping("/getSchedulingList")
public WeaResult<Object> getSchedulingList(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.querySchedulingList(paramJson);
return WeaResult.success(dataList);
}
@WeaPermission(publicPermission = true)
@PostMapping("/operateScheduling")
public WeaResult<Object> operateScheduling(@RequestBody JSONObject paramJson){
log.error("paramJson:{}",paramJson.toJSONString());
List<Map<String,Object>> dataList = hrmShiftQueryService.operateScheduling(paramJson);
return WeaResult.success(dataList);
}
}

View File

@ -0,0 +1,58 @@
package com.weaver.seconddev.chapanda.hrm.controller;
import com.weaver.common.authority.annotation.WeaPermission;
import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.framework.rpc.annotation.RpcReference;
import com.weaver.seconddev.chapanda.hrm.service.WorkflowCommonService;
import com.weaver.teams.domain.user.SimpleEmployee;
import com.weaver.teams.security.context.UserContext;
import com.weaver.workflow.core.api.rest.flow.entity.operate.WfcRequestDeleteParamDataEntity;
import com.weaver.workflow.core.api.rest.flow.entity.operate.WfcRequestOperationResultDto;
import com.weaver.workflow.core.api.rest.publicapi.WfcRequestOperateRest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@RestController
@RequestMapping("/api/secondev/chapanda/hrm/request")
public class WorkflowCommonController {
private final Logger log = LoggerFactory.getLogger(WorkflowCommonController.class);
@Autowired
private WorkflowCommonService workflowCommonService;
@RpcReference
WfcRequestOperateRest wfcRequestOperateRest;
@WeaPermission(publicPermission = true)
@GetMapping("/queryRequestDraftCount")
public WeaResult<Object> queryRequestDraftCount(HttpServletRequest request, HttpServletResponse response){
String employeeid = String.valueOf(request.getParameter("employeeid"));
log.error("employeeid:{}",employeeid);
String workflowid = String.valueOf(request.getParameter("workflowid"));
log.error("workflowid:{}",workflowid);
Map<String,Object> dataMap = workflowCommonService.queryRequestDraftCount(employeeid,workflowid);
return WeaResult.success(dataMap);
}
@WeaPermission(publicPermission = true)
@GetMapping("/deleteRequestDraft")
public WeaResult<WfcRequestOperationResultDto> deleteRequestDraft(HttpServletRequest request, HttpServletResponse response){
String requestid = String.valueOf(request.getParameter("requestid"));
SimpleEmployee simpleEmployee = UserContext.getCurrentUser();
WfcRequestDeleteParamDataEntity wfcDeleteData = new WfcRequestDeleteParamDataEntity();
wfcDeleteData.setRequestIds(requestid);
WeaResult<WfcRequestOperationResultDto> result =wfcRequestOperateRest.deleteFlow(wfcDeleteData,simpleEmployee);
return result;
}
}

View File

@ -0,0 +1,374 @@
package com.weaver.seconddev.chapanda.hrm.dao;
import com.weaver.common.elog.util.DateUtils;
import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity;
import com.weaver.seconddev.chapanda.hrm.constant.Constants;
import com.weaver.seconddev.chapanda.hrm.util.DatabaseUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@Component
public class HrmShiftQueryDao {
private final static Logger log = LoggerFactory.getLogger(HrmShiftQueryDao.class);
@Autowired
private DatabaseUtils databaseUtils;
/***
*
* @param type
* @param isStore
* @return
*/
public List<Map<String, Object>> queryShiftList(String type,String isStore){
String sourceType = "LOGIC";
String groupId = "weaver-ebuilder-form-service";
List<Map<String, Object>> recordList = new ArrayList<Map<String, Object>>();
try{
String dataSql =" select \n" +
" b.id, " +
" b.name, " +
" a.sfmdbc, " +
" a.fdjjrbc " +
" from e10_common.uf_kq_mdbcdy a\n" +
" inner join (select * from e10_other_business.attend_shift where delete_type=0 and tenant_key = ?) b on a.bc=b.id\n" +
" where a.sfmdbc = ? \n" +
" and a.fdjjrbc = ? \n" +
" and a.delete_type = 0 " +
" and a.tenant_key=?" ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(Constants.TENANT_KEY);
paramList.add(isStore);
paramList.add(type);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
Iterator<Map.Entry<String, Object>> iterator = result.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
log.error(" Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
recordList = databaseUtils.getDataSourceList(result);
}catch (Exception e){
log.error("e:" + e);
}
return recordList;
}
/***
*
* @param shiftid
* @return
*/
public List<Map<String,Object>> queryShiftTimeList(String shiftid){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
List<Map<String, Object>> recordList = new ArrayList<Map<String, Object>>();
try{
String dataSql =" select attend_start_time,attend_end_time\n" +
" from attend_period \n" +
" where delete_type=0 \n" +
" and attend_shift_id=? " +
" and tenant_key = ? " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(shiftid);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
recordList = databaseUtils.getDataSourceList(result);
log.error("recordList:{}",recordList.size());
}catch (Exception e){
log.error("e:" + e);
}
return recordList;
}
/***
*
* @param beginDate
* @param endDate
* @param empCode
* @return
*/
public List<Map<String, Object>> querySchedulingList(String beginDate,String endDate,String empCode){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
List<Map<String, Object>> recordList = new ArrayList<Map<String, Object>>();
try{
String dataSql =" select \n" +
" d.job_num, \n" +
" d.username, \n" +
" c.id bcid, \n" +
" c.name bcname, \n" +
" a.attend_date pbrq \n" +
" from (select * from e10_other_business.attend_scheduling where delete_type=0 and tenant_key = ?) a\n" +
" inner join (select * from e10_other_business.attend_config_range where delete_type=0 and entry_type='user' and tenant_key = ? ) b on a.range_id=b.id\n" +
" inner join (select * from e10_other_business.attend_shift where delete_type=0 and tenant_key = ? ) c on a.shift_id=c.id\n" +
" inner join (select * from eteams.employee where delete_type=0 and tenant_key = ? ) d on b.target_id=d.ID\n" +
" where a.attend_date >= ? \n" +
" and a.attend_date <= ? \n" +
" and d.job_num = ? and d.tenant_key = ? and d.delete_type=0 " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(Constants.TENANT_KEY);
paramList.add(Constants.TENANT_KEY);
paramList.add(Constants.TENANT_KEY);
paramList.add(Constants.TENANT_KEY);
paramList.add(beginDate);
paramList.add(endDate);
paramList.add(empCode);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
recordList = databaseUtils.getDataSourceList(result);
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
return recordList;
}
public String queryEmployeeIdByCode(String empCode){
String sourceType = "LOGIC";
String groupId = "weaver-ebuilder-form-service";
String employeeId = "";
try{
String dataSql =" select id from eteams.employee where job_num= ? and tenant_key = ? and delete_type=0 " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(empCode);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
if(recordList.size()>0){
employeeId = String.valueOf(recordList.get(0).get("id"));
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
return employeeId;
}
public String queryAttendConfig(String scId){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
String attendConfig = "";
try{
String dataSql =" select attend_config \n" +
" from attend_scheduling_shift \n" +
" where delete_type = 0 \n" +
" and attend_shift = ? and tenant_key = ? " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(scId);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("recordList:" + recordList.size());
if(recordList.size()>0){
attendConfig = String.valueOf(recordList.get(0).get("attend_config"));
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
return attendConfig;
}
public String queryRangeIdByconfigId(String employeeId,String attendConfig){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
String rangeId = "";
try{
String dataSql =" select id \n" +
" from attend_config_range\n" +
" where delete_type=0\n" +
" and target_id= ? \n" +
" and entry_type='user' \n" +
" and attend_config= ? and tenant_key = ? " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(employeeId);
paramList.add(attendConfig);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
if(recordList.size()>0){
rangeId = String.valueOf(recordList.get(0).get("id"));
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
return rangeId;
}
public String queryRangeCount(){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
String count = "0";
try{
String dataSql =" select count(1) as cou \n" +
" from attend_config_range\n" +
" where delete_type=0\n" +
" and entry_type='user' \n" +
" and tenant_key = ? " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
if(recordList.size()>0){
count = String.valueOf(recordList.get(0).get("cou"));
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
return count;
}
public void insertAttendConfigRange(Long id,String employeeId,String attendConfig,String sort_num){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
try{
String create_time = DateUtils.getCurrentDateString() + " " + DateUtils.getOnlyCurrentTimeString();
String dataSql =" insert into attend_config_range(id,target_id,entry_type,attend_config,tenant_key,create_time,update_time,delete_type,include_sub_dept,min_sec_level,max_sec_level,sort_num,creator) " +
" values(?,?,'user',?,?,?,?,0,0,-999,999,?,?)" ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(String.valueOf(id));
paramList.add(employeeId);
paramList.add(attendConfig);
paramList.add(Constants.TENANT_KEY);
paramList.add(create_time);
paramList.add(create_time);
paramList.add(sort_num);
paramList.add(Constants.SysUserId);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
Iterator<Map.Entry<String, Object>> iterator = result.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
log.error(" Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
}
public void insertAttendScheduling(Long id,String attendConfig,String attend_date,String range_id,String shift_id){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
try{
String create_time = DateUtils.getCurrentDateString() + " " + DateUtils.getOnlyCurrentTimeString();
String dataSql =" insert into attend_scheduling\n" +
"(id,attend_config_id,attend_date,range_id,shift_id,tenant_key,update_time,delete_type,create_time,creator) " +
"values(?,?,?,?,?,?,?,?,?,?)" ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(String.valueOf(id));
paramList.add(attendConfig);
paramList.add(attend_date);
paramList.add(range_id);
paramList.add(shift_id);
paramList.add(Constants.TENANT_KEY);
paramList.add(create_time);
paramList.add("0");
paramList.add(create_time);
paramList.add(Constants.SysUserId);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
Iterator<Map.Entry<String, Object>> iterator = result.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
log.error(" Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
}
public void deleteAttendScheduling(String attendDate,String shiftId,String attendConfig,String rangeId){
String sourceType = "LOGIC";
String groupId = "weaver-hr-service";
try{
String update_time = DateUtils.getCurrentDateString() + " " + DateUtils.getOnlyCurrentTimeString();
String dataSql =" update attend_scheduling\n" +
" set delete_type = 1,update_time = ? \n" +
" where ATTEND_DATE = ? \n" +
" and SHIFT_ID=? \n" +
" and ATTEND_CONFIG_ID=? \n" +
" and RANGE_ID=? and tenant_key = ? " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(update_time);
paramList.add(attendDate);
paramList.add(shiftId);
paramList.add(attendConfig);
paramList.add(rangeId);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
Iterator<Map.Entry<String, Object>> iterator = result.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
log.error(" Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
}
}

View File

@ -0,0 +1,66 @@
package com.weaver.seconddev.chapanda.hrm.dao;
import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity;
import com.weaver.seconddev.chapanda.hrm.constant.Constants;
import com.weaver.seconddev.chapanda.hrm.util.DatabaseUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
public class WorkflowCommonDao {
private final static Logger log = LoggerFactory.getLogger(WorkflowCommonDao.class);
@Autowired
private DatabaseUtils databaseUtils;
/***
* 获取eb表的appid和formid
* @param employeeid
* @param workflowid
* @return
*/
public String queryRequestDraftCount(String employeeid,String workflowid){
String sourceType = "LOGIC";
String groupId = "weaver-workflow-report-serviceworkflowreport";
String requestid = "";
try{
String dataSql =" select requestid \n" +
" from wfc_requestbase \n" +
" where flowstatus ='0'\n" +
" and creator =? \n" +
" and workflowid =? \n" +
" and delete_type=0\n" +
" and tenant_key =? \n" +
" order by create_time desc " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(employeeid);
paramList.add(workflowid);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("recordList:"+recordList.size());
if(recordList.size()>0){
requestid = String.valueOf(recordList.get(0).get("requestid"));
}
log.error("requestid:{}",requestid);
}catch (Exception e){
e.printStackTrace();
log.error("e:" + e);
}
return requestid;
}
}

View File

@ -0,0 +1,59 @@
package com.weaver.seconddev.chapanda.hrm.entity;
/**
* @author:dxfeng
* @createTime: 2025/08/04
* @version: 1.0
*/
public class CustomSchedulingPo {
private String jobNum;
private String username;
private String bcid;
private String bcname;
private String pbrq;
public String getJobNum() {
return jobNum;
}
public void setJobNum(String jobNum) {
this.jobNum = jobNum;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getBcid() {
return bcid;
}
public void setBcid(String bcid) {
this.bcid = bcid;
}
public String getBcname() {
return bcname;
}
public void setBcname(String bcname) {
this.bcname = bcname;
}
public String getPbrq() {
return pbrq;
}
public void setPbrq(String pbrq) {
this.pbrq = pbrq;
}
}

View File

@ -0,0 +1,48 @@
package com.weaver.seconddev.chapanda.hrm.entity;
/**
* @author:dxfeng
* @createTime: 2025/08/04
* @version: 1.0
*/
public class CustomShiftPo {
private String id;
private String name;
private String sfmdbc;
private String fdjjrbc;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSfmdbc() {
return sfmdbc;
}
public void setSfmdbc(String sfmdbc) {
this.sfmdbc = sfmdbc;
}
public String getFdjjrbc() {
return fdjjrbc;
}
public void setFdjjrbc(String fdjjrbc) {
this.fdjjrbc = fdjjrbc;
}
}

View File

@ -0,0 +1,29 @@
package com.weaver.seconddev.chapanda.hrm.entity;
/**
* @author:dxfeng
* @createTime: 2025/08/04
* @version: 1.0
*/
public class CustomShiftTimePo {
private String attendStartTime;
private String attendEndTime;
public String getAttendStartTime() {
return attendStartTime;
}
public void setAttendStartTime(String attendStartTime) {
this.attendStartTime = attendStartTime;
}
public String getAttendEndTime() {
return attendEndTime;
}
public void setAttendEndTime(String attendEndTime) {
this.attendEndTime = attendEndTime;
}
}

View File

@ -0,0 +1,49 @@
package com.weaver.seconddev.chapanda.hrm.mapper;
import com.weaver.seconddev.chapanda.hrm.entity.CustomSchedulingPo;
import com.weaver.seconddev.chapanda.hrm.entity.CustomShiftPo;
import com.weaver.seconddev.chapanda.hrm.entity.CustomShiftTimePo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2025/07/15
* @version: 1.0
*/
@Mapper
public interface HrmShiftQueryMapper {
/***
* 查询班次列表
* @param isStore
* @param type
* @param tenantKey
* @return
*/
List<CustomShiftPo> queryShiftList(@Param("isStore") String isStore, @Param("type") String type, @Param("tenantKey") String tenantKey);
/***
* 查询班次时间列表
* @param shiftId
* @param tenantKey
* @return
*/
List<CustomShiftTimePo> queryShiftTimeList(@Param("shiftId") String shiftId, @Param("tenantKey") String tenantKey);
/***
* 查询排班列表
* @param beginDate
* @param endDate
* @param empCode
* @param tenantKey
* @return
*/
List<CustomSchedulingPo> querySchedulingList(@Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("empCode") String empCode, @Param("tenantKey") String tenantKey);
}

View File

@ -0,0 +1,20 @@
package com.weaver.seconddev.chapanda.hrm.service;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
public interface HrmShiftQueryService {
List<Map<String,Object>> queryShiftList(JSONObject paramJson);
List<Map<String,Object>> querySchedulingList(JSONObject paramJson);
List<Map<String,Object>> operateScheduling(JSONObject paramJson);
}

View File

@ -0,0 +1,10 @@
package com.weaver.seconddev.chapanda.hrm.service;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public interface WorkflowCommonService {
Map<String,Object>queryRequestDraftCount(String employeeid,String workflowid);
}

View File

@ -0,0 +1,168 @@
package com.weaver.seconddev.chapanda.hrm.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.weaver.common.distribution.genid.IdGenerator;
import com.weaver.seconddev.chapanda.hrm.constant.Constants;
import com.weaver.seconddev.chapanda.hrm.dao.HrmShiftQueryDao;
import com.weaver.seconddev.chapanda.hrm.entity.CustomSchedulingPo;
import com.weaver.seconddev.chapanda.hrm.entity.CustomShiftPo;
import com.weaver.seconddev.chapanda.hrm.entity.CustomShiftTimePo;
import com.weaver.seconddev.chapanda.hrm.mapper.HrmShiftQueryMapper;
import com.weaver.seconddev.chapanda.hrm.service.HrmShiftQueryService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/***
* author:shil
*/
@Service
public class HrmShiftQueryServiceImpl implements HrmShiftQueryService {
private final Logger log = LoggerFactory.getLogger(HrmShiftQueryServiceImpl.class);
@Autowired
HrmShiftQueryMapper hrmShiftQueryMapper;
@Autowired
HrmShiftQueryDao hrmShiftQueryDao;
/***
* 查询班次列表
* @param paramJson
* @return
*/
@Override
public List<Map<String,Object>> queryShiftList(JSONObject paramJson) {
List<Map<String,Object>> shiftList = new ArrayList<Map<String,Object>>();
String type = paramJson.getString("type");
String isStore = paramJson.getString("isStore");
log.error("type:{}",type);
log.error("isStore:{}",isStore);
List<CustomShiftPo> dataList = hrmShiftQueryMapper.queryShiftList(isStore,type,Constants.TENANT_KEY);
log.error("dataList:{}",dataList.size());
for(int i=0;i<dataList.size();i++){
CustomShiftPo customShiftPo = dataList.get(i);
String id = customShiftPo.getId();
String name = customShiftPo.getName();
String sfmdbc = customShiftPo.getSfmdbc();
String fdjjrbc = customShiftPo.getFdjjrbc();
Map<String,Object> shiftMap = new HashMap<String,Object>();
shiftMap.put("scID",id);
shiftMap.put("scName",name);
shiftMap.put("type",fdjjrbc);
shiftMap.put("isStore",sfmdbc);
log.error("id:{}",dataList.size());
List<CustomShiftTimePo> attendList = hrmShiftQueryMapper.queryShiftTimeList(id,Constants.TENANT_KEY);
shiftMap.put("attend",attendList);
shiftList.add(shiftMap);
}
return shiftList;
}
/***
* 查询排班列表
* @param paramJson
* @return
*/
@Override
public List<Map<String,Object>> querySchedulingList(JSONObject paramJson) {
List<Map<String,Object>> shiftList = new ArrayList<Map<String,Object>>();
String beginDate = paramJson.getString("beginDate");
String endDate = paramJson.getString("endDate");
log.error("beginDate:{}",beginDate);
log.error("endDate:{}",endDate);
String empCodeStr = paramJson.getString("empCode");
log.error("empCodeStr:{}",empCodeStr);
JSONArray empCodeArray = new JSONArray();
if(StringUtils.isNotBlank(empCodeStr)){
empCodeArray = JSONArray.parseArray(empCodeStr);
}
log.error("empCodeArray:{}",empCodeArray.size());
for(int i=0;i<empCodeArray.size();i++){
String empCode = empCodeArray.getString(i);
log.error("empCode:{}",empCode);
List<CustomSchedulingPo> dataList = hrmShiftQueryMapper.querySchedulingList(beginDate,endDate,empCode,Constants.TENANT_KEY);
log.error("dataList:{}",dataList.size());
for(int k = 0;k<dataList.size();k++){
CustomSchedulingPo customSchedulingPo = dataList.get(k);
String scID = customSchedulingPo.getBcid();
String scName = customSchedulingPo.getBcname();
String scDate = customSchedulingPo.getPbrq();
String empCode_item = customSchedulingPo.getJobNum();
String empName = customSchedulingPo.getUsername();
Map<String,Object> shiftMap = new HashMap<String,Object>();
shiftMap.put("scID",scID);
shiftMap.put("scName",scName);
shiftMap.put("scDate",scDate);
shiftMap.put("empCode",empCode_item);
shiftMap.put("empName",empName);
List<CustomShiftTimePo> attendList = hrmShiftQueryMapper.queryShiftTimeList(scID,Constants.TENANT_KEY);
shiftMap.put("attend",attendList);
shiftList.add(shiftMap);
}
}
return shiftList;
}
public List<Map<String,Object>> operateScheduling(JSONObject paramJson) {
List<Map<String,Object>> dataList = new ArrayList<Map<String,Object>>();
Map<String,Object> map = new HashMap<String,Object>();
List<Map<String,Object>> shiftList = new ArrayList<Map<String,Object>>();
String operType = paramJson.getString("operType");
JSONArray dataArray = paramJson.getJSONArray("data");
for(int i=0;i<dataArray.size();i++){
JSONObject dataJson = dataArray.getJSONObject(i);
String empCode = dataJson.getString("empCode");
String scID = dataJson.getString("scID");
String scDate = dataJson.getString("scDate");
String employeeId = hrmShiftQueryDao.queryEmployeeIdByCode(empCode);
if(StringUtils.isNotBlank(employeeId)){
if(StringUtils.isNotBlank(scID)){
String attendConfig = hrmShiftQueryDao.queryAttendConfig(scID);
if(StringUtils.isNotBlank(attendConfig)){
String sort_num = hrmShiftQueryDao.queryRangeCount();
if(StringUtils.isNotBlank(sort_num)){
Long attend_config_rangeId = IdGenerator.generate();
hrmShiftQueryDao.insertAttendConfigRange(attend_config_rangeId,employeeId,attendConfig,sort_num);
String rangeId = hrmShiftQueryDao.queryRangeIdByconfigId(employeeId,attendConfig);
if(StringUtils.isBlank(rangeId)){
// 添加排班
if("1".equals(operType)){
Long attendSchedulingId = IdGenerator.generate();
hrmShiftQueryDao.insertAttendScheduling(attendSchedulingId,attendConfig,scDate,rangeId,scID);
}else if("2".equals(operType)){ // 修改排班
hrmShiftQueryDao.deleteAttendScheduling(scDate,scID,attendConfig,rangeId);
Long attendSchedulingId = IdGenerator.generate();
hrmShiftQueryDao.insertAttendScheduling(attendSchedulingId,attendConfig,scDate,rangeId,scID);
}else if("3".equals(operType)){ // 删除排班
hrmShiftQueryDao.deleteAttendScheduling(scDate,scID,attendConfig,rangeId);
}
}
}
}
}
}
}
return dataList;
}
}

View File

@ -0,0 +1,26 @@
package com.weaver.seconddev.chapanda.hrm.service.impl;
import com.weaver.seconddev.chapanda.hrm.dao.WorkflowCommonDao;
import com.weaver.seconddev.chapanda.hrm.service.WorkflowCommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/***
* author:shil
*/
@Service
public class WorkflowCommonServiceImpl implements WorkflowCommonService {
@Autowired
WorkflowCommonDao workflowCommonDao;
@Override
public Map<String,Object> queryRequestDraftCount(String employeeid, String workflowid) {
Map<String,Object> dataMap = new HashMap<String,Object>();
String requestid = workflowCommonDao.queryRequestDraftCount(employeeid,workflowid);
dataMap.put("requestid",requestid);
return dataMap;
}
}

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.weaver.seconddev.chapanda.hrm.mapper.HrmShiftQueryMapper">
<select id="queryShiftList" resultType="com.weaver.seconddev.chapanda.hrm.entity.CustomShiftPo">
select b.id,b.name,a.sfmdbc,a.fdjjrbc
from e10_common.uf_kq_mdbcdy a
inner join (select * from e10_other_business.attend_shift where delete_type=0 and tenant_key = #{tenantKey}) b on a.bc=b.id
where a.sfmdbc = #{isStore}
and a.fdjjrbc = #{type}
and a.delete_type = 0
and a.tenant_key= #{tenantKey}
</select>
<select id="queryShiftTimeList" resultType="com.weaver.seconddev.chapanda.hrm.entity.CustomShiftTimePo">
select attend_start_time as attendStartTime,attend_end_time as attendEndTime
from e10_other_business.attend_period
where delete_type=0
and attend_shift_id = #{shiftId}
and tenant_key = #{tenantKey}
</select>
<select id="querySchedulingList" resultType="com.weaver.seconddev.chapanda.hrm.entity.CustomSchedulingPo">
select d.job_num as jobNum,d.username,c.id bcid,c.name bcname,a.attend_date pbrq
from (select * from e10_other_business.attend_scheduling where delete_type=0 and tenant_key = #{tenantKey}) a
inner join (select * from e10_other_business.attend_config_range where delete_type=0 and entry_type='user' and tenant_key = #{tenantKey} ) b on a.range_id=b.id
inner join (select * from e10_other_business.attend_shift where delete_type=0 and tenant_key = #{tenantKey} ) c on a.shift_id=c.id
inner join (select * from eteams.employee where delete_type=0 and tenant_key = #{tenantKey} ) d on b.target_id=d.ID
where a.attend_date &gt;= #{beginDate}
and a.attend_date &lt;= #{endDate}
and d.job_num = #{empCode} and d.tenant_key = #{tenantKey} and d.delete_type=0
</select>
</mapper>