Commit c6c1e97e by zhangmengqi

Merge branch 'dev'

parents b5a2739c 83d221b3
package com.patzn.cloud.service.lims;
import com.patzn.cloud.commons.lock.EnableRedisDistributedLock;
import com.patzn.cloud.commons.spring.SpringHelper;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
......@@ -22,7 +20,6 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableCaching
@EnableSwagger2
@EnableDiscoveryClient
@EnableRedisDistributedLock
@SpringBootApplication
@EnableTransactionManagement
@EnableFeignClients(basePackages = {"com.patzn.cloud.feign"})
......
......@@ -9,7 +9,7 @@ public class StaticsData {
public static final List<String> parseTxtList=new ArrayList<>();
static {
parseTxtList.add("凝 聚 力");
parseTxtList.add("粘聚力");
parseTxtList.add("内摩擦角");
parseTxtList.add("有效凝聚力");
parseTxtList.add("有效摩擦角");
......
......@@ -4,14 +4,24 @@ import com.patzn.cloud.service.lims.collect.statics.StaticsData;
import com.patzn.cloud.service.soil.entity.SoilExperimentCollectData;
import org.apache.commons.lang3.StringUtils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class CollectUtil {
public static void main(String[] args) {
File file = new File("D://直接剪切YP202102003.txt");
try {
FileInputStream io = new FileInputStream(file);
txt2String(io);
}catch (Exception e){
}
}
public static List<SoilExperimentCollectData> txt2String(InputStream io){
StringBuilder result = new StringBuilder();
List<SoilExperimentCollectData> dataList = new ArrayList<>();
......@@ -26,6 +36,7 @@ public class CollectUtil {
content = content.replace("凝 聚 力","凝聚力");
content = content.replace("灵 敏 度","灵敏度");
content = content.replace("粘 聚 力","凝聚力");
String[] dataArray = content.split(" ");
for (String handleS:dataArray) {
handleS=handleS.trim();
......
package com.patzn.cloud.service.lims.config;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import com.patzn.report.console.ReportServlet;
/**
* <p>
* 报表配置
* </p>
*
* @author hubin
* @since 2018-12-03
*/
//@Configuration
//@ImportResource("classpath:report-context.xml")
public class ReportConfig {
// @Bean
public ServletRegistrationBean initUReport() {
return new ServletRegistrationBean(new ReportServlet(), "/report/*");
}
}
\ No newline at end of file
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExport;
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.ISoilAloneInOutExportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* ${table.comment} 前端控制器
*
* @author wwd
* @since 2021-02-05
*/
@Api(tags = "${table.comment}")
@RestController
@RequestMapping("/v1/alone_in_out_export")
public class SoilAloneInOutExportController extends ServiceController {
@Autowired
private ISoilAloneInOutExportService soilAloneInOutExportService;
@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<SoilAloneInOutExport>> getPage(SoilAloneInOutExport soilAloneInOutExport) {
return success(soilAloneInOutExportService.page(getPage(), soilAloneInOutExport));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilAloneInOutExport> get(@PathVariable("id") Long id) {
return success(soilAloneInOutExportService.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, SoilAloneInOutExport soilAloneInOutExport) {
soilAloneInOutExport.setId(id);
return success(soilAloneInOutExportService.updateById(soilAloneInOutExport));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilAloneInOutExport soilAloneInOutExport) {
return success(soilAloneInOutExportService.save(soilAloneInOutExport));
}
@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(soilAloneInOutExportService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExportRel;
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.ISoilAloneInOutExportRelService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* ${table.comment} 前端控制器
*
* @author wwd
* @since 2021-02-05
*/
@Api(tags = "${table.comment}")
@RestController
@RequestMapping("/v1/alone_in_out_export_rel")
public class SoilAloneInOutExportRelController extends ServiceController {
@Autowired
private ISoilAloneInOutExportRelService soilAloneInOutExportRelService;
@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<SoilAloneInOutExportRel>> getPage(SoilAloneInOutExportRel soilAloneInOutExportRel) {
return success(soilAloneInOutExportRelService.page(getPage(), soilAloneInOutExportRel));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilAloneInOutExportRel> get(@PathVariable("id") Long id) {
return success(soilAloneInOutExportRelService.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, SoilAloneInOutExportRel soilAloneInOutExportRel) {
soilAloneInOutExportRel.setId(id);
return success(soilAloneInOutExportRelService.updateById(soilAloneInOutExportRel));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilAloneInOutExportRel soilAloneInOutExportRel) {
return success(soilAloneInOutExportRelService.save(soilAloneInOutExportRel));
}
@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(soilAloneInOutExportRelService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExport;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutStock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -83,4 +84,21 @@ public class SoilAloneInOutStockController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(soilAloneInOutStockService.removeByIds(ids));
}
@ApiOperation(value = "生成入库记录单", notes = "生成入库记录单")
@PostMapping("/save_excel_exp_report")
public RestResult<SoilAloneInOutExport> saveExcelExport(@RequestParam("ids")Long[] ids, @RequestParam("templateId") Long templateId) {
return success(soilAloneInOutStockService.saveExcelExport(ids,templateId,0,getAccount()));
}
@ApiOperation(value = "生成出库记录单", notes = "生成出库记录单")
@PostMapping("/save_excel_out_export")
public RestResult<SoilAloneInOutExport> saveOutExcelExport(@RequestParam("ids")Long[] ids, @RequestParam("templateId") Long templateId) {
return success(soilAloneInOutStockService.saveExcelExport(ids,templateId,1,getAccount()));
}
}
......@@ -134,7 +134,7 @@ public class SoilAloneSampleController extends ServiceController {
@PostMapping("/page_wait_delivery_his")
public RestResult<Page<SoilAloneSampleVO>> getPageWaitDeliveryHis(SoilAloneSampleVO soilAloneSample) {
soilAloneSample.setStatus(SoilAloneStatusEnum.DELIVERY_OK);
return success(soilAloneSampleService.pageVO(getPage(), soilAloneSample));
return success(soilAloneSampleService.pageVOOut(getPage(), soilAloneSample));
}
......@@ -185,6 +185,27 @@ public class SoilAloneSampleController extends ServiceController {
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/get_in_export_{id}")
public RestResult<SoilAloneSampleVO> getInExport(@PathVariable("id") Long id) {
return success(soilAloneSampleService.getInExport(id,0));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/get_out_export_{id}")
public RestResult<SoilAloneSampleVO> getOutExport(@PathVariable("id") Long id) {
return success(soilAloneSampleService.getInExport(id,1));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/vo/{id}")
public RestResult<SoilAloneSampleVO> getVOById(@PathVariable("id") Long id) {
return success(soilAloneSampleService.getVOById(id));
......
......@@ -31,6 +31,7 @@ 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;
/**
* <p>
......@@ -688,4 +689,12 @@ public class SoilExperimentController extends ServiceController {
return success(soilExperimentService.listExperimentProgress(getPage(),vo));
}
@ApiOperation(value = "附件上传", notes = "附件上传")
@PostMapping("/upload_gds_file/")
public RestResult<Boolean> uploadGdsFile(MultipartFile file) {
return success(soilExperimentService.uploadGdsFile(file));
}
}
......@@ -67,6 +67,21 @@ public class SoilOriginalTemplateController extends ServiceController implements
@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_in_out_export_template")
public RestResult<Page<SoilOriginalTemplate>> getPageInOutExportTemplate(SoilOriginalTemplate soilOriginalTemplate) {
soilOriginalTemplate.setTemplateType(2);
return success(soilOriginalTemplateService.page(getPage(), soilOriginalTemplate));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
......@@ -117,6 +132,13 @@ public class SoilOriginalTemplateController extends ServiceController implements
}
@ApiOperation(value = "出入库导出模板上传", notes = "出入库导出模板上传")
@PostMapping("/upload_in_out_template/")
public RestResult<Boolean> uploadInOutTemplate(@RequestParam("classType") String classType,@RequestParam("name") String name,@RequestParam("remark") String remark, MultipartFile file) {
return success(soilOriginalTemplateService.uploadTemplate(file, classType,name,remark,2));
}
@Login(action = Action.Skip)
@ApiOperation(value = "编辑证书模板", notes = "编辑证书模板")
......@@ -174,6 +196,15 @@ public class SoilOriginalTemplateController extends ServiceController implements
@Override
@Login(action = Action.Skip)
@ApiOperation(value = "编辑开土制备记录", notes = "编辑证书模板")
@PostMapping("/edit_in_out_stock_record_{someParam}")
public RestResult<Boolean> editInOutExportRecord(String someParam, OssFileResult obsFileResult) {
return success(soilOriginalTemplateService.editInOutExportRecord(someParam, obsFileResult));
}
@Override
@Login(action = Action.Skip)
@ApiOperation(value = "在线编辑保存报告信息", notes = "在线编辑保存报告信息")
@PostMapping("/get_key_by_businessid{someParam}")
public RestResult<String> getKeyByBusinessId(String businessId) {
......
......@@ -590,4 +590,21 @@ public class SoilSampleController extends ServiceController {
public RestResult<Boolean> editSeniorSample(@RequestParam("ids")Long [] ids, SoilSampleOperation operation) {
return success(soilSampleService.editSeniorSample(ids,operation,getAccount()));
}
@ApiOperation(value = "从存储位置移除试样", notes = "从存储位置移除试样")
@PostMapping("/sample_split_save")
public RestResult<Boolean> sampleSplitSave(@RequestParam("id")Long id, SoilSample soilSample) {
return success(soilSampleService.sampleSplitSave(id,soilSample,getAccount()));
}
@ApiOperation(value = "导出抽样单", notes = "导出抽样单")
@GetMapping("/export_sampling_list")
public void exportSamplingList(@RequestParam("ids")Long [] ids) {
soilSampleService.exportSamplingList(ids,response,getAccount());
}
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExport;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-02-05
*/
public interface SoilAloneInOutExportMapper extends BatchMapper<SoilAloneInOutExport> {
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExportRel;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-02-05
*/
public interface SoilAloneInOutExportRelMapper extends BatchMapper<SoilAloneInOutExportRel> {
}
......@@ -22,4 +22,6 @@ public interface SoilAloneSampleMapper extends BatchMapper<SoilAloneSample> {
List<SoilAloneSampleVO> selectVOList(RowBounds rowBounds, @Param("vo") SoilAloneSampleVO soilAloneSample);
List<SoilAloneSampleVO> selectVOSampleOfStorehouseList(RowBounds rowBounds, @Param("vo")SoilAloneSampleVO soilAloneSample);
List<SoilAloneSampleVO> selectVOListByIds( @Param("ids")Long[] ids);
}
......@@ -31,4 +31,6 @@ public interface SoilSampleMapper extends BaseMapper<SoilSample> {
List<SoilSampleVO> selectWarehouseLocationSample(Page<SoilSampleVO> page, @Param("vo")SoilSampleVO soilSample);
List<SoilSampleVO> selectVOListByIds(@Param("ids")List<Long> sampleIdList);
List<SoilSampleVO> selectVOListByIds(@Param("ids")Long[] sampleIdList);
}
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.SoilAloneInOutExportRel;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2021-02-05
*/
public interface ISoilAloneInOutExportRelService extends IBaseService<SoilAloneInOutExportRel> {
Page<SoilAloneInOutExportRel> page(Page<SoilAloneInOutExportRel> page, SoilAloneInOutExportRel soilAloneInOutExportRel);
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.service.soil.entity.SoilAloneInOutExport;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2021-02-05
*/
public interface ISoilAloneInOutExportService extends IBaseService<SoilAloneInOutExport> {
Page<SoilAloneInOutExport> page(Page<SoilAloneInOutExport> page, SoilAloneInOutExport soilAloneInOutExport);
boolean removeByIds(List<Long> ids);
}
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.SoilAloneInOutExport;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutStock;
import java.util.List;
......@@ -17,4 +19,6 @@ public interface ISoilAloneInOutStockService extends IBaseService<SoilAloneInOut
Page<SoilAloneInOutStock> page(Page<SoilAloneInOutStock> page, SoilAloneInOutStock soilAloneInOutStock);
boolean removeByIds(List<Long> ids);
SoilAloneInOutExport saveExcelExport(Long[] ids, Long templateId,Integer type, Account account);
}
......@@ -29,6 +29,8 @@ public interface ISoilAloneSampleService extends IBaseService<SoilAloneSample> {
Page<SoilAloneSampleVO> pageVO(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample);
Page<SoilAloneSampleVO> pageVOOut(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample);
boolean bathChangeStorehouse(Long[] ids, SoilAloneInOutStock aloneInOutStock, Account account);
Page<SoilAloneSampleVO> pageVOSampleOfStorehouse(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample);
......@@ -36,4 +38,8 @@ public interface ISoilAloneSampleService extends IBaseService<SoilAloneSample> {
boolean storageSampleSubmit(Long[] ids, Account account);
SoilAloneSampleVO getVOById(Long id);
List<SoilAloneSampleVO> listVOByIds(Long[] ids);
SoilAloneSampleVO getInExport(Long id, int i);
}
......@@ -14,6 +14,7 @@ import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.statistics.SoilEntrustItemNumVO;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import jcifs.smb.SmbFile;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
......@@ -97,4 +98,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
List<SoilExperimentVO> listGroupVOListByEntrustIds(List<Long> entrustIdList);
SoilOpenSoilRecord saveExcelOpenSoilRecord(Long entrustId, Long templateId, Account account);
boolean uploadGdsFile(MultipartFile file);
}
......@@ -38,4 +38,6 @@ public interface ISoilOriginalTemplateService extends IBaseService<SoilOriginalT
boolean editExpReport(String someParam, OssFileResult obsFileResult);
boolean editOpenSoilRecord(String someParam, OssFileResult obsFileResult);
boolean editInOutExportRecord(String someParam, OssFileResult obsFileResult);
}
......@@ -32,4 +32,6 @@ public interface ISoilSampleOperationService extends IBaseService<SoilSampleOper
boolean resetLocationBySampleIds(Long [] ids, Account account);
SoilSampleOperation getBySampleId(Long id);
}
......@@ -15,6 +15,8 @@ import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
* 土工试验试样表 服务类
......@@ -94,4 +96,8 @@ public interface ISoilSampleService extends IBaseService<SoilSample> {
boolean editSeniorSample(Long[] ids, SoilSampleOperation operation, Account account);
List<SoilSampleVO> listVOByIds(List<Long> sampleIdList);
boolean sampleSplitSave(Long id, SoilSample soilSample, Account account);
void exportSamplingList(Long[] ids, HttpServletResponse response, Account account);
}
package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.service.lims.soil.mapper.SoilAloneInOutExportRelMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneInOutExportRelService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExportRel;
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 2021-02-05
*/
@Service
public class SoilAloneInOutExportRelServiceImpl extends BaseServiceImpl<SoilAloneInOutExportRelMapper, SoilAloneInOutExportRel> implements ISoilAloneInOutExportRelService {
@Override
public Page<SoilAloneInOutExportRel> page(Page<SoilAloneInOutExportRel> page, SoilAloneInOutExportRel soilAloneInOutExportRel) {
Wrapper wrapper = new EntityWrapper<>(soilAloneInOutExportRel);
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.service.lims.soil.mapper.SoilAloneInOutExportMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneInOutExportService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExport;
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 2021-02-05
*/
@Service
public class SoilAloneInOutExportServiceImpl extends BaseServiceImpl<SoilAloneInOutExportMapper, SoilAloneInOutExport> implements ISoilAloneInOutExportService {
@Override
public Page<SoilAloneInOutExport> page(Page<SoilAloneInOutExport> page, SoilAloneInOutExport soilAloneInOutExport) {
Wrapper wrapper = new EntityWrapper<>(soilAloneInOutExport);
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.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.soil.mapper.SoilAloneInOutStockMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneInOutStockService;
import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutStock;
import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.soil.vo.SoilAloneSampleVO;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
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.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
......@@ -20,6 +39,20 @@ import java.util.List;
@Service
public class SoilAloneInOutStockServiceImpl extends BaseServiceImpl<SoilAloneInOutStockMapper, SoilAloneInOutStock> implements ISoilAloneInOutStockService {
@Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService;
@Autowired
private ISoilAloneSampleService soilAloneSampleService;
@Autowired
private OssClient ossClient;
@Autowired
private ISoilAloneInOutExportService soilAloneInOutExportService;
@Autowired
private ISoilAloneInOutExportRelService soilAloneInOutExportRelService;
@Override
public Page<SoilAloneInOutStock> page(Page<SoilAloneInOutStock> page, SoilAloneInOutStock soilAloneInOutStock) {
Wrapper wrapper = new EntityWrapper<>(soilAloneInOutStock);
......@@ -31,4 +64,125 @@ public class SoilAloneInOutStockServiceImpl extends BaseServiceImpl<SoilAloneInO
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public SoilAloneInOutExport saveExcelExport(Long[] ids, Long templateId,Integer type, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要导出的数据");
RestAssert.fail(null == templateId,"请选择d导出模板");
SoilOriginalTemplate template = soilOriginalTemplateService.getById(templateId);
if (null == template){
logger.error("------------saveExcelExport----------0");
RestAssert.fail("模板不存在");
}
List<SoilAloneSampleVO> aloneSampleVOList = soilAloneSampleService.listVOByIds(ids);
if (CollectionUtils.isEmpty(aloneSampleVOList)){
return null;
}
logger.error("saveExcelOriginalRecord entrust");
InputStream io = ossClient.download(template.getObjectKey());
if (null == io){
logger.error("----------------------2");
RestAssert.fail("模板不存在");
}
logger.error(" InputStream io 存在");
SoilAloneInOutStock objectKey=null;
XSSFWorkbook xssfWorkbook= null;
try {
xssfWorkbook= new XSSFWorkbook(io);
}catch (Exception e){
logger.error("获取证书模板错误"+e.getMessage());
e.printStackTrace();
}
boolean begin =false;
for (SoilAloneSampleVO vo:aloneSampleVOList) {
if (begin){
XSSFSheet sheet = xssfWorkbook.cloneSheet(0);
}else{
begin=true;
}
}
int length = aloneSampleVOList.size();
for (int i = 0; i < length; i++) {
SoilAloneSampleVO soilAloneSampleVO = aloneSampleVOList.get(i);
Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{shelfCode}",soilAloneSampleVO.getShelfCode());
mapReplace.put("#{outStockReceiver}",soilAloneSampleVO.getOutStockReceiver());
mapReplace.put("#{storehouse}",soilAloneSampleVO.getStorehouse());
mapReplace.put("#{inStocker}",soilAloneSampleVO.getInStocker());
mapReplace.put("#{outStocker}",soilAloneSampleVO.getOutStocker());
mapReplace.put("#{boreholeName}",soilAloneSampleVO.getBoreholeName());
mapReplace.put("#{projectLeader}",soilAloneSampleVO.getProjectLeader());
mapReplace.put("#{projectName}",soilAloneSampleVO.getProjectName());
mapReplace.put("#{receiver}",soilAloneSampleVO.getReceiver());
mapReplace.put("#{registrant}",soilAloneSampleVO.getRegistrant());
mapReplace.put("#{boreholeNumber}",soilAloneSampleVO.getBoreholeNumber());
mapReplace.put("#{casesNum}",soilAloneSampleVO.getCasesNum());
mapReplace.put("#{instockTime}", DateUtils.toYearMonthHourMiniDay(soilAloneSampleVO.getInstockTime()));
mapReplace.put("#{keepLimitTime}",DateUtils.toYearMonthHourMiniDay(soilAloneSampleVO.getKeepLimitTime()));
mapReplace.put("#{receiveTime}",DateUtils.toYearMonthHourMiniDay(soilAloneSampleVO.getReceiveTime()));
mapReplace.put("#{registTime}",DateUtils.toYearMonthHourMiniDay(soilAloneSampleVO.getRegistTime()));
mapReplace.put("#{outStock}",DateUtils.toYearMonthHourMiniDay(soilAloneSampleVO.getOutStock()));
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,i);
}
FileOutputStream os = null;
File file = null;
String generated="原始记录";
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
OssFileResult result = ossClient.upload(file);
SoilAloneInOutExport inOutExport = new SoilAloneInOutExport();
inOutExport.setObjectKey(result.getObjectKey());
inOutExport.setTemplateId(templateId);
inOutExport.setUname(account.getUserName());
inOutExport.setTitle(template.getName());
soilAloneInOutExportService.save(inOutExport);
List<SoilAloneInOutExportRel> saveRel = new ArrayList<>();
for (Long id:ids) {
SoilAloneInOutExportRel outExportRel = new SoilAloneInOutExportRel();
outExportRel.setAloneSampleId(id);
outExportRel.setInOutExportId(inOutExport.getId());
outExportRel.setType(type);
saveRel.add(outExportRel);
}
if (CollectionUtils.isNotEmpty(saveRel)){
soilAloneInOutExportRelService.saveBatch(saveRel);
}
logger.error("----------------------17");
return inOutExport;
} catch (Exception e) {
logger.error("Exception 报错"+e.getMessage());
e.printStackTrace();
} finally {
try {
os.close();
xssfWorkbook.close();
io.close();
FileUtils.deleteFiles(file);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
......@@ -5,9 +5,13 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.lims.soil.mapper.SoilAloneSampleMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneInOutExportRelService;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneInOutExportService;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneInOutStockService;
import com.patzn.cloud.service.lims.soil.service.ISoilAloneSampleService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExport;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutExportRel;
import com.patzn.cloud.service.soil.entity.SoilAloneInOutStock;
import com.patzn.cloud.service.soil.entity.SoilAloneSample;
import com.patzn.cloud.service.soil.enums.SoilAloneStatusEnum;
......@@ -23,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 收样登记表 服务实现类
......@@ -37,6 +42,11 @@ public class SoilAloneSampleServiceImpl extends BaseServiceImpl<SoilAloneSampleM
@Autowired
private ISoilAloneInOutStockService soilAloneInOutStockService;
@Autowired
private ISoilAloneInOutExportRelService soilAloneInOutExportRelService;
@Autowired
private ISoilAloneInOutExportService soilAloneInOutExportService;
@Override
public Page<SoilAloneSample> page(Page<SoilAloneSample> page, SoilAloneSampleVO soilAloneSample) {
......@@ -142,9 +152,81 @@ public class SoilAloneSampleServiceImpl extends BaseServiceImpl<SoilAloneSampleM
@Override
public Page<SoilAloneSampleVO> pageVO(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample) {
return page.setRecords(baseMapper.selectVOList(page,soilAloneSample));
List<SoilAloneSampleVO> soilAloneSampleVOS = baseMapper.selectVOList(page,soilAloneSample);
if (CollectionUtils.isEmpty(soilAloneSampleVOS)){
return page;
}
List<Long> sampleIds = soilAloneSampleVOS.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
List<SoilAloneInOutExportRel> relList = soilAloneInOutExportRelService.list(Condition.create().in("alone_sample_id",sampleIds).eq("type",0));
List<SoilAloneInOutExport> exportList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(relList)){
List<Long> exportIdsList = relList.stream().map(s->{
return s.getInOutExportId();
}).collect(Collectors.toList());
exportList =soilAloneInOutExportService.list(Condition.create().in("id",exportIdsList));
}
for (SoilAloneInOutExportRel rel:relList) {
for (SoilAloneSampleVO sampleVO:soilAloneSampleVOS) {
if (rel.getAloneSampleId().equals(sampleVO.getId())){
sampleVO.setExportId(rel.getInOutExportId());
for (SoilAloneInOutExport soilAloneInOutExport:exportList) {
if (rel.getInOutExportId().equals(soilAloneInOutExport.getId())){
sampleVO.setInstoreObjectKey(soilAloneInOutExport.getObjectKey());
break;
}
}
break;
}
}
}
return page.setRecords(soilAloneSampleVOS);
}
@Override
public Page<SoilAloneSampleVO> pageVOOut(Page<SoilAloneSampleVO> page, SoilAloneSampleVO soilAloneSample) {
List<SoilAloneSampleVO> soilAloneSampleVOS = baseMapper.selectVOList(page,soilAloneSample);
if (CollectionUtils.isEmpty(soilAloneSampleVOS)){
return page;
}
List<Long> sampleIds = soilAloneSampleVOS.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
List<SoilAloneInOutExportRel> relList = soilAloneInOutExportRelService.list(Condition.create().in("alone_sample_id",sampleIds).eq("type",1));
List<SoilAloneInOutExport> exportList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(relList)){
List<Long> exportIdsList = relList.stream().map(s->{
return s.getInOutExportId();
}).collect(Collectors.toList());
exportList =soilAloneInOutExportService.list(Condition.create().in("id",exportIdsList));
}
for (SoilAloneInOutExportRel rel:relList) {
for (SoilAloneSampleVO sampleVO:soilAloneSampleVOS) {
if (rel.getAloneSampleId().equals(sampleVO.getId())){
sampleVO.setExportId(rel.getInOutExportId());
for (SoilAloneInOutExport soilAloneInOutExport:exportList) {
if (rel.getInOutExportId().equals(soilAloneInOutExport.getId())){
sampleVO.setInstoreObjectKey(soilAloneInOutExport.getObjectKey());
break;
}
}
break;
}
}
}
return page.setRecords(soilAloneSampleVOS);
}
@Override
public boolean bathChangeStorehouse(Long[] ids, SoilAloneInOutStock aloneInOutStock, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要修改存放架位的样品");
......@@ -193,4 +275,27 @@ public class SoilAloneSampleServiceImpl extends BaseServiceImpl<SoilAloneSampleM
vo.setOutStockReceiver(stock.getOutStockReceiver());
return vo;
}
@Override
public List<SoilAloneSampleVO> listVOByIds(Long[] ids) {
return baseMapper.selectVOListByIds(ids);
}
@Override
public SoilAloneSampleVO getInExport(Long id, int i) {
RestAssert.fail(null == id,"数据不存在");
SoilAloneSample sample = getById(id);
List<SoilAloneInOutExportRel> relList = soilAloneInOutExportRelService.list(Condition.create().eq("alone_sample_id",id).eq("type",i).last("LIMIT 1"));
SoilAloneSampleVO vo = sample.convert(SoilAloneSampleVO.class);
if (CollectionUtils.isNotEmpty(relList)){
SoilAloneInOutExportRel rel = relList.get(0);
vo.setExportId(rel.getInOutExportId());
SoilAloneInOutExport export = soilAloneInOutExportService.getById(rel.getInOutExportId());
vo.setInstoreObjectKey(export.getObjectKey());
}
return vo;
}
}
......@@ -5,7 +5,6 @@ import com.patzn.cloud.service.lims.soil.mapper.SoilDataGdsDetailMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilDataGdsDetailService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilDataGdsDetail;
import lombok.ToString;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
......
......@@ -67,6 +67,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 土工-样品试验表 服务实现类
......@@ -736,6 +738,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
XSSFCell cell101 = sheet.getRow(10).getCell(1);
cell101.setCellFormula("10^(B8*LOG10(25)+B9)");
GenerateChart(sheet,"'界限含水率 (碟式液限仪多点法)'!$D$"+xBegin1+":"+"$D$"+xBegin3,"'界限含水率 (碟式液限仪多点法)'!$J$"+xBegin1+":$J$"+xBegin3);
xBegin1+=xStep;
xBegin2+=xStep;
......@@ -1226,12 +1229,12 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
XSSFChart chart = drawing.createChart(anchor);
chart.setTitleText("预选赛项目得分分布图");
chart.setTitleText("含水率与击数关系曲线");
chart.setAutoTitleDeleted(false);
CTChart ctChart = chart.getCTChart();
ctChart.addNewPlotVisOnly().setVal(true);
ctChart.addNewDispBlanksAs().setVal(STDispBlanksAs.Enum.forInt(2));
ctChart.addNewDispBlanksAs().setVal(STDispBlanksAs.GAP);
ctChart.addNewShowDLblsOverMax().setVal(false);
......@@ -1252,6 +1255,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
ctCatAx.addNewCrossAx().setVal(123457);
ctCatAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
CTTitle title =ctCatAx.addNewTitle();
CTTx tx = title.addNewTx();
CTTextBody rich = tx.addNewRich();
rich.addNewBodyPr(); // body properties must exist, but can be empty
CTTextParagraph para = rich.addNewP();
CTRegularTextRun r = para.addNewR();
r.setT("击数(N)次");
ctCatAx.setTitle(title);
CTValAx ctValAx = ctPlotArea.addNewValAx();
ctValAx.addNewAxId().setVal(123457);
......@@ -1261,6 +1274,15 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
ctValAx.addNewAxPos().setVal(STAxPos.B);
ctValAx.addNewCrossAx().setVal(123456);
CTTitle ctTitleY = ctValAx.addNewTitle();
CTTx txY = ctTitleY.addNewTx();
CTTextBody richY = txY.addNewRich();
richY.addNewBodyPr();
CTTextParagraph paragraphY= richY.addNewP();
CTRegularTextRun runY= paragraphY.addNewR();
runY.setT("含水率WL(L下角标)(%)");
ctValAx.setTitle(ctTitleY);
CTShapeProperties ctShapeProperties = ctValAx.addNewMajorGridlines().addNewSpPr();
CTLineProperties ctLineProperties = ctShapeProperties.addNewLn();
ctLineProperties.setW(9525);
......@@ -2263,6 +2285,77 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
}
@Override
public boolean uploadGdsFile(MultipartFile file) {
if (!file.getOriginalFilename().contains(".gds")){
RestAssert.fail("请上传扩展名为.gds的文件");
}
InputStream is = null;
try{
is= file.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
String strLine = null;
List<String> titleList = new ArrayList<>();
int lineCount = 1;
SoilDataGds gds = new SoilDataGds();
gds.setId(IdWorker.getId());
List<SoilDataGdsDetail> saveDetailList = new ArrayList<>();
Map<String,String> mainColumnMap = StringStaticDataUtils.mapGdsMain;
Map<String,String> gdsColumnDetailMap = StringStaticDataUtils.mapGdsColumnCheck;
while(null != (strLine = bufferedReader.readLine())){
String[] lineArray = strLine.split(",");
if (lineArray.length == 2) {
String key = lineArray[0].replace("\"", "");
String value = lineArray[1].replace("\"", "");
if (mainColumnMap.containsKey(key)){
StringHandleUtils.setFieldValueByFieldName(mainColumnMap.get(key),gds,value);
}
}else{
if (titleList.size() == 0){
for (String title:lineArray) {
title = title.replace("\"", "");
titleList.add(title);
}
}else{
int length = lineArray.length;
SoilDataGdsDetail soilDataGdsDetail = new SoilDataGdsDetail();
soilDataGdsDetail.setGdsId(gds.getId());
soilDataGdsDetail.setUid(LoginHelper.getAccount().getUserId());
soilDataGdsDetail.setCtime(new Date());
soilDataGdsDetail.setCompanyId(LoginHelper.getAccount().getCompanyId());
soilDataGdsDetail.setDeleted(0);
for (int i = 0; i < length; i++) {
String key = titleList.get(i);
String value = lineArray[i].replace("\"", "");
if (gdsColumnDetailMap.containsKey(key)){
StringHandleUtils.setFieldValueByFieldName(gdsColumnDetailMap.get(key),soilDataGdsDetail,value);
}
}
saveDetailList.add(soilDataGdsDetail);
}
}
System.out.println("第[" + lineCount + "]行数据:[" + strLine + "]");
lineCount++;
}
if (soilDataGdsService.save(gds)){
soilDataGdsDetailService.saveBatchCustom(saveDetailList);
}
return true;
}catch (Exception e){
logger.error("解析gds文件失败"+e.getMessage());
}
return false;
}
@Override
public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) {
......
......@@ -15,6 +15,7 @@ import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import com.patzn.cloud.service.soil.vo.SoilItemVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.xssf.usermodel.XSSFCell;
......@@ -70,6 +71,10 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
@Autowired
private ISoilOpenSoilRecordService soilOpenSoilRecordService;
@Autowired
private ISoilAloneInOutExportService soilAloneInOutExportService;
@Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService;
......@@ -386,7 +391,14 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
Integer itemValueIndex = collectEntity.getItemMegerRow();
if (null == itemValueIndex || itemValueIndex ==sampleMergerNum){
XSSFCell itemCell = xssfRow.getCell(collectEntity.getColumnPlace());
String value = formatter.formatCellValue(itemCell, evaluator);
String value = "";
if (itemCell.getCellType().equals(CellType.FORMULA)){
value = HSSFWorkbookUtil.getJavaValue(itemCell).toString();
}else {
value = formatter.formatCellValue(itemCell, evaluator);
}
String itemName = collectEntity.getItemName();
if (StringUtils.isBlank(value)){
continue;
......@@ -426,7 +438,12 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
if (null == itemCell){
continue;
}
String value = formatter.formatCellValue(itemCell, evaluator);
String value = "";
if (itemCell.getCellType().equals(CellType.FORMULA)){
value = HSSFWorkbookUtil.getJavaValue(itemCell).toString();
}else {
value = formatter.formatCellValue(itemCell, evaluator);
}
String itemName = collectEntity.getItemName();
......@@ -730,4 +747,26 @@ public class SoilOriginalTemplateServiceImpl extends BaseServiceImpl<SoilOrigina
}
@Override
public boolean editInOutExportRecord(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]);
SoilAloneInOutExport inOutExport = soilAloneInOutExportService.getById(businessId);
if (null == inOutExport){
RestAssert.fail("数据有误");
}
SoilAloneInOutExport export = new SoilAloneInOutExport();
export.setId(businessId);
export.setObjectKey(obsFileResult.getObjectKey());
soilAloneInOutExportService.updateById(export);
return true;
}
}
......@@ -77,4 +77,9 @@ public class SoilSampleOperationServiceImpl extends BaseServiceImpl<SoilSampleOp
public boolean resetLocationBySampleIds(Long[] ids, Account account) {
return baseMapper.updateForSet("receive_location=NULL",Condition.create().in("sample_id",ids))>0;
}
@Override
public SoilSampleOperation getBySampleId(Long id) {
return getOne(Condition.create().eq("sample_id",id).last("LIMIT 1"));
}
}
......@@ -3,6 +3,7 @@ import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
......@@ -11,6 +12,8 @@ import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.StringHandleUtils;
import com.patzn.cloud.feign.lims.base.client.LmsUserGroupClient;
import com.patzn.cloud.service.lims.base.entity.LmsUserGroup;
import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.common.service.IExportService;
import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.service.soil.dto.SoilPrepareDTO;
import com.patzn.cloud.service.soil.entity.*;
......@@ -25,6 +28,12 @@ import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
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.Value;
import org.springframework.stereotype.Service;
......@@ -33,6 +42,9 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
* 土工试验试样表 服务实现类
......@@ -59,10 +71,17 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
@Autowired
private ISoilEntrustService soilEntrustService;
@Autowired
private IExportService exportService;
@Autowired
private ISoilExperimentService soilExperimentService;
@Autowired
private ISoilExperimentOperationService soilExperimentOperationService;
@Autowired
private ISoilExperimentCollectDataService soilExperimentCollectDataService;
@Autowired
......@@ -843,6 +862,112 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
return baseMapper.selectVOListByIds(sampleIdList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean sampleSplitSave(Long id, SoilSample soilSample, Account account) {
SoilSample sample = getById(id);
SoilSampleOperation operation = soilSampleOperationService.getBySampleId(id);
SoilSample saveSample = sample.convert(SoilSample.class);
saveSample.setId(IdWorker.getId());
saveSample.setSampleCode(soilSample.getSampleCode());
saveSample.setSiteNo(soilSample.getSiteNo());
saveSample.setSampleDepth(soilSample.getSampleDepth());
SoilSampleOperation operationSave = operation.convert(SoilSampleOperation.class);
operationSave.setSampleId(saveSample.getId());
operationSave.setId(IdWorker.getId());
List<SoilExperiment> experimentList = soilExperimentService.list(Condition.create().eq("sample_id",id));
List<SoilExperiment> saveExpList = new ArrayList<>();
List<SoilExperimentOperation> saveExpOperationList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(experimentList)){
List<Long> expIds = experimentList.stream().map(e->{
return e.getId();
}).collect(Collectors.toList());
List<SoilExperimentOperation> experimentOperationList = soilExperimentOperationService.list(Condition.create().in("experiment_id",expIds));
for (SoilExperiment experiment:experimentList) {
SoilExperiment saveExp = experiment.convert(SoilExperiment.class);
saveExp.setSampleId(saveSample.getId());
saveExp.setId(IdWorker.getId());
for (SoilExperimentOperation experimentOperation:experimentOperationList) {
if (experiment.getId().equals(experimentOperation.getExperimentId())){
SoilExperimentOperation saveOperation = experimentOperation.convert(SoilExperimentOperation.class);
saveOperation.setId(IdWorker.getId());
saveOperation.setExperimentId(saveExp.getId());
saveExpOperationList.add(saveOperation);
break;
}
}
saveExpList.add(saveExp);
}
}
if (save(saveSample)){
soilSampleOperationService.save(operationSave);
if (CollectionUtils.isNotEmpty(saveExpList)){
soilExperimentService.saveBatch(saveExpList);
}
if (CollectionUtils.isNotEmpty(saveExpOperationList)){
soilExperimentOperationService.saveBatch(saveExpOperationList);
}
return true;
}
return false;
}
@Override
public void exportSamplingList(Long[] ids, HttpServletResponse response, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要导出的样品");
List<SoilSampleVO> voList = baseMapper.selectVOListByIds(ids);
RestAssert.fail(CollectionUtils.isEmpty(voList),"请选择要导出的样品");
SoilEntrust entrust = soilEntrustService.getById(voList.get(0).getEntrustId());
XSSFWorkbook xssfWorkbook= exportService.getXSSFWorkbook("SamplingList.xlsx");
XSSFSheet sheet= xssfWorkbook.getSheetAt(0);
Map<String,String> map=new HashMap<>();
map.put("#{boreholeName}",StringHandleUtils.getString(entrust.getBoreholeName()));
map.put("#{client}",StringHandleUtils.getString(entrust.getClient()));
HSSFWorkbookUtil.replaceModel(map,xssfWorkbook);
if (voList.size()<=16){
int beg = 12;
for (SoilSampleVO vo:voList) {
XSSFRow row = sheet.getRow(beg);
row.getCell(1).setCellValue(vo.getSampleCode());
}
}else {
int createNum = voList.size()-16;
XSSFCellStyle cellStyle = sheet.getRow(12).getCell(0).getCellStyle();
for (int i = 0; i < createNum; i++) {
sheet.shiftRows(12+i, sheet.getLastRowNum(),1,true,false);
XSSFRow row=sheet.createRow(16+i);
row.setHeight(sheet.getRow(12).getHeight());
for (int j = 0; j < 4; j++) {
XSSFCell cell= row.createCell(j);
cell.setCellStyle(cellStyle);
}
}
int beg = 12;
for (SoilSampleVO vo:voList) {
XSSFRow row = sheet.getRow(beg);
row.getCell(1).setCellValue(vo.getSampleCode());
}
}
exportService.downloadXlsx(response,entrust.getBoreholeName()+"sampling"+".xlsx",xssfWorkbook);
}
@Transactional(rollbackFor = Exception.class)
@Override
......
......@@ -27,8 +27,8 @@ spring:
# 文件上传大小设置 50MB
servlet:
multipart:
max-request-size: 50MB
max-file-size: 50MB
max-request-size: 100MB
max-file-size: 100MB
datasource:
driver-class-name: org.postgresql.Driver
platform: postgres
......
<?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.SoilAloneInOutExportMapper">
</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.SoilAloneInOutExportRelMapper">
</mapper>
......@@ -4,8 +4,8 @@
<select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilAloneSampleVO">
SELECT
s.id,s.receiver,s.receive_time,s.project_name,s.project_leader,s.borehole_name,s.cases_num,s.registrant,s.regist_time,
o.storehouse,o.shelf_code,o.instock_time,o.keep_limit_time,o.in_stocker
s.id,s.receiver,s.receive_time,s.project_name,s.project_leader,s.borehole_name,s.cases_num,s.registrant,s.regist_time,s.outstock_code,
o.instore_object_key,o.outstock_object_key,o.storehouse,o.shelf_code,o.instock_time,o.keep_limit_time,o.in_stocker
FROM
soil_alone_sample s
JOIN soil_alone_in_out_stock o ON s.ID = o.alone_sample_id
......@@ -28,6 +28,26 @@
</select>
<select id="selectVOListByIds" resultType="com.patzn.cloud.service.soil.vo.SoilAloneSampleVO">
SELECT
s.id,s.receiver,s.receive_time,s.project_name,s.project_leader,s.borehole_name,s.cases_num,s.registrant,s.regist_time,
o.instore_object_key,o.outstock_object_key,o.storehouse,o.shelf_code,o.instock_time,o.keep_limit_time,o.in_stocker,
o.out_stock_receiver,o.out_stock,o.out_stocker
FROM
soil_alone_sample s
JOIN soil_alone_in_out_stock o ON s.ID = o.alone_sample_id
WHERE s.deleted = 0
AND s.id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
ORDER BY s.ctime DESC
</select>
<select id="selectVOSampleOfStorehouseList" resultType="com.patzn.cloud.service.soil.vo.SoilAloneSampleVO">
SELECT
s.id,s.receiver,s.receive_time,s.project_name,s.project_leader,s.borehole_name,s.cases_num,s.registrant,s.regist_time,
......
......@@ -13,6 +13,7 @@
<sql id="sColumn">
s.id,
s.site_no,
s.entrust_id,
s.sample_code,
s.sample_depth,
s.keep_limit_time,
......
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1304244453771292673, "name" = '样品分拨', "type" = 0, "code" = 'sample_receive', "uri" = '/soil/sample/receive', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 100, "ctime" = '2020-09-11 10:35:59.522', "ename" = NULL WHERE "id" = 1304247286566465538;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1304244453771292673, "name" = '样品分拨', "type" = 0, "code" = 'sample_receive', "uri" = '/soil/sample/receive', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 100, "ctime" = '2020-09-11 10:35:59.522', "ename" = NULL WHERE "id" = 1304247286566465538;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1343358970677411841, "name" = '样品管理', "type" = 0, "code" = 'storehouse_sample', "uri" = '/soil/alone_sample/storehouse_sample', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 197, "ctime" = '2020-12-28 08:59:11.382', "ename" = NULL WHERE "id" = 1343360814950629377;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1343358970677411841, "name" = '货架管理', "type" = 0, "code" = 'storehouse_place', "uri" = '/soil/alone_sample/storehouse_place', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 196, "ctime" = '2020-12-28 09:01:29.382', "ename" = NULL WHERE "id" = 1343361393781358593;
UPDATE "public"."sys_resource" SET "system_id" = 1304006677087891457, "pid" = 1304244453771292673, "name" = '独立预检', "type" = 0, "code" = 'alone_keep', "uri" = '/soil/sample/alone_keep', "icon" = 'pt-config', "remark" = NULL, "status" = 1, "sort" = 99, "ctime" = '2021-01-05 14:14:58.517', "ename" = NULL WHERE "id" = 1346339387936321538;
ALTER TABLE "public"."soil_alone_in_out_stock"
ALTER TABLE "public"."soil_alone_in_out_stock"
ADD COLUMN "instore_object_key" varchar(200),
ADD COLUMN "outstock_object_key" varchar(200);
COMMENT ON COLUMN "public"."soil_alone_in_out_stock"."instore_object_key" IS '入库单资料objectKey';
COMMENT ON COLUMN "public"."soil_alone_in_out_stock"."outstock_object_key" IS '出库单资料objectKey';
\ No newline at end of file
ALTER TABLE "public"."soil_alone_sample"
ALTER TABLE "public"."soil_alone_sample"
ADD COLUMN "instock_code" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL,
ADD COLUMN "outstock_code" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL;
COMMENT ON COLUMN "public"."soil_alone_sample"."instock_code" IS '入库单号';
COMMENT ON COLUMN "public"."soil_alone_sample"."outstock_code" IS '出库单号';
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment