123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- package com.huimv.receive.service.impl;
- import cn.hutool.core.util.ObjectUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- 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.FlowUtil;
- import com.huimv.receive.common.utils.Result;
- import com.huimv.receive.common.utils.ResultCode;
- import com.huimv.receive.common.utils.UploadImage;
- import com.huimv.receive.entity.*;
- import com.huimv.receive.mapper.*;
- import com.huimv.receive.service.IBillSamplingService;
- 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.servlet.http.HttpServletRequest;
- import java.io.IOException;
- import java.text.ParseException;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.Map;
- /**
- * <p>
- * 洗消表 服务实现类
- * </p>
- *
- * @author author
- * @since 2024-03-11
- */
- @Service
- public class BillSamplingServiceImpl extends ServiceImpl<BillSamplingMapper, BillSampling> implements IBillSamplingService {
- @Autowired
- private BillSamplingMapper billSamplingMapper;
- @Autowired
- private UploadImage uploadImage;
- @Autowired
- private BaseProcessMapper processMapper;
- @Autowired
- private BaseLocationMapper locationMapper;
- @Autowired
- private BillPcrMapper pcrMapper;
- @Autowired
- private BillCleanMapper cleanMapper;
- @Autowired
- private BillIsolateMapper isolateMapper;
- @Autowired
- private BillDryMapper dryMapper;
- @Autowired
- private BillCleanBeforeMapper billCleanBeforeMapper;
- @Autowired
- private BillGoodsInventoryMapper inventoryMapper;
- @Override
- public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String type = paramsMap.get("type");//展示类型
- String data = paramsMap.get("data");
- String pageNum = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- if ("".equals(pageNum) || null == pageNum) {
- pageNum = "1";
- }
- if ("".equals(pageSize) || null == pageSize) {
- pageSize = "20";
- }
- Page<BillSampling> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
- QueryWrapper<BillSampling> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)).orderByDesc("sub_date").eq("vistit_type",type);
- 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);
- }
- if ("3".equals(data)) {
- queryWrapper.in("bill_status", 2, 3);
- }
- QueryWrapper<BillSampling> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.eq("vistit_type", type);
- queryWrapper2.in("test_location_id", TokenSign.getWorkIdByJwtToken(httpServletRequest)).orderByDesc("sub_date");
- queryWrapper2.eq("bill_status", 0);
- return new Result(ResultCode.SUCCESS, billSamplingMapper.selectPage(page, queryWrapper), billSamplingMapper.selectCount(queryWrapper2));
- }
- @Override
- public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String id = paramsMap.get("id");
- BillSampling billPcr = billSamplingMapper.selectById(id);
- return new Result(ResultCode.SUCCESS, billPcr);
- }
- @Override
- public Result listPersonalSample(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String pageNo = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- String vistitType = paramsMap.get("vistitType");
- Integer userId = TokenSign.getMemberIdByJwtToken(httpServletRequest);
- Page<BillSampling> page = new Page<>(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
- LambdaQueryWrapper<BillSampling> queryWrapper = new QueryWrapper<BillSampling>().lambda()
- .eq(BillSampling::getFarmId,farmId)
- .eq(BillSampling::getAdmissionUserId, userId)
- .eq(ObjectUtil.isNotEmpty(vistitType), BillSampling::getVistitType, vistitType)
- .orderByDesc(BillSampling::getSubDate);
- Page<BillSampling> billSamplingPage = billSamplingMapper.selectPage(page,queryWrapper);
- Integer count = billSamplingMapper.selectCount(queryWrapper);
- return new Result(ResultCode.SUCCESS,billSamplingPage,count);
- }
- @Override
- public Result edit(HttpServletRequest httpServletRequest, String farmId, String id, String date, MultipartFile img) throws ParseException, IOException {
- String s = "";
- s = uploadImage.getVideoCom(img);
- if (s.equals("上传失败")) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return new Result(10001, "视频上传失败", false);
- }
- DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
- BillSampling sampling = billSamplingMapper.selectById(id);
- if (sampling.getBillStatus() != 0) {
- return new Result(10001, "此条记录已被他人修改,请退出刷新查看!", false);
- }
- sampling.setImgUrl(s);
- sampling.setImgStatus(1);
- QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
- processQueryWrapper.eq("farm_id", farmId).eq("id", sampling.getProcessId());
- BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
- QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
- locationQueryWrapper.eq("id", sampling.getTestLocationId());
- BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
- 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[] split = substring1.split(",");
- Integer nextId = Integer.parseInt(split[0]);
- sampling.setBillStatus(1);
- sampling.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
- sampling.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
- sampling.setTestLocation(baseLocation.getLocationName());
- sampling.setTestLocationId(baseLocation.getId());
- sampling.setCheckDate(LocalDateTime.parse(date, dateTimeFormatter));
- sampling.setPassDate(LocalDateTime.now());
- Object newObject = BillPcrServiceImpl.getNewObject(nextId, sampling.getDestName(), sampling.getDestId(), sampling.getAdmissionUserName(),
- sampling.getAdmissionUserId(), sampling.getVistitDate(), sampling.getSubDate(),
- sampling.getProcessId(), Integer.parseInt(sampling.getFarmId()), sampling.getTestLocation(), sampling.getTestLocationId(),
- sampling.getVistitType(), sampling.getPhone(),sampling.getDepartureName(),sampling.getDepartureId());
- if (nextId == 0) {
- if (split.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<BaseLocation> queryWrapper1 = new QueryWrapper();
- queryWrapper1.eq("id", strings[index + 2]);
- BaseLocation location = locationMapper.selectOne(queryWrapper1);
- FlowUtil flowUtil = new FlowUtil();
- Object entity = flowUtil.getEntity(Integer.parseInt(split[1]), sampling.getVistitType(), sampling.getDestName()
- , sampling.getDestId(), sampling.getAdmissionUserId(), sampling.getAdmissionUserName(), sampling.getPhone(),
- sampling.getVistitDate(), location.getId(), location.getLocationName(), Integer.parseInt(farmId)
- , baseProcess.getId(), sampling.getDepartureName(), sampling.getDepartureId());
- if (Integer.parseInt(split[1]) == 1) {
- //新增采样
- BillSampling billSampling = (BillSampling) entity;
- if (sampling.getVistitType() != 0) {
- billSampling.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billSampling.setResource(sampling.getResource());
- billSampling.setFeedImgUrl(sampling.getFeedImgUrl());
- billSampling.setRemark(sampling.getRemark());
- }
- billSamplingMapper.insert(billSampling);
- } else if (Integer.parseInt(split[1]) == 2) {
- //新增pcr
- BillPcr billClean = (BillPcr) entity;
- if (sampling.getVistitType() != 0) {
- billClean.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billClean.setResource(sampling.getResource());
- billClean.setFeedImgUrl(sampling.getFeedImgUrl());
- billClean.setRemark(sampling.getRemark());
- }
- pcrMapper.insert(billClean);
- } else if (Integer.parseInt(split[1]) == 3) {
- //新增洗澡
- BillClean billClean = (BillClean) entity;
- if (sampling.getVistitType() != 0) {
- billClean.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billClean.setResource(sampling.getResource());
- billClean.setFeedImgUrl(sampling.getFeedImgUrl());
- billClean.setRemark(sampling.getRemark());
- }
- cleanMapper.insert(billClean);
- } else if (Integer.parseInt(split[1]) == 4) {
- //新增隔离
- BillIsolate pcr = (BillIsolate) entity;
- if (sampling.getVistitType() != 0) {
- pcr.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- pcr.setResource(sampling.getResource());
- pcr.setFeedImgUrl(sampling.getFeedImgUrl());
- pcr.setRemark(sampling.getRemark());
- }
- isolateMapper.insert(pcr);
- } else if (Integer.parseInt(split[1]) == 5) {
- BillDry billClean = (BillDry) entity;
- if (sampling.getVistitType() != 0) {
- billClean.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billClean.setResource(sampling.getResource());
- billClean.setFeedImgUrl(sampling.getFeedImgUrl());
- billClean.setRemark(sampling.getRemark());
- }
- dryMapper.insert(billClean);
- //新增烘干
- } else if (Integer.parseInt(split[1]) == 6) {
- //新增洗澡前拍照
- BillCleanBefore before = (BillCleanBefore) entity;
- if (sampling.getVistitType() != 0) {
- before.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- before.setResource(sampling.getResource());
- before.setFeedImgUrl(sampling.getFeedImgUrl());
- before.setRemark(sampling.getRemark());
- }
- billCleanBeforeMapper.insert(before);
- }else if (Integer.parseInt(split[1]) == 7) {
- //新增洗澡前拍照
- BillGoodsInventory before = (BillGoodsInventory) entity;
- if (sampling.getVistitType() != 0) {
- before.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- before.setResource(sampling.getResource());
- before.setFeedImgUrl(sampling.getFeedImgUrl());
- before.setRemark(sampling.getRemark());
- }
- inventoryMapper.insert(before);
- }
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId + "," + split[1]);
- Integer locationId = sampling.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 (sampling.getVistitType() != 0) {
- billSampling.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billSampling.setResource(sampling.getResource());
- billSampling.setFeedImgUrl(sampling.getFeedImgUrl());
- billSampling.setRemark(sampling.getRemark());
- }
- billSamplingMapper.insert(billSampling);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- }else if (nextId == 2) {
- //新增pcr
- BillPcr billClean = (BillPcr) newObject;
- if (sampling.getVistitType() != 0) {
- billClean.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billClean.setResource(sampling.getResource());
- billClean.setFeedImgUrl(sampling.getFeedImgUrl());
- billClean.setRemark(sampling.getRemark());
- }
- pcrMapper.insert(billClean);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- }else if (nextId == 3) {
- //新增洗澡
- BillClean billClean = (BillClean) newObject;
- if (sampling.getVistitType() != 0) {
- billClean.setCarNum(sampling.getCarNum());
- }if (sampling.getVistitType() == 5) {
- billClean.setResource(sampling.getResource());
- billClean.setFeedImgUrl(sampling.getFeedImgUrl());
- billClean.setRemark(sampling.getRemark());
- }
- cleanMapper.insert(billClean);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- }else if (nextId == 4) {
- //新增隔离
- BillIsolate pcr = (BillIsolate) newObject;
- if (sampling.getVistitType() != 0) {
- pcr.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- pcr.setResource(sampling.getResource());
- pcr.setFeedImgUrl(sampling.getFeedImgUrl());
- pcr.setRemark(sampling.getRemark());
- }
- isolateMapper.insert(pcr);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- }else if (nextId == 5) {
- BillDry billClean = (BillDry) newObject;
- if (sampling.getVistitType() != 0) {
- billClean.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- billClean.setResource(sampling.getResource());
- billClean.setFeedImgUrl(sampling.getFeedImgUrl());
- billClean.setRemark(sampling.getRemark());
- }
- dryMapper.insert(billClean);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- //新增烘干
- }else if (nextId == 6) {
- //新增洗澡前拍照
- BillCleanBefore before = (BillCleanBefore) newObject;
- if (sampling.getVistitType() != 0) {
- before.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- before.setResource(sampling.getResource());
- before.setFeedImgUrl(sampling.getFeedImgUrl());
- before.setRemark(sampling.getRemark());
- }
- billCleanBeforeMapper.insert(before);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- }
- else if (nextId == 7) {
- //新增洗澡前拍照
- BillGoodsInventory before = (BillGoodsInventory) newObject;
- if (sampling.getVistitType() != 0) {
- before.setCarNum(sampling.getCarNum());
- }
- if (sampling.getVistitType() == 5) {
- before.setResource(sampling.getResource());
- before.setFeedImgUrl(sampling.getFeedImgUrl());
- before.setRemark(sampling.getRemark());
- }
- inventoryMapper.insert(before);
- baseProcess.setCurrentFlowId(baseProcess.getCurrentFlowId() + "," + nextId);
- }
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + LocalDateTime.now().format(dateTimeFormatter));
- 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);
- billSamplingMapper.updateById(sampling);
- return new Result(10000, "修改成功!", true);
- }
- @Override
- public Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String type = paramsMap.get("type");//展示类型
- String data = paramsMap.get("data");
- String pageNum = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- Page<BillSampling> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
- QueryWrapper<BillSampling> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId).orderByDesc("sub_date").eq("vistit_type",type);
- if ("0".equals(data)) {
- queryWrapper.in("bill_status", 0, 1, 2, 3);
- }
- if ("1".equals(data)) {
- queryWrapper.in("bill_status", 0,3);
- }
- if ("2".equals(data)) {
- queryWrapper.eq("bill_status", 1);
- }
- return new Result(ResultCode.SUCCESS,billSamplingMapper.selectPage(page,queryWrapper));
- }
- public static void main(String[] args) {
- String s = "0,35,0,36,0,38,0";
- String[] split1 = s.split(",");
- int a = 0;
- for (int i = 0; i < split1.length; i++) {
- if ("36".equals(split1[i])) {
- a = i+1;
- }
- }
- int i = 2 *(a - 2);
- System.out.println(i);
- String s1 = "2,2,2,1,0,0,0";
- String s2 = s1.substring(0, i + 3);
- System.out.println("s2:"+s2);
- String[] split = s2.split(",");
- String sb2 = "";
- for (int j = 0; j < split.length; j++) {
- if (j == split.length - 1) {
- sb2 = sb2 + split[j].replaceAll(split[j], "2");
- } else {
- sb2 = split[j].replaceAll(split[j], "2") + "," + sb2;
- }
- }
- sb2 = sb2 + s1.substring(i + 3);
- StringBuilder sb = new StringBuilder(sb2);
- sb.replace(i + 4, i + 5, "2");
- sb.replace(i + 6, i + 7, "1");
- System.out.println(sb.toString());
- }
- }
|