package com.product.org.admin.service;
|
|
import com.product.common.lang.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import com.product.core.dao.BaseDao;
|
import com.product.core.entity.DataTableEntity;
|
import com.product.core.entity.FieldSetEntity;
|
import com.product.core.exception.BaseException;
|
import com.product.core.permission.PermissionService;
|
import com.product.core.service.support.AbstractBaseService;
|
import com.product.core.service.support.QueryFilterService;
|
import com.product.core.transfer.Transactional;
|
import com.product.org.admin.config.CmnConst;
|
import com.product.org.admin.service.idel.IDimissionHandoverService;
|
import com.product.util.BaseUtil;
|
|
/**
|
* Copyright LX-BASE
|
*
|
* @Title: DimissionHandoverService
|
* @Project: LX-BASE-SERVER
|
* @Date: 2020年6月11日 下午5:25:34
|
* @Author: 郑盟
|
* @Description: 离职交接
|
*/
|
@Component
|
public class DimissionHandoverService extends AbstractBaseService implements IDimissionHandoverService{
|
|
@Autowired
|
public BaseDao baseDao;
|
|
@Autowired
|
PermissionService permissionService;
|
|
@Autowired
|
QueryFilterService queryFilterService;
|
|
/**
|
* 离职交接详情
|
*
|
* @param uuid
|
* @return
|
* @throws BaseException
|
*/
|
public FieldSetEntity findHandover(String uuid) throws BaseException {
|
return baseDao.getFieldSetEntity("product_sys_staff_termination", uuid,false);
|
}
|
|
/**
|
* 离职交接列表
|
* @param fs
|
* @return
|
* @throws BaseException
|
*/
|
public DataTableEntity listHandover(FieldSetEntity fs) throws BaseException {
|
//数据策略
|
String dataFilter=permissionService.getDataFilter("b."+CmnConst.ORG_LEVEL_UUID) ;
|
//高级查询
|
String searchFilter=queryFilterService.getQueryFilter(fs);
|
if(!StringUtils.isEmpty(dataFilter)) {
|
dataFilter=" WHERE "+dataFilter;
|
if (!StringUtils.isEmpty(searchFilter)) {
|
dataFilter+=" AND "+ searchFilter;
|
}
|
}else {
|
if (!StringUtils.isEmpty(searchFilter)) {
|
dataFilter=searchFilter;
|
}
|
}
|
|
StringBuilder sql=new StringBuilder();
|
|
//luoxin 添加字段 a.handover_staff_uuid,a.handover_date 交接人 交接时间
|
sql.append(" SELECT * FROM( ");
|
sql.append(" SELECT a.uuid uuid,b.uuid uuid1,c.uuid uuid2,d.uuid uuid3,e.uuid uuid4,f.uuid uuid5,a.apply_staff_uuid,a.termination_reason,a.change_effective,a.result_status,a.handover_staff_uuid,a.handover_date,b.show_name,b.preferred_name,c.client_name,d.org_level_all,e.job_post_name,f.job_grade_name ");
|
sql.append(" FROM product_sys_staff_termination a ");
|
sql.append(" LEFT JOIN product_sys_staffs b ON a.apply_staff_uuid=b.uuid ");
|
sql.append(" LEFT JOIN product_sys_clients c ON c.uuid=b.client_uuid ");
|
sql.append(" LEFT JOIN product_sys_org_levels d ON d.uuid=b.dept_uuid ");
|
sql.append(" LEFT JOIN product_sys_job_posts e ON e.uuid=b.job_post_uuid ");
|
sql.append(" LEFT JOIN product_sys_job_post_grades f ON f.uuid=b.job_post_grade_uuid ");
|
sql.append(dataFilter);
|
sql.append(" )b ");
|
|
DataTableEntity dt=baseDao.listTable(sql.toString(), null, fs.getInteger("pagesize"), fs.getInteger("cpage"));
|
dt.getMeta().addAliasTable(CmnConst.PRODUCT_SYS_STAFF_TERMINATION,"a");
|
dt.getMeta().addAliasTable("product_sys_staffs","b");
|
dt.getMeta().addAliasTable("product_sys_clients","c");
|
dt.getMeta().addAliasTable("product_sys_org_levels","d");
|
dt.getMeta().addAliasTable("product_sys_job_posts","e");
|
dt.getMeta().addAliasTable("product_sys_job_post_grades","f");
|
dt.getMeta().addAliasField("product_sys_staffs.uuid", "uuid1");
|
dt.getMeta().addAliasField("product_sys_staffs.show_name", "show_name");
|
|
if (!BaseUtil.dataTableIsEmpty(dt)) {
|
baseDao.loadPromptData(dt);
|
baseDao.listInternationDataTable(dt, null);
|
}
|
return dt;
|
}
|
|
/**
|
* 离职交接新增
|
* @param fs
|
* @return
|
* @throws BaseException
|
*/
|
public boolean addHandover(FieldSetEntity fs) throws BaseException {
|
String staff_uuid = fs.getString("apply_staff_uuid");
|
FieldSetEntity fss = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_STAFF_TERMINATION,
|
"result_status=0 and apply_staff_uuid =?", new String[] {staff_uuid}, false);
|
fss.setValue(CmnConst.HANDOVER_STAFF_UUID, fs.getString(CmnConst.HANDOVER_STAFF_UUID));
|
fss.setValue(CmnConst.HANDOVER_DATE, fs.getString(CmnConst.HANDOVER_DATE));
|
fss.setValue(CmnConst.HANDOVER_DETAIL, fs.getString(CmnConst.HANDOVER_DETAIL));
|
fss.setValue(CmnConst.ATTACHMENT, fs.getString(CmnConst.ATTACHMENT));
|
return baseDao.update(fss);
|
}
|
|
/**
|
* 离职交接修改
|
* @param fs
|
* @return
|
* @throws BaseException
|
*/
|
@Transactional
|
public boolean updateHandover(FieldSetEntity fs) throws BaseException {
|
String uuid = fs.getString("uuid");
|
FieldSetEntity fss = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_STAFF_TERMINATION, uuid, false);
|
if (fss != null) {
|
fss.setValue(CmnConst.HANDOVER_STAFF_UUID, fs.getString(CmnConst.HANDOVER_STAFF_UUID));
|
fss.setValue(CmnConst.HANDOVER_DATE, fs.getString(CmnConst.HANDOVER_DATE));
|
fss.setValue(CmnConst.HANDOVER_DETAIL, fs.getString(CmnConst.HANDOVER_DETAIL));
|
fss.setValue(CmnConst.ATTACHMENT, fs.getString(CmnConst.ATTACHMENT));
|
}
|
// 处理删除的文件
|
String delete_attachments = fs.getString("delete_attachments");
|
if (!StringUtils.isEmpty(delete_attachments)) {
|
String[] split = delete_attachments.split(",");
|
for (int i = 0; i < split.length; i++) {
|
baseDao.delete("product_sys_attachments", new Object[] { split[i] });
|
}
|
}
|
return baseDao.update(fss);
|
}
|
|
/**
|
* 员工交接删除
|
* @param fs
|
* @return
|
* @throws BaseException
|
*/
|
@Transactional
|
public boolean delectHandover(FieldSetEntity fs) throws BaseException {
|
|
// 删除文件
|
FieldSetEntity product_sys_staff_termination = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_STAFF_TERMINATION,fs.getUUID(), false);
|
String changeUuids =product_sys_staff_termination.getString("apply_staff_uuid") + ","+product_sys_staff_termination.getString(CmnConst.HANDOVER_STAFF_UUID);
|
baseDao.delete("product_sys_attachments", "staff_uuid=? and attachment_data_field='attachment' and attachment_data_table='product_sys_staff_termination'",new String[] { changeUuids });
|
|
String uuid = fs.getString("uuid");
|
if (StringUtils.isEmpty(uuid)) { //杜洪波 updateTime 2020-12-17 09:48:00
|
return false;
|
}
|
FieldSetEntity fss = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_STAFF_TERMINATION, uuid, false);
|
fss.setValue(CmnConst.HANDOVER_STAFF_UUID, null);
|
fss.setValue(CmnConst.HANDOVER_DATE, null);
|
fss.setValue(CmnConst.HANDOVER_DETAIL, null);
|
fss.setValue(CmnConst.ATTACHMENT, null);
|
return baseDao.update(fss);
|
}
|
|
|
}
|