Compare commits

...

5 Commits

@ -1,8 +0,0 @@
<component name="ArtifactManager">
<artifact type="jar" name="weaver-develop:jar">
<output-path>$PROJECT_DIR$/out/artifacts/weaver_develop_jar</output-path>
<root id="archive" name="weaver-develop.jar">
<element id="module-output" name="weaver-develop" />
</root>
</artifact>
</component>

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Main-Class: test.MainTest

@ -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 {
}

@ -0,0 +1,10 @@
package com.api.zkdpoc.web;
/**
* @Author liang.cheng
* @Date 2024/10/14 2:52 PM
* @Description: TODO
* @Version 1.0
*/
public class ProjectSaveAction {
}

@ -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<Map<String, Object>> {
private static final String FIELDID = "field100043"; //移动电话自定义字段field100026
private static final String SCOPE = "HrmCustomFieldByInfoType";
private static final String SCOPEID = "-1";
public MobilePermissionsCmd(Map<String, Object> params, User user) {
this.user = user;
this.params = params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> data = new HashMap<>();
String uid = Utils.null2String(user.getUID());
RecordSet rs = new RecordSet();
HashSet<String> 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<String,String> 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;
}
}

@ -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<String, Object> getPermissionInfo(Map<String, Object> params, User user);
}

@ -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<String, Object> getPermissionInfo(Map<String, Object> params, User user) {
return commandExecutor.execute(new MobilePermissionsCmd(params,user));
}
}

@ -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<String, Object> 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);
}
}

@ -0,0 +1,10 @@
package com.engine.zkdpoc.service;
/**
* @Author liang.cheng
* @Date 2024/10/14 2:54 PM
* @Description: TODO
* @Version 1.0
*/
public interface ProjectSaveService {
}

@ -0,0 +1,10 @@
package com.engine.zkdpoc.service.impl;
/**
* @Author liang.cheng
* @Date 2024/10/14 2:55 PM
* @Description: TODO
* @Version 1.0
*/
public class ProjectSaveServiceImpl {
}

@ -0,0 +1,16 @@
package com.engine.zkdpoc.vo;
/**
* @Author liang.cheng
* @Date 2024/10/14 3:02 PM
* @Description: TODO
* @Version 1.0
*/
public class ProjectSaveRemindVo {
}

@ -0,0 +1,10 @@
package com.engine.zkdpoc.web;
/**
* @Author liang.cheng
* @Date 2024/10/14 2:53 PM
* @Description: TODO
* @Version 1.0
*/
public class ProjectSaveAction {
}

@ -1,5 +1,17 @@
package test;
import cn.hutool.core.collection.CollectionUtil;
import org.apache.commons.collections.CollectionUtils;
import weaver.general.TimeUtil;
import weaver.interfaces.zkdpoc.po.EntryWorkflowPo;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @Author weaver_cl
* @Description:
@ -10,5 +22,17 @@ public class MainTest {
public static void main(String[] args) {
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
String formattedTime = TimeUtil.getOnlyCurrentTimeString();
System.out.println(formattedDate);
System.out.println(formattedTime);
}
}

@ -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<String, String> 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<String> modeFields = fieldMap.keySet();
Map<String, Set<String>> 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<String, String> entry : fieldMap.entrySet()) {
Set<String> 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<String> modeFields, RecordSet rs, Map<String, Set<String>> 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;
}
}

