From 9f0acaeb06ae88c5a5e41b0ed6fd4b8da8848bc8 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期三, 13 十一月 2024 16:32:11 +0800 Subject: [PATCH] 附件上传文件名称#转换& --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 572 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 307 insertions(+), 265 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index c769d0c..b4c8a56 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -15,32 +15,21 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.deepoove.poi.XWPFTemplate; -import com.deepoove.poi.config.Configure; -import com.deepoove.poi.config.ConfigureBuilder; -import com.deepoove.poi.data.*; -import com.deepoove.poi.data.style.*; -import com.deepoove.poi.util.TableTools; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.dto.InsOrderPlanDTO; import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.dto.SampleProductDto; +import com.yuanchu.mom.dto.SubmitPlanDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.service.*; import com.yuanchu.mom.utils.*; import com.yuanchu.mom.vo.*; -import org.apache.commons.io.IOUtils; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; -import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -49,7 +38,6 @@ import javax.servlet.http.HttpServletRequest; import java.io.*; import java.nio.file.Files; -import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; @@ -57,8 +45,6 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -95,11 +81,17 @@ @Resource private WarehouseHistoryMapper warehouseHistoryMapper; + @Resource + private WarehouseService warehouseService; + @Value("${wordUrl}") private String wordUrl; @Value("${twoCode}") private String twoCode; + + @Resource + WordUtils wordUtils; @Resource private InsReportMapper insReportMapper; @@ -137,18 +129,17 @@ @Resource private InsOrderFileMapper insOrderFileMapper; + @Resource + FuSheUtils fuSheUtils; + @Override public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(InsOrderPlanVO.class)); Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); - User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉 - String laboratory = null; String userName = null; - Integer userId = null; if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { - userId = map1.get("userId"); userName = userMapper.selectById(map1.get("userId")).getName(); insOrderPlanDTO.setUserId(null); } @@ -196,7 +187,11 @@ if (BeanUtil.isEmpty(order.getInsTime())) { insOrder.setInsTime(LocalDateTime.now()); insOrderMapper.updateById(insOrder); - insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, id).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, LocalDateTime.now()).set(InsOrderState::getInsState, 1)); + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, id) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsTime, LocalDateTime.now()) + .set(InsOrderState::getInsState, 1)); } Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory); List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class); @@ -212,8 +207,22 @@ //鏍峰搧 insProducts = insSampleMapper.getInsProduct1(id, laboratory); if (insProducts.size() == 0) { - insProducts = insSampleMapper.getIns2Product1(id, laboratory); + insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, id) + .eq(InsProduct::getState, 1) + .eq(InsProduct::getSonLaboratory, laboratory)); + for (InsProduct insProduct : insProducts) { + List<InsProductResult2> insProductResult2List = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getInsProductId, insProduct.getId()).isNull(InsProductResult2::getNum)); + insProduct.setInsProductResult2(insProductResult2List); + InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum)); + insProduct.setInsProductResult(insProductResult); + } } + /*if (insProducts.size() == 0) { + insProducts = insSampleMapper.getIns2Product1(id, laboratory); + }*/ break; case 1: //鍏夌氦甯� @@ -282,13 +291,20 @@ public Map<String, Object> getFileList(Page page, InsOrderFile insOrderFile) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(InsOrderFile.class)); - IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile)); + Integer insOrderId = insOrderFile.getInsOrderId(); + insOrderFile.setInsOrderId(null); + String sonLaboratory = null; + if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) { + sonLaboratory = insOrderFile.getSonLaboratory(); + insOrderFile.setSonLaboratory(null); + } + IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory); map.put("body", insOrderFileIPage); return map; } @Override - public int uploadFile(Integer orderId, MultipartFile file) { + public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory) { String urlString; String pathName; String path; @@ -311,16 +327,39 @@ if (!realpath.exists()) { realpath.mkdirs(); } - pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + pathName = file.getOriginalFilename().replace("#","&"); urlString = realpath + "/" + pathName; file.transferTo(new File(urlString)); insOrderFile.setFileUrl(pathName); - return insOrderFileMapper.insert(insOrderFile); + if (ObjectUtils.isNotEmpty(sonLaboratory)) { + insOrderFile.setSonLaboratory(sonLaboratory); + //鍒犻櫎閲嶅鐨勬暟鎹� + insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery() + .eq(InsOrderFile::getInsOrderId, orderId) + .eq(InsOrderFile::getType, insOrderFile.getType()) + .eq(InsOrderFile::getFileName, insOrderFile.getFileName()) + .eq(InsOrderFile::getSonLaboratory, insOrderFile.getSonLaboratory()) + .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl())); + } else { + //鍒犻櫎閲嶅鐨勬暟鎹� + insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery() + .eq(InsOrderFile::getInsOrderId, orderId) + .eq(InsOrderFile::getType, insOrderFile.getType()) + .eq(InsOrderFile::getFileName, insOrderFile.getFileName()) + .isNull(InsOrderFile::getSonLaboratory) + .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl())); + } + insOrderFileMapper.insert(insOrderFile); + //濡傛灉鏄緪灏勮瘯楠�(杩戝満/杩滅▼涓婁紶鐨刢sv鏂囦欢) + String[] split = filename.split("\\."); + if (ObjectUtils.isNotEmpty(sonLaboratory) && (sonLaboratory.equals("杩戝満") || sonLaboratory.equals("杩滃満")) && + split[split.length - 1].equals("csv")) { + fuSheUtils.getFuSheWord(sonLaboratory, insOrderFile); + } } catch (Exception e) { - e.printStackTrace(); System.err.println("闄勪欢涓婁紶閿欒"); - return 0; } + return 0; } @Override @@ -340,7 +379,10 @@ //鎵爜鎶ユ @Override - public int scanInsOrderState(String sonLaboratory, String sampleCode) { + public int scanInsOrderState(String sonLaboratory, String sampleCode, String trees) { + /*鏍峰搧鍏ュ簱*/ + warehouseService.inWarehouse(trees, sampleCode); + /*鏂板妫�楠屼换鍔�*/ //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰 InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode)); List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() @@ -367,9 +409,9 @@ orderState.setInsState(0); orderState.setNum(orderState.getNum() + 1);//閫掑 insOrderStateMapper.updateById(orderState); - } else { + } /*else { throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸插垱寤�,鏃犳硶鍐嶆鍒涘缓!"); - } + }*/ } else { InsOrderState insOrderState = new InsOrderState(); insOrderState.setInsOrderId(insSample.getInsOrderId()); @@ -381,12 +423,96 @@ return 1; } + //鎵爜鍑哄簱 + @Override + public int outInsOrderState(String sonLaboratory, String sampleCode) { + //鍒ゆ柇璇ユ牱鍝佺殑妫�楠屼换鍔℃槸鍚﹀凡缁忕粨鏉�(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙) + //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰 + InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode)); + List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() + .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList()); + List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState, 1) + .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList()); + if (!collect.contains(sonLaboratory)) { + throw new ErrorException("璇ヨ鍗曟病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!"); + } + //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙) + List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsState, 5)); + if (CollectionUtils.isEmpty(orderStates)) { + List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getLaboratory, sonLaboratory) + .eq(InsOrderState::getInsState, 6)); + if (CollectionUtils.isEmpty(orderStates1)) { + throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!"); + } + } + boolean a = true; + warehouseService.outWarehouse(sampleCode, a); + return 0; + } + @Override public List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId) { return insOrderUserMapper.getInsOrderUserList(insOrderStateId); } + private static final String splitIdentifier = "@-@"; // 鑷畾涔夊敮涓�鏍囪瘑鍒嗗壊绗� + //棰勮鏂囦欢 + @Override + public Object preview(Integer id) throws Exception { + InsOrderFile insOrderFile = insOrderFileMapper.selectById(id); + File file = new File(wordUrl + "/" + insOrderFile.getFileUrl()); + StringBuilder stringBuilder = new StringBuilder(); + // 鍒涘缓 reader + try (BufferedReader br = Files.newBufferedReader(file.toPath())) { + // CSV鏂囦欢鐨勫垎闅旂 + String DELIMITER = ","; + // 鎸夎璇诲彇 + String line; + while ((line = br.readLine()) != null) { + // 鍒嗗壊 + String[] columns = line.split(DELIMITER); + // 鎵撳嵃琛� + stringBuilder.append(String.join(splitIdentifier, columns)).append("\n"); + } + } catch (Exception ex) { + List<Object> list = new ArrayList<>(); + //鍒涘缓宸ヤ綔绨垮璞� + XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(file)); + //鑾峰彇宸ヤ綔绨夸笅sheet鐨勪釜鏁� 鍙鍙栫涓�涓猻heet + int sheetNum = xssfWorkbook.getNumberOfSheets(); + //閬嶅巻宸ヤ綔绨夸腑鐨勬墍鏈夋暟鎹� + for (int i = 0; i < sheetNum; i++) { + Map<String, Object> map = new HashMap<>(); + StringBuilder result = new StringBuilder(); + XSSFSheet sheet = xssfWorkbook.getSheetAt(i); + //鑾峰彇鏈�鍚庝竴琛岀殑num锛屽嵆鎬昏鏁般�傛澶勪粠0寮�濮� + int maxRow = sheet.getLastRowNum(); + for (int row = 0; row <= maxRow; row++) { + //鑾峰彇鏈�鍚庡崟鍏冩牸num锛屽嵆鎬诲崟鍏冩牸鏁� ***娉ㄦ剰锛氭澶勪粠1寮�濮嬭鏁�*** + int maxRol = sheet.getRow(row).getLastCellNum(); + StringBuilder aLine = new StringBuilder(); + for (int rol = 0; rol < maxRol; rol++) { + aLine.append(sheet.getRow(row).getCell(rol)).append(","); + } + String substring = aLine.substring(0, aLine.length() - 1); + result.append(substring).append("\n"); + } + map.put("sheetName", sheet.getSheetName()); + map.put("content", result.toString()); + list.add(map); + } + return list; + } + return stringBuilder.toString(); + } + + //妯$増淇濆瓨妫�楠屽唴瀹� @Override public void saveInsContext(Map<String, Object> insContext, Integer num) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); @@ -451,6 +577,26 @@ } catch (Exception e) { insProduct.setLastValue("");//'' } + //璇曢獙鍓嶆牱鍝佹鏌� + try { + JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("beforeCheck"))); + if (resValue.get("v") != null) { + Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v"); + result.setBeforeCheck(o.equals("") ? null : (o.toString())); + } + } catch (Exception e) { + result.setBeforeCheck("");//'' + } + //璇曢獙鍚庢牱鍝佹鏌� + try { + JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("afterCheck"))); + if (resValue.get("v") != null) { + Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v"); + result.setAfterCheck(o.equals("") ? null : (o.toString())); + } + } catch (Exception e) { + result.setAfterCheck("");//'' + } //璁惧缂栧彿 if (jo.get("equipValue") != null) { JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipValue"))); @@ -496,67 +642,6 @@ insProductMapper.updateById(insProduct); insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId())); insProduct = insProductMapper.selectById(insProduct); - /*鐢熸垚浜ч噺宸ユ椂*/ - //鏌ヨ妫�楠屽崟淇℃伅 - InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId()); - //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 - //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 - LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); - PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() - .eq(PerformanceShift::getUserId, userId) - .eq(PerformanceShift::getWorkTime, today)); - if (ObjectUtils.isNotEmpty(performanceShift)) { - ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift())); - if (ObjectUtils.isNotEmpty(shiftTime)) { - DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm"); - LocalTime now = LocalTime.now(); - LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma); - LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma); - // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� - boolean isWithinRange; - if (endTime.isAfter(startTime)) { - // 涓嶈法澶╃殑鎯呭喌 - isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); - } else { - // 璺ㄥぉ鐨勬儏鍐� - isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); - } - if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { - //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿) - auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); - AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); - if (isWithinRange) { - //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 - auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� - auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� - auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - - } else { - //鍔犵彮 - auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 - auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 - auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 - auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - } - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 - auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - } - } - } InsSample insSample = insSampleMapper.selectById(insProductMapper.selectById(insProduct.getId()).getInsSampleId()); insSample.setInsState(1); Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() @@ -662,7 +747,9 @@ int ressult = 1; String valueStr = insProductResult2.getValue(); if (!insProduct.getAsk().contains(",")) { - if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) { + if (insProduct.getAsk().equals("/")) { + ressult = 3; //涓嶅垽瀹� + } else if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) { ressult = 0; //涓嶅悎鏍� } } else { @@ -673,7 +760,6 @@ String[] askSplit = s.split("掳"); String angleKey = askSplit[0]; String angleValue = askSplit[1]; - for (int i = 0; i < angles.length; i++) { if (angles[i].split("掳")[0].equals(angleKey)) { try { @@ -692,7 +778,6 @@ } finally { continue; } - } } } @@ -706,65 +791,6 @@ insProduct.setUpdateUser(userId); insProductMapper.updateById(insProduct); insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId())); - /*鐢熸垚浜ч噺宸ユ椂*/ - //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 - //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 - LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); - PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() - .eq(PerformanceShift::getUserId, userId) - .eq(PerformanceShift::getWorkTime, today)); - if (ObjectUtils.isNotEmpty(performanceShift)) { - ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift())); - if (ObjectUtils.isNotEmpty(shiftTime)) { - DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm"); - LocalTime now = LocalTime.now(); - LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma); - LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma); - // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� - boolean isWithinRange; - if (endTime.isAfter(startTime)) { - // 涓嶈法澶╃殑鎯呭喌 - isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); - } else { - // 璺ㄥぉ鐨勬儏鍐� - isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); - } - if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { - //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿) - auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); - AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); - if (isWithinRange) { - //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 - auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� - auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� - auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - - } else { - //鍔犵彮 - auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 - auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 - auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 - auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - } - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 - auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - } - } - } /*鏇存柊鏍峰搧鐨勬楠岀姸鎬�*/ insSample.setInsState(1); Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() @@ -791,6 +817,19 @@ .set(InsOrderState::getInsState, 2)); } return list; + } + + //娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹� + @Override + public int saveInsContext3(InsProductResult insProductResult) { + //鍏堝垹鍚庡姞 + insProductResultMapper.delete(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getInsProductId, insProductResult.getInsProductId()) + .eq(InsProductResult::getNum, insProductResult.getNum())); + insProductResult.setEquipValue("[{\"v\":\""+insProductResult.getEquipValue()+"\"}]"); + insProductResult.setEquipName("[{\"v\":\""+insProductResult.getEquipName()+"\"}]"); + insProductResultMapper.insert(insProductResult); + return 0; } //瑙f瀽瑕佹眰鍊肩殑鏍煎紡 @@ -870,7 +909,6 @@ Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); List<InsUnPass> insUnPasses = new ArrayList<>(); /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/ - //杩欓噷鐨刬nsSamples鏄鍗曚笅鐨勬墍鏈夋牱鍝佸寘鎷�("/") List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)); for (InsSample insSample : samples) { List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() @@ -918,8 +956,7 @@ .set(InsOrderUser::getTell, tell)); switch (type) { case 0: - /*鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛�*/ - //鏇存柊鍘熸潵鐨勬楠屼换鍔� + //鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛� insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getId, record.getId()) .set(InsOrderState::getInsTime, now) @@ -930,79 +967,40 @@ .set(InsOrderState::getCreateTime, LocalDateTime.now())); break; case 1: - //缁х画璇曢獙:鍒欑户缁皢妫�楠屼换鍔¤浆鎺ヨ嚦涓嬩竴绔欑偣锛� + //缁х画璇曢獙:璇ョ珯鐐逛换鍔$粨鏉�(鍙互鍐嶆鎵爜妫�楠�)锛� insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderId) .eq(InsOrderState::getLaboratory, laboratory) - .set(InsOrderState::getInsTime, now) .set(InsOrderState::getInsState, 6) .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); break; case 2: - //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙锛岀洿鎺ョ敓鎴愭渶缁堟姤鍛婂拰璐圭敤缁熻銆� + //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆� insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderId) .eq(InsOrderState::getLaboratory, laboratory) - .set(InsOrderState::getInsTime, now) .set(InsOrderState::getInsState, 5) .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆 InsOrder insOrder = insOrderMapper.selectById(orderId); if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) { + for (InsSample sample : samples) { + //鍑哄簱 + try { + outInsOrderState(laboratory, sample.getSampleCode()); + } catch (Exception e) { + + } + } insOrder.setState(4); insOrderMapper.updateById(insOrder); } break; } } - /*澶嶆牳瀹屾垚涔嬪悗鐢熸垚浠栬嚜宸辩殑绔欑偣鎶ュ憡(浠呴檺杈愬皠璇曢獙妫�娴�(杩戝満,杩滃満)鍜岀數璺瘯楠�)*/ - /*switch (laboratory) { - case "杩戝満": - uploadFile(orderId, null); - break; - case "杩滃満": - uploadFile(orderId, null); - break; - case "鐢佃矾璇曢獙": - uploadFile(orderId, generateExcelFile(orderId,laboratory)); - break; - default: - break; - }*/ return 1; - } - - //鐢熸垚鐢佃矾璇曢獙鐨別xcel鏂囦欢 - private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException { - // 鍒涘缓涓�涓猈orkbook瀵硅薄 - Workbook workbook = new XSSFWorkbook(); - - // 鍒涘缓绗竴涓猄heet - Sheet sheet1 = workbook.createSheet("Sheet1"); - Row row1 = sheet1.createRow(0); - Cell cell1 = row1.createCell(0); - cell1.setCellValue("Hello, Sheet1"); - - // 鍒涘缓绗簩涓猄heet - Sheet sheet2 = workbook.createSheet("Sheet2"); - Row row2 = sheet2.createRow(0); - Cell cell2 = row2.createCell(0); - cell2.setCellValue("Hello, Sheet2"); - - // 灏哤orkbook鍐欏叆鍒板瓧鑺傛暟缁勪腑 - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - workbook.write(outputStream); - workbook.close(); - - byte[] excelBytes = outputStream.toByteArray(); - - // 鍒涘缓MultipartFile瀵硅薄 - MultipartFile multipartFile = new MockMultipartFile( - "file", "example.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", new ByteArrayInputStream(excelBytes)); - - return multipartFile; } private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { @@ -1031,12 +1029,12 @@ } @Override - public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String note, String term) { + public int submitPlan(SubmitPlanDto submitPlanDto) { List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() - .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); + .eq(InsSample::getInsOrderId, submitPlanDto.getOrderId()).select(InsSample::getId)); InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() - .eq(InsOrderState::getInsOrderId, orderId) - .eq(InsOrderState::getLaboratory, laboratory) + .eq(InsOrderState::getInsOrderId, submitPlanDto.getOrderId()) + .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory()) .orderByDesc(InsOrderState::getId) .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰� /*璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/ @@ -1045,13 +1043,13 @@ insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId")); insOrderUser.setSubmitTime(LocalDateTime.now()); insOrderUser.setNum(orderState.getNum()); - insOrderUser.setNote(ObjectUtils.isNotEmpty(note) ? note : null); - insOrderUser.setTerm(ObjectUtils.isNotEmpty(term) ? term : null); + insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null); + insOrderUser.setTerm(ObjectUtils.isNotEmpty(submitPlanDto.getTerm()) ? submitPlanDto.getTerm() : null); insOrderUserMapper.insert(insOrderUser); List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .in(InsProduct::getInsSampleId, ids) - .eq(InsProduct::getSonLaboratory, laboratory) + .eq(InsProduct::getSonLaboratory, submitPlanDto.getLaboratory()) .eq(InsProduct::getState, 1) .and(wrapper -> wrapper .isNull(InsProduct::getInsResult) @@ -1062,8 +1060,8 @@ String str = ""; int count = 0; for (InsProduct product : insProducts) { - //杈愬皠璇曢獙妫�娴嬬殑妫�楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� - if (product.getInspectionItem().equals("杈愬皠璇曢獙妫�娴�")) { + //杈愬皠璇曢獙,娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� + if (product.getInspectionItem().equals("杈愬皠璇曢獙") || product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) { product.setInsResult(3);//涓嶅垽瀹� insProductMapper.updateById(product); continue; @@ -1089,73 +1087,117 @@ } } insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() - .eq(InsOrderState::getInsOrderId, orderId) - .eq(InsOrderState::getLaboratory, laboratory) - .set(InsOrderState::getInsTime, LocalDateTime.now()) + .eq(InsOrderState::getInsOrderId, submitPlanDto.getOrderId()) + .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory()) .set(InsOrderState::getInsState, 3) - .set(InsOrderState::getVerifyUser, verifyUser)); - /*濡傛灉鏄疌绫昏鍗曚笖鏄笅鍙戝埌璐ㄩ噺閮�,鍒欑洿鎺ュ鏍搁�氳繃(缁撴潫璇曢獙)*/ - InsOrder insOrder = insOrderMapper.selectById(orderId); - if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) { - try { - verifyPlan(orderId, laboratory, 2, null); - } catch (IOException e) { - e.printStackTrace(); - } - } else { - Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); - //LIMS绯荤粺娑堟伅鎺ㄩ�� - InformationNotification info = new InformationNotification(); - info.setCreateUser(insProductMapper.selectUserById(userId).get("name")); - info.setMessageType("2"); - info.setTheme("澶嶆牳閫氱煡"); - info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅"); - info.setSenderId(userId); - info.setConsigneeId(verifyUser); - info.setViewStatus(false); - info.setJumpPath("b1-inspect-order-plan"); - informationNotificationService.addInformationNotification(info); - //todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss - /* HashMap<String, Object> map = new HashMap<>(); + .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser())); + InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId()); + /*杩欎釜鎯呭喌鍏堝叧闂�----濡傛灉鏄疌绫昏鍗曚笖鏄笅鍙戝埌璐ㄩ噺閮�,鍒欑洿鎺ュ鏍搁�氳繃(缁撴潫璇曢獙)*/ +// if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) { +// try { +// verifyPlan(orderId, laboratory, 2, null); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } else { + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + //LIMS绯荤粺娑堟伅鎺ㄩ�� + InformationNotification info = new InformationNotification(); + info.setCreateUser(insProductMapper.selectUserById(userId).get("name")); + info.setMessageType("2"); + info.setTheme("澶嶆牳閫氱煡"); + info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅"); + info.setSenderId(userId); + info.setConsigneeId(submitPlanDto.getVerifyUser()); + info.setViewStatus(false); + info.setJumpPath("b1-inspect-order-plan"); + informationNotificationService.addInformationNotification(info); + // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss + /*HashMap<String, Object> map = new HashMap<>(); String account = userMapper.selectById(userId).getAccount(); - map.put("touser", *//*account*//*"ZT-012117");//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧) + map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧) map.put("toparty", "");//鎺ユ敹閮ㄩ棬id map.put("totag", "");//娑堟伅鏍囩id map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰 - map.put("agentid", 1000513);//搴旂敤id + map.put("agentid", 1000517);//搴旂敤id HashMap<String, Object> hashMap = new HashMap<>(); - hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"http://10.1.13.77/enter\"> </a>"); - map.put("text", JSONArray.toJSONString(hashMap));//娑堟伅鍐呭 + hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�"+insOrder.getEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>"); + map.put("text", hashMap);//娑堟伅鍐呭 map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚� map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚� map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚� qywxApi.send(map);*/ - } +// } //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� InsSampleUser insSampleUser = new InsSampleUser(); - insSampleUser.setUserId(verifyUser); - insSampleUser.setInsSampleId(orderId); + insSampleUser.setUserId(submitPlanDto.getVerifyUser()); + insSampleUser.setInsSampleId(submitPlanDto.getOrderId()); insSampleUser.setState(1); - insSampleUser.setSonLaboratory(laboratory); + insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory()); insSampleUserMapper.insert(insSampleUser); - /*鏍¢獙涓�涓媟esult琛�*/ - CompletableFuture.supplyAsync(() -> { - List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); - for (Integer ip : ips) { - List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() - .eq(InsProductResult::getNum, orderState.getNum()) - .eq(InsProductResult::getInsProductId, ip)); - if (insProductResults.size() > 1) { - for (int i = 1; i < insProductResults.size(); i++) { - insProductResultMapper.deleteById(insProductResults.get(i)); + /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/ + if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) { + wordUtils.generateWord(submitPlanDto.getTerm(), orderState); + //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮� + /*try { + wordUtils.generateWord(submitPlanDto.getTerm(), orderState); + } catch (Exception e) { + throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!"); + }*/ + } + /*// 鍒犻櫎鏁伴噰閲囬泦娆℃暟 + String key = "frequency" + ":" + submitPlanDto.getEntrustCode() + ":*"; + RedisUtil.delsLike(key);*/ + + /*鐢熸垚浜ч噺宸ユ椂*/ + //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 + //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 + LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); + PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() + .eq(PerformanceShift::getUserId, userId) + .eq(PerformanceShift::getWorkTime, today)); + if (ObjectUtils.isNotEmpty(performanceShift)) { + ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift())); + if (ObjectUtils.isNotEmpty(shiftTime)) { + DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm"); + LocalTime now = LocalTime.now(); + LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma); + LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma); + // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� + boolean isWithinRange; + if (endTime.isAfter(startTime)) { + // 涓嶈法澶╃殑鎯呭喌 + isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); + } else { + // 璺ㄥぉ鐨勬儏鍐� + isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); + } + for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours : submitPlanDto.getAuxiliaryOutputWorkingHoursList()) { + InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours.getInsProductId()); + if (isWithinRange) { + //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 + auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� + auxiliaryOutputWorkingHours.setWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//闈炲姞鐝伐鏃� + auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� + } else { + //鍔犵彮 + auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//鍔犵彮宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 } + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); } } - return null; - }); - // 鍒犻櫎鏁伴噰閲囬泦娆℃暟 - String key = "frequency" + ":" + entrustCode + ":*"; - RedisUtil.delsLike(key); + } return 1; } -- Gitblit v1.9.3