| | |
| | | @Resource |
| | | private InsProductMapper insProductMapper; |
| | | @Resource |
| | | private InsOrderUserMapper insOrderUserMapper; |
| | | @Resource |
| | | private ShiftTimeMapper shiftTimeMapper; |
| | | @Resource |
| | | private PerformanceShiftMapper performanceShiftMapper; |
| | |
| | | public boolean claimInsOrderPlan(InsOrderPlanDTO entity) { |
| | | if (Objects.isNull(entity)) { |
| | | return false; |
| | | } |
| | | /*认é¢éè¦å¤æè¯¥æ ·åæ¯å¦å¨åº*/ |
| | | //æ¥è¯¢æ ·åid(è¿æ»¤æ²¡ææ£éªé¡¹ç®çæ ·å) |
| | | List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getInsOrderId, entity.getInsSampleId())).stream().map(InsSample::getId).collect(Collectors.toList()); |
| | | for (Integer samId : sampleIds) { |
| | | //è¿æ»¤æ²¡ææ£éªé¡¹ç®çæ ·åid |
| | | if (ObjectUtils.isEmpty(insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getInsSampleId, samId) |
| | | .eq(InsProduct::getState, 1)))) { |
| | | continue; |
| | | } |
| | | //å
¥åºæ¬¡æ° |
| | | Long inCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery() |
| | | .eq(WarehouseHistory::getState, 1) |
| | | .eq(WarehouseHistory::getInsSampleId, samId)); |
| | | //åºåºæ¬¡æ° |
| | | Long outCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery() |
| | | .eq(WarehouseHistory::getState, 2) |
| | | .eq(WarehouseHistory::getInsSampleId, samId)); |
| | | if (inCount > 0 && inCount > outCount) { |
| | | continue; |
| | | } else { |
| | | throw new ErrorException("æéçæ ·ååºåä¸è¶³,è¯·æ£æ¥å
¥åºååºåºè®°å½!"); |
| | | } |
| | | } |
| | | Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); |
| | | Integer userId = map1.get("userId"); |
| | |
| | | .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency()) |
| | | .eq(InsProductResult2::getNum, insProductResultVo.getNum()) |
| | | .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds())); |
| | | } |
| | | |
| | | //æ«ç æ¥æ£ |
| | | @Override |
| | | public int scanInsOrderState(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.isNotEmpty(orderStates)) { |
| | | throw new ErrorException("该订åç«ç¹çä»»å¡å·²ç»ç»æè¯éª,æ æ³å次è¿è¡è¯éª!"); |
| | | } |
| | | InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) |
| | | .eq(InsOrderState::getLaboratory, sonLaboratory)); |
| | | if (ObjectUtils.isNotEmpty(orderState)) { |
| | | //ç»§ç»è¯éª |
| | | if (orderState.getInsState() == 6) { |
| | | orderState.setInsState(0); |
| | | orderState.setNum(orderState.getNum() + 1);//éå¢ |
| | | insOrderStateMapper.updateById(orderState); |
| | | } else { |
| | | throw new ErrorException("该订åç«ç¹çä»»å¡å·²å建,æ æ³å次å建!"); |
| | | } |
| | | } else { |
| | | InsOrderState insOrderState = new InsOrderState(); |
| | | insOrderState.setInsOrderId(insSample.getInsOrderId()); |
| | | insOrderState.setLaboratory(sonLaboratory); |
| | | insOrderState.setInsState(0); |
| | | insOrderState.setNum(1);//åå§æ¯ç¬¬ä¸æ¬¡ |
| | | insOrderStateMapper.insert(insOrderState); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | @Override |
| | | public List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId) { |
| | | return insOrderUserMapper.getInsOrderUserList(insOrderStateId); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | insUnPassService.saveBatch(insUnPasses); |
| | | /*type=0 忬¡è¯éª; type=1 ç»§ç»è¯éª ; type=2 ç»æè¯éª*/ |
| | | switch (type) { |
| | | case 0: |
| | | /*忬¡è¯éª:该ååéåå°æ£éªç¶æ(æåºæ¹æå½åçæå),次æ°éå¢(ä¿ç以åçæ°æ®)ï¼*/ |
| | | //æ´æ°åæ¥çæ£éªä»»å¡ |
| | | // æ¥è¯¢æ ¹æ® id ååºæåçç¬¬ä¸æ¡è®°å½ |
| | | InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, orderId) |
| | | .eq(InsOrderState::getLaboratory, laboratory) |
| | | .orderByDesc(InsOrderState::getId) |
| | | .last("LIMIT 1")); // ç¡®ä¿åªå䏿¡è®°å½ |
| | | if (record != null) { |
| | | // è·åå°ç¬¬ä¸æ¡è®°å½ç id åï¼æ§è¡æ´æ°æä½ |
| | | // æ¥è¯¢æ ¹æ® id ååºæåçç¬¬ä¸æ¡è®°å½ |
| | | InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, orderId) |
| | | .eq(InsOrderState::getLaboratory, laboratory) |
| | | .orderByDesc(InsOrderState::getId) |
| | | .last("LIMIT 1")); // ç¡®ä¿åªå䏿¡è®°å½ |
| | | if (record != null) { |
| | | //æ´æ°è®°å½ |
| | | insOrderUserMapper.update(null, Wrappers.<InsOrderUser>lambdaUpdate() |
| | | .eq(InsOrderUser::getInsOrderStateId, record.getId()) |
| | | .eq(InsOrderUser::getNum, record.getNum()) |
| | | .set(InsOrderUser::getTell, tell)); |
| | | switch (type) { |
| | | case 0: |
| | | /*忬¡è¯éª:该ååéåå°æ£éªç¶æ(æåºæ¹æå½åçæå),次æ°éå¢(ä¿ç以åçæ°æ®)ï¼*/ |
| | | //æ´æ°åæ¥çæ£éªä»»å¡ |
| | | insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() |
| | | .eq(InsOrderState::getId, record.getId()) |
| | | .set(InsOrderState::getInsTime, now) |
| | |
| | | .set(InsOrderState::getVerifyUser, userId) |
| | | .set(InsOrderState::getNum, record.getNum() + 1)//次æ°å 1 |
| | | .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)); |
| | | //转æ¥è³ä¸ä¸ç«ç¹,éè¦å
夿æ¯å¦è¿æå
¶ä½è¯éªå®¤,妿æå
¶ä½è¯éªå®¤éè¦å°è®¢åä¸å |
| | | List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); |
| | | 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::getState, 1)); |
| | | List<Integer> list = new ArrayList<>(); |
| | | list.add(4); |
| | | list.add(5); |
| | | list.add(6); |
| | | List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, orderId) |
| | | .in(InsOrderState::getInsState, list)); |
| | | List<String> strings = insOrderStates.stream().map(InsOrderState::getLaboratory).distinct().collect(Collectors.toList()); |
| | | //é¤å»å½å夿 ¸çè¯éªå®¤åå·²ç»å¤æ ¸çè¯éªå®¤ |
| | | List<String> collect = insProducts.stream() |
| | | .map(InsProduct::getSonLaboratory) |
| | | .distinct() |
| | | .filter(s -> !s.equals(laboratory)) |
| | | .filter(s -> !strings.contains(s)) |
| | | .collect(Collectors.toList()); |
| | | if (collect.size() > 0) { |
| | | //è¦å¤æå©ä½è¯éªå®¤ä¸åªä¸ªæç©ºé²å°±å®æç»åªä¸ª |
| | | Map<String, Long> dataCounts = new HashMap<>(); |
| | | for (String sonLaboratory : collect) { |
| | | Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getLaboratory, sonLaboratory) |
| | | .ne(InsOrderState::getInsState, 4) |
| | | .ne(InsOrderState::getInsState, 5) |
| | | .ne(InsOrderState::getInsState, 6)); |
| | | dataCounts.put(sonLaboratory, count); |
| | | 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("åçæ ·æº")) { |
| | | insOrder.setState(4); |
| | | insOrderMapper.updateById(insOrder); |
| | | } |
| | | // æ¥æ¾æ°æ®éæå°çå
ç´ |
| | | String minElement = null; |
| | | Long minCount = Long.MAX_VALUE; |
| | | for (Map.Entry<String, Long> entry : dataCounts.entrySet()) { |
| | | if (entry.getValue() < minCount) { |
| | | minCount = entry.getValue(); |
| | | minElement = entry.getKey(); |
| | | } |
| | | } |
| | | InsOrderState insOrderState = new InsOrderState(); |
| | | insOrderState.setInsOrderId(orderId); |
| | | insOrderState.setLaboratory(minElement); |
| | | insOrderState.setInsState(0); |
| | | insOrderState.setNum(1);//åå§æ¯ç¬¬ä¸æ¬¡ |
| | | insOrderStateMapper.insert(insOrderState); |
| | | } else { |
| | | //å¦æç»§ç»è¯éªæ²¡æå
¶ä»ç«ç¹çæ£éªä»»å¡é£å°±ç»æè¯éª |
| | | verifyPlan(orderId, laboratory, 2, tell); |
| | | } |
| | | 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)); |
| | | break; |
| | | break; |
| | | } |
| | | } |
| | | /*夿 ¸å®æä¹åçæä»èªå·±çç«ç¹æ¥å(ä»
éè¾å°è¯éªæ£æµ(è¿åº,è¿åº)åçµè·¯è¯éª)*/ |
| | | /*switch (laboratory) { |
| | |
| | | } |
| | | |
| | | //çæçµè·¯è¯éªçexcelæä»¶ |
| | | private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException{ |
| | | private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException { |
| | | // å建ä¸ä¸ªWorkbook对象 |
| | | Workbook workbook = new XSSFWorkbook(); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { |
| | | public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String note, String term) { |
| | | List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); |
| | | InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() |
| | |
| | | .eq(InsOrderState::getLaboratory, laboratory) |
| | | .orderByDesc(InsOrderState::getId) |
| | | .last("LIMIT 1"));// ç¡®ä¿åªå䏿¡è®°å½ |
| | | /*è®°å½æ£éªä»»å¡æ¯æ¬¡ç夿³¨ä¿¡æ¯*/ |
| | | InsOrderUser insOrderUser = new InsOrderUser(); |
| | | insOrderUser.setInsOrderStateId(orderState.getId()); |
| | | 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); |
| | | 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) |