generated from dxfeng/secondev_zjzlt
考勤汇总表审批流程发起
This commit is contained in:
parent
3b78050547
commit
fe2d0322dd
|
|
@ -48,6 +48,11 @@ public class AttendanceSchedulingController {
|
|||
return attendanceSchedulingService.createFlowV2(params);
|
||||
}
|
||||
|
||||
@PostMapping("/createSummaryApprovalFlow")
|
||||
private WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(@RequestBody Map<String, String> params) throws UnsupportedEncodingException {
|
||||
return attendanceSchedulingService.createSummaryApprovalFlow(params);
|
||||
}
|
||||
|
||||
@PostMapping("/updateAttendStatus")
|
||||
private WeaResult<Map<String, Object>> updateAttendStatus(@RequestBody Map<String, String> params) throws UnsupportedEncodingException {
|
||||
return attendanceSchedulingService.updateAttendStatus(params);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.weaver.seconddev.attend.entity.param;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2025/06/13
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class SummaryApprovalParam {
|
||||
private String fieldName;
|
||||
private String fieldKey;
|
||||
private Long fieldId;
|
||||
private String rowKey;
|
||||
}
|
||||
|
|
@ -28,5 +28,8 @@ public interface AttendanceSchedulingService {
|
|||
String saveSheet(Map<String, String> header,Map<String, Object> body);
|
||||
|
||||
|
||||
WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(Map<String, String> params) throws UnsupportedEncodingException;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,12 @@ import com.weaver.common.batch.excel.ExcelUtil;
|
|||
import com.weaver.common.batch.excel.RowData;
|
||||
import com.weaver.common.form.dto.data.FormDataDetailDto;
|
||||
import com.weaver.common.form.dto.data.FormDataDto;
|
||||
import com.weaver.common.form.dto.data.FormDataDtoParam;
|
||||
import com.weaver.common.form.dto.data.FormDataOptionDto;
|
||||
import com.weaver.common.form.metadata.ModuleSource;
|
||||
import com.weaver.common.hrm.dao.HrmCommonEmployeeDao;
|
||||
import com.weaver.framework.rpc.annotation.RpcReference;
|
||||
import com.weaver.seconddev.attend.entity.param.SummaryApprovalParam;
|
||||
import com.weaver.seconddev.attend.entity.po.SchedulingStatusPo;
|
||||
import com.weaver.seconddev.attend.mapper.AttendanceSchedulingMapper;
|
||||
import com.weaver.seconddev.attend.mapper.SchedulingStatusMapper;
|
||||
|
|
@ -451,12 +453,12 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
if (StringUtils.isNotBlank(workCode) && !"-".equals(workCode)) {
|
||||
List<SimpleEmployee> byJobNums = hrmCommonEmployeeDao.getByJobNums(Collections.singletonList(workCode), tenantKey);
|
||||
if (CollectionUtils.isEmpty(byJobNums)) {
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + i + "行未查询到对应人员,工号[" + workCode + "]");
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + (i + 1) + "行未查询到对应人员,工号[" + workCode + "]");
|
||||
return JSON.toJSONString(fail);
|
||||
}
|
||||
|
||||
if (byJobNums.size() > 1) {
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + i + "行工号不唯一,工号[" + workCode + "]");
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + (i + 1) + "行工号不唯一,工号[" + workCode + "]");
|
||||
return JSON.toJSONString(fail);
|
||||
}
|
||||
SimpleEmployee simpleEmployee = byJobNums.get(0);
|
||||
|
|
@ -464,12 +466,12 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
} else {
|
||||
List<SimpleEmployee> byUserNames = hrmCommonEmployeeDao.getByUserNames(Collections.singletonList(empName), tenantKey);
|
||||
if (CollectionUtils.isEmpty(byUserNames)) {
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + i + "行未查询到对应人员,人员[" + empName + "]");
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + (i + 1) + "行未查询到对应人员,人员[" + empName + "]");
|
||||
return JSON.toJSONString(fail);
|
||||
}
|
||||
|
||||
if (byUserNames.size() > 1) {
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + i + "行人员不唯一,人员[" + empName + "]");
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + (i + 1) + "行人员不唯一,人员[" + empName + "]");
|
||||
return JSON.toJSONString(fail);
|
||||
}
|
||||
SimpleEmployee simpleEmployee = byUserNames.get(0);
|
||||
|
|
@ -480,10 +482,10 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
SchedulingStatusPo schedulingStatus = schedulingStatusMapper.getByCondition(tenantKey, employeeId, month);
|
||||
if (schedulingStatus != null) {
|
||||
if ("1".equals(schedulingStatus.getStatus())) {
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + i + "行排班审核中,无法修改");
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + (i + 1) + "行排班审核中,无法修改");
|
||||
return JSON.toJSONString(fail);
|
||||
} else if ("2".equals(schedulingStatus.getStatus())) {
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + i + "行排班已审核,无法修改");
|
||||
WeaResult<Object> fail = WeaResult.fail("第" + (i + 1) + "行排班已审核,无法修改");
|
||||
return JSON.toJSONString(fail);
|
||||
}
|
||||
}
|
||||
|
|
@ -501,4 +503,133 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ
|
|||
return JSON.toJSONString(resultObj);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeaResult<WfcRequestOperationResultDto> createSummaryApprovalFlow(Map<String, String> params) throws UnsupportedEncodingException {
|
||||
String workflowId = params.get("workflowId");
|
||||
String formId = params.get("formId");
|
||||
String detailData = params.get("detailData");
|
||||
String month = params.get("month");
|
||||
|
||||
WfcRequestOperateParamDataEntity wfcRequestOperateParamDataEntity = new WfcRequestOperateParamDataEntity();
|
||||
wfcRequestOperateParamDataEntity.setWorkflowId(Long.parseLong(workflowId));
|
||||
Map<String, String> mainFieldsMap = new HashMap<>();
|
||||
// 考勤月份
|
||||
mainFieldsMap.put("kqyf", "1144947056082575373");
|
||||
|
||||
List<SummaryApprovalParam> summaryApprovalParams = new ArrayList<>();
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("姓名", "xm", 1144947283791339524L, "empId"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("工号", "gh", 1144947283791339526L, "jobNum"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("分部", "fb", 1144947532958162959L, "subcompanyId"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("部门", "bm", 1144947532958162960L, "deptId"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("岗位", "gw", 1144947532958162961L, "positionId"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("安全级别", "aqjb", 1144947532958162962L, "seclevel"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("入职时间", "rzsj", 1144947532958162963L, "workdate"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("应出勤工时", "ycqgs", 1144947988124033028L, "working"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("出勤工时", "cqgs", 1144947988124033029L, "actual"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("出勤天数(打卡)", "cqtsdk", 1144949061983297536L, "actualByTimecard"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("实际打卡工时", "sjdkgs", 1144949061983297537L, "actualWork"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("迟到工时", "cdgs", 1144949061983297538L, "lateLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("迟到次数", "cdcs", 1144949061983297539L, "lateNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("严重迟到工时", "yzcdgs", 1144949061983297540L, "seriouslyLateLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("严重迟到次数", "yzcdcs", 1144949117608157195L, "seriousLateNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("早退工时", "ztgs", 1144949117608157196L, "earlyOutLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("早退次数", "ztcs", 1144949117608157197L, "leaveEarlyNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("严重早退工时", "yzztgs", 1144949117608157198L, "seriouslyEarlyLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("严重早退次数", "yzztcs", 1144949117608157199L, "seriousEarlyNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("未出勤工时", "wcqgs", 1144949491362586625L, "lostLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("旷工工时", "kggs", 1144949491362586626L, "absenteeismLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("旷工次数", "kgcs", 1144949491362586627L, "absentNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("签到次数", "qdcs", 1144949491362586628L, "SIGN_IN_RECORD"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("签退次数", "qtcs", 1144949491362586629L, "SIGN_OUT_RECORD"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("外勤次数", "wqcs", 1144949641652887553L, "oAttendNum"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("外勤时长", "wqsz", 1144949641652887554L, "oAttendLength"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("工作日出差", "gzrcc", 1144949641652887555L, "bTnormal"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("周末出差", "zmcc", 1144949641652887556L, "bTweekend"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("节假日出差", "jjrcc", 1144949641652887557L, "bTholiday"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("工作日公出", "gzrgc", 1144949744774045697L, "oSnormal"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("周末公出", "zmgc", 1144949744774045698L, "oSweekend"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("节假日公出", "jjrgc", 1144949744774045699L, "oSholiday"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("事假", "sj", 1144949744774045700L, "leaveHour8443762179122157788"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("丧假", "sj1", 1144949744774045701L, "leaveHour8443762179149957809"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("产假", "cj", 1144950285931536385L, "leaveHour8443762179149957807"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("婚假", "hj", 1144950285931536386L, "leaveHour8443762179149957805"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("调休", "dx", 1144950285931536387L, "leaveHour8443762179149457801"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("病假", "bj", 1144950285931536388L, "leaveHour8443762179149457799"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("年休假", "nxj", 1144950285931536389L, "leaveHour8443762179122457790"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("陪产假", "pcj", 1144950363299667978L, "leaveHour1127871967101444097"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("计生假", "jsj", 1144950363299667979L, "leaveHour1127872057295757312"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("哺乳假", "brj", 1144950363299667980L, "leaveHour1127872117173641218"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("探亲假", "tqj", 1144950363299667981L, "leaveHour1127872194575327234"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("工伤假", "gsj", 1144950363299667982L, "leaveHour1127872289131716608"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("育儿假", "yej", 1144950461924532226L, "leaveHour1127873989888434176"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("赡养费", "syj", 1144950461924532227L, "leaveHour1127874024155897865"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("工作日加班(不关联调休)", "gzrjbbgldx", 1144950461924532228L, "nlieu_normal"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("双休日加班(不关联调休)", "sxrjbbgldx", 1144950461924532229L, "nlieu_weekend"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("节假日加班(不关联调休)", "jjrjbbgldx", 1144950461924532230L, "nlieu_holiday"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("工作日加班(关联调休)", "gzrjbgldx", 1144950543713460224L, "lieu_normal"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("双休日加班(关联调休)", "sxrjbgldx", 1144950543713460225L, "lieu_weekend"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("节假日加班(关联调休)", "jjrjbgldx", 1144950543713460226L, "lieu_holiday"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("未签到次数", "wqdcs", 1144950543713460227L, "absenseNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("未签退次数", "wqtcs", 1144950543713460228L, "unSignOutNumOfMonth"));
|
||||
summaryApprovalParams.add(new SummaryApprovalParam("未打卡次数", "wdkcs", 1144950818599755777L, "unSignNum"));
|
||||
|
||||
|
||||
//表单字段集合
|
||||
List<FormDataDetailDto> formDataDetailDtos = new ArrayList<>();
|
||||
|
||||
// 构建主表字段
|
||||
FormDataDetailDto monthDetailDto = new FormDataDetailDto();
|
||||
monthDetailDto.setFieldId(Long.valueOf(mainFieldsMap.get("kqyf")));
|
||||
monthDetailDto.setContent(month);
|
||||
formDataDetailDtos.add(monthDetailDto);
|
||||
|
||||
// 构建明细表数据
|
||||
String decode = URLDecoder.decode(detailData, "UTF-8");
|
||||
User currentUser = UserContext.getCurrentUser();
|
||||
|
||||
JSONArray detailDataArray = JSON.parseArray(decode);
|
||||
for (int rorIndex = 0; rorIndex < detailDataArray.size(); rorIndex++) {
|
||||
int rowNum = rorIndex + 1;
|
||||
JSONObject detailRow = detailDataArray.getJSONObject(rorIndex);
|
||||
|
||||
for (SummaryApprovalParam param : summaryApprovalParams) {
|
||||
String content = detailRow.getString(param.getRowKey());
|
||||
if (StringUtils.isBlank(content)) {
|
||||
// 如果为空,置为null
|
||||
content = null;
|
||||
}
|
||||
FormDataDetailDto detailDto = new FormDataDetailDto();
|
||||
detailDto.setFieldId(param.getFieldId());
|
||||
detailDto.setDataIndex((long) rowNum);
|
||||
detailDto.setContent(content);
|
||||
formDataDetailDtos.add(detailDto);
|
||||
}
|
||||
|
||||
log.error("formDataDetailDtos==" + JSON.toJSONString(formDataDetailDtos));
|
||||
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(formDataDetailDtos)) {
|
||||
return WeaResult.fail("请选择数据后进行提交");
|
||||
}
|
||||
|
||||
|
||||
//表单数据
|
||||
FormDataDto formDataDto = new FormDataDto();
|
||||
formDataDto.setFormId(Long.valueOf(formId));
|
||||
formDataDto.setDataDetails(formDataDetailDtos);
|
||||
|
||||
FormDataDtoParam formDataDtoParam = new FormDataDtoParam();
|
||||
formDataDtoParam.setFormDataDtos(Collections.singletonList(formDataDto));
|
||||
formDataDtoParam.setFormId(Long.valueOf(formId));
|
||||
|
||||
WeaResult<WfcRequestOperationResultDto> flow =
|
||||
wfcRequestOperateRest.createFlowV2(wfcRequestOperateParamDataEntity, UserContext.getCurrentUser(), formDataDtoParam);
|
||||
|
||||
//WeaResult<WfcRequestOperationResultDto> flow =
|
||||
// wfcRequestOperateRest.createFlow(wfcRequestOperateParamDataEntity, UserContext.getCurrentUser(), formDataDto);
|
||||
return flow;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue