From bc9712fd848643a9e0da67fd01820ed0f4682117 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 3 Dec 2024 18:53:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=9F=A9=E9=98=B5=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=8F=AF=E4=BB=A5=E6=9F=A5=E7=9C=8B=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=88=96=E4=BA=BA=E5=91=98=E7=9A=84=E5=87=BA?= =?UTF-8?q?=E5=8B=A4=E6=95=B0=E6=8D=AE=20=EF=BC=88=E5=8C=85=E6=8B=AC?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E6=97=A5=E6=9C=9F=E7=9A=84=E7=8F=AD=E6=AC=A1?= =?UTF-8?q?=E7=AD=9B=E9=80=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aisin/entity/KqStatisticsItemVo.java | 34 ++++++++++++++ .../engine/aisin/entity/KqStatisticsVo.java | 34 ++++++++++++++ .../aisin/service/AccessCustomService.java | 4 +- .../service/impl/AccessCustomServiceImpl.java | Bin 4246 -> 5842 bytes .../engine/aisin/web/AccessCustomAction.java | 2 +- src/com/engine/kq/wfset/util/KQFlowUtil.java | 1 + src/test/MainTest.java | 42 ++++++++++++------ .../aisin/cron/KqConfirmWfCrob.java | 18 ++++---- 8 files changed, 112 insertions(+), 23 deletions(-) create mode 100644 src/com/engine/aisin/entity/KqStatisticsItemVo.java create mode 100644 src/com/engine/aisin/entity/KqStatisticsVo.java diff --git a/src/com/engine/aisin/entity/KqStatisticsItemVo.java b/src/com/engine/aisin/entity/KqStatisticsItemVo.java new file mode 100644 index 0000000..89aa339 --- /dev/null +++ b/src/com/engine/aisin/entity/KqStatisticsItemVo.java @@ -0,0 +1,34 @@ +package com.engine.aisin.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author liang.cheng + * @Date 2024/11/18 10:26 AM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KqStatisticsItemVo { + + private String name; + + private String id; + + private String title; + + private String type; + + private String value; + + +} diff --git a/src/com/engine/aisin/entity/KqStatisticsVo.java b/src/com/engine/aisin/entity/KqStatisticsVo.java new file mode 100644 index 0000000..57b2ac0 --- /dev/null +++ b/src/com/engine/aisin/entity/KqStatisticsVo.java @@ -0,0 +1,34 @@ +package com.engine.aisin.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author liang.cheng + * @Date 2024/11/18 10:26 AM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KqStatisticsVo { + + private String name; + + private String id; + + private String title; + + private String value; + + private List items; + + +} diff --git a/src/com/engine/aisin/service/AccessCustomService.java b/src/com/engine/aisin/service/AccessCustomService.java index 934cb8e..8155ba3 100644 --- a/src/com/engine/aisin/service/AccessCustomService.java +++ b/src/com/engine/aisin/service/AccessCustomService.java @@ -1,6 +1,8 @@ package com.engine.aisin.service; +import com.engine.aisin.entity.KqStatisticsVo; + import java.util.Map; /** @@ -26,5 +28,5 @@ public interface AccessCustomService { * @param: [] * @return: java.util.Map */ - Map getKqAccess(); + KqStatisticsVo getKqAccess(Map params); } diff --git a/src/com/engine/aisin/service/impl/AccessCustomServiceImpl.java b/src/com/engine/aisin/service/impl/AccessCustomServiceImpl.java index 47b722cbb9fecda1852ff3151597892640ee3814..dd01f8af85c8fc889699230e39ddd1f786accfea 100644 GIT binary patch delta 1647 zcmb`I-%ry}6vs_8FDtlWf?!BTL>w9N zLvVu3%_SQ_Bbz+b(fkDxN$*c!h$TQoWu+RQDS6W zl3GceK@%hn0JPUm^7?#j4vl5en>b_KfohMJLVt7-3zW_Ll|z4`!7V=Pltfs-sx{%y%Iz&ek(GT7bOJJ3BC=F=X{87G%1vbGYMVWc&ItutYH?{!iGr;{UTV35M`CdXNRgd}iKg}Bj{?<4_asdG593@Wx diff --git a/src/com/engine/aisin/web/AccessCustomAction.java b/src/com/engine/aisin/web/AccessCustomAction.java index a94daa6..084e139 100644 --- a/src/com/engine/aisin/web/AccessCustomAction.java +++ b/src/com/engine/aisin/web/AccessCustomAction.java @@ -56,7 +56,7 @@ public class AccessCustomAction { Map data = new HashMap<>(8); try { User user = HrmUserVarify.getUser(request, response); - data.put("datas",getService(user).getKqAccess()); + data.put("datas",getService(user).getKqAccess(ParamUtil.request2Map(request))); data.put("api_status", true); } catch (Exception e) { data.put("api_status", false); diff --git a/src/com/engine/kq/wfset/util/KQFlowUtil.java b/src/com/engine/kq/wfset/util/KQFlowUtil.java index 45cea24..7f9291b 100644 --- a/src/com/engine/kq/wfset/util/KQFlowUtil.java +++ b/src/com/engine/kq/wfset/util/KQFlowUtil.java @@ -400,6 +400,7 @@ public class KQFlowUtil { } }else if(flowTypeEnum == KqSplitFlowTypeEnum.OVERTIME){ // 强制归档,加班数据第一第二种规则都需要处理 + kqLog.info("强制归档:"+requestId); SplitActionUtil.handleOverTimeAction(splitBeans, ""+requestId,true, ""); } }else{ diff --git a/src/test/MainTest.java b/src/test/MainTest.java index 999d74c..1ed4b27 100644 --- a/src/test/MainTest.java +++ b/src/test/MainTest.java @@ -2,6 +2,8 @@ package test; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.engine.aisin.entity.KqStatisticsItemVo; +import com.engine.aisin.entity.KqStatisticsVo; import weaver.general.TimeUtil; import weaver.general.Util; import weaver.interfaces.aisin.cron.KqConfirmWfCrob; @@ -9,7 +11,9 @@ import weaver.interfaces.aisin.cron.KqConfirmWfCrob; import java.time.LocalDate; import java.time.YearMonth; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -21,19 +25,31 @@ import java.util.Map; public class MainTest { public static void main(String[] args) { - String sql_b = ""; - String sql_c = ""; - String ruleId = "4"; - String searchYear ="2024"; - String currentDate = "10"; - sql_b = "select resourceId,sum(tiaoxiuamount) alltiaoxiuamountB,sum(extraAmount) allExtraAmountB,sum(baseAmount) allBaseAmountB,sum(usedAmount) allUsedAmountB from KQ_BalanceOfLeave where (isDelete is null or isDelete<>1) and leaveRulesId=" + ruleId + " and belongYear='" + searchYear + "' and (expirationDate is null or expirationDate='' or expirationDate>='" + currentDate + "') group by resourceId,leaveRulesId,belongYear "; - sql_c = "select resourceId,sum(tiaoxiuamount) alltiaoxiuamountC,sum(extraAmount) allExtraAmountC,sum(baseAmount) allBaseAmountC,sum(usedAmount) allUsedAmountC from KQ_BalanceOfLeave where (isDelete is null or isDelete<>1) and leaveRulesId=" + ruleId + " and belongYear='" + searchYear + "' and (expirationDate is not null and expirationDate<>'' and expirationDate<'" + currentDate + "') group by resourceId,leaveRulesId,belongYear "; - String backFields = " a.id,a.dspOrder,a.lastName,a.workcode,a.subCompanyId1,a.departmentId,a.companyStartDate,a.workStartDate,a.id resourceId," + ruleId + " as leaveRulesId,0 as allTotalAmount,0 as allUsedAmount,0 as allInvalidAmount,0 as allRestAmount,0 as detailShow," + - "b.allBaseAmountB,b.alltiaoxiuamountB,b.allExtraAmountB,b.allUsedAmountB,c.alltiaoxiuamountC,c.allBaseAmountC,c.allExtraAmountC,c.allUsedAmountC "; - String sqlFrom = " from HrmResource a left join (" + sql_b + ") b on a.id=b.resourceId left join (" + sql_c + ") c on a.id=c.resourceId "; - String sqlWhere = " where 1=1 and a.status in (0,1,2,3) "; - - System.out.println("select "+backFields+sqlFrom+sqlWhere); + List kqStatisticsItemVoList = new ArrayList<>(); + kqStatisticsItemVoList.add(KqStatisticsItemVo.builder() + .name("未出勤人数") + .id("leavePersons") + .title("未出勤人数") + .type("ABSENT") + .value("0") + .build()); + + kqStatisticsItemVoList.add(KqStatisticsItemVo.builder() + .name("实际出勤人数") + .id("realPersons") + .title("实际出勤人数") + .type("REALPERSONS") + .value("0") + .build()); + + KqStatisticsVo build = KqStatisticsVo.builder() + .name("应出勤(人)") + .id("workPersons") + .title("出勤统计") + .value("0") + .items(kqStatisticsItemVoList) + .build(); + System.out.println(build.toString()); } public static String firstDayOfMonth(String yearMonthStr) { diff --git a/src/weaver/interfaces/aisin/cron/KqConfirmWfCrob.java b/src/weaver/interfaces/aisin/cron/KqConfirmWfCrob.java index 4a30ade..5990b53 100644 --- a/src/weaver/interfaces/aisin/cron/KqConfirmWfCrob.java +++ b/src/weaver/interfaces/aisin/cron/KqConfirmWfCrob.java @@ -136,7 +136,7 @@ public class KqConfirmWfCrob extends BaseCronJob { //2.1 明细表1(班次) List scheDetails = new ArrayList<>(); rs.executeQuery("select kqdate,serialid from kq_shiftschedule where kqdate >= '"+firstDayOfMonth+"' and kqdate <= '"+lastDayOfMonth+"' \n" + - " and resourceid = ? and isdelete = 0",e.getResourceId()); + " and resourceid = ? and isdelete = 0 order by kqdate asc",e.getResourceId()); while (rs.next()) { scheDetails.add(ScheDetailTableInfo.builder().date(Util.null2String(rs.getString("kqdate"))) .serialId(Util.null2String(rs.getString("serialid"))).build()); @@ -147,7 +147,7 @@ public class KqConfirmWfCrob extends BaseCronJob { //2.2 明细表2(加班) List flowDetails = new ArrayList<>(); rs.executeQuery("select belongdate,duration_min from KQ_FLOW_OVERTIME where belongdate >= '"+firstDayOfMonth+"' and belongdate <= '"+lastDayOfMonth+"' \n" + - " and resourceid = ?",e.getResourceId()); + " and resourceid = ? order by belongdate asc",e.getResourceId()); while (rs.next()){ String belongdate = Util.null2String(rs.getString("belongdate")); String duration_min = Util.null2String(rs.getString("duration_min")); @@ -166,7 +166,7 @@ public class KqConfirmWfCrob extends BaseCronJob { //2.3 明细表3(请假) List leaveDetails = new ArrayList<>(); rs.executeQuery("select belongDate,newleavetype,d_mins,serialid,leavebackrequestid from kq_flow_split_leave where belongDate >= '"+firstDayOfMonth+"' and belongDate <= '"+lastDayOfMonth+"' \n" + - " and resourceid = ?",e.getResourceId()); + " and resourceid = ? order by belongdate asc",e.getResourceId()); while (rs.next()) { String belongDate = Util.null2String(rs.getString("belongDate")); String serialId = Util.null2String(rs.getString("serialid")); @@ -179,10 +179,6 @@ public class KqConfirmWfCrob extends BaseCronJob { leaveBackMins = leaveBack(leavebackrequestid, e.getResourceId(), belongDate); } String reduce = getReduce(d_mins, leaveBackMins); - //test - if ("8595".equals(e.getResourceId())) { - bb.writeLog("测试请假仙女14 =>" +d_mins+","+leaveBackMins); - } if (!d_mins.equals(leaveBackMins)) { leaveDetails.add(LeaveDetailTableInfo.builder() .date(belongDate) @@ -244,9 +240,15 @@ public class KqConfirmWfCrob extends BaseCronJob { */ private String leaveBack(String leavebackrequestid,String resourceId,String belongDate){ RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); //leavebackrequestid 格式 ,123456,123467 List strings = Arrays.asList(leavebackrequestid.split(",")); - String join = CollectionUtil.join(strings, ","); + //去除空字符串 + List filteredStrings = strings.stream() + .filter(str -> !str.isEmpty()) + .collect(Collectors.toList()); + String join = CollectionUtil.join(filteredStrings, ","); + bb.writeLog("销假requestid =>"+leavebackrequestid+"=>"+join); List list = new ArrayList<>(); rs.executeQuery("select D_Mins from kq_flow_split_leaveback where resourceid = ? and requestid in ("+join+") " + " and belongDate = '"+belongDate+"'",resourceId);