|
@@ -1,5 +1,13 @@
|
|
|
package com.huimv.admin.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+import com.huimv.admin.common.token.TokenSign;
|
|
|
+import com.huimv.admin.common.utils.DataUill;
|
|
|
+import com.huimv.admin.common.utils.Result;
|
|
|
+import com.huimv.admin.common.utils.ResultCode;
|
|
|
+import com.huimv.admin.entity.*;
|
|
|
+import com.huimv.admin.mapper.*;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
@@ -26,6 +34,17 @@ import java.time.format.DateTimeFormatter;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 入场申请 服务实现类
|
|
@@ -234,4 +253,322 @@ public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnel
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BillPcrMapper pcrMapper;
|
|
|
+ @Autowired
|
|
|
+ private BaseProcessMapper processMapper;
|
|
|
+ @Autowired
|
|
|
+ private BaseLocationMapper locationMapper;
|
|
|
+ @Autowired
|
|
|
+ private BillCleanMapper cleanMapper;
|
|
|
+ @Autowired
|
|
|
+ private BillIsolateMapper isolateMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listPrc(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String type = paramsMap.get("type");//类型
|
|
|
+ if ("".equals(type) || null == type) {
|
|
|
+ type = "1";
|
|
|
+ }
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("pcr_type", 1).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ queryWrapper.in("bill_status", 0, 1, 2, 3);
|
|
|
+ }
|
|
|
+ if ("2".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 0);
|
|
|
+ }
|
|
|
+ if ("3".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 1);
|
|
|
+ }
|
|
|
+ if ("4".equals(type)) {
|
|
|
+ queryWrapper.in("bill_status", 2, 3);
|
|
|
+ }
|
|
|
+ List<BillPcr> billPcrs = pcrMapper.selectList(queryWrapper);
|
|
|
+ return new Result(ResultCode.SUCCESS, billPcrs);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String id = paramsMap.get("id");
|
|
|
+ return new Result(ResultCode.SUCCESS, pcrMapper.selectById(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result editStatus(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ String type = paramsMap.get("type");
|
|
|
+ String id = paramsMap.get("id");
|
|
|
+ String data = paramsMap.get("data");
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ if (StringUtils.isBlank(data)) {
|
|
|
+ data = sdf.format(new Date());
|
|
|
+ }
|
|
|
+ BillPcr billPcr = pcrMapper.selectById(id);
|
|
|
+
|
|
|
+ QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
|
|
|
+ processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId());
|
|
|
+ BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
|
|
|
+
|
|
|
+ QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
|
|
|
+ locationQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getTestLocationId());
|
|
|
+ BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
|
|
|
+
|
|
|
+
|
|
|
+ if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
|
|
|
+ return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
|
|
|
+ } else {
|
|
|
+ if (billPcr.getDestId() > billPcr.getTestLocationId()) { //说明当前不是目的地
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ billPcr.setBillStatus(1);
|
|
|
+ billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setTestLocation(baseLocation.getLocationName());
|
|
|
+ billPcr.setTestLocationId(baseLocation.getId());
|
|
|
+ billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
|
|
|
+ billPcr.setCheckDate(sdf.parse(data));
|
|
|
+
|
|
|
+ //通过生成洗消记录
|
|
|
+ BillClean billClean = new BillClean();
|
|
|
+ billClean.setVistitType(billPcr.getVistitType());
|
|
|
+ billClean.setDestName(billPcr.getDestName());
|
|
|
+ billClean.setDestId(billPcr.getDestId());
|
|
|
+ billClean.setAdmissionUserName(billPcr.getAdmissionUserName());
|
|
|
+ billClean.setAdmissionUserId(billPcr.getAdmissionUserId());
|
|
|
+ billClean.setVistitDate(billPcr.getVistitDate());
|
|
|
+ billClean.setSubDate(billPcr.getSubDate());
|
|
|
+ billClean.setFarmId(billPcr.getFarmId());
|
|
|
+ billClean.setPassUserName(billPcr.getPassUserName());
|
|
|
+ billClean.setPassDate(billPcr.getPassDate());
|
|
|
+ billClean.setPassUserId(billPcr.getPassUserId());
|
|
|
+ billClean.setProcessId(billPcr.getProcessId());
|
|
|
+ billClean.setTestLocation(baseLocation.getNextLocation());
|
|
|
+ billClean.setTestLocationId(baseLocation.getNextId());
|
|
|
+ cleanMapper.insert(billClean);
|
|
|
+
|
|
|
+ baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
|
|
|
+ baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
|
|
|
+ baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
|
|
|
+ String status = baseProcess.getCurrentStatus();
|
|
|
+ String substring = status.substring(0, status.length() - 1);
|
|
|
+
|
|
|
+ baseProcess.setCurrentStatus(substring + "1," + 0);
|
|
|
+
|
|
|
+ processMapper.updateById(baseProcess);
|
|
|
+ pcrMapper.updateById(billPcr);
|
|
|
+ return new Result(10000, "修改成功!", true);
|
|
|
+ } else {
|
|
|
+ billPcr.setBillStatus(2);
|
|
|
+ billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setTestLocation(baseLocation.getLocationName());
|
|
|
+ billPcr.setTestLocationId(baseLocation.getId());
|
|
|
+ billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
|
|
|
+ billPcr.setCheckDate(sdf.parse(data));
|
|
|
+
|
|
|
+ baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
|
|
|
+ baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
|
|
|
+ baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
|
|
|
+ String status = baseProcess.getCurrentStatus();
|
|
|
+ String substring = status.substring(0, status.length() - 1);
|
|
|
+
|
|
|
+ baseProcess.setCurrentStatus(substring + "2");
|
|
|
+ baseProcess.setProcessType(2);
|
|
|
+ processMapper.updateById(baseProcess);
|
|
|
+ pcrMapper.updateById(billPcr);
|
|
|
+ return new Result(10000, "修改成功!", true);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ billPcr.setBillStatus(1);
|
|
|
+ billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setTestLocation(baseLocation.getLocationName());
|
|
|
+ billPcr.setTestLocationId(baseLocation.getId());
|
|
|
+ billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
|
|
|
+ billPcr.setCheckDate(sdf.parse(data));
|
|
|
+
|
|
|
+ baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
|
|
|
+ baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
|
|
|
+ baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
|
|
|
+ String status = baseProcess.getCurrentStatus();
|
|
|
+ String substring = status.substring(0, status.length() - 1);
|
|
|
+ baseProcess.setCurrentStatus(substring + "1" );
|
|
|
+ baseProcess.setProcessType(1);
|
|
|
+ processMapper.updateById(baseProcess);
|
|
|
+ pcrMapper.updateById(billPcr);
|
|
|
+ return new Result(10000, "修改成功!", true);
|
|
|
+ } else {
|
|
|
+ baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
|
|
|
+ baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
|
|
|
+ baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() );
|
|
|
+ String status = baseProcess.getCurrentStatus();
|
|
|
+ String substring = status.substring(0, status.length() - 1);
|
|
|
+ baseProcess.setCurrentStatus(substring + "2");
|
|
|
+ baseProcess.setProcessType(2);
|
|
|
+ billPcr.setBillStatus(2);
|
|
|
+ billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+ billPcr.setTestLocation(baseLocation.getLocationName());
|
|
|
+ billPcr.setTestLocationId(baseLocation.getId());
|
|
|
+ billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
|
|
|
+ billPcr.setCheckDate(sdf.parse(data));
|
|
|
+
|
|
|
+ processMapper.updateById(baseProcess);
|
|
|
+ pcrMapper.updateById(billPcr);
|
|
|
+ return new Result(10000, "修改成功!", true);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String type = paramsMap.get("type");//类型
|
|
|
+ if ("".equals(type) || null == type) {
|
|
|
+ type = "1";
|
|
|
+ }
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ QueryWrapper<BillIsolate> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("isolate_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ queryWrapper.in("bill_status", 0, 1, 2, 3);
|
|
|
+ }
|
|
|
+ if ("2".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 0);
|
|
|
+ }
|
|
|
+ if ("3".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 1);
|
|
|
+ }
|
|
|
+ if ("4".equals(type)) {
|
|
|
+ queryWrapper.in("bill_status", 2, 3);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS, isolateMapper.selectList(queryWrapper));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result isolateById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String id = paramsMap.get("id");
|
|
|
+ return new Result(ResultCode.SUCCESS, isolateMapper.selectById(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result commitIsolate(HttpServletRequest httpServletRequest, BillIsolate billIsolate) {
|
|
|
+ BillIsolate isolate = isolateMapper.selectById(billIsolate.getId());
|
|
|
+ Date startDate = billIsolate.getIsolateStartDate();
|
|
|
+ Integer dayNum = billIsolate.getIsolateDayNum();//隔离天数
|
|
|
+ Date endDate = DataUill.getNextDay(startDate, dayNum);
|
|
|
+ isolate.setIsolateLocation(billIsolate.getIsolateLocation());
|
|
|
+ isolate.setIsolateLocationId(billIsolate.getIsolateLocationId());
|
|
|
+ isolate.setIsolateStartDate(startDate);
|
|
|
+ isolate.setIsolateEndDate(endDate);
|
|
|
+ isolate.setIsolateDayNum(dayNum);
|
|
|
+ isolateMapper.updateById(isolate);
|
|
|
+ return new Result(10000, "提交成功!", true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result editIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
|
|
|
+ String id = paramsMap.get("id");
|
|
|
+ String remark = paramsMap.get("remark");//是否提前结束隔离的标识
|
|
|
+ BillIsolate billIsolate = isolateMapper.selectById(id);
|
|
|
+ BaseProcess baseProcess = processMapper.selectById(billIsolate.getProcessId());
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String end = sdf.format(billIsolate.getIsolateEndDate());
|
|
|
+ String start = sdf.format(billIsolate.getIsolateStartDate());
|
|
|
+ String now = sdf.format(new Date());
|
|
|
+ int res = now.compareTo(end);
|
|
|
+ if (res > 0) {//当前时间晚于隔离结束时间
|
|
|
+ if (baseProcess.getDestId().equals(billIsolate.getIsolateLocationId())) {
|
|
|
+ //目的地就是当前隔离地点
|
|
|
+ baseProcess.setProcessType(1);
|
|
|
+ } else {
|
|
|
+ baseProcess.setProcessType(0);
|
|
|
+ }
|
|
|
+ billIsolate.setIsolateRealEndDate(new Date());
|
|
|
+ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ Calendar cal1 = Calendar.getInstance();
|
|
|
+ Calendar cal2 = Calendar.getInstance();
|
|
|
+ Date startDate = sdf1.parse(start);
|
|
|
+ Date endDate = sdf1.parse(now);
|
|
|
+ cal1.setTime(startDate);
|
|
|
+ cal2.setTime(endDate);
|
|
|
+ long days = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);
|
|
|
+ billIsolate.setIsolateRealDayNum((int) days);
|
|
|
+ billIsolate.setBillStatus(2);
|
|
|
+ billIsolate.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
|
|
|
+ billIsolate.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+
|
|
|
+ baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + now);
|
|
|
+ baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billIsolate.getIsolateLocation());
|
|
|
+ baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billIsolate.getIsolateLocationId());
|
|
|
+ String status = baseProcess.getCurrentStatus();
|
|
|
+ String substring = status.substring(0, status.length() - 1);
|
|
|
+ baseProcess.setCurrentStatus(substring + "1," + 0);
|
|
|
+
|
|
|
+ isolateMapper.updateById(billIsolate);
|
|
|
+ processMapper.updateById(baseProcess);
|
|
|
+ return new Result(10000, "正常解除隔离成功!", true);
|
|
|
+ } else {
|
|
|
+ //提前结束隔离
|
|
|
+ if (baseProcess.getDestId().equals(billIsolate.getIsolateLocationId())) {
|
|
|
+ //目的地就是当前隔离地点
|
|
|
+ baseProcess.setProcessType(1);
|
|
|
+ } else {
|
|
|
+ baseProcess.setProcessType(0);
|
|
|
+ }
|
|
|
+ billIsolate.setIsolateRealEndDate(new Date());
|
|
|
+ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ Calendar cal1 = Calendar.getInstance();
|
|
|
+ Calendar cal2 = Calendar.getInstance();
|
|
|
+ Date startDate = sdf1.parse(start);
|
|
|
+ Date endDate = sdf1.parse(now);
|
|
|
+ cal1.setTime(startDate);
|
|
|
+ cal2.setTime(endDate);
|
|
|
+ long days = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);
|
|
|
+ billIsolate.setIsolateRealDayNum((int) days);
|
|
|
+ billIsolate.setBillStatus(3);
|
|
|
+ billIsolate.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
|
|
|
+ billIsolate.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
|
|
|
+
|
|
|
+ baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + now);
|
|
|
+ baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billIsolate.getIsolateLocation());
|
|
|
+ baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billIsolate.getIsolateLocationId());
|
|
|
+ String status = baseProcess.getCurrentStatus();
|
|
|
+ String substring = status.substring(0, status.length() - 1);
|
|
|
+ baseProcess.setCurrentStatus(substring + "1," + 0);
|
|
|
+
|
|
|
+ isolateMapper.updateById(billIsolate);
|
|
|
+ processMapper.updateById(baseProcess);
|
|
|
+ return new Result(10000, "提前解除隔离成功!", true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String type = paramsMap.get("type");//类型
|
|
|
+ if ("".equals(type) || null == type) {
|
|
|
+ type = "1";
|
|
|
+ }
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ queryWrapper.in("bill_status", 0, 1, 2);
|
|
|
+ }
|
|
|
+ if ("2".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 0);
|
|
|
+ }
|
|
|
+ if ("3".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 1);
|
|
|
+ }
|
|
|
+ if ("4".equals(type)) {
|
|
|
+ queryWrapper.eq("bill_status", 2);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS, cleanMapper.selectList(queryWrapper));
|
|
|
+
|
|
|
+ }
|
|
|
}
|