From 5d187d80c1a18f78fbd80add0110d47328a908d2 Mon Sep 17 00:00:00 2001 From: chenwei <3291673014@qq.com> Date: Mon, 9 Oct 2023 09:57:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8C=E5=8A=A1=E6=8C=89=E9=92=AE=E3=80=81?= =?UTF-8?q?=E5=85=A5=E8=81=8C=E5=8A=9E=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/JobActivitiesBrowserService.java | 82 ++++++++++++++++ .../api/sskj/controller/EntryController.java | 7 ++ .../sskj/controller/EntryController.java | 47 +++++++++ src/com/engine/sskj/service/EntryService.java | 16 +++ .../sskj/service/impl/EntryServiceImpl.java | 97 +++++++++++++++++++ 5 files changed, 249 insertions(+) create mode 100644 src/com/api/browser/service/impl/JobActivitiesBrowserService.java create mode 100644 src/com/api/sskj/controller/EntryController.java create mode 100644 src/com/engine/sskj/controller/EntryController.java create mode 100644 src/com/engine/sskj/service/EntryService.java create mode 100644 src/com/engine/sskj/service/impl/EntryServiceImpl.java diff --git a/src/com/api/browser/service/impl/JobActivitiesBrowserService.java b/src/com/api/browser/service/impl/JobActivitiesBrowserService.java new file mode 100644 index 0000000..2c74b73 --- /dev/null +++ b/src/com/api/browser/service/impl/JobActivitiesBrowserService.java @@ -0,0 +1,82 @@ +package com.api.browser.service.impl; + +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SplitTableBean; +import com.api.browser.bean.SplitTableColBean; +import com.api.browser.service.BrowserService; +import com.api.browser.util.*; +import weaver.general.Util; +import weaver.systeminfo.SystemEnv; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 职务类别 + * + * @author lvyi + * + */ +public class JobActivitiesBrowserService extends BrowserService { + + @Override + public Map getBrowserData(Map params) throws Exception { + Map apidatas = new HashMap(); + String jobactivitymark = Util.null2String(params.get("jobactivitymark")); + String jobactivityname = Util.null2String(params.get("jobactivityname")); + String sqlwhere = "where 1 = 1 "; + String backfields = ""; + String fromSql = ""; + String orderby = ""; + if(!jobactivitymark.equals("")){ + sqlwhere += " and Jobactivitymark like '%"; + sqlwhere += Util.fromScreen2(jobactivitymark,user.getLanguage()); + sqlwhere += "%'"; + } + if(!jobactivityname.equals("")){ + sqlwhere += " and jobactivityname like '%"; + sqlwhere += Util.fromScreen2(jobactivityname,user.getLanguage()); + sqlwhere += "%'"; + } + + List cols = new ArrayList(); + backfields = " id, jobactivitymark, jobactivityname, jobgroupname "; + fromSql = " ( SELECT " + + " a.id, " + + " a.jobactivitymark, " + + " a.jobactivityname, " + + " b.jobgroupname " + + "FROM " + + " HrmJobActivities a " + + " LEFT JOIN HrmJobGroups b ON b.id = a.jobgroupid " + + ") t "; + orderby = " id "; + + cols.add(new SplitTableColBean("true", "id")); + cols.add(new SplitTableColBean("35%", SystemEnv.getHtmlLabelName(399, user.getLanguage()), "jobactivitymark", "jobactivitymark").setIsInputCol(BoolAttr.TRUE)); + cols.add(new SplitTableColBean("35%", SystemEnv.getHtmlLabelName(15767, user.getLanguage()), "jobactivityname", "jobactivityname")); + cols.add(new SplitTableColBean("30%", SystemEnv.getHtmlLabelName(805, user.getLanguage()), "jobgroupname", "jobgroupname"));//二开 + + SplitTableBean tableBean = new SplitTableBean(backfields, fromSql, sqlwhere, orderby, "id", cols); + + tableBean.setSqlsortway("ASC"); + tableBean.setSqlisdistinct("true"); + apidatas.putAll(SplitTableUtil.makeListDataResult(tableBean)); + return apidatas; + } + + @Override + public Map getBrowserConditionInfo(Map params) throws Exception { + Map apidatas = new HashMap(); + List conditions = new ArrayList(); + apidatas.put(BrowserConstant.BROWSER_RESULT_CONDITIONS, conditions); + ConditionFactory conditionFactory = new ConditionFactory(user); + conditions.add(conditionFactory.createCondition(ConditionType.INPUT, 399, "jobactivitymark", true)); + conditions.add(conditionFactory.createCondition(ConditionType.INPUT, 15767, "jobactivityname")); + conditions.add(conditionFactory.createCondition(ConditionType.INPUT, 805, "jobgroupname")); + return apidatas; + } + +} diff --git a/src/com/api/sskj/controller/EntryController.java b/src/com/api/sskj/controller/EntryController.java new file mode 100644 index 0000000..ecab896 --- /dev/null +++ b/src/com/api/sskj/controller/EntryController.java @@ -0,0 +1,7 @@ +package com.api.sskj.controller; + +import javax.ws.rs.Path; + +@Path("/sskj/entrymode") +public class EntryController extends com.engine.sskj.controller.EntryController{ +} diff --git a/src/com/engine/sskj/controller/EntryController.java b/src/com/engine/sskj/controller/EntryController.java new file mode 100644 index 0000000..458e8ed --- /dev/null +++ b/src/com/engine/sskj/controller/EntryController.java @@ -0,0 +1,47 @@ +package com.engine.sskj.controller; + +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.google.gson.Gson; +import com.engine.sskj.service.EntryService; +import com.engine.sskj.service.impl.EntryServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +public class EntryController { + + public EntryService getEntryService(User user) { + return ServiceUtil.getService(EntryServiceImpl.class,user); + } + + @POST + @Path("/checkblacklist") + @Produces(MediaType.APPLICATION_JSON) + public String checkBlackList(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + Map resultDatas = getEntryService(user).checkBlackList(params); + return new Gson().toJson(resultDatas); + } + + @POST + @Path("/checkentrystatus") + @Produces(MediaType.APPLICATION_JSON) + public String checkEntryStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + Map resultDatas = getEntryService(user).checkEntryStatus(params); + return new Gson().toJson(resultDatas); + } + + +} diff --git a/src/com/engine/sskj/service/EntryService.java b/src/com/engine/sskj/service/EntryService.java new file mode 100644 index 0000000..e5de4f2 --- /dev/null +++ b/src/com/engine/sskj/service/EntryService.java @@ -0,0 +1,16 @@ +package com.engine.sskj.service; + +import java.util.Map; + +public interface EntryService { + /** + * 入职申请新员工黑名单检测 + */ + Map checkBlackList(Map params); + + /** + * 检查入职办理时选中的人员是否待入职状态 + */ + Map checkEntryStatus(Map params); + +} diff --git a/src/com/engine/sskj/service/impl/EntryServiceImpl.java b/src/com/engine/sskj/service/impl/EntryServiceImpl.java new file mode 100644 index 0000000..481f9f5 --- /dev/null +++ b/src/com/engine/sskj/service/impl/EntryServiceImpl.java @@ -0,0 +1,97 @@ +package com.engine.sskj.service.impl; + +import com.engine.core.impl.Service; +import com.engine.sskj.service.EntryService; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class EntryServiceImpl extends Service implements EntryService { + @Override + public Map checkBlackList(Map params) { + Map result = new HashMap<>(); + + RecordSet rs = new RecordSet(); + + String idNumbers = Util.null2String(params.get("idNumbers"));//获取入参中的身份证号 + + if ( StringUtils.isBlank(idNumbers)) { + result.put("code",500); + result.put("msg","未获取到身份证号。"); + return result; + } + + List inList = new ArrayList<>(); + String[] idNumbersArr = idNumbers.split(","); + for (String idNumber:idNumbersArr) { + Integer number = -1; + String checkSql = "select count(*) as number from uf_entryblacklist where sfzh = ? "; + rs.executeQuery(checkSql,idNumber); + while (rs.next()) { + number = Util.getIntValue(Util.null2String(rs.getString("number"))); + } + if ( number > 0 ) {//在黑名单中 + inList.add(idNumber); + } + } + + if ( !inList.isEmpty()) { + String inStr = String.join(",",inList); + result.put("code",500); + result.put("msg","身份证号:"+inStr+" 在黑名单中,是否继续入职申请?"); + return result; + } + + result.put("code",200); + result.put("msg","该批人员身份证号均不在黑名单中。"); + return result; + } + + @Override + public Map checkEntryStatus(Map params) { + Map result = new HashMap<>(); + RecordSet rs = new RecordSet(); + + String dataIds = Util.null2String(params.get("dataIds")); + + if (StringUtils.isEmpty(dataIds)) { + result.put("code",500); + result.put("msg","未选择需要检测入职状态的员工"); + return result; + } + + String[] idsArr = dataIds.split(","); + + List errorStatusList = new ArrayList<>(); + List errorPromptList = new ArrayList<>(); + + String checkStatusSql = "select rzzt,xm from uf_rzgl where id = ?"; + for (String id: idsArr) { + rs.executeQuery(checkStatusSql,id); + while (rs.next()) { + Integer status = Util.getIntValue(Util.null2String(rs.getString("rzzt"))); + String lastname = Util.null2String(rs.getString("xm")); + if (status != 0 ) { + errorStatusList.add(id); + errorPromptList.add(lastname); + } + } + } + + if ( !errorStatusList.isEmpty()) {//存在不为待入职状态的数据 + String prompStr = String.join(",",errorPromptList); + result.put("code",500); + result.put("msg","姓名为:"+prompStr+" 的人员,入职状态不出于待入职状态,不可以办理入职。");//确认一下需要提示什么 + return result; + } + + result.put("code",200); + result.put("msg","均可办理入职"); + return result; + } +}