入场,出场图片处理

This commit is contained in:
方亮 2025-08-14 19:30:30 +08:00
parent c90df5e56b
commit 4c0c61cbc5
17 changed files with 247 additions and 62 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ logs
/EasyCode/

View File

@ -149,4 +149,14 @@ public class Constants
* 工资卡表 * 工资卡表
*/ */
public static final String FILE_UPLOAD_WAGE_CARD = "bm_worker_wage_card"; public static final String FILE_UPLOAD_WAGE_CARD = "bm_worker_wage_card";
/**
* 人员表
*/
public static final String FILE_UPLOAD_WORKER = "pm_worker";
/**
* 人员出场表
*/
public static final String FILE_UPLOAD_WORKER_EXIT = "bm_worker_ein_pro_record";
} }

View File

@ -116,7 +116,11 @@ public class BmWorkerContractController extends BaseController {
try { try {
List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class); List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class);
BmWorkerContract o = FastJsonHelper.jsonStrToBean(params, BmWorkerContract.class); BmWorkerContract o = FastJsonHelper.jsonStrToBean(params, BmWorkerContract.class);
return toAjax(service.updateByPrimaryKey(o,new FileBasicMsgDto(listFile, files))); //先将数据对应关系处理还
for (int i = 0; i < listFile.size(); i++) {
listFile.get(i).setFile(files[i]);
}
return toAjax(service.updateByPrimaryKey(o,listFile));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
} }

View File

@ -12,10 +12,8 @@ import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.annotation.InnerAuth; import com.bonus.common.security.annotation.InnerAuth;
import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth; import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -65,7 +63,11 @@ public class BmWorkerWageCardController extends BaseController {
try { try {
List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class); List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class);
BmWorkerWageCard o = FastJsonHelper.jsonStrToBean(params, BmWorkerWageCard.class); BmWorkerWageCard o = FastJsonHelper.jsonStrToBean(params, BmWorkerWageCard.class);
return toAjax(service.updateByPrimaryKey(o,new FileBasicMsgDto(listFile, files))); //先将数据对应关系处理还
for (int i = 0; i < listFile.size(); i++) {
listFile.get(i).setFile(files[i]);
}
return toAjax(service.updateByPrimaryKey(o,listFile));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
} }

View File

