Commit a2f5a6f3 by wangweidong

土工试验修改

parent cb8d17fe
......@@ -7,6 +7,7 @@ import com.patzn.cloud.service.lims.soil.service.ISoilEntrustService;
import com.patzn.cloud.service.soil.dto.SoilEntrustDTO;
import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.enums.SoilEntrustStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilEntrustVO;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -71,7 +72,7 @@ public class SoilEntrustController extends ServiceController {
SoilSampleStatusEnum.RECEIVE,
SoilSampleStatusEnum.SEND
));
return success(soilEntrustService.pageVO(getPage(), soilEntrust));
return success(soilEntrustService.pageVOBySample(getPage(), soilEntrust));
}
@ApiOperation(value = "开土制备样品委托分页列表", notes = "开土制备样品委托分页列表")
......@@ -86,10 +87,31 @@ public class SoilEntrustController extends ServiceController {
soilEntrust.setSampleStatusList(Lists.newArrayList(
SoilSampleStatusEnum.SOIL_PREPARE
));
return success(soilEntrustService.pageVO(getPage(), soilEntrust));
return success(soilEntrustService.pageVOBySample(getPage(), soilEntrust));
}
@ApiOperation(value = "试验任务分配委托分页列表", notes = "试验任务分配委托分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_exp_allot")
public RestResult<Page<SoilEntrustVO>> getPageTaskAllot(SoilEntrustVO soilEntrust) {
soilEntrust.setExpStatus(SoilExpStatusEnum.ALLOT);
return success(soilEntrustService.pageVOByExperiment(getPage(), soilEntrust));
}
@ApiOperation(value = "分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
......
......@@ -2,6 +2,8 @@ package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -99,4 +101,29 @@ public class SoilExperimentController extends ServiceController {
return success(soilExperimentService.remove(Condition.create().in("id", ids)));
}
@ApiOperation(value = "分配试验项目", notes = "分配试验项目")
@PostMapping("/allot_exp")
public RestResult<Boolean> allotExp(@RequestParam("ids") Long [] ids ,
@RequestParam("user") String user,
@RequestParam("userId") Long userId ) {
return success(soilExperimentService.allotExp(ids,user,userId,getAccount()));
}
@ApiOperation(value = "分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_allot")
public RestResult<Page<SoilExperimentVO>> getPage(@RequestParam("sampleIds") Long [] sampleIds ,SoilExperimentVO vo) {
vo.setStatus(SoilExpStatusEnum.ALLOT);
return success(soilExperimentService.pageBySampleIds(getPage(), sampleIds,vo));
}
}
package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.patzn.cloud.service.soil.entity.SoilExperimentRecord;
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.mapper.Condition;
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.ISoilExperimentRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
/**
* <p>
* 试验项目操作日志表 前端控制器
* </p>
*
* @author wwd
* @since 2020-09-22
*/
@Api(tags = "试验项目操作日志表")
@RestController
@RequestMapping("/v1/experiment_record")
public class SoilExperimentRecordController extends ServiceController {
@Autowired
private ISoilExperimentRecordService soilExperimentRecordService;
@ApiOperation(value = "分页列表", notes = "分页查询数据列表")
@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<SoilExperimentRecord>> getPage(SoilExperimentRecord soilExperimentRecord) {
return success(soilExperimentRecordService.page(getPage(), soilExperimentRecord));
}
@ApiOperation(value = "查询列表", notes = "查询数据列表")
@PostMapping("/list")
public RestResult<List<SoilExperimentRecord>> getList(SoilExperimentRecord soilExperimentRecord) {
return success(soilExperimentRecordService.list(soilExperimentRecord));
}
@ApiOperation(value = "查询 id 信息", notes = "查询指定 id 的数据内容")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilExperimentRecord> get(@PathVariable("id") Long id) {
return success(soilExperimentRecordService.getById(id));
}
@ApiOperation(value = "根据 id 修改信息", notes = "根据指定 id 修改该条数据内容")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, SoilExperimentRecord soilExperimentRecord) {
soilExperimentRecord.setId(id);
return success(soilExperimentRecordService.updateById(soilExperimentRecord));
}
@ApiOperation(value = "添加", notes = "添加一条数据")
@PostMapping("/")
public RestResult<Boolean> add(SoilExperimentRecord soilExperimentRecord) {
return success(soilExperimentRecordService.save(soilExperimentRecord));
}
@ApiOperation(value = "根据 ids 删除", notes = "根据 id 数组删除指定的数据内容")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键数组", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") Long[] ids) {
return success(soilExperimentRecordService.remove(Condition.create().in("id", ids)));
}
}
......@@ -2,17 +2,14 @@ package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.patzn.cloud.service.soil.dto.SoilPrepareDTO;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilPrepareStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
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 org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
......@@ -102,6 +99,37 @@ public class SoilSampleController extends ServiceController {
}
@ApiOperation(value = "试验实领样样品分页列表", notes = "试验实领样样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_take")
public RestResult<Page<SoilPrepareVO>> getPageTake(SoilPrepareVO soilSample) {
soilSample.setStatus(SoilPrepareStatusEnum.PREPARED);
return success(soilSampleService.pageTake(getPage(), soilSample));
}
@ApiOperation(value = "试验实领样样品分页列表", notes = "试验实领样样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_exp_allot_sample")
public RestResult<Page<SoilSampleVO>> getPageExpAllotSample(SoilSampleVO soilSample) {
soilSample.setExpStatus(SoilExpStatusEnum.ALLOT);
return success(soilSampleService.pageByExp(getPage(), soilSample));
}
@ApiOperation(value = "查询列表", notes = "查询数据列表")
@PostMapping("/list")
public RestResult<List<SoilSample>> getList(SoilSample soilSample) {
......@@ -162,4 +190,34 @@ public class SoilSampleController extends ServiceController {
return success(soilSampleService.sendSample(ids,getAccount()));
}
@ApiOperation(value = "批量填写土质描述", notes = "批量填写土质描述")
@PostMapping("/write_soil_detail")
public RestResult<Boolean> writeSoilDetail(@RequestParam("ids")Long [] ids,@RequestParam("detail") String detail) {
return success(soilSampleService.writeSoilDetail(ids,detail,getAccount()));
}
@ApiOperation(value = "获取制备数据", notes = "获取制备数据")
@PostMapping("/obtain_prepare_data")
public RestResult<List<SoilPrepareVO>> obtainPrepareData(@RequestParam("ids")Long [] ids) {
return success(soilSampleService.obtainPrepareData(ids,getAccount()));
}
@ApiOperation(value = "样品开土制备完成", notes = "样品开土制备完成")
@PostMapping("/prepare_ok")
public RestResult<Boolean> prepareOk(@RequestBody SoilPrepareDTO soilPrepareDTO) {
return success(soilSampleService.prepareOk(soilPrepareDTO,getAccount()));
}
@ApiOperation(value = "试验实领样样品操作", notes = "收样室发放样品")
@PostMapping("/take_sample")
public RestResult<Boolean> takeSample(@RequestParam("ids")Long [] ids) {
return success(soilSampleService.takeSample(ids,getAccount()));
}
}
......@@ -2,6 +2,8 @@ package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -24,6 +26,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>
......@@ -99,4 +102,26 @@ public class SoilSamplePhotoController extends ServiceController {
return success(soilSamplePhotoService.remove(Condition.create().in("id", ids)));
}
@ApiOperation(value = "附件上传", notes = "附件上传")
@PostMapping("/upload/{entrustId}")
public RestResult<Boolean> upload(@PathVariable("entrustId") Long entrustId, MultipartFile file) {
return success(soilSamplePhotoService.upload(file, entrustId));
}
@ApiOperation(value = "下载附件", notes = "下载指定附件")
@GetMapping("/download/{id}")
public void downloadFile(@PathVariable("id")Long id) {
soilSamplePhotoService.downloadFile(id, response);
}
@ApiOperation(value = "预览图片", notes = "预览图片")
@Login(action = Action.Skip)
@GetMapping("/view")
public void view(String objectKey) {
soilSamplePhotoService.view(response, objectKey);
}
}
......@@ -24,4 +24,6 @@ public interface SoilEntrustMapper extends BaseMapper<SoilEntrust> {
List<SoilSampleDTO> listByContractId(@Param("entrustId") Long id);
List<SoilEntrustVO> selectVOListBySample(RowBounds rowBounds, @Param("vo")SoilEntrustVO soilEntrust);
List<SoilEntrustVO> selectVOListByExp(RowBounds rowBounds, @Param("vo")SoilEntrustVO soilEntrust);
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.soil.entity.SoilExperiment;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import java.util.List;
/**
* <p>
......@@ -13,4 +19,5 @@ import com.patzn.cloud.service.soil.entity.SoilExperiment;
*/
public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> {
List<SoilExperimentVO> selectListBySampleIds(RowBounds rowBounds, @Param("sampleIds") Long[] sampleIds, @Param("vo") SoilExperimentVO vo);
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.patzn.cloud.service.soil.entity.SoilExperimentRecord;
/**
* <p>
* 试验项目操作日志表 Mapper 接口
* </p>
*
* @author wwd
* @since 2020-09-22
*/
public interface SoilExperimentRecordMapper extends BaseMapper<SoilExperimentRecord> {
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.soil.entity.SoilPrepare;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import java.util.List;
/**
* <p>
......@@ -13,4 +19,5 @@ import com.patzn.cloud.service.soil.entity.SoilPrepare;
*/
public interface SoilPrepareMapper extends BaseMapper<SoilPrepare> {
List<SoilPrepareVO> selectTakeVOList(RowBounds rowBounds, @Param("vo") SoilPrepareVO soilSample, @Param("groupIds")List<Long> groupIds);
}
......@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.soil.entity.SoilSample;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
......@@ -22,4 +23,6 @@ public interface SoilSampleMapper extends BaseMapper<SoilSample> {
int selectEntrustCount(@Param("entrustIds") Long[] entrustIds);
List<SoilSampleVO> selectVOList(RowBounds rowBounds, @Param("vo") SoilSampleVO soilSample);
List<SoilSampleVO> selectVOListByExp(RowBounds rowBounds, @Param("vo")SoilSampleVO soilSample);
}
......@@ -39,5 +39,7 @@ public interface ISoilEntrustService extends IBaseService<SoilEntrust> {
boolean reviewPass(Long[] ids, Account account);
Page<SoilEntrustVO> pageVO(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust);
Page<SoilEntrustVO> pageVOBySample(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust);
Page<SoilEntrustVO> pageVOByExperiment(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust);
}
......@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.soil.service;
import java.util.List;
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.SoilExperimentOperation;
......@@ -21,4 +22,6 @@ public interface ISoilExperimentOperationService extends IBaseService<SoilExperi
List<SoilExperimentOperation> list(SoilExperimentOperation soilExperimentOperation);
void recordAllotInfo(Long[] ids, Account account);
}
package com.patzn.cloud.service.lims.soil.service;
import java.util.List;
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.SoilExperimentRecord;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
/**
* <p>
* 试验项目操作日志表 服务类
* </p>
*
* @author wwd
* @since 2020-09-22
*/
public interface ISoilExperimentRecordService extends IBaseService<SoilExperimentRecord> {
Page<SoilExperimentRecord> page(Page<SoilExperimentRecord> page, SoilExperimentRecord soilExperimentRecord);
List<SoilExperimentRecord> list(SoilExperimentRecord soilExperimentRecord);
void record(Long[] ids, SoilExpStatusEnum allot, SoilExpStatusEnum test, int i, Account account, String s);
}
......@@ -3,8 +3,10 @@ package com.patzn.cloud.service.lims.soil.service;
import java.util.List;
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.SoilExperiment;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
/**
* <p>
......@@ -21,4 +23,10 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
List<SoilExperiment> list(SoilExperiment soilExperiment);
boolean checkSampleHaveExperiment(Long[] ids);
boolean allotExp(Long[] ids, String user, Long userId, Account account);
Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo);
}
......@@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilPrepare;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
/**
* <p>
......@@ -21,4 +22,6 @@ public interface ISoilPrepareService extends IBaseService<SoilPrepare> {
List<SoilPrepare> list(SoilPrepare soilPrepare);
List<SoilPrepareVO> pageVOTake(Page<SoilPrepareVO> page, SoilPrepareVO soilSample, List<Long> groupIds);
}
package com.patzn.cloud.service.lims.soil.service;
import java.util.List;
import java.util.Set;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
......@@ -26,4 +27,6 @@ public interface ISoilSampleOperationService extends IBaseService<SoilSampleOper
boolean recordReceiveInfo(Long[] ids, Long locationId, String receiveLocation, Account account);
boolean recordSenderInfo(Long[] ids, Account account);
boolean recordMakerInfo(Set<Long> sampleIdSet, Account account);
}
......@@ -5,6 +5,9 @@ import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilSamplePhoto;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
......@@ -21,4 +24,10 @@ public interface ISoilSamplePhotoService extends IBaseService<SoilSamplePhoto> {
List<SoilSamplePhoto> list(SoilSamplePhoto soilSamplePhoto);
boolean upload(MultipartFile file, Long entrustId);
void downloadFile(Long id, HttpServletResponse response);
void view(HttpServletResponse response, String objectKey);
}
package com.patzn.cloud.service.lims.soil.service;
import java.util.Collection;
import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
......@@ -24,5 +25,7 @@ public interface ISoilSampleRecordService extends IBaseService<SoilSampleRecord>
List<SoilSampleRecord> list(SoilSampleRecord soilSampleRecord);
void record(SoilSampleStatusEnum receive, SoilSampleStatusEnum send, Long[] ids, int i, Account account, String 收样室收样);
void record(SoilSampleStatusEnum receive, SoilSampleStatusEnum send, Long[] ids, int type, Account account, String remark);
void record(SoilSampleStatusEnum receive, SoilSampleStatusEnum send, Collection<Long> ids, int type, Account account, String remark);
}
......@@ -5,7 +5,10 @@ import java.util.List;
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.dto.SoilPrepareDTO;
import com.patzn.cloud.service.soil.entity.SoilPrepare;
import com.patzn.cloud.service.soil.entity.SoilSample;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
/**
......@@ -36,4 +39,16 @@ public interface ISoilSampleService extends IBaseService<SoilSample> {
boolean receiveSample(Long[] ids, Long locationId, String receiveLocation, Account account);
boolean sendSample(Long[] ids, Account account);
boolean writeSoilDetail(Long[] ids, String detail, Account account);
List<SoilPrepareVO> obtainPrepareData(Long[] ids, Account account);
boolean prepareOk(SoilPrepareDTO soilPrepareDTO, Account account);
Page<SoilPrepareVO> pageTake(Page<SoilPrepareVO> page, SoilPrepareVO soilSample);
boolean takeSample(Long[] ids, Account account);
Page<SoilSampleVO> pageByExp(Page<SoilSampleVO> page, SoilSampleVO soilSample);
}
......@@ -20,6 +20,7 @@ import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.lims.soil.mapper.SoilEntrustMapper;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.enums.SoilEntrustStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilEntrustVO;
import org.apache.bcel.generic.IF_ACMPEQ;
import org.apache.commons.collections.CollectionUtils;
......@@ -266,8 +267,8 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
if (null == item.getId()){
item.setId(IdWorker.getId());
item.setSampleId(sample.getId());
item.setStatus(0);
item.setProgress(0);
item.setStatus(SoilExpStatusEnum.DRAFT);
item.setProgress(SoilExpStatusEnum.DRAFT);
saveItemList.add(item);
SoilExperimentOperation itemOperation = new SoilExperimentOperation();
itemOperation.setExperimentId(item.getId());
......@@ -302,6 +303,9 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交至委托单审批的试验委托单!");
//验证委托是否添加样品
RestAssert.fail(soilSampleService.checkEntrustHaveSample(ids),"委托下含有未添加样品的,请您确认!");
RestAssert.fail(!soilExperimentService.checkSampleHaveExperiment(ids),"试验委托下含有未添加试验项目的试样,请您确认!");
SoilEntrust entrust = new SoilEntrust();
entrust.setStatus(SoilEntrustStatusEnum.REVIEW);
entrust.setProgress(SoilEntrustStatusEnum.REVIEW);
......@@ -368,10 +372,15 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
}
@Override
public Page<SoilEntrustVO> pageVO(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust) {
public Page<SoilEntrustVO> pageVOBySample(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust) {
return page.setRecords(baseMapper.selectVOListBySample(page,soilEntrust));
}
@Override
public Page<SoilEntrustVO> pageVOByExperiment(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust) {
return page.setRecords(baseMapper.selectVOListByExp(page,soilEntrust));
}
public Map<Long,List<SoilExpItem>> getExpItemMap( Set<Long> aptitudeExpIdList){
Map<Long,List<SoilExpItem>> expItemMap= new HashMap<>();
......
package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.soil.entity.SoilExperimentOperation;
import com.patzn.cloud.service.lims.soil.mapper.SoilExperimentOperationMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentOperationService;
......@@ -35,4 +38,13 @@ public class SoilExperimentOperationServiceImpl extends BaseServiceImpl<SoilExpe
public List<SoilExperimentOperation> list(SoilExperimentOperation soilExperimentOperation) {
return this.list(new EntityWrapper<>(soilExperimentOperation));
}
@Override
public void recordAllotInfo(Long[] ids, Account account) {
SoilExperimentOperation operation = new SoilExperimentOperation();
operation.setAlloter(account.getUserName());
operation.setAlloterId(account.getUserId());
operation.setAllotTime(new Date());
super.update(operation, Condition.create().in("experiment_id",ids));
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.lims.soil.mapper.SoilExperimentRecordMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentRecordService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilExperimentRecord;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
/**
* <p>
* 试验项目操作日志表 服务实现类
* </p>
*
* @author wwd
* @since 2020-09-22
*/
@Service
public class SoilExperimentRecordServiceImpl extends BaseServiceImpl<SoilExperimentRecordMapper, SoilExperimentRecord> implements ISoilExperimentRecordService {
@Override
public Page<SoilExperimentRecord> page(Page<SoilExperimentRecord> page, SoilExperimentRecord soilExperimentRecord) {
Wrapper wrapper = new EntityWrapper<>(soilExperimentRecord);
return this.page(page, wrapper);
}
@Override
public List<SoilExperimentRecord> list(SoilExperimentRecord soilExperimentRecord) {
return this.list(new EntityWrapper<>(soilExperimentRecord));
}
@Override
public void record(Long[] ids, SoilExpStatusEnum from, SoilExpStatusEnum to, int type, Account account, String remark) {
List<SoilExperimentRecord> saveRecordList = new ArrayList<>();
for (Long id:ids) {
SoilExperimentRecord soilExperimentRecord = new SoilExperimentRecord();
soilExperimentRecord.setExperimentId(id);
soilExperimentRecord.setOrigin(from.getDisplay());
soilExperimentRecord.setTarget(to.getDisplay());
soilExperimentRecord.setType(type);
soilExperimentRecord.setOperator(account.getUserName());
soilExperimentRecord.setRemark(remark);
saveRecordList.add(soilExperimentRecord);
}
if (CollectionUtils.isNotEmpty(saveRecordList)){
saveBatch(saveRecordList);
}
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.StringUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentOperationService;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentRecordService;
import com.patzn.cloud.service.lims.soil.service.ISoilSampleService;
import com.patzn.cloud.service.soil.entity.SoilExperiment;
import com.patzn.cloud.service.lims.soil.mapper.SoilExperimentMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilSample;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
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.transaction.annotation.Transactional;
/**
* <p>
......@@ -22,6 +37,13 @@ import com.baomidou.mybatisplus.plugins.Page;
@Service
public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMapper, SoilExperiment> implements ISoilExperimentService {
@Autowired
private ISoilSampleService soilSampleService;
@Autowired
private ISoilExperimentOperationService experimentOperationService;
@Autowired
private ISoilExperimentRecordService experimentRecordService;
@Override
public Page<SoilExperiment> page(Page<SoilExperiment> page, SoilExperiment soilExperiment) {
......@@ -35,4 +57,43 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
public List<SoilExperiment> list(SoilExperiment soilExperiment) {
return this.list(new EntityWrapper<>(soilExperiment));
}
@Override
public boolean checkSampleHaveExperiment(Long[] ids) {
List<SoilSample> sampleList = soilSampleService.list(Condition.create().setSqlSelect("id").in("entrust_id",ids));
if (CollectionUtils.isEmpty(sampleList)){
return false;
}
List<Long> sampleIds = sampleList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
List<SoilExperiment> experimentList = super.list(Condition.create().setSqlSelect("sample_id").in("sample_id",sampleIds).groupBy("sample_id"));
if (CollectionUtils.isEmpty(experimentList)){
return false;
}
return sampleIds.size() == experimentList.size();
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean allotExp(Long[] ids, String user, Long userId, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要分配的试验项目");
RestAssert.fail(null == userId|| StringUtils.isEmpty(user),"请选择要分配给的试验员");
SoilExperiment experiment = new SoilExperiment();
experiment.setStatus(SoilExpStatusEnum.TEST);
experiment.setProgress(SoilExpStatusEnum.TEST);
experiment.setTesterId(userId);
experiment.setTester(user);
if (update(experiment,Condition.create().in("id",ids))){
experimentOperationService.recordAllotInfo(ids,account);
experimentRecordService.record(ids,SoilExpStatusEnum.ALLOT,SoilExpStatusEnum.TEST,0,account,"试验项目分配给:"+user);
}
return true;
}
@Override
public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) {
return page.setRecords(baseMapper.selectListBySampleIds(page,sampleIds,vo));
}
}
......@@ -6,6 +6,7 @@ import com.patzn.cloud.service.soil.entity.SoilPrepare;
import com.patzn.cloud.service.lims.soil.mapper.SoilPrepareMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilPrepareService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
......@@ -35,4 +36,9 @@ public class SoilPrepareServiceImpl extends BaseServiceImpl<SoilPrepareMapper, S
public List<SoilPrepare> list(SoilPrepare soilPrepare) {
return this.list(new EntityWrapper<>(soilPrepare));
}
@Override
public List<SoilPrepareVO> pageVOTake(Page<SoilPrepareVO> page, SoilPrepareVO soilSample, List<Long> groupIds) {
return baseMapper.selectTakeVOList(page,soilSample,groupIds);
}
}
......@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.controller.Account;
......@@ -58,4 +59,13 @@ public class SoilSampleOperationServiceImpl extends BaseServiceImpl<SoilSampleOp
operation.setSendTime(new Date());
return super.update(operation, Condition.create().in("sample_id",ids));
}
@Override
public boolean recordMakerInfo(Set<Long> sampleIdSet, Account account) {
SoilSampleOperation operation = new SoilSampleOperation();
operation.setMaker(account.getUserName());
operation.setMakerId(account.getUserId());
operation.setMakeTime(new Date());
return super.update(operation, Condition.create().in("sample_id",sampleIdSet));
}
}
......@@ -2,14 +2,24 @@ package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.List;
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.service.ISoilEntrustService;
import com.patzn.cloud.service.soil.entity.SoilSamplePhoto;
import com.patzn.cloud.service.lims.soil.mapper.SoilSamplePhotoMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilSamplePhotoService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
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.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
......@@ -22,6 +32,12 @@ import com.baomidou.mybatisplus.plugins.Page;
@Service
public class SoilSamplePhotoServiceImpl extends BaseServiceImpl<SoilSamplePhotoMapper, SoilSamplePhoto> implements ISoilSamplePhotoService {
@Autowired
private OssClient ossClient;
@Autowired
private ISoilEntrustService soilEntrustService;
@Override
public Page<SoilSamplePhoto> page(Page<SoilSamplePhoto> page, SoilSamplePhoto soilSamplePhoto) {
......@@ -35,4 +51,56 @@ public class SoilSamplePhotoServiceImpl extends BaseServiceImpl<SoilSamplePhotoM
public List<SoilSamplePhoto> list(SoilSamplePhoto soilSamplePhoto) {
return this.list(new EntityWrapper<>(soilSamplePhoto));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean upload(MultipartFile file, Long entrustId) {
RestAssert.fail(null == entrustId,"请选择试验委托单");
String fileName = file.getOriginalFilename();
RestAssert.fail(StringUtils.isBlank(fileName), "请上传文件");
String expandName = fileName.substring(fileName.lastIndexOf( "."),fileName.length());
// 判断文件扩展名
if (!expandName.equalsIgnoreCase( ".jpg")
&& !expandName.equalsIgnoreCase( ".jpeg")
&& !expandName.equalsIgnoreCase( ".bmp")
&& !expandName.equalsIgnoreCase( ".gif")
&& !expandName.equalsIgnoreCase( ".png")
)
{
RestAssert.fail("请上传图片文件,格式包含: .jpg .jpeg .bmp .gif .png! ");
}
if (null==soilEntrustService.getById(entrustId)){
RestAssert.fail("委托单不存在");
}
OssFileResult result = ossClient.upload(file);
if (null == result) {
return false;
}
SoilSamplePhoto soilSamplePhoto = new SoilSamplePhoto();
soilSamplePhoto.setBucketName(result.getBucketName());
soilSamplePhoto.setType(result.getType());
soilSamplePhoto.setFileName(result.getName());
soilSamplePhoto.setObjectKey(result.getObjectKey());
soilSamplePhoto.setVersionId(result.getVersionId());
soilSamplePhoto.setEntrustId(entrustId);
return save(soilSamplePhoto);
}
@Override
public void downloadFile(Long id, HttpServletResponse response) {
SoilSamplePhoto attachment = super.getById(id);
if (null == attachment) {
RestAssert.fail("抱歉!该照片不存在");
}
ossClient.download(attachment.getObjectKey(), attachment.getFileName() + "." + attachment.getType(), response);
}
@Override
public void view(HttpServletResponse response, String objectKey) {
ossClient.download(objectKey, response);
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
......@@ -45,6 +46,15 @@ public class SoilSampleRecordServiceImpl extends BaseServiceImpl<SoilSampleRecor
List<SoilSampleRecord> saveList = new ArrayList<>();
for (Long sampleId:ids) {
saveList.add(initSoilSampleRecord(sampleId,account,from,to,type,remark));
}
if (CollectionUtils.isNotEmpty(saveList)){
saveBatch(saveList);
}
}
public SoilSampleRecord initSoilSampleRecord(Long sampleId,Account account,SoilSampleStatusEnum from, SoilSampleStatusEnum to,int type,String remark){
SoilSampleRecord record = new SoilSampleRecord();
record.setSampleId(sampleId);
record.setOperator(account.getUserName());
......@@ -53,7 +63,15 @@ public class SoilSampleRecordServiceImpl extends BaseServiceImpl<SoilSampleRecor
record.setOrigin(from.getDisplay());
record.setOperatorId(account.getUserId());
record.setRemark(remark);
saveList.add(record);
return record;
}
@Override
public void record(SoilSampleStatusEnum from, SoilSampleStatusEnum to, Collection<Long> ids, int type, Account account, String remark) {
List<SoilSampleRecord> saveList = new ArrayList<>();
for (Long sampleId:ids) {
saveList.add(initSoilSampleRecord(sampleId,account,from,to,type,remark));
}
if (CollectionUtils.isNotEmpty(saveList)){
saveBatch(saveList);
......
......@@ -70,4 +70,40 @@
</select>
<select id="selectVOListByExp" resultType="com.patzn.cloud.service.soil.vo.SoilEntrustVO">
WITH s AS (
SELECT
s.entrust_id
FROM
( SELECT sample_id FROM soil_experiment t WHERE t.deleted = 0
<if test="vo.expStatus!=null">
AND t.status = #{vo.expStatus}
</if>
<if test="null!=vo.expStatusList">
AND t.status IN
<foreach collection="vo.expStatusList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
GROUP BY sample_id ) t
JOIN soil_sample s ON t.sample_id =s.id
WHERE s.deleted = 0
GROUP BY s.entrust_id
)
SELECT * FROM soil_entrust e JOIN s ON e.id = s.entrust_id
WHERE e.deleted = 0
</select>
</mapper>
......@@ -2,4 +2,43 @@
<!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.SoilExperimentMapper">
<select id="selectListBySampleIds" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT
t.id,
t.name,
t.el_name,
t.short_name,
t.main_type,
t.small_type,
t.test_basis,
t.test_method,
t.tester,
t.status,
t.progress,
t.group_name,
t.group_id,
s.sample_code,
s.sample_depth,
s.describe_detail,
s.sample_pack
FROM soil_experiment t
JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE t.deleted = 0 AND s.deleted = 0 AND e.deleted =0
<if test="vo.status!=null">
AND t.status = #{vo.status}
</if>
<if test="null!=sampleIds">
AND t.sample_id IN
<foreach collection="sampleIds" index="index" item="sampleId" open="(" separator="," close=")">
#{sampleId}
</foreach>
</if>
</select>
</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.SoilExperimentRecordMapper">
</mapper>
......@@ -2,4 +2,40 @@
<!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.SoilPrepareMapper">
<select id="selectTakeVOList" resultType="com.patzn.cloud.service.soil.vo.SoilPrepareVO">
SELECT
p.id,
p.group_name,
p.group_id,
p.quantity,
p.unit,
p.status,
p.progress,
s.sample_code,
s.sample_pack,
s.sample_describe,
s.describe_detail
FROM
soil_prepare p
JOIN soil_sample s ON p.sample_id = s.id
WHERE
p.deleted = 0
AND s.deleted = 0
AND p.type = 0
<if test="vo.status!=null">
AND p.status = #{vo.status}
</if>
<if test="vo.sampleCode!=null">
AND s.sample_code LIKE CONCAT('%',#{vo.sampleCode},'%')
</if>
<if test="groupIds!=null">
AND p.group_id IN
<foreach collection="groupIds" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</select>
</mapper>
......@@ -17,6 +17,7 @@
s.sample_depth,
s.sample_pack,
s.sample_describe,
s.describe_detail,
s.status,
s.progress
</sql>
......@@ -33,9 +34,7 @@
e.tabulate_date,
e.approve_date,
e.tabulater,
e.approver,
e.status,
e.progress
e.approver
</sql>
<sql id="sWhere">
<if test="null!=vo.entrustId">
......@@ -62,4 +61,25 @@
</select>
<select id="selectVOListByExp" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO">
WITH exp AS (
SELECT sample_id,company_id FROM soil_experiment WHERE deleted = 0
<if test="null!=vo.expStatus">
AND status = #{vo.expStatus}
</if>
GROUP BY sample_id,company_id
)
SELECT <include refid="sColumn"/>,<include refid="eColumn"/> FROM soil_sample s
JOIN soil_sample_operation o ON s.id = o.sample_id
JOIN soil_entrust e ON s.entrust_id = e.id
JOIN exp p ON p.sample_id = s.id
WHERE s.deleted = 0 AND e.deleted = 0
<include refid="sWhere"/>
</select>
</mapper>
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