From ddb15606060b051d65808cc6a17696e38437bda4 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 12 Jun 2025 09:15:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E6=8E=92=E7=8F=AD=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91=20=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=8A=9F=E8=83=BD=E8=B0=83=E6=95=B4=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E3=80=81=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AttendanceSchedulingArchiveAction.java | 23 ++------ .../AttendanceSchedulingSubmitAction.java | 35 +++--------- .../AttendanceSchedulingController.java | 56 +------------------ .../service/AttendanceSchedulingService.java | 2 + .../impl/AttendanceSchedulingServiceImpl.java | 55 ++++++++++++++++++ 5 files changed, 71 insertions(+), 100 deletions(-) diff --git a/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingArchiveAction.java b/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingArchiveAction.java index ff37b94..77a6c48 100644 --- a/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingArchiveAction.java +++ b/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingArchiveAction.java @@ -74,27 +74,12 @@ public class AttendanceSchedulingArchiveAction implements EsbServerlessRpcRemote } - //String groupId = "weaver-ebuilder-app-service"; - //// String groupId = ""; - //String sql = "select t.id,form_data_id,ygid,ssyf from ft_ypbsp_mxb1 t where t.form_data_id='" + formDataId + "' and tenant_key = '" + tenantKey + "' and delete_type = 0"; - //log.error("sql:{}", sql); - //Map recordMap = new HashMap<>(); - //String sourceType = "LOGIC"; - // - //Map result = databaseUtils.execute(sourceType, groupId, sql); - //List> recordList = databaseUtils.getDataSourceList(result); - // - //for (Map record : recordList) { - // log.error("record===>{}", record); - // String id = Convert.toStr(record.get("id")); - //} - log.error("formDataId:{}", formDataId); return WeaResult.success(); - } catch (Throwable t) { // 改为捕获所有Throwable - log.error("执行异常", t); // 打印完整堆栈 - t.printStackTrace(); // 补充控制台输出 - return WeaResult.fail("操作失败111: " + t.getMessage()); + } catch (Throwable t) { + log.error("执行异常", t); + t.printStackTrace(); + return WeaResult.fail("操作失败: " + t.getMessage()); } } } diff --git a/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingSubmitAction.java b/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingSubmitAction.java index dd89580..4a292d2 100644 --- a/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingSubmitAction.java +++ b/src/main/java/com/weaver/seconddev/attend/action/AttendanceSchedulingSubmitAction.java @@ -36,12 +36,9 @@ public class AttendanceSchedulingSubmitAction implements EsbServerlessRpcRemoteI try { log.error("params=>20250610:{}", params); - //用户employeeId - //Long employeeId = currentUser.getEmployeeId(); - //租户key - //String tenantKey = currentUser.getTenantKey(); Long formDataId = Convert.toLong(params.get("requestId")); Long employeeId = Convert.toLong(params.get("employeeId")); + String status = Convert.toStr(params.get("status")); log.error("employeeId:{}", employeeId); WeaUser user = OrgUtil.getUser(employeeId); String tenantKey1 = user.getTenantKey(); @@ -64,15 +61,15 @@ public class AttendanceSchedulingSubmitAction implements EsbServerlessRpcRemoteI // 更新状态 SchedulingStatusPo.buildBaseFields(schedulingStatus, true, user); // 审批中 - schedulingStatus.setStatus("1"); - schedulingStatusMapper.updateStatusById(schedulingStatus.getId(), "1"); + schedulingStatus.setStatus(status); + schedulingStatusMapper.updateStatusById(schedulingStatus.getId(), status); log.error("===数据更新完成===>{}", JSON.toJSONString(schedulingStatus)); } else { log.error("===数据插入==="); // 插入数据 schedulingStatus = new SchedulingStatusPo(); // 审批中 - schedulingStatus.setStatus("1"); + schedulingStatus.setStatus(status); schedulingStatus.setMonth(preSchedulingDetailPo.getMonth()); schedulingStatus.setEmployeeId(preSchedulingDetailPo.getEmployeeId()); SchedulingStatusPo.buildBaseFields(schedulingStatus, false, user); @@ -82,28 +79,12 @@ public class AttendanceSchedulingSubmitAction implements EsbServerlessRpcRemoteI } } - - //String groupId = "weaver-ebuilder-app-service"; - //// String groupId = ""; - //String sql = "select t.id,form_data_id,ygid,ssyf from ft_ypbsp_mxb1 t where t.form_data_id='" + formDataId + "' and tenant_key = '" + tenantKey + "' and delete_type = 0"; - //log.error("sql:{}", sql); - //Map recordMap = new HashMap<>(); - //String sourceType = "LOGIC"; - // - //Map result = databaseUtils.execute(sourceType, groupId, sql); - //List> recordList = databaseUtils.getDataSourceList(result); - // - //for (Map record : recordList) { - // log.error("record===>{}", record); - // String id = Convert.toStr(record.get("id")); - //} - log.error("formDataId:{}", formDataId); return WeaResult.success(); - } catch (Throwable t) { // 改为捕获所有Throwable - log.error("执行异常", t); // 打印完整堆栈 - t.printStackTrace(); // 补充控制台输出 - return WeaResult.fail("操作失败111: " + t.getMessage()); + } catch (Throwable t) { + log.error("执行异常", t); + t.printStackTrace(); + return WeaResult.fail("操作失败: " + t.getMessage()); } } } diff --git a/src/main/java/com/weaver/seconddev/attend/controller/AttendanceSchedulingController.java b/src/main/java/com/weaver/seconddev/attend/controller/AttendanceSchedulingController.java index a3d604c..ca4aaa3 100644 --- a/src/main/java/com/weaver/seconddev/attend/controller/AttendanceSchedulingController.java +++ b/src/main/java/com/weaver/seconddev/attend/controller/AttendanceSchedulingController.java @@ -1,11 +1,5 @@ package com.weaver.seconddev.attend.controller; -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; import com.weaver.common.authority.annotation.WeaPermission; import com.weaver.common.base.entity.result.WeaResult; import com.weaver.seconddev.attend.entity.po.SchedulingStatusPo; @@ -15,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Map; @@ -35,58 +28,13 @@ public class AttendanceSchedulingController { AttendanceSchedulingService attendanceSchedulingService; @PostMapping("/dealSaveParams") - public WeaResult dealSaveParams( @RequestBody Map params) { + public WeaResult dealSaveParams(@RequestBody Map params) { return attendanceSchedulingService.dealSaveParams(params); } @PostMapping("/saveChoseFirstShiftSec") public String saveChoseFirstShiftSec(@RequestHeader Map header, @RequestBody Map body) { - log.error("======saveChoseFirstShiftSec========="); - String result = ""; - - //1、before callApi - //在调用接口前 可以做一些前置操作 - - - //2、调用实际api - String origin = header.get("origin");//系统地址 - String realUrl = String.valueOf(body.get("realUrl"));//数据接口 - String url = origin + realUrl; - log.error("url===" + url); - - String bodyStr = JSON.toJSONString(body); - log.error("bodyStr===" + bodyStr); - String resultStr = HttpRequest.post(url).headerMap(header, true).body(bodyStr).execute().body(); - log.error("resultStr===" + resultStr); - //3、after callApi - //对返回的数据做加工 - JSONObject resultObj = JSON.parseObject(resultStr); - JSONObject data = resultObj.getJSONObject("data"); - - //for (Object o : data.getJSONArray("listDataGroup")) { - // JSONObject group = (JSONObject) o; - // group.put("typename", group.getString("typename") + "_二开"); - //} - - return JSON.toJSONString(resultObj); - - } - - public static String removeKeyFromJson(String jsonString, String keyToRemove) throws IOException { - // 创建 ObjectMapper 实例,用于处理 JSON 数据 - ObjectMapper objectMapper = new ObjectMapper(); - // 将 JSON 字符串解析为 JsonNode 对象 - JsonNode rootNode = objectMapper.readTree(jsonString); - - // 检查根节点是否为 ObjectNode - if (rootNode instanceof ObjectNode) { - ObjectNode objectNode = (ObjectNode) rootNode; - // 移除指定的 key - objectNode.remove(keyToRemove); - } - - // 将修改后的 JsonNode 对象转换为 JSON 字符串 - return objectMapper.writeValueAsString(rootNode); + return attendanceSchedulingService.saveChoseFirstShiftSec(header, body); } diff --git a/src/main/java/com/weaver/seconddev/attend/service/AttendanceSchedulingService.java b/src/main/java/com/weaver/seconddev/attend/service/AttendanceSchedulingService.java index c689ebe..cef6426 100644 --- a/src/main/java/com/weaver/seconddev/attend/service/AttendanceSchedulingService.java +++ b/src/main/java/com/weaver/seconddev/attend/service/AttendanceSchedulingService.java @@ -23,5 +23,7 @@ public interface AttendanceSchedulingService { WeaResult dealSaveParams(Map params); + String saveChoseFirstShiftSec(Map header,Map body); + } diff --git a/src/main/java/com/weaver/seconddev/attend/service/impl/AttendanceSchedulingServiceImpl.java b/src/main/java/com/weaver/seconddev/attend/service/impl/AttendanceSchedulingServiceImpl.java index 440897a..516a8a3 100644 --- a/src/main/java/com/weaver/seconddev/attend/service/impl/AttendanceSchedulingServiceImpl.java +++ b/src/main/java/com/weaver/seconddev/attend/service/impl/AttendanceSchedulingServiceImpl.java @@ -1,6 +1,7 @@ package com.weaver.seconddev.attend.service.impl; import cn.hutool.core.convert.Convert; +import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -321,4 +322,58 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ return WeaResult.success(JSON.toJSONString(selectedObjMapMap)); } + + @Override + public String saveChoseFirstShiftSec(Map header, Map body) { + log.error("======saveChoseFirstShiftSec========="); + String result = ""; + + //1、before callApi + //在调用接口前 可以做一些前置操作 + + + //2、调用实际api + String origin = header.get("origin"); + String realUrl = String.valueOf(body.get("realUrl")); + String url = origin + realUrl; + log.error("url===" + url); + + // 处理body参数 + + String bodyStr = JSON.toJSONString(body); + JSONObject jsonObject = JSONObject.parseObject(bodyStr); + String month = jsonObject.getString("month"); + String selectedObjMap = jsonObject.getString("selectedObjMap"); + + Map selectedObjMapMap = JSON.parseObject(selectedObjMap, Map.class); + Set keySet = selectedObjMapMap.keySet(); + String tenantKey = UserContext.getCurrentUser().getTenantKey(); + // 使用迭代器安全删除元素 + Iterator iterator = keySet.iterator(); + while (iterator.hasNext()) { + String key = iterator.next(); + SchedulingStatusPo schedulingStatus = schedulingStatusMapper.getByCondition(tenantKey, Long.valueOf(key), month); + if (schedulingStatus != null && ("1".equals(schedulingStatus.getStatus()) || "2".equals(schedulingStatus.getStatus()))) { + log.error("schedulingStatus===保存时不处理该条数据===>{}", schedulingStatus); + iterator.remove(); + } + } + + if (selectedObjMapMap.size() == 0) { + WeaResult fail = WeaResult.fail("审批中、已审核状态下无法修改"); + return JSON.toJSONString(fail); + } + // 更新请求参数 + jsonObject.put("selectedObjMap", selectedObjMapMap); + + log.error("bodyStr===" + bodyStr); + String resultStr = HttpRequest.post(url).headerMap(header, true).body(jsonObject.toJSONString()).execute().body(); + log.error("resultStr===" + resultStr); + //3、after callApi + + + JSONObject resultObj = JSON.parseObject(resultStr); + log.error("resultObj===" + resultObj); + return JSON.toJSONString(resultObj); + } }