Commit a3bf27bb by wangweidong

土工平台修改

parent 42b09b5a
package com.patzn.cloud.service.lims.excel.controller; package com.patzn.cloud.service.lims.excel.controller;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.ServiceController; import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.commons.toolkit.IoUtils;
import com.patzn.poibox.excel.ExcelHelper; import com.patzn.poibox.excel.ExcelHelper;
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.apache.commons.lang3.StringUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
...@@ -35,6 +43,21 @@ public class ExcelController extends ServiceController { ...@@ -35,6 +43,21 @@ public class ExcelController extends ServiceController {
ExcelController.TPL.put("MeterSendSampleImport", "出检样品导入模板"); ExcelController.TPL.put("MeterSendSampleImport", "出检样品导入模板");
ExcelController.TPL.put("SoilEntrustImport", "试验委托单导入模板"); ExcelController.TPL.put("SoilEntrustImport", "试验委托单导入模板");
ExcelController.TPL.put("SoilAptExpImport", "试样项目导入模板"); ExcelController.TPL.put("SoilAptExpImport", "试样项目导入模板");
ExcelController.TPL.put("TenderContractSupplement.docx", "标书合同(协议)补充单.docx");
ExcelController.TPL.put("TenderContractEvaluationForm.docx", "标书合同(协议)评审表.docx");
ExcelController.TPL.put("TestEntrustBook.docx", "检测委托书.docx");
ExcelController.TPL.put("AnnualTrainingSchedule.doc", "年度培训计划表.doc");
ExcelController.TPL.put("EquipAll.docx", "仪器设备总览表.docx");
ExcelController.TPL.put("ChixuGaiJinJILu.docx", "持续改进记录.docx");
ExcelController.TPL.put("GaiJinPlan.docx", "改进计划.docx");
ExcelController.TPL.put("JinceWuPinDengJI.docx", "检测物品登记表.docx");
ExcelController.TPL.put("KehuTouShuDengJI.docx", "客户投诉登记表.docx");
ExcelController.TPL.put("LiuYangDengJI.docx", "留样登记表.docx");
ExcelController.TPL.put("QuYang.docx", "取(采)样记录.docx");
ExcelController.TPL.put("YangPinBiaoShiKa.docx", "样品标识卡.docx");
ExcelController.TPL.put("YangPinChouYangDan.docx", "样品抽样单.docx");
} }
@ApiOperation(value = "根据模板名称下载模板", notes = "根据模板名称下载导入模板") @ApiOperation(value = "根据模板名称下载模板", notes = "根据模板名称下载导入模板")
...@@ -54,4 +77,55 @@ public class ExcelController extends ServiceController { ...@@ -54,4 +77,55 @@ public class ExcelController extends ServiceController {
} }
} }
@ApiOperation(value = "根据模板名称下载模板", notes = "根据模板名称下载导入模板")
@ApiImplicitParams({
@ApiImplicitParam(name = "name", value = "模板名称", required = true, paramType = "path", dataType = "String"),
})
@GetMapping("/template_soil/{name}")
public void templateSoil(@PathVariable("name") String name) {
RestAssert.fail(null == ExcelController.TPL.get(name), "导入模板不存请联系管理员");
try {
// 文件路径
String filePath = String.format("templates/soil/%s", name);
// 兼容打包 JAR 压缩情况处理
templateDownload(response, ExcelController.TPL.get(name),
new ClassPathResource(filePath).getInputStream());
} catch (Throwable t) {
RestAssert.fail("该模板不存在");
}
}
public static void templateDownload(HttpServletResponse response, String templateName, InputStream in) {
if (null != in || StringUtils.isNotEmpty(templateName)) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
setExcelHeader(response, templateName);
ServletOutputStream out = response.getOutputStream();
bis = new BufferedInputStream(in);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (Exception var11) {
} finally {
IoUtils.close(new Closeable[]{bis, bos, in});
}
}
}
public static void setExcelHeader(HttpServletResponse response, String templateName) throws UnsupportedEncodingException {
response.reset();
response.setContentType("application/msword;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(templateName, "UTF-8"));
}
} }
...@@ -14,6 +14,9 @@ public class ItemCollectEntity { ...@@ -14,6 +14,9 @@ public class ItemCollectEntity {
private String attribute; private String attribute;
private Integer statusPlace;
public String getItemName() { public String getItemName() {
return itemName; return itemName;
} }
...@@ -53,4 +56,12 @@ public class ItemCollectEntity { ...@@ -53,4 +56,12 @@ public class ItemCollectEntity {
public void setAttribute(String attribute) { public void setAttribute(String attribute) {
this.attribute = attribute; this.attribute = attribute;
} }
public Integer getStatusPlace() {
return statusPlace;
}
public void setStatusPlace(Integer statusPlace) {
this.statusPlace = statusPlace;
}
} }
...@@ -99,12 +99,12 @@ public class SoilAloneSampleController extends ServiceController { ...@@ -99,12 +99,12 @@ public class SoilAloneSampleController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class), @ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
}) })
@PostMapping("/page_wait_storage_his") @PostMapping("/page_wait_storage_his")
public RestResult<Page<SoilAloneSample>> getPageWaitStorageHis(SoilAloneSampleVO soilAloneSample) { public RestResult<Page<SoilAloneSampleVO>> getPageWaitStorageHis(SoilAloneSampleVO soilAloneSample) {
List<SoilAloneStatusEnum> statusList = new ArrayList<>(); List<SoilAloneStatusEnum> statusList = new ArrayList<>();
statusList.add(SoilAloneStatusEnum.WAIT_DELIVERY); statusList.add(SoilAloneStatusEnum.WAIT_DELIVERY);
statusList.add(SoilAloneStatusEnum.DELIVERY_OK); statusList.add(SoilAloneStatusEnum.DELIVERY_OK);
soilAloneSample.setStatusList(statusList); soilAloneSample.setStatusList(statusList);
return success(soilAloneSampleService.page(getPage(), soilAloneSample)); return success(soilAloneSampleService.pageVO(getPage(), soilAloneSample));
} }
...@@ -118,9 +118,9 @@ public class SoilAloneSampleController extends ServiceController { ...@@ -118,9 +118,9 @@ public class SoilAloneSampleController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class), @ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
}) })
@PostMapping("/page_wait_delivery") @PostMapping("/page_wait_delivery")
public RestResult<Page<SoilAloneSample>> getPageWaitDelivery(SoilAloneSampleVO soilAloneSample) { public RestResult<Page<SoilAloneSampleVO>> getPageWaitDelivery(SoilAloneSampleVO soilAloneSample) {
soilAloneSample.setStatus(SoilAloneStatusEnum.WAIT_DELIVERY); soilAloneSample.setStatus(SoilAloneStatusEnum.WAIT_DELIVERY);
return success(soilAloneSampleService.page(getPage(), soilAloneSample)); return success(soilAloneSampleService.pageVO(getPage(), soilAloneSample));
} }
...@@ -132,9 +132,9 @@ public class SoilAloneSampleController extends ServiceController { ...@@ -132,9 +132,9 @@ public class SoilAloneSampleController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class), @ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
}) })
@PostMapping("/page_wait_delivery_his") @PostMapping("/page_wait_delivery_his")
public RestResult<Page<SoilAloneSample>> getPageWaitDeliveryHis(SoilAloneSampleVO soilAloneSample) { public RestResult<Page<SoilAloneSampleVO>> getPageWaitDeliveryHis(SoilAloneSampleVO soilAloneSample) {
soilAloneSample.setStatus(SoilAloneStatusEnum.DELIVERY_OK); soilAloneSample.setStatus(SoilAloneStatusEnum.DELIVERY_OK);
return success(soilAloneSampleService.page(getPage(), soilAloneSample)); return success(soilAloneSampleService.pageVO(getPage(), soilAloneSample));
} }
...@@ -180,6 +180,16 @@ public class SoilAloneSampleController extends ServiceController { ...@@ -180,6 +180,16 @@ public class SoilAloneSampleController extends ServiceController {
return success(soilAloneSampleService.getById(id)); return success(soilAloneSampleService.getById(id));
} }
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/vo/{id}")
public RestResult<SoilAloneSampleVO> getVOById(@PathVariable("id") Long id) {
return success(soilAloneSampleService.getVOById(id));
}
@ApiOperation("根据 id 修改信息") @ApiOperation("根据 id 修改信息")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class), @ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
......
...@@ -11,6 +11,7 @@ import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup; ...@@ -11,6 +11,7 @@ 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;
import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO; import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO;
import com.patzn.cloud.service.soil.entity.SoilExpReport; import com.patzn.cloud.service.soil.entity.SoilExpReport;
import com.patzn.cloud.service.soil.entity.SoilOpenSoilRecord;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord; import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum; import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO; import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
...@@ -415,6 +416,21 @@ public class SoilExperimentController extends ServiceController { ...@@ -415,6 +416,21 @@ public class SoilExperimentController extends ServiceController {
} }
@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_exp_check_bath")
public RestResult<Page<SoilExperimentVO>> getPageExpCheckBath(@RequestBody SoilExperimentQueryDTO vo) {
vo.setStatus(SoilExpStatusEnum.CHECK);
return success(soilExperimentService.pageExpRightBath(getPage(),vo));
}
@ApiOperation(value = "试验项目按照试验项目检测(右侧数据)审核分页列表", notes = "分页查询数据列表") @ApiOperation(value = "试验项目按照试验项目检测(右侧数据)审核分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
...@@ -430,6 +446,21 @@ public class SoilExperimentController extends ServiceController { ...@@ -430,6 +446,21 @@ public class SoilExperimentController extends ServiceController {
@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_exp_audit_bath")
public RestResult<Page<SoilExperimentVO>> getPageExpAuditBath(@RequestBody SoilExperimentQueryDTO vo) {
vo.setStatus(SoilExpStatusEnum.AUDIT);
return success(soilExperimentService.pageExpRightBath(getPage(),vo));
}
@ApiOperation(value = "按照试验项目分配分页列表", notes = "按照试验项目分配分页列表") @ApiOperation(value = "按照试验项目分配分页列表", notes = "按照试验项目分配分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
...@@ -626,6 +657,15 @@ public class SoilExperimentController extends ServiceController { ...@@ -626,6 +657,15 @@ public class SoilExperimentController extends ServiceController {
return success(soilExperimentService.saveExcelOriginalRecord(ids,templateId,getAccount())); return success(soilExperimentService.saveExcelOriginalRecord(ids,templateId,getAccount()));
} }
@ApiOperation(value = "填写开土制备记录", notes = "填写开土制备记录")
@PostMapping("/save_excel_open_soil_record")
public RestResult<SoilOpenSoilRecord> saveExcelOpenSoilRecord(@RequestParam("entrustId")Long entrustId, @RequestParam("templateId") Long templateId) {
return success(soilExperimentService.saveExcelOpenSoilRecord(entrustId,templateId,getAccount()));
}
@ApiOperation(value = "生成试验项目报告", notes = "填写原始记录") @ApiOperation(value = "生成试验项目报告", notes = "填写原始记录")
@PostMapping("/save_excel_exp_report") @PostMapping("/save_excel_exp_report")
public RestResult<SoilExpReport> saveExcelExpReport(@RequestParam("expName")String expName, @RequestParam("entrustId")Long entrustId, @RequestParam("ids")Long[] ids, @RequestParam("templateId") Long templateId) { public RestResult<SoilExpReport> saveExcelExpReport(@RequestParam("expName")String expName, @RequestParam("entrustId")Long entrustId, @RequestParam("ids")Long[] ids, @RequestParam("templateId") Long templateId) {
......
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilOpenSoilRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.lims.soil.service.ISoilOpenSoilRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* ${table.comment} 前端控制器
*
* @author wwd
* @since 2021-01-19
*/
@Api(tags = "${table.comment}")
@RestController
@RequestMapping("/v1/open_soil_record")
public class SoilOpenSoilRecordController extends ServiceController {
@Autowired
private ISoilOpenSoilRecordService soilOpenSoilRecordService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page")
public RestResult<Page<SoilOpenSoilRecord>> getPage(SoilOpenSoilRecord soilOpenSoilRecord) {
return success(soilOpenSoilRecordService.page(getPage(), soilOpenSoilRecord));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilOpenSoilRecord> get(@PathVariable("id") Long id) {
return success(soilOpenSoilRecordService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, SoilOpenSoilRecord soilOpenSoilRecord) {
soilOpenSoilRecord.setId(id);
return success(soilOpenSoilRecordService.updateById(soilOpenSoilRecord));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilOpenSoilRecord soilOpenSoilRecord) {
return success(soilOpenSoilRecordService.save(soilOpenSoilRecord));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(soilOpenSoilRecordService.removeByIds(ids));
}
}
...@@ -105,7 +105,15 @@ public class SoilOriginalTemplateController extends ServiceController implements ...@@ -105,7 +105,15 @@ public class SoilOriginalTemplateController extends ServiceController implements
@ApiOperation(value = "附件上传", notes = "附件上传") @ApiOperation(value = "附件上传", notes = "附件上传")
@PostMapping("/upload_template/") @PostMapping("/upload_template/")
public RestResult<Boolean> uploadTemplate(@RequestParam("classType") String classType,@RequestParam("name") String name,@RequestParam("remark") String remark, MultipartFile file) { public RestResult<Boolean> uploadTemplate(@RequestParam("classType") String classType,@RequestParam("name") String name,@RequestParam("remark") String remark, MultipartFile file) {
return success(soilOriginalTemplateService.uploadTemplate(file, classType,name,remark)); return success(soilOriginalTemplateService.uploadTemplate(file, classType,name,remark,0));
}
@ApiOperation(value = "开土制备记录模板上传", notes = "开土制备记录模板上传")
@PostMapping("/upload_open_soil_template/")
public RestResult<Boolean> uploadOpenSoilTemplate(@RequestParam("classType") String classType,@RequestParam("name") String name,@RequestParam("remark") String remark, MultipartFile file) {
return success(soilOriginalTemplateService.uploadTemplate(file, classType,name,remark,1));
} }
......
...@@ -6,6 +6,7 @@ import java.util.Map; ...@@ -6,6 +6,7 @@ import java.util.Map;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.patzn.cloud.service.soil.dto.SoilPrepareDTO; import com.patzn.cloud.service.soil.dto.SoilPrepareDTO;
import com.patzn.cloud.service.soil.entity.SoilSampleOperation;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum; import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilPrepareStatusEnum; import com.patzn.cloud.service.soil.enums.SoilPrepareStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum; import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
...@@ -582,4 +583,11 @@ public class SoilSampleController extends ServiceController { ...@@ -582,4 +583,11 @@ public class SoilSampleController extends ServiceController {
} }
@ApiOperation(value = "从存储位置移除试样", notes = "从存储位置移除试样")
@PostMapping("/edit_senior_sample")
public RestResult<Boolean> editSeniorSample(@RequestParam("ids")Long [] ids, SoilSampleOperation operation) {
return success(soilSampleService.editSeniorSample(ids,operation,getAccount()));
}
} }
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilOpenSoilRecord;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-01-19
*/
public interface SoilOpenSoilRecordMapper extends BatchMapper<SoilOpenSoilRecord> {
}
...@@ -29,4 +29,6 @@ public interface SoilSampleMapper extends BaseMapper<SoilSample> { ...@@ -29,4 +29,6 @@ public interface SoilSampleMapper extends BaseMapper<SoilSample> {
List<SoilSampleVO> selectLocationSample(Page<SoilSampleVO> page, @Param("vo")SoilSampleVO soilSample); List<SoilSampleVO> selectLocationSample(Page<SoilSampleVO> page, @Param("vo")SoilSampleVO soilSample);
List<SoilSampleVO> selectWarehouseLocationSample(Page<SoilSampleVO> page, @Param("vo")SoilSampleVO soilSample); List<SoilSampleVO> selectWarehouseLocationSample(Page<SoilSampleVO> page, @Param("vo")SoilSampleVO soilSample);
List<SoilSampleVO> selectVOListByIds(@Param("ids")List<Long> sampleIdList);
} }
...@@ -34,4 +34,6 @@ public interface ISoilAloneSampleService extends IBaseService<SoilAloneSample> { ...@@ -34,4 +34,6 @@ public interface ISoilAloneSampleService extends IBaseService<SoilAloneSample> {
Page<SoilAloneSampleVO> pageVOSampleOfStorehouse(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample); Page<SoilAloneSampleVO> pageVOSampleOfStorehouse(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample);
boolean storageSampleSubmit(Long[] ids, Account account); boolean storageSampleSubmit(Long[] ids, Account account);
SoilAloneSampleVO getVOById(Long id);
} }
...@@ -9,6 +9,7 @@ import com.patzn.cloud.service.lims.collect.core.CollectDataType; ...@@ -9,6 +9,7 @@ import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO; import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO;
import com.patzn.cloud.service.soil.entity.SoilExpReport; import com.patzn.cloud.service.soil.entity.SoilExpReport;
import com.patzn.cloud.service.soil.entity.SoilExperiment; import com.patzn.cloud.service.soil.entity.SoilExperiment;
import com.patzn.cloud.service.soil.entity.SoilOpenSoilRecord;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord; import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO; import com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO; import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
...@@ -94,4 +95,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> { ...@@ -94,4 +95,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
Page<SoilExperimentVO> pageExpRightBath(Page<SoilExperimentVO> page, SoilExperimentQueryDTO dto); Page<SoilExperimentVO> pageExpRightBath(Page<SoilExperimentVO> page, SoilExperimentQueryDTO dto);
List<SoilExperimentVO> listGroupVOListByEntrustIds(List<Long> entrustIdList); List<SoilExperimentVO> listGroupVOListByEntrustIds(List<Long> entrustIdList);
SoilOpenSoilRecord saveExcelOpenSoilRecord(Long entrustId, Long templateId, Account account);
} }
package com.patzn.cloud.service.lims.soil.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.entity.SoilOpenSoilRecord;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import java.io.File;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2021-01-19
*/
public interface ISoilOpenSoilRecordService extends IBaseService<SoilOpenSoilRecord> {
Page<SoilOpenSoilRecord> page(Page<SoilOpenSoilRecord> page, SoilOpenSoilRecord soilOpenSoilRecord);
boolean removeByIds(List<Long> ids);
SoilOpenSoilRecord uploadOpenSoilGenerate(Long entrustId, SoilOriginalTemplate template, SoilEntrust entrust, Account account, String remark, File file);
}
...@@ -23,7 +23,7 @@ public interface ISoilOriginalTemplateService extends IBaseService<SoilOriginalT ...@@ -23,7 +23,7 @@ public interface ISoilOriginalTemplateService extends IBaseService<SoilOriginalT
String getKeyByBusinessId(String businessId); String getKeyByBusinessId(String businessId);
boolean uploadTemplate(MultipartFile file, String classType, String name, String remark); boolean uploadTemplate(MultipartFile file, String classType, String name, String remark,Integer templateType);
boolean editTemplate(String someParam, OssFileResult obsFileResult); boolean editTemplate(String someParam, OssFileResult obsFileResult);
......
...@@ -10,6 +10,7 @@ import com.patzn.cloud.commons.service.IBaseService; ...@@ -10,6 +10,7 @@ import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.dto.SoilPrepareDTO; import com.patzn.cloud.service.soil.dto.SoilPrepareDTO;
import com.patzn.cloud.service.soil.entity.SoilPrepare; import com.patzn.cloud.service.soil.entity.SoilPrepare;
import com.patzn.cloud.service.soil.entity.SoilSample; import com.patzn.cloud.service.soil.entity.SoilSample;
import com.patzn.cloud.service.soil.entity.SoilSampleOperation;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO; import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO; import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -89,4 +90,8 @@ public interface ISoilSampleService extends IBaseService<SoilSample> { ...@@ -89,4 +90,8 @@ public interface ISoilSampleService extends IBaseService<SoilSample> {
boolean callOutAloneKeepSample(Long[] ids, Account account); boolean callOutAloneKeepSample(Long[] ids, Account account);
Page<SoilSampleVO> pageWarehouseLocationSample(Page<SoilSampleVO> page, SoilSampleVO soilSample); Page<SoilSampleVO> pageWarehouseLocationSample(Page<SoilSampleVO> page, SoilSampleVO soilSample);
boolean editSeniorSample(Long[] ids, SoilSampleOperation operation, Account account);
List<SoilSampleVO> listVOByIds(List<Long> sampleIdList);
} }
...@@ -172,4 +172,25 @@ public class SoilAloneSampleServiceImpl extends BaseServiceImpl<SoilAloneSampleM ...@@ -172,4 +172,25 @@ public class SoilAloneSampleServiceImpl extends BaseServiceImpl<SoilAloneSampleM
sample.setProgress(SoilAloneStatusEnum.WAIT_DELIVERY); sample.setProgress(SoilAloneStatusEnum.WAIT_DELIVERY);
return super.update(sample,Condition.create().in("id",ids)); return super.update(sample,Condition.create().in("id",ids));
} }
@Override
public SoilAloneSampleVO getVOById(Long id) {
SoilAloneSample sample = getById(id);
List<SoilAloneInOutStock> stockList = soilAloneInOutStockService.list(Condition.create().eq("alone_sample_id",id).last("LIMIT 1"));
if (CollectionUtils.isEmpty(stockList)){
return sample.convert(SoilAloneSampleVO.class);
}
SoilAloneInOutStock stock = stockList.get(0);
SoilAloneSampleVO vo = sample.convert(SoilAloneSampleVO.class);
vo.setStorehouse(stock.getStorehouse());
vo.setInStocker(stock.getInStocker());
vo.setInstockTime(stock.getInstockTime());
vo.setKeepLimitTime(stock.getKeepLimitTime());
vo.setShelfCode(stock.getShelfCode());
vo.setOutStocker(stock.getOutStocker());
vo.setOutStock(stock.getOutStock());
vo.setOutStockReceiver(stock.getOutStockReceiver());
return vo;
}
} }
...@@ -15,6 +15,7 @@ import com.google.common.collect.Lists; ...@@ -15,6 +15,7 @@ import com.google.common.collect.Lists;
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;
import com.patzn.cloud.commons.controller.LoginHelper; import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.FileUtils; import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.base.client.SysOrgClient; import com.patzn.cloud.feign.base.client.SysOrgClient;
import com.patzn.cloud.feign.base.client.SysUserClient; import com.patzn.cloud.feign.base.client.SysUserClient;
...@@ -43,6 +44,7 @@ import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum; ...@@ -43,6 +44,7 @@ import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
import com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO; import com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO; import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import com.patzn.cloud.service.soil.vo.SoilItemVO; import com.patzn.cloud.service.soil.vo.SoilItemVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import com.patzn.cloud.service.soil.vo.SoilUserVO; import com.patzn.cloud.service.soil.vo.SoilUserVO;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.Thumbnails;
...@@ -73,6 +75,8 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -73,6 +75,8 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Autowired @Autowired
private ISoilSampleService soilSampleService; private ISoilSampleService soilSampleService;
@Autowired
private ISoilPrepareService soilPrepareService;
@Autowired @Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService; private ISoilOriginalTemplateService soilOriginalTemplateService;
...@@ -130,6 +134,8 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -130,6 +134,8 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Autowired @Autowired
private ISoilOriginalRecordService soilOriginalRecordService; private ISoilOriginalRecordService soilOriginalRecordService;
@Autowired
private ISoilOpenSoilRecordService soilOpenSoilRecordService;
@Autowired @Autowired
private ISoilExpReportService soilExpReportService; private ISoilExpReportService soilExpReportService;
...@@ -1219,25 +1225,53 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1219,25 +1225,53 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
RestAssert.fail(null ==entrust,"委托单不存在"); RestAssert.fail(null ==entrust,"委托单不存在");
List<SoilExperimentVO> voList = soilExperimentService.listVOByIds(ids); List<SoilExperimentVO> voList = soilExperimentService.listVOByIds(ids);
if (CollectionUtils.isEmpty(voList)){ if (CollectionUtils.isEmpty(voList)){
RestAssert.fail("试验项目不存在"); RestAssert.fail("试验项目不存在");
} }
List<Long> sampleIdList = new ArrayList<>();
for (SoilExperimentVO exp:voList) {
sampleIdList.add(exp.getSampleId());
}
List<SoilSampleVO> sampleList = soilSampleService.listVOByIds(sampleIdList);
List<Long> expIdsList = voList.stream().map(e->{ List<Long> expIdsList = voList.stream().map(e->{
return e.getId(); return e.getId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<SoilItem> soilItemList = soilItemService.list(Condition.create().in("experiment_id",expIdsList)); List<SoilItem> soilItemList = soilItemService.list(Condition.create().in("experiment_id",expIdsList));
Map<Long,List<SoilItem>> sampleItemMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(soilItemList)){ if (CollectionUtils.isNotEmpty(soilItemList)){
for (SoilSampleVO sampleVO:sampleList) {
List<SoilItem> itemListForSample = sampleItemMap.get(sampleVO.getId());
if (itemListForSample==null){
itemListForSample = new ArrayList<>();
}
List<SoilExperimentVO> experimentVOList = new ArrayList<>();
for (SoilExperimentVO experimentVO:voList) { for (SoilExperimentVO experimentVO:voList) {
List<SoilItem> itemList = new ArrayList<>(); if (sampleVO.getId().equals(experimentVO.getSampleId())){
experimentVOList.add(experimentVO);
Long expId = experimentVO.getId(); Long expId = experimentVO.getId();
for (SoilItem soilItem:soilItemList) { for (SoilItem soilItem:soilItemList) {
if (expId.equals(soilItem.getExperimentId())){ if (expId.equals(soilItem.getExperimentId())){
itemList.add(soilItem); itemListForSample.add(soilItem);
}
}
} }
} }
experimentVO.setItemList(itemList); sampleVO.setExperimentVOList(experimentVOList) ;
sampleItemMap.put(sampleVO.getId(),itemListForSample);
} }
} }
...@@ -1275,11 +1309,14 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1275,11 +1309,14 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
&& null!=template.getTemplateSampleNum()){ && null!=template.getTemplateSampleNum()){
List<SoilExpReportTemplateConfig> configList = soilExpReportTemplateConfigService.list(Condition.create().eq("template_id",templateId)); List<SoilExpReportTemplateConfig> configList = soilExpReportTemplateConfigService.list(Condition.create().eq("template_id",templateId));
if (voList.size()<templateSampleNum){ if (sampleList.size()<templateSampleNum){
int sampleMergerNum =sampleMergerNumOri; int sampleMergerNum =sampleMergerNumOri;
for (SoilExperimentVO vo:voList) { for (SoilSampleVO vo:sampleList) {
List<SoilItem> itemList = vo.getItemList(); List<SoilItem> itemList = sampleItemMap.get(vo.getId());
if (null == itemList){
itemList = new ArrayList<>();
}
XSSFRow xssfRow = sheetOne.getRow(beginRow); XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (SoilExpReportTemplateConfig config:configList) { for (SoilExpReportTemplateConfig config:configList) {
if ("sn".equals(config.getDataAttribute())){ if ("sn".equals(config.getDataAttribute())){
...@@ -1297,7 +1334,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1297,7 +1334,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle(); XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int lastCellNum = zeroRow.getLastCellNum(); int lastCellNum = zeroRow.getLastCellNum();
int insertCount = voList.size()-templateSampleNum; int insertCount = sampleList.size()-templateSampleNum;
for (int m = 0 ; m<insertCount ;m++) { for (int m = 0 ; m<insertCount ;m++) {
for (int i = 0; i < sampleMergerNum; i++) { for (int i = 0; i < sampleMergerNum; i++) {
sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1,true,false); sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1,true,false);
...@@ -1311,9 +1348,12 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1311,9 +1348,12 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
} }
} }
int sn = 1; int sn = 1;
for (SoilExperimentVO vo:voList) { for (SoilSampleVO vo:sampleList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow); XSSFRow xssfRow = sheetOne.getRow(beginRow);
List<SoilItem> itemList = vo.getItemList(); List<SoilItem> itemList = sampleItemMap.get(vo.getId());
if (null == itemList){
itemList = new ArrayList<>();
}
for (SoilExpReportTemplateConfig config:configList) { for (SoilExpReportTemplateConfig config:configList) {
if (null == config.getColumnPlace()){ if (null == config.getColumnPlace()){
...@@ -1345,7 +1385,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1345,7 +1385,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
} }
if (null != config.getColumnPlace() && null != config.getMergeRowNum()){ if (null != config.getColumnPlace() && null != config.getMergeRowNum()){
Integer sampleBgMum = template.getSampleBeginRow()+templateSampleNum*sampleMergerNum; Integer sampleBgMum = template.getSampleBeginRow()+templateSampleNum*sampleMergerNum;
Integer sampleEnMum = template.getSampleBeginRow()+voList.size()*sampleMergerNum-1; Integer sampleEnMum = template.getSampleBeginRow()+sampleList.size()*sampleMergerNum-1;
while (sampleBgMum<=sampleEnMum) { while (sampleBgMum<=sampleEnMum) {
sheetOne.addMergedRegion(new CellRangeAddress(sampleBgMum,sampleBgMum+step-1,config.getMergeBegin(),config.getMergeEnd())); sheetOne.addMergedRegion(new CellRangeAddress(sampleBgMum,sampleBgMum+step-1,config.getMergeBegin(),config.getMergeEnd()));
sampleBgMum=sampleBgMum+step; sampleBgMum=sampleBgMum+step;
...@@ -1408,13 +1448,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1408,13 +1448,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
} }
public void setExcellCellValue (String prepory,SoilExperimentVO vo,XSSFCell cell,List<SoilItem> itemList){ public void setExcellCellValue (String prepory,SoilSampleVO vo,XSSFCell cell,List<SoilItem> itemList){
if (StringUtils.isNotBlank(prepory)){ if (StringUtils.isNotBlank(prepory)){
if (prepory.equals("{appendix}")){ if (prepory.equals("{appendix}")){
SoilAppendix soilAppendix = soilAppendixService.getByExpId(vo.getId());
List<SoilExperimentVO> voList = vo.getExperimentVOList();
if (null !=voList){
for (SoilExperimentVO experimentVO:voList) {
SoilAppendix soilAppendix = soilAppendixService.getByExpId(experimentVO.getId());
if (null != soilAppendix){ if (null != soilAppendix){
cell.setCellValue(soilAppendix.getTitle()); cell.setCellValue(soilAppendix.getTitle());
} }
break;
}
}
}else{ }else{
if (StringHandleUtils.is_alpha(prepory)){ if (StringHandleUtils.is_alpha(prepory)){
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(prepory,vo)); cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(prepory,vo));
...@@ -1604,6 +1651,228 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1604,6 +1651,228 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return baseMapper.listGroupVOListByEntrustIds(entrustIdList); return baseMapper.listGroupVOListByEntrustIds(entrustIdList);
} }
@Override
public SoilOpenSoilRecord saveExcelOpenSoilRecord(Long entrustId, Long templateId, Account account) {
logger.error("saveExcelOpenSoilRecord开始生成");
RestAssert.fail(null == entrustId,"委托ID不能为空!");
RestAssert.fail(null == templateId,"请选择原始记录模板");
SoilOriginalTemplate template = soilOriginalTemplateService.getById(templateId);
if (null == template){
logger.error("----------------------0");
RestAssert.fail("模板不存在");
}
logger.error("saveExcelOriginalRecord模板存在");
SoilEntrust entrust = soilEntrustService.getById(entrustId);
List<SoilSample> sampleListPre = soilSampleService.listByContractIdForPrepare(entrustId);
List<SoilSampleVO> sampleList = new ArrayList<>();
List<Long> sampleIdsList = new ArrayList<>();
for (SoilSample sample:sampleListPre) {
sampleList.add(sample.convert(SoilSampleVO.class));
sampleIdsList.add(sample.getId());
}
List<SoilExperiment> experimentList = list(Condition.create().in("sample_id",sampleIdsList));
for (SoilSampleVO sampleVO:sampleList) {
Set<String> shortNameSet = new HashSet<>();
for (SoilExperiment soilExperiment:experimentList) {
if (StringUtils.isBlank(soilExperiment.getShortName())){
continue;
}
if (sampleVO.getId().equals(soilExperiment.getSampleId())){
shortNameSet.add(soilExperiment.getShortName());
}
}
sampleVO.setExperimentShortNames(StringHandleUtils.join(shortNameSet));
}
Map<String,String> mapReplace=new HashMap<>();
mapReplace.put("#{boreholeName}",StringHandleUtils.getString(entrust.getBoreholeName()));
mapReplace.put("#{client}",StringHandleUtils.getString(entrust.getClient()));
mapReplace.put("#{projectNo}",StringHandleUtils.getString(entrust.getProjectNo()));
mapReplace.put("#{entrustCode}","报告编号:"+StringHandleUtils.getString(entrust.getEntrustCode()));
mapReplace.put("#{waterDepth}",null == entrust.getWaterDepth()?"":entrust.getWaterDepth().toString());
List<SoilPrepare> soilPrepares = soilPrepareService.list(Condition.create().setSqlSelect("prepare_date").in("sample_id",sampleIdsList).isNotNull("prepare_date"));
if (CollectionUtils.isNotEmpty(soilPrepares)){
List<Date> listDate = soilPrepares.stream().map(p->{
return p.getPrepareDate();
}).collect(Collectors.toList());
String s = DateUtils.getMinToMaxDate(listDate);
mapReplace.put("#{openDate}",s);
}else {
mapReplace.put("#{openDate}","");
}
RestAssert.fail(CollectionUtils.isEmpty(sampleList),"委托项目"+entrust.getBoreholeName()+"不含样品");
logger.error("saveExcelOriginalRecord entrust");
InputStream io = ossClient.download(template.getObjectKey());
if (null == io){
logger.error("----------------------2");
RestAssert.fail("模板不存在");
}
logger.error(" InputStream io 存在");
SoilOpenSoilRecord objectKey=null;
XSSFWorkbook xssfWorkbook= null;
try {
xssfWorkbook= new XSSFWorkbook(io);
}catch (Exception e){
logger.error("获取开土制备记录模板错误"+e.getMessage());
e.printStackTrace();
}
List<SoilOriginalTemplateConfig> configList = soilOriginalTemplateConfigService.list(Condition.create().eq("template_id",templateId));
logger.error("----------------------3");
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,0);
logger.error("----------------------4");
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
sheetOne.setForceFormulaRecalculation(true);
logger.error("----------------------5");
Integer beginRow = template.getSampleBeginRow();
if (null != beginRow
&& null!=template.getSampleMergerNum()
&& null!=template.getTemplateSampleNum()){
int templateSampleNum = template.getTemplateSampleNum();
if (sampleList.size()<templateSampleNum){
int sampleMergerNum = template.getSampleMergerNum();
for (SoilSampleVO vo:sampleList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (SoilOriginalTemplateConfig config:configList) {
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())){
continue;
}
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(config.getDataAttribute(),vo));
}
beginRow+=sampleMergerNum;
}
logger.error("----------------------7");
}else{
logger.error("----------------------8");
int sampleMergerNum = template.getSampleMergerNum();
int insertRow = beginRow+sampleMergerNum*templateSampleNum;
logger.error("---------------------9");
XSSFRow zeroRow = sheetOne.getRow(beginRow);
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
logger.error("----------------------10");
int lastCellNum = zeroRow.getLastCellNum();
int insertCount = sampleList.size()-templateSampleNum;
for (int m = 0 ; m<insertCount ;m++) {
for (int i = 0; i < sampleMergerNum; i++) {
sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1,true,false);
XSSFRow row = sheetOne.createRow(insertRow);
row.setHeight(zeroRow.getHeight());
for (int j = 0; j < lastCellNum; j++) {
XSSFCell xssfCell = row.createCell(j);
xssfCell.setCellStyle(cellStyle);
}
insertRow++;
}
}
int sn = 1;
for (SoilSampleVO vo:sampleList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (SoilOriginalTemplateConfig config:configList) {
if (null == config.getColumnPlace()){
continue;
}
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())){
cell.setCellValue(sn);
}else{
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(config.getDataAttribute(),vo));
}
}
beginRow+=sampleMergerNum;
sn++;
}
for (SoilOriginalTemplateConfig config:configList) {
if (null==config.getMergeRowNum()){
config.setMergeRowNum(1);
}
if (null == config.getMergeBegin()){
continue;
}
if (null == config.getMergeEnd()){
continue;
}
int step= config.getMergeRowNum();
if (step==1 && config.getMergeEnd() == config.getMergeBegin()){
continue;
}
if (null != config.getColumnPlace() && null != config.getMergeRowNum()){
Integer sampleBgMum = template.getSampleBeginRow()+templateSampleNum*sampleMergerNum;
Integer sampleEnMum = template.getSampleBeginRow()+sampleList.size()*sampleMergerNum-1;
while (sampleBgMum<=sampleEnMum) {
sheetOne.addMergedRegion(new CellRangeAddress(sampleBgMum,sampleBgMum+step-1,config.getMergeBegin(),config.getMergeEnd()));
sampleBgMum=sampleBgMum+step;
}
}
}
logger.error("----------------------15");
}
}
FileOutputStream os = null;
File file = null;
String generated="原始记录";
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
objectKey= soilOpenSoilRecordService.uploadOpenSoilGenerate(entrustId,template,entrust, account, "开土制备记录生成", file);
logger.error("----------------------17");
} catch (Exception e) {
logger.error("Exception 报错"+e.getMessage());
e.printStackTrace();
} finally {
try {
os.close();
xssfWorkbook.close();
io.close();
FileUtils.deleteFiles(file);
} catch (Exception e) {
e.printStackTrace();
}
}
logger.error("----------------------20");
return objectKey;
}
@Override @Override
public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) { public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) {
......
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.lims.soil.mapper.SoilOpenSoilRecordMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilOpenSoilRecordService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.entity.SoilOpenSoilRecord;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.io.File;
import java.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2021-01-19
*/
@Service
public class SoilOpenSoilRecordServiceImpl extends BaseServiceImpl<SoilOpenSoilRecordMapper, SoilOpenSoilRecord> implements ISoilOpenSoilRecordService {
@Autowired
private OssClient ossClient;
@Override
public Page<SoilOpenSoilRecord> page(Page<SoilOpenSoilRecord> page, SoilOpenSoilRecord soilOpenSoilRecord) {
Wrapper wrapper = new EntityWrapper<>(soilOpenSoilRecord);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public SoilOpenSoilRecord uploadOpenSoilGenerate(Long entrustId, SoilOriginalTemplate template, SoilEntrust entrust, Account account, String remark, File file) {
OssFileResult ossFileResult = ossClient.upload(file);
if (null!= ossFileResult){
SoilOpenSoilRecord openSoilRecord = new SoilOpenSoilRecord();
openSoilRecord.setEntrustId(entrustId);
openSoilRecord.setBucketName(ossFileResult.getBucketName());
openSoilRecord.setObjectKey(ossFileResult.getObjectKey());
openSoilRecord.setRemark(remark);
openSoilRecord.setVersionId(ossFileResult.getVersionId());
int count = count(Condition.create().eq("entrust_id",entrustId));
count = count+1;
openSoilRecord.setVersion(count);
save(openSoilRecord);
return openSoilRecord;
}
return null;
}
}
...@@ -112,7 +112,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina ...@@ -112,7 +112,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
} }
@Override @Override
public boolean uploadTemplate(MultipartFile file, String classType, String name, String remark) { public boolean uploadTemplate(MultipartFile file, String classType, String name, String remark,Integer templateType) {
RestAssert.fail(StringUtils.isBlank(classType),"模板类别不能为空"); RestAssert.fail(StringUtils.isBlank(classType),"模板类别不能为空");
RestAssert.fail(StringUtils.isBlank(name),"请填写原始记录名称"); RestAssert.fail(StringUtils.isBlank(name),"请填写原始记录名称");
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
...@@ -130,6 +130,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina ...@@ -130,6 +130,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
attachment.setName(result.getName()); attachment.setName(result.getName());
attachment.setObjectKey(result.getObjectKey()); attachment.setObjectKey(result.getObjectKey());
attachment.setVersionId(result.getVersionId()); attachment.setVersionId(result.getVersionId());
attachment.setTemplateType(templateType);
return super.save(attachment); return super.save(attachment);
} }
......
...@@ -831,6 +831,18 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -831,6 +831,18 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
return page.setRecords(baseMapper.selectWarehouseLocationSample(page,soilSample)); return page.setRecords(baseMapper.selectWarehouseLocationSample(page,soilSample));
} }
@Override
public boolean editSeniorSample(Long[] ids, SoilSampleOperation operation, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择高级样品");
RestAssert.fail(StringUtils.isBlank(operation.getReceiveLocation()),"请填写高级样品位置");
return soilSampleOperationService.update(operation,Condition.create().in("sample_id",ids));
}
@Override
public List<SoilSampleVO> listVOByIds(List<Long> sampleIdList) {
return baseMapper.selectVOListByIds(sampleIdList);
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilAloneSampleVO"> <select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilAloneSampleVO">
SELECT SELECT
s.id,s.receiver,s.receive_time,s.project_name,s.project_leader,s.borehole_name,s.cases_num,s.registrant,s.regist_time, s.id,s.receiver,s.receive_time,s.project_name,s.project_leader,s.borehole_name,s.cases_num,s.registrant,s.regist_time,
o.storehouse,o.shelf_code,o.instock_time,o.keep_limit_time o.storehouse,o.shelf_code,o.instock_time,o.keep_limit_time,o.in_stocker
FROM FROM
soil_alone_sample s soil_alone_sample s
JOIN soil_alone_in_out_stock o ON s.ID = o.alone_sample_id JOIN soil_alone_in_out_stock o ON s.ID = o.alone_sample_id
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
AND o.storehouse LIKE CONCAT('%',#{vo.storehouse},'%') AND o.storehouse LIKE CONCAT('%',#{vo.storehouse},'%')
</if> </if>
ORDER BY s.ctime DESC
</select> </select>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.soil.mapper.SoilOpenSoilRecordMapper">
</mapper>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO"> <select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO">
SELECT <include refid="sColumn"/>,<include refid="eColumn"/>, SELECT <include refid="sColumn"/>,<include refid="eColumn"/>,
o.receive_location,o.receiver,o.receive_time,o.sender,o.send_time,o.make_time,o.maker o.receive_location,o.receiver,o.receive_time,o.sender,o.send_time,o.make_time,o.maker,o.senior_type
FROM soil_sample s FROM soil_sample s
JOIN soil_sample_operation o ON s.id = o.sample_id JOIN soil_sample_operation o ON s.id = o.sample_id
JOIN soil_entrust e ON s.entrust_id = e.id JOIN soil_entrust e ON s.entrust_id = e.id
...@@ -119,6 +119,23 @@ ...@@ -119,6 +119,23 @@
<select id="selectVOListByIds" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO">
SELECT <include refid="sColumn"/>,<include refid="eColumn"/>,
o.receive_location,o.receiver,o.receive_time,o.sender,o.send_time,o.make_time,o.maker,o.senior_type
FROM soil_sample s
JOIN soil_sample_operation o ON s.id = o.sample_id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE s.deleted = 0 AND e.deleted = 0
AND s.id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
ORDER BY s.sample_code
</select>
<select id="selectLocationSample" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO"> <select id="selectLocationSample" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO">
WITH o AS ( SELECT sample_id,receive_location,receiver,receive_time,sender,send_time,make_time,maker,company_id FROM soil_sample_operation WHERE receive_location = #{vo.receiveLocation} ) WITH o AS ( SELECT sample_id,receive_location,receiver,receive_time,sender,send_time,make_time,maker,company_id FROM soil_sample_operation WHERE receive_location = #{vo.receiveLocation} )
......
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1343358970677411841, "name" = '备样样品管理', "type" = 0, "code" = 'sample_keep', "uri" = '/soil/sample/keep', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 55, "ctime" = '2020-12-02 18:08:09.19', "ename" = NULL WHERE "id" = 1334076881641627650;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1343358970677411841, "name" = '备样样品管理', "type" = 0, "code" = 'sample_keep', "uri" = '/soil/sample/keep', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 55, "ctime" = '2020-12-02 18:08:09.19', "ename" = NULL WHERE "id" = 1334076881641627650;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1343358970677411841, "name" = '备样管理', "type" = 0, "code" = 'sample_backups', "uri" = '/soil/sample/backups', "icon" = 'pt-config', "remark" = NULL, "status" = 0, "sort" = 70, "ctime" = '2020-09-11 10:43:28.608', "ename" = NULL WHERE "id" = 1304249170190643201;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1343358970677411841, "name" = '备样样品处理', "type" = 0, "code" = 'sample_dispose', "uri" = '/soil/sample/dispose', "icon" = 'pt-config', "remark" = NULL, "status" = 0, "sort" = 50, "ctime" = '2020-09-11 10:46:42.391', "ename" = NULL WHERE "id" = 1304249982975455234;
ALTER TABLE "public"."soil_exp_report_template" ALTER TABLE "public"."soil_exp_report_template"
...@@ -17,3 +17,57 @@ ALTER TABLE "public"."soil_original_template" ...@@ -17,3 +17,57 @@ ALTER TABLE "public"."soil_original_template"
ADD COLUMN "template_type" int2 DEFAULT 0; ADD COLUMN "template_type" int2 DEFAULT 0;
COMMENT ON COLUMN "public"."soil_original_template"."template_type" IS '模板类型(0原始记录 1开土制备记录)'; COMMENT ON COLUMN "public"."soil_original_template"."template_type" IS '模板类型(0原始记录 1开土制备记录)';
CREATE TABLE "public"."soil_open_soil_record" (
"id" int8 NOT NULL DEFAULT NULL,
"company_id" int8 DEFAULT NULL,
"deleted" int2 DEFAULT 0,
"uid" int8 DEFAULT NULL,
"ctime" timestamp(6) DEFAULT NULL::timestamp without time zone,
"lid" int8 DEFAULT NULL,
"ltime" timestamp(6) DEFAULT NULL::timestamp without time zone,
"entrust_id" int8 DEFAULT NULL,
"version" int2 DEFAULT NULL,
"uri" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"remark" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"bucket_name" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"object_key" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"version_id" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"pdf_object_key" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"uname" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"status" int2 DEFAULT 0,
"progress" int2 DEFAULT 0
)
;
COMMENT ON COLUMN "public"."soil_open_soil_record"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_open_soil_record"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."soil_open_soil_record"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."soil_open_soil_record"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."soil_open_soil_record"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_open_soil_record"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."soil_open_soil_record"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."soil_open_soil_record"."entrust_id" IS '样品id';
COMMENT ON COLUMN "public"."soil_open_soil_record"."version" IS '版本';
COMMENT ON COLUMN "public"."soil_open_soil_record"."uri" IS '证书地址';
COMMENT ON COLUMN "public"."soil_open_soil_record"."remark" IS '备注';
COMMENT ON COLUMN "public"."soil_open_soil_record"."bucket_name" IS '桶名称';
COMMENT ON COLUMN "public"."soil_open_soil_record"."object_key" IS '对象key';
COMMENT ON COLUMN "public"."soil_open_soil_record"."version_id" IS '版本';
COMMENT ON COLUMN "public"."soil_open_soil_record"."pdf_object_key" IS 'pdf对象key';
COMMENT ON COLUMN "public"."soil_open_soil_record"."uname" IS '修改人';
COMMENT ON COLUMN "public"."soil_open_soil_record"."status" IS '状态';
COMMENT ON COLUMN "public"."soil_open_soil_record"."progress" IS '进度';
-- ----------------------------
-- Primary Key structure for table soil_open_soil_record
-- ----------------------------
ALTER TABLE "public"."soil_open_soil_record" ADD CONSTRAINT "soil_open_soil_record_pkey" PRIMARY KEY ("id");
ALTER TABLE "public"."soil_sample_operation"
ADD COLUMN "senior_type" varchar(120);
COMMENT ON COLUMN "public"."soil_sample_operation"."senior_type" IS '高级样品分类';
\ No newline at end of file
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