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.CleanDryGoodsVo; import com.huimv.receive.entity.vo.CleanVo; 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.annotation.Transactional; 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.DecimalFormat; 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 BaseWashoutPointMapper baseWashoutPointMapper; @Autowired private UploadImage uploadImage; @Autowired private BillDryMapper dryMapper; @Autowired private BillPersonnelAdmissionMapper admissionMapper; @Autowired private ConfigurationMapper configurationMapper; @Autowired private ExistMapper existMapper; @Autowired private BillGoodsInventoryMapper inventoryMapper; @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")) { BaseLocation baseLocation = locationMapper.selectById(TokenSign.getWorkIdByJwtToken(httpServletRequest)); Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("vistit_type", type).orderByDesc("sub_date").eq("test_location_id", baseLocation.getId()); if ("0".equals(data)) { queryWrapper.in("bill_status", 0, 1, 2,3); } if ("1".equals(data)) { queryWrapper.eq("bill_status", 0); } if ("2".equals(data)) { queryWrapper.eq("bill_status", 1); } QueryWrapper queryWrapper2 = new QueryWrapper<>(); queryWrapper2.eq("vistit_type", type).orderByDesc("sub_date") .eq("test_location_id", baseLocation.getId()).eq("bill_status", 0); return new Result(ResultCode.SUCCESS, cleanMapper.selectPage(page, queryWrapper), cleanMapper.selectCount(queryWrapper2)); } else if ("5".equals(type)) { Page cleanDryGoodPage = null; Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("vistit_type", type); QueryWrapper queryWrapper2 = new QueryWrapper<>(); queryWrapper2.eq("vistit_type", type); QueryWrapper queryWrapper3 = new QueryWrapper<>(); if ("0".equals(data)) { String[] s = {TokenSign.getWorkIdByJwtToken(httpServletRequest)}; System.out.println("传入自定义sql的位置参数形式:" + s); cleanDryGoodPage = cleanMapper.listCleanDryGoods(page, farmId, type, "0,1".split(","), s); queryWrapper.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper3.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); } if ("1".equals(data)) { String[] ids = {TokenSign.getWorkIdByJwtToken(httpServletRequest)}; ArrayList arrayList = new ArrayList<>(); arrayList.add("0"); String[] s = arrayList.toArray(new String[arrayList.size()]); cleanDryGoodPage = cleanMapper.listCleanDryGoods(page, farmId, type, s, ids); queryWrapper.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper3.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); } if ("2".equals(data)) { String[] ids = {TokenSign.getWorkIdByJwtToken(httpServletRequest)}; ArrayList arrayList = new ArrayList<>(); arrayList.add("1"); String[] s = arrayList.toArray(new String[arrayList.size()]); cleanDryGoodPage = cleanMapper.listCleanDryGoods(page, farmId, type, s, ids); queryWrapper.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper3.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); } queryWrapper.eq("img_status", 0); queryWrapper2.eq("img_status", 0); queryWrapper3.eq("bill_status", 0); Integer integer = cleanMapper.selectCount(queryWrapper); Integer integer1 = dryMapper.selectCount(queryWrapper2); Integer integer2 = inventoryMapper.selectCount(queryWrapper3); return new Result(ResultCode.SUCCESS, cleanDryGoodPage, integer + integer1 + integer2); } else { Page cleanAndDryVo2Page = null; Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("vistit_type", type); QueryWrapper queryWrapper2 = new QueryWrapper<>(); queryWrapper2.eq("vistit_type", type); if ("0".equals(data)) { String[] s = {TokenSign.getWorkIdByJwtToken(httpServletRequest)}; System.out.println("传入自定义sql的位置参数形式:" + s); cleanAndDryVo2Page = cleanMapper.CleanAndDry(page, farmId, type, "0,1".split(","), s); queryWrapper.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); } if ("1".equals(data)) { String[] ids = {TokenSign.getWorkIdByJwtToken(httpServletRequest)}; 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", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); } if ("2".equals(data)) { String[] ids = {TokenSign.getWorkIdByJwtToken(httpServletRequest)}; 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", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); } 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 listPersonCleanAndDryAndGoods(HttpServletRequest httpServletRequest, Map paramsMap) { String farmId = paramsMap.get("farmId"); String pageNum = paramsMap.get("pageNum"); String pageSize = paramsMap.get("pageSize"); Page cleanDryGoodPage = null; Page page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_id", farmId).eq("vistit_type", 5); QueryWrapper queryWrapper2 = new QueryWrapper<>(); queryWrapper2.eq("farm_id", farmId).eq("vistit_type", 5); QueryWrapper queryWrapper3 = new QueryWrapper<>(); queryWrapper3.eq("farm_id", farmId); String[] s = {TokenSign.getMemberIdByJwtToken(httpServletRequest).toString()}; System.out.println("传入自定义sql的位置参数形式:" + s); cleanDryGoodPage = cleanMapper.listCleanDryGoods(page, farmId, "5", "0,1".split(","), s); // queryWrapper.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); // queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); // queryWrapper3.in("current_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)); queryWrapper.eq("img_status", 0); queryWrapper2.eq("img_status", 0); queryWrapper3.eq("bill_status", 0); Integer integer = cleanMapper.selectCount(queryWrapper); Integer integer1 = dryMapper.selectCount(queryWrapper2); Integer integer2 = inventoryMapper.selectCount(queryWrapper3); return new Result(ResultCode.SUCCESS, cleanDryGoodPage, integer + integer1 + integer2); } @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 @Transactional public Result commitClean(HttpServletRequest httpServletRequest, String farmId, String id, String date, String result , MultipartFile img1, MultipartFile img2, MultipartFile img3) throws ParseException, IOException { String s1 = ""; String s2 = ""; String s3 = ""; 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); } String s = s1 + s2 + s3; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); if (StringUtils.isBlank(date)) { date = sdf.format(new Date()); } BillClean billClean = cleanMapper.selectById(id);//某条洗消记录 billClean.setImgUrl(s); billClean.setImgStatus(1); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId()); BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程 QueryWrapper locationQueryWrapper = new QueryWrapper<>(); locationQueryWrapper.eq("id", billClean.getTestLocationId()); BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置 QueryWrapper queryWrapper3 = new QueryWrapper<>(); queryWrapper3.eq("farm_id", farmId); Configuration configuration = configurationMapper.selectOne(queryWrapper3); QueryWrapper existQueryWrapper = new QueryWrapper<>(); existQueryWrapper.eq("farm_id", farmId); Exist exist = existMapper.selectOne(existQueryWrapper);//判断是否有二级洗消站 if (billClean.getBillStatus() != 0) { return new Result(10001, "该订单已通过,无需再次提交!", false); } 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()))); billClean.setCleanTime("10"); if (exist.getExist() == 0) { 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] = "2"; split1[3] = "1"; baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + "," + split1[2] + "," + split1[3] + status.substring(7)); } 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 (exist.getExist() == 1 && billClean.getDestId() >= 4 && baseLocation.getId() == 1) { BillClean billClean1 = new BillClean(); billClean1.setVistitType(billClean.getVistitType()); billClean1.setDestName(billClean.getDestName()); billClean1.setDestId(billClean.getDestId()); billClean1.setAdmissionUserId(billClean.getAdmissionUserId()); billClean1.setAdmissionUserName(billClean.getAdmissionUserName()); billClean1.setVistitDate(billClean.getVistitDate()); billClean1.setSubDate(LocalDateTime.now()); billClean1.setFarmId(billClean.getFarmId()); billClean1.setBillStatus(0); billClean1.setProcessId(billClean.getProcessId()); billClean1.setPhone(billClean.getPhone()); billClean1.setTestLocation("场内"); billClean1.setTestLocationId(4); billCleanMapper.insert(billClean1); 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); if (exist.getExist() == 0) { 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 { 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)); } } 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); if (exist.getExist() == 0) { 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] + "," + "1"); } else { String status = baseProcess.getAllLocationStatus(); String[] split1 = status.split(","); split1[0] = "2"; split1[1] = "2"; split1[2] = "2"; split1[3] = "2"; baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + "," + split1[2] + "," + split1[3] + "," + "1"); } } } if (baseProcess.getDestId() == 1) { baseProcess.setAllLocationStatus("2,2"); } if (baseProcess.getDestId() == 4 && baseLocation.getId() == 1) { baseProcess.setAllLocationStatus("2,2,2,1,0"); } if (baseProcess.getDestId() == 2) { baseProcess.setAllLocationStatus("2,2,2"); } 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()))); billClean.setCleanTime("10"); if (baseProcess.getDestId() == 1) { baseProcess.setAllLocationStatus("2,3"); } if (baseProcess.getDestId() == 2) { baseProcess.setAllLocationStatus("2,3,0"); } if (baseProcess.getDestId() >= 3 && baseLocation.getId() == 3) { String status = baseProcess.getAllLocationStatus(); String[] split1 = status.split(","); split1[0] = "2"; split1[1] = "2"; split1[2] = "2"; split1[3] = "3"; baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + "," + split1[2] + "," + split1[3] + status.substring(7)); } if (baseLocation.getId() == 1 && baseProcess.getDestId() > 2) { String status = baseProcess.getAllLocationStatus(); String[] split1 = status.split(","); split1[0] = "2"; split1[1] = "3"; split1[2] = "0"; split1[3] = "0"; baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + "," + split1[2] + "," + split1[3] + status.substring(7)); } if (baseLocation.getId() == 4 && exist.getExist() == 0) { String status = baseProcess.getAllLocationStatus(); String[] split1 = status.split(","); split1[0] = "2"; split1[1] = "2"; split1[2] = "2"; split1[3] = "2"; split1[4] = "3"; baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + "," + split1[2] + "," + split1[3] + "," + split1[4] + status.substring(9)); } if (exist.getExist() == 1 && baseProcess.getDestId() > 2 && baseLocation.getId() == 4) { String status = baseProcess.getAllLocationStatus(); String[] split1 = status.split(","); split1[0] = "2"; split1[1] = "2"; split1[2] = "2"; split1[3] = "3"; baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + "," + split1[2] + "," + split1[3] + status.substring(7)); } 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()))); billClean.setCleanTime("10"); 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 ids = baseProcess.getAllLocationId(); String[] split = ids.split(","); Integer s22 = 0; for (int i = 0; i < split.length; i++) { if (Integer.parseInt(split[i]) == baseLocation.getId()) { s22 = i; } } String status1 = baseProcess.getAllLocationStatus(); StringBuilder split1 = new StringBuilder(status1); split1.replace(s22, s22 + 1, "3"); baseProcess.setAllLocationStatus(split1.toString()); if (baseProcess.getDestId() == 1) { baseProcess.setAllLocationStatus("2,3"); } if (baseProcess.getDestId() == 3) { baseProcess.setAllLocationStatus("2,2,3"); } if (baseProcess.getDestId() == 4) { baseProcess.setAllLocationStatus("2,2,2,3"); } processMapper.updateById(baseProcess); cleanMapper.updateById(billClean); return new Result(10000, "修改成功!", true); } } @Resource private BillCleanMapper billCleanMapper; @Autowired private BillCleanBeforeMapper beforeMapper; @Autowired private BillSamplingMapper samplingMapper; @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 @Transactional 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 billClean1 = cleanMapper.selectById(id);//某条洗消记录 if (billClean1.getBillStatus() != 0) { return new Result(10001, "该订单已通过,无需再次提交!", false); } //洗消上传 BillClean billClean = cleanMapper.selectById(id);//某条洗消记录 System.out.println("洗消记录的id:" + billClean.getTestLocationId()); Integer testId = billClean.getTestLocationId(); QueryWrapper locationQueryWrapper = new QueryWrapper<>(); locationQueryWrapper.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()))); billClean.setCleanTime("10"); 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);//某条烘干记录 if (billClean.getBillStatus() != 0) { return new Result(10001, "该订单已通过,无需再次提交!", false); } System.out.println("洗消记录的id:" + billClean.getTestLocationId()); Integer testId = billClean.getTestLocationId(); QueryWrapper locationQueryWrapper = new QueryWrapper<>(); locationQueryWrapper.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()))); billClean.setDryTem("70"); billClean.setDryTime("10"); 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 @Transactional 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);//某条洗消记录 if (billClean.getBillStatus() != 0) { return new Result(10001, "此条记录已被他人修改,请退出刷新查看!", false); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId()); BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程 QueryWrapper locationQueryWrapper = new QueryWrapper<>(); locationQueryWrapper.eq("id", billClean.getTestLocationId()); BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置 String allLocationId = baseProcess.getAllLocationId();//所有的位置id String allFlowId = baseProcess.getAllFlowId();//所有的流程id String currentFlowId = baseProcess.getCurrentFlowId();//当前已经完成的流程id String substring1 = allFlowId.substring(currentFlowId.length() + 1, allFlowId.length()); String[] splits = substring1.split(","); Integer nextId = Integer.parseInt(splits[0]); 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); billClean.setCleanTime("10"); cleanMapper.updateById(billClean); Object newObject = BillPcrServiceImpl.getNewObject(nextId, billClean.getDestName(), billClean.getDestId(), billClean.getAdmissionUserName(), billClean.getAdmissionUserId(), billClean.getVistitDate(), billClean.getSubDate(), billClean.getProcessId(), billClean.getFarmId(), billClean.getTestLocation(), billClean.getTestLocationId(), billClean.getVistitType(), billClean.getPhone(), billClean.getDepartureName(), billClean.getDepartureId(),billClean.getMidId(),billClean.getMidName()); if (nextId == 0) { if (splits.length == 1) { baseProcess.setProcessType(1); String[] strings = allLocationId.split(","); String ss2 = ""; for (int i = 0; i < strings.length; i++) { strings[i].replaceAll(strings[i], "2"); if (i == strings.length - 1) { ss2 = ss2 + strings[i].replaceAll(strings[i], "2"); } else { ss2 = strings[i].replaceAll(strings[i], "2") + "," + ss2; } } baseProcess.setAllLocationStatus(ss2); } else { String[] strings = allLocationId.split(","); Integer index = 0; for (int i = 0; i < strings.length; i++) { if ((baseLocation.getId().toString()).equals(strings[i])) { index = i; } } QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.eq("id", strings[index + 2]); BaseLocation location = locationMapper.selectOne(queryWrapper1); FlowUtil flowUtil = new FlowUtil(); Object entity = flowUtil.getEntity(Integer.parseInt(splits[1]), billClean.getVistitType(), billClean.getDestName() , billClean.getDestId(), billClean.getAdmissionUserId(), billClean.getAdmissionUserName(), billClean.getPhone(), billClean.getVistitDate(), location.getId(), location.getLocationName(), Integer.parseInt(farmId) , baseProcess.getId(), billClean.getDepartureName(), billClean.getDepartureId(),billClean.getMidId(),billClean.getMidName()); if (Integer.parseInt(splits[1]) == 1) { //新增采样 BillSampling billSampling = (BillSampling) entity; if (billClean.getVistitType() != 0) { billSampling.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billSampling.setResource(billClean.getResource()); billSampling.setFeedImgUrl(billClean.getFeedImgUrl()); billSampling.setRemark(billClean.getRemark()); } samplingMapper.insert(billSampling); } else if (Integer.parseInt(splits[1]) == 2) { //新增pcr BillPcr billClean1 = (BillPcr) entity; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } pcrMapper.insert(billClean1); } else if (Integer.parseInt(splits[1]) == 3) { //新增洗澡 BillClean billClean1 = (BillClean) entity; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } cleanMapper.insert(billClean1); } else if (Integer.parseInt(splits[1]) == 4) { //新增隔离 BillIsolate pcr = (BillIsolate) entity; if (billClean.getVistitType() != 0) { pcr.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { pcr.setResource(billClean.getResource()); pcr.setFeedImgUrl(billClean.getFeedImgUrl()); pcr.setRemark(billClean.getRemark()); } isolateMapper.insert(pcr); } else if (Integer.parseInt(splits[1]) == 5) { BillDry billClean1 = (BillDry) entity; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } dryMapper.insert(billClean1); //新增烘干 } else if (Integer.parseInt(splits[1]) == 6) { //新增洗澡前拍照 BillCleanBefore before = (BillCleanBefore) entity; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } beforeMapper.insert(before); } else if (Integer.parseInt(splits[1]) == 7) { //新增洗澡前拍照 BillGoodsInventory before = (BillGoodsInventory) entity; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } inventoryMapper.insert(before); } baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId + "," + splits[1]); Integer locationId = billClean.getTestLocationId(); String[] split2 = allLocationId.split(","); int a=0; for (int i = 0; i < split2.length; i++) { if (locationId.toString().equals(split2[i])) { a = i + 1; } } int indexOf = 2 * (a - 2);//当前位置在所有流程位置中的下标 String substring = baseProcess.getAllLocationStatus().substring(0, indexOf + 3);//截取已经过的位置状态 String[] split1 = substring.split(","); String sb2 = ""; for (int i = 0; i < split1.length; i++) { if (i == split1.length - 1) { sb2 = sb2 + split1[i].replaceAll(split1[i], "2"); } else { sb2 = split1[i].replaceAll(split1[i], "2") + "," + sb2; } } sb2 = sb2 + baseProcess.getAllLocationStatus().substring(indexOf + 3); StringBuilder sb = new StringBuilder(sb2); sb.replace(indexOf + 4, indexOf + 5, "2"); sb.replace(indexOf + 6, indexOf + 7, "1"); baseProcess.setAllLocationStatus(sb.toString()); } } else if (nextId == 1) { //新增采样 BillSampling billSampling = (BillSampling) newObject; if (billClean.getVistitType() != 0) { billSampling.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billSampling.setResource(billClean.getResource()); billSampling.setFeedImgUrl(billClean.getFeedImgUrl()); billSampling.setRemark(billClean.getRemark()); } samplingMapper.insert(billSampling); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 2) { //新增pcr BillPcr billClean1 = (BillPcr) newObject; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } pcrMapper.insert(billClean1); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 3) { //新增洗澡 BillClean billClean2 = (BillClean) newObject; if (billClean.getVistitType() != 0) { billClean2.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean2.setResource(billClean.getResource()); billClean2.setFeedImgUrl(billClean.getFeedImgUrl()); billClean2.setRemark(billClean.getRemark()); } cleanMapper.insert(billClean2); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 4) { //新增隔离 BillIsolate pcr = (BillIsolate) newObject; if (billClean.getVistitType() != 0) { pcr.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { pcr.setResource(billClean.getResource()); pcr.setFeedImgUrl(billClean.getFeedImgUrl()); pcr.setRemark(billClean.getRemark()); } isolateMapper.insert(pcr); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 5) { BillDry billClean2 = (BillDry) newObject; if (billClean.getVistitType() != 0) { billClean2.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean2.setResource(billClean.getResource()); billClean2.setFeedImgUrl(billClean.getFeedImgUrl()); billClean2.setRemark(billClean.getRemark()); } dryMapper.insert(billClean2); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); //新增烘干 } else if (nextId == 6) { //新增洗澡前拍照 BillCleanBefore before = (BillCleanBefore) newObject; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } beforeMapper.insert(before); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 7) { //新增洗澡前拍照 BillGoodsInventory before = (BillGoodsInventory) newObject; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } inventoryMapper.insert(before); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } 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()))); billClean.setCleanTime("10"); 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"); int i = allLocationId.indexOf(billClean.getTestLocationId().toString()); String status1 = baseProcess.getAllLocationStatus(); System.out.println(status1); StringBuilder sb = new StringBuilder(status1); sb.setCharAt(i, '3'); baseProcess.setAllLocationStatus(sb.toString()); cleanMapper.updateById(billClean); processMapper.updateById(baseProcess); } return new Result(10000, "修改成功!", true); } else { BillDry billClean = dryMapper.selectById(id);//某条烘干记录 if (billClean.getBillStatus() != 0) { return new Result(10001, "此条记录已被他人修改,请退出刷新查看!", false); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId()); BaseProcess baseProcess = processMapper.selectOne(queryWrapper);//某条进程 QueryWrapper locationQueryWrapper = new QueryWrapper<>(); locationQueryWrapper.eq("id", billClean.getTestLocationId()); BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置 String allLocationId = baseProcess.getAllLocationId();//所有的位置id String allFlowId = baseProcess.getAllFlowId();//所有的流程id String currentFlowId = baseProcess.getCurrentFlowId();//当前已经完成的流程id String substring1 = allFlowId.substring(currentFlowId.length() + 1, allFlowId.length()); String[] splits = substring1.split(","); Integer nextId = Integer.parseInt(splits[0]); 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()); billClean.setDryTime("10"); billClean.setDryTem("70"); dryMapper.updateById(billClean); Object newObject = BillPcrServiceImpl.getNewObject(nextId, billClean.getDestName(), billClean.getDestId(), billClean.getAdmissionUserName(), billClean.getAdmissionUserId(), billClean.getVistitDate(), billClean.getSubDate(), billClean.getProcessId(), billClean.getFarmId(), billClean.getTestLocation(), billClean.getTestLocationId(), billClean.getVistitType(), billClean.getPhone(), billClean.getDepartureName(), billClean.getDepartureId(),billClean.getMidId(),billClean.getMidName()); if (nextId == 0) { if (splits.length == 1) { baseProcess.setProcessType(1); String[] strings = allLocationId.split(","); String ss2 = ""; for (int i = 0; i < strings.length; i++) { strings[i].replaceAll(strings[i], "2"); if (i == strings.length - 1) { ss2 = ss2 + strings[i].replaceAll(strings[i], "2"); } else { ss2 = strings[i].replaceAll(strings[i], "2") + "," + ss2; } } baseProcess.setAllLocationStatus(ss2); } else { String[] strings = allLocationId.split(","); Integer index = 0; for (int i = 0; i < strings.length; i++) { if ((baseLocation.getId().toString()).equals(strings[i])) { index = i; } } QueryWrapper queryWrapper1 = new QueryWrapper(); queryWrapper1.eq("id", strings[index + 2]); BaseLocation location = locationMapper.selectOne(queryWrapper1); FlowUtil flowUtil = new FlowUtil(); Object entity = flowUtil.getEntity(Integer.parseInt(splits[1]), billClean.getVistitType(), billClean.getDestName() , billClean.getDestId(), billClean.getAdmissionUserId(), billClean.getAdmissionUserName(), billClean.getPhone(), billClean.getVistitDate(), location.getId(), location.getLocationName(), Integer.parseInt(farmId) , baseProcess.getId(), billClean.getDepartureName(), billClean.getDepartureId(),billClean.getMidId(),billClean.getMidName()); if (Integer.parseInt(splits[1]) == 1) { //新增采样 BillSampling billSampling = (BillSampling) entity; if (billClean.getVistitType() != 0) { billSampling.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billSampling.setResource(billClean.getResource()); billSampling.setFeedImgUrl(billClean.getFeedImgUrl()); billSampling.setRemark(billClean.getRemark()); } samplingMapper.insert(billSampling); } else if (Integer.parseInt(splits[1]) == 2) { //新增pcr BillPcr billClean1 = (BillPcr) entity; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } pcrMapper.insert(billClean1); } else if (Integer.parseInt(splits[1]) == 3) { //新增洗澡 BillClean billClean1 = (BillClean) entity; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } cleanMapper.insert(billClean1); } else if (Integer.parseInt(splits[1]) == 4) { //新增隔离 BillIsolate pcr = (BillIsolate) entity; if (billClean.getVistitType() != 0) { pcr.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { pcr.setResource(billClean.getResource()); pcr.setFeedImgUrl(billClean.getFeedImgUrl()); pcr.setRemark(billClean.getRemark()); } isolateMapper.insert(pcr); } else if (Integer.parseInt(splits[1]) == 5) { BillDry billClean1 = (BillDry) entity; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } dryMapper.insert(billClean1); //新增烘干 } else if (Integer.parseInt(splits[1]) == 6) { //新增洗澡前拍照 BillCleanBefore before = (BillCleanBefore) entity; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } beforeMapper.insert(before); } else if (Integer.parseInt(splits[1]) == 7) { //新增洗澡前拍照 BillGoodsInventory before = (BillGoodsInventory) entity; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } inventoryMapper.insert(before); } baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId + "," + splits[1]); Integer locationId = billClean.getTestLocationId(); String[] split2 = allLocationId.split(","); int a=0; for (int i = 0; i < split2.length; i++) { if (locationId.toString().equals(split2[i])) { a = i + 1; } } int indexOf = 2 * (a - 2);//当前位置在所有流程位置中的下标 String substring = baseProcess.getAllLocationStatus().substring(0, indexOf + 3);//截取已经过的位置状态 String[] split1 = substring.split(","); String sb2 = ""; for (int i = 0; i < split1.length; i++) { if (i == split1.length - 1) { sb2 = sb2 + split1[i].replaceAll(split1[i], "2"); } else { sb2 = split1[i].replaceAll(split1[i], "2") + "," + sb2; } } sb2 = sb2 + baseProcess.getAllLocationStatus().substring(indexOf + 3); StringBuilder sb = new StringBuilder(sb2); sb.replace(indexOf + 4, indexOf + 5, "2"); sb.replace(indexOf + 6, indexOf + 7, "1"); baseProcess.setAllLocationStatus(sb.toString()); } } else if (nextId == 1) { //新增采样 BillSampling billSampling = (BillSampling) newObject; if (billClean.getVistitType() != 0) { billSampling.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billSampling.setResource(billClean.getResource()); billSampling.setFeedImgUrl(billClean.getFeedImgUrl()); billSampling.setRemark(billClean.getRemark()); } samplingMapper.insert(billSampling); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 2) { //新增pcr BillPcr billClean1 = (BillPcr) newObject; if (billClean.getVistitType() != 0) { billClean1.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean1.setResource(billClean.getResource()); billClean1.setFeedImgUrl(billClean.getFeedImgUrl()); billClean1.setRemark(billClean.getRemark()); } pcrMapper.insert(billClean1); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 3) { //新增洗澡 BillClean billClean2 = (BillClean) newObject; if (billClean.getVistitType() != 0) { billClean2.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean2.setResource(billClean.getResource()); billClean2.setFeedImgUrl(billClean.getFeedImgUrl()); billClean2.setRemark(billClean.getRemark()); } cleanMapper.insert(billClean2); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 4) { //新增隔离 BillIsolate pcr = (BillIsolate) newObject; if (billClean.getVistitType() != 0) { pcr.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { pcr.setResource(billClean.getResource()); pcr.setFeedImgUrl(billClean.getFeedImgUrl()); pcr.setRemark(billClean.getRemark()); } isolateMapper.insert(pcr); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 5) { BillDry billClean2 = (BillDry) newObject; if (billClean.getVistitType() != 0) { billClean2.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { billClean2.setResource(billClean.getResource()); billClean2.setFeedImgUrl(billClean.getFeedImgUrl()); billClean2.setRemark(billClean.getRemark()); } dryMapper.insert(billClean2); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); //新增烘干 } else if (nextId == 6) { //新增洗澡前拍照 BillCleanBefore before = (BillCleanBefore) newObject; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } beforeMapper.insert(before); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } else if (nextId == 7) { //新增洗澡前拍照 BillGoodsInventory before = (BillGoodsInventory) newObject; if (billClean.getVistitType() != 0) { before.setCarNum(billClean.getCarNum()); } if (billClean.getVistitType() == 5) { before.setResource(billClean.getResource()); before.setFeedImgUrl(billClean.getFeedImgUrl()); before.setRemark(billClean.getRemark()); } inventoryMapper.insert(before); baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId); } 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()))); billClean.setDryTime("10"); billClean.setDryTem("70"); 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"); int i = allLocationId.indexOf(billClean.getTestLocationId().toString()); String status1 = baseProcess.getAllLocationStatus(); StringBuilder sb = new StringBuilder(status1); sb.setCharAt(i, '3'); baseProcess.setAllLocationStatus(sb.toString()); 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; DecimalFormat def = new DecimalFormat("0.00"); String rank; if (allCount == 0 || allCount == null) { Double ranks = Double.valueOf("0.00"); rank = ranks.toString(); } else { Double ranks = (Double.valueOf(count.toString()) / Double.valueOf(allCount.toString())) * 100; rank = def.format(ranks); } 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"; } QueryWrapper queryWrapper = new QueryWrapper<>(); if (ObjectUtil.isNotEmpty(startTime)) { startTime = startTime + " 00:00:00"; endTime = endTime + " 23:59:59"; queryWrapper.between("check_date", startTime, endTime); } queryWrapper.lambda().orderByDesc(BillClean::getId); queryWrapper.eq("farm_id", farmId); 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); } @Override public Result listScreen(HttpServletRequest httpServletRequest, Map paramsMap) { String farmId = paramsMap.get("farmId"); String type = paramsMap.get("type"); if ("".equals(type) || null == type) { type = "1"; } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("pass_date"); if ("21".equals(farmId)) { queryWrapper.eq("farm_id", 26); }else { queryWrapper.eq("farm_id", farmId); } if (type.equals("1")) { queryWrapper.eq("vistit_type", 0).ne("bill_status", 0); } else { queryWrapper.ne("vistit_type", 0).ne("bill_status", 0); } return new Result(ResultCode.SUCCESS, billCleanMapper.selectList(queryWrapper)); } }