人员出场合同工资卡改成配置项

This commit is contained in:
方亮 2025-12-18 09:22:05 +08:00
parent d01e615e7f
commit 20140f50b7
3 changed files with 53 additions and 21 deletions

View File

@ -60,4 +60,6 @@ public interface PmWorkerExitMapper {
List<PmWorker> selectWorkListByProId(PmWorkerDto o);
List<PmWorker> getWorkerListByPhone(PmWorkerDto o);
List<MapBeanVo> getDictionary(String type);
}

View File

@ -56,16 +56,29 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
@Override
public AjaxResult updateWorkerExit(PmWorkerDto record, List<WebFileDto> listFile) throws Exception {
StringBuilder sb = new StringBuilder();
//查询是否上海外
Boolean isShangHai = mapper.getProLocationByProId(record.getProId());
boolean contract = false;
boolean wageCard = false;
//先调用接口判断是否需要合同和工资卡补全才出场
List<MapBeanVo> aa = mapper.getDictionary("functional_limitation");
if(!aa.isEmpty()){
for (MapBeanVo vo : aa) {
if(vo.getKey().equals("合同")){
if("0".equals(vo.getValue())){
contract = true;
}
}else if(vo.getKey().equals("工资卡")) {
if ("10".equals(vo.getValue())) {
wageCard = true;
}
}
}
}
//查询合同工资卡是否齐全
List<MapBeanVo> list = mapper.getContractIdAndWageCard(record.getWorkerId());
if(Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0){
if(isShangHai == null || !isShangHai){
//上海外删除合同
int i = contractService.deleteByWorkerId(record.getWorkerId());
}
if((wageCard || Integer.parseInt(list.get(0).getValue())>0) && (contract || Integer.parseInt(list.get(1).getValue())>0)){
//删除合同
contractService.deleteByWorkerId(record.getWorkerId());
//查询是不是上海内最后一个在场工程一定要放在删除实时在场前查
int number = mapper.getEinProNum(record.getWorkerId());
//删除实时在场
@ -87,9 +100,6 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
}
String isLast = "";
if(Boolean.TRUE.equals(isShangHai) && number > 1){
isLast = "0";
}
int k = mapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),isLast);
if(k==1){
try {
@ -125,16 +135,29 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
List<Integer> proId = new ArrayList<>();
List<Integer> supId = new ArrayList<>();
List<Integer> teamId = new ArrayList<>();
boolean contract = false;
boolean wageCard = false;
//先调用接口判断是否需要合同和工资卡补全才出场
List<MapBeanVo> aa = mapper.getDictionary("functional_limitation");
if(!aa.isEmpty()){
for (MapBeanVo vo : aa) {
if(vo.getKey().equals("合同")){
if("0".equals(vo.getValue())){
contract = true;
}
}else if(vo.getKey().equals("工资卡")) {
if ("10".equals(vo.getValue())) {
wageCard = true;
}
}
}
}
for (PmWorkerDto bean : list) {
//查询合同工资卡是否齐全
List<MapBeanVo> listData = mapper.getContractIdAndWageCard(bean.getWorkerId());
if("1".equals(listData.get(0).getValue()) && "1".equals(listData.get(1).getValue())) {
//查询是否上海外
Boolean isShangHai = mapper.getProLocationByProId(bean.getProId());
if(isShangHai == null || !isShangHai){
//上海外删除合同
int i = contractService.deleteByWorkerId(bean.getWorkerId());
}
if((wageCard || Integer.parseInt(listData.get(0).getValue())>0) && (contract || Integer.parseInt(listData.get(1).getValue())>0)){
//删除合同
contractService.deleteByWorkerId(bean.getWorkerId());
//查询是不是上海内最后一个在场工程一定要放在删除实时在场前查
int number = mapper.getEinProNum(bean.getWorkerId());
//删除实时在场
@ -143,9 +166,6 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
//是否上传文件
int isUploadFile = 0;
String isLast = "";
if(Boolean.TRUE.equals(isShangHai) && number > 1){
isLast = "0";
}
int k = mapper.updateEinProRecordStatus(bean.getId(), einStatus, isUploadFile, bean.getExitWay(),isLast);
if (k == 1) {
userId.add(bean.getWorkerId());

View File

@ -263,4 +263,14 @@
AND bwepr.is_upload_file = 0 and pp.is_shanghai = 0
and if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) &lt; 31
</select>
<select id="getDictionary" resultType="com.bonus.bmw.domain.vo.MapBeanVo">
SELECT
dict_label AS `key`,
dict_value AS `value`
FROM
sys_dict_data
WHERE
dict_type = #{type}
</select>
</mapper>