Commit da556a98 by lijingjing

霍煤多委托项目原始记录生成;

parent 131e4003
...@@ -13,6 +13,7 @@ import com.patzn.cloud.service.hmhj.entity.ItemDeviate; ...@@ -13,6 +13,7 @@ import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord; import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.ItemVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO; import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup; import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO; import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
...@@ -604,6 +605,12 @@ public class EntrustSampleItemController extends ServiceController { ...@@ -604,6 +605,12 @@ public class EntrustSampleItemController extends ServiceController {
return success(entrustSampleItemService.saveExcelOriginalRecord(ids, templateId, getAccount(), entrustCode)); return success(entrustSampleItemService.saveExcelOriginalRecord(ids, templateId, getAccount(), entrustCode));
} }
@ApiOperation(value = "填写原始记录 - 多委托检测项目", notes = "填写原始记录 - 多委托检测项目")
@PostMapping("/save_excel_original_records")
public RestResult<OriginalRecord> saveExcelOriginalRecords(@RequestParam("ids") Long[] ids, @RequestParam("templateId") Long templateId) {
return success(entrustSampleItemService.saveExcelOriginalRecords(ids, templateId, getAccount()));
}
@ApiOperation("样品质量判定") @ApiOperation("样品质量判定")
@PostMapping("/sample_quality_judge") @PostMapping("/sample_quality_judge")
...@@ -673,4 +680,38 @@ public class EntrustSampleItemController extends ServiceController { ...@@ -673,4 +680,38 @@ public class EntrustSampleItemController extends ServiceController {
RestAssert.fail(null == itemVO.getEntrustId(), "委托ID为空"); RestAssert.fail(null == itemVO.getEntrustId(), "委托ID为空");
return success(entrustSampleItemService.getItemFillProgressQuery(getPage(), itemVO)); return success(entrustSampleItemService.getItemFillProgressQuery(getPage(), itemVO));
} }
@ApiOperation(value = "按项目录入左侧列表", notes = "按项目录入左侧列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_input_item_left")
public RestResult<Page<ItemVO>> pageInputItemLeft(ItemVO vo) {
vo.setCompanyId(currentCompanyId());
vo.setUid(currentUserId());
return success(entrustSampleItemService.pageInputItemLeft(getPage(), vo));
}
@ApiOperation(value = "按项目录入右侧列表", notes = "按项目录入右侧列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_input_item_right")
public RestResult<Page<ItemVO>> pageInputItemRight(ItemVO dto) {
dto.setUid(currentUserId());
dto.setCompanyId(currentCompanyId());
return success(entrustSampleItemService.pageInputItemRight(getPage(), dto));
}
@ApiOperation(value = "数据录入查询是否项目可以填写原始记录", notes = "数据录入查询是否项目可以填写原始记录")
@PostMapping("/check_can_write_original")
public RestResult<Boolean> checkCanWriteOriginal(@RequestParam("ids") Long[] ids) {
return success(entrustSampleItemService.checkCanWriteOriginal(ids));
}
} }
...@@ -2,22 +2,20 @@ package com.patzn.cloud.service.lims.hmhj.controller; ...@@ -2,22 +2,20 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.kisso.annotation.Action; import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login; import com.baomidou.kisso.annotation.Login;
import com.patzn.cloud.feign.lims.hmhj.client.OriginalTemplateClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants; import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult; import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController; import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.feign.lims.hmhj.client.OriginalTemplateClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalTemplateService; import com.patzn.cloud.service.lims.hmhj.service.IOriginalTemplateService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
...@@ -100,7 +98,8 @@ public class OriginalTemplateController extends ServiceController implements Ori ...@@ -100,7 +98,8 @@ public class OriginalTemplateController extends ServiceController implements Ori
@Login(action = Action.Skip) @Login(action = Action.Skip)
@ApiOperation(value = "编辑原始记录", notes = "编辑证书模板") @ApiOperation(value = "编辑原始记录", notes = "编辑证书模板")
@PostMapping({"/edit_original_{someParam}"}) @PostMapping({"/edit_original_{someParam}"})
public RestResult<Boolean> editOriginal(@PathVariable("someParam") String someParam, @RequestBody OssFileResult obsFileResult) { public RestResult<Boolean>
editOriginal(@PathVariable("someParam") String someParam, @RequestBody OssFileResult obsFileResult) {
return success(originalTemplateService.editOriginal(someParam, obsFileResult)); return success(originalTemplateService.editOriginal(someParam, obsFileResult));
} }
......
...@@ -79,4 +79,10 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem> ...@@ -79,4 +79,10 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
boolean updateSampleRetakeInfoByEntrustId(@Param("entrustId") Long entrustId); boolean updateSampleRetakeInfoByEntrustId(@Param("entrustId") Long entrustId);
List<EntrustSampleItemIndexVO> selectItemTestByEntrustId(@Param("entrustId") Long entrustId); List<EntrustSampleItemIndexVO> selectItemTestByEntrustId(@Param("entrustId") Long entrustId);
@SqlParser(filter = true)
List<ItemVO> pageInputItemLeft(RowBounds rowBounds, @Param("vo") ItemVO vo);
@SqlParser(filter = true)
List<ItemVO> pageInputItemRight(RowBounds rowBounds, @Param("vo") ItemVO vo);
} }
package com.patzn.cloud.service.lims.hmhj.original; package com.patzn.cloud.service.lims.hmhj.original;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate; import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
...@@ -8,10 +9,14 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; ...@@ -8,10 +9,14 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.List; import java.util.List;
/**
* @author Meazty
*/
public class OriginalFactory { public class OriginalFactory {
private OriginalTemplate template; private OriginalTemplate template;
private List<EntrustSampleItemVO> voList; private List<EntrustSampleItemVO> voList;
private Entrust entrust ; private Entrust entrust;
private List<Entrust> entrustList;
private List<OriginalTemplateConfig> configList; private List<OriginalTemplateConfig> configList;
private XSSFWorkbook xssfWorkbook; private XSSFWorkbook xssfWorkbook;
...@@ -23,24 +28,30 @@ public class OriginalFactory { ...@@ -23,24 +28,30 @@ public class OriginalFactory {
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
} }
public Operation getOperation(){ public OriginalFactory(OriginalTemplate template, List<EntrustSampleItemVO> voList, List<OriginalTemplateConfig> configList, List<Entrust> entrustList, XSSFWorkbook xssfWorkbook) {
if (null==template.getMoreSheet() || 0 == template.getMoreSheet()){ this.entrustList = entrustList;
this.template = template;
this.voList = voList;
this.configList = configList;
this.xssfWorkbook = xssfWorkbook;
}
if (null == template.getSampleBeginRow()|| null==template.getSampleMergerNum()||null==template.getTemplateSampleNum()){ public Operation getOperation() {
if (null == template.getMoreSheet() || 0 == template.getMoreSheet()) {
if (null == template.getSampleBeginRow() || null == template.getSampleMergerNum() || null == template.getTemplateSampleNum()) {
return null; return null;
} }
// if (voList.size()<template.getTemplateSampleNum()){ if (CollectionUtils.isNotEmpty(entrustList)) {
// return new SingleSheetLittleOperation(template,voList,entrust,configList,xssfWorkbook); return new SingleSheetMoreOperation(template, entrustList, voList, configList, xssfWorkbook);
// }else{ }
return new SingleSheetMoreOperation(template,voList,entrust,configList,xssfWorkbook);
// }
}else{ return new SingleSheetMoreOperation(template, voList, entrust, configList, xssfWorkbook);
} else {
Integer templateSampleNum = template.getTemplateSampleNum(); Integer templateSampleNum = template.getTemplateSampleNum();
if (null == templateSampleNum || 1==templateSampleNum){ if (null == templateSampleNum || 1 == templateSampleNum) {
return new MoreSheetOneOperation(template,voList,entrust,configList,xssfWorkbook); return new MoreSheetOneOperation(template, voList, entrust, configList, xssfWorkbook);
}else{ } else {
return new MoreSheetMoreOperation(template,voList,entrust,configList,xssfWorkbook); return new MoreSheetMoreOperation(template, voList, entrust, configList, xssfWorkbook);
} }
} }
} }
......
package com.patzn.cloud.service.lims.hmhj.original; package com.patzn.cloud.service.lims.hmhj.original;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.lims.common.StringHandleUtils; import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil; import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
public final class OriginalUtil { public final class OriginalUtil {
public final static String initFormula(String formula,Integer i){ public final static String initFormula(String formula, Integer i) {
formula = formula.replace("#{sn}",(i+1)+""); formula = formula.replace("#{sn}", (i + 1) + "");
if (formula.contains("#{sneven1}")){ if (formula.contains("#{sneven1}")) {
if (StringHandleUtils.isEven(i)){ if (StringHandleUtils.isEven(i)) {
formula= formula.replace("#{sneven1}",(i+1)+""); formula = formula.replace("#{sneven1}", (i + 1) + "");
}else{ } else {
formula= formula.replace("#{sneven1}",i+""); formula = formula.replace("#{sneven1}", i + "");
} }
} }
if (formula.contains("#{snodd1}")){ if (formula.contains("#{snodd1}")) {
if (!StringHandleUtils.isEven(i)){ if (!StringHandleUtils.isEven(i)) {
formula= formula.replace("#{snodd1}",(i+1)+""); formula = formula.replace("#{snodd1}", (i + 1) + "");
}else{ } else {
formula= formula.replace("#{snodd1}",i+""); formula = formula.replace("#{snodd1}", i + "");
} }
} }
if (formula.contains("#{sn+1}")){ if (formula.contains("#{sn+1}")) {
formula= formula.replace("#{sn+1}",(i+2)+""); formula = formula.replace("#{sn+1}", (i + 2) + "");
} }
if (formula.contains("#{sn+2}")){ if (formula.contains("#{sn+2}")) {
formula= formula.replace("#{sn+2}",(i+3)+""); formula = formula.replace("#{sn+2}", (i + 3) + "");
} }
if (formula.contains("#{sn+3}")){ if (formula.contains("#{sn+3}")) {
formula= formula.replace("#{sn+3}",(i+4)+""); formula = formula.replace("#{sn+3}", (i + 4) + "");
} }
if (formula.contains("#{sn+4}")){ if (formula.contains("#{sn+4}")) {
formula= formula.replace("#{sn+4}",(i+5)+""); formula = formula.replace("#{sn+4}", (i + 5) + "");
} }
if (formula.contains("#{sn+5}")){ if (formula.contains("#{sn+5}")) {
formula= formula.replace("#{sn+5}",(i+6)+""); formula = formula.replace("#{sn+5}", (i + 6) + "");
} }
if (formula.contains("#{sn+6}")){ if (formula.contains("#{sn+6}")) {
formula= formula.replace("#{sn+6}",(i+7)+""); formula = formula.replace("#{sn+6}", (i + 7) + "");
} }
if (formula.contains("#{sn+7}")){ if (formula.contains("#{sn+7}")) {
formula= formula.replace("#{sn+7}",(i+8)+""); formula = formula.replace("#{sn+7}", (i + 8) + "");
} }
return formula; return formula;
} }
public final static void doReplace(XSSFWorkbook xssfWorkbook, Entrust entrust){ public final static void doReplace(XSSFWorkbook xssfWorkbook, Entrust entrust) {
Map<String, String> mapReplace = new HashMap<>(); Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{client}",entrust.getClient()); mapReplace.put("#{client}", entrust.getClient());
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,0); HSSFWorkbookUtil.replaceModel(mapReplace, xssfWorkbook, 0);
}
public final static void doReplaceMulti(XSSFWorkbook xssfWorkbook, List<Entrust> entrusts) {
String client = "";
if (CollectionUtils.isNotEmpty(entrusts)) {
client = entrusts.stream().map(Entrust::getClient).collect(Collectors.joining(","));
}
Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{client}", client);
HSSFWorkbookUtil.replaceModel(mapReplace, xssfWorkbook, 0);
} }
} }
package com.patzn.cloud.service.lims.hmhj.original; package com.patzn.cloud.service.lims.hmhj.original;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate; import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
...@@ -21,6 +22,7 @@ public class SingleSheetMoreItemOperation implements Operation { ...@@ -21,6 +22,7 @@ public class SingleSheetMoreItemOperation implements Operation {
private OriginalTemplate template; private OriginalTemplate template;
private List<EntrustSampleVO> voList; private List<EntrustSampleVO> voList;
private Entrust entrust; private Entrust entrust;
private List<Entrust> entrustList;
private List<OriginalTemplateConfig> configList; private List<OriginalTemplateConfig> configList;
private XSSFWorkbook xssfWorkbook; private XSSFWorkbook xssfWorkbook;
private String collectionDatePrefix = "clc."; private String collectionDatePrefix = "clc.";
...@@ -29,9 +31,18 @@ public class SingleSheetMoreItemOperation implements Operation { ...@@ -29,9 +31,18 @@ public class SingleSheetMoreItemOperation implements Operation {
private Map<Integer, String> valueMap; private Map<Integer, String> valueMap;
public SingleSheetMoreItemOperation(OriginalTemplate template, List<EntrustSampleVO> voList, Entrust entrust, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) { public SingleSheetMoreItemOperation(OriginalTemplate template, List<EntrustSampleVO> voList, Entrust entrust, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) {
initData(template, voList, entrust, null, configList, xssfWorkbook);
}
public SingleSheetMoreItemOperation(OriginalTemplate template, List<Entrust> entrustList, List<EntrustSampleVO> voList, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) {
initData(template, voList, null, entrustList, configList, xssfWorkbook);
}
private void initData(OriginalTemplate template, List<EntrustSampleVO> voList, Entrust entrust, List<Entrust> entrustList, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) {
this.template = template; this.template = template;
this.voList = voList; this.voList = voList;
this.entrust = entrust; this.entrust = entrust;
this.entrustList = entrustList;
this.configList = configList; this.configList = configList;
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
dealCollectionData(voList, configList); dealCollectionData(voList, configList);
...@@ -73,7 +84,13 @@ public class SingleSheetMoreItemOperation implements Operation { ...@@ -73,7 +84,13 @@ public class SingleSheetMoreItemOperation implements Operation {
@Override @Override
public void doMakeOriginal() { public void doMakeOriginal() {
if (CollectionUtils.isNotEmpty(entrustList)) {
OriginalUtil.doReplaceMulti(xssfWorkbook, entrustList);
} else {
OriginalUtil.doReplace(xssfWorkbook, entrust); OriginalUtil.doReplace(xssfWorkbook, entrust);
}
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0); XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
sheetOne.setForceFormulaRecalculation(true); sheetOne.setForceFormulaRecalculation(true);
Integer beginRow = template.getSampleBeginRow(); Integer beginRow = template.getSampleBeginRow();
......
...@@ -18,6 +18,7 @@ public class SingleSheetMoreOperation implements Operation { ...@@ -18,6 +18,7 @@ public class SingleSheetMoreOperation implements Operation {
private OriginalTemplate template; private OriginalTemplate template;
private List<EntrustSampleItemVO> voList; private List<EntrustSampleItemVO> voList;
private Entrust entrust; private Entrust entrust;
private List<Entrust> entrustList;
private List<OriginalTemplateConfig> configList; private List<OriginalTemplateConfig> configList;
private XSSFWorkbook xssfWorkbook; private XSSFWorkbook xssfWorkbook;
private String collectionDataPrefix = "clc."; private String collectionDataPrefix = "clc.";
...@@ -30,13 +31,24 @@ public class SingleSheetMoreOperation implements Operation { ...@@ -30,13 +31,24 @@ public class SingleSheetMoreOperation implements Operation {
this.configList = configList; this.configList = configList;
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
this.formulaEvaluator = new XSSFFormulaEvaluator(xssfWorkbook); this.formulaEvaluator = new XSSFFormulaEvaluator(xssfWorkbook);
}
public SingleSheetMoreOperation(OriginalTemplate template, List<Entrust> entrustList, List<EntrustSampleItemVO> voList, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) {
this.entrustList = entrustList;
this.template = template;
this.voList = voList;
this.configList = configList;
this.xssfWorkbook = xssfWorkbook;
this.formulaEvaluator = new XSSFFormulaEvaluator(xssfWorkbook);
} }
@Override @Override
public void doMakeOriginal() { public void doMakeOriginal() {
if (CollectionUtils.isNotEmpty(entrustList)) {
OriginalUtil.doReplaceMulti(xssfWorkbook, entrustList);
} else {
OriginalUtil.doReplace(xssfWorkbook, entrust); OriginalUtil.doReplace(xssfWorkbook, entrust);
}
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0); XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
sheetOne.setForceFormulaRecalculation(true); sheetOne.setForceFormulaRecalculation(true);
Integer beginRow = template.getSampleBeginRow(); Integer beginRow = template.getSampleBeginRow();
......
...@@ -9,10 +9,7 @@ import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem; ...@@ -9,10 +9,7 @@ import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.ItemDeviate; import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord; import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum; import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleCalcResultVO; import com.patzn.cloud.service.hmhj.vo.*;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup; import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO; import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
...@@ -61,6 +58,8 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte ...@@ -61,6 +58,8 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account, String entrustCode); OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account, String entrustCode);
OriginalRecord saveExcelOriginalRecords(Long[] ids, Long templateId, Account account);
boolean deviateApply(Long[] ids, ItemDeviate deviate, Account account); boolean deviateApply(Long[] ids, ItemDeviate deviate, Account account);
Page<EntrustSampleItemVO> pageItemDeviateCheck(Page<EntrustSampleItemVO> page, EntrustSampleItemVO entrustSampleItem); Page<EntrustSampleItemVO> pageItemDeviateCheck(Page<EntrustSampleItemVO> page, EntrustSampleItemVO entrustSampleItem);
...@@ -124,4 +123,10 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte ...@@ -124,4 +123,10 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
List<EntrustSampleItemIndexVO> getItemTestByEntrustId(Long entrustIds); List<EntrustSampleItemIndexVO> getItemTestByEntrustId(Long entrustIds);
EntrustSampleItem getItemModelBySampleId(Long sampleId); EntrustSampleItem getItemModelBySampleId(Long sampleId);
Page<ItemVO> pageInputItemLeft(Page<ItemVO> page, ItemVO vo);
Page<ItemVO> pageInputItemRight(Page<ItemVO> page, ItemVO vo);
Boolean checkCanWriteOriginal(Long[] ids);
} }
...@@ -135,4 +135,5 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> { ...@@ -135,4 +135,5 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
void exportSampleIndex(Long entrustId, Account account, HttpServletResponse response); void exportSampleIndex(Long entrustId, Account account, HttpServletResponse response);
boolean isRepeatSampleCode(EntrustSample sample);
} }
...@@ -11,6 +11,7 @@ import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO; ...@@ -11,6 +11,7 @@ import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 土工原始记录表 服务类 * 土工原始记录表 服务类
...@@ -26,6 +27,8 @@ public interface IOriginalRecordService extends IBaseService<OriginalRecord> { ...@@ -26,6 +27,8 @@ public interface IOriginalRecordService extends IBaseService<OriginalRecord> {
OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file); OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file);
OriginalRecord uploadExpGenerate(Map<Long,List<Long>> entrustItemIdMap, OriginalTemplate template, Account account, String remark, File file);
Page<OriginalRecordVO> pageVO(Page<OriginalRecordVO> page, OriginalRecordVO originalRecord); Page<OriginalRecordVO> pageVO(Page<OriginalRecordVO> page, OriginalRecordVO originalRecord);
void download(Long entrustId,Long id, HttpServletResponse response); void download(Long entrustId,Long id, HttpServletResponse response);
......
...@@ -2212,4 +2212,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -2212,4 +2212,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} }
} }
@Override
public boolean isRepeatSampleCode(EntrustSample sample){
if(StringUtils.isBlank(sample.getCode())){
return false;
}
return super.count(Condition.create().eq("code",sample.getCode())) > 0;
}
} }
\ No newline at end of file
...@@ -339,6 +339,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -339,6 +339,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
sample.setThirdCode(thirdCode); sample.setThirdCode(thirdCode);
} }
} }
if(StringUtils.isNotBlank(sample.getCode())){
RestAssert.fail(entrustSampleService.isRepeatSampleCode(sample),String.format("样品编号【%s】重复!"));
}
} }
private String getSampleThirdCode(EntrustSample sample) { private String getSampleThirdCode(EntrustSample sample) {
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.baomidou.mybatisplus.toolkit.MapUtils; import com.baomidou.mybatisplus.toolkit.MapUtils;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
...@@ -30,6 +31,7 @@ import java.io.File; ...@@ -30,6 +31,7 @@ import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 土工原始记录表 服务实现类 * 土工原始记录表 服务实现类
...@@ -83,30 +85,68 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap ...@@ -83,30 +85,68 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
RestAssert.fail(null == entrust.getId(), "试验委托单ID不能为空"); RestAssert.fail(null == entrust.getId(), "试验委托单ID不能为空");
OriginalRecord soilOriginalRecord = new OriginalRecord(); OriginalRecord originalRecord = new OriginalRecord();
soilOriginalRecord.setEntrustId(entrust.getId()); originalRecord.setEntrustId(entrust.getId());
soilOriginalRecord.setTemplateId(template.getId()); originalRecord.setTemplateId(template.getId());
soilOriginalRecord.setTitle(template.getName()); originalRecord.setTitle(template.getName());
soilOriginalRecord.setRemark(remark); originalRecord.setRemark(remark);
soilOriginalRecord.setUname(account.getUserName()); originalRecord.setUname(account.getUserName());
OssFileResult obsFileResult = ossClient.upload(file); OssFileResult obsFileResult = ossClient.upload(file);
if (null == obsFileResult) { if (null == obsFileResult) {
return null; return null;
} }
soilOriginalRecord.setObjectKey(obsFileResult.getObjectKey()); originalRecord.setObjectKey(obsFileResult.getObjectKey());
if (save(soilOriginalRecord)) { if (save(originalRecord)) {
List<ItemRelOriginalRecord> saveList = new ArrayList<>(); List<ItemRelOriginalRecord> saveList = new ArrayList<>();
for (Long id : ids) { for (Long id : ids) {
ItemRelOriginalRecord relOriginalRecord = new ItemRelOriginalRecord(); ItemRelOriginalRecord relOriginalRecord = new ItemRelOriginalRecord();
relOriginalRecord.setItemId(id); relOriginalRecord.setItemId(id);
relOriginalRecord.setRecordId(soilOriginalRecord.getId()); relOriginalRecord.setRecordId(originalRecord.getId());
saveList.add(relOriginalRecord); saveList.add(relOriginalRecord);
} }
if (CollectionUtils.isNotEmpty(saveList)) { if (CollectionUtils.isNotEmpty(saveList)) {
itemRelOriginalRecordService.saveBatch(saveList); itemRelOriginalRecordService.saveBatch(saveList);
} }
} }
return soilOriginalRecord; return originalRecord;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public OriginalRecord uploadExpGenerate(Map<Long, List<Long>> entrustItemIdMap, OriginalTemplate template, Account account, String remark, File file) {
RestAssert.fail(MapUtils.isEmpty(entrustItemIdMap), "请选择试验项目");
// 先上传文件,后保存记录
OssFileResult ossFileResult = ossClient.upload(file);
if (null == ossFileResult) {
return null;
}
String entrustIds = StringUtils.join(entrustItemIdMap.keySet(), ",");
List<ItemRelOriginalRecord> itemOriginalList = new ArrayList<>();
OriginalRecord originalRecord = new OriginalRecord();
originalRecord.setEntrustIds(entrustIds);
originalRecord.setTemplateId(template.getId());
originalRecord.setTitle(template.getName());
originalRecord.setRemark(remark);
originalRecord.setUname(account.getUserName());
originalRecord.setObjectKey(ossFileResult.getObjectKey());
originalRecord.setId(IdWorker.getId());
save(originalRecord);
entrustItemIdMap.values().forEach(m -> {
itemOriginalList.addAll(m.stream().map(t ->
new ItemRelOriginalRecord().setItemId(t).setRecordId(originalRecord.getId())
).collect(Collectors.toList()));
});
if (CollectionUtils.isNotEmpty(itemOriginalList)) {
itemRelOriginalRecordService.saveBatch(itemOriginalList);
}
return originalRecord;
}
} }
...@@ -259,13 +259,13 @@ ...@@ -259,13 +259,13 @@
<select id="selectVOListByIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectVOListByIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS
"sampleCode",s.name AS "sampleName", "sampleCode",s.name AS "sampleName",
s.order_by,s.type, s.order_by,s.type,e.code "entrust_code",
s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code
FROM FROM
entrust_sample_item i entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID JOIN entrust_sample s ON i.entrust_sample_id = s.ID and s.deleted = 0
JOIN entrust e on e.id = i.entrust_id and e.deleted = 0
WHERE i.deleted = 0 AND s.deleted = 0 WHERE i.deleted = 0
AND i.id IN AND i.id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")"> <foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
...@@ -725,6 +725,73 @@ ...@@ -725,6 +725,73 @@
ii.NAME ii.NAME
</select> </select>
<!--获取数据录入 - 检测项目列表-->
<select id="pageInputItemLeft" resultType="com.patzn.cloud.service.hmhj.vo.ItemVO">
SELECT DISTINCT ON
( NAME, standard ) NAME, standard
FROM
entrust_sample_item i
where i.deleted = 0 and i.status = #{vo.status} and i.company_id = #{vo.companyId}
<if test="null != vo.personal and vo.personal == 1">
AND i.tester_id = #{vo.uid}
</if>
<if test="null != vo.nameList">
<foreach collection="vo.nameList" item="name" open="AND ( i.name " close=")" separator=" OR name">
LIKE CONCAT ('%',#{name},'%')
</foreach>
</if>
<if test="null != vo.standard">
AND i.standard LIKE CONCAT ('%',#{vo.standard},'%')
</if>
<if test="null != vo.uid">
AND i.tester_id = #{vo.uid}
</if>
order by i.name
</select>
<!-- 查询数据录入- 按项目录入 - 右侧检测项目数据列表 -->
<select id="pageInputItemRight" resultType="com.patzn.cloud.service.hmhj.vo.ItemVO">
SELECT
i.id,i.entrust_sample_id,i.name,i.status,i.company_id,i.standard,i.group_name,i.test_value,i.group_id,i.tester,i.tester_id,i.test_time,i.in_report,i.entrust_id,
s.name "sampleName",s.code "sampleCode",s.compliance_test,s.sample_from,sample_shape,s.first_code,s.second_code,s.third_code,
e.test_side "testSide",e.code "entrustCode",l.record_id,r.object_key AS "recordObjectKey"
FROM entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.id and s.deleted = 0
JOIN entrust e on i.entrust_id = e.id and e.deleted = 0
LEFT JOIN item_rel_original_record l on l.item_id = i.id and l.deleted = 0
LEFT JOIN original_record r on r.id = l.record_id and r.deleted = 0
WHERE i.deleted = 0 and i.company_id = #{vo.companyId}
<if test="null != vo.nameList">
<foreach collection="vo.nameList" item="name" open="AND ( i.name " close=")" separator=" OR i.name ">
LIKE CONCAT ('%',#{name},'%')
</foreach>
</if>
<if test="null != vo.standard">
AND i.standard LIKE CONCAT ('%',#{vo.standard},'%')
</if>
<if test="null != vo.status">
AND i.status = #{vo.status}
</if>
<if test="null != vo.uid">
AND i.tester_id = #{vo.uid}
</if>
<if test="null != vo.entrustCode">
AND e.code LIKE CONCAT ('%',#{vo.entrustCode},'%')
</if>
<if test="null != vo.testSide">
AND e.test_side LIKE CONCAT ('%',#{vo.testSide},'%')
</if>
<if test="null != vo.sampleCode">
AND s.code LIKE CONCAT ('%',#{vo.sampleCode},'%')
</if>
<if test="null != vo.sampleName">
AND s.name LIKE CONCAT ('%',#{vo.sampleName},'%')
</if>
order by i.name, s.code
</select>
<update id="updateBatchByData" parameterType="java.util.List"> <update id="updateBatchByData" parameterType="java.util.List">
<foreach collection="itemList" item="item" index="index" open="" close="" separator=";"> <foreach collection="itemList" item="item" index="index" open="" close="" separator=";">
update entrust_sample_item update entrust_sample_item
......
/** created by meazty on 2022/1/18 16:43 **/
/** created by meazty on 2022/1/18 16:43 **/
-- 委托 --
ALTER TABLE "public"."original_record"
ADD COLUMN "entrust_ids" varchar(512);
COMMENT ON COLUMN "public"."original_record"."entrust_ids" IS '委托IDS';
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment