diff --git a/.idea/artifacts/weaver_develop_jar.xml b/.idea/artifacts/weaver_develop_jar.xml index 6258dfe..2aff103 100644 --- a/.idea/artifacts/weaver_develop_jar.xml +++ b/.idea/artifacts/weaver_develop_jar.xml @@ -1,6 +1,6 @@ - $PROJECT_DIR$/out/artifacts/weaver_develop_jar + $PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib diff --git a/src/com/api/jygf/web/MobilePermissionsAction.java b/src/com/api/jygf/web/MobilePermissionsAction.java deleted file mode 100644 index 040835b..0000000 --- a/src/com/api/jygf/web/MobilePermissionsAction.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.api.jygf.web; - -import javax.ws.rs.Path; - -/** - * @Author weaver_cl - * @Description: - * @Date 2022/10/9 - * @Version V1.0 - **/ -@Path("/mobile/permission") -public class MobilePermissionsAction extends com.engine.jygf.web.MobilePermissionsAction { -} diff --git a/src/com/engine/jygf/cmd/MobilePermissionsCmd.java b/src/com/engine/jygf/cmd/MobilePermissionsCmd.java deleted file mode 100644 index b8c5477..0000000 --- a/src/com/engine/jygf/cmd/MobilePermissionsCmd.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.engine.jygf.cmd; - -import com.engine.common.biz.AbstractCommonCommand; -import com.engine.common.entity.BizLogContext; -import com.engine.core.interceptor.CommandContext; -import org.apache.commons.lang3.StringUtils; -import weaver.conn.RecordSet; -import weaver.hrm.User; -import weaver.wechat.util.Utils; - -import java.util.*; - -/** - * @Author weaver_cl - * @Description: - * @Date 2022/10/9 - * @Version V1.0 - **/ -public class MobilePermissionsCmd extends AbstractCommonCommand> { - - private static final String FIELDID = "field100043"; //移动电话自定义字段field100026 - - private static final String SCOPE = "HrmCustomFieldByInfoType"; - - private static final String SCOPEID = "-1"; - - public MobilePermissionsCmd(Map params, User user) { - this.user = user; - this.params = params; - } - - @Override - public BizLogContext getLogContext() { - return null; - } - - - @Override - public Map execute(CommandContext commandContext) { - Map data = new HashMap<>(); - String uid = Utils.null2String(user.getUID()); - RecordSet rs = new RecordSet(); - HashSet ids = new HashSet<>(); - ids.add(uid); - rs.executeQuery("select ckr,bckr from uf_yddhqx_dt1"); - while (rs.next()) { - String ckr = Utils.null2String(rs.getString("ckr")); - String bckr = Utils.null2String(rs.getString("bckr")); - if (Arrays.asList(ckr.split(",")).contains(uid)) { - ids.addAll(Arrays.asList(bckr.split(","))); - } - } - - Map mobileInfo = new HashMap<>(); - String value = StringUtils.join(ids,","); - rs.executeQuery("select id,"+FIELDID+" from cus_fielddata where scope = ? and scopeid = ?" + - " and id in ("+value+")",SCOPE,SCOPEID); - while (rs.next()){ - mobileInfo.put(Utils.null2String(rs.getString("id")),rs.getString(FIELDID)); - } - - data.put("ids",ids); - data.put("mobileInfo",mobileInfo); - return data; - } - - -} diff --git a/src/com/engine/jygf/service/MobilePermissionsService.java b/src/com/engine/jygf/service/MobilePermissionsService.java deleted file mode 100644 index e41d2a9..0000000 --- a/src/com/engine/jygf/service/MobilePermissionsService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.engine.jygf.service; - -import weaver.hrm.User; - -import java.util.Map; - -/** - * @Author weaver_cl - * @Description: - * @Date 2022/10/9 - * @Version V1.0 - **/ -public interface MobilePermissionsService { - - Map getPermissionInfo(Map params, User user); -} diff --git a/src/com/engine/jygf/service/impl/MobilePermissionsServiceImpl.java b/src/com/engine/jygf/service/impl/MobilePermissionsServiceImpl.java deleted file mode 100644 index 579ba36..0000000 --- a/src/com/engine/jygf/service/impl/MobilePermissionsServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.engine.jygf.service.impl; - -import com.engine.core.impl.Service; -import com.engine.jygf.cmd.MobilePermissionsCmd; -import com.engine.jygf.service.MobilePermissionsService; -import weaver.hrm.User; - -import java.util.Map; - -/** - * @Author weaver_cl - * @Description: - * @Date 2022/10/9 - * @Version V1.0 - **/ -public class MobilePermissionsServiceImpl extends Service implements MobilePermissionsService { - - - - @Override - public Map getPermissionInfo(Map params, User user) { - return commandExecutor.execute(new MobilePermissionsCmd(params,user)); - } -} diff --git a/src/com/engine/jygf/web/MobilePermissionsAction.java b/src/com/engine/jygf/web/MobilePermissionsAction.java deleted file mode 100644 index f3cf66d..0000000 --- a/src/com/engine/jygf/web/MobilePermissionsAction.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.engine.jygf.web; - -import com.alibaba.fastjson.JSONObject; -import com.engine.common.util.ParamUtil; -import com.engine.common.util.ServiceUtil; -import com.engine.jygf.service.MobilePermissionsService; -import com.engine.jygf.service.impl.MobilePermissionsServiceImpl; -import weaver.hrm.HrmUserVarify; -import weaver.hrm.User; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -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.HashMap; -import java.util.Map; - -/** - * @Author weaver_cl - * @Description: - * @Date 2022/10/9 - * @Version V1.0 - **/ -public class MobilePermissionsAction { - - public MobilePermissionsService getMobilePermissionsService(User user) { - return ServiceUtil.getService(MobilePermissionsServiceImpl.class,user); - } - - /** - * 晶优光伏 移动电话通过建模控制权限 通讯录显示 - * @param request - * @param response - * @return - */ - @GET - @Path("/controller") - @Produces(MediaType.APPLICATION_JSON) - public String getPermissionInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { - Map apidatas = new HashMap<>(); - try { - User user = HrmUserVarify.getUser(request, response); - //实例化Service 并调用业务类处理 - apidatas = getMobilePermissionsService(user).getPermissionInfo(ParamUtil.request2Map(request), user); - } catch (Exception e) { - //异常处理 - apidatas.put("api_status", false); - } - return JSONObject.toJSONString(apidatas); - } - - - -} diff --git a/src/test/MainTest.java b/src/test/MainTest.java index 2bfc0b3..c156815 100644 --- a/src/test/MainTest.java +++ b/src/test/MainTest.java @@ -1,5 +1,9 @@ package test; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; + /** * @Author weaver_cl * @Description: @@ -10,5 +14,20 @@ public class MainTest { public static void main(String[] args) { + LocalDate now = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + String dateStr1 = now.format(formatter); + + + String dateStr2 = "2025-12"; + + + LocalDate date1 = LocalDate.parse(dateStr1 + "-01"); + LocalDate date2 = LocalDate.parse(dateStr2 + "-01"); + + + int monthsDiff = (int)ChronoUnit.MONTHS.between(date1, date2); + System.out.println(monthsDiff); + } } diff --git a/src/weaver/interfaces/gsjrkg/action/SyncCertificateAction.java b/src/weaver/interfaces/gsjrkg/action/SyncCertificateAction.java deleted file mode 100644 index 42ba2de..0000000 --- a/src/weaver/interfaces/gsjrkg/action/SyncCertificateAction.java +++ /dev/null @@ -1,135 +0,0 @@ -package weaver.interfaces.gsjrkg.action; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import weaver.conn.RecordSet; -import weaver.general.Util; -import weaver.interfaces.workflow.action.Action; -import weaver.soa.workflow.request.MainTableInfo; -import weaver.soa.workflow.request.Property; -import weaver.soa.workflow.request.RequestInfo; - -import java.util.*; - -/** - * @Description: 同步证书到人员卡片个人信息 - * @author:dxfeng - * @createTime: 2023/02/20 - * @version: 1.0 - */ -public class SyncCertificateAction implements Action { - /** - * 建模表表名 - */ - private String modeTableName; - - /** - * 参数名称:建模表字段名:人员表字段名 - */ - private String params; - - private String resourceFieldGroup; - - @Override - public String execute(RequestInfo requestInfo) { - if (StringUtils.isBlank(params)) { - requestInfo.getRequestManager().setMessagecontent("自定义接口参数值配置错误"); - return Action.FAILURE_AND_CONTINUE; - } - if (StringUtils.isBlank(resourceFieldGroup)) { - // -1:基本信息,1:个人信息,3:工作信息 - resourceFieldGroup = "1"; - } - Map fieldMap = new HashMap<>(); - String[] fieldsArray = params.split(";"); - for (String fields : fieldsArray) { - String[] field = fields.split(":"); - if (field.length == 2) { - fieldMap.put(field[0], field[1]); - } - } - if (fieldMap.size() != fieldsArray.length) { - requestInfo.getRequestManager().setMessagecontent("自定义接口参数值格式错误,请检查"); - return Action.FAILURE_AND_CONTINUE; - } - Set modeFields = fieldMap.keySet(); - Map> modeMap = new HashMap<>(); - - RecordSet rs = new RecordSet(); - String resourceId = ""; - MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); - Property[] property = mainTableInfo.getProperty(); - for (Property item : property) { - String name = item.getName(); - String value = Util.null2String(item.getValue()); - if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) { - if ("xm".equals(name)) { - resourceId = value; - } - } - } - // 查询当前人员的所有数据 - StringBuilder sqlBuilder = new StringBuilder("select ").append(StringUtils.join(modeFields, ",")).append(" from ").append(modeTableName).append(" where xm = ").append(resourceId).append(" order by id"); - rs.executeQuery(sqlBuilder.toString()); - while (rs.next()) { - appendIds(modeFields, rs, modeMap); - } - // 判断有无数据,没有的话插入数据 - sqlBuilder = new StringBuilder("SELECT id FROM CUS_FIELDDATA where scope ='HrmCustomFieldByInfoType' and scopeid = '").append(resourceFieldGroup).append("' and id =? "); - rs.executeQuery(sqlBuilder.toString(), resourceId); - if (!rs.next()) { - // 插入人员信息数据 - rs.executeUpdate("insert into cus_fielddata (scope,scopeid,id) values ('HrmCustomFieldByInfoType','" + resourceFieldGroup + "',?)", resourceId); - } - // 组装更新SQL语句 - sqlBuilder = new StringBuilder("update cus_fielddata set "); - for (Map.Entry entry : fieldMap.entrySet()) { - Set valueSet = modeMap.get(entry.getKey()); - String values = CollectionUtils.isEmpty(valueSet) ? "" : StringUtils.join(valueSet, ","); - sqlBuilder.append(" ").append(entry.getValue()).append(" = '").append(values).append("',"); - } - sqlBuilder.deleteCharAt(sqlBuilder.length() - 1); - sqlBuilder.append(" where scope ='HrmCustomFieldByInfoType' and scopeid = ").append(resourceFieldGroup).append(" and id = ").append(resourceId); - rs.executeUpdate(sqlBuilder.toString()); - - return Action.SUCCESS; - } - - - private void appendIds(Set modeFields, RecordSet rs, Map> modeMap) { - for (String modeField : modeFields) { - String ids = rs.getString(modeField); - if (StringUtils.isBlank(ids)) { - return; - } - if (CollectionUtils.isEmpty(modeMap.get(modeField))) { - modeMap.put(modeField, new HashSet<>()); - } - modeMap.get(modeField).addAll(Arrays.asList(ids.split(","))); - } - } - - public String getParams() { - return params; - } - - public void setParams(String params) { - this.params = params; - } - - public String getModeTableName() { - return modeTableName; - } - - public void setModeTableName(String modeTableName) { - this.modeTableName = modeTableName; - } - - public String getResourceFieldGroup() { - return resourceFieldGroup; - } - - public void setResourceFieldGroup(String resourceFieldGroup) { - this.resourceFieldGroup = resourceFieldGroup; - } -} diff --git a/src/weaver/interfaces/zkdpoc/SalaryPayProcessCrob.java b/src/weaver/interfaces/zkdpoc/SalaryPayProcessCrob.java new file mode 100644 index 0000000..576a0ed --- /dev/null +++ b/src/weaver/interfaces/zkdpoc/SalaryPayProcessCrob.java @@ -0,0 +1,83 @@ +package weaver.interfaces.zkdpoc; + +import com.weaver.general.Util; +import weaver.conn.RecordSet; +import weaver.interfaces.schedule.BaseCronJob; +import weaver.interfaces.zkdpoc.po.SalaryPayProcessPo; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author liang.cheng + * @Date 2024/10/11 5:39 PM + * @Description: 中科大POC 更新薪资缴款进度 + * @Version 1.0 + */ +public class SalaryPayProcessCrob extends BaseCronJob { + + + @Override + public void execute() { + + List salaryPayProcessList = new ArrayList<>(); + + RecordSet rs = new RecordSet(); + //1.获取需要更新的缴纳情况人数 + rs.executeQuery("select ryxm from uf_ryxzjnqk"); + while (rs.next()) { + salaryPayProcessList.add(SalaryPayProcessPo.builder().personId(Util.getIntValue(rs.getString("ryxm"))).build()); + } + + LocalDate now = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + String localDate = now.format(formatter); + + salaryPayProcessList.forEach(item -> { + rs.executeQuery("select yd,ydxz from uf_ryxzbzkd where jkqk = 1 and xm = 1 order by yd desc limit 1"); + + if (rs.next()){ + String payMonth = Util.null2String(rs.getString("yd")); + double ydxz = Util.getDoubleValue("ydxz"); + int monthsDiff = calculateMonthDiff(payMonth,localDate); + if (monthsDiff > 3) { + item.setPayProcess(0); + }else if (monthsDiff >= 0) { + item.setPayProcess(1); + }else { + item.setPayProcess(2); + double dueMonth = ydxz * monthsDiff; + item.setDueMoney(dueMonth); + item.setDueStartMonth(payMonth); + item.setDueEndMonth(localDate); + } + + if (monthsDiff >= 0) { + rs.executeUpdate("update uf_ryxzjnqk set jkjd = ? where ryxm = ?",item.getPayProcess(),item.getPersonId()); + }else { + rs.executeUpdate("update uf_ryxzjnqk set jkjd = ?,qfsdq = ?,qfsdz = ?,qfje = ? where ryxm = ?", + item.getPayProcess(),item.getPersonId(),item.getDueStartMonth(),item.getDueEndMonth(),item.getDueMoney()); + } + + + }else { + //不存在缴款数据情况 todo poc待定 + } + + + }); + + } + + private int calculateMonthDiff(String payMonth,String localDate){ + + LocalDate date1 = LocalDate.parse(localDate + "-01"); + LocalDate date2 = LocalDate.parse(payMonth + "-01"); + + + return (int) ChronoUnit.MONTHS.between(date1, date2); + } +} diff --git a/src/weaver/interfaces/zkdpoc/po/SalaryPayPo.java b/src/weaver/interfaces/zkdpoc/po/SalaryPayPo.java new file mode 100644 index 0000000..ccf0b8b --- /dev/null +++ b/src/weaver/interfaces/zkdpoc/po/SalaryPayPo.java @@ -0,0 +1,33 @@ +package weaver.interfaces.zkdpoc.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2024/10/11 5:53 PM + * @Description: + * @Version 1.0 + */ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalaryPayPo { + + private Integer personId; + + /** + * 月度 + */ + private String payMonth; + + + /** + * 月度薪资 + */ + private double salaryMonth; +} diff --git a/src/weaver/interfaces/zkdpoc/po/SalaryPayProcessPo.java b/src/weaver/interfaces/zkdpoc/po/SalaryPayProcessPo.java new file mode 100644 index 0000000..40ea52c --- /dev/null +++ b/src/weaver/interfaces/zkdpoc/po/SalaryPayProcessPo.java @@ -0,0 +1,41 @@ +package weaver.interfaces.zkdpoc.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2024/10/11 5:47 PM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalaryPayProcessPo { + + private Integer id; + + private Integer personId; + + + /** + * 缴款进度 + */ + private Integer payProcess; + + + private String dueStartMonth; + + + private String dueEndMonth; + + + private double dueMoney; + + +}