Commit 9d811ad3 by wangweidong

土工平台修改

parent 00bdec83
...@@ -328,6 +328,22 @@ public class StringHandleUtils { ...@@ -328,6 +328,22 @@ public class StringHandleUtils {
} }
public static String getFieldIfNummReturnBlankValueByFieldName(String fieldName, Object o) {
try {
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[]{});
Object value = method.invoke(o, new Object[]{});
if (value instanceof Date) {
return DateUtils.toYearMonthDay((Date) value);
}
return value.toString();
} catch (Exception e) {
return "";
}
}
public static Object getObjectValue(Object object) { public static Object getObjectValue(Object object) {
if (null == object) { if (null == object) {
return ""; return "";
......
package com.patzn.cloud.service.lims.handler;
public class ItemCollectEntity {
private String itemName;
private String unit;
private Integer columnPlace;
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public Integer getColumnPlace() {
return columnPlace;
}
public void setColumnPlace(Integer columnPlace) {
this.columnPlace = columnPlace;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
}
package com.patzn.cloud.service.lims.handler;
public class SoilItemCollectData {
private String itemName;
private String unit;
private String testValue;
private String sampleCode;
private Long expId;
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public String getTestValue() {
return testValue;
}
public void setTestValue(String testValue) {
this.testValue = testValue;
}
public String getSampleCode() {
return sampleCode;
}
public void setSampleCode(String sampleCode) {
this.sampleCode = sampleCode;
}
public Long getExpId() {
return expId;
}
public void setExpId(Long expId) {
this.expId = expId;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
@Override
public String toString() {
return "SoilItemCollectData{" +
"itemName='" + itemName + '\'' +
", testValue='" + testValue + '\'' +
", sampleCode='" + sampleCode + '\'' +
", expId=" + expId +
'}';
}
}
...@@ -34,7 +34,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -34,7 +34,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工-资质可做试验表") @Api(tags = "土工-资质可做试验表")
@RestController @RestController
@RequestMapping("/v1/aptitude_exp") @RequestMapping("/v1/aptitude_exp")
public class SoilAptitudeExpController extends ServiceController { public class SoilAptitudeExpController extends ServiceController {
......
...@@ -28,7 +28,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -28,7 +28,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-委托附件表") @Api(tags = "土工试验-委托附件表")
@RestController @RestController
@RequestMapping("/v1/entrust_annex") @RequestMapping("/v1/entrust_annex")
public class SoilEntrustAnnexController extends ServiceController { public class SoilEntrustAnnexController extends ServiceController {
......
...@@ -28,7 +28,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -28,7 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验委托表") @Api(tags = "土工试验委托表")
@RestController @RestController
@RequestMapping("/v1/entrust") @RequestMapping("/v1/entrust")
public class SoilEntrustController extends ServiceController { public class SoilEntrustController extends ServiceController {
......
...@@ -28,7 +28,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -28,7 +28,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验委托操作表") @Api(tags = "土工试验委托操作表")
@RestController @RestController
@RequestMapping("/v1/entrust_operation") @RequestMapping("/v1/entrust_operation")
public class SoilEntrustOperationController extends ServiceController { public class SoilEntrustOperationController extends ServiceController {
......
...@@ -28,7 +28,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -28,7 +28,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验委托操作日志表") @Api(tags = "土工试验委托操作日志表")
@RestController @RestController
@RequestMapping("/v1/entrust_record") @RequestMapping("/v1/entrust_record")
public class SoilEntrustRecordController extends ServiceController { public class SoilEntrustRecordController extends ServiceController {
......
...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-资质可做试验指标表") @Api(tags = "土工试验-资质可做试验指标表")
@RestController @RestController
@RequestMapping("/v1/exp_item") @RequestMapping("/v1/exp_item")
public class SoilExpItemController extends ServiceController { public class SoilExpItemController extends ServiceController {
......
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilExpReport;
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.ISoilExpReportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 试验项目报告表 前端控制器
*
* @author wwd
* @since 2020-12-15
*/
@Api(tags = "试验项目报告表")
@RestController
@RequestMapping("/v1/exp_report")
public class SoilExpReportController extends ServiceController {
@Autowired
private ISoilExpReportService soilExpReportService;
@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<SoilExpReport>> getPage(SoilExpReport soilExpReport) {
return success(soilExpReportService.page(getPage(), soilExpReport));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilExpReport> get(@PathVariable("id") Long id) {
return success(soilExpReportService.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, SoilExpReport soilExpReport) {
soilExpReport.setId(id);
return success(soilExpReportService.updateById(soilExpReport));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilExpReport soilExpReport) {
return success(soilExpReportService.save(soilExpReport));
}
@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(soilExpReportService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateConfig;
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.ISoilExpReportTemplateConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 试验项目报告模板配置表 前端控制器
*
* @author wwd
* @since 2020-12-15
*/
@Api(tags = "试验项目报告模板配置表")
@RestController
@RequestMapping("/v1/exp_report_template_config")
public class SoilExpReportTemplateConfigController extends ServiceController {
@Autowired
private ISoilExpReportTemplateConfigService soilExpReportTemplateConfigService;
@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<SoilExpReportTemplateConfig>> getPage(SoilExpReportTemplateConfig soilExpReportTemplateConfig) {
return success(soilExpReportTemplateConfigService.page(getPage(), soilExpReportTemplateConfig));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilExpReportTemplateConfig> get(@PathVariable("id") Long id) {
return success(soilExpReportTemplateConfigService.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, SoilExpReportTemplateConfig soilExpReportTemplateConfig) {
soilExpReportTemplateConfig.setId(id);
return success(soilExpReportTemplateConfigService.updateById(soilExpReportTemplateConfig));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilExpReportTemplateConfig soilExpReportTemplateConfig) {
return success(soilExpReportTemplateConfigService.save(soilExpReportTemplateConfig));
}
@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(soilExpReportTemplateConfigService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.soil.controller;
import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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.ISoilExpReportTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 试验项目报告模板 前端控制器
*
* @author wwd
* @since 2020-12-15
*/
@Api(tags = "试验项目报告模板")
@RestController
@RequestMapping("/v1/exp_report_template")
public class SoilExpReportTemplateController extends ServiceController {
@Autowired
private ISoilExpReportTemplateService soilExpReportTemplateService;
@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<SoilExpReportTemplate>> getPage(SoilExpReportTemplate soilExpReportTemplate) {
return success(soilExpReportTemplateService.page(getPage(), soilExpReportTemplate));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilExpReportTemplate> get(@PathVariable("id") Long id) {
return success(soilExpReportTemplateService.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, SoilExpReportTemplate soilExpReportTemplate) {
soilExpReportTemplate.setId(id);
return success(soilExpReportTemplateService.updateById(soilExpReportTemplate));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilExpReportTemplate soilExpReportTemplate) {
return success(soilExpReportTemplateService.save(soilExpReportTemplate));
}
@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(soilExpReportTemplateService.removeByIds(ids));
}
@ApiOperation(value = "附件上传", notes = "附件上传")
@PostMapping("/upload_template/")
public RestResult<Boolean> uploadTemplate(@RequestParam("classType") String classType,@RequestParam("name") String name,@RequestParam("remark") String remark, MultipartFile file) {
return success(soilExpReportTemplateService.uploadTemplate(file, classType,name,remark));
}
@Login(action = Action.Skip)
@ApiOperation(value = "编辑证书模板", notes = "编辑证书模板")
@PostMapping("/edit_template_{someParam}")
public RestResult<Boolean> editTemplate(@PathVariable("someParam") String someParam, @RequestBody OssFileResult obsFileResult) {
return success(soilExpReportTemplateService.editTemplate(someParam, obsFileResult));
}
@Login(action = Action.Skip)
@ApiOperation(value = "在线编辑保存报告信息", notes = "在线编辑保存报告信息")
@PostMapping("/get_key_by_businessid{someParam}")
public RestResult<String> getKeyByBusinessId(String businessId) {
return success(soilExpReportTemplateService.getKeyByBusinessId(businessId));
}
@ApiOperation(value = "下载附件", notes = "下载指定附件")
@GetMapping("/download/{id}")
public void downloadFile(@PathVariable("id")Long id) {
soilExpReportTemplateService.downloadFile(id, response);
}
}
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateVersion;
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.ISoilExpReportTemplateVersionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 试验项目报告模板版本历史 前端控制器
*
* @author wwd
* @since 2020-12-15
*/
@Api(tags = "试验项目报告模板版本历史")
@RestController
@RequestMapping("/v1/exp_report_template_version")
public class SoilExpReportTemplateVersionController extends ServiceController {
@Autowired
private ISoilExpReportTemplateVersionService soilExpReportTemplateVersionService;
@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<SoilExpReportTemplateVersion>> getPage(SoilExpReportTemplateVersion soilExpReportTemplateVersion) {
return success(soilExpReportTemplateVersionService.page(getPage(), soilExpReportTemplateVersion));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilExpReportTemplateVersion> get(@PathVariable("id") Long id) {
return success(soilExpReportTemplateVersionService.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, SoilExpReportTemplateVersion soilExpReportTemplateVersion) {
soilExpReportTemplateVersion.setId(id);
return success(soilExpReportTemplateVersionService.updateById(soilExpReportTemplateVersion));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilExpReportTemplateVersion soilExpReportTemplateVersion) {
return success(soilExpReportTemplateVersionService.save(soilExpReportTemplateVersion));
}
@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(soilExpReportTemplateVersionService.removeByIds(ids));
}
}
...@@ -4,6 +4,8 @@ import java.util.List; ...@@ -4,6 +4,8 @@ import java.util.List;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.service.soil.entity.SoilExpReport;
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;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -37,7 +39,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -37,7 +39,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工-样品试验表") @Api(tags = "土工-样品试验表")
@RestController @RestController
@RequestMapping("/v1/experiment") @RequestMapping("/v1/experiment")
public class SoilExperimentController extends ServiceController { public class SoilExperimentController extends ServiceController {
...@@ -542,4 +544,18 @@ public class SoilExperimentController extends ServiceController { ...@@ -542,4 +544,18 @@ public class SoilExperimentController extends ServiceController {
return success(soilExperimentService.importExperiments(ids,aptitudeIds,getAccount())); return success(soilExperimentService.importExperiments(ids,aptitudeIds,getAccount()));
} }
@ApiOperation(value = "填写原始记录", notes = "填写原始记录")
@PostMapping("/save_excel_original_record")
public RestResult<SoilOriginalRecord> saveExcelOriginalRecord(@RequestParam("ids")Long[] ids, @RequestParam("templateId") Long templateId) {
return success(soilExperimentService.saveExcelOriginalRecord(ids,templateId,getAccount()));
}
@ApiOperation(value = "生成试验项目报告", notes = "填写原始记录")
@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) {
return success(soilExperimentService.saveExcelExpReport(expName,entrustId,ids,templateId,getAccount()));
}
} }
...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验试样操作表") @Api(tags = "土工试验试样操作表")
@RestController @RestController
@RequestMapping("/v1/experiment_operation") @RequestMapping("/v1/experiment_operation")
public class SoilExperimentOperationController extends ServiceController { public class SoilExperimentOperationController extends ServiceController {
......
...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-试验指标表") @Api(tags = "土工试验-试验指标表")
@RestController @RestController
@RequestMapping("/v1/item") @RequestMapping("/v1/item")
public class SoilItemController extends ServiceController{ public class SoilItemController extends ServiceController{
......
...@@ -115,4 +115,12 @@ public class SoilOriginalRecordController extends ServiceController { ...@@ -115,4 +115,12 @@ public class SoilOriginalRecordController extends ServiceController {
return success(soilOriginalRecordService.updateOriginalRecord(formId, getAccount())); return success(soilOriginalRecordService.updateOriginalRecord(formId, getAccount()));
} }
@ApiOperation(value = "获取Excel原始记录", notes = "获取Excel原始记录")
@PostMapping("/get_excel_original_record")
public RestResult<SoilOriginalRecord> getExcelOriginalRecord(@RequestParam("expId")Long expId) {
return success(soilOriginalRecordService.getExcelOriginalRecord(expId));
}
} }
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig;
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.ISoilOriginalTemplateConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 原始记录模板配置表 前端控制器
*
* @author wwd
* @since 2020-12-16
*/
@Api(tags = "原始记录模板配置表")
@RestController
@RequestMapping("/v1/original_template_config")
public class SoilOriginalTemplateConfigController extends ServiceController {
@Autowired
private ISoilOriginalTemplateConfigService soilOriginalTemplateConfigService;
@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<SoilOriginalTemplateConfig>> getPage(SoilOriginalTemplateConfig soilOriginalTemplateConfig) {
return success(soilOriginalTemplateConfigService.page(getPage(), soilOriginalTemplateConfig));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilOriginalTemplateConfig> get(@PathVariable("id") Long id) {
return success(soilOriginalTemplateConfigService.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, SoilOriginalTemplateConfig soilOriginalTemplateConfig) {
soilOriginalTemplateConfig.setId(id);
return success(soilOriginalTemplateConfigService.updateById(soilOriginalTemplateConfig));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilOriginalTemplateConfig soilOriginalTemplateConfig) {
return success(soilOriginalTemplateConfigService.save(soilOriginalTemplateConfig));
}
@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(soilOriginalTemplateConfigService.removeByIds(ids));
}
}
...@@ -2,7 +2,9 @@ package com.patzn.cloud.service.lims.soil.controller; ...@@ -2,7 +2,9 @@ package com.patzn.cloud.service.lims.soil.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.soil.client.SoilOriginalTemplateClient;
import com.patzn.cloud.oss.starter.OssFileResult; import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate; import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -30,7 +32,7 @@ import java.util.List; ...@@ -30,7 +32,7 @@ import java.util.List;
@Api(tags = "模板文件表") @Api(tags = "模板文件表")
@RestController @RestController
@RequestMapping("/v1/original_template") @RequestMapping("/v1/original_template")
public class SoilOriginalTemplateController extends ServiceController { public class SoilOriginalTemplateController extends ServiceController implements SoilOriginalTemplateClient {
@Autowired @Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService; private ISoilOriginalTemplateService soilOriginalTemplateService;
...@@ -84,8 +86,8 @@ public class SoilOriginalTemplateController extends ServiceController { ...@@ -84,8 +86,8 @@ public class SoilOriginalTemplateController extends ServiceController {
@ApiOperation(value = "附件上传", notes = "附件上传") @ApiOperation(value = "附件上传", notes = "附件上传")
@PostMapping("/upload_template/") @PostMapping("/upload_template/")
public RestResult<Boolean> uploadTemplate(@RequestParam("classType") String classType,@RequestParam("alias") String alias,@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,remark,alias)); return success(soilOriginalTemplateService.uploadTemplate(file, classType,name,remark));
} }
...@@ -98,6 +100,17 @@ public class SoilOriginalTemplateController extends ServiceController { ...@@ -98,6 +100,17 @@ public class SoilOriginalTemplateController extends ServiceController {
} }
@Override
@Login(action = Action.Skip)
@ApiOperation(value = "编辑证书模板", notes = "编辑证书模板")
@PostMapping("/edit_exp_report_template_{someParam}")
public RestResult<Boolean> editExpReportTemplate(@PathVariable("someParam") String someParam, @RequestBody OssFileResult obsFileResult) {
return success(soilOriginalTemplateService.editExpReportTemplate(someParam, obsFileResult));
}
@Override
@Login(action = Action.Skip) @Login(action = Action.Skip)
@ApiOperation(value = "编辑证书模板", notes = "编辑证书模板") @ApiOperation(value = "编辑证书模板", notes = "编辑证书模板")
@PostMapping("/edit_report_{someParam}") @PostMapping("/edit_report_{someParam}")
...@@ -105,6 +118,8 @@ public class SoilOriginalTemplateController extends ServiceController { ...@@ -105,6 +118,8 @@ public class SoilOriginalTemplateController extends ServiceController {
return success(soilOriginalTemplateService.editReport(someParam, obsFileResult)); return success(soilOriginalTemplateService.editReport(someParam, obsFileResult));
} }
@Override
@Login(action = Action.Skip) @Login(action = Action.Skip)
@ApiOperation(value = "在线编辑保存报告信息", notes = "在线编辑保存报告信息") @ApiOperation(value = "在线编辑保存报告信息", notes = "在线编辑保存报告信息")
@PostMapping("/get_key_by_businessid{someParam}") @PostMapping("/get_key_by_businessid{someParam}")
......
...@@ -36,7 +36,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -36,7 +36,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验试样制备表") @Api(tags = "土工试验试样制备表")
@RestController @RestController
@RequestMapping("/v1/prepare") @RequestMapping("/v1/prepare")
public class SoilPrepareController extends ServiceController { public class SoilPrepareController extends ServiceController {
......
...@@ -36,7 +36,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -36,7 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验试样表") @Api(tags = "土工试验试样表")
@RestController @RestController
@RequestMapping("/v1/sample") @RequestMapping("/v1/sample")
public class SoilSampleController extends ServiceController { public class SoilSampleController extends ServiceController {
......
...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验试样操作表") @Api(tags = "土工试验试样操作表")
@RestController @RestController
@RequestMapping("/v1/sample_operation") @RequestMapping("/v1/sample_operation")
public class SoilSampleOperationController extends ServiceController { public class SoilSampleOperationController extends ServiceController {
......
...@@ -37,7 +37,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest; ...@@ -37,7 +37,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-样品照片表") @Api(tags = "土工试验-样品照片表")
@RestController @RestController
@RequestMapping("/v1/sample_photo") @RequestMapping("/v1/sample_photo")
public class SoilSamplePhotoController extends ServiceController { public class SoilSamplePhotoController extends ServiceController {
......
...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验样品操作日志表") @Api(tags = "土工试验样品操作日志表")
@RestController @RestController
@RequestMapping("/v1/sample_record") @RequestMapping("/v1/sample_record")
public class SoilSampleRecordController extends ServiceController { public class SoilSampleRecordController extends ServiceController {
......
...@@ -35,7 +35,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -35,7 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-标准文件附件表") @Api(tags = "土工试验-标准文件附件表")
@RestController @RestController
@RequestMapping("/v1/standard_annex") @RequestMapping("/v1/standard_annex")
public class SoilStandardAnnexController extends ServiceController { public class SoilStandardAnnexController extends ServiceController {
......
...@@ -34,7 +34,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -34,7 +34,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-试验依据") @Api(tags = "土工试验-试验依据")
@RestController @RestController
@RequestMapping("/v1/standard") @RequestMapping("/v1/standard")
public class SoilStandardController extends ServiceController { public class SoilStandardController extends ServiceController {
......
...@@ -36,7 +36,7 @@ import java.util.List; ...@@ -36,7 +36,7 @@ import java.util.List;
* @author wwd * @author wwd
* @since 2020-09-11 * @since 2020-09-11
*/ */
@Api(description = "土工试验-统计查询") @Api(tags = "土工试验-统计查询")
@RestController @RestController
@RequestMapping("/v1/statistics") @RequestMapping("/v1/statistics")
public class SoilStatisticsController extends ServiceController { public class SoilStatisticsController extends ServiceController {
......
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilExpReport;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-15
*/
public interface SoilExpReportMapper extends BatchMapper<SoilExpReport> {
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateConfig;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-15
*/
public interface SoilExpReportTemplateConfigMapper extends BatchMapper<SoilExpReportTemplateConfig> {
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-15
*/
public interface SoilExpReportTemplateMapper extends BatchMapper<SoilExpReportTemplate> {
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateVersion;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-15
*/
public interface SoilExpReportTemplateVersionMapper extends BatchMapper<SoilExpReportTemplateVersion> {
}
...@@ -2,6 +2,10 @@ package com.patzn.cloud.service.lims.soil.mapper; ...@@ -2,6 +2,10 @@ package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.patzn.cloud.service.soil.entity.SoilItem; import com.patzn.cloud.service.soil.entity.SoilItem;
import com.patzn.cloud.service.soil.vo.SoilItemVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +17,5 @@ import com.patzn.cloud.service.soil.entity.SoilItem; ...@@ -13,4 +17,5 @@ import com.patzn.cloud.service.soil.entity.SoilItem;
*/ */
public interface SoilItemMapper extends BaseMapper<SoilItem> { public interface SoilItemMapper extends BaseMapper<SoilItem> {
List<SoilItemVO> listVOByExpIds(@Param("expIds") List<Long> expIdsList);
} }
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-12-16
*/
public interface SoilOriginalTemplateConfigMapper extends BatchMapper<SoilOriginalTemplateConfig> {
}
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.SoilExpReport;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate;
import java.io.File;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2020-12-15
*/
public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
Page<SoilExpReport> page(Page<SoilExpReport> page, SoilExpReport soilExpReport);
boolean removeByIds(List<Long> ids);
SoilExpReport uploadExpReportGenerate(Long[] ids, SoilExpReportTemplate template, SoilEntrust entrust, String expName, Account account, String report, File file);
}
package com.patzn.cloud.service.lims.soil.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateConfig;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2020-12-15
*/
public interface ISoilExpReportTemplateConfigService extends IBaseService<SoilExpReportTemplateConfig> {
Page<SoilExpReportTemplateConfig> page(Page<SoilExpReportTemplateConfig> page, SoilExpReportTemplateConfig soilExpReportTemplateConfig);
boolean removeByIds(List<Long> ids);
}
package com.patzn.cloud.service.lims.soil.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2020-12-15
*/
public interface ISoilExpReportTemplateService extends IBaseService<SoilExpReportTemplate> {
Page<SoilExpReportTemplate> page(Page<SoilExpReportTemplate> page, SoilExpReportTemplate soilExpReportTemplate);
boolean removeByIds(List<Long> ids);
String getKeyByBusinessId(String businessId);
boolean uploadTemplate(MultipartFile file, String classType, String name, String remark);
boolean editTemplate(String someParam, OssFileResult obsFileResult);
void downloadFile(Long id, HttpServletResponse response);
}
package com.patzn.cloud.service.lims.soil.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateVersion;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2020-12-15
*/
public interface ISoilExpReportTemplateVersionService extends IBaseService<SoilExpReportTemplateVersion> {
Page<SoilExpReportTemplateVersion> page(Page<SoilExpReportTemplateVersion> page, SoilExpReportTemplateVersion soilExpReportTemplateVersion);
boolean removeByIds(List<Long> ids);
}
...@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.lims.collect.core.CollectDataType; import com.patzn.cloud.service.lims.collect.core.CollectDataType;
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.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;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
...@@ -68,4 +70,9 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> { ...@@ -68,4 +70,9 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
boolean changeExpAllot(Long[] ids, String user, Long userId, Account account); boolean changeExpAllot(Long[] ids, String user, Long userId, Account account);
List<SoilEntrustItemNumVO> listEntrustItemNum(SoilExperimentVO soilEntrust); List<SoilEntrustItemNumVO> listEntrustItemNum(SoilExperimentVO soilEntrust);
SoilOriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account);
SoilExpReport saveExcelExpReport(String expName, Long entrustId, Long[] ids, Long templateId, Account account);
} }
...@@ -5,6 +5,7 @@ import java.util.List; ...@@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilItem; import com.patzn.cloud.service.soil.entity.SoilItem;
import com.patzn.cloud.service.soil.vo.SoilItemVO;
/** /**
* <p> * <p>
...@@ -21,4 +22,6 @@ public interface ISoilItemService extends IBaseService<SoilItem> { ...@@ -21,4 +22,6 @@ public interface ISoilItemService extends IBaseService<SoilItem> {
List<SoilItem> list(SoilItem soilItem); List<SoilItem> list(SoilItem soilItem);
List<SoilItemVO> listVOByExpIds(List<Long> expIdsList);
} }
package com.patzn.cloud.service.lims.soil.service; package com.patzn.cloud.service.lims.soil.service;
import java.io.File;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord; import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO; import com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO;
/** /**
...@@ -31,4 +34,8 @@ public interface ISoilOriginalRecordService extends IBaseService<SoilOriginalRec ...@@ -31,4 +34,8 @@ public interface ISoilOriginalRecordService extends IBaseService<SoilOriginalRec
Page<SoilOriginalRecordVO> pageVO(Page<SoilOriginalRecordVO> page, SoilOriginalRecordVO soilOriginalRecord); Page<SoilOriginalRecordVO> pageVO(Page<SoilOriginalRecordVO> page, SoilOriginalRecordVO soilOriginalRecord);
boolean removeOriginal(Long[] ids); boolean removeOriginal(Long[] ids);
SoilOriginalRecord uploadExpGenerate(Long[] ids, SoilOriginalTemplate template, SoilEntrust entrust, Account account, String remark, File file);
SoilOriginalRecord getExcelOriginalRecord(Long expId);
} }
package com.patzn.cloud.service.lims.soil.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2020-12-16
*/
public interface ISoilOriginalTemplateConfigService extends IBaseService<SoilOriginalTemplateConfig> {
Page<SoilOriginalTemplateConfig> page(Page<SoilOriginalTemplateConfig> page, SoilOriginalTemplateConfig soilOriginalTemplateConfig);
boolean removeByIds(List<Long> ids);
}
...@@ -23,10 +23,12 @@ public interface ISoilOriginalTemplateService extends IBaseService<SoilOriginalT ...@@ -23,10 +23,12 @@ public interface ISoilOriginalTemplateService extends IBaseService<SoilOriginalT
String getKeyByBusinessId(String businessId); String getKeyByBusinessId(String businessId);
boolean uploadTemplate(MultipartFile file, String classType, String remark, String alias); boolean uploadTemplate(MultipartFile file, String classType, String name, String remark);
boolean editTemplate(String someParam, OssFileResult obsFileResult); boolean editTemplate(String someParam, OssFileResult obsFileResult);
boolean editExpReportTemplate(String someParam, OssFileResult obsFileResult);
boolean editReport(String someParam, OssFileResult obsFileResult); boolean editReport(String someParam, OssFileResult obsFileResult);
void downloadFile(Long id, HttpServletResponse response); void downloadFile(Long id, HttpServletResponse response);
......
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.api.RestAssert;
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.SoilExpReportMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExpReportService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.entity.SoilExpReport;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate;
import org.apache.commons.lang3.ArrayUtils;
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 2020-12-15
*/
@Service
public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMapper, SoilExpReport> implements ISoilExpReportService {
@Autowired
private OssClient ossClient;
@Override
public Page<SoilExpReport> page(Page<SoilExpReport> page, SoilExpReport soilExpReport) {
Wrapper wrapper = new EntityWrapper<>(soilExpReport);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public SoilExpReport uploadExpReportGenerate(Long[] ids, SoilExpReportTemplate template, SoilEntrust entrust, String expName, Account account, String remark, File file) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择试验项目");
RestAssert.fail(null == entrust.getId(), "试验委托单ID不能为空");
SoilExpReport soilOriginalRecord = new SoilExpReport();
soilOriginalRecord.setEntrustId(entrust.getId());
soilOriginalRecord.setRemark(remark);
soilOriginalRecord.setUname(account.getUserName());
OssFileResult obsFileResult = ossClient.upload(file);
if (null == obsFileResult) {
return null;
}
soilOriginalRecord.setObjectKey(obsFileResult.getObjectKey());
soilOriginalRecord.setExpName(expName);
if (save(soilOriginalRecord)){
return soilOriginalRecord;
}
return soilOriginalRecord;
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.service.lims.soil.mapper.SoilExpReportTemplateConfigMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExpReportTemplateConfigService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateConfig;
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.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2020-12-15
*/
@Service
public class SoilExpReportTemplateConfigServiceImpl extends BaseServiceImpl<SoilExpReportTemplateConfigMapper, SoilExpReportTemplateConfig> implements ISoilExpReportTemplateConfigService {
@Override
public Page<SoilExpReportTemplateConfig> page(Page<SoilExpReportTemplateConfig> page, SoilExpReportTemplateConfig soilExpReportTemplateConfig) {
Wrapper wrapper = new EntityWrapper<>(soilExpReportTemplateConfig);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.lims.soil.mapper.SoilExpReportTemplateMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExpReportTemplateService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.lims.soil.service.ISoilExpReportTemplateVersionService;
import com.patzn.cloud.service.soil.entity.*;
import org.apache.commons.lang3.StringUtils;
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 org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2020-12-15
*/
@Service
public class SoilExpReportTemplateServiceImpl extends BaseServiceImpl<SoilExpReportTemplateMapper, SoilExpReportTemplate> implements ISoilExpReportTemplateService {
@Autowired
private OssClient ossClient;
@Autowired
private ISoilExpReportTemplateVersionService soilExpReportTemplateVersionService;
@Override
public Page<SoilExpReportTemplate> page(Page<SoilExpReportTemplate> page, SoilExpReportTemplate soilExpReportTemplate) {
Wrapper wrapper = new EntityWrapper<>(soilExpReportTemplate);
if (StringUtils.isNotBlank(soilExpReportTemplate.getName())){
wrapper.like("name",soilExpReportTemplate.getName());
soilExpReportTemplate.setName(null);
}
if (StringUtils.isNotBlank(soilExpReportTemplate.getClassType())){
wrapper.like("class_type",soilExpReportTemplate.getClassType());
soilExpReportTemplate.setClassType(null);
}
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public String getKeyByBusinessId(String businessId) {
return null;
}
@Override
public boolean uploadTemplate(MultipartFile file, String classType, String name, String remark) {
RestAssert.fail(StringUtils.isBlank(classType),"模板类别不能为空");
RestAssert.fail(StringUtils.isBlank(name),"请填写原始记录名称");
String fileName = file.getOriginalFilename();
RestAssert.fail(StringUtils.isBlank(fileName), "请上传文件");
SoilExpReportTemplate attachment = new SoilExpReportTemplate();
OssFileResult result = ossClient.upload(file);
if (null == result) {
return false;
}
attachment.setAlias(name);
attachment.setRemark(remark);
attachment.setClassType(classType);
attachment.setBucketName(result.getBucketName());
attachment.setType(result.getType());
attachment.setName(result.getName());
attachment.setObjectKey(result.getObjectKey());
attachment.setVersionId(result.getVersionId());
return super.save(attachment);
}
@Override
public boolean editTemplate(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam),"业务ID不能为空");
RestAssert.fail(null==obsFileResult,"OssFileResult不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getObjectKey()),"ObjectKey不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getVersionId()),"VersionId不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getType()),"Type不能为空");
RestAssert.fail(StringUtils.isBlank(someParam) || 4 != someParam.split("&").length, "参数传递有误");
String[] arr = someParam.split("&");
Long businessId = Long.parseLong(arr[0]);
String userName = null;
try {
userName = java.net.URLDecoder.decode(arr[2], "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Long userId = Long.parseLong(arr[1]);
Long companyId = Long.parseLong(arr[3]);
SoilExpReportTemplate template = getById(businessId);
if (null == template){
RestAssert.fail("数据有误");
}
SoilExpReportTemplateVersion templateVersion = new SoilExpReportTemplateVersion();
templateVersion.setTemplateId(template.getId());
templateVersion.setAlias(template.getAlias());
templateVersion.setBucketName(template.getBucketName());
templateVersion.setName(template.getName());
templateVersion.setObjectKey(template.getObjectKey());
templateVersion.setType(template.getType());
templateVersion.setUid(userId);
templateVersion.setCtime(new Date());
templateVersion.setCompanyId(companyId);
templateVersion.setVersionId(template.getVersionId());
if (soilExpReportTemplateVersionService.save(templateVersion)){
SoilExpReportTemplate updateTemplate=new SoilExpReportTemplate();
updateTemplate.setObjectKey(obsFileResult.getObjectKey());
updateTemplate.setVersionId(obsFileResult.getVersionId());
updateTemplate.setType(obsFileResult.getType());
updateTemplate.setId(businessId);
return updateById(updateTemplate);
}
return false;
}
@Override
public void downloadFile(Long id, HttpServletResponse response) {
SoilExpReportTemplate attachment = super.getById(id);
if (null == attachment) {
RestAssert.fail("抱歉!该附件不存在");
}
ossClient.download(attachment.getObjectKey(), attachment.getName() + "." + attachment.getType(), response);
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.service.lims.soil.mapper.SoilExpReportTemplateVersionMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExpReportTemplateVersionService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplateVersion;
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.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2020-12-15
*/
@Service
public class SoilExpReportTemplateVersionServiceImpl extends BaseServiceImpl<SoilExpReportTemplateVersionMapper, SoilExpReportTemplateVersion> implements ISoilExpReportTemplateVersionService {
@Override
public Page<SoilExpReportTemplateVersion> page(Page<SoilExpReportTemplateVersion> page, SoilExpReportTemplateVersion soilExpReportTemplateVersion) {
Wrapper wrapper = new EntityWrapper<>(soilExpReportTemplateVersion);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
...@@ -6,10 +6,7 @@ import java.io.File; ...@@ -6,10 +6,7 @@ import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
...@@ -24,8 +21,10 @@ import com.patzn.cloud.oss.starter.OssClient; ...@@ -24,8 +21,10 @@ import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult; import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.lims.collect.core.CollectDataType; import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.lims.common.CollectUtil; import com.patzn.cloud.service.lims.common.CollectUtil;
import com.patzn.cloud.service.lims.common.PoiUtil2007;
import com.patzn.cloud.service.lims.common.StringHandleUtils; import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.soil.service.*; import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.service.meter.entity.MeterEntrust;
import com.patzn.cloud.service.soil.entity.*; import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.lims.soil.mapper.SoilExperimentMapper; import com.patzn.cloud.service.lims.soil.mapper.SoilExperimentMapper;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
...@@ -33,10 +32,15 @@ import com.patzn.cloud.service.soil.enums.SoilEntrustStatusEnum; ...@@ -33,10 +32,15 @@ import com.patzn.cloud.service.soil.enums.SoilEntrustStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum; import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum; 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.SoilEntrustVO;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO; import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
...@@ -63,6 +67,27 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -63,6 +67,27 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Autowired @Autowired
private ISoilSampleService soilSampleService; private ISoilSampleService soilSampleService;
@Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService;
@Autowired
private ISoilExpReportTemplateService soilExpReportTemplateService;
@Autowired
private ISoilExperimentService soilExperimentService;
@Autowired
private ISoilExpReportTemplateConfigService soilExpReportTemplateConfigService;
@Autowired
private ISoilOriginalTemplateConfigService soilOriginalTemplateConfigService;
@Autowired @Autowired
private ISoilEntrustService soilEntrustService; private ISoilEntrustService soilEntrustService;
...@@ -90,6 +115,10 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -90,6 +115,10 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Autowired @Autowired
private ISoilOriginalRecordService soilOriginalRecordService; private ISoilOriginalRecordService soilOriginalRecordService;
@Autowired
private ISoilExpReportService soilExpReportService;
@Override @Override
public Page<SoilExperiment> page(Page<SoilExperiment> page, SoilExperiment soilExperiment) { public Page<SoilExperiment> page(Page<SoilExperiment> page, SoilExperiment soilExperiment) {
Wrapper wrapper = new EntityWrapper<>(soilExperiment); Wrapper wrapper = new EntityWrapper<>(soilExperiment);
...@@ -169,6 +198,392 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -169,6 +198,392 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Override @Override
public SoilOriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择试验项目!");
RestAssert.fail(null == templateId,"请选择原始记录模板");
SoilOriginalTemplate template = soilOriginalTemplateService.getById(templateId);
if (null == template){
RestAssert.fail("模板不存在");
}
List<SoilExperimentVO> voList = soilExperimentService.listVOByIds(ids);
if (CollectionUtils.isEmpty(voList)){
return null;
}
SoilEntrust entrust = soilEntrustService.getById(voList.get(0).getEntrustId());
InputStream io = ossClient.download(template.getObjectKey());
if (null == io){
RestAssert.fail("模板不存在");
}
SoilOriginalRecord objectKey=null;
XSSFWorkbook xssfWorkbook= null;
try {
xssfWorkbook= new XSSFWorkbook(io);
}catch (Exception e){
logger.error("获取证书模板错误"+e.getMessage());
e.printStackTrace();
}
Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{projectName}",entrust.getProjectName());
mapReplace.put("#{client}",entrust.getClient());
mapReplace.put("#{boreholeName}",entrust.getBoreholeName());
mapReplace.put("#{projectNo}",entrust.getProjectNo());
replaceModel(mapReplace,xssfWorkbook,0);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
sheetOne.setForceFormulaRecalculation(true);
if (null != template.getSampleBeginRow()
&& null!=template.getSampleMergerNum()
&& null!=template.getTemplateSampleNum()){
List<SoilOriginalTemplateConfig> configList = soilOriginalTemplateConfigService.list(Condition.create().eq("template_id",templateId));
int templateSampleNum = template.getTemplateSampleNum();
if (voList.size()<templateSampleNum){
int beginRow = template.getSampleBeginRow();
int sampleMergerNum = template.getSampleMergerNum();
for (SoilExperimentVO vo:voList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (SoilOriginalTemplateConfig config:configList) {
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(config.getDataAttribute(),vo));
}
beginRow+=sampleMergerNum;
}
}else{
int beginRow = template.getSampleBeginRow();
int sampleMergerNum = template.getSampleMergerNum();
int insertRow = beginRow+sampleMergerNum*templateSampleNum;
XSSFRow zeroRow = sheetOne.getRow(beginRow);
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int lastCellNum = zeroRow.getLastCellNum();
int mergerB=insertRow;
int insertCount = voList.size()-templateSampleNum;
List<Integer> integerList = new ArrayList<>();
for (SoilOriginalTemplateConfig config:configList) {
Integer a = config.getMergeBegin();
Integer b = config.getMergeEnd();
if (null == a || b == null){
continue;
}
for (int i = a; i <= b ; i++) {
integerList.add(i) ;
}
}
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);
for (int j = 0; j < lastCellNum; j++) {
XSSFCell xssfCell = row.createCell(j);
xssfCell.setCellStyle(cellStyle);
}
insertRow++;
}
for (SoilOriginalTemplateConfig config:configList) {
if (null != config.getMergeRowNum()){
sheetOne.addMergedRegion(new CellRangeAddress(mergerB,mergerB+sampleMergerNum-1,config.getMergeBegin(),config.getMergeEnd()));
if (StringUtils.isNotBlank(config.getFormula())){
XSSFRow fRow = sheetOne.getRow(mergerB);
XSSFCell fCell = fRow.getCell(config.getColumnPlace());
String formula = config.getFormula();
fCell.setCellType(CellType.FORMULA);
formula = formula.replace("#{sn}",mergerB+"");
fCell.setCellFormula(formula);
}
}else{
for (int i = 0; i <sampleMergerNum ; i++) {
if (config.getMergeBegin()!=null && config.getMergeEnd()!=null && config.getMergeEnd()>config.getMergeBegin()){
sheetOne.addMergedRegion(new CellRangeAddress(mergerB+i,mergerB+i,config.getMergeBegin(),config.getMergeEnd()));
if (StringUtils.isNotBlank(config.getFormula())){
XSSFRow fRow = sheetOne.getRow(mergerB+i);
XSSFCell fCell = fRow.getCell(config.getColumnPlace());
String formula = config.getFormula();
formula = formula.replace("#{sn}",mergerB+i+"");
fCell.setCellFormula(formula);
}
}else{
}
}
}
}
mergerB = mergerB+sampleMergerNum;
}
int sn = 1;
for (SoilExperimentVO vo:voList) {
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));
}
if (StringUtils.isNotBlank(config.getFormula())&&null !=config.getColumnPlace()){
String formula = config.getFormula();
formula = formula.replace("#{sn}",(beginRow+1)+"");
cell.setCellFormula(formula);
}
}
beginRow+=sampleMergerNum;
sn++;
}
}
}
FileOutputStream os = null;
File file = null;
String generated="原始记录";
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
objectKey= soilOriginalRecordService.uploadExpGenerate(ids,template,entrust, account, "原始记录生成", file);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
xssfWorkbook.close();
io.close();
FileUtils.deleteFiles(file);
} catch (Exception e) {
e.printStackTrace();
}
}
return objectKey;
}
@Override
public SoilExpReport saveExcelExpReport(String expName, Long entrustId, Long[] ids, Long templateId, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择试验项目!");
RestAssert.fail(StringUtils.isBlank(expName),"试验项目不能为空");
RestAssert.fail(null == templateId,"报告模板不能为空");
RestAssert.fail(null == entrustId,"委托ID不能为空");
SoilExpReportTemplate template = soilExpReportTemplateService.getById(templateId);
RestAssert.fail(null == template,"报告模板不能为空");
SoilEntrust entrust = soilEntrustService.getById(entrustId);
RestAssert.fail(null ==entrust,"委托单不存在");
List<SoilExperimentVO> expVOList = soilExperimentService.listVOByIds(ids);
if (CollectionUtils.isEmpty(expVOList)){
RestAssert.fail("试验项目不存在");
}
InputStream io = ossClient.download(template.getObjectKey());
RestAssert.fail(null == io,"模板不存在");
SoilExpReport objectKey=null;
XSSFWorkbook xssfWorkbook= null;
try {
xssfWorkbook= new XSSFWorkbook(io);
}catch (Exception e){
logger.error("获取报告模板错误"+e.getMessage());
e.printStackTrace();
}
Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{projectName}",StringHandleUtils.getString(entrust.getProjectName()));
mapReplace.put("#{client}",StringHandleUtils.getString(entrust.getClient()));
replaceModel(mapReplace,xssfWorkbook,0);
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
Integer templateSampleNum = template.getTemplateSampleNum();
Integer sampleBeginRow = template.getSampleBeginRow();
Integer dataTotalRow = template.getDataTotalRow();
Integer totalColumn = template.getTotalColumn();
if (null != templateSampleNum &&
null != sampleBeginRow &&
null !=dataTotalRow && null!=totalColumn
){
List<SoilExpReportTemplateConfig> configList = soilExpReportTemplateConfigService.list(Condition.create().eq("template_id",templateId));
if (expVOList.size()<templateSampleNum){
int rowBegin = sampleBeginRow;
for (SoilExperimentVO vo:expVOList) {
XSSFRow row = xssfSheet.getRow(rowBegin);
for (SoilExpReportTemplateConfig config:configList) {
XSSFCell cell = row.getCell(config.getColumnPlace());
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(config.getDataAttribute(),vo));
}
rowBegin+=dataTotalRow;
}
}else{
int insertRowNum = expVOList.size() - templateSampleNum;
int insertBegin = sampleBeginRow+templateSampleNum*dataTotalRow;
XSSFRow zeroRow = xssfSheet.getRow(sampleBeginRow);
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int sn = template.getTemplateSampleNum()+1;
int mergerB=insertBegin;
List<Integer> integerList = new ArrayList<>();
for (SoilExpReportTemplateConfig config:configList) {
int a = config.getMergeBegin();
int b = config.getMergeEnd();
for (int i = a; i <= b ; i++) {
integerList.add(i) ;
}
}
for (int i = 0; i < insertRowNum; i++) {
for (int j = 0; j < dataTotalRow; j++) {
xssfSheet.shiftRows(insertBegin, xssfSheet.getLastRowNum(), 1,true,false);
XSSFRow xssfRow = xssfSheet.createRow(insertBegin);
for (int k = 0; k < totalColumn; k++) {
XSSFCell xssfCell = xssfRow.createCell(k);
xssfCell.setCellStyle(cellStyle);
if (j==0&&k==0){
xssfCell.setCellValue(sn);
}
}
insertBegin++;
}
for (int j = 0; j < totalColumn; j++) {
if (!integerList.contains(j)){
xssfSheet.addMergedRegion(new CellRangeAddress(mergerB,mergerB+dataTotalRow-1,j,j));
}
}
for (SoilExpReportTemplateConfig config:configList) {
xssfSheet.addMergedRegion(new CellRangeAddress(mergerB,mergerB+dataTotalRow-1,config.getMergeBegin(),config.getMergeEnd()));
}
mergerB = mergerB+dataTotalRow;
sn++;
}
int rowBegin = sampleBeginRow;
for (SoilExperimentVO vo:expVOList) {
XSSFRow row = xssfSheet.getRow(rowBegin);
for (SoilExpReportTemplateConfig config:configList) {
XSSFCell cell = row.getCell(config.getColumnPlace());
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(config.getDataAttribute(),vo));
}
rowBegin+=dataTotalRow;
}
}
}
FileOutputStream os = null;
File file = null;
String generated="试验项目报告";
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
objectKey= soilExpReportService.uploadExpReportGenerate(ids,template,entrust,expName, account, "报告生成", file);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
xssfWorkbook.close();
io.close();
FileUtils.deleteFiles(file);
} catch (Exception e) {
e.printStackTrace();
}
}
return objectKey;
}
public static XSSFWorkbook replaceModel(Map item, XSSFWorkbook wb,int index) {
try {
XSSFSheet sheet = wb.getSheetAt(index);
Iterator rows = sheet.rowIterator();
while(rows.hasNext()){
XSSFRow row = (XSSFRow) rows.next();
if(row!=null) {
int num = row.getLastCellNum();
for(int i=0;i<num;i++) {
XSSFCell cell= row.getCell(i);
if(cell!=null) {
cell.setCellType(CellType.STRING);
}
if(cell==null || cell.getStringCellValue()==null) {
continue;
}
String value= cell.getStringCellValue();
if(!"".equals(value)) {
Set<String> keySet = item.keySet();
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
String text = it.next();
if(value.equalsIgnoreCase(text)) {
cell.setCellValue((String)item.get(text));
break;
}
}
} else {
cell.setCellValue("");
}
}
}
}
// 输出文件
} catch (Exception e) {
e.printStackTrace();
}
return wb;
}
@Override
public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) { public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) {
return page.setRecords(initOriginalRecord(baseMapper.selectListBySampleIds(page,sampleIds,vo))); return page.setRecords(initOriginalRecord(baseMapper.selectListBySampleIds(page,sampleIds,vo)));
} }
...@@ -536,16 +951,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -536,16 +951,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
originalIds.add(expRelOriginalRecord.getRecordId()); originalIds.add(expRelOriginalRecord.getRecordId());
} }
List<SoilOriginalRecord> soilOriginalRecordList = soilOriginalRecordService.list(Condition.create().in("id",originalIds)); List<SoilOriginalRecord> soilOriginalRecordList = soilOriginalRecordService.list(Condition.create().in("id",originalIds));
Map<Long, Long> mapSoilOriginalRecord =new HashMap<>(); Map<Long, SoilOriginalRecord> mapSoilOriginalRecord =new HashMap<>();
for (SoilOriginalRecord originalRecord:soilOriginalRecordList) { for (SoilOriginalRecord originalRecord:soilOriginalRecordList) {
mapSoilOriginalRecord.put(originalRecord.getId(),originalRecord.getOriginalRecordId()); mapSoilOriginalRecord.put(originalRecord.getId(),originalRecord);
} }
for (SoilExperimentVO vo:voList) { for (SoilExperimentVO vo:voList) {
if (null == map.get(vo.getId())){ if (null == map.get(vo.getId())){
vo.setRecorded("否"); vo.setRecorded("否");
}else{ }else{
vo.setRecorded("是"); vo.setRecorded("是");
vo.setRecordId(mapSoilOriginalRecord.get(map.get(vo.getId()))); SoilOriginalRecord soilOriginalRecord = mapSoilOriginalRecord.get(map.get(vo.getId()));
if (null != soilOriginalRecord){
vo.setRecordId(soilOriginalRecord.getOriginalRecordId());
vo.setObjectKey(soilOriginalRecord.getObjectKey());
}
} }
} }
return voList; return voList;
......
...@@ -6,6 +6,7 @@ import com.patzn.cloud.service.soil.entity.SoilItem; ...@@ -6,6 +6,7 @@ import com.patzn.cloud.service.soil.entity.SoilItem;
import com.patzn.cloud.service.lims.soil.mapper.SoilItemMapper; import com.patzn.cloud.service.lims.soil.mapper.SoilItemMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilItemService; import com.patzn.cloud.service.lims.soil.service.ISoilItemService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.vo.SoilItemVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
...@@ -35,4 +36,9 @@ public class SoilItemServiceImpl extends BaseServiceImpl<SoilItemMapper, SoilIte ...@@ -35,4 +36,9 @@ public class SoilItemServiceImpl extends BaseServiceImpl<SoilItemMapper, SoilIte
public List<SoilItem> list(SoilItem soilItem) { public List<SoilItem> list(SoilItem soilItem) {
return this.list(new EntityWrapper<>(soilItem)); return this.list(new EntityWrapper<>(soilItem));
} }
@Override
public List<SoilItemVO> listVOByExpIds(List<Long> expIdsList) {
return baseMapper.listVOByExpIds(expIdsList);
}
} }
package com.patzn.cloud.service.lims.soil.service.impl; package com.patzn.cloud.service.lims.soil.service.impl;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -10,6 +11,8 @@ import com.patzn.cloud.commons.api.RestAssert; ...@@ -10,6 +11,8 @@ 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.feign.lims.print.client.ElnFormClient; import com.patzn.cloud.feign.lims.print.client.ElnFormClient;
import com.patzn.cloud.feign.lims.print.client.ElnTemplateClient; import com.patzn.cloud.feign.lims.print.client.ElnTemplateClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.eln.entity.ElnForm; import com.patzn.cloud.service.eln.entity.ElnForm;
import com.patzn.cloud.service.eln.entity.ElnTemplate; import com.patzn.cloud.service.eln.entity.ElnTemplate;
import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalRecordMapper; import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalRecordMapper;
...@@ -17,9 +20,7 @@ import com.patzn.cloud.service.lims.soil.service.ISoilExpRelOriginalRecordServic ...@@ -17,9 +20,7 @@ import com.patzn.cloud.service.lims.soil.service.ISoilExpRelOriginalRecordServic
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService; import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalRecordService; import com.patzn.cloud.service.lims.soil.service.ISoilOriginalRecordService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilExpRelOriginalRecord; import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.soil.entity.SoilExperiment;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO; import com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -53,6 +54,11 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR ...@@ -53,6 +54,11 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
private ISoilExpRelOriginalRecordService soilExpRelOriginalRecordService; private ISoilExpRelOriginalRecordService soilExpRelOriginalRecordService;
@Autowired
private OssClient ossClient;
@Override @Override
public Page<SoilOriginalRecord> page(Page<SoilOriginalRecord> page, SoilOriginalRecord soilOriginalRecord) { public Page<SoilOriginalRecord> page(Page<SoilOriginalRecord> page, SoilOriginalRecord soilOriginalRecord) {
Wrapper wrapper = new EntityWrapper<>(soilOriginalRecord); Wrapper wrapper = new EntityWrapper<>(soilOriginalRecord);
...@@ -133,4 +139,51 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR ...@@ -133,4 +139,51 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
} }
return true; return true;
} }
@Override
public SoilOriginalRecord uploadExpGenerate(Long[] ids, SoilOriginalTemplate template, SoilEntrust entrust, Account account, String remark, File file) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择试验项目");
RestAssert.fail(null == entrust.getId(), "试验委托单ID不能为空");
SoilOriginalRecord soilOriginalRecord = new SoilOriginalRecord();
soilOriginalRecord.setEntrustId(entrust.getId());
soilOriginalRecord.setTemplateId(template.getId());
soilOriginalRecord.setTitle(template.getName());
soilOriginalRecord.setRemark(remark);
soilOriginalRecord.setUname(account.getUserName());
OssFileResult obsFileResult = ossClient.upload(file);
if (null == obsFileResult) {
return null;
}
soilOriginalRecord.setObjectKey(obsFileResult.getObjectKey());
if (save(soilOriginalRecord)){
List<SoilExpRelOriginalRecord> saveList = new ArrayList<>();
for (Long id:ids) {
SoilExpRelOriginalRecord relOriginalRecord = new SoilExpRelOriginalRecord();
relOriginalRecord.setExpId(id);
relOriginalRecord.setRecordId(soilOriginalRecord.getId());
saveList.add(relOriginalRecord);
}
if (CollectionUtils.isNotEmpty(saveList)){
soilExpRelOriginalRecordService.saveBatch(saveList);
}
}
return soilOriginalRecord;
}
@Override
public SoilOriginalRecord getExcelOriginalRecord(Long expId) {
if (null == expId){
RestAssert.fail("原始记录不存在");
}
List<SoilExpRelOriginalRecord> recordList = soilExpRelOriginalRecordService.list(Condition.create().eq("exp_id",expId));
if (CollectionUtils.isEmpty(recordList)){
RestAssert.fail("原始记录不存在");
}
return getById(recordList.get(0).getRecordId());
}
} }
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateConfigMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateConfigService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig;
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.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2020-12-16
*/
@Service
public class SoilOriginalTemplateConfigServiceImpl extends BaseServiceImpl<SoilOriginalTemplateConfigMapper, SoilOriginalTemplateConfig> implements ISoilOriginalTemplateConfigService {
@Override
public Page<SoilOriginalTemplateConfig> page(Page<SoilOriginalTemplateConfig> page, SoilOriginalTemplateConfig soilOriginalTemplateConfig) {
Wrapper wrapper = new EntityWrapper<>(soilOriginalTemplateConfig);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
package com.patzn.cloud.service.lims.soil.service.impl; package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.oss.starter.OssClient; import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult; import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.lims.handler.ItemCollectEntity;
import com.patzn.cloud.service.lims.handler.SoilItemCollectData;
import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateMapper; import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateService; import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateVersionService; import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate; import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateVersion; import com.patzn.cloud.service.soil.vo.SoilItemVO;
import com.patzn.poibox.xwpf.HSSFWorkbookUtil;
import org.apache.bcel.generic.IF_ACMPEQ;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
...@@ -19,9 +27,10 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -19,9 +27,10 @@ import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Date; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
/** /**
* 模板文件表 服务实现类 * 模板文件表 服务实现类
...@@ -36,7 +45,28 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina ...@@ -36,7 +45,28 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
private OssClient ossClient; private OssClient ossClient;
@Autowired @Autowired
private ISoilOriginalTemplateVersionService soilOriginalTemplateVersionService; private ISoilOriginalTemplateVersionService soilOriginalTemplateVersionService;
@Autowired
private ISoilOriginalRecordService soilOriginalRecordService;
@Autowired
private ISoilExpRelOriginalRecordService soilExpRelOriginalRecordService;
@Autowired
private ISoilExperimentService soilExperimentService;
@Autowired
private ISoilItemService soilItemService;
@Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService;
@Autowired
private ISoilOriginalTemplateConfigService soilOriginalTemplateConfigService;
@Autowired
private ISoilExpReportTemplateService soilExpReportTemplateService;
@Autowired
private ISoilExpReportTemplateVersionService soilExpReportTemplateVersionService;
@Override @Override
public Page<SoilOriginalTemplate> page(Page<SoilOriginalTemplate> page, SoilOriginalTemplate soilOriginalTemplate) { public Page<SoilOriginalTemplate> page(Page<SoilOriginalTemplate> page, SoilOriginalTemplate soilOriginalTemplate) {
...@@ -65,9 +95,9 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina ...@@ -65,9 +95,9 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
} }
@Override @Override
public boolean uploadTemplate(MultipartFile file, String classType, String remark, String alias) { public boolean uploadTemplate(MultipartFile file, String classType, String name, String remark) {
RestAssert.fail(StringUtils.isBlank(classType),"模板类别不能为空"); RestAssert.fail(StringUtils.isBlank(classType),"模板类别不能为空");
RestAssert.fail(StringUtils.isBlank(alias),"请填写别名"); RestAssert.fail(StringUtils.isBlank(name),"请填写原始记录名称");
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
RestAssert.fail(StringUtils.isBlank(fileName), "请上传文件"); RestAssert.fail(StringUtils.isBlank(fileName), "请上传文件");
SoilOriginalTemplate attachment = new SoilOriginalTemplate(); SoilOriginalTemplate attachment = new SoilOriginalTemplate();
...@@ -75,7 +105,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina ...@@ -75,7 +105,7 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
if (null == result) { if (null == result) {
return false; return false;
} }
attachment.setAlias(alias); attachment.setAlias(name);
attachment.setRemark(remark); attachment.setRemark(remark);
attachment.setClassType(classType); attachment.setClassType(classType);
attachment.setBucketName(result.getBucketName()); attachment.setBucketName(result.getBucketName());
...@@ -132,11 +162,255 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina ...@@ -132,11 +162,255 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
return false; return false;
} }
@Override @Override
public boolean editReport(String someParam, OssFileResult obsFileResult) { public boolean editExpReportTemplate(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam),"业务ID不能为空");
RestAssert.fail(null==obsFileResult,"OssFileResult不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getObjectKey()),"ObjectKey不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getVersionId()),"VersionId不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getType()),"Type不能为空");
RestAssert.fail(StringUtils.isBlank(someParam) || 4 != someParam.split("&").length, "参数传递有误");
String[] arr = someParam.split("&");
Long businessId = Long.parseLong(arr[0]);
String userName = null;
try {
userName = java.net.URLDecoder.decode(arr[2], "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Long userId = Long.parseLong(arr[1]);
Long companyId = Long.parseLong(arr[3]);
SoilExpReportTemplate template = soilExpReportTemplateService.getById(businessId);
if (null == template){
RestAssert.fail("数据有误");
}
SoilExpReportTemplateVersion templateVersion = new SoilExpReportTemplateVersion();
templateVersion.setTemplateId(template.getId());
templateVersion.setAlias(template.getAlias());
templateVersion.setBucketName(template.getBucketName());
templateVersion.setName(template.getName());
templateVersion.setObjectKey(template.getObjectKey());
templateVersion.setType(template.getType());
templateVersion.setUid(userId);
templateVersion.setCtime(new Date());
templateVersion.setCompanyId(companyId);
templateVersion.setVersionId(template.getVersionId());
if (soilExpReportTemplateVersionService.save(templateVersion)){
SoilExpReportTemplate updateTemplate=new SoilExpReportTemplate();
updateTemplate.setObjectKey(obsFileResult.getObjectKey());
updateTemplate.setVersionId(obsFileResult.getVersionId());
updateTemplate.setType(obsFileResult.getType());
updateTemplate.setId(businessId);
return soilExpReportTemplateService.updateById(updateTemplate);
}
return false; return false;
} }
@Override
public boolean editReport(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam),"业务ID不能为空");
RestAssert.fail(null==obsFileResult,"OssFileResult不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getObjectKey()),"ObjectKey不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getVersionId()),"VersionId不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getType()),"Type不能为空");
RestAssert.fail(StringUtils.isBlank(someParam) || 4 != someParam.split("&").length, "参数传递有误");
String[] arr = someParam.split("&");
Long businessId = Long.parseLong(arr[0]);
String userName = null;
try {
userName = java.net.URLDecoder.decode(arr[2], "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Long userId = Long.parseLong(arr[1]);
Long companyId = Long.parseLong(arr[3]);
SoilOriginalRecord report = soilOriginalRecordService.getById(businessId);
if (null == report){
RestAssert.fail("数据有误");
}
SoilOriginalRecord originalRecord = new SoilOriginalRecord();
originalRecord.setId(businessId);
originalRecord.setObjectKey(obsFileResult.getObjectKey());
soilOriginalRecordService.updateById(originalRecord);
InputStream io = ossClient.download(obsFileResult.getObjectKey());
//结果回调
XSSFWorkbook xssfWorkbook=null;
try {
xssfWorkbook = new XSSFWorkbook(io);
} catch (Exception e1) {
e1.printStackTrace();
return false;
}
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
if (null == report.getTemplateId()){
return true;
}
SoilOriginalTemplate template = soilOriginalTemplateService.getById(report.getTemplateId());
if (null == template){
return true;
}
int sampleBeginRow = template.getSampleBeginRow();
int sampleMergerNum = template.getSampleMergerNum();
int lastRowNum = sheet.getLastRowNum();
List<SoilOriginalTemplateConfig> configList = soilOriginalTemplateConfigService.list(Condition.create().eq("template_id",template.getId()));
Integer sampleCol = null ;
for (SoilOriginalTemplateConfig config:configList) {
if ("sampleCode".equals(config.getDataAttribute())){
sampleCol = config.getColumnPlace();
break;
}
}
if (sampleCol == null) {
return true;
}
List<ItemCollectEntity> collectEntitiesList = new ArrayList<>();
for (SoilOriginalTemplateConfig config:configList) {
if (StringUtils.isBlank(config.getAttributeName())){
continue;
}
if (null ==config.getColumnPlace()){
continue;
}
if (null != config.getItemed() && config.getItemed() ==1){
ItemCollectEntity collectEntity = new ItemCollectEntity();
collectEntity.setItemName(config.getAttributeName());
collectEntity.setColumnPlace(config.getColumnPlace());
collectEntity.setUnit(config.getUnit());
collectEntitiesList.add(collectEntity);
}
}
if (CollectionUtils.isEmpty(collectEntitiesList)){
return true;
}
List<SoilItemCollectData> soilItemList = new ArrayList<>();
for (int i = sampleBeginRow;i<lastRowNum;i+=sampleMergerNum) {
XSSFRow xssfRow = sheet.getRow(i);
XSSFCell sampleCodeCell = xssfRow.getCell(sampleCol);
String sampleCode = HSSFWorkbookUtil.getJavaValue(sampleCodeCell).toString();
for (ItemCollectEntity collectEntity:collectEntitiesList) {
XSSFCell itemCell = xssfRow.getCell(collectEntity.getColumnPlace());
String value = HSSFWorkbookUtil.getJavaValue(itemCell).toString();
String itemName = collectEntity.getItemName();
if (StringUtils.isBlank(value)){
continue;
}
SoilItemCollectData soilItemCollectData = new SoilItemCollectData();
soilItemCollectData.setItemName(itemName);
soilItemCollectData.setTestValue(value);
soilItemCollectData.setSampleCode(sampleCode);
soilItemCollectData.setUnit(collectEntity.getUnit());
soilItemList.add(soilItemCollectData);
}
}
if (CollectionUtils.isEmpty(soilItemList)){
return true;
}
List<SoilExpRelOriginalRecord> relOriginalRecordList = soilExpRelOriginalRecordService.list(Condition.create().eq("record_id",report.getId()));
if (CollectionUtils.isEmpty(relOriginalRecordList)){
return true;
}
List<Long> expIdsList = relOriginalRecordList.stream().map(r->{
return r.getExpId();
}).collect(Collectors.toList());
List<SoilExperimentVO> experimentVOList = soilExperimentService.listVOByIds(expIdsList);
Map<String,SoilExperiment> experimentMap = new HashMap<>();
for (SoilExperimentVO soilExperimentVO:experimentVOList) {
experimentMap.put(soilExperimentVO.getSampleCode(),soilExperimentVO);
}
List<SoilItemVO> indexList = soilItemService.listVOByExpIds(expIdsList);
Map<String,Long> stringMap = new HashMap<>();
for (SoilItemVO soilItemVO:indexList) {
stringMap.put(soilItemVO.getSampleCode()+soilItemVO.getExperimentId()+soilItemVO.getName(),soilItemVO.getId());
}
List<SoilItem> saveList = new ArrayList<>();
List<SoilItem> updateList = new ArrayList<>();
for (SoilItemCollectData soilItemCollectData:soilItemList) {
SoilExperiment exp = experimentMap.get(soilItemCollectData.getSampleCode());
if (null!=exp){
soilItemCollectData.setExpId(exp.getId());
}
if (StringUtils.isBlank(soilItemCollectData.getItemName())){
continue;
}
if (StringUtils.isBlank(soilItemCollectData.getTestValue())){
continue;
}
if ("#VALUE!".equals(soilItemCollectData.getTestValue())){
continue;
}
if ("#NAME?".equals(soilItemCollectData.getTestValue())){
continue;
}
if (StringUtils.isBlank(soilItemCollectData.getSampleCode())){
continue;
}
String key= soilItemCollectData.getSampleCode()+soilItemCollectData.getExpId()+soilItemCollectData.getItemName();
if (!stringMap.containsKey(key)){
SoilItem soilItem = new SoilItem();
soilItem.setExperimentId(soilItemCollectData.getExpId());
soilItem.setName(soilItemCollectData.getItemName());
soilItem.setTestValue(soilItemCollectData.getTestValue());
soilItem.setUnit(soilItemCollectData.getUnit());
soilItem.setStatus(0);
soilItem.setProgress(0);
soilItem.setCompanyId(companyId);
soilItem.setUid(userId);
saveList.add(soilItem);
}else{
SoilItem soilItem = new SoilItem();
soilItem.setTestValue(soilItemCollectData.getTestValue());
soilItem.setUnit(soilItemCollectData.getUnit());
soilItem.setId(stringMap.get(soilItemCollectData.getSampleCode()+soilItemCollectData.getExpId()+soilItemCollectData.getItemName()));
updateList.add(soilItem);
}
}
if (CollectionUtils.isNotEmpty(saveList)){
soilItemService.saveBatch(saveList);
}
if (CollectionUtils.isNotEmpty(updateList)){
soilItemService.updateBatchById(updateList);
}
return true;
}
@Override @Override
public void downloadFile(Long id, HttpServletResponse response) { public void downloadFile(Long id, HttpServletResponse response) {
SoilOriginalTemplate attachment = super.getById(id); SoilOriginalTemplate attachment = super.getById(id);
......
...@@ -112,6 +112,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -112,6 +112,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
SoilEntrust entrust = soilEntrustService.getById(entrustId); SoilEntrust entrust = soilEntrustService.getById(entrustId);
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("client",entrust.getClient()); map.put("client",entrust.getClient());
map.put("projectName",entrust.getProjectName());
map.put("boreholeName",entrust.getBoreholeName()); map.put("boreholeName",entrust.getBoreholeName());
map.put("entrustCode",entrust.getEntrustCode()); map.put("entrustCode",entrust.getEntrustCode());
List<SoilExperimentVO> experimentVOList = soilExperimentService.listVOByIds(expIds); List<SoilExperimentVO> experimentVOList = soilExperimentService.listVOByIds(expIds);
......
...@@ -13,7 +13,7 @@ spring: ...@@ -13,7 +13,7 @@ spring:
# url: jdbc:postgresql://localhost:5432/dev_lims_meter # url: jdbc:postgresql://localhost:5432/dev_lims_meter
username: dbmeter username: dbmeter
password: sfdWrE39&d!Pt password: sfdWrE39&d!Pt
url: jdbc:postgresql://139.9.144.39:5432/pertest_lims_meter url: jdbc:postgresql://139.9.144.39:5432/pertest_lims_soil
driver-class-name: org.postgresql.Driver driver-class-name: org.postgresql.Driver
dynamic: dynamic:
enabled: false enabled: false
......
<?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.SoilExpReportMapper">
</mapper>
<?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.SoilExpReportTemplateConfigMapper">
</mapper>
<?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.SoilExpReportTemplateMapper">
</mapper>
<?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.SoilExpReportTemplateVersionMapper">
</mapper>
...@@ -160,6 +160,11 @@ ...@@ -160,6 +160,11 @@
AND t.status = #{vo.status} AND t.status = #{vo.status}
</if> </if>
<if test="vo.sampleCode!=null">
AND s.sample_code LIKE CONCAT('%',#{vo.sampleCode},'%')
</if>
<if test="null!=vo.statusList"> <if test="null!=vo.statusList">
AND t.status IN AND t.status IN
<foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")"> <foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")">
...@@ -229,7 +234,7 @@ ...@@ -229,7 +234,7 @@
<select id="selectListVOByIds" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO"> <select id="selectListVOByIds" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT t.id,s.sample_code,s.site_no,s.sample_depth,e.entrust_code FROM soil_experiment t SELECT t.id,s.sample_code,s.site_no,s.sample_depth,s.sample_pack,e.entrust_code,e.id AS "entrustId",e.borehole_name FROM soil_experiment t
JOIN soil_sample s ON t.sample_id = s.id JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id JOIN soil_entrust e ON s.entrust_id = e.id
......
...@@ -2,4 +2,18 @@ ...@@ -2,4 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.SoilItemMapper"> <mapper namespace="com.patzn.cloud.service.lims.soil.mapper.SoilItemMapper">
<select id="listVOByExpIds" resultType="com.patzn.cloud.service.soil.vo.SoilItemVO">
SELECT i.id,i.name,i.experiment_id,s.sample_code FROM soil_item i JOIN
soil_experiment t ON i.experiment_id = t.id
JOIN soil_sample s ON t.sample_id = s.id
WHERE i.deleted =0 AND t.deleted = 0 AND s.deleted = 0
AND t.id IN
<foreach collection="expIds" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper> </mapper>
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.SoilOriginalRecordMapper"> <mapper namespace="com.patzn.cloud.service.lims.soil.mapper.SoilOriginalRecordMapper">
<select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO"> <select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO">
SELECT r.id,r.original_record_id,r.title,r.ctime,r.uname,r.remark,e.entrust_code FROM soil_original_record r SELECT r.id,r.original_record_id,r.title,r.ctime,r.uname,r.remark,e.entrust_code,r.object_key FROM soil_original_record r
JOIN soil_entrust e ON r.entrust_id = e.id JOIN soil_entrust e ON r.entrust_id = e.id
WHERE r.deleted = 0 AND e.deleted = 0 WHERE r.deleted = 0 AND e.deleted = 0
<if test="vo.entrustId!=null"> <if test="vo.entrustId!=null">
......
<?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.SoilOriginalTemplateConfigMapper">
</mapper>
INSERT INTO "public"."sys_resource"("id", "system_id", "pid", "name", "type", "code", "uri", "icon", "remark", "status", "sort", "ctime", "ename") VALUES (1319213776520548354, 1304006677087891457, 1304245208477577218, '报告档案', 0, 'report_manage', '/soil/report/report_manage', 'pt-config', NULL, 1, 1, '2020-10-22 17:47:28.787', NULL);
INSERT INTO "public"."sys_resource"("id", "system_id", "pid", "name", "type", "code", "uri", "icon", "remark", "status", "sort", "ctime", "ename") VALUES (1319213776520548354, 1304006677087891457, 1304245208477577218, '报告档案', 0, 'report_manage', '/soil/report/report_manage', 'pt-config', NULL, 1, 1, '2020-10-22 17:47:28.787', NULL);
INSERT INTO "public"."sys_resource"("id", "system_id", "pid", "name", "type", "code", "uri", "icon", "remark", "status", "sort", "ctime", "ename") VALUES (1338658190481367041, 1304006677087891457, 1304245208477577218, '试验项目报告模板', 0, 'item_report', '/soil/report/item_report', 'pt-config', NULL, 1, 1, '2020-12-15 09:32:38.339', NULL);
CREATE TABLE "public"."soil_original_template" (
CREATE TABLE "public"."soil_original_template" (
"id" int8 NOT NULL DEFAULT NULL,
"company_id" int8 NOT NULL DEFAULT NULL,
"name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"alias" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"bucket_name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"object_key" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"version_id" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"type" varchar(30) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"uid" int8 NOT NULL DEFAULT NULL,
"ctime" timestamp(0) NOT NULL DEFAULT NULL::timestamp without time zone,
"classify_id" int8 DEFAULT NULL,
"service" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"sort" int2 NOT NULL DEFAULT 0,
"class_type" varchar(120) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"remark" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"sample_begin_row" int2 DEFAULT NULL,
"sample_begin_col" int2 DEFAULT NULL,
"sample_merger_num" int2 DEFAULT NULL,
"template_sample_num" int2 DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_original_template"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_original_template"."company_id" IS '企业 ID';
COMMENT ON COLUMN "public"."soil_original_template"."name" IS '名称';
COMMENT ON COLUMN "public"."soil_original_template"."alias" IS '别名';
COMMENT ON COLUMN "public"."soil_original_template"."bucket_name" IS '桶名称';
COMMENT ON COLUMN "public"."soil_original_template"."object_key" IS '对象key';
COMMENT ON COLUMN "public"."soil_original_template"."version_id" IS '版本';
COMMENT ON COLUMN "public"."soil_original_template"."type" IS '类型';
COMMENT ON COLUMN "public"."soil_original_template"."uid" IS '用户 ID';
COMMENT ON COLUMN "public"."soil_original_template"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_original_template"."classify_id" IS '分类 ID';
COMMENT ON COLUMN "public"."soil_original_template"."service" IS '服务名';
COMMENT ON COLUMN "public"."soil_original_template"."sort" IS '排序';
COMMENT ON COLUMN "public"."soil_original_template"."class_type" IS '类别';
COMMENT ON COLUMN "public"."soil_original_template"."remark" IS '备注';
COMMENT ON COLUMN "public"."soil_original_template"."sample_begin_row" IS '样品开始行';
COMMENT ON COLUMN "public"."soil_original_template"."sample_begin_col" IS '样品开始列';
COMMENT ON COLUMN "public"."soil_original_template"."sample_merger_num" IS '样品合并数';
COMMENT ON COLUMN "public"."soil_original_template"."template_sample_num" IS '模板样品数量';
COMMENT ON TABLE "public"."soil_original_template" IS '模板文件表';
CREATE TABLE "public"."soil_original_template_config" (
"id" int8 NOT NULL DEFAULT NULL,
"attribute_name" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"data_attribute" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"column_place" int2 DEFAULT NULL,
"template_id" int8 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,
"merge_begin" int2 DEFAULT NULL,
"merge_end" int2 DEFAULT NULL,
"merge_row_num" int2 DEFAULT NULL,
"formula" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL,
"itemed" int2 DEFAULT NULL,
"unit" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_original_template_config"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_original_template_config"."attribute_name" IS '属性名称';
COMMENT ON COLUMN "public"."soil_original_template_config"."data_attribute" IS '属性';
COMMENT ON COLUMN "public"."soil_original_template_config"."column_place" IS '列位置';
COMMENT ON COLUMN "public"."soil_original_template_config"."template_id" IS '试验项目模板ID';
COMMENT ON COLUMN "public"."soil_original_template_config"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."soil_original_template_config"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."soil_original_template_config"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."soil_original_template_config"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_original_template_config"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."soil_original_template_config"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."soil_original_template_config"."merge_begin" IS '合并开始列';
COMMENT ON COLUMN "public"."soil_original_template_config"."merge_end" IS '合并结束列';
COMMENT ON COLUMN "public"."soil_original_template_config"."merge_row_num" IS '合并行数';
COMMENT ON COLUMN "public"."soil_original_template_config"."formula" IS '原始记录公式';
COMMENT ON COLUMN "public"."soil_original_template_config"."itemed" IS '是否是项目指标';
COMMENT ON COLUMN "public"."soil_original_template_config"."unit" IS '单位';
CREATE TABLE "public"."soil_original_template_version" (
"id" int8 NOT NULL DEFAULT NULL,
"company_id" int8 NOT NULL DEFAULT NULL,
"name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"alias" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"bucket_name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"object_key" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"version_id" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"type" varchar(30) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"uid" int8 NOT NULL DEFAULT NULL,
"ctime" timestamp(0) NOT NULL DEFAULT NULL::timestamp without time zone,
"template_id" int8 NOT NULL DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_original_template_version"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_original_template_version"."company_id" IS '企业 ID';
COMMENT ON COLUMN "public"."soil_original_template_version"."name" IS '名称';
COMMENT ON COLUMN "public"."soil_original_template_version"."alias" IS '别名';
COMMENT ON COLUMN "public"."soil_original_template_version"."bucket_name" IS '桶名称';
COMMENT ON COLUMN "public"."soil_original_template_version"."object_key" IS '对象key';
COMMENT ON COLUMN "public"."soil_original_template_version"."version_id" IS '版本';
COMMENT ON COLUMN "public"."soil_original_template_version"."type" IS '类型';
COMMENT ON COLUMN "public"."soil_original_template_version"."uid" IS '用户 ID';
COMMENT ON COLUMN "public"."soil_original_template_version"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_original_template_version"."template_id" IS '模板ID';
COMMENT ON TABLE "public"."soil_original_template_version" IS '模板文件历史表';
-- ----------------------------
-- Primary Key structure for table soil_original_template
-- ----------------------------
ALTER TABLE "public"."soil_original_template" ADD CONSTRAINT "sys_file_template_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Primary Key structure for table soil_original_template_version
-- ----------------------------
ALTER TABLE "public"."soil_original_template_version" ADD CONSTRAINT "meter_file_template_version_pkey" PRIMARY KEY ("id");
CREATE TABLE "public"."soil_exp_report" (
"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,
"exp_name" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_exp_report"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_exp_report"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."soil_exp_report"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."soil_exp_report"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."soil_exp_report"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_exp_report"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."soil_exp_report"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."soil_exp_report"."entrust_id" IS '样品id';
COMMENT ON COLUMN "public"."soil_exp_report"."version" IS '版本';
COMMENT ON COLUMN "public"."soil_exp_report"."uri" IS '证书地址';
COMMENT ON COLUMN "public"."soil_exp_report"."remark" IS '备注';
COMMENT ON COLUMN "public"."soil_exp_report"."bucket_name" IS '桶名称';
COMMENT ON COLUMN "public"."soil_exp_report"."object_key" IS '对象key';
COMMENT ON COLUMN "public"."soil_exp_report"."version_id" IS '版本';
COMMENT ON COLUMN "public"."soil_exp_report"."pdf_object_key" IS 'pdf对象key';
COMMENT ON COLUMN "public"."soil_exp_report"."uname" IS '修改人';
COMMENT ON COLUMN "public"."soil_exp_report"."exp_name" IS '试验项目ID';
CREATE TABLE "public"."soil_exp_report_template" (
"id" int8 NOT NULL DEFAULT NULL,
"company_id" int8 NOT NULL DEFAULT NULL,
"name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"alias" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"bucket_name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"object_key" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"version_id" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"type" varchar(30) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"uid" int8 NOT NULL DEFAULT NULL,
"ctime" timestamp(0) NOT NULL DEFAULT NULL::timestamp without time zone,
"classify_id" int8 DEFAULT NULL,
"service" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"sort" int2 NOT NULL DEFAULT 0,
"class_type" varchar(120) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"remark" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"sample_begin_row" int2 DEFAULT NULL,
"sample_begin_col" int2 DEFAULT NULL,
"sample_merger_num" int2 DEFAULT NULL,
"template_sample_num" int2 DEFAULT NULL,
"total_column" int2 DEFAULT NULL,
"data_total_row" int2 DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_exp_report_template"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_exp_report_template"."company_id" IS '企业 ID';
COMMENT ON COLUMN "public"."soil_exp_report_template"."name" IS '名称';
COMMENT ON COLUMN "public"."soil_exp_report_template"."alias" IS '别名';
COMMENT ON COLUMN "public"."soil_exp_report_template"."bucket_name" IS '桶名称';
COMMENT ON COLUMN "public"."soil_exp_report_template"."object_key" IS '对象key';
COMMENT ON COLUMN "public"."soil_exp_report_template"."version_id" IS '版本';
COMMENT ON COLUMN "public"."soil_exp_report_template"."type" IS '类型';
COMMENT ON COLUMN "public"."soil_exp_report_template"."uid" IS '用户 ID';
COMMENT ON COLUMN "public"."soil_exp_report_template"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_exp_report_template"."classify_id" IS '分类 ID';
COMMENT ON COLUMN "public"."soil_exp_report_template"."service" IS '服务名';
COMMENT ON COLUMN "public"."soil_exp_report_template"."sort" IS '排序';
COMMENT ON COLUMN "public"."soil_exp_report_template"."class_type" IS '类别';
COMMENT ON COLUMN "public"."soil_exp_report_template"."remark" IS '备注';
COMMENT ON COLUMN "public"."soil_exp_report_template"."sample_begin_row" IS '样品开始行';
COMMENT ON COLUMN "public"."soil_exp_report_template"."sample_begin_col" IS '样品开始列';
COMMENT ON COLUMN "public"."soil_exp_report_template"."sample_merger_num" IS '样品合并数';
COMMENT ON COLUMN "public"."soil_exp_report_template"."template_sample_num" IS '模板样品数量';
COMMENT ON COLUMN "public"."soil_exp_report_template"."total_column" IS '总列数';
COMMENT ON COLUMN "public"."soil_exp_report_template"."data_total_row" IS '数据占用行';
CREATE TABLE "public"."soil_exp_report_template_config" (
"id" int8 NOT NULL DEFAULT NULL,
"attribute_name" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL,
"data_attribute" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL,
"column_place" int2 DEFAULT NULL,
"template_id" int8 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,
"merge_begin" int2 DEFAULT NULL,
"merge_end" int2 DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."attribute_name" IS '属性名称';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."data_attribute" IS '属性';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."column_place" IS '列位置';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."template_id" IS '试验项目模板ID';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."merge_begin" IS '合并开始列';
COMMENT ON COLUMN "public"."soil_exp_report_template_config"."merge_end" IS '合并结束列';
CREATE TABLE "public"."soil_exp_report_template_version" (
"id" int8 NOT NULL DEFAULT NULL,
"company_id" int8 NOT NULL DEFAULT NULL,
"name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"alias" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"bucket_name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"object_key" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
"version_id" varchar(100) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"type" varchar(30) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"uid" int8 NOT NULL DEFAULT NULL,
"ctime" timestamp(0) NOT NULL DEFAULT NULL::timestamp without time zone,
"template_id" int8 NOT NULL DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."company_id" IS '企业 ID';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."name" IS '名称';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."alias" IS '别名';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."bucket_name" IS '桶名称';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."object_key" IS '对象key';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."version_id" IS '版本';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."type" IS '类型';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."uid" IS '用户 ID';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_exp_report_template_version"."template_id" IS '模板ID';
-- ----------------------------
-- Primary Key structure for table soil_exp_report
-- ----------------------------
ALTER TABLE "public"."soil_exp_report" ADD CONSTRAINT "soil_exp_report_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Primary Key structure for table soil_exp_report_template
-- ----------------------------
ALTER TABLE "public"."soil_exp_report_template" ADD CONSTRAINT "soil_exp_report_template_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Primary Key structure for table soil_exp_report_template_version
-- ----------------------------
ALTER TABLE "public"."soil_exp_report_template_version" ADD CONSTRAINT "soil_exp_report_template_version_pkey" PRIMARY KEY ("id");
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