Merge branch 'prod' into guoshengxiong
This commit is contained in:
commit
8bfcbfa068
@ -5,6 +5,7 @@ import com.zhgd.annotation.OperLog;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerBlacklistService;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
||||
import com.zhgd.xmgl.util.MessageUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@ -13,7 +14,11 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@ -22,7 +27,7 @@ import java.util.Map;
|
||||
* @Title: Controller
|
||||
* @Description: 人员黑名单
|
||||
* @author: pds
|
||||
* @date: 2020-11-23
|
||||
* @date: 2020-11-23
|
||||
* @version: V1.0
|
||||
*/
|
||||
@RestController
|
||||
@ -30,14 +35,19 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
@Api(tags = "人员黑名单")
|
||||
public class WorkerBlacklistController {
|
||||
@Autowired
|
||||
private IWorkerBlacklistService workerBlacklistService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
WorkerInfoServiceImpl workerInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IWorkerBlacklistService workerBlacklistService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询人员黑名单信息", notes = "分页列表查询人员黑名单信息", httpMethod = "POST")
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询人员黑名单信息", notes = "分页列表查询人员黑名单信息", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "userEnterpriseId", value = "用户能查看的企业", paramType = "body", required = false, dataType = "String"),
|
||||
@ -45,96 +55,88 @@ public class WorkerBlacklistController {
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||
})
|
||||
@PostMapping(value = "/list")
|
||||
public Result<IPage<WorkerBlacklist>> queryPageList(@RequestBody Map<String,Object> map) {
|
||||
Result<IPage<WorkerBlacklist>> result = new Result<IPage<WorkerBlacklist>>();
|
||||
IPage<WorkerBlacklist> pageList = workerBlacklistService.selectWorkerBlacklistPage(map);
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
return result;
|
||||
}
|
||||
@PostMapping(value = "/list")
|
||||
public Result<IPage<WorkerBlacklist>> queryPageList(@RequestBody Map<String, Object> map) {
|
||||
Result<IPage<WorkerBlacklist>> result = new Result<IPage<WorkerBlacklist>>();
|
||||
IPage<WorkerBlacklist> pageList = workerBlacklistService.selectWorkerBlacklistPage(map);
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* 添加
|
||||
*
|
||||
* @param workerBlacklist
|
||||
* @return
|
||||
*/
|
||||
@OperLog(operModul = "劳务管理", operType = "添加人员黑名单信息", operDesc = "添加人员黑名单信息")
|
||||
@ApiOperation(value = "添加人员黑名单信息", notes = "添加人员黑名单信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<WorkerBlacklist> add(@RequestBody WorkerBlacklist workerBlacklist) {
|
||||
public Result<WorkerBlacklist> add(@RequestBody WorkerBlacklist workerBlacklist) {
|
||||
workerBlacklistService.addWorkerBlacklist(workerBlacklist);
|
||||
return Result.ok();
|
||||
}
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* 编辑
|
||||
*
|
||||
* @param workerBlacklist
|
||||
* @return
|
||||
*/
|
||||
@OperLog(operModul = "劳务管理",operType = "编辑人员黑名单信息",operDesc = "编辑人员黑名单信息")
|
||||
@ApiOperation(value = "编辑人员黑名单信息", notes = "编辑人员黑名单信息" , httpMethod="POST")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<WorkerBlacklist> edit(@RequestBody WorkerBlacklist workerBlacklist) {
|
||||
Result<WorkerBlacklist> result = new Result<WorkerBlacklist>();
|
||||
WorkerBlacklist workerBlacklistEntity = workerBlacklistService.getById(workerBlacklist.getId());
|
||||
if(workerBlacklistEntity==null) {
|
||||
result.error500(MessageUtil.get("notFindErr"));
|
||||
}else {
|
||||
boolean ok = workerBlacklistService.updateById(workerBlacklist);
|
||||
|
||||
if(ok) {
|
||||
result.successMsg(MessageUtil.get("editSucess"));
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@OperLog(operModul = "劳务管理", operType = "编辑人员黑名单信息", operDesc = "编辑人员黑名单信息")
|
||||
@ApiOperation(value = "编辑人员黑名单信息", notes = "编辑人员黑名单信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result edit(@RequestBody WorkerBlacklist workerBlacklist) {
|
||||
return Result.success(workerBlacklistService.edit(workerBlacklist));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
* 通过id删除
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@OperLog(operModul = "劳务管理",operType = "删除人员黑名单信息",operDesc = "删除人员黑名单信息")
|
||||
@OperLog(operModul = "劳务管理", operType = "删除人员黑名单信息", operDesc = "删除人员黑名单信息")
|
||||
@ApiOperation(value = "删除人员黑名单信息", notes = "删除人员黑名单信息", httpMethod = "POST")
|
||||
@ApiImplicitParam(name = "id", value = "人员黑名单ID", paramType = "body", required = true, dataType = "Integer")
|
||||
@PostMapping(value = "/delete")
|
||||
public Result<WorkerBlacklist> delete(@RequestBody Map<String,Object> map) {
|
||||
Result<WorkerBlacklist> result = new Result<WorkerBlacklist>();
|
||||
WorkerBlacklist workerBlacklist = workerBlacklistService.getById(MapUtils.getString(map,"id"));
|
||||
if(workerBlacklist==null) {
|
||||
public Result<WorkerBlacklist> delete(@RequestBody Map<String, Object> map) {
|
||||
Result<WorkerBlacklist> result = new Result<WorkerBlacklist>();
|
||||
WorkerBlacklist workerBlacklist = workerBlacklistService.getById(MapUtils.getString(map, "id"));
|
||||
if (workerBlacklist == null) {
|
||||
result.error500(MessageUtil.get("notFindErr"));
|
||||
}else {
|
||||
boolean ok = workerBlacklistService.removeById(MapUtils.getString(map,"id"));
|
||||
if(ok) {
|
||||
} else {
|
||||
boolean ok = workerBlacklistService.removeById(MapUtils.getString(map, "id"));
|
||||
if (ok) {
|
||||
result.successMsg(MessageUtil.get("deleteSucess"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
* 通过id查询
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "通过id查询人员黑名单信息", notes = "通过id查询人员黑名单信息", httpMethod = "POST")
|
||||
@ApiImplicitParam(name = "id", value = "人员黑名单ID", paramType = "body", required = true, dataType = "Integer")
|
||||
@PostMapping(value = "/queryById")
|
||||
public Result<WorkerBlacklist> queryById(@RequestBody Map<String,Object> map) {
|
||||
Result<WorkerBlacklist> result = new Result<WorkerBlacklist>();
|
||||
WorkerBlacklist workerBlacklist = workerBlacklistService.getById(MapUtils.getString(map,"id"));
|
||||
if(workerBlacklist==null) {
|
||||
public Result<WorkerBlacklist> queryById(@RequestBody Map<String, Object> map) {
|
||||
Result<WorkerBlacklist> result = new Result<WorkerBlacklist>();
|
||||
WorkerBlacklist workerBlacklist = workerBlacklistService.getById(MapUtils.getString(map, "id"));
|
||||
if (workerBlacklist == null) {
|
||||
result.error500(MessageUtil.get("notFindErr"));
|
||||
}else {
|
||||
result.setResult(workerBlacklist);
|
||||
result.setSuccess(true);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
result.setResult(workerBlacklist);
|
||||
result.setSuccess(true);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "黑名单人员统计", notes = "黑名单人员统计")
|
||||
@ -142,7 +144,7 @@ public class WorkerBlacklistController {
|
||||
@ApiImplicitParam(name = "sn", value = "项目SN", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping("/selectWorkerBlacklistStatistics")
|
||||
public Result<Map<String,Object>> selectWorkerBlacklistStatistics(@RequestBody Map<String, Object> map) {
|
||||
public Result<Map<String, Object>> selectWorkerBlacklistStatistics(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(workerBlacklistService.selectWorkerBlacklistStatistics(map));
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,9 +3,11 @@ package com.zhgd.xmgl.modules.worker.entity;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -107,11 +109,15 @@ public class WorkerAttendanceRuleV2 implements Serializable {
|
||||
* 加班工时时间段开始
|
||||
*/
|
||||
@ApiModelProperty(value = "加班工时时间段开始")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private java.util.Date overtimeHourStart;
|
||||
/**
|
||||
* 加班工时时间段结束
|
||||
*/
|
||||
@ApiModelProperty(value = "加班工时时间段结束")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private java.util.Date overtimeHourEnd;
|
||||
/**
|
||||
* 加班工日计算方式:1:工时段换算工日;2:比例换算工日;
|
||||
|
||||
@ -42,7 +42,6 @@ public class WorkerBlacklist implements Serializable {
|
||||
*/
|
||||
@Excel(name = "人员ID", width = 15)
|
||||
@ApiModelProperty(value = "人员ID")
|
||||
|
||||
private java.lang.Long workerId;
|
||||
/**
|
||||
* 姓名
|
||||
@ -84,6 +83,11 @@ public class WorkerBlacklist implements Serializable {
|
||||
private java.util.Date createTime;
|
||||
@ApiModelProperty(value = "类型:1证书过期2合同过期3保险过期")
|
||||
private java.lang.Integer type;
|
||||
/**
|
||||
* 1是将人员退场0不将人员退场
|
||||
*/
|
||||
@ApiModelProperty(value = "1是将人员退场0不将人员退场")
|
||||
private java.lang.Integer isExit;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "考勤考号")
|
||||
|
||||
@ -51,7 +51,10 @@
|
||||
GROUP BY t1.id
|
||||
</select>
|
||||
<select id="selectWorkerBlacklistPage" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist">
|
||||
SELECT b.worker_name,b.attendance_number,a.*
|
||||
SELECT
|
||||
ifnull(b.worker_name,a.worker_name) as worker_name
|
||||
,b.attendance_number
|
||||
,a.*
|
||||
from worker_blacklist a LEFT JOIN worker_info b ON a.worker_id=b.id
|
||||
WHERE a.project_sn=#{param.projectSn}
|
||||
<if test="param.workerName!=null and param.workerName!=''">
|
||||
|
||||
@ -1397,6 +1397,9 @@
|
||||
WHERE project_sn = #{projectSn}
|
||||
GROUP BY worker_id) b ON a.id = b.worker_id
|
||||
WHERE a.project_sn = #{projectSn}
|
||||
<if test="inServiceType != null">
|
||||
and a.inService_type = #{inServiceType}
|
||||
</if>
|
||||
<if test="userEnterpriseId != null and userEnterpriseId != ''">
|
||||
and FIND_IN_SET(a.enterprise_id, #{userEnterpriseId})
|
||||
</if>
|
||||
|
||||
@ -28,8 +28,11 @@ public interface IWorkerBlacklistService extends IService<WorkerBlacklist> {
|
||||
|
||||
/**
|
||||
* 分页列表查询人员黑名单信息
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
IPage<WorkerBlacklist> selectWorkerBlacklistPage(Map<String, Object> map);
|
||||
|
||||
WorkerBlacklist edit(WorkerBlacklist workerBlacklist);
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.worker.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -100,20 +101,25 @@ public class WorkerAttendanceRuleV2ServiceImpl extends ServiceImpl<WorkerAttenda
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(WorkerAttendanceRuleV2Dto workerAttendanceRuleV2Dto) {
|
||||
WorkerAttendanceRuleV2 oldWorkerAttendanceRuleV2 = baseMapper.selectById(workerAttendanceRuleV2Dto.getId());
|
||||
public void edit(WorkerAttendanceRuleV2Dto dto) {
|
||||
WorkerAttendanceRuleV2 oldWorkerAttendanceRuleV2 = baseMapper.selectById(dto.getId());
|
||||
if (oldWorkerAttendanceRuleV2 == null) {
|
||||
throw new OpenAlertException("未找到对应实体");
|
||||
}
|
||||
int count = this.count(new LambdaQueryWrapper<WorkerAttendanceRuleV2>()
|
||||
.eq(WorkerAttendanceRuleV2::getGroupV2Id, workerAttendanceRuleV2Dto.getGroupV2Id())
|
||||
.ne(WorkerAttendanceRuleV2::getId, workerAttendanceRuleV2Dto.getId())
|
||||
.eq(WorkerAttendanceRuleV2::getGroupV2Id, dto.getGroupV2Id())
|
||||
.ne(WorkerAttendanceRuleV2::getId, dto.getId())
|
||||
);
|
||||
if (count > 0) {
|
||||
throw new OpenAlertException("该考勤组已被别的考勤规则绑定,请选择别的考勤组");
|
||||
}
|
||||
baseMapper.updateById(workerAttendanceRuleV2Dto);
|
||||
saveRuleChangeLog(workerAttendanceRuleV2Dto);
|
||||
baseMapper.updateById(dto);
|
||||
this.update(null, new LambdaUpdateWrapper<WorkerAttendanceRuleV2>()
|
||||
.set(WorkerAttendanceRuleV2::getOvertimeHourStart, dto.getOvertimeHourStart())
|
||||
.set(WorkerAttendanceRuleV2::getOvertimeHourEnd, dto.getOvertimeHourEnd())
|
||||
.eq(WorkerAttendanceRuleV2::getId, dto.getId())
|
||||
);
|
||||
saveRuleChangeLog(dto);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -3,21 +3,21 @@ package com.zhgd.xmgl.modules.worker.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||
import com.zhgd.xmgl.modules.basicdata.enums.CompanyTypeEnum;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerBlacklistMapper;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerBlacklistService;
|
||||
import com.zhgd.xmgl.util.MessageUtil;
|
||||
import com.zhgd.xmgl.util.MapBuilder;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
@ -28,43 +28,53 @@ import java.util.Objects;
|
||||
/**
|
||||
* @Description: 人员黑名单
|
||||
* @author: pds
|
||||
* @date: 2020-11-23
|
||||
* @date: 2020-11-23
|
||||
* @version: V1.0
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class WorkerBlacklistServiceImpl extends ServiceImpl<WorkerBlacklistMapper, WorkerBlacklist> implements IWorkerBlacklistService {
|
||||
@Lazy
|
||||
@Autowired
|
||||
WorkerInfoServiceImpl workerInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private WorkerBlacklistMapper workerBlacklistMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private CompanyMapper companyMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private WorkerInfoMapper workerInfoMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IWorkerBlacklistService workerBlacklistService;
|
||||
|
||||
@Override
|
||||
public void addWorkerBlacklist(WorkerBlacklist workerBlacklist) {
|
||||
QueryWrapper<WorkerBlacklist> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(WorkerBlacklist::getProjectSn, workerBlacklist.getProjectSn())
|
||||
.eq(WorkerBlacklist::getWorkerId, workerBlacklist.getWorkerId());
|
||||
int count = workerBlacklistMapper.selectCount(queryWrapper);
|
||||
if (count > 0) {
|
||||
throw new OpenAlertException(MessageUtil.get("PersonAddErr"));
|
||||
}
|
||||
WorkerInfo workerInfo=workerInfoMapper.selectById(workerBlacklist.getWorkerId());
|
||||
if(workerInfo!=null){
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(workerBlacklist.getWorkerId());
|
||||
if (workerInfo != null) {
|
||||
workerBlacklist.setIdCard(workerInfo.getIdCard());
|
||||
workerBlacklist.setWorkerName(workerInfo.getWorkerName());
|
||||
if (workerInfo.getInserviceType() == 2) {
|
||||
throw new OpenAlertException("该人员已退场");
|
||||
}
|
||||
}
|
||||
workerBlacklistMapper.insert(workerBlacklist);
|
||||
if (Objects.equals(workerBlacklist.getIsExit(), 1)) {
|
||||
workerInfoService.updateWorkerExit(new MapBuilder<String, Object>()
|
||||
.put("workerIdStr", workerBlacklist.getWorkerId())
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> selectWorkerBlacklistStatistics(Map<String, Object> map) {
|
||||
Map<String, Object> data=new HashMap<>(16);
|
||||
QueryWrapper<Company> queryWrapper=new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(Company::getCompanySn, MapUtils.getString(map,"sn"));
|
||||
Company tempCompany=companyMapper.selectOne(queryWrapper);
|
||||
if(tempCompany!=null) {
|
||||
Map<String, Object> data = new HashMap<>(16);
|
||||
QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(Company::getCompanySn, MapUtils.getString(map, "sn"));
|
||||
Company tempCompany = companyMapper.selectOne(queryWrapper);
|
||||
if (tempCompany != null) {
|
||||
if (Objects.equals(tempCompany.getCompanyType(), CompanyTypeEnum.HEADQUARTERS.getValue())) {
|
||||
map.put("headquartersSn", MapUtils.getString(map, "sn"));
|
||||
map.put("companyType", "1");
|
||||
@ -75,11 +85,11 @@ public class WorkerBlacklistServiceImpl extends ServiceImpl<WorkerBlacklistMappe
|
||||
} else {
|
||||
map.put("companyType", "5");
|
||||
}
|
||||
List<Map<String, Object>> list=workerBlacklistMapper.getComapnyWorkerBlacklistStatistics(map);
|
||||
data.put("list",list);
|
||||
}else{
|
||||
List<Map<String, Object>> list=workerBlacklistMapper.getProjectWorkerBlacklistStatistics(map);
|
||||
data.put("list",list);
|
||||
List<Map<String, Object>> list = workerBlacklistMapper.getComapnyWorkerBlacklistStatistics(map);
|
||||
data.put("list", list);
|
||||
} else {
|
||||
List<Map<String, Object>> list = workerBlacklistMapper.getProjectWorkerBlacklistStatistics(map);
|
||||
data.put("list", list);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@ -89,7 +99,36 @@ public class WorkerBlacklistServiceImpl extends ServiceImpl<WorkerBlacklistMappe
|
||||
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
||||
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
||||
Page<WorkerBlacklist> page = new Page<>(pageNo, pageSize);
|
||||
List<WorkerBlacklist> list=workerBlacklistMapper.selectWorkerBlacklistPage(page, map);
|
||||
List<WorkerBlacklist> list = workerBlacklistMapper.selectWorkerBlacklistPage(page, map);
|
||||
return page.setRecords(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkerBlacklist edit(WorkerBlacklist workerBlacklist) {
|
||||
WorkerBlacklist old = this.getById(workerBlacklist.getId());
|
||||
if (old == null) {
|
||||
throw new OpenAlertException("数据不存在,请重新刷新");
|
||||
}
|
||||
WorkerInfo workerInfo = workerInfoService.getById(workerBlacklist.getWorkerId());
|
||||
if (workerInfo != null) {
|
||||
workerBlacklist.setIdCard(workerInfo.getIdCard());
|
||||
workerBlacklist.setWorkerName(workerInfo.getWorkerName());
|
||||
}
|
||||
workerBlacklistService.updateById(workerBlacklist);
|
||||
//修改人员进场、退场
|
||||
if (!Objects.equals(workerBlacklist.getIsExit(), old.getIsExit())) {
|
||||
if (Objects.equals(workerBlacklist.getIsExit(), 1)) {
|
||||
workerInfoService.updateWorkerExit(new MapBuilder<String, Object>()
|
||||
.put("workerIdStr", workerBlacklist.getWorkerId())
|
||||
.build());
|
||||
} else {
|
||||
if (workerInfo != null) {
|
||||
workerInfo.setInserviceType(1);
|
||||
workerInfo.setReEntry(1);
|
||||
workerInfoService.editWorkerInfo(workerInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
return workerBlacklist;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -199,15 +200,17 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
}
|
||||
|
||||
//1. 计算工时
|
||||
BigDecimal hour = null;
|
||||
if (ruleV2 != null && ruleV2.getHourType() != null) {
|
||||
BigDecimal hour = getCalHour(personSn, date, ruleV2, attendances, allAttendances);
|
||||
sta.setHourVal(hour);
|
||||
hour = getCalHour(personSn, date, ruleV2, attendances, allAttendances, null, null);
|
||||
}
|
||||
sta.setHourVal(hour);
|
||||
|
||||
//2.计算工日
|
||||
BigDecimal day = null;
|
||||
if (ruleV2 != null && ruleV2.getDayType() != null) {
|
||||
Integer dayType = ruleV2.getDayType();
|
||||
BigDecimal day = BigDecimal.ZERO;
|
||||
day = BigDecimal.ZERO;
|
||||
if (dayType == 1) {
|
||||
//1:一天一打卡;
|
||||
List<CalAttendanceBo> attendanceBoList = allAttendances.stream().filter(o -> Objects.equals(o.getPersonSn(), personSn) && DateUtil.isSameDay(date, o.getDate())).collect(Collectors.toList());
|
||||
@ -230,7 +233,7 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
// 3:工时段换算工日;
|
||||
if (StrUtil.isNotBlank(ruleV2.getHour2dayJson())) {
|
||||
//工时段换算工日;
|
||||
day = getCalHour2day(ruleV2.getHour2dayJson(), sta.getHourVal().intValue());
|
||||
day = getCalHour2day(ruleV2.getHour2dayJson(), sta.getHourVal());
|
||||
}
|
||||
} else if (dayType == 4) {
|
||||
// 4:比例换算工日;
|
||||
@ -243,36 +246,32 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
}
|
||||
}
|
||||
}
|
||||
sta.setDayVal(day);
|
||||
}
|
||||
sta.setDayVal(day);
|
||||
|
||||
BigDecimal overtimeHour = null;
|
||||
BigDecimal overtimeDay = null;
|
||||
if (ruleV2 != null && ruleV2.getIsOpenOvertime() == 1) {
|
||||
//3.计算加班工时
|
||||
BigDecimal overtimeHour = BigDecimal.ZERO;
|
||||
overtimeHour = BigDecimal.ZERO;
|
||||
if (Objects.equals(ruleV2.getOvertimeHourType(), 1)) {
|
||||
//1:超出规定工作时间的工时;
|
||||
if (sta.getHourVal().compareTo(new BigDecimal(ruleV2.getDailyHour())) > 0) {
|
||||
overtimeHour = sta.getHourVal().subtract(new BigDecimal(ruleV2.getDailyHour()));
|
||||
}
|
||||
} else if (Objects.equals(ruleV2.getOvertimeHourType(), 2)) {
|
||||
} else if (Objects.equals(ruleV2.getOvertimeHourType(), 2) && ruleV2.getOvertimeHourStart() != null && ruleV2.getOvertimeHourEnd() != null && ruleV2.getHourType() != null) {
|
||||
// 2:特定时间内的工时;
|
||||
if (ruleV2.getHourType() != null) {
|
||||
//跨域结束时间+1day
|
||||
Date start = DateUtil.parseDateTime(DateUtil.formatDate(date) + " " + DateUtil.formatTime(ruleV2.getOvertimeHourStart()));
|
||||
Date end = DateUtil.parseDateTime(DateUtil.formatDate(date) + " " + DateUtil.formatTime(ruleV2.getOvertimeHourEnd()));
|
||||
Date hourEnd = DateUtil.compare(start, end) <= 0 ? end : DateUtil.offsetDay(end, 1);
|
||||
List<CalAttendanceBo> list1 = attendances.stream().filter(bo -> DateUtil.compare(bo.getDate(), start) >= 0 &&
|
||||
DateUtil.compare(bo.getDate(), hourEnd) <= 0).collect(Collectors.toList());
|
||||
List<CalAttendanceBo> list2 = allAttendances.stream().filter(bo -> DateUtil.compare(bo.getDate(), start) >= 0 &&
|
||||
DateUtil.compare(bo.getDate(), hourEnd) <= 0).collect(Collectors.toList());
|
||||
overtimeHour = getCalHour(personSn, date, ruleV2, list1, list2);
|
||||
}
|
||||
//跨域结束时间+1day
|
||||
Date overtimeStart = DateUtil.parseDateTime(DateUtil.formatDate(date) + " " + DateUtil.formatTime(ruleV2.getOvertimeHourStart()));
|
||||
Date endTemp = DateUtil.parseDateTime(DateUtil.formatDate(date) + " " + DateUtil.formatTime(ruleV2.getOvertimeHourEnd()));
|
||||
Date overtimeEnd = DateUtil.compare(overtimeStart, endTemp) <= 0 ? endTemp : DateUtil.offsetDay(endTemp, 1);
|
||||
overtimeHour = getCalHour(personSn, date, ruleV2, attendances, allAttendances, overtimeStart, overtimeEnd);
|
||||
}
|
||||
sta.setOvertimeHourVal(overtimeHour);
|
||||
//4.计算加班工日
|
||||
BigDecimal overtimeDay = BigDecimal.ZERO;
|
||||
overtimeDay = BigDecimal.ZERO;
|
||||
if (Objects.equals(ruleV2.getOvertimeDayType(), 1) && StrUtil.isNotBlank(ruleV2.getOvertimeHour2dayJson())) {
|
||||
//加班工时段换算工日;
|
||||
overtimeDay = getCalHour2day(ruleV2.getOvertimeHour2dayJson(), sta.getHourVal().intValue());
|
||||
overtimeDay = getCalHour2day(ruleV2.getOvertimeHour2dayJson(), sta.getHourVal());
|
||||
} else {
|
||||
// 加班比例换算工日;
|
||||
if (ruleV2.getOvertimeRatio2dayDay() != null && ruleV2.getOvertimeRatio2dayHour() != null && sta.getHourVal() != null && ruleV2.getOvertimeRatio2dayHour() != 0) {
|
||||
@ -284,8 +283,9 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
}
|
||||
}
|
||||
}
|
||||
sta.setOvertimeDayVal(overtimeDay);
|
||||
}
|
||||
sta.setOvertimeHourVal(overtimeHour);
|
||||
sta.setOvertimeDayVal(overtimeDay);
|
||||
|
||||
//5.计算考勤
|
||||
sta.setProjectSn(projectSn);
|
||||
@ -295,22 +295,32 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
if (sta.getId() == null) {
|
||||
this.save(sta);
|
||||
} else {
|
||||
this.updateById(sta);
|
||||
this.update(new LambdaUpdateWrapper<WorkerDailyAttendanceStatisticsV2>()
|
||||
.set(WorkerDailyAttendanceStatisticsV2::getHourVal, sta.getHourVal())
|
||||
.set(WorkerDailyAttendanceStatisticsV2::getDayVal, sta.getDayVal())
|
||||
.set(WorkerDailyAttendanceStatisticsV2::getIsAttendance, sta.getIsAttendance())
|
||||
.set(WorkerDailyAttendanceStatisticsV2::getOvertimeHourVal, sta.getOvertimeHourVal())
|
||||
.set(WorkerDailyAttendanceStatisticsV2::getOvertimeDayVal, sta.getOvertimeDayVal())
|
||||
.eq(WorkerDailyAttendanceStatisticsV2::getId, sta.getId())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工时段换算工日
|
||||
*
|
||||
* @param ruleV2
|
||||
* @param json
|
||||
* @param hourVal
|
||||
* @return
|
||||
*/
|
||||
private BigDecimal getCalHour2day(String ruleV2, int hourVal) {
|
||||
private BigDecimal getCalHour2day(String json, BigDecimal hourVal) {
|
||||
if (hourVal == null) {
|
||||
return null;
|
||||
}
|
||||
BigDecimal overtimeDay = BigDecimal.ZERO;
|
||||
List<Hour2dayJsonBo> list = JSON.parseArray(ruleV2, Hour2dayJsonBo.class);
|
||||
List<Hour2dayJsonBo> list = JSON.parseArray(json, Hour2dayJsonBo.class);
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
overtimeDay = list.stream().filter(bo -> hourVal >= bo.getHourMin() && hourVal <= bo.getHourMax()).findFirst().map(Hour2dayJsonBo::getDay).orElse(BigDecimal.ZERO);
|
||||
overtimeDay = list.stream().filter(bo -> hourVal.compareTo(new BigDecimal(bo.getHourMin())) >= 0 && hourVal.compareTo(new BigDecimal(bo.getHourMax())) <= 0).findFirst().map(Hour2dayJsonBo::getDay).orElse(BigDecimal.ZERO);
|
||||
}
|
||||
return overtimeDay;
|
||||
}
|
||||
@ -323,16 +333,26 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
* @param ruleV2
|
||||
* @param attendances
|
||||
* @param allAttendances
|
||||
* @param overtimeStart 加班开始时间
|
||||
* @param overtimeEnd 加班结束时间
|
||||
* @return
|
||||
*/
|
||||
private BigDecimal getCalHour(String personSn, DateTime date, WorkerAttendanceRuleV2 ruleV2, List<CalAttendanceBo> attendances, List<CalAttendanceBo> allAttendances) {
|
||||
private BigDecimal getCalHour(String personSn, DateTime date, WorkerAttendanceRuleV2 ruleV2, List<CalAttendanceBo> attendances, List<CalAttendanceBo> allAttendances, Date overtimeStart, Date overtimeEnd) {
|
||||
Integer hourType = ruleV2.getHourType();
|
||||
BigDecimal hour = BigDecimal.ZERO;
|
||||
if (Objects.equals(hourType, 1)) {
|
||||
//1:末减初;
|
||||
if (allAttendances.size() >= 2) {
|
||||
long betweenMs = DateUtil.betweenMs(allAttendances.get(0).getDate(), allAttendances.get(allAttendances.size() - 1).getDate());
|
||||
hour = new BigDecimal(betweenMs).divide(new BigDecimal(DateUnit.HOUR.getMillis()), 1, RoundingMode.HALF_UP);
|
||||
Date beginDate = allAttendances.get(0).getDate();
|
||||
Date endDate = allAttendances.get(allAttendances.size() - 1).getDate();
|
||||
if (overtimeStart != null && overtimeEnd != null) {
|
||||
beginDate = DateUtil.compare(beginDate, overtimeStart) >= 0 ? beginDate : overtimeStart;
|
||||
endDate = DateUtil.compare(endDate, overtimeEnd) >= 0 ? overtimeEnd : endDate;
|
||||
}
|
||||
if (DateUtil.compare(beginDate, endDate) < 0) {
|
||||
long betweenMs = DateUtil.betweenMs(beginDate, endDate);
|
||||
hour = new BigDecimal(betweenMs).divide(new BigDecimal(DateUnit.HOUR.getMillis()), 1, RoundingMode.HALF_UP);
|
||||
}
|
||||
}
|
||||
} else if (Objects.equals(hourType, 2)) {
|
||||
//2:时间段累加;
|
||||
@ -378,9 +398,17 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
if (attendanceBos.get(i).getPassType() != 2) {
|
||||
continue;
|
||||
}
|
||||
long betweenMs = DateUtil.betweenMs(attendanceBos.get(i - 1).getDate(), attendanceBos.get(i).getDate());
|
||||
BigDecimal hours = new BigDecimal(betweenMs).divide(new BigDecimal(DateUnit.HOUR.getMillis()), 1, RoundingMode.HALF_UP);
|
||||
hour = hour.add(hours);
|
||||
Date beginDate = attendanceBos.get(i - 1).getDate();
|
||||
Date endDate = attendanceBos.get(i).getDate();
|
||||
if (overtimeStart != null && overtimeEnd != null) {
|
||||
beginDate = DateUtil.compare(beginDate, overtimeStart) >= 0 ? beginDate : overtimeStart;
|
||||
endDate = DateUtil.compare(endDate, overtimeEnd) >= 0 ? overtimeEnd : endDate;
|
||||
}
|
||||
if (DateUtil.compare(beginDate, endDate) < 0) {
|
||||
long betweenMs = DateUtil.betweenMs(beginDate, endDate);
|
||||
BigDecimal hours = new BigDecimal(betweenMs).divide(new BigDecimal(DateUnit.HOUR.getMillis()), 1, RoundingMode.HALF_UP);
|
||||
hour = hour.add(hours);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -404,7 +432,7 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
||||
.le(WorkerAttendance::getCreateTime, DateUtil.offsetDay(endTime, 1))
|
||||
.select(WorkerAttendance::getCreateTime, WorkerAttendance::getPassType, WorkerAttendance::getProjectSn, WorkerAttendance::getPersonSn)
|
||||
.orderByAsc(WorkerAttendance::getCreateTime)
|
||||
);
|
||||
).stream().filter(workerAttendance -> StrUtil.isNotBlank(workerAttendance.getPersonSn())).collect(Collectors.toList());
|
||||
List<CalAttendanceBo> allAttendances = attendanceDbs.stream().map(o -> {
|
||||
CalAttendanceBo bo = new CalAttendanceBo();
|
||||
bo.setPersonSn(o.getPersonSn());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user