@ -1,5 +1,7 @@
package com.bonus.bmw.controller; package com.bonus.bmw.controller;
import com.bonus.bmw.domain.dto.FileBasicMsgDto;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.BmWorkerContract; import com.bonus.bmw.domain.vo.BmWorkerContract;
import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.BmWorkerWageCard;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
@ -7,6 +9,7 @@ import com.bonus.bmw.service.PmWorkerService;
import com.bonus.bmw.service.impl.PmWorkerServiceImpl; import com.bonus.bmw.service.impl.PmWorkerServiceImpl;
import com.bonus.common.core.utils.face.ArcFaceHelper; import com.bonus.common.core.utils.face.ArcFaceHelper;
import com.bonus.common.core.utils.face.FaceResult; import com.bonus.common.core.utils.face.FaceResult;
import com.bonus.common.core.utils.json.FastJsonHelper;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.core.web.page.TableDataInfo;
@ -63,9 +66,19 @@ public class PmWorkerController extends BaseController {
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth)
@PostMapping("/insert") @PostMapping("/insert")
@SysLog(title = "人员入场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员入场管理", details = "新增人员入场") @SysLog(title = "人员入场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员入场管理", details = "新增人员入场")
public AjaxResult insert(@Validated @RequestBody PmWorker o) { public AjaxResult insert(@RequestParam(value = "files") MultipartFile[] files,@RequestParam(value = "fileMsg") String fileMsg, @RequestParam(value = "params")String params) {
try { try {
return service.insert(o); List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class);
// 验证对应关系
if (listFile.size() != files.length) {
throw new IllegalArgumentException("文件信息与文件数量不匹配");
}
//先将数据对应关系处理还
for (int i = 0; i < listFile.size(); i++) {
listFile.get(i).setFile(files[i]);
}
PmWorker o = FastJsonHelper.jsonStrToBean(params, PmWorker.class);
return service.insert(o,listFile);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
} }
@ -92,9 +105,19 @@ public class PmWorkerController extends BaseController {
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth)
@PostMapping("/edit") @PostMapping("/edit")
@SysLog(title = "人员入场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员入场管理", details = "修改人员入场") @SysLog(title = "人员入场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员入场管理", details = "修改人员入场")
public AjaxResult edit(@Validated @RequestBody PmWorker o) { public AjaxResult edit(@RequestParam(value = "files") MultipartFile[] files,@RequestParam(value = "fileMsg") String fileMsg, @RequestParam(value = "params")String params) {
try { try {
return toAjax(service.updateByPrimaryKey(o)); List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class);
// 验证对应关系
if (listFile.size() != files.length) {
throw new IllegalArgumentException("文件信息与文件数量不匹配");
}
//先将数据对应关系处理
for (int i = 0; i < listFile.size(); i++) {
listFile.get(i).setFile(files[i]);
}
PmWorker o = FastJsonHelper.jsonStrToBean(params, PmWorker.class);
return toAjax(service.updateByPrimaryKey(o,listFile));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
} }

View File

@ -1,9 +1,12 @@
package com.bonus.bmw.controller; package com.bonus.bmw.controller;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.BmWorkerWageCard;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.service.PmWorkerExitService; import com.bonus.bmw.service.PmWorkerExitService;
import com.bonus.bmw.service.impl.PmWorkerServiceImpl; import com.bonus.bmw.service.impl.PmWorkerServiceImpl;
import com.bonus.common.core.utils.json.FastJsonHelper;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.core.web.page.TableDataInfo;
@ -14,6 +17,7 @@ import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -54,11 +58,17 @@ public class PmWorkerExitController extends BaseController {
//, requiresPermissions = @RequiresPermissions("system:workerExit:exit") //, requiresPermissions = @RequiresPermissions("system:workerExit:exit")
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth)
@PostMapping("/exit/{id}/{workerId}") @PostMapping("/exit")
@SysLog(title = "人员出场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员出场管理", details = "人员出场") @SysLog(title = "人员出场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员出场管理", details = "人员出场")
public AjaxResult exit(@PathVariable("id") Integer id,@PathVariable("workerId") Integer workerId) { public AjaxResult exit(@RequestParam(value = "files") MultipartFile[] files, @RequestParam(value = "fileMsg") String fileMsg, @RequestParam(value = "params")String params) {
try { try {
return toAjax(service.updateWorkerExit(id,workerId)); List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class);
PmWorkerDto o = FastJsonHelper.jsonStrToBean(params, PmWorkerDto.class);
//先将数据对应关系处理还
for (int i = 0; i < listFile.size(); i++) {
listFile.get(i).setFile(files[i]);
}
return toAjax(service.updateWorkerExit(o,listFile));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
} }
@ -77,6 +87,45 @@ public class PmWorkerExitController extends BaseController {
return error("系统异常,请联系管理员"); return error("系统异常,请联系管理员");
} }
/**
* 人员补文件
* @param
* @return
* , requiresPermissions = @RequiresPermissions("system:workerExit:batchExit")
*/
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth)
@PostMapping("/exitFile")
@SysLog(title = "人员出场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员出场管理", details = "人员出场")
public AjaxResult exitFile(@RequestParam(value = "files") MultipartFile[] files, @RequestParam(value = "fileMsg") String fileMsg, @RequestParam(value = "params")String params) {
try {
List<WebFileDto> listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class);
PmWorkerDto o = FastJsonHelper.jsonStrToBean(params, PmWorkerDto.class);
//先将数据对应关系处理还
for (int i = 0; i < listFile.size(); i++) {
listFile.get(i).setFile(files[i]);
}
return toAjax(service.exitFile(o,listFile));
} catch (Exception e) {
logger.error(e.toString(), e);
}
return error("系统异常,请联系管理员");
}
/**
* 单独查看文件
*/
//, requiresPermissions = @RequiresPermissions("system:contract:remove")
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth)
@PostMapping("/lookFile/{id}")
@SysLog(title = "出场管理", businessType = OperaType.QUERY, logType = 0, module = "施工人员->红绿灯管理->出场管理", details = "单独查看文件")
public AjaxResult lookFile(@PathVariable("id") Integer id) {
try {
return service.lookFileByPrimaryKey(id);
} catch (Exception e) {
logger.error(e.toString(), e);
}
return error("系统异常,请联系管理员");
}
/** /**
* 查询单人历史列表 * 查询单人历史列表

View File

@ -1,6 +1,7 @@
package com.bonus.bmw.domain.dto; package com.bonus.bmw.domain.dto;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
/** /**
* @author: fly * @author: fly
@ -18,4 +19,7 @@ public class WebFileDto {
*/ */
private String type; private String type;
private MultipartFile file;
} }

