From 98ce36f75e08f2b4e356299904e13e80fc7bd696 Mon Sep 17 00:00:00 2001 From: fumeiai Date: Tue, 19 May 2020 14:17:42 +0800 Subject: [PATCH] add statistical --- .idea/workspace.xml | 43 ++++++++++-------- .../modules/app/Dto/StaffStatisticalDto.java | 24 ++++++++++ .../app/controller/StaffController.java | 33 ++++++++++---- .../java/com/lz/modules/app/dao/StaffDao.java | 3 ++ .../lz/modules/app/service/StaffService.java | 3 ++ .../app/service/impl/StaffServiceImpl.java | 6 +++ .../resources/mapper/generator/StaffDao.xml | 27 +++++++++++ .../modules/app/Dto/StaffStatisticalDto.class | Bin 0 -> 3306 bytes .../app/controller/StaffController.class | Bin 6662 -> 8064 bytes .../com/lz/modules/app/dao/StaffDao.class | Bin 1556 -> 1769 bytes .../lz/modules/app/service/StaffService.class | Bin 1402 -> 1575 bytes .../app/service/impl/StaffServiceImpl.class | Bin 6413 -> 6687 bytes target/classes/mapper/generator/StaffDao.xml | 27 +++++++++++ 13 files changed, 138 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java create mode 100644 target/classes/com/lz/modules/app/Dto/StaffStatisticalDto.class diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 466096f2..dd2254b4 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,26 +2,19 @@ + - - - - - - - + + + + - - - - - - - - - - - + + + + + + @@ -224,7 +217,7 @@ file://$PROJECT_DIR$/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java - 79 + 80 @@ -237,6 +230,16 @@ 80 + + file://$PROJECT_DIR$/src/main/java/com/lz/modules/app/controller/StaffController.java + 156 + + + file://$PROJECT_DIR$/src/main/java/com/lz/modules/app/controller/StaffController.java + 157 + diff --git a/src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java b/src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java new file mode 100644 index 00000000..1f457741 --- /dev/null +++ b/src/main/java/com/lz/modules/app/Dto/StaffStatisticalDto.java @@ -0,0 +1,24 @@ +package com.lz.modules.app.Dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class StaffStatisticalDto { + + //总人数 + private int totalStaffCount; + //管理人员人数 + private int managementCount; + //管理人员占比 + private BigDecimal managementRate; + //新入职员工人数 + private int newStaffCount; + //离职人员人数 + private int leaveStaffCount; + //离职率 + private BigDecimal leaveRate; + + +} diff --git a/src/main/java/com/lz/modules/app/controller/StaffController.java b/src/main/java/com/lz/modules/app/controller/StaffController.java index 00018107..8e346a7d 100644 --- a/src/main/java/com/lz/modules/app/controller/StaffController.java +++ b/src/main/java/com/lz/modules/app/controller/StaffController.java @@ -6,8 +6,12 @@ import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.lz.common.utils.DateUtils; import com.lz.modules.app.Dto.*; +import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.service.*; +import com.lz.modules.sys.entity.SysCaptchaEntity; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; @@ -34,6 +38,9 @@ public class StaffController { @Autowired private StaffService staffService; + @Autowired + private DepartmentsService departmentsService; + @Autowired private StaffEducationService staffEducationService; @@ -127,13 +134,13 @@ public class StaffController { @RequestMapping("/statistical") // @RequiresPermissions("staff:info:statistical") public R statistical(@RequestParam Map params) { - + Map data = new HashMap(); //部门Id String departmentId = ""; //统计时间起 - String beginDate = ""; + String beginDate = "2017-01-01"; //统计时间止 - String endDate = ""; + String endDate = DateUtils.format(DateUtils.getCurrentDate(), DateUtils.DATE_PATTERN); if (params.containsKey("departmentId")) { departmentId = params.get("departmentId").toString(); @@ -146,14 +153,24 @@ public class StaffController { if (params.containsKey("endDate")) { endDate = params.get("endDate").toString(); } -// -// List staffInfos = staffService.getStaffInfos(currentPage, limit, departmentId, name, staffStatus); + + StaffStatisticalDto staffStatisticals = staffService.getStatisticalData(departmentId, beginDate, endDate); + data = JSON.parseObject(JSON.toJSONString(staffStatisticals), Map.class); + + data.put("beginDate", beginDate); + data.put("endDate", endDate); + if (departmentId != "") { + DepartmentsEntity department = departmentsService.getOne(new QueryWrapper().eq("department_id", departmentId)); + if (department != null) { + data.put("departmentName", department.getDepartmentName()); + } + } + // //总页码 // int maxCount = staffService.getStaffInfoCount(departmentId, name, staffStatus); -// + R ret = R.ok(); -// PageUtils pageInfo = new PageUtils(staffInfos, maxCount, limit, currentPage); -// ret.put("page", pageInfo); + ret.put("data", data); return ret; } diff --git a/src/main/java/com/lz/modules/app/dao/StaffDao.java b/src/main/java/com/lz/modules/app/dao/StaffDao.java index 9760f2a0..0adeea53 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -2,6 +2,7 @@ package com.lz.modules.app.dao; import com.lz.modules.app.Dto.StaffBaseInfoDto; import com.lz.modules.app.Dto.StaffDto; +import com.lz.modules.app.Dto.StaffStatisticalDto; import com.lz.modules.app.entity.StaffEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -33,5 +34,7 @@ public interface StaffDao extends BaseMapper { StaffBaseInfoDto getBaseInfo(@Param("staffId") Long staffId); + StaffStatisticalDto getStatisticalData(@Param("departmentId") String departmentId, @Param("beginDate") String beginDate, @Param("endDate") String endDate); + } diff --git a/src/main/java/com/lz/modules/app/service/StaffService.java b/src/main/java/com/lz/modules/app/service/StaffService.java index f0d98636..a643004f 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.utils.PageUtils; import com.lz.modules.app.Dto.StaffBaseInfoDto; import com.lz.modules.app.Dto.StaffDto; +import com.lz.modules.app.Dto.StaffStatisticalDto; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; @@ -33,5 +34,7 @@ public interface StaffService extends IService { StaffBaseInfoDto getBaseInfo(Long staffId); + StaffStatisticalDto getStatisticalData(String departmentId, String beginDate, String endDate); + } diff --git a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java index fe0657e0..5ed8e906 100644 --- a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java @@ -8,6 +8,7 @@ import com.lz.common.utils.PageUtils; import com.lz.common.utils.Query; import com.lz.modules.app.Dto.StaffBaseInfoDto; import com.lz.modules.app.Dto.StaffDto; +import com.lz.modules.app.Dto.StaffStatisticalDto; import com.lz.modules.app.dao.StaffDao; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.service.StaffService; @@ -100,6 +101,11 @@ public class StaffServiceImpl extends ServiceImpl impleme return staffDao.getBaseInfo(staffId); } + @Override + public StaffStatisticalDto getStatisticalData(String departmentId, String beginDate, String endDate) { + return staffDao.getStatisticalData(departmentId, beginDate, endDate); + } + private StaffEntity convertStaffEntity(DepartmentStaffBo staffBo) { StaffEntity staffEntity = new StaffEntity(); staffEntity.setName(staffBo.getName());//员工姓名 diff --git a/src/main/resources/mapper/generator/StaffDao.xml b/src/main/resources/mapper/generator/StaffDao.xml index 33c85b8d..99e38f11 100644 --- a/src/main/resources/mapper/generator/StaffDao.xml +++ b/src/main/resources/mapper/generator/StaffDao.xml @@ -130,5 +130,32 @@ select name staffName,gender,birthday,marital_status,national,political_landscape,mobile,current_address from lz_staff where id=#{staffId} + + diff --git a/target/classes/com/lz/modules/app/Dto/StaffStatisticalDto.class b/target/classes/com/lz/modules/app/Dto/StaffStatisticalDto.class new file mode 100644 index 0000000000000000000000000000000000000000..0560af53736c6a5c24972ecf7ed30252ef873fb8 GIT binary patch literal 3306 zcma)7TXR!Y6#jN{PIB6wHff-x5tLhjUQ&XJ7g~y13Q}kbQmh5#a+)5RKrSUc0Y{(o z#sA@&qUA)aiEzbtH;(mgq_AuuFKa=> zJq!0O6h$prC|jsl*s$bBarzbNBAqO0DcEs5yE|PT5&^OK#a~c>A_I zR~^q)7@WW7Jan=p$IEAD3hT3Ou26D{QwqIh_fb1uqUbsg-F8ox_V_Td(}i-uJEIUC z8C_N|&Q{h4o|rF`-NjmI)vaE0R*Uqc<|{d;xa?F5VmF+ImoM-PnfY9$lr4UhEmhWP zMRzmnY;0s_y-HSZO5qhYy#mweV}Yr4*Si)xHMi%v<6$?(O_ z76|NounTt6=_95#L#i@H=AwqAs=HY$ zlJJRbJ9ZDZVOw5h$*UI1>k7M@Q`e{Ry(CokQl(bSx#tT))S(d49hX+v7{REG12|~o zkch(=wsAzXqau!BSYd4EOtvwPk8EUd!p55--oo29J`~?cG2apKuJ{&kLSfI=IQ+tA zYK7vO3}ZN?;*r3!Fm1y_O~gZvHgjNWbozamR_Jec3Qu&(Ba%0BpyNegECF29me&*}+6ma0N8@6)ji_-_PHG?TQyVWk8o|#Ua7{kH zG9Cx{_U`9<9z#UNN-ZLj)hmaqSI$?j9I;+GWv=~D!UoDQT3N1&t2y=@>SrA`P8rkA zI5O02KL8UrPD{zuDLa#YLF8#5xhFK4Yzaw@29tY3lgYA>WaFp6&WX@u5;G*(4DQ?? znoL56B*%iuyF!zB5kivV!LkQJli$Pp9IbSFl52!(Y;5l{M8an^=tneWC36&VD4b%R zsc0l=Ool^7cM2&yYe62;kW)Clt;+FdFm?(llx;yC){xWTRhm166!y0uk7&p<;gGSN zLdr#IK_1nRAA}z~zEeoKlP$<&8j{bb-%FL@8t3F5kB|Kb(|9`mC#>&bMxT!V0c#;M zR!5gMsdQ)f|ATy^(L`7zdFZ8617wCTidm?Sr(c8@JV?bXsJV7JTG?J4h z&E#Y(ZAy0R1yWDYn>N$2X1XC)Ad29dalx;<#ly##!C4-30N-Jj???n^a0}aUw^u=+}w*SRo9GCcKDKUn8qpQ`#88*?7-=_v4 zPjOqhHl}nhcwzk)&c8Kgt6GyaNwtkzGponKUoyIQ5tTtalZdOysnf>vzT{M125_gT z_1u}JZ7<3PHr+~&KS6w=j{a6eUrS5q*yN-k!D*urZOM2fJiNIl{oNboMsXX9nwTbT z;xe@e-rxbQ@CZ>{!XA7=&Crd!2;(JZWw4P-v2jr9C4;u?h&V=JHUpY5MyHEm>;-=! z{f^*U?kT?_E59Li{W*4}cGoc=O{rrrwa3?cL?7~XyN-0~HDB)&|6X5Dh`!I)lM?ef X^*Y`NK9%i1Oe>8(C|qL&5q$bTdrDHb literal 0 HcmV?d00001 diff --git a/target/classes/com/lz/modules/app/controller/StaffController.class b/target/classes/com/lz/modules/app/controller/StaffController.class index 8756a764556efd696071a949b292e769c0ea54a6..3c51edde90c402bd3b554c398f66d2f9e288fdc2 100644 GIT binary patch delta 3266 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 VL6JcTOe-^}0BJS`Mg~;|1^_cP3iJQ~ diff --git a/target/classes/com/lz/modules/app/service/StaffService.class b/target/classes/com/lz/modules/app/service/StaffService.class index 04d1de4d60e2d1f8512ae33dc3fa8b15927e01d9..60239145b246a5c3df9a2b1e2c15a90b2e8bb8f8 100644 GIT binary patch delta 163 zcmeyxwVX%z)W2Q(7#J8#7&O@#)Yuu+*%>r83imRL3#F%)1eYY1WEPiXCMV{&B$gyH zGNfosR%Di)tivocc@?9~A(@%)ePomo^{9Nt{NW*vZH z<+pGuW@*?KT$m-xeH!;$@W@MNJfJb#f)5W`cnA*%@CfDvFc*)?QmZk~Po2jsq~P%Y z=3{}FJRxYIg)BTN`io>)EC)|%EYWycOu|bwp0UsbvwV0~7%ko?R5v&j&&s&IM zr7WxDb+s&OWLYcA3lf1GQ}Cjob%I_J^s=D!f?g5ys-O+Bye6+31#QX__`1M1G&Wm! z6K`p3(Re%3P)$v0v{hpplXLiPCS`^3`F34WuD#dSGP1|BRH^NeIl7(7tf~wR2vvlt zCx@y>RgCLZ5vouaoo}!AHnVr8rt#5s4{wHDul>!B)(cJOs^A}4Syf#_n@R;;SuTMa(K z$E0oW2|hLW44>N#0wsmraJs=4*s1ZQ!8nXJxDB@(e1)$KzQMN!-(i=*_xQo!NBpGF z+@5IC?OacqT^q=9cg1P;nn1VkZv1Sp8+#0X5m$Q+e#Jh6%Q0SKyTNbx-QW-LF$wz( z!kA)k6Q&y6f?Ey##7=_)qW>2T8vKnqgMVbNUiJEM`SEuo{y0Q1a|V z`$4#nwK^TGa1oKF?@|oL#jMC|)@D$cn;r&UfFU$-G5kCXBXZMOGX}lHNpNGL3>z_m zr^-oQN))rKNLY^K9w1tys5P3n1ipHtYE(M^G4&|dsM5HU{{!%q9E2;S4q9W(L7Z}k zHZF~7szPbz8n5FB`ia%?GHP(x8Ly{3B%`TQJ{bkDy^?mUA%O(n0BSIS=W$0hR8cbB z;()k2rF1aRdIcJ^S&cjwmhshvBV*L(IDRLJ-;BeKCpwNNu{APWfy{0WvrN_&RPmC1 z1I|D?C!iH8E=>Eg*3$IYUQrcOz7FmN=qE&gYO%$!8Xd^NhMO%^W zqG&I&Ac}CIfYd08M0SXxSY*d2It7o+X$yYp;GFx&AeFts!p`S37O>Y{I88m+ zZ^4x{p9CQ>%0nGA~<0=U(`__N)u)l Z`$+G^OrE)Lmvd9g4ShGCdnV)Fe*q3ZYxn>F delta 2003 zcmZ{kd7O=96vw~sy>sWCx%V}esWC(|d?Lm$Lt{vmF_lF26d{BxnUFSZwAFIp;a=Ip;a&cg}g{mQ=QhZ?0au9w>3b zQQA}Ka%+?jl}2uJxjjn64yD}TGAl|3ev~`8E5_Z-j&Tq78oAHq{!H1-iIT+wF&<>D zxy&Qy8k5$Vw9cfbO?t+p^+ukx<8vlGZ_*3dCcfyhA<9c^ba~n3 zm8u+PdfE}2TsEt&Ak_`Z)}f-A??m$b5oyO(?TRdOoGn%J-BwQ3$jmuTxQwo|Vn>Hx zu&x z|Mwn0u+w7_6J54={K!upKbzwee(|`9xX0C8~ts|HL0R#qMzes`S~^S((xR}2?>M-esyN!su?x9N8+WLEQjMY zQVmeP8aJ#|={ieF7w;k-6&H-6oJ=>J98RG- z;lOz&X_6qnU>%{sevj<@xH;F68XA#FW3t8T(j*9!pETYdNN$`;4+X3%%buL3t9!{W zM?Cqhcj{Xo>H10=apVI1^bgTrp9gSyG8bpJxYlMz_SPVW-ntoDD3d~|Thf$PT7x1X zQLF-6(}y;kO$lSAoj^OL3cG1SZMJY*Ak-EKwjj5)W%egLN_1i;6d@rG_eYh@T_HxX>@(H<&lPQkN z_yaf&SDYk{6J((!(0w)#UBoTFSiwqawpc^$5X*HubS%0BXe9d-OO+9$g7X!suK}+{ zRfsvZ7#7&?lhdH1%|>#tdLAaiZ2wPM{y0WjS8OYWI zG#BF5p#H)dH9R?~CQao+C1KJbi`ii;v1!1qdd>mdkWSXj6CkQEuCn}+In z97b(**D5Fps>@4NkQZcY732lkS_OGQwqg0!3$jf+m{9El3DpSyFA)blLY9Es{Q(Qg$IYLsn!d|3EJ`0(o*JXD)Tiy%`{5I>Qs9TQ<+dOoRUvT zc?zfUU;!QZb_mup^;`^+aRxI}?_DDmWkXJ8ozm5`tD?R=dd?w_UVT-TT#W0vLEl2$ Q7`&e`S>2@n%~QGMKl_9~vj6}9 diff --git a/target/classes/mapper/generator/StaffDao.xml b/target/classes/mapper/generator/StaffDao.xml index 33c85b8d..99e38f11 100644 --- a/target/classes/mapper/generator/StaffDao.xml +++ b/target/classes/mapper/generator/StaffDao.xml @@ -130,5 +130,32 @@ select name staffName,gender,birthday,marital_status,national,political_landscape,mobile,current_address from lz_staff where id=#{staffId} + +