You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-hrm-organization/src/weaver/interfaces/organization/action/StaffChangeAction.java

83 lines
3.1 KiB
Java

package weaver.interfaces.organization.action;
import com.engine.organization.entity.staff.bo.StaffBO;
import com.engine.organization.entity.staff.po.StaffPO;
import com.engine.organization.entity.staff.po.StaffsPO;
import com.engine.organization.mapper.staff.StaffMapper;
import com.engine.organization.mapper.staff.StaffsMapper;
import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.lang3.StringUtils;
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 weaver.workflow.request.RequestManager;
import java.util.Date;
/**
* @description: TODO
* @author:dxfeng
* @createTime: 2022/06/07
* @version: 1.0
*/
public class StaffChangeAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
Integer requestid = Integer.parseInt(requestInfo.getRequestid());
Long companyId = null;
Long departmentId = null;
Long jobId = null;
Integer changeNum = null;
RequestManager requestManager = requestInfo.getRequestManager();
int creator = requestManager.getCreater();
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
Property[] property = mainTableInfo.getProperty();
// 取表单数据赋值
for (int i = 0; i < property.length; i++) {
String name = property[i].getName();
String value = Util.null2String(property[i].getValue());
if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) {
switch (name) {
case "fb":
companyId = Long.parseLong(value);
break;
case "bm":
departmentId = Long.parseLong(value);
break;
case "gw":
jobId = Long.parseLong(value);
break;
case "bzbds":
changeNum = Integer.parseInt(value);
break;
default:
break;
}
}
}
// 根据分部、部门、岗位 定位具体编制信息
StaffPO staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffByFilter(companyId, departmentId, jobId);
if (null != staffPO) {
// 插入明细表
StaffsPO staffsPO = StaffsPO.builder().staffId(staffPO.getId()).businessType(2).changeNum(changeNum).businessSource(2).requestId(requestid).deleteType(0).creator((long) creator).createTime(new Date()).build();
MapperProxyFactory.getProxy(StaffsMapper.class).insertIgnoreNull(staffsPO);
// 更新编制表
staffPO.setStaffNum(staffPO.getStaffNum() + changeNum);
StaffBO.buildStaffDesc(staffPO);
MapperProxyFactory.getProxy(StaffMapper.class).updateStaff(staffPO);
}
return null;
}
}