123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- package com.huimv.admin.service.impl;
- import cn.hutool.core.date.DateTime;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.StringUtils;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.huimv.admin.common.token.TokenSign;
- import com.huimv.admin.common.utils.*;
- import com.huimv.admin.entity.BaseLocation;
- import com.huimv.admin.entity.BaseProcess;
- import com.huimv.admin.entity.BillPcr;
- import com.huimv.admin.entity.BillPersonnelAdmission;
- import com.huimv.admin.entity.vo.FactoryDirectorVo;
- import com.huimv.admin.mapper.BaseLocationMapper;
- import com.huimv.admin.mapper.BaseProcessMapper;
- import com.huimv.admin.mapper.BillPcrMapper;
- import com.huimv.admin.mapper.BillPersonnelAdmissionMapper;
- import com.huimv.admin.service.IBillPersonnelAdmissionService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.transaction.interceptor.TransactionAspectSupport;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.multipart.MultipartFile;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import java.io.IOException;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.List;
- import java.util.Map;
- /**
- * <p>
- * 入场申请 服务实现类
- * </p>
- *
- * @author author
- * @since 2023-07-21
- */
- @Service
- public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnelAdmissionMapper, BillPersonnelAdmission> implements IBillPersonnelAdmissionService {
- @Resource
- private BillPersonnelAdmissionMapper billPersonnelAdmissionMapper;
- @Resource
- private BaseProcessMapper baseProcessMapper;
- @Resource
- private BillPcrMapper billPcrMapper;
- @Resource
- private BaseLocationMapper baseLocationMapper;
- @Autowired
- private UploadImage uploadImage;
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Result addAdmission(HttpServletRequest httpServletRequest, String admissionType, String vistitType, String userName, String phone, String workName, String papersType, String papersCode, MultipartFile imgUrl, String vistitDate, String vistitReson, String destId, String destName,String farmId) throws IOException {
- Integer userId = TokenSign.getMemberIdByJwtToken(httpServletRequest);
- if (!PhoneNumberValidator.isValidPhoneNumber(phone)) {
- return new Result(10001,"手机号格式错误!",false);
- }
- if (papersType.equals("0")){
- if (!IDCardValidator.isValidIDCard(papersCode)){
- return new Result(10001,"身份证号格式错误!",false);
- }
- }
- DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
- BillPersonnelAdmission billPersonnelAdmission = new BillPersonnelAdmission();
- billPersonnelAdmission.setAdmissionType(Integer.parseInt(admissionType));
- billPersonnelAdmission.setVistitType(Integer.parseInt(vistitType));
- billPersonnelAdmission.setDestId(Integer.parseInt(destId));
- billPersonnelAdmission.setDestName(destName);
- billPersonnelAdmission.setAdmissionUserId(userId);
- billPersonnelAdmission.setAdmissionUserName(userName);
- billPersonnelAdmission.setVistitDate(LocalDateTime.parse(vistitDate,dateTimeFormatter));
- billPersonnelAdmission.setSubDate(LocalDateTime.now());
- billPersonnelAdmission.setPhone(phone);
- billPersonnelAdmission.setWorkName(workName);
- billPersonnelAdmission.setPapersType(Integer.parseInt(papersType));
- billPersonnelAdmission.setPapersCode(papersCode);
- if (uploadImage.getImageCom(imgUrl).equals("上传失败")) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return new Result(10001,"图片上传失败",false);
- }
- billPersonnelAdmission.setImgUrl(uploadImage.getImageCom(imgUrl));
- billPersonnelAdmission.setVistitReson(vistitReson);
- billPersonnelAdmission.setFarmId(Integer.parseInt(farmId));
- BaseProcess baseProcess = new BaseProcess();
- baseProcess.setDestName(destName);
- baseProcess.setDestId(Integer.parseInt(destId));
- baseProcess.setAdmissionUserId(userId);
- baseProcess.setAdmissionUserName(userName);
- baseProcess.setSubDate(DateTime.now());
- baseProcess.setUpdateDate(DateTime.now().toString());
- baseProcess.setCurrentStatus("0");
- //获取位置
- BaseLocation baseLocation = baseLocationMapper.selectOne(new QueryWrapper<BaseLocation>().eq("farm_id", farmId).eq("vistit_type", vistitType).eq("parent_id", 0));
- baseProcess.setCurrentLocation(baseLocation.getLocationName());
- baseProcess.setCurrentLocationId(baseLocation.getId().toString());
- baseProcess.setFarmId(Integer.parseInt(farmId));
- baseProcessMapper.insert(baseProcess);
- billPersonnelAdmission.setProcessId(baseProcess.getId());
- billPersonnelAdmissionMapper.insert(billPersonnelAdmission);
- return Result.SUCCESS();
- }
- @Override
- public Result listPersonalAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String pageNo = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- Page<BillPersonnelAdmission> page = new Page<>(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
- Page<BillPersonnelAdmission> billPersonnelAdmissionPage = billPersonnelAdmissionMapper.selectPage(page, new QueryWrapper<BillPersonnelAdmission>().eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date"));
- return new Result(ResultCode.SUCCESS,billPersonnelAdmissionPage);
- }
- @Override
- public Result listAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String pageNo = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- String type = paramsMap.get("type");
- String farmId = paramsMap.get("farmId");
- QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
- Integer userType = TokenSign.getUserTypeByJwtToken(httpServletRequest);
- if (userType == 3){
- //生物安全负责人
- queryWrapper.eq("admission_type",0);
- }else if (userType == 2){
- //紧急入场
- queryWrapper.ne("admission_type",0);
- }
- switch (type){
- case "1":
- queryWrapper.eq("bill_status",0);
- break;
- case "2":
- queryWrapper.eq("bill_status",1);
- break;
- case "3":
- queryWrapper.eq("bill_status",2);
- break;
- default: break;
- }
- queryWrapper.orderByDesc("sub_date").eq("farm_id",farmId);
- Page<BillPersonnelAdmission> page = new Page<>(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
- Page<BillPersonnelAdmission> billPersonnelAdmissionPage = billPersonnelAdmissionMapper.selectPage(page,queryWrapper);
- return new Result(ResultCode.SUCCESS,billPersonnelAdmissionPage);
- }
- @Override
- @Transactional
- public Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String type = paramsMap.get("type");
- String id = paramsMap.get("id");
- DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- BillPersonnelAdmission billPersonnelAdmission = billPersonnelAdmissionMapper.selectById(id);
- // Integer userType = TokenSign.getUserTypeByJwtToken(httpServletRequest);
- Integer userType = 3;
- billPersonnelAdmission.setPassDate(LocalDateTime.now());
- billPersonnelAdmission.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
- billPersonnelAdmission.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
- BaseProcess baseProcess = baseProcessMapper.selectById(billPersonnelAdmission.getProcessId());
- if (StringUtils.isBlank(baseProcess.getUpdateDate())){
- baseProcess.setUpdateDate(LocalDateTime.now().format(dateTimeFormatter));
- }else {
- baseProcess.setUpdateDate(baseProcess.getUpdateDate()+","+LocalDateTime.now().format(dateTimeFormatter));
- }
- if (type.equals("0")){
- //拒绝
- billPersonnelAdmission.setBillStatus(2);
- baseProcess.setProcessType(2);
- }else {
- //通过
- billPersonnelAdmission.setBillStatus(1);
- //获取pcr位置
- String laseLocationId = baseProcess.getCurrentLocationId();
- BaseLocation laseLocation = baseLocationMapper.selectById(laseLocationId);
- BaseLocation baseLocation = baseLocationMapper.selectById(laseLocation.getNextId());
- baseProcess.setCurrentStatus("1,0");
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation()+","+baseLocation.getLocationName());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() +","+baseLocation.getId());
- if (userType == 3){
- BillPcr billPcr = new BillPcr();
- billPcr.setVistitType(billPersonnelAdmission.getVistitType());
- billPcr.setDestName(billPersonnelAdmission.getDestName());
- billPcr.setDestId(billPersonnelAdmission.getDestId());
- billPcr.setAdmissionUserId(billPersonnelAdmission.getAdmissionUserId());
- billPcr.setAdmissionUserName(billPersonnelAdmission.getAdmissionUserName());
- billPcr.setSubDate(LocalDateTime.now());
- billPcr.setVistitDate(billPersonnelAdmission.getVistitDate());
- billPcr.setFarmId(billPersonnelAdmission.getFarmId());
- billPcr.setProcessId(billPersonnelAdmission.getProcessId());
- billPcr.setAdmissionId(Integer.parseInt(id));
- billPcr.setTestLocation(baseLocation.getLocationName());
- billPcr.setTestLocationId(baseLocation.getId());
- billPcrMapper.insert(billPcr);
- }else {
- //TODO 紧急入场通过先不处理
- }
- }
- baseProcessMapper.updateById(baseProcess);
- billPersonnelAdmissionMapper.updateById(billPersonnelAdmission);
- return Result.SUCCESS();
- }
- @Override
- public Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String type = paramsMap.get("type");
- String farmId = paramsMap.get("farmId");
- List<FactoryDirectorVo> factoryDirectorList = billPersonnelAdmissionMapper.listAll(type,farmId);
- return new Result(ResultCode.SUCCESS,factoryDirectorList);
- }
- }
|