diff --git a/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/deptdrawershow.vue b/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/deptdrawershow.vue index fb292c56cbe51a7ab269ea503ea75865f92cb7bc..f74f8d44239d6125cace5ec698f60d54464ea894 100644 --- a/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/deptdrawershow.vue +++ b/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/deptdrawershow.vue @@ -367,9 +367,9 @@ export default { width: 100, formatter: (row) => { if (row.check) { - return <span>涓嶉€夋嫨</span>; + return <span style="cursor:pointer;color:#ff0000">涓嶉€夋嫨</span>; } else { - return <span style="cursor:pointer">閫夋嫨</span>; + return <span style="cursor:pointer;color:#1890ff">閫夋嫨</span>; } }, }, diff --git a/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/drawershow.vue b/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/drawershow.vue index de378f33208296d4ca9c1f6e340615223a442daf..100ade2bdb64c5bc8d733137294d72324a9b0f96 100644 --- a/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/drawershow.vue +++ b/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/drawershow.vue @@ -407,9 +407,9 @@ export default { width: 100, formatter: (row) => { if (row.check) { - return <span>涓嶉€夋嫨</span>; + return <span style="cursor:pointer;color:#ff0000">涓嶉€夋嫨</span>; } else { - return <span style="cursor:pointer">閫夋嫨</span>; + return <span style="cursor:pointer;color:#1890ff">閫夋嫨</span>; } }, }, diff --git a/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/windowdrawershow.vue b/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/windowdrawershow.vue index d13964839e80dee24bdf74e0df93bd386288cca2..237f45d0fb372abc613cbd12c8bebbd7dd1bf5a7 100644 --- a/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/windowdrawershow.vue +++ b/attendance-performance-manager-ui/admin/src/views/perform/staff/conf/windowdrawershow.vue @@ -193,9 +193,9 @@ export default { width: 100, formatter: (row) => { if (row.check) { - return <span>涓嶉€夋嫨</span>; + return <span style="cursor:pointer;color:#ff0000">涓嶉€夋嫨</span>; } else { - return <span style="cursor:pointer">閫夋嫨</span>; + return <span style="cursor:pointer;color:#1890ff">閫夋嫨</span>; } }, }, diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java index 0a94cf7f190d95306c14eef9e9a8e92d451614af..05ef7ba019ebf1409324f4548326a618ebbe3c3a 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java @@ -13,6 +13,8 @@ import com.mortals.framework.exception.AppException; import com.mortals.xhx.busiz.dingtalk.config.TalkConfiguration; import com.mortals.xhx.busiz.dingtalk.req.DingTalkBaseReq; import com.mortals.xhx.busiz.dingtalk.req.UserPageReq; +import com.mortals.xhx.busiz.req.CodeReq; +import com.mortals.xhx.busiz.req.LinkMessageReq; import com.mortals.xhx.busiz.req.MobileReq; import com.mortals.xhx.busiz.req.ReviewSaveReq; import com.mortals.xhx.common.code.YesNoEnum; @@ -131,9 +133,9 @@ public class TalkApiController { if(dingToken == null){ dingToken = getToken().getData(); } - req.setDeptId(res.getDeptid()); - req.setCursor(res.getCursor()); - req.setSize(res.getSize()); + req.setDeptId(res.getDeptid()); //閮ㄩ棬id + req.setCursor(res.getCursor()); //璧峰椤垫父鏍� + req.setSize(res.getSize()); //鍒嗛〉鏉℃暟 OapiV2UserListResponse rsp = client.execute(req, dingToken); if(rsp.getErrcode() == 0){ apiRespPdu.setCode(0); @@ -173,11 +175,12 @@ public class TalkApiController { if(dingToken == null){ dingToken = getToken().getData(); } - req.setMobile(mobile.getMobile()); + req.setMobile(mobile.getMobile()); //鐢ㄦ埛鎵嬫満鍙� + //鍏堟牴鎹墜鏈哄彿鍘昏幏鍙杣serid 鍐嶉€氳繃userid鑾峰彇璇︽儏 閽夐拤娌℃湁鐩存帴鏍规嵁鐢佃瘽鑾峰彇鐢ㄦ埛璇︽儏鐨勬帴鍙� OapiV2UserGetbymobileResponse rsp = client.execute(req, dingToken); if(rsp.getErrcode() == 0){ //鏍规嵁鑾峰彇鍒扮殑userid鍘昏幏鍙栫敤鎴疯鎯� - ApiRespPdu<OapiV2UserGetResponse.UserGetResponse> userRsp = getUserInfo(rsp.getResult().getUserid()); + ApiRespPdu<OapiV2UserGetResponse.UserGetResponse> userRsp = getUserInfoByUserId(rsp.getResult().getUserid()); if(userRsp.getCode() == 0){ apiRespPdu.setCode(userRsp.getCode()); apiRespPdu.setData(userRsp.getData()); @@ -211,17 +214,17 @@ public class TalkApiController { * 鏍规嵁userid鏌ヨ鐢ㄦ埛璇︽儏 * @return */ - @GetMapping("/dingtalk/getUserInfo") + @GetMapping("/dingtalk/getUserInfoByUserId") @UnAuth - public ApiRespPdu<OapiV2UserGetResponse.UserGetResponse> getUserInfo(@RequestBody String userid){ + public ApiRespPdu<OapiV2UserGetResponse.UserGetResponse> getUserInfoByUserId(@RequestBody String userid){ ApiRespPdu<OapiV2UserGetResponse.UserGetResponse> apiRespPdu = new ApiRespPdu<>(); try { - DingTalkClient client = new DefaultDingTalkClient(talkConfiguration.getGetuserinfo()); + DingTalkClient client = new DefaultDingTalkClient(talkConfiguration.getGetuserinfobyuserid()); OapiV2UserGetRequest req = new OapiV2UserGetRequest(); if(dingToken == null){ dingToken = getToken().getData(); } - req.setUserid(userid); + req.setUserid(userid); //鐢ㄦ埛id OapiV2UserGetResponse rsp = client.execute(req, dingToken); apiRespPdu.setCode(0); @@ -236,4 +239,85 @@ public class TalkApiController { return apiRespPdu; } + + + /** + * 鎺ㄩ€侀摼鎺ョ被閽夐拤宸ヤ綔娑堟伅 + * @return + */ + @PostMapping("/dingtalk/sendLinkMessage") + @UnAuth + public ApiRespPdu<String> sendLinkMessage(@RequestBody LinkMessageReq linkMessageReq){ + ApiRespPdu<String> apiRespPdu = new ApiRespPdu<>(); + try { + DingTalkClient client = new DefaultDingTalkClient(talkConfiguration.getSendmessage()); + if(dingToken == null){ + dingToken = getToken().getData(); + } + OapiMessageCorpconversationAsyncsendV2Request req = new OapiMessageCorpconversationAsyncsendV2Request(); + req.setAgentId(Long.valueOf(talkConfiguration.getGetAgentId())); + req.setUseridList(linkMessageReq.getUserIdList()); + + OapiMessageCorpconversationAsyncsendV2Request.Msg obj1 = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); + obj1.setMsgtype("link"); //type涓洪摼鎺ョ被娑堟伅 + OapiMessageCorpconversationAsyncsendV2Request.Link obj2 = new OapiMessageCorpconversationAsyncsendV2Request.Link(); + obj2.setPicUrl(linkMessageReq.getPicUrl()); //娑堟伅鍥剧墖鍦板潃 + obj2.setMessageUrl(linkMessageReq.getMessageUrl()); //璺宠浆閾炬帴鍦板潃 + obj2.setText(linkMessageReq.getText()); //娑堟伅鎻忚堪 + obj2.setTitle(linkMessageReq.getTitle()); //娑堟伅title + obj1.setLink(obj2); + req.setMsg(obj1); + + OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(req, dingToken); + if(rsp.getErrcode() == 0){ + apiRespPdu.setCode(0); + apiRespPdu.setData(rsp.getBody()); + apiRespPdu.setMsg(rsp.getMsg()); + }else { + apiRespPdu.setCode(-1); + apiRespPdu.setData(rsp.getBody()); + apiRespPdu.setMsg(rsp.getMsg()); + + } + + } catch (Exception e) { + e.printStackTrace(); + apiRespPdu.setCode(-1); + apiRespPdu.setData(""); + apiRespPdu.setMsg(e.toString()); + } + + return apiRespPdu; + } + + + /** + * 鏍规嵁鍏嶇櫥鐮佹煡璇㈢敤鎴疯鎯� + * @return + */ + @GetMapping("/dingtalk/getUserInfoByCode") + @UnAuth + public ApiRespPdu<OapiV2UserGetuserinfoResponse.UserGetByCodeResponse> getUserInfoByCode(@RequestBody CodeReq codeReq){ + ApiRespPdu<OapiV2UserGetuserinfoResponse.UserGetByCodeResponse> apiRespPdu = new ApiRespPdu<>(); + try { + DingTalkClient client = new DefaultDingTalkClient(talkConfiguration.getGetuserinfobycode()); + OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest(); + if(dingToken == null){ + dingToken = getToken().getData(); + } + req.setCode(codeReq.getCode()); //鍓嶇js鑾峰彇鍒扮殑鍏嶇櫥鐮� 鐢ㄥ厤鐧荤爜鑾峰彇鐢ㄦ埛淇℃伅 + OapiV2UserGetuserinfoResponse rsp = client.execute(req, dingToken); + + apiRespPdu.setCode(0); + apiRespPdu.setData(rsp.getResult()); + apiRespPdu.setMsg(rsp.getMsg()); + } catch (Exception e) { + e.printStackTrace(); + apiRespPdu.setCode(-1); + apiRespPdu.setData(null); + apiRespPdu.setMsg(e.toString()); + } + + return apiRespPdu; + } } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java index ab4fff7a4f72ad62321cbf3bf13b0d8df040d048..57b7d3a29e6185cc64f7a103c5d34f0792638ee0 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java @@ -58,8 +58,21 @@ public class TalkConfiguration { /** * 鏍规嵁userid鏌ヨ鐢ㄦ埛淇℃伅 */ - @Value("${dingtalk.getuserinfo:https://oapi.dingtalk.com/topapi/v2/user/get}") - private String getuserinfo; + @Value("${dingtalk.getuserinfobyuserid:https://oapi.dingtalk.com/topapi/v2/user/get}") + private String getuserinfobyuserid; + + /** + * 鏍规嵁鍏嶇櫥鐮佹煡璇㈢敤鎴蜂俊鎭� + */ + @Value("${dingtalk.getuserinfobycode:https://oapi.dingtalk.com/topapi/v2/user/getuserinfo}") + private String getuserinfobycode; + + /** + * 鎺ㄩ€侀拤閽夊伐浣滄秷鎭� + */ + @Value("${dingtalk.sendmessage:https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2}") + private String sendmessage; + /** * getDeptbyUser */ diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/req/CodeReq.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/req/CodeReq.java new file mode 100644 index 0000000000000000000000000000000000000000..a71ac19758b3ae9f501890b9869c03ef620bb729 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/req/CodeReq.java @@ -0,0 +1,18 @@ +package com.mortals.xhx.busiz.req; + +/** + * @author ZYW + * @date 2023-07-13 20:11 + */ + +public class CodeReq { + String code; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/req/LinkMessageReq.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/req/LinkMessageReq.java new file mode 100644 index 0000000000000000000000000000000000000000..9864830f656ed5e16e312a00cae38b3377fc28f7 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/req/LinkMessageReq.java @@ -0,0 +1,55 @@ +package com.mortals.xhx.busiz.req; + +/** + * @author ZYW + * @date 2023-07-13 19:30 + * 杩炴帴绫诲伐浣滄秷鎭� + */ + +public class LinkMessageReq { + String userIdList; //鎺ユ敹鑰呯敤鎴穒d鍒楄〃 澶氫釜鎺ユ敹鑰呯敤,闅斿紑 + String picUrl; //娑堟伅鍥剧墖鍦板潃 + String messageUrl; //閾炬帴鍦板潃 + String title; //娑堟伅鏍囬锛屽缓璁�100瀛楃浠ュ唴銆� + String text; //娑堟伅鎻忚堪锛屽缓璁�500瀛楃浠ュ唴銆� + + public String getUserIdList() { + return userIdList; + } + + public void setUserIdList(String userIdList) { + this.userIdList = userIdList; + } + + public String getPicUrl() { + return picUrl; + } + + public void setPicUrl(String picUrl) { + this.picUrl = picUrl; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getMessageUrl() { + return messageUrl; + } + + public void setMessageUrl(String messageUrl) { + this.messageUrl = messageUrl; + } +} diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/TestController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/TestController.java index 640787a278423b1d67e5c3395abc776a30ba51b6..a6cb73ea38b2cc1d11ee269670393c399be6a347 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/TestController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/TestController.java @@ -23,21 +23,22 @@ public class TestController { @Autowired private IdgeneratorService idgeneratorService; - @GetMapping("webservice") +// @GetMapping("webservice")@GetMapping("idGens") +// public String idGens() { +// log.info("娴嬭瘯id鐢熸垚"); +// +// String stringId = idgeneratorService.getLongId(IdgeneratorServiceImpl.IdGeneratorKey.EFFECT).toString(); +// +// +// return stringId; +// } public String webservice() { log.info("娴嬭瘯"); return "ok"; } - @GetMapping("idGens") - public String idGens() { - log.info("娴嬭瘯id鐢熸垚"); - - String stringId = idgeneratorService.getLongId(IdgeneratorServiceImpl.IdGeneratorKey.EFFECT_KEY).toString(); - - return stringId; - } +// diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/FeedbackDao.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/FeedbackDao.java index 2eb9d130e5406a6960385193579c16157aa5cb3d..080e1a815299bbeef624440f44d746340567b395 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/FeedbackDao.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/FeedbackDao.java @@ -21,10 +21,10 @@ public interface FeedbackDao extends ICRUDDao<FeedbackEntity,Long>{ /*** * 闂嵎鍙嶉浜哄憳鍒楄〃 - * @param feedbackId + * @param query * @return */ - List<FeedbackStaffInfoVo> getFeedbackStaffList(Long feedbackId); + Result<FeedbackStaffInfoVo> getFeedbackStaffList(FeedbackEntity query,PageInfo pageInfo); /** * 闂嵎鍗曢€夊閫夊弽棣堢粺璁� diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/ibatis/FeedbackDaoImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/ibatis/FeedbackDaoImpl.java index 9603f1609001137719d566f26d82494bb9ffeff2..64befc63f0b3832e56d7de1bebbdc6f41786e7af 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/ibatis/FeedbackDaoImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/dao/ibatis/FeedbackDaoImpl.java @@ -28,8 +28,29 @@ public class FeedbackDaoImpl extends BaseCRUDDaoMybatis<FeedbackEntity,Long> imp @Override - public List<FeedbackStaffInfoVo> getFeedbackStaffList(Long feedbackId) { - return this.getSqlSession().selectList(this.getSqlId("getFeedbackStaffList"), feedbackId); + public Result<FeedbackStaffInfoVo> getFeedbackStaffList(FeedbackEntity query,PageInfo pageInfo) { + String sqlId = "getFeedbackStaffList"; + + Result result = new Result(); + List list = null; + int count = this.getFeedbackStaffListCount(query); + if (count == 0) { + list = new ArrayList(); + } else if (pageInfo.getPrePageResult() == -1) { + list = this.getSqlSession().selectList(this.getSqlId(sqlId), query); + } else { + if (pageInfo.getBeginIndex() > count) { + pageInfo.setCurrPage(1); + } + + RowBounds rowBounds = new RowBounds(pageInfo.getBeginIndex(), pageInfo.getPrePageResult()); + list = this.getSqlSession().selectList(this.getSqlId(sqlId), query, rowBounds); + } + + pageInfo.setTotalResult(count); + result.setPageInfo(pageInfo); + result.setList((List)list); + return result; } @Override @@ -66,4 +87,8 @@ public class FeedbackDaoImpl extends BaseCRUDDaoMybatis<FeedbackEntity,Long> imp private int getQuestionAnswerListCount(Long questionId) { return (Integer)this.getSqlSession().selectOne(this.getSqlId("getQuestionAnswerListCount"), questionId); } + + private int getFeedbackStaffListCount(FeedbackEntity query) { + return (Integer)this.getSqlSession().selectOne(this.getSqlId("getFeedbackStaffListCount"), query); + } } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/FeedbackVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/FeedbackVo.java index 42ce0c87c240fa5478ba7856bba7f11768a51d7f..f136166d98289f431b365b1b24565dcf6af56446 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/FeedbackVo.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/FeedbackVo.java @@ -17,6 +17,10 @@ import java.util.Date; public class FeedbackVo extends BaseEntityLong { private List<Long> staffList; - + /** 闂Id */ private Long questionId; + /** 鍙嶉Id */ + private Long feedbackId; + /** 鍙嶉鐘舵€� */ + private Integer backStatus; } \ No newline at end of file diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/OptionSummaryVo.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/OptionSummaryVo.java index 71842ae593de244edaa15dc50391e1caed446ad3..a0decd0629493dc087b68c13eaff18b690579a95 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/OptionSummaryVo.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/model/vo/OptionSummaryVo.java @@ -2,6 +2,8 @@ package com.mortals.xhx.module.feedback.model.vo; import lombok.Data; +import java.util.List; + /** * 闂嵎鍗曢€夊閫夊弽棣堢粺璁¤鍥� */ @@ -36,4 +38,6 @@ public class OptionSummaryVo { * 閫夐」缁熻 */ private Integer optionCount; + + List<OptionSummaryVo> optionList; } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/FeedbackService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/FeedbackService.java index e62ae2bb08c826b2b99d82c2a0d39e3fbbb3d4e2..bfca792dbe06b6288ddd00822cb5d23ccfbe5fc7 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/FeedbackService.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/FeedbackService.java @@ -25,10 +25,10 @@ public interface FeedbackService extends ICRUDService<FeedbackEntity,Long>{ /*** * 闂嵎鍙嶉浜哄憳鍒楄〃 - * @param feedbackId + * @param query * @return */ - List<FeedbackStaffInfoVo> getFeedbackStaffList(Long feedbackId) throws AppException; + Result<FeedbackStaffInfoVo> getFeedbackStaffList(FeedbackEntity query,PageInfo pageInfo) throws AppException; /** * 闂嵎鍗曢€夊閫夊弽棣堢粺璁� diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackQuestionServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackQuestionServiceImpl.java index 0d18fb223f9e4f1734915eca8da430ed257f1869..17d40ae50c00ddc8f956c1b6b694c027a7270deb 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackQuestionServiceImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackQuestionServiceImpl.java @@ -35,8 +35,8 @@ public class FeedbackQuestionServiceImpl extends AbstractCRUDServiceImpl<Feedbac item.setQuestionId(entity.getId()); item.setCreateUserId(this.getContextUserId(context)); item.setCreateTime(new Date()); - feedbackOptionService.save(item); }).count(); + feedbackOptionService.save(entity.getFeedbackOptionList()); } super.saveAfter(entity, context); } diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackServiceImpl.java index b4951fbb14f72539859d9f49441cf94e23e6a609..2114f0f0706444cd7508ff3188ad1becc1890928 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackServiceImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/service/impl/FeedbackServiceImpl.java @@ -52,7 +52,9 @@ public class FeedbackServiceImpl extends AbstractCRUDServiceImpl<FeedbackDao, Fe item.setCreateUserId(this.getContextUserId(context)); item.setCreateTime(new Date()); }).count(); - feedbackQuestionService.save(entity.getFeedbackQuestionList()); + for(FeedbackQuestionEntity questionEntity:entity.getFeedbackQuestionList()) { + feedbackQuestionService.save(questionEntity); + } } if(!ObjectUtils.isEmpty(entity.getStaffList())){ List<FeedbackStaffEntity> staffEntityList = new ArrayList<>(); @@ -81,7 +83,9 @@ public class FeedbackServiceImpl extends AbstractCRUDServiceImpl<FeedbackDao, Fe item.setUpdateUserId(this.getContextUserId(context)); item.setUpdateTime(new Date()); }).count(); - feedbackQuestionService.save(entity.getFeedbackQuestionList()); + for(FeedbackQuestionEntity questionEntity:entity.getFeedbackQuestionList()) { + feedbackQuestionService.save(questionEntity); + } } if(!ObjectUtils.isEmpty(entity.getStaffList())){ Long[] feedbackStaffIds = feedbackStaffService.find(new FeedbackStaffQuery().feedbackId(entity.getId())).stream().map(FeedbackStaffEntity::getId).toArray(Long[]::new); @@ -110,11 +114,14 @@ public class FeedbackServiceImpl extends AbstractCRUDServiceImpl<FeedbackDao, Fe } @Override - public List<FeedbackStaffInfoVo> getFeedbackStaffList(Long feedbackId) throws AppException { - if(feedbackId==null){ + public Result<FeedbackStaffInfoVo> getFeedbackStaffList(FeedbackEntity query,PageInfo pageInfo) throws AppException { + if(query.getFeedbackId()==null){ throw new AppException("缁╂晥鍙嶉璁板綍Id涓嶈兘涓虹┖"); } - return dao.getFeedbackStaffList(feedbackId); + if(pageInfo==null){ + pageInfo = new PageInfo(); + } + return dao.getFeedbackStaffList(query,pageInfo); } @Override diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/web/FeedbackController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/web/FeedbackController.java index ee189e588c351cd59cf6558bf2adc6f39771130b..2ab3fa683d2089b4dc2ec6d29cf0c8b2aa8a2767 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/web/FeedbackController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/feedback/web/FeedbackController.java @@ -24,12 +24,10 @@ import com.mortals.xhx.module.feedback.model.FeedbackEntity; import com.mortals.xhx.module.feedback.service.FeedbackService; import org.apache.commons.lang3.ArrayUtils; import com.mortals.framework.util.StringUtils; -import java.util.HashMap; -import java.util.List; -import java.util.Map; + +import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson.JSONObject; -import java.util.Arrays; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import static com.mortals.framework.ap.SysConstains.*; @@ -64,12 +62,12 @@ public class FeedbackController extends BaseCRUDJsonBodyMappingController<Feedba /** * 鏌ヨ闂嵎鍙嶉浜哄憳鍒楄〃 - * @param feedbackId + * @param query * @return */ - @RequestMapping(value = {"getStaffList"},method = {RequestMethod.POST, RequestMethod.GET}) + @PostMapping({"getStaffList"}) @UnAuth - public Rest<Object> getFeedbackStaffList(Long feedbackId) { + public Rest<Object> getFeedbackStaffList(@RequestBody FeedbackEntity query) { Rest<Object> ret = new Rest(); Map<String, Object> model = new HashMap(); Context context = this.getContext(); @@ -77,9 +75,10 @@ public class FeedbackController extends BaseCRUDJsonBodyMappingController<Feedba int code=1; try { - List<FeedbackStaffInfoVo> result = this.getService().getFeedbackStaffList(feedbackId); - if(CollectionUtils.isNotEmpty(result)) { - Map<Integer, List<FeedbackStaffInfoVo>> groupMap = result.stream().collect(Collectors.groupingBy(FeedbackStaffInfoVo::getBackStatus)); + PageInfo pageInfo = this.buildPageInfo(query); + Result<FeedbackStaffInfoVo> result = this.getService().getFeedbackStaffList(query,pageInfo); + if(CollectionUtils.isNotEmpty(result.getList())) { + Map<Integer, List<FeedbackStaffInfoVo>> groupMap = result.getList().stream().collect(Collectors.groupingBy(FeedbackStaffInfoVo::getBackStatus)); if(groupMap.containsKey(1)) { model.put("feedBack", groupMap.get(1).size()); }else { @@ -94,8 +93,9 @@ public class FeedbackController extends BaseCRUDJsonBodyMappingController<Feedba model.put("feedBack", 0); model.put("notBack", 0); } - model.put("data", result); - model.put("message_info", busiDesc + "鎴愬姛"); + model.put("data", result.getList()); + model.put("pageInfo", result.getPageInfo()); + this.parsePageInfo(model, result.getPageInfo()); if (!ObjectUtils.isEmpty(context) && !ObjectUtils.isEmpty(context.getUser())) { this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); } @@ -127,7 +127,21 @@ public class FeedbackController extends BaseCRUDJsonBodyMappingController<Feedba int code=1; try { List<OptionSummaryVo> result = this.getService().getOptionSummaryList(feedbackId); - model.put("data", result); + List<OptionSummaryVo> list = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(result)) { + Map<Long, List<OptionSummaryVo>> groupMap = result.stream().collect(Collectors.groupingBy(OptionSummaryVo::getQuestionId)); + for (Long key : groupMap.keySet()) { + OptionSummaryVo vo = new OptionSummaryVo(); + OptionSummaryVo temp = groupMap.get(key).get(0); + vo.setQuestionId(key); + vo.setQuestion(temp.getQuestion()); + vo.setFeedbackId(temp.getFeedbackId()); + vo.setQuestionType(temp.getQuestionType()); + vo.setOptionList(groupMap.get(key)); + list.add(vo); + } + } + model.put("data", list); model.put("message_info", busiDesc + "鎴愬姛"); if (!ObjectUtils.isEmpty(context) && !ObjectUtils.isEmpty(context.getUser())) { this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); @@ -157,14 +171,13 @@ public class FeedbackController extends BaseCRUDJsonBodyMappingController<Feedba Context context = this.getContext(); String busiDesc = "鏌ヨ闂嵎闂鍙嶉璇︽儏"; - int code=1; + int code = 1; try { PageInfo pageInfo = this.buildPageInfo(query); Result<QuestionAnswerVo> result = this.getService().getQuestionAnswerList(query.getQuestionId(), pageInfo); model.put("data", result.getList()); model.put("pageInfo", result.getPageInfo()); this.parsePageInfo(model, result.getPageInfo()); - code = this.doListAfter(query, (Map)model, context); model.put("message_info", busiDesc + "鎴愬姛"); if (!ObjectUtils.isEmpty(context) && !ObjectUtils.isEmpty(context.getUser())) { this.recordSysLog(this.request, busiDesc + " 銆愭垚鍔熴€�"); diff --git a/attendance-performance-manager/src/main/resources/bootstrap.yml b/attendance-performance-manager/src/main/resources/bootstrap.yml index ed19ce2f71544c62cd498de9cc06e22cfb980d6c..b8100a091f91bec1c0c8fa60efe8d760bf080f45 100644 --- a/attendance-performance-manager/src/main/resources/bootstrap.yml +++ b/attendance-performance-manager/src/main/resources/bootstrap.yml @@ -62,4 +62,7 @@ hik: protocol: @profiles.hik.protocol@ appSecret: @profiles.hik.appSecret@ dingtalk: - agentId: 123123 + agentId: 2652674890 + AppKey: dingpqzradgfr4efdi2j + AppSecret: bF2WALmo5_Wuj3hg5gXeWqezrYnZChUJ88HjzNWpkA9ivdOxfBDGOGYcfVRfB3vd + diff --git a/attendance-performance-manager/src/main/resources/sqlmap/module/feedback/FeedbackMapperExt.xml b/attendance-performance-manager/src/main/resources/sqlmap/module/feedback/FeedbackMapperExt.xml index 624148ce1248c2db9c118297d969a37cd3ddb31e..62d20a97103d3b7107fc78c4201209e8f3299e75 100644 --- a/attendance-performance-manager/src/main/resources/sqlmap/module/feedback/FeedbackMapperExt.xml +++ b/attendance-performance-manager/src/main/resources/sqlmap/module/feedback/FeedbackMapperExt.xml @@ -4,24 +4,56 @@ <mapper namespace="com.mortals.xhx.module.feedback.dao.ibatis.FeedbackDaoImpl"> <!-- 闂嵎鍙嶉浜哄憳鍒楄〃 --> - <select id="getFeedbackStaffList" parameterType="long" resultType="com.mortals.xhx.module.feedback.model.vo.FeedbackStaffInfoVo"> - SELECT - s.feedbackId, - s.staffId, - s1.`name`, - s1.deptId, - s1.deptName, - s1.positionName, - CASE IFNULL(a.id, 0) WHEN 0 THEN 0 ELSE 1 END AS backStatus, - MAX(a.createTime) AS backTime - FROM - mortals_xhx_feedback_staff s - LEFT JOIN mortals_xhx_feedback_answer a ON s.staffId = a.staffId AND s.feedbackId = a.feedbackId - LEFT JOIN mortals_xhx_staff s1 ON s.staffId = s1.id - WHERE - s.feedbackId = #{feedbackId} - GROUP BY - s.staffId; + <select id="getFeedbackStaffList" parameterType="com.mortals.xhx.module.feedback.model.FeedbackEntity" resultType="com.mortals.xhx.module.feedback.model.vo.FeedbackStaffInfoVo"> + SELECT * FROM ( + SELECT + s.feedbackId, + s.staffId, + s1.`name`, + s1.deptId, + s1.deptName, + s1.positionName, + CASE IFNULL(a.id, 0) WHEN 0 THEN 0 ELSE 1 END AS backStatus, + MAX(a.createTime) AS backTime + FROM + mortals_xhx_feedback_staff s + LEFT JOIN mortals_xhx_feedback_answer a ON s.staffId = a.staffId AND s.feedbackId = a.feedbackId + LEFT JOIN mortals_xhx_staff s1 ON s.staffId = s1.id + WHERE + s.feedbackId = #{feedbackId} + GROUP BY + s.staffId + ) AS t WHERE 1=1 + <if test="backStatus != null"> + AND t.backStatus = #{backStatus} + </if> + </select> + + <select id="getFeedbackStaffListCount" parameterType="com.mortals.xhx.module.feedback.model.FeedbackEntity" resultType="int"> + select count(1) from ( + SELECT * FROM ( + SELECT + s.feedbackId, + s.staffId, + s1.`name`, + s1.deptId, + s1.deptName, + s1.positionName, + CASE IFNULL(a.id, 0) WHEN 0 THEN 0 ELSE 1 END AS backStatus, + MAX(a.createTime) AS backTime + FROM + mortals_xhx_feedback_staff s + LEFT JOIN mortals_xhx_feedback_answer a ON s.staffId = a.staffId AND s.feedbackId = a.feedbackId + LEFT JOIN mortals_xhx_staff s1 ON s.staffId = s1.id + WHERE + s.feedbackId = #{feedbackId} + GROUP BY + s.staffId + ) AS t WHERE 1=1 + <if test="backStatus != null"> + AND t.backStatus = #{backStatus} + </if> + ) as tt </select> <!-- 闂嵎鍗曢€夊閫夊弽棣堢粺璁� -->