package com.huimv.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.huimv.admin.common.token.TokenSign; import com.huimv.admin.common.utils.Result; import com.huimv.admin.common.utils.ResultCode; import com.huimv.admin.entity.BaseLocation; import com.huimv.admin.entity.BaseProcess; import com.huimv.admin.entity.BillClean; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huimv.admin.common.token.TokenSign; import com.huimv.admin.common.utils.Result; import com.huimv.admin.common.utils.ResultCode; import com.huimv.admin.entity.BillPcr; import com.huimv.admin.mapper.BaseLocationMapper; import com.huimv.admin.mapper.BaseProcessMapper; import com.huimv.admin.mapper.BillCleanMapper; import com.huimv.admin.mapper.BillPcrMapper; import com.huimv.admin.service.IBillPcrService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Map; /** *

* pcr 表 服务实现类 *

* * @author author * @since 2023-07-21 */ @Service public class BillPcrServiceImpl extends ServiceImpl implements IBillPcrService { @Resource private BillPcrMapper billPcrMapper; @Override public Result listPersonalPcr(HttpServletRequest httpServletRequest, Map paramsMap) { String pageNo = paramsMap.get("pageNum"); String pageSize = paramsMap.get("pageSize"); Page page = new Page<>(Integer.parseInt(pageNo),Integer.parseInt(pageSize)); Page billPcrPage = billPcrMapper.selectPage(page, new QueryWrapper().eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date")); return new Result(ResultCode.SUCCESS,billPcrPage); } @Autowired private BillPcrMapper pcrMapper; @Autowired private BaseProcessMapper processMapper; @Autowired private BaseLocationMapper locationMapper; @Autowired private BillCleanMapper cleanMapper; @Override public Result list(HttpServletRequest httpServletRequest, Map paramsMap) { String farmId = paramsMap.get("farmId"); String type = paramsMap.get("type");//展示类型 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_id", farmId).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest)); if ("".equals(type) || null == type) { queryWrapper.eq("pcr_type", 0); } else if (type.equals("3")) { queryWrapper.eq("pcr_type", 0).in("bill_status", 2, 3); } else { queryWrapper.eq("pcr_type", 0).eq("bill_status", type); } List billPcrs = pcrMapper.selectList(queryWrapper); return new Result(ResultCode.SUCCESS, billPcrs); } @Override public Result listById(HttpServletRequest httpServletRequest, Map paramsMap) { String id = paramsMap.get("id"); BillPcr billPcr = pcrMapper.selectById(id); return new Result(ResultCode.SUCCESS, billPcr); } @Override public Result edit(HttpServletRequest httpServletRequest, Map paramsMap) throws ParseException { String result = paramsMap.get("result");//1为合格2为异常 String id = paramsMap.get("id"); String farmId = paramsMap.get("farmId"); String date = paramsMap.get("date"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (StringUtils.isBlank(date)) { date = sdf.format(new Date()); } BillPcr billPcr = pcrMapper.selectById(id); QueryWrapper processQueryWrapper = new QueryWrapper<>(); processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId()); BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程 QueryWrapper locationQueryWrapper = new QueryWrapper<>(); locationQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getTestLocationId()); BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置 if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) { return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false); } else { if (billPcr.getDestId() > billPcr.getTestLocationId()) { //说明当前不是目的地 if ("1".equals(result)) { billPcr.setBillStatus(1); billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest)); billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest)); billPcr.setTestLocation(baseLocation.getLocationName()); billPcr.setTestLocationId(baseLocation.getId()); billPcr.setCheckDate(sdf.parse(date)); billPcr.setPassDate(sdf.parse(sdf.format(new Date()))); //通过生成洗消记录 BillClean billClean = new BillClean(); billClean.setVistitType(billPcr.getVistitType()); billClean.setDestName(billPcr.getDestName()); billClean.setDestId(billPcr.getDestId()); billClean.setAdmissionUserName(billPcr.getAdmissionUserName()); billClean.setAdmissionUserId(billPcr.getAdmissionUserId()); billClean.setVistitDate(billPcr.getVistitDate()); billClean.setSubDate(billPcr.getSubDate()); billClean.setFarmId(billPcr.getFarmId()); billClean.setPassUserName(billPcr.getPassUserName()); billClean.setPassDate(billPcr.getPassDate()); billClean.setPassUserId(billPcr.getPassUserId()); billClean.setProcessId(billPcr.getProcessId()); billClean.setTestLocation(baseLocation.getNextLocation()); billClean.setTestLocationId(baseLocation.getNextId()); cleanMapper.insert(billClean); baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date())); baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation()); baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId()); String status = baseProcess.getCurrentStatus(); String substring = status.substring(0, status.length() - 1); baseProcess.setCurrentStatus(substring + "1," + 0); processMapper.updateById(baseProcess); pcrMapper.updateById(billPcr); return new Result(10000, "修改成功!", true); } else { billPcr.setBillStatus(2); billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest)); billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest)); billPcr.setTestLocation(baseLocation.getLocationName()); billPcr.setTestLocationId(baseLocation.getId()); billPcr.setCheckDate(sdf.parse(date)); billPcr.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 + "2"); if (baseLocation.getId() == 2) { //第一次检测不合格 billPcr.setPcrType(1); } if (baseLocation.getId() == 6) { //第二次检测不合格 baseProcess.setProcessType(2); } if (baseLocation.getId() == 11) { //第三次不合格 baseProcess.setProcessType(2); } processMapper.updateById(baseProcess); pcrMapper.updateById(billPcr); return new Result(10000, "修改成功!", true); } } else { if ("1".equals(result)) { billPcr.setBillStatus(1); billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest)); billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest)); billPcr.setTestLocation(baseLocation.getLocationName()); billPcr.setTestLocationId(baseLocation.getId()); billPcr.setCheckDate(sdf.parse(date)); billPcr.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"); baseProcess.setProcessType(1); processMapper.updateById(baseProcess); pcrMapper.updateById(billPcr); return new Result(10000, "修改成功!", true); } else { if (baseLocation.getId() == 2) { //第一次检测不合格 billPcr.setPcrType(1); baseProcess.setProcessType(2); } else { baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +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"); billPcr.setBillStatus(2); billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest)); billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest)); billPcr.setTestLocation(baseLocation.getLocationName()); billPcr.setTestLocationId(baseLocation.getId()); billPcr.setCheckDate(sdf.parse(date)); billPcr.setPassDate(sdf.parse(sdf.format(new Date()))); processMapper.updateById(baseProcess); pcrMapper.updateById(billPcr); return new Result(10000, "修改成功!", true); } } } } private void xiugaiPro(BaseProcess baseProcess,BillPcr billPcr) { baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + new Date()); baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation()); baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId()); baseProcess.setCurrentStatus(baseProcess.getCurrentStatus() + "," + 2); } }