@ -0,0 +1,77 @@
package weaver.interfaces.zkdpoc.action;
import com.weaver.general.Util;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.interfaces.zkdpoc.po.EntryWorkflowPo;
import weaver.soa.workflow.request.RequestInfo;
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/12 10:47 AM
* @Description: -poc
* @Version 1.0
*/
public class EntryWorkflowAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
String requestid = requestInfo.getRequestid();
int formid = Math.abs(requestInfo.getRequestManager().getFormid());
RecordSet rs = new RecordSet();
String mainTable = String.format("%s%s", "formtable_main_", formid);
String detaiTable = String.format("%s%s",mainTable,"_dt2");
EntryWorkflowPo entryPo = EntryWorkflowPo.builder().build();
//1.获取表单数据
rs.executeQuery("select id,ksrq,jsrq,rysjid,dw,gw,xced from "+mainTable+" where requestid = ?",requestid);
if (rs.next()) {
entryPo.setId(Util.getIntValue(rs.getString("id")));
entryPo.setStartDate(Util.null2String(rs.getString("ksrq")));
entryPo.setEndDate(Util.null2String(rs.getString("jsrq")));
entryPo.setPersonId(Util.getIntValue(rs.getString("rysjid")));
entryPo.setSubCompanyId(Util.getIntValue(rs.getString("dw")));
entryPo.setJobTitleId(Util.getIntValue(rs.getString("gw")));
entryPo.setSalaryMonth(Util.getDoubleValue(rs.getString("xced")));
}
//2.起始日期不为空时明细赋值操作
if (!"".equals(entryPo.getStartDate()) && !"".equals(entryPo.getEndDate())) {
List<String> months = detailMonth(entryPo.getStartDate(), entryPo.getEndDate());
months.forEach(month -> rs.executeUpdate("insert into "+detaiTable+"(mainid,yd,xm,szdw,gw,ydxz) values(?,?,?,?,?,?)",
entryPo.getId(),month,entryPo.getPersonId(),entryPo.getSubCompanyId(),entryPo.getJobTitleId(),entryPo.getSalaryMonth()));
}
return Action.SUCCESS;
}
private List<String> detailMonth(String startDateStr,String endDateStr) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate startDate = LocalDate.parse(startDateStr, formatter);
LocalDate endDate = LocalDate.parse(endDateStr, formatter);
List<String> months = new ArrayList<>();
DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
while (!startDate.isAfter(endDate)) {
months.add(startDate.format(monthFormatter));
startDate = startDate.plus(1, ChronoUnit.MONTHS);
}
return months;
}
}

@ -0,0 +1,89 @@
package weaver.interfaces.zkdpoc.crob;
import cn.hutool.core.collection.CollectionUtil;
import org.apache.commons.collections.CollectionUtils;
import weaver.conn.RecordSet;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.interfaces.schedule.BaseCronJob;
import weaver.interfaces.zkdpoc.po.PersonInfoCutPo;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* @Author liang.cheng
* @Date 2024/10/15 9:34 AM
* @Description: poc
* @Version 1.0
*/
public class PersonInfoCutCrob extends BaseCronJob {
@Override
public void execute() {
RecordSet rs = new RecordSet();
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
String formattedTime = TimeUtil.getOnlyCurrentTimeString();
//模块ID
Integer modeId = 335;
List<Integer> ids = new ArrayList<>();
//1.主表数据复制切片
rs.executeQuery("select id from formtable_main_492 where qprq = ?",formattedDate);
while (rs.next()) {
ids.add(Util.getIntValue(rs.getString("id")));
}
if (CollectionUtils.isNotEmpty(ids)) {
String join = CollectionUtil.join(ids, ",");
rs.execute("delete from formtable_main_492 where id in ("+join+")");
rs.execute("delete from formtable_main_492_dt1 where mainid in ("+join+")");
}
rs.execute("insert into formtable_main_492(sjyid,zt,field001,field002,field003,field004,field005,field006,field007,zp,fb,gw,htbh,htpq,\n" +
"htksrq,htjsrq,remark,qx,gwlb,zyjszw,bzlb,sfgjbsh,gjbshjzrq,gjbshczrq,qprq) select id,zt,field001,field002,field003,field004,field005,field006,field007,zp,fb,gw,htbh,htpq,\n" +
"htksrq,htjsrq,remark,qx,gwlb,zyjszw,bzlb,sfgjbsh,gjbshjzrq,gjbshczrq,DATE_FORMAT(CURDATE(), '%Y-%m-%d') from uf_ryxx");
//2.更新查询列表所需字段
rs.executeUpdate("update formtable_main_492 set formmodeid = ?,modedatacreater = ?,modedatacreatedate = ?,modedatacreatetime = ? where" +
" qprq = ?", modeId,1,formattedDate,formattedTime,formattedDate);
//3.更新明细表
List<PersonInfoCutPo> personInfoCutPos = new ArrayList<>();
rs.executeQuery("select a.id,a.sjyid,b.field001,b.field002,b.field003,b.field004,b.lcmxid from formtable_main_492 a \n" +
"INNER JOIN uf_ryxx_dt1 b on a.sjyid = b.mainid where a.qprq = ?",formattedDate);
while (rs.next()) {
personInfoCutPos.add(PersonInfoCutPo.builder()
.id(Util.getIntValue(rs.getString("id")))
.oldId(Util.getIntValue(rs.getString("sjyid")))
.memberName(Util.null2String(rs.getString("field001")))
.namely(Util.null2String(rs.getString("field002")))
.workName(Util.null2String(rs.getString("field003")))
.jobType(Util.null2String(rs.getString("field004")))
.requestId(Util.null2String(rs.getString("lcmxid")))
.build());
}
personInfoCutPos.forEach(item -> rs.executeUpdate("insert into formtable_main_492_dt1(mainid,field001,field002,field003,field004,lcmxid) values(?,?,?,?,?,?)",
item.getId(),item.getMemberName(),item.getNamely(),item.getWorkName(),item.getJobType(),item.getRequestId()));
}
}

