diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/controller/HrmTravelReqController.java b/fad-hrm/src/main/java/com/ruoyi/hrm/controller/HrmTravelReqController.java index 0dce55d..7f624fa 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/controller/HrmTravelReqController.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/controller/HrmTravelReqController.java @@ -11,6 +11,7 @@ import com.ruoyi.hrm.domain.bo.HrmTravelReqBo; import com.ruoyi.hrm.domain.vo.HrmTravelReqVo; import com.ruoyi.hrm.service.IHrmTravelReqService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -31,6 +32,12 @@ public class HrmTravelReqController extends BaseController { private final IHrmTravelReqService service; private final IHrmTravelReqService hrmTravelReqService; + @Value("${fad.amap.webkey}") + private String amapKey; + + @Value("${fad.amap.securitykey}") + private String amapSecurityKey; + @GetMapping("/list") public TableDataInfo list(HrmTravelReqBo bo, PageQuery pageQuery) { return service.queryPageList(bo, pageQuery); @@ -63,6 +70,16 @@ public class HrmTravelReqController extends BaseController { return toAjax(hrmTravelReqService.earlyEnd(bizId)); } + @GetMapping("/amapKey") + public R getAmapKey() { + return R.ok(amapKey); + } + + @GetMapping("/amapSecurityKey") + public R getAmapSecurityKey() { + return R.ok(amapSecurityKey); + } + @GetMapping("/all") public R> all(HrmTravelReqBo bo) { return R.ok(service.queryList(bo)); diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java index 73a5ce4..f2a945d 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java @@ -13,10 +13,12 @@ import com.ruoyi.hrm.domain.*; import com.ruoyi.hrm.domain.bo.HrmFlowTaskBo; import com.ruoyi.hrm.domain.bo.HrmSealStampBo; import com.ruoyi.hrm.domain.vo.HrmFlowTaskVo; +import com.ruoyi.hrm.domain.vo.HrmEmployeeVo; import com.ruoyi.hrm.mapper.*; import com.ruoyi.hrm.service.IHrmFlowTaskService; import com.ruoyi.hrm.service.IHrmSealReqService; import com.ruoyi.hrm.service.IHrmFlowCcService; +import com.ruoyi.hrm.service.IHrmEmployeeService; import com.ruoyi.hrm.domain.bo.HrmFlowCcBo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -47,6 +49,7 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { private final HrmAppropriationReqMapper appropriationReqMapper; private final ObjectMapper objectMapper; // Spring Boot 默认提供 private final UserService userService; + private final IHrmEmployeeService employeeService; @Override public HrmFlowTaskVo queryById(Long taskId) { @@ -74,7 +77,7 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { return tasks; } - private void fillBizData(List tasks) { +private void fillBizData(List tasks) { // 1. 按 bizType 分组,并收集 bizId Map> bizIdsByType = tasks.stream() .filter(t -> t.getBizType() != null && t.getBizId() != null) @@ -90,19 +93,39 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { if (bizIds.isEmpty()) return; switch (bizType) { case "leave": - leaveReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("leave_" + d.getBizId(), d)); + leaveReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("leave_" + d.getBizId(), dataMap); + }); break; case "travel": - travelReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("travel_" + d.getBizId(), d)); + travelReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("travel_" + d.getBizId(), dataMap); + }); break; case "seal": - sealReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("seal_" + d.getBizId(), d)); + sealReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("seal_" + d.getBizId(), dataMap); + }); break; case "reimburse": - reimburseReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("reimburse_" + d.getBizId(), d)); + reimburseReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("reimburse_" + d.getBizId(), dataMap); + }); break; case "appropriation": - appropriationReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("appropriation_" + d.getBizId(), d)); + appropriationReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("appropriation_" + d.getBizId(), dataMap); + }); break; } }); @@ -112,13 +135,20 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { String key = task.getBizType() + "_" + task.getBizId(); Object data = bizDataMap.get(key); if (data != null) { - // 将实体对象转换为 Map,方便前端使用 - Map dataMap = objectMapper.convertValue(data, Map.class); - task.setBizData(dataMap); + task.setBizData((Map) data); } }); } + private void fillEmpName(Map dataMap, Long empId) { + if (empId != null) { + HrmEmployeeVo emp = employeeService.queryById(empId); + if (emp != null && emp.getEmpName() != null) { + dataMap.put("empName", emp.getEmpName()); + } + } + } + @Override @Transactional(rollbackFor = Exception.class) @@ -416,6 +446,11 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { if (result.getRecords() != null && !result.getRecords().isEmpty()) { fillBizData(result.getRecords()); + result.getRecords().forEach(task -> { + if (task.getAssigneeUserId() != null) { + task.setAssigneeNickName(userService.selectNickNameById(task.getAssigneeUserId())); + } + }); } return TableDataInfo.build(result); diff --git a/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml b/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml index 04763e6..c6d8593 100644 --- a/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml +++ b/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml @@ -51,12 +51,13 @@ SELECT e.emp_id, e.user_id, e.emp_no, e.emp_name, e.gender, e.mobile, e.email, e.id_no, - e.hire_date, e.employment_type, e.status, e.dept_id, e.post_id, e.remark, + e.hire_date, e.employment_type, e.status, su.dept_id, e.post_id, e.remark, e.create_by, e.create_time, e.update_by, e.update_time, d.dept_name, p.post_name FROM hrm_employee e - LEFT JOIN sys_dept d ON e.dept_id = d.dept_id AND d.del_flag = '0' + left join sys_user su on su.user_id = e.user_id + LEFT JOIN sys_dept d ON su.dept_id = d.dept_id AND d.del_flag = 0 LEFT JOIN sys_post p ON e.post_id = p.post_id WHERE e.del_flag = 0 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index c89b963..bd87293 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -319,8 +319,12 @@ flowable: check-process-definitions: false # 关闭历史任务定时任务job async-history-executor-activate: false - fad: amap: - key: 978ae5bc551f57d172d3e397af5a6f67 \ No newline at end of file + # 留作后端接口调用(服务 API)的 Key + key: 978ae5bc551f57d172d3e397af5a6f67 + # 新增的前端 Web 端使用的 Key 和安全密钥 + webKey: 34bf20d1db5b183558b9bb85d6eed783 + securityKey: 6f9171724396deb5f8c42ef256b3cbc5 + diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 59b6547..3939739 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -37,6 +37,7 @@ "url": "https://gitee.com/KonBAI-Q/ruoyi-flowable-plus.git" }, "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", "@babel/parser": "7.7.4", "@handsontable/vue": "^15.3.0", "@jiaminghi/data-view": "^2.10.0", diff --git a/ruoyi-ui/public/index.html b/ruoyi-ui/public/index.html index 4d71211..e620b14 100644 --- a/ruoyi-ui/public/index.html +++ b/ruoyi-ui/public/index.html @@ -10,6 +10,7 @@ <%= webpackConfig.name %> + \ No newline at end of file diff --git a/ruoyi-ui/src/views/hrm/requests/travel.vue b/ruoyi-ui/src/views/hrm/requests/travel.vue index f6ffcf3..9edd6b0 100644 --- a/ruoyi-ui/src/views/hrm/requests/travel.vue +++ b/ruoyi-ui/src/views/hrm/requests/travel.vue @@ -65,8 +65,8 @@ - -
请填写具体目的地,便于审批人判断出差必要性
+ +
请通过地图或搜索选择具体城市,便于审批人判断出差必要性
出差说明
@@ -223,13 +223,15 @@ import { ccFlowTask, listFlowNode, listFlowTemplate } from '@/api/hrm/flow' import FileUpload from '@/components/FileUpload' import UserMultiSelect from '@/components/UserSelect/multi.vue' import UserSelect from '@/components/UserSelect/single.vue' +import AmapCitySelect from '@/components/AmapCitySelect/index.vue' export default { name: 'HrmTravelRequest', components: { UserSelect, FileUpload, - UserMultiSelect + UserMultiSelect, + AmapCitySelect }, data () { return {