package com.huimv.receive.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huimv.receive.common.token.TokenSign;
import com.huimv.receive.common.utils.*;
import com.huimv.receive.entity.*;
import com.huimv.receive.entity.vo.CleanAndDryVo;
import com.huimv.receive.entity.vo.CleanAndDryVo2;
import com.huimv.receive.entity.vo.CleanVo;
import com.huimv.receive.entity.vo.PcrVo1;
import com.huimv.receive.mapper.*;
import com.huimv.receive.service.IBillCleanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
/**
*
* 洗消表 服务实现类
*
*
* @author author
* @since 2023-07-21
*/
@Service
public class BillCleanServiceImpl extends ServiceImpl implements IBillCleanService {
@Autowired
private BillCleanMapper cleanMapper;
@Autowired
private BillIsolateMapper isolateMapper;
@Autowired
private BillPcrMapper pcrMapper;
@Autowired
private BaseProcessMapper processMapper;
@Autowired
private BaseLocationMapper locationMapper;
@Autowired
private UploadImage uploadImage;
@Autowired
private BillDryMapper dryMapper;
@Autowired
private BillPersonnelAdmissionMapper admissionMapper;
@Autowired
private ConfigurationMapper configurationMapper;
@Override
public Result listAll(HttpServletRequest httpServletRequest, Map paramsMap) {
String type = paramsMap.get("type");//展示类型 0-6
String data = paramsMap.get("data");//状态
String farmId = paramsMap.get("farmId");
String pageNum = paramsMap.get("pageNum");
String pageSize = paramsMap.get("pageSize");
if ("".equals(pageNum) || null == pageNum) {
pageNum = "1";
}
if ("".equals(pageSize) || null == pageSize) {
pageSize = "20";
}
if ("".equals(type) || null == type) {
type = "1";
}
if ("".equals(data) || null == data) {
data = "0";
}
if (type.equals("0")) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).eq("location_type", TokenSign.getWorkIdByJwtToken(httpServletRequest));
List baseLocations = locationMapper.selectList(queryWrapper1);
List ids = new ArrayList<>();
for (BaseLocation baseLocation : baseLocations) {
ids.add(baseLocation.getId());
}
Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("vistit_type", type).orderByDesc("sub_date")
.in("test_location_id", ids);
if ("0".equals(data)) {
queryWrapper.in("bill_status", 0, 1, 2);
}
if ("1".equals(data)) {
queryWrapper.eq("bill_status", 0);
}
if ("2".equals(data)) {
queryWrapper.eq("bill_status", 1);
}
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("farm_id", farmId).eq("vistit_type", type).orderByDesc("sub_date")
.in("test_location_id", ids).eq("bill_status", 0);
return new Result(ResultCode.SUCCESS, cleanMapper.selectPage(page, queryWrapper), cleanMapper.selectCount(queryWrapper2));
}/* else if (type.equals("4")) {
Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("vistit_type", 4).orderByDesc("sub_date")
.eq("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest));
if ("0".equals(data)) {
queryWrapper.in("bill_status", 0, 1, 2);
}
if ("1".equals(data)) {
queryWrapper.eq("bill_status", 0);
}
if ("2".equals(data)) {
queryWrapper.eq("bill_status", 1);
}
return new Result(ResultCode.SUCCESS, cleanMapper.selectPage(page, queryWrapper));
}*/ else {
Page cleanAndDryVo2Page = null;
Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).eq("location_type", TokenSign.getWorkIdByJwtToken(httpServletRequest));
List baseLocations = locationMapper.selectList(queryWrapper1);
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("vistit_type", type);
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("farm_id", farmId).eq("vistit_type", type);
if ("0".equals(data)) {
ArrayList arrayList = new ArrayList<>();
for (BaseLocation baseLocation : baseLocations) {
arrayList.add(baseLocation.getId().toString());
}
String[] s = arrayList.toArray(new String[arrayList.size()]);
System.out.println("传入自定义sql的位置参数形式:" + s);
cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, "0,1".split(","), s);
queryWrapper.in("test_location_id", arrayList);
queryWrapper2.in("test_location_id", arrayList);
}
if ("1".equals(data)) {
ArrayList integerArrayList = new ArrayList<>();
for (BaseLocation baseLocation : baseLocations) {
integerArrayList.add(baseLocation.getId().toString());
}
String[] ids = integerArrayList.toArray(new String[integerArrayList.size()]);
ArrayList arrayList = new ArrayList<>();
arrayList.add("0");
String[] s = arrayList.toArray(new String[arrayList.size()]);
cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, s, ids);
queryWrapper.in("test_location_id", integerArrayList);
queryWrapper2.in("test_location_id", integerArrayList);
}
if ("2".equals(data)) {
ArrayList integerArrayList = new ArrayList<>();
for (BaseLocation baseLocation : baseLocations) {
integerArrayList.add(baseLocation.getId().toString());
}
String[] ids = integerArrayList.toArray(new String[integerArrayList.size()]);
ArrayList arrayList = new ArrayList<>();
arrayList.add("1");
String[] s = arrayList.toArray(new String[arrayList.size()]);
cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, s, ids);
queryWrapper.in("test_location_id", integerArrayList);
queryWrapper2.in("test_location_id", integerArrayList);
}
queryWrapper.eq("img_status", 0);
queryWrapper2.eq("img_status", 0);
Integer integer = cleanMapper.selectCount(queryWrapper);
Integer integer1 = dryMapper.selectCount(queryWrapper2);
return new Result(ResultCode.SUCCESS, cleanAndDryVo2Page, integer + integer1);
}
}
@Override
public Result listById(HttpServletRequest httpServletRequest, Map paramsMap) {
String id = paramsMap.get("id");
BillClean billClean = cleanMapper.selectById(id);
return new Result(ResultCode.SUCCESS, billClean);
}
@Override
public Result listByIdDry(HttpServletRequest httpServletRequest, Map paramsMap) {
String id = paramsMap.get("id");
return new Result(ResultCode.SUCCESS, dryMapper.selectById(id));
}
@Override
public Result commitClean(HttpServletRequest httpServletRequest, Map paramsMap) throws ParseException {
String result = paramsMap.get("result");// 结果
String farmId = paramsMap.get("farmId");
String id = paramsMap.get("id");
String date = paramsMap.get("date");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if (StringUtils.isBlank(date)) {
date = sdf.format(new Date());
}
BillClean billClean = cleanMapper.selectById(id);//某条洗消记录
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
QueryWrapper locationQueryWrapper = new QueryWrapper<>();
locationQueryWrapper.eq("farm_id", farmId).eq("id", billClean.getTestLocationId());
BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
QueryWrapper queryWrapper3 = new QueryWrapper<>();
queryWrapper3.eq("farm_id", farmId);
Configuration configuration = configurationMapper.selectOne(queryWrapper3);
if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
} else {
if (billClean.getDestId() >= billClean.getTestLocationId()) { //不是目的地
if ("1".equals(result)) {
billClean.setBillStatus(1);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
if (baseLocation.getId() == 1 && baseProcess.getDestId() > 2) {
//生成pcr检测申请
BillPcr billPcr = new BillPcr();
billPcr.setPcrType(0);
billPcr.setPhone(billClean.getPhone());
billPcr.setVistitType(billClean.getVistitType());
billPcr.setDestName(billClean.getDestName());
billPcr.setDestId(billClean.getDestId());
billPcr.setAdmissionUserName(billClean.getAdmissionUserName());
billPcr.setAdmissionUserId(billClean.getAdmissionUserId());
billPcr.setVistitDate(billClean.getVistitDate());
billPcr.setSubDate(LocalDateTime.now());
billPcr.setBillStatus(0);
billPcr.setProcessId(billClean.getProcessId());
billPcr.setFarmId(billClean.getFarmId());
billPcr.setTestLocation("人员二级洗消站");
billPcr.setTestLocationId(3);
billPcr.setQualifiedDate(configuration.getPcr());
pcrMapper.insert(billPcr);
String status = baseProcess.getAllLocationStatus();
String[] split1 = status.split(",");
split1[0] = "2";
split1[1] = "2";
split1[2] = "1";
baseProcess.setAllLocationStatus(split1[0] +","+ split1[1] +","+split1[2]+ status.substring(5));
}
if (baseLocation.getId() == 3) {
//生成隔离申请
BillIsolate isolate = new BillIsolate();
isolate.setPhone(billClean.getPhone());
isolate.setVistitType(billClean.getVistitType());
isolate.setDestName(billClean.getDestName());
isolate.setDestId(billClean.getDestId());
isolate.setAdmissionUserName(billClean.getAdmissionUserName());
isolate.setAdmissionUserId(billClean.getAdmissionUserId());
isolate.setVistitDate(billClean.getVistitDate());
isolate.setSubDate(billClean.getSubDate());
isolate.setFarmId(billClean.getFarmId());
isolate.setBillStatus(0);
isolate.setIsolateDayNum("");
isolate.setProcessId(billClean.getProcessId());
isolate.setIsolateLocation(baseLocation.getLocationName());
isolate.setIsolateLocationId(baseLocation.getId());
isolateMapper.insert(isolate);
String status = baseProcess.getAllLocationStatus();
String[] split1 = status.split(",");
split1[0] = "2";
split1[1] = "2";
split1[2] = "2";
split1[3] = "1";
baseProcess.setAllLocationStatus(split1[0] +","+ split1[1] +","+ split1[2]+","+split1[3] + status.substring(7));
}
if (baseLocation.getId() == 4) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).eq("process_id", baseProcess.getId()).eq("test_location_id", 4);
if (ObjectUtil.isEmpty(pcrMapper.selectOne(queryWrapper1))) {
//生成pcr检测申请
BillPcr billPcr = new BillPcr();
billPcr.setPcrType(0);
billPcr.setPhone(billClean.getPhone());
billPcr.setVistitType(billClean.getVistitType());
billPcr.setDestName(billClean.getDestName());
billPcr.setDestId(billClean.getDestId());
billPcr.setAdmissionUserName(billClean.getAdmissionUserName());
billPcr.setAdmissionUserId(billClean.getAdmissionUserId());
billPcr.setVistitDate(billClean.getVistitDate());
billPcr.setSubDate(LocalDateTime.now());
billPcr.setBillStatus(0);
billPcr.setProcessId(billClean.getProcessId());
billPcr.setFarmId(billClean.getFarmId());
billPcr.setTestLocation("场内");
billPcr.setTestLocationId(4);
billPcr.setQualifiedDate(configuration.getPcr());
pcrMapper.insert(billPcr);
String status = baseProcess.getAllLocationStatus();
String[] split1 = status.split(",");
split1[0] = "2";
split1[1] = "2";
split1[2] = "2";
split1[3] = "2";
split1[4] = "1";
baseProcess.setAllLocationStatus(split1[0] +","+ split1[1] +","+ split1[2] +","+ split1[3]+","+split1[4]+ status.substring(9));
} else {
//生成隔离申请
BillIsolate isolate = new BillIsolate();
isolate.setPhone(billClean.getPhone());
isolate.setVistitType(billClean.getVistitType());
isolate.setDestName(billClean.getDestName());
isolate.setDestId(billClean.getDestId());
isolate.setAdmissionUserName(billClean.getAdmissionUserName());
isolate.setAdmissionUserId(billClean.getAdmissionUserId());
isolate.setVistitDate(billClean.getVistitDate());
isolate.setSubDate(LocalDateTime.now());
isolate.setFarmId(billClean.getFarmId());
isolate.setBillStatus(0);
isolate.setIsolateDayNum("");
isolate.setProcessId(billClean.getProcessId());
isolate.setIsolateLocation(baseLocation.getNextLocation());
isolate.setIsolateLocationId(baseLocation.getNextId());
isolateMapper.insert(isolate);
String status = baseProcess.getAllLocationStatus();
String[] split1 = status.split(",");
split1[0] = "2";
split1[1] = "2";
split1[2] = "2";
split1[3] = "2";
split1[4] = "2";
baseProcess.setAllLocationStatus(split1[0]+"," + split1[1] +","+ split1[2] +","+ split1[3] +","+ split1[4]);
}
}
baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
String status = baseProcess.getCurrentStatus();
String substring = status.substring(0, status.length() - 1);
baseProcess.setCurrentStatus(substring + "1," + 0);
} else {
billClean.setBillStatus(2);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
baseProcess.setProcessType(2);
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");
}
cleanMapper.updateById(billClean);
processMapper.updateById(baseProcess);
return new Result(10000, "修改成功!", true);
} else {
//当前是目的地
if ("1".equals(result)) {
billClean.setBillStatus(1);
baseProcess.setProcessType(1);
} else {
billClean.setBillStatus(2);
baseProcess.setProcessType(2);
}
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
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");
String s = baseProcess.getAllLocationId();
String[] split = s.split(",");
Integer s2 = 0;
for (int i = 0; i < split.length; i++) {
if (Integer.parseInt(split[i]) == baseLocation.getId()) {
s2 = i;
}
}
String status1 = baseProcess.getAllLocationStatus();
StringBuilder split1 = new StringBuilder(status1);
split1.replace(s2, s2 + 1, "3");
baseProcess.setAllLocationStatus(split1.toString());
processMapper.updateById(baseProcess);
cleanMapper.updateById(billClean);
return new Result(10000, "修改成功!", true);
}
}
}
@Resource
private BillCleanMapper billCleanMapper;
@Override
public Result listPersonalClean(HttpServletRequest httpServletRequest, Map paramsMap) {
String pageNo = paramsMap.get("pageNum");
String pageSize = paramsMap.get("pageSize");
String vistitType = paramsMap.get("vistitType");
Page page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date");
return new Result(ResultCode.SUCCESS, billCleanMapper.selectPage(page, new QueryWrapper().eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date")), billCleanMapper.selectCount(queryWrapper));
}
@Override
public Result carClean(HttpServletRequest httpServletRequest, String farmId, String id, String data, MultipartFile img1, MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5, String type) throws ParseException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if (StringUtils.isBlank(data)) {
data = sdf.format(new Date());
}
if ("1".equals(type)) {
//洗消上传
BillClean billClean = cleanMapper.selectById(id);//某条洗消记录
System.out.println("洗消记录的id:" + billClean.getTestLocationId());
Integer testId = billClean.getTestLocationId();
QueryWrapper locationQueryWrapper = new QueryWrapper<>();
locationQueryWrapper.eq("farm_id", farmId).eq("id", testId);
BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
billClean.setBillStatus(0);
billClean.setImgStatus(1);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(data));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
String s1 = "";
String s2 = "";
String s3 = "";
String s4 = "";
String s5 = "";
if (ObjectUtil.isNotEmpty(img1)) {
if (uploadImage.getImageCom(img1).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片1上传失败", false);
}
s1 = uploadImage.uploadImg(img1);
}
if (ObjectUtil.isNotEmpty(img2)) {
if (uploadImage.getImageCom(img2).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片2上传失败", false);
}
s2 = "," + uploadImage.uploadImg(img2);
}
if (ObjectUtil.isNotEmpty(img3)) {
if (uploadImage.getImageCom(img3).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片3上传失败", false);
}
s3 = "," + uploadImage.uploadImg(img3);
}
if (ObjectUtil.isNotEmpty(img4)) {
if (uploadImage.getImageCom(img4).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片4上传失败", false);
}
s4 = "," + uploadImage.uploadImg(img4);
}
if (ObjectUtil.isNotEmpty(img5)) {
if (uploadImage.getImageCom(img5).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片5上传失败", false);
}
s5 = "," + uploadImage.uploadImg(img5);
}
String s = s1 + s2 + s3 + s4 + s5;
billClean.setImgUrl(s);
cleanMapper.updateById(billClean);
//物资车生成二次申请
} else {
BillDry billClean = dryMapper.selectById(id);//某条烘干记录
System.out.println("洗消记录的id:" + billClean.getTestLocationId());
Integer testId = billClean.getTestLocationId();
QueryWrapper locationQueryWrapper = new QueryWrapper<>();
locationQueryWrapper.eq("farm_id", farmId).eq("id", testId);
BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
billClean.setBillStatus(0);
billClean.setImgStatus(1);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(data));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
String s1 = "";
String s2 = "";
String s3 = "";
String s4 = "";
String s5 = "";
if (ObjectUtil.isNotEmpty(img1)) {
if (uploadImage.getImageCom(img1).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片1上传失败", false);
}
s1 = uploadImage.uploadImg(img1);
}
if (ObjectUtil.isNotEmpty(img2)) {
if (uploadImage.getImageCom(img2).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片2上传失败", false);
}
s2 = "," + uploadImage.uploadImg(img2);
}
if (ObjectUtil.isNotEmpty(img3)) {
if (uploadImage.getImageCom(img3).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片3上传失败", false);
}
s3 = "," + uploadImage.uploadImg(img3);
}
if (ObjectUtil.isNotEmpty(img4)) {
if (uploadImage.getImageCom(img4).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片4上传失败", false);
}
s4 = "," + uploadImage.uploadImg(img4);
}
if (ObjectUtil.isNotEmpty(img5)) {
if (uploadImage.getImageCom(img5).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片5上传失败", false);
}
s5 = "," + uploadImage.uploadImg(img5);
}
String s = s1 + s2 + s3 + s4 + s5;
billClean.setImgUrl(s);
dryMapper.updateById(billClean);
}
return new Result(10000, "提交成功!", true);
}
@Override
public Result listCleanAndDry(HttpServletRequest httpServletRequest, Map paramsMap) {
String type = paramsMap.get("type");
String pageNo = paramsMap.get("pageNum");
String pageSize = paramsMap.get("pageSize");
Page page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
Page cleanAndDryVoPage;
switch (type) {
case "1":
cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 0);
break;
case "2":
cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 1);
break;
case "3":
cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)), 2);
break;
default:
cleanAndDryVoPage = billCleanMapper.listCleanAndDry(page, Integer.parseInt(TokenSign.getFarmIds(httpServletRequest)));
break;
}
return new Result(ResultCode.SUCCESS, cleanAndDryVoPage, cleanAndDryVoPage.getSize());
}
@Override
public Result listPersonalCleanAndDry(HttpServletRequest httpServletRequest, Map paramsMap) {
String pageNo = paramsMap.get("pageNum");
String pageSize = paramsMap.get("pageSize");
String vistitType = paramsMap.get("vistitType");
Page page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
Integer userId = TokenSign.getMemberIdByJwtToken(httpServletRequest);
Page cleanAndDryVoPage = cleanMapper.listPersonalCleanAndDry(page, userId, vistitType);
return new Result(ResultCode.SUCCESS, cleanAndDryVoPage, cleanAndDryVoPage.getSize());
}
@Override
public Result goodsCarClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, MultipartFile img1,
MultipartFile img2, MultipartFile img3, MultipartFile img4, MultipartFile img5, String type, String result
) throws ParseException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if (StringUtils.isBlank(date)) {
date = sdf.format(new Date());
}
String s1 = "";
String s2 = "";
String s3 = "";
String s4 = "";
String s5 = "";
if (ObjectUtil.isNotEmpty(img1)) {
if (uploadImage.getImageCom(img1).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片1上传失败", false);
}
s1 = uploadImage.uploadImg(img1);
}
if (ObjectUtil.isNotEmpty(img2)) {
if (uploadImage.getImageCom(img2).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片2上传失败", false);
}
s2 = "," + uploadImage.uploadImg(img2);
}
if (ObjectUtil.isNotEmpty(img3)) {
if (uploadImage.getImageCom(img3).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片3上传失败", false);
}
s3 = "," + uploadImage.uploadImg(img3);
}
if (ObjectUtil.isNotEmpty(img4)) {
if (uploadImage.getImageCom(img4).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片4上传失败", false);
}
s4 = "," + uploadImage.uploadImg(img4);
}
if (ObjectUtil.isNotEmpty(img5)) {
if (uploadImage.getImageCom(img5).equals("上传失败")) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new Result(10001, "图片5上传失败", false);
}
s5 = "," + uploadImage.uploadImg(img5);
}
String s = s1 + s2 + s3 + s4 + s5;
if ("1".equals(type)) {
BillClean billClean = cleanMapper.selectById(id);//某条洗消记录
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
QueryWrapper locationQueryWrapper = new QueryWrapper<>();
locationQueryWrapper.eq("farm_id", farmId).eq("id", billClean.getTestLocationId());
BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
} else {
if (billClean.getDestId() >= billClean.getTestLocationId() || billClean.getDestId() == 7) { //不是目的地
if ("1".equals(result)) {
billClean.setBillStatus(1);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
billClean.setImgUrl(s);
billClean.setImgStatus(1);
cleanMapper.updateById(billClean);
if (billClean.getTestLocationId() == 9 || billClean.getTestLocationId() == 10) {
if (billClean.getDestId() > 9 || billClean.getDestId() > 10) {
Integer processId = billClean.getProcessId();
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).eq("process_id", processId);
BillPersonnelAdmission admission = admissionMapper.selectOne(queryWrapper1);
admission.setBillStatus(1);
admission.setPassDate(LocalDateTime.now());
admission.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
admission.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
admissionMapper.updateById(admission);
if (billClean.getTestLocationId() == 10) {
baseProcess.setAllLocationStatus("2,2,2,0");
} else {
baseProcess.setAllLocationStatus("2,2,0,0");
}
}
}
//第一次通过生成洗消
if (billClean.getTestLocationId() == 6) {
BillClean clean = new BillClean();
clean.setVistitType(billClean.getVistitType());
clean.setVistitDate(billClean.getVistitDate());
clean.setDestName(billClean.getDestName());
clean.setDestId(billClean.getDestId());
clean.setAdmissionUserId(billClean.getAdmissionUserId());
clean.setAdmissionUserName(billClean.getAdmissionUserName());
clean.setSubDate(LocalDateTime.now());
clean.setBillStatus(0);
clean.setImgStatus(0);
clean.setFarmId(billClean.getFarmId());
clean.setCarNum(billClean.getCarNum());
clean.setPhone(billClean.getPhone());
clean.setProcessId(billClean.getProcessId());
clean.setTestLocationId(baseLocation.getNextId());
clean.setTestLocation(baseLocation.getNextLocation());
cleanMapper.insert(clean);
if (billClean.getDestId() == 7) {
baseProcess.setAllLocationStatus("2,2,1");
} else {
baseProcess.setAllLocationStatus("2,2,1,0");
}
}
if (billClean.getTestLocationId() == 7) {
//生成烘干申请
BillDry billPcr = new BillDry();
billPcr.setPhone(billClean.getPhone());
billPcr.setVistitType(billClean.getVistitType());
billPcr.setDestName(billClean.getDestName());
billPcr.setDestId(billClean.getDestId());
billPcr.setAdmissionUserName(billClean.getAdmissionUserName());
billPcr.setAdmissionUserId(billClean.getAdmissionUserId());
billPcr.setVistitDate(billClean.getVistitDate());
billPcr.setSubDate(LocalDateTime.now());
billPcr.setBillStatus(0);
billPcr.setImgStatus(0);
billPcr.setCarNum(billClean.getCarNum());
billPcr.setProcessId(billClean.getProcessId());
billPcr.setFarmId(billClean.getFarmId());
billPcr.setTestLocation(baseLocation.getLocationName());
billPcr.setTestLocationId(baseLocation.getId());
dryMapper.insert(billPcr);
baseProcess.setAllLocationStatus("2,2,2,1");
}
baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
String status = baseProcess.getCurrentStatus();
String substring = status.substring(0, status.length() - 1);
baseProcess.setCurrentStatus(substring + "1," + 0);
processMapper.updateById(baseProcess);
} else {
billClean.setImgStatus(1);
billClean.setImgUrl(s);
billClean.setBillStatus(2);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
cleanMapper.updateById(billClean);
baseProcess.setProcessType(2);
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");
processMapper.updateById(baseProcess);
}
return new Result(10000, "修改成功!", true);
} else if (billClean.getDestId() == 53) {
if ("1".equals(result)) {
billClean.setBillStatus(1);
baseProcess.setProcessType(1);
} else {
billClean.setBillStatus(2);
baseProcess.setProcessType(2);
}
Integer processId = billClean.getProcessId();
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).eq("process_id", processId);
BillPersonnelAdmission admission = admissionMapper.selectOne(queryWrapper1);
admission.setBillStatus(1);
admission.setPassDate(LocalDateTime.now());
admission.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
admission.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
admissionMapper.updateById(admission);
billClean.setImgStatus(1);
billClean.setImgUrl(s);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
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");
processMapper.updateById(baseProcess);
cleanMapper.updateById(billClean);
return new Result(10000, "修改成功!", true);
} else {
//当前是目的地
if ("1".equals(result)) {
billClean.setBillStatus(1);
baseProcess.setProcessType(1);
} else {
billClean.setBillStatus(2);
baseProcess.setProcessType(2);
}
billClean.setImgStatus(1);
billClean.setImgUrl(s);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
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");
processMapper.updateById(baseProcess);
cleanMapper.updateById(billClean);
return new Result(10000, "修改成功!", true);
}
}
} else {
BillDry billClean = dryMapper.selectById(id);//某条烘干记录
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程
QueryWrapper locationQueryWrapper = new QueryWrapper<>();
locationQueryWrapper.eq("farm_id", farmId).eq("id", billClean.getTestLocationId());
BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
} else {
if ("1".equals(result)) {
//烘干通过
billClean.setImgUrl(s);
billClean.setBillStatus(1);
billClean.setPassDate(new Date());
billClean.setCheckDate(new Date());
billClean.setPhone(billClean.getPhone());
billClean.setCarNum(billClean.getCarNum());
billClean.setImgStatus(1);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
dryMapper.updateById(billClean);
baseProcess.setProcessType(1);
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.setAllLocationStatus("2,2,2,2");
processMapper.updateById(baseProcess);
} else {
billClean.setImgStatus(1);
billClean.setImgUrl(s);
billClean.setBillStatus(2);
billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
billClean.setTestLocation(baseLocation.getLocationName());
billClean.setTestLocationId(baseLocation.getId());
billClean.setCheckDate(sdf.parse(date));
billClean.setPassDate(sdf.parse(sdf.format(new Date())));
dryMapper.updateById(billClean);
baseProcess.setProcessType(2);
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.setAllLocationStatus("2,2,2,3");
processMapper.updateById(baseProcess);
}
return new Result(10000, "修改成功!", true);
}
}
}
@Override
public Result listCount(HttpServletRequest httpServletRequest, Map paramsMap) {
String farmId = paramsMap.get("farmId");
Date timesmorning = DataUill.getTimesmorning();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).ge("sub_date", timesmorning);
queryWrapper.eq("bill_status", 1);
Integer count = billCleanMapper.selectCount(queryWrapper);//合格
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", farmId).ge("sub_date", timesmorning);
queryWrapper1.eq("bill_status", 2);
Integer count1 = billCleanMapper.selectCount(queryWrapper1);//异常
Integer allCount = count + count1;
Double rank = (Double.valueOf(count.toString()) / Double.valueOf(allCount.toString())) * 100;
JSONObject jsonObject = new JSONObject();
jsonObject.put("count", allCount);
jsonObject.put("count1", count);
jsonObject.put("count2", count1);
jsonObject.put("rank", rank);
return new Result(ResultCode.SUCCESS, jsonObject);
}
@Override
public Result AllClean(HttpServletRequest httpServletRequest, Map paramsMap) {
String farmId = paramsMap.get("farmId");
String personType = paramsMap.get("personType");
String type = paramsMap.get("type");
if ("".equals(type) || null == type) {
type = "1";
}
List pcrVos = null;
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId).in("bill_status", 1, 2);
if ("".equals(personType) || null == personType) {
} else {
queryWrapper.eq("vistit_type", personType);
}
if ("1".equals(type)) {
Date timesmorning = DataUill.getTimesmorning();
queryWrapper.ge("sub_date", timesmorning);
} else if ("2".equals(type)) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
queryWrapper.ge("sub_date", calendar.getTime());
} else if ("3".equals(type)) {
Date monthmorning = DataUill.getTimesMonthmorning();
queryWrapper.ge("sub_date", monthmorning);
}
pcrVos = billCleanMapper.listAll(queryWrapper);
for (CleanVo pcrVo : pcrVos) {
pcrVo.setAllCount(pcrVo.getPassCount() + pcrVo.getRefuseCount());
}
return new Result(ResultCode.SUCCESS, pcrVos);
}
@Override
public Result CleanSelect(HttpServletRequest httpServletRequest, Map paramsMap) {
String farmId = paramsMap.get("farmId");
String type = paramsMap.get("type");//来访类型
String startTime = paramsMap.get("startTime");
String endTime = paramsMap.get("endTime");
String pageNum = paramsMap.get("pageNum");
String pageSize = paramsMap.get("pageSize");
if ("".equals(pageNum) || null == pageNum) {
pageNum = "1";
}
if ("".equals(pageSize) || null == pageSize) {
pageSize = "10";
}
if ("".equals(startTime) || null == startTime) {
startTime = DataUill.getTimesmorning().toString();
endTime = LocalDateTime.now() + " 23:59:59";
}
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", farmId);
queryWrapper.between("check_date", startTime, endTime);
if ("".equals(type) || null == type) {
} else {
queryWrapper.eq("vistit_type", type);
}
Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
return new Result(ResultCode.SUCCESS, billCleanMapper.selectPage(page, queryWrapper));
}
@Override
public void printClean(HttpServletResponse httpServletRequest, Map paramsMap) throws Exception {
String ids = paramsMap.get("ids");
String[] split = ids.split(",");
List list = new ArrayList<>();
for (String s : split) {
BillClean admission = billCleanMapper.selectById(s);
list.add(admission);
}
Print.printClean(list);
}
}