View File

@ -1,7 +1,10 @@
package com.bonus.bmw.domain.vo; package com.bonus.bmw.domain.vo;
import com.bonus.system.api.model.UploadFileVo;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* 人员工资卡信息表 * 人员工资卡信息表
*/ */
@ -61,4 +64,9 @@ public class BmWorkerWageCard {
* 手机号 * 手机号
*/ */
private String phone; private String phone;
/**
* 工资卡照片
*/
private List<UploadFileVo> files;
} }

View File

@ -29,7 +29,7 @@ public interface BmWorkerContractService{
* @param record * @param record
* @return * @return
*/ */
int updateByPrimaryKey(BmWorkerContract record, FileBasicMsgDto files); int updateByPrimaryKey(BmWorkerContract record, List<WebFileDto> listFile);
/** /**
* 查询合同列表 * 查询合同列表

View File

@ -1,6 +1,7 @@
package com.bonus.bmw.service; package com.bonus.bmw.service;
import com.bonus.bmw.domain.dto.FileBasicMsgDto; import com.bonus.bmw.domain.dto.FileBasicMsgDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.BmWorkerWageCard;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
@ -13,7 +14,7 @@ public interface BmWorkerWageCardService {
* @param record * @param record
* @return * @return
*/ */
int updateByPrimaryKey(BmWorkerWageCard record, FileBasicMsgDto files); int updateByPrimaryKey(BmWorkerWageCard record, List<WebFileDto> listFile);
/** /**
* 修改工资卡 * 修改工资卡

View File

@ -1,6 +1,8 @@
package com.bonus.bmw.service; package com.bonus.bmw.service;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.BmWorkerWageCard;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
@ -18,11 +20,11 @@ public interface PmWorkerExitService {
/** /**
* 人员出场 * 人员出场
* *
* @param id * @param record
* @param workerId * @param listFile
* @return * @return
*/ */
int updateWorkerExit(Integer id,Integer workerId); int updateWorkerExit(PmWorkerDto record, List<WebFileDto> listFile);
/** /**
* 批量人员出场 * 批量人员出场
@ -39,4 +41,14 @@ public interface PmWorkerExitService {
* @return * @return
*/ */
List<PmWorker> selectWorkListByWorkerId(PmWorkerDto o); List<PmWorker> selectWorkListByWorkerId(PmWorkerDto o);
int exitFile(PmWorkerDto o, List<WebFileDto> listFile);
/**
* 单独查看文件
*
* @param id
* @return
*/
AjaxResult lookFileByPrimaryKey(Integer id);
} }

View File

@ -1,6 +1,8 @@
package com.bonus.bmw.service; package com.bonus.bmw.service;
import com.bonus.bmw.domain.dto.FileBasicMsgDto;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.BmWorkerWageCard;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
@ -11,11 +13,11 @@ public interface PmWorkerService{
int deleteByPrimaryKey(Integer id); int deleteByPrimaryKey(Integer id);
AjaxResult insert(PmWorker record); AjaxResult insert(PmWorker record, List<WebFileDto> listFile);
PmWorker selectByPrimaryKey(Integer id); PmWorker selectByPrimaryKey(Integer id);
int updateByPrimaryKey(PmWorker record); int updateByPrimaryKey(PmWorker record,List<WebFileDto> listFile);
List<PmWorker> selectWorkList(PmWorkerDto o); List<PmWorker> selectWorkList(PmWorkerDto o);
} }

