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.
82 lines
3.0 KiB
Java
82 lines
3.0 KiB
Java
3 years ago
|
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;
|
||
|
|
||
|
/**
|
||
|
* @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;
|
||
|
Integer businessSource = null;
|
||
|
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;
|
||
|
case "ywly":
|
||
|
businessSource = 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(businessSource).requestId(requestid).build();
|
||
|
MapperProxyFactory.getProxy(StaffsMapper.class).insertIgnoreNull(staffsPO);
|
||
|
|
||
|
// 更新编制表
|
||
|
staffPO.setStaffNum(staffPO.getStaffNum() + changeNum);
|
||
|
|
||
|
StaffBO.buildStaffDesc(staffPO);
|
||
|
|
||
|
MapperProxyFactory.getProxy(StaffMapper.class).updateStaff(staffPO);
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
}
|