inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
@@ -264,7 +264,7 @@ } @ValueClassify("检验任务") @ApiOperation(value = "扫码出库") @ApiOperation(value = "扫码出库(只有复核结束才会调用)") @PostMapping("/outInsOrderState") public Result outInsOrderState(String sonLaboratory, String sampleCode,String entrustCode) { return Result.success(insOrderPlanService.outInsOrderState(sonLaboratory, sampleCode,entrustCode)); inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java
@@ -13,14 +13,14 @@ import lombok.Getter; /** * * * @TableName ins_order_state */ @TableName(value ="ins_order_state") @Data public class InsOrderState implements Serializable { /** * * */ @TableId(value = "id", type = IdType.AUTO) private Integer id; @@ -104,4 +104,7 @@ @ApiModelProperty("关联 样品外键id") private Integer insSampleId; } @ApiModelProperty("是否出库") private Integer isOut; } inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -437,10 +437,17 @@ insOrderState.setNum(1);//初始是第一次 insOrderStateMapper.insert(insOrderState); } //同一样品在其他站点入库之后需要将其他站点的任务不显示 insOrderStateMapper.update(null,Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId,insSample.getInsOrderId()) .eq(InsOrderState::getInsSampleId,insSample.getId()) .eq(InsOrderState::getInsState,6)//复核继续试验 .ne(InsOrderState::getLaboratory,sonLaboratory) .set(InsOrderState::getIsOut,1));//不显示 return 1; } //扫码出库 //扫码出库(只有复核结束才会调用) @Override public int outInsOrderState(String sonLaboratory, String sampleCode, String entrustCode) { //判断该样品的检验任务是否已经结束(继续试验或者是结束试验) @@ -455,22 +462,16 @@ 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::getInsSampleId, insSample.getId()) .eq(InsOrderState::getLaboratory, sonLaboratory) .eq(InsOrderState::getInsState, 6));//继续试验 if (CollectionUtils.isEmpty(orderStates1)) { throw new ErrorException("该样品的检验任务还没有结束试验或继续试验,暂时无法出库!"); } InsOrderState orderStates = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() .eq(InsOrderState::getLaboratory,sonLaboratory) .eq(InsOrderState::getInsSampleId, insSample.getId()) .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())); if (orderStates.getInsState()!=5) { throw new ErrorException("当前样品的站点任务并不是复核的结束试验,无需手动出库!"); } boolean a = true; warehouseService.outWarehouse(sampleCode, a, entrustCode); warehouseService.outWarehouse(sampleCode, true, entrustCode); return 0; } @@ -1189,6 +1190,15 @@ .set(InsOrderState::getInsState, 6) .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); //继续试验自动出库 WarehouseHistory history = new WarehouseHistory(); history.setState(2); history.setInsSampleId(sampleId); history.setCellId(insSample.getCellId()); history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery() .eq(WarehouseHistory::getInsSampleId, sampleId).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode()); insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, sampleId).set(InsSample::getCellId, null)); warehouseHistoryMapper.insert(history); break; case 2: //结束试验:此委托单停止试验(无法再次检验)。 @@ -1199,22 +1209,9 @@ .set(InsOrderState::getInsState, 5) .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); //结束之后将该订单的所有样品全部出库 List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getInsOrderId, insSample.getInsOrderId())); for (InsSample sample : insSamples) { try{ outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); }catch (Exception e){ } } /*生成对应的检验报告*/ List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId()); createReport(insOrder.getId(),insReportDto1s); //该订单闭环 insOrder.setState(4); insOrderMapper.updateById(insOrder); break; } } @@ -1269,6 +1266,16 @@ .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); } //继续试验需要出库 WarehouseHistory history = new WarehouseHistory(); history.setState(2); history.setInsSampleId(sampleId); history.setCellId(insSample.getCellId()); history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery() .eq(WarehouseHistory::getInsSampleId, sampleId).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode()); insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate() .eq(InsSample::getId, sampleId).set(InsSample::getCellId, null)); warehouseHistoryMapper.insert(history); break; case 2: //结束试验:此委托单停止试验(无法再次检验)。 @@ -1291,20 +1298,9 @@ .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); } //出库 List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId())); for (InsSample sample : insSamples) { try{ outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); }catch (Exception e){ } } /*生成对应的检验报告*/ List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId()); createReport(insOrder.getId(),insReportDto1s); //订单闭环 insOrder.setState(4); insOrderMapper.updateById(insOrder); break; } } inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
@@ -190,28 +190,12 @@ } List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getSampleCode, sampleCode) .eq(InsSample::getInsOrderId,insOrders.get(0).getId()) .select(InsSample::getId,InsSample::getCellId)); .eq(InsSample::getInsOrderId,insOrders.get(0).getId())); if(samples.size()!=1){ throw new ErrorException("样品编号输入有误"); } if(samples.get(0).getCellId()==null){ throw new ErrorException("样品 " + sampleCode + " 未入库"); } if (!a) { //判断该订单是否站点任务有(继续试验或者是结束试验) List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() .eq(InsOrderState::getInsOrderId, samples.get(0).getInsOrderId()) .eq(InsOrderState::getInsState, 5)); List<Integer> orderIds = new ArrayList<Integer>(); orderIds.add(6); if (CollectionUtils.isEmpty(orderStates)) { List<Integer> collect = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() .eq(InsOrderState::getInsOrderId, samples.get(0).getInsOrderId())).stream().map(InsOrderState::getInsState).distinct().collect(Collectors.toList()); if (collect.size()!=0 && !collect.containsAll(orderIds)) { throw new ErrorException("该样品的检验任务还没有结束试验或继续试验,暂时无法出库!"); } } } WarehouseHistory history = new WarehouseHistory(); history.setState(2); @@ -219,6 +203,10 @@ history.setCellId(samples.get(0).getCellId()); history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, samples.get(0).getId()).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode()); insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, samples.get(0).getId()).set(InsSample::getCellId, null)); //该订单闭环 InsOrder insOrder = insOrders.get(0); insOrder.setState(4); insOrderMapper.updateById(insOrder); return warehouseHistoryMapper.insert(history); } inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
@@ -64,5 +64,6 @@ private Integer sort; private Integer version; private Integer num1; private Integer isOut; } inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -29,6 +29,7 @@ SELECT a.*, ios.ins_state, ios.is_out, ios.laboratory son_laboratory, ios.verify_tell, verify_user, @@ -94,6 +95,7 @@ ios.create_time ) b where ins_state is not null and (is_out is null or is_out !=1) and son_laboratory=#{sonLaboratory} and state =1 <if test="laboratory!=null and laboratory!=''"> inspect-server/src/main/resources/mapper/WarehouseMapper.xml
@@ -49,6 +49,7 @@ (select cell_id, count(*) num from warehouse_history group by cell_id) a on cell_id = wc.id where num is null or num % 2 = 0 and state=1 order by id, sId, crow, ccol </select> </mapper> system-run/src/main/resources/application-dev.yml
@@ -42,13 +42,13 @@ type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://localhost:3306/center-lims?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 url: jdbc:mysql://10.1.13.77:3306/center-lims?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 # url: jdbc:mysql://192.168.22.29:3306/center-lims?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 username: remote_user # username: root # url: jdbc:mysql://10.1.13.77:3306/center-lims?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 url: jdbc:mysql://192.168.22.29:3306/center-lims?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 # username: remote_user username: root # password: 123456 password: zttZTT123! # password: Dq<)dAiAczXs # password: zttZTT123! password: Dq<)dAiAczXs druid: # Druid数据源配置 initialSize: 5 # 初始连接数