View File

@ -47,7 +47,7 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{
*/ */
@Transactional @Transactional
@Override @Override
public int updateByPrimaryKey(BmWorkerContract record,FileBasicMsgDto files) { public int updateByPrimaryKey(BmWorkerContract record, List<WebFileDto> listFile) {
//如果有旧的有效合同执行删除 //如果有旧的有效合同执行删除
if(record.getId() != null){ if(record.getId() != null){
deleteByPrimaryKey(record.getId()); deleteByPrimaryKey(record.getId());
@ -66,13 +66,14 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{
} }
int insert = mapper.insert(record); int insert = mapper.insert(record);
if(insert > 0){ if(insert > 0){
//存文件 //组装数据
List<WebFileDto> fileMsg = files.getFileMsg(); MultipartFile[] workerFiles = new MultipartFile[listFile.size()];
String[] type = new String[fileMsg.size()]; String[] type = new String[listFile.size()];
for (int i = 0; i < fileMsg.size(); i++) { for (int i = 0; i < listFile.size(); i++) {
type[i] = fileMsg.get(i).getType(); workerFiles[i] = listFile.get(i).getFile();
type[i] = listFile.get(i).getType();
} }
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(files.getFiles(), Constants.FILE_UPLOAD_CONTRACT, record.getId().toString(), type,"", ""); List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_CONTRACT, record.getId().toString(), type,"", "");
} }
//将合同id保存到入场表 //将合同id保存到入场表
mapper.updateEinRecordContractId(record.getId(),record.getWorkerId()); mapper.updateEinRecordContractId(record.getId(),record.getWorkerId());

View File

@ -14,6 +14,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
@ -35,24 +36,39 @@ public class BmWorkerWageCardServiceImpl implements BmWorkerWageCardService {
* @return * @return
*/ */
@Override @Override
public int updateByPrimaryKey(BmWorkerWageCard record, FileBasicMsgDto files) { public int updateByPrimaryKey(BmWorkerWageCard record, List<WebFileDto> listFile) {
//存在则删除后新增不存在则新增 //存在则删除后新增不存在则新增
if(record.getId() != null){ if(record.getId() != null){
deleteByPrimaryKey(record.getId()); log.info("存在则删除后新增,不存在则新增");
} //删除工资卡图片 删除minio文件
record.setCreateUser(SecurityUtils.getUsername()); fileUploadUtils.delFileListById("", record.getId().toString(), Constants.FILE_UPLOAD_WAGE_CARD,"");
int insert = mapper.insert(record); //组装数据
//添加到文件库和minio上 MultipartFile[] workerFiles = new MultipartFile[listFile.size()];
if(insert > 0){ String[] type = new String[listFile.size()];
//存文件 for (int i = 0; i < listFile.size(); i++) {
List<WebFileDto> fileMsg = files.getFileMsg(); workerFiles[i] = listFile.get(i).getFile();
String[] type = new String[fileMsg.size()]; type[i] = listFile.get(i).getType();
for (int i = 0; i < fileMsg.size(); i++) {
type[i] = fileMsg.get(i).getType();
} }
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(files.getFiles(), Constants.FILE_UPLOAD_WAGE_CARD, record.getId().toString(), type,"", ""); List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_WAGE_CARD, record.getId().toString(), type,"", "");
updateByPrimaryKeySelective(record);
return 1;
}else{
//新增
record.setCreateUser(SecurityUtils.getUsername());
int insert = mapper.insert(record);
//添加到文件库和minio上
if(insert > 0){
//组装数据
MultipartFile[] workerFiles = new MultipartFile[listFile.size()];
String[] type = new String[listFile.size()];
for (int i = 0; i < listFile.size(); i++) {
workerFiles[i] = listFile.get(i).getFile();
type[i] = listFile.get(i).getType();
}
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_WAGE_CARD, record.getId().toString(), type,"", "");
}
return insert;
} }
return insert;
} }
/** /**
@ -64,7 +80,6 @@ public class BmWorkerWageCardServiceImpl implements BmWorkerWageCardService {
@Override @Override
public int updateByPrimaryKeySelective(BmWorkerWageCard record) { public int updateByPrimaryKeySelective(BmWorkerWageCard record) {
record.setUpdateUser(SecurityUtils.getUsername()); record.setUpdateUser(SecurityUtils.getUsername());
//添加到文件库和minio上 TODO
return mapper.updateByPrimaryKeySelective(record); return mapper.updateByPrimaryKeySelective(record);
} }

View File

@ -1,12 +1,17 @@
package com.bonus.bmw.service.impl; package com.bonus.bmw.service.impl;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.mapper.PmWorkerExitMapper; import com.bonus.bmw.mapper.PmWorkerExitMapper;
import com.bonus.bmw.service.BmWorkerContractService; import com.bonus.bmw.service.BmWorkerContractService;
import com.bonus.bmw.service.PmWorkerExitService; import com.bonus.bmw.service.PmWorkerExitService;
import com.bonus.common.core.constant.Constants;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.system.api.model.UploadFileVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
@ -19,20 +24,31 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
@Autowired @Autowired
private BmWorkerContractService contractService; private BmWorkerContractService contractService;
@Autowired
private FileUploadUtils fileUploadUtils;
@Override @Override
public List<PmWorker> selectWorkList(PmWorkerDto o) { public List<PmWorker> selectWorkList(PmWorkerDto o) {
return mapper.selectWorkList(o); return mapper.selectWorkList(o);
} }
@Override @Override
public int updateWorkerExit(Integer id, Integer workerId) { public int updateWorkerExit(PmWorkerDto record, List<WebFileDto> listFile) {
//删除合同 //删除合同
int i = contractService.deleteByWorkerId(workerId); int m = contractService.deleteByWorkerId(record.getWorkerId());
//删除实时在场 //删除实时在场
int j = mapper.deleteEinMsgByWorkerId(workerId); int n = mapper.deleteEinMsgByWorkerId(record.getWorkerId());
//修改在场记录表状态 //修改在场记录表状态
int einStatus = 2; int einStatus = 2;
int k = mapper.updateEinProRecordStatus(id,einStatus); int k = mapper.updateEinProRecordStatus(record.getId(),einStatus);
//组装数据
MultipartFile[] workerFiles = new MultipartFile[listFile.size()];
String[] type = new String[listFile.size()];
for (int i = 0; i < listFile.size(); i++) {
workerFiles[i] = listFile.get(i).getFile();
type[i] = listFile.get(i).getType();
}
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_WORKER_EXIT, record.getId().toString(), type,"", "");
return k; return k;
} }
@ -61,4 +77,25 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
return mapper.selectWorkListByWorkerId(o); return mapper.selectWorkListByWorkerId(o);
} }
@Override
public int exitFile(PmWorkerDto o, List<WebFileDto> listFile) {
//删除文件
fileUploadUtils.delFileListById("", o.getId().toString(), Constants.FILE_UPLOAD_WORKER_EXIT,"");
//录入文件
MultipartFile[] workerFiles = new MultipartFile[listFile.size()];
String[] type = new String[listFile.size()];
for (int i = 0; i < listFile.size(); i++) {
workerFiles[i] = listFile.get(i).getFile();
type[i] = listFile.get(i).getType();
}
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_WORKER_EXIT, o.getId().toString(), type,"", "");
return !uploadFileVos.isEmpty() ?1:0;
}
@Override
public AjaxResult lookFileByPrimaryKey(Integer id) {
List<UploadFileVo> contractFile = fileUploadUtils.getFileList("", id.toString(), Constants.FILE_UPLOAD_WORKER_EXIT, "");
return AjaxResult.success(contractFile);
}
} }

View File

@ -1,14 +1,18 @@
package com.bonus.bmw.service.impl; package com.bonus.bmw.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.bonus.bmw.domain.dto.FileBasicMsgDto;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.vo.BmWorkerContract; import com.bonus.bmw.domain.vo.BmWorkerContract;
import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.BmWorkerWageCard;
import com.bonus.bmw.service.BmWorkerContractService; import com.bonus.bmw.service.BmWorkerContractService;
import com.bonus.bmw.service.BmWorkerWageCardService; import com.bonus.bmw.service.BmWorkerWageCardService;
import com.bonus.common.core.constant.Constants;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.api.model.UploadFileVo;
import com.github.pagehelper.util.StringUtil; import com.github.pagehelper.util.StringUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -18,10 +22,10 @@ import com.bonus.bmw.mapper.PmWorkerMapper;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.service.PmWorkerService; import com.bonus.bmw.service.PmWorkerService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.Collections; import java.util.*;
import java.util.Date; import java.util.stream.Collectors;
import java.util.List;
@Service @Service
public class PmWorkerServiceImpl implements PmWorkerService{ public class PmWorkerServiceImpl implements PmWorkerService{
@ -35,6 +39,9 @@ public class PmWorkerServiceImpl implements PmWorkerService{
@Autowired @Autowired
private BmWorkerContractService contractService; private BmWorkerContractService contractService;
@Autowired
private FileUploadUtils fileUploadUtils;
@Override @Override
public int deleteByPrimaryKey(Integer id) { public int deleteByPrimaryKey(Integer id) {
return mapper.deleteByPrimaryKey(id); return mapper.deleteByPrimaryKey(id);
@ -42,7 +49,7 @@ public class PmWorkerServiceImpl implements PmWorkerService{
@Override @Override
@Transactional @Transactional
public AjaxResult insert(PmWorker record) { public AjaxResult insert(PmWorker record,List<WebFileDto> fileMsg) {
// 添加员工时判断员工编号是否已存在 // 添加员工时判断员工编号是否已存在
PmWorker worker = mapper.getWorkerByNumber(record.getIdNumber()); PmWorker worker = mapper.getWorkerByNumber(record.getIdNumber());
if(worker != null && worker.getId() != null){ if(worker != null && worker.getId() != null){
@ -51,8 +58,18 @@ public class PmWorkerServiceImpl implements PmWorkerService{
record.setCreateUser(SecurityUtils.getUsername()); record.setCreateUser(SecurityUtils.getUsername());
int insert = mapper.insert(record); int insert = mapper.insert(record);
if(insert > 0){ if(insert > 0){
List<WebFileDto> collect = fileMsg.stream().filter(data -> "人脸".equals(data.getName())).collect(Collectors.toList());
//组装数据
MultipartFile[] workerFiles = new MultipartFile[collect.size()];
String[] type = new String[collect.size()];
for (int i = 0; i < collect.size(); i++) {
workerFiles[i] = collect.get(i).getFile();
type[i] = collect.get(i).getType();
}
//人脸的数据添加
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_WORKER, record.getId().toString(), type,"", "");
//入场相关数据添加 //入场相关数据添加
addWorkerEinData(record); addWorkerEinData(record,fileMsg);
} }
return new AjaxResult(200, "添加成功"); return new AjaxResult(200, "添加成功");
} }
@ -61,9 +78,9 @@ public class PmWorkerServiceImpl implements PmWorkerService{
* 基础数据添加完毕在进行入场数据添加 * 基础数据添加完毕在进行入场数据添加
* @param record * @param record
*/ */
private void addWorkerEinData(PmWorker record) { private void addWorkerEinData(PmWorker record, List<WebFileDto> fileMsg) {
//工资卡和合同数据 //工资卡和合同数据
addWorkerWageCardDataAndContract(record); addWorkerWageCardDataAndContract(record,fileMsg);
record.setEinTime(DateUtil.now()); record.setEinTime(DateUtil.now());
record.setEinStatus(1); record.setEinStatus(1);
//1.bm_worker_ein_msg //1.bm_worker_ein_msg
@ -75,22 +92,20 @@ public class PmWorkerServiceImpl implements PmWorkerService{
//4.pm_user 添加人员登录表 TODO //4.pm_user 添加人员登录表 TODO
} }
private void addWorkerWageCardDataAndContract(PmWorker record) { private void addWorkerWageCardDataAndContract(PmWorker record, List<WebFileDto> fileMsg) {
BmWorkerWageCard bmWorkerWageCard = record.getBmWorkerWageCard(); BmWorkerWageCard bmWorkerWageCard = record.getBmWorkerWageCard();
BmWorkerContract bmWorkerContract = record.getBmWorkerContract(); BmWorkerContract bmWorkerContract = record.getBmWorkerContract();
if(bmWorkerWageCard != null && StringUtil.isNotEmpty(bmWorkerWageCard.getBankCardCode())){ if(bmWorkerWageCard != null && StringUtil.isNotEmpty(bmWorkerWageCard.getBankCardCode())){
bmWorkerWageCard.setCreateUser(SecurityUtils.getUsername()); bmWorkerWageCard.setCreateUser(SecurityUtils.getUsername());
bmWorkerWageCard.setWorkerId(record.getId()); bmWorkerWageCard.setWorkerId(record.getId());
// if(bmWorkerWageCard.getId() != null){ List<WebFileDto> collect = fileMsg.stream().filter(data -> "工资卡".equals(data.getName())).collect(Collectors.toList());
// wageCardService.updateByPrimaryKeySelective(bmWorkerWageCard); wageCardService.updateByPrimaryKey(bmWorkerWageCard,collect);
// }else{
wageCardService.updateByPrimaryKey(bmWorkerWageCard);
// }
} }
if(bmWorkerContract != null && StringUtil.isNotEmpty(bmWorkerContract.getContractCode())){ if(bmWorkerContract != null && StringUtil.isNotEmpty(bmWorkerContract.getContractCode())){
bmWorkerContract.setCreateUser(SecurityUtils.getUsername()); bmWorkerContract.setCreateUser(SecurityUtils.getUsername());
bmWorkerContract.setWorkerId(record.getId()); bmWorkerContract.setWorkerId(record.getId());
// contractService.updateByPrimaryKey(bmWorkerContract); List<WebFileDto> collect = fileMsg.stream().filter(data -> "合同".equals(data.getName())).collect(Collectors.toList());
contractService.updateByPrimaryKey(bmWorkerContract,collect);
record.setContractId(bmWorkerContract.getId()); record.setContractId(bmWorkerContract.getId());
} }
} }
@ -121,7 +136,7 @@ public class PmWorkerServiceImpl implements PmWorkerService{
*/ */
@Transactional @Transactional
@Override @Override
public int updateByPrimaryKey(PmWorker record) { public int updateByPrimaryKey(PmWorker record,List<WebFileDto> fileMsg) {
//更新基础数据 //更新基础数据
record.setUpdateUser(SecurityUtils.getUsername()); record.setUpdateUser(SecurityUtils.getUsername());
int update = mapper.updateByPrimaryKey(record); int update = mapper.updateByPrimaryKey(record);
@ -129,9 +144,9 @@ public class PmWorkerServiceImpl implements PmWorkerService{
mapper.updateEinRecordLast(record.getId()); mapper.updateEinRecordLast(record.getId());
//已经入过场了 //已经入过场了
if(record.getEinStatus() == 1){ if(record.getEinStatus() == 1){
addWorkerWageCardDataAndContract(record); addWorkerWageCardDataAndContract(record,fileMsg);
}else { }else {
addWorkerEinData(record); addWorkerEinData(record,fileMsg);
} }
return 1; return 1;
} }

View File

@ -21,10 +21,11 @@
<select id="selectWorkList" resultMap="BaseResultMap"> <select id="selectWorkList" resultMap="BaseResultMap">
SELECT SELECT
pw.id, pw.id as worker_id,
pw.`name`, pw.`name`,
pw.id_number, pw.id_number,
pw.phone, pw.phone,
bwepr.id,
bwepr.pro_id, bwepr.pro_id,
bwepr.pro_name, bwepr.pro_name,
bwepr.sub_id, bwepr.sub_id,