@ -0,0 +1,95 @@
package weaver.interfaces.zkdpoc.crob;
import com.weaver.general.BaseBean;
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<SalaryPayProcessPo> salaryPayProcessList = new ArrayList<>();
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
//1.获取需要更新的缴纳情况人数
rs.executeQuery("select ryxm from uf_ryxzjnqk");
while (rs.next()) {
SalaryPayProcessPo processPo = new SalaryPayProcessPo();
processPo.setPersonId(Util.getIntValue(rs.getString("ryxm")));
salaryPayProcessList.add(processPo);
}
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 = ? order by yd desc limit 1",item.getPersonId());
if (rs.next()){
String payMonth = Util.null2String(rs.getString("yd"));
double ydxz = Util.getDoubleValue(rs.getString("ydxz"));
int monthsDiff = calculateMonthDiff(payMonth,localDate);
if (monthsDiff > 3) {
item.setPayProcess(0);
}else if (monthsDiff >= 0) {
item.setPayProcess(1);
}else {
item.setPayProcess(2);
double dueMoney = Math.abs(monthsDiff) * ydxz;
bb.writeLog("ydxz-a",+ydxz);
bb.writeLog("monthsDiff",+Math.abs(monthsDiff));
bb.writeLog("dueMoney"+dueMoney);
item.setDueMoney(dueMoney);
item.setDueStartMonth(payMonth);
item.setDueEndMonth(localDate);
}
bb.writeLog("SalaryPayProcessPo-item"+item.toString());
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.getDueStartMonth(),item.getDueEndMonth(),item.getDueMoney(),item.getPersonId());
}
}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);
}
}

@ -0,0 +1,35 @@
package weaver.interfaces.zkdpoc.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author liang.cheng
* @Date 2024/10/12 10:57 AM
* @Description: TODO
* @Version 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EntryWorkflowPo {
private Integer id;
private String startDate;
private String endDate;
private Integer personId;
private Integer subCompanyId;
private Integer jobTitleId;
private double salaryMonth;
}

@ -0,0 +1,90 @@
package weaver.interfaces.zkdpoc.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author liang.cheng
* @Date 2024/10/15 10:28 AM
* @Description: TODO
* @Version 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PersonInfoCutPo {
private Integer id;
private Integer oldId;
private String cutDate;
/**
*
*/
private Integer status;
private String lastName;
private Integer sex;
private String birthday;
private String idCard;
private String mobile;
private String email;
private String address;
private Integer photos;
private Integer subCompanyId;
private Integer jobTitle;
private String htNo;
private String htDate;
private String htStartDate;
private String htEndDate;
private String remark;
private Integer nextGo;
private Integer nextContent;
private Integer jobGroub;
private Integer staffType;
/**
*
*/
private Integer postDoctoral;
private String postGoDate;
private String postOutDate;
/**
*
*/
private String memberName;
private String namely;
private String workName;
private String jobType;
private String requestId;
}

@ -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;
}

@ -0,0 +1,38 @@
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 personId;
/**
*
*/
private Integer payProcess;
private String dueStartMonth;
private String dueEndMonth;
private double dueMoney;
}
Loading…
Cancel
Save