Commit a6c3daee by wangweidong

烟草系统demo修改

parent 8bd24004
...@@ -718,7 +718,6 @@ public class StringHandleUtils { ...@@ -718,7 +718,6 @@ public class StringHandleUtils {
public static int compareBig(String one, String two) { public static int compareBig(String one, String two) {
return new BigDecimal(one).compareTo(new BigDecimal(two)); return new BigDecimal(one).compareTo(new BigDecimal(two));
} }
} }
...@@ -1123,4 +1123,27 @@ public class DrugSampleController extends ServiceController<IDrugSampleService, ...@@ -1123,4 +1123,27 @@ public class DrugSampleController extends ServiceController<IDrugSampleService,
return success(baseService.submitFlow(flowDTO,getAccount())); return success(baseService.submitFlow(flowDTO,getAccount()));
} }
@ApiOperation(value = "样品数据查阅", notes = "样品数据查阅")
@ApiImplicitParams({
@ApiImplicitParam(name = PtConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = PtConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = PtConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = PtConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page-sample-data-query")
public PtResult<IPage<DrugSampleVO>> getPageSampleDataQuery(DrugSampleVO vo) {
vo.setStatusList(Lists.newArrayList(SampleStatusEnum.REPORT_MAKE,SampleStatusEnum.REPORT_CHECK,SampleStatusEnum.REPORT_ISSUE,SampleStatusEnum.END));
vo.setCompanyId(getAccount().getCompanyId());
return success(baseService.pageSampleDataQuery(getPage(), vo));
}
@ApiOperation(value = "导出低倍结果", notes = "导出低倍结果")
@PostMapping("/export_sample_test_data/")
public void exportSampleTestData(DrugSampleVO sampleVO){
baseService.exportSampleTestData(response,sampleVO);
}
} }
...@@ -92,4 +92,10 @@ public class DrugItem extends BaseEntity { ...@@ -92,4 +92,10 @@ public class DrugItem extends BaseEntity {
private BigDecimal sampleQuantity; private BigDecimal sampleQuantity;
@ApiModelProperty(value = "不合格数量")
private Integer failQuantity;
@ApiModelProperty(value = "标偏")
private String deviation;
} }
...@@ -111,6 +111,6 @@ public class DrugSample extends BaseEntity { ...@@ -111,6 +111,6 @@ public class DrugSample extends BaseEntity {
@ApiModelProperty(value = "被复检样品ID") @ApiModelProperty(value = "被复检样品ID")
private Long recheckId; private Long recheckId;
@ApiModelProperty(value = "是否流转")
private Integer flowed;
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.web.Account; import com.patzn.lims.core.web.Account;
import com.patzn.lims.core.web.IBaseService; import com.patzn.lims.core.web.IBaseService;
import com.patzn.lims.drug.entity.DrugItemOperation; import com.patzn.lims.drug.entity.DrugItemOperation;
import com.patzn.lims.drug.entity.DrugSampleOperation;
/** /**
* <p> * <p>
...@@ -22,4 +23,5 @@ public interface IDrugItemOperationService extends IBaseService<DrugItemOperatio ...@@ -22,4 +23,5 @@ public interface IDrugItemOperationService extends IBaseService<DrugItemOperatio
boolean writeChecker(Long[] ids, Account account); boolean writeChecker(Long[] ids, Account account);
boolean writeAuditor(Long[] ids, Account account); boolean writeAuditor(Long[] ids, Account account);
} }
...@@ -9,6 +9,7 @@ import com.patzn.lims.drug.entity.DrugItemAllocate; ...@@ -9,6 +9,7 @@ import com.patzn.lims.drug.entity.DrugItemAllocate;
import com.patzn.lims.drug.eunms.ItemStatusEnum; import com.patzn.lims.drug.eunms.ItemStatusEnum;
import com.patzn.lims.drug.vo.DrugItemVO; import com.patzn.lims.drug.vo.DrugItemVO;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
...@@ -50,7 +51,7 @@ public interface IDrugItemService extends IBaseService<DrugItem> { ...@@ -50,7 +51,7 @@ public interface IDrugItemService extends IBaseService<DrugItem> {
boolean updateByCondition(Long[] ids, ItemStatusEnum allocate); boolean updateByCondition(Long[] ids, ItemStatusEnum allocate);
boolean updateByCondition(List<Long> ids, ItemStatusEnum allocate); boolean updateByCondition(Collection<Long> ids, ItemStatusEnum allocate);
boolean updateByConditionIds(List<Long> ids, ItemStatusEnum allocate); boolean updateByConditionIds(List<Long> ids, ItemStatusEnum allocate);
...@@ -82,4 +83,8 @@ public interface IDrugItemService extends IBaseService<DrugItem> { ...@@ -82,4 +83,8 @@ public interface IDrugItemService extends IBaseService<DrugItem> {
Page<DrugItemVO> pageItemFail(Page page,DrugItemVO notOK, Account account); Page<DrugItemVO> pageItemFail(Page page,DrugItemVO notOK, Account account);
StatisticSampleItem getSampleItemNum(StatisticSampleItem sampleItem, Account account); StatisticSampleItem getSampleItemNum(StatisticSampleItem sampleItem, Account account);
List<DrugItem> listBySampleIds(Long[] ids);
List<DrugItem> listBySampleIds(Collection<Long> ids);
} }
...@@ -32,6 +32,8 @@ public interface IDrugSampleOperationService extends IBaseService<DrugSampleOper ...@@ -32,6 +32,8 @@ public interface IDrugSampleOperationService extends IBaseService<DrugSampleOper
boolean updateReceiveToFlow(Account account, Long[] ids); boolean updateReceiveToFlow(Account account, Long[] ids);
boolean updateReceiveToFlow(Account account, Collection<Long> ids);
boolean updateSampleToReport(List<Long> sampleIdEnd, Account account); boolean updateSampleToReport(List<Long> sampleIdEnd, Account account);
boolean updateReportMakeInfo(Long[] ids, Account account); boolean updateReportMakeInfo(Long[] ids, Account account);
...@@ -39,4 +41,6 @@ public interface IDrugSampleOperationService extends IBaseService<DrugSampleOper ...@@ -39,4 +41,6 @@ public interface IDrugSampleOperationService extends IBaseService<DrugSampleOper
boolean updateCheckReportInfo(Long[] ids, Account account); boolean updateCheckReportInfo(Long[] ids, Account account);
boolean updateIssueReportInfo(Long[] ids, Account account); boolean updateIssueReportInfo(Long[] ids, Account account);
DrugSampleOperation getBySampleId(Long id);
} }
...@@ -11,6 +11,7 @@ import com.patzn.lims.drug.vo.DrugSampleOosVO; ...@@ -11,6 +11,7 @@ import com.patzn.lims.drug.vo.DrugSampleOosVO;
import com.patzn.lims.drug.vo.DrugSampleVO; import com.patzn.lims.drug.vo.DrugSampleVO;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
...@@ -41,6 +42,8 @@ public interface IDrugSampleService extends IBaseService<DrugSample> { ...@@ -41,6 +42,8 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
boolean submitReceive(Long[] ids, Account account); boolean submitReceive(Long[] ids, Account account);
boolean submitReceive(Collection<Long> ids, Account account);
boolean submitReceiveToFlow(Long[] ids, Account account); boolean submitReceiveToFlow(Long[] ids, Account account);
...@@ -52,6 +55,9 @@ public interface IDrugSampleService extends IBaseService<DrugSample> { ...@@ -52,6 +55,9 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
Page<DrugSampleVO> pageVOReport(Page page, DrugSampleVO vo); Page<DrugSampleVO> pageVOReport(Page page, DrugSampleVO vo);
Page<DrugSampleVO> pageSampleDataQuery(Page page, DrugSampleVO vo);
boolean submitReportMake(Long[] ids, Account account); boolean submitReportMake(Long[] ids, Account account);
List<DrugSample> getListByIds(Long[] ids); List<DrugSample> getListByIds(Long[] ids);
...@@ -104,4 +110,5 @@ public interface IDrugSampleService extends IBaseService<DrugSample> { ...@@ -104,4 +110,5 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
boolean submitFlow(DrugSampleFlowDTO flowDTO, Account account); boolean submitFlow(DrugSampleFlowDTO flowDTO, Account account);
void exportSampleTestData(HttpServletResponse response, DrugSampleVO sampleVO);
} }
...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.web.IBaseService; import com.patzn.lims.core.web.IBaseService;
import com.patzn.lims.drug.entity.TestValueExtend; import com.patzn.lims.drug.entity.TestValueExtend;
import java.util.List;
/** /**
* <p> * <p>
* 检测值扩展表 服务类 * 检测值扩展表 服务类
...@@ -15,4 +17,6 @@ import com.patzn.lims.drug.entity.TestValueExtend; ...@@ -15,4 +17,6 @@ import com.patzn.lims.drug.entity.TestValueExtend;
public interface ITestValueExtendService extends IBaseService<TestValueExtend> { public interface ITestValueExtendService extends IBaseService<TestValueExtend> {
Page<TestValueExtend> page(Page<TestValueExtend> page, TestValueExtend testValueExtend); Page<TestValueExtend> page(Page<TestValueExtend> page, TestValueExtend testValueExtend);
List<TestValueExtend> listBySampleIds(Long id);
} }
package com.patzn.lims.drug.service.impl; package com.patzn.lims.drug.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.patzn.lims.core.web.Account; import com.patzn.lims.core.web.Account;
import com.patzn.lims.drug.entity.DrugItemOperation; import com.patzn.lims.drug.entity.DrugItemOperation;
import com.patzn.lims.drug.entity.DrugSample;
import com.patzn.lims.drug.entity.DrugSampleOos;
import com.patzn.lims.drug.entity.DrugSampleOperation;
import com.patzn.lims.drug.mapper.DrugItemOperationMapper; import com.patzn.lims.drug.mapper.DrugItemOperationMapper;
import com.patzn.lims.drug.service.IDrugItemOperationService; import com.patzn.lims.drug.service.IDrugItemOperationService;
import com.patzn.lims.core.web.BaseServiceImpl; import com.patzn.lims.core.web.BaseServiceImpl;
...@@ -57,4 +61,6 @@ public class DrugItemOperationServiceImpl extends BaseServiceImpl<DrugItemOperat ...@@ -57,4 +61,6 @@ public class DrugItemOperationServiceImpl extends BaseServiceImpl<DrugItemOperat
} }
} }
...@@ -178,9 +178,9 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte ...@@ -178,9 +178,9 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte
} }
} }
if ((equipMap==null||equipMap.size()==0&&(extendsMap==null||extendsMap.size()==0))){
return voPage;
}
for (DrugItemVO itemVO:list) { for (DrugItemVO itemVO:list) {
Set<String> set= equipMap.get(itemVO.getId()); Set<String> set= equipMap.get(itemVO.getId());
if (null!=set){ if (null!=set){
...@@ -392,7 +392,7 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte ...@@ -392,7 +392,7 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte
@Override @Override
public boolean updateByCondition(List<Long> ids, ItemStatusEnum allocate) { public boolean updateByCondition(Collection<Long> ids, ItemStatusEnum allocate) {
if (CollectionUtils.isEmpty(ids)){ if (CollectionUtils.isEmpty(ids)){
return false; return false;
} }
...@@ -880,4 +880,14 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte ...@@ -880,4 +880,14 @@ public class DrugItemServiceImpl extends BaseServiceImpl<DrugItemMapper, DrugIte
statisticSampleItem.setTotalSample(drugSampleService.count()); statisticSampleItem.setTotalSample(drugSampleService.count());
return statisticSampleItem; return statisticSampleItem;
} }
@Override
public List<DrugItem> listBySampleIds(Long[] ids) {
return super.list(Wrappers.<DrugItem>query().in("sample_id",ids));
}
@Override
public List<DrugItem> listBySampleIds(Collection<Long> ids) {
return super.list(Wrappers.<DrugItem>query().in("sample_id",ids));
}
} }
...@@ -70,6 +70,13 @@ public class DrugSampleOperationServiceImpl extends BaseServiceImpl<DrugSampleOp ...@@ -70,6 +70,13 @@ public class DrugSampleOperationServiceImpl extends BaseServiceImpl<DrugSampleOp
@Override @Override
public boolean updateReceiveToFlow(Account account, Collection<Long> ids) {
return super.update(new DrugSampleOperation().setReceiver(account.getUserName()).setReceiverId(account.getUserId())
.setReceiveTime(new Date()),Wrappers.<DrugSampleOperation>query().in("sample_id",ids));
}
@Override
public boolean updateSampleToReport(List<Long> sampleIdEnd, Account account) { public boolean updateSampleToReport(List<Long> sampleIdEnd, Account account) {
return super.update(new DrugSampleOperation().setTestEndTime(new Date()),Wrappers.<DrugSampleOperation>query().in("sample_id",sampleIdEnd)); return super.update(new DrugSampleOperation().setTestEndTime(new Date()),Wrappers.<DrugSampleOperation>query().in("sample_id",sampleIdEnd));
} }
...@@ -96,4 +103,9 @@ public class DrugSampleOperationServiceImpl extends BaseServiceImpl<DrugSampleOp ...@@ -96,4 +103,9 @@ public class DrugSampleOperationServiceImpl extends BaseServiceImpl<DrugSampleOp
Wrappers.<DrugSampleOperation>query().in("sample_id",ids)); Wrappers.<DrugSampleOperation>query().in("sample_id",ids));
} }
@Override
public DrugSampleOperation getBySampleId(Long id) {
return super.getOne(Wrappers.<DrugSampleOperation>query().eq("sample_id",id).last("LIMIT 1"));
}
} }
...@@ -27,6 +27,7 @@ import com.patzn.lims.drug.vo.DrugItemVO; ...@@ -27,6 +27,7 @@ import com.patzn.lims.drug.vo.DrugItemVO;
import com.patzn.lims.drug.vo.DrugSampleOosVO; import com.patzn.lims.drug.vo.DrugSampleOosVO;
import com.patzn.lims.drug.vo.DrugSampleVO; import com.patzn.lims.drug.vo.DrugSampleVO;
import com.patzn.lims.res.enums.CodeTypeEnum; import com.patzn.lims.res.enums.CodeTypeEnum;
import com.patzn.lims.res.service.IExportService;
import com.patzn.lims.res.service.ILmsCodeRuleService; import com.patzn.lims.res.service.ILmsCodeRuleService;
import com.patzn.lims.sys.entity.SysFileSignature; import com.patzn.lims.sys.entity.SysFileSignature;
import com.patzn.lims.sys.entity.SysFileTemplate; import com.patzn.lims.sys.entity.SysFileTemplate;
...@@ -38,6 +39,10 @@ import com.patzn.poibox.xwpf.PoiUtil2007; ...@@ -38,6 +39,10 @@ import com.patzn.poibox.xwpf.PoiUtil2007;
import com.patzn.poibox.xwpf.XWPFTemplate; import com.patzn.poibox.xwpf.XWPFTemplate;
import com.patzn.poibox.xwpf.template.render.data.PictureRenderData; import com.patzn.poibox.xwpf.template.render.data.PictureRenderData;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.apache.poi.xwpf.usermodel.XWPFTableCell;
...@@ -104,6 +109,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru ...@@ -104,6 +109,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
@Autowired @Autowired
private IDrugSampleFlowService drugSampleFlowService; private IDrugSampleFlowService drugSampleFlowService;
@Autowired
private IExportService exportService;
@Autowired
private ITestValueExtendService testValueExtendService;
@Override @Override
public Page<DrugSample> page(Page<DrugSample> page, DrugSample drugSample) { public Page<DrugSample> page(Page<DrugSample> page, DrugSample drugSample) {
QueryWrapper<DrugSample> wrapper = Wrappers.<DrugSample>query(drugSample); QueryWrapper<DrugSample> wrapper = Wrappers.<DrugSample>query(drugSample);
...@@ -458,12 +469,13 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru ...@@ -458,12 +469,13 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitReceiveToFlow(Long[] ids, Account account) { public boolean submitReceive(Collection<Long> ids, Account account) {
ObjectUtils.checkNull(ids); ObjectUtils.checkNull(ids);
List<DrugItem> checkItemList = drugItemService.list(Wrappers.<DrugItem>query().select("sample_id").in("sample_id",ids).groupBy("sample_id")); List<DrugItem> checkItemList = drugItemService.list(Wrappers.<DrugItem>query().select("sample_id").in("sample_id",ids).groupBy("sample_id"));
if (checkItemList.size()!= ids.length){ if (checkItemList.size()!= ids.size()){
PtAssert.fail("接收的样品没有检测项目,请确认"); PtAssert.fail("接收的样品没有检测项目,请确认");
} }
//如果有非样品接收状态的说明已经提交过无法再次提交 //如果有非样品接收状态的说明已经提交过无法再次提交
...@@ -471,15 +483,50 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru ...@@ -471,15 +483,50 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
if (count>0){ if (count>0){
PtAssert.fail("您选择的任务含有已经接收的,请确认"); PtAssert.fail("您选择的任务含有已经接收的,请确认");
} }
if (update(new DrugSample().setStatus(SampleStatusEnum.FLOW).setProgress(SampleStatusEnum.FLOW), if (update(new DrugSample().setStatus(SampleStatusEnum.TEST).setProgress(SampleStatusEnum.TEST),
Wrappers.<DrugSample>query().in("id",ids))){ Wrappers.<DrugSample>query().in("id",ids))){
drugSampleOperationService.updateReceiveToFlow(account,ids); drugSampleOperationService.updateReceiveToTest(account,ids);
drugSampleRecordService.record(account,SampleStatusEnum.RECEIVE,SampleStatusEnum.FLOW,ids,"样品接收提交"); drugSampleRecordService.record(account,SampleStatusEnum.RECEIVE,SampleStatusEnum.TEST,ids,"样品接收提交");
return true; return drugItemService.updateByCondition(ids,ItemStatusEnum.INPUT);
} }
return false; return false;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public boolean submitReceiveToFlow(Long[] ids, Account account) {
ObjectUtils.checkNull(ids);
List<DrugItem> checkItemList = drugItemService.list(Wrappers.<DrugItem>query().select("sample_id").in("sample_id",ids).groupBy("sample_id"));
if (checkItemList.size()!= ids.length){
PtAssert.fail("接收的样品没有检测项目,请确认");
}
//如果有非样品接收状态的说明已经提交过无法再次提交
int count= count(Wrappers.<DrugSample>query().in("id",ids).ne("status", SampleStatusEnum.RECEIVE));
if (count>0){
PtAssert.fail("您选择的任务含有已经接收的,请确认");
}
List<DrugSample> flowList = list(Wrappers.<DrugSample>query().eq("flowed",1).in("id",ids));
if (CollectionUtils.isNotEmpty(flowList)){
List<Long> sampleFlowedList = flowList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
if (update(new DrugSample().setStatus(SampleStatusEnum.FLOW).setProgress(SampleStatusEnum.FLOW),
Wrappers.<DrugSample>query().in("id",sampleFlowedList))){
drugSampleOperationService.updateReceiveToFlow(account,sampleFlowedList);
drugSampleRecordService.record(account,SampleStatusEnum.RECEIVE,SampleStatusEnum.FLOW,sampleFlowedList,"样品接收提交");
}
}
List<DrugSample> flowNotList = list(Wrappers.<DrugSample>query().eq("flowed",0).in("id",ids));
if (CollectionUtils.isNotEmpty(flowNotList)){
List<Long> sampleNotFlowList = flowNotList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
submitReceive(sampleNotFlowList,account);
}
return true;
}
@Override @Override
public Page<DrugSampleVO> pageVOByItemStatus(Page page, DrugSampleVO vo) { public Page<DrugSampleVO> pageVOByItemStatus(Page page, DrugSampleVO vo) {
return baseMapper.selectVOByItemStatusList(page,vo); return baseMapper.selectVOByItemStatusList(page,vo);
...@@ -564,6 +611,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru ...@@ -564,6 +611,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
@Override
public Page<DrugSampleVO> pageSampleDataQuery(Page page, DrugSampleVO vo) {
return baseMapper.selectVOList(page,vo);
}
private void insertImage(List<DrugSample> list, Account account, String key, String imageKey, int i) { private void insertImage(List<DrugSample> list, Account account, String key, String imageKey, int i) {
...@@ -1298,6 +1351,10 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru ...@@ -1298,6 +1351,10 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
} }
if (CollectionUtils.isNotEmpty(changeListIds)){ if (CollectionUtils.isNotEmpty(changeListIds)){
DrugSample sample= new DrugSample();
sample.setStatus(SampleStatusEnum.TEST);
sample.setProgress(SampleStatusEnum.TEST);
super.update(sample,Wrappers.<DrugSample>query().in("id",changeListIds));
drugSampleOperationService.updateReceiveToTest(account,changeListIds); drugSampleOperationService.updateReceiveToTest(account,changeListIds);
drugSampleRecordService.record(account,SampleStatusEnum.RECEIVE,SampleStatusEnum.TEST,changeListIds,"样品流转完成"); drugSampleRecordService.record(account,SampleStatusEnum.RECEIVE,SampleStatusEnum.TEST,changeListIds,"样品流转完成");
} }
...@@ -1305,4 +1362,380 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru ...@@ -1305,4 +1362,380 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
return true; return true;
} }
@Override
public void exportSampleTestData(HttpServletResponse response, DrugSampleVO sampleVO) {
Long [] ids = null;
String sampleIdStr = sampleVO.getIdsStr();
if (StringUtils.isNotBlank(sampleIdStr)){
String [] sampleIds = sampleIdStr.split(",");
int length = sampleIds.length;
if (length>0){
ids = new Long[length];
for (int i = 0; i < sampleIds.length; i++) {
ids [i] =Long.parseLong(sampleIds[i]);
}
}
}
if (ArrayUtils.isEmpty(ids)){
ids = null;
PtAssert.fail("请选择要导出的数据");
return;
}
List<DrugSample> voList= getListByIds(ids);
if (CollectionUtils.isEmpty(voList)){
return;
}
List<DrugItem> itemList = drugItemService.listBySampleIds(ids);
Map<Long,List<DrugItem>> itemMap=new HashMap<>();
for (DrugItem item:itemList) {
if (itemMap.containsKey(item.getSampleId())){
List<DrugItem> drugItemList= itemMap.get(item.getSampleId());
drugItemList.add(item);
itemMap.put(item.getSampleId(),drugItemList);
}else{
List<DrugItem> drugItemList=new ArrayList<>();
drugItemList.add(item);
itemMap.put(item.getSampleId(),drugItemList);
}
}
XSSFWorkbook xssfWorkbook= exportService.getXSSFWorkbook("TestDataExport.xlsx");
XSSFSheet sheet=xssfWorkbook.getSheetAt(0);
XSSFSheet sheet1=xssfWorkbook.getSheetAt(1);
XSSFSheet sheet2=xssfWorkbook.getSheetAt(2);
XSSFSheet sheet3=xssfWorkbook.getSheetAt(3);
int sampleSize = voList.size();
int beginIndex0=3;
int beginIndex1=5;
int beginIndex2=5;
int beginIndex3=5;
for (int i = 0; i < sampleSize; i++) {
DrugSample sample = voList.get(i);
DrugSampleOperation operation =drugSampleOperationService.getBySampleId(sample.getId());
List<DrugItem> drugItems = itemMap.get(sample.getId());
Map<String,DrugItem> stringMap = drugItems.stream().collect(Collectors.toMap(DrugItem::getName, a -> a,(k1,k2)->k1));
Row row= sheet.getRow(beginIndex0);
if (null == row){
row=sheet.createRow(beginIndex0);
}
for (int j = 1; j < 5; j++) {
Cell cell = row.getCell(j);
if (null == cell){
cell = row.createCell(j);
}
if (1==j){
cell.setCellValue(sample.getName());
}else if (2==j){
cell.setCellValue(sample.getSamplePoint());
}else if (3==j){
cell.setCellValue(sample.getClassBan());
}else if (4==j){
cell.setCellValue(sample.getStandard());
}
}
//sheet1
Row row11= sheet1.getRow(beginIndex1);
if (null == row11){
row11=sheet1.createRow(beginIndex1);
}
for (int i1 = 1; i1 < 11; i1++) {
Cell cell11 = row11.getCell(i1);
if (null == cell11){
cell11 = row11.createCell(i1);
}
if (i1 == 1){
cell11.setCellValue(sample.getSampleCode());
}else if (i1 ==2){
cell11.setCellValue(sample.getName());
}else if (i1 ==3){
cell11.setCellValue(sample.getCategory());
}else if (i1 ==4){
cell11.setCellValue(sample.getStandard());
}else if (i1 ==5){
cell11.setCellValue(DateUtils.dateTransfer(sample.getPcTime(),"yyyy-MM-dd"));
}else if (i1 ==6){
cell11.setCellValue(sample.getSamplePoint());
}else if (i1 ==7){
cell11.setCellValue(sample.getClassBan());
}else if (i1 ==8){
cell11.setCellValue(DateUtils.dateTransfer(operation.getTestEndTime(),"yyyy-MM-dd"));
}else if (i1 ==9){
if (null==stringMap.get("包装标识检验")){
cell11.setCellValue("合格");
}else{
cell11.setCellValue(StringHandleUtils.getString(stringMap.get("包装标识检验").getTestValue()));
}
}
}
//sheet2
Row row2= sheet2.getRow(beginIndex2);
if (null ==row2){
row2=sheet2.createRow(beginIndex2);
}
DrugItem itemLuoSi=stringMap.get("端部落丝量");
List<String> luoSiList = new ArrayList<>();
if (null!=itemLuoSi&&StringUtils.isNotBlank(itemLuoSi.getTestValue())){
String[] luoSiArray= itemLuoSi.getTestValue().split(",");
luoSiList= Arrays.asList(luoSiArray);
}
for (int i2 = 9; i2 < 38; i2++) {
Cell cell2 = row2.getCell(i2);
if (null ==cell2){
cell2 = row2.createCell(i2);
}
if (9==i2){
if (null!=stringMap.get("质量")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("质量").getTestValue()));
}
}else if (10==i2){
if (null!=stringMap.get("质量")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("质量").getDeviation()));
}
}else if (11==i2){
if (null!=stringMap.get("质量")){
if (null!=stringMap.get("质量").getFailQuantity()){
cell2.setCellValue(stringMap.get("质量").getFailQuantity());
}
}
}else if (12==i2){
if (null!=stringMap.get("圆周")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("圆周").getTestValue()));
}
}else if (13==i2){
if (null!=stringMap.get("圆周")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("圆周").getDeviation()));
}
}else if (14==i2){
if (null!=stringMap.get("圆周")){
if (null!=stringMap.get("圆周").getFailQuantity()){
cell2.setCellValue(stringMap.get("圆周").getFailQuantity());
}
}
}
else if (15==i2){
if (null!=stringMap.get("总透气度")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("总透气度").getTestValue()));
}
}else if (16==i2){
if (null!=stringMap.get("总透气度")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("总透气度").getDeviation()));
}
}else if (17==i2){
if (null!=stringMap.get("总透气度")){
if (null!=stringMap.get("总透气度").getFailQuantity()){
cell2.setCellValue(stringMap.get("总透气度").getFailQuantity());
}
}
}
else if (18==i2){
if (null!=stringMap.get("吸阻")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("吸阻").getTestValue()));
}
}else if (19==i2){
if (null!=stringMap.get("吸阻")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("吸阻").getDeviation()));
}
}else if (20==i2){
if (null!=stringMap.get("吸阻")){
if (null!=stringMap.get("吸阻").getFailQuantity()){
cell2.setCellValue(stringMap.get("吸阻").getFailQuantity());
}
}
}
else if (21==i2){
if (null!=stringMap.get("硬度")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("硬度").getTestValue()));
}
}else if (22==i2){
if (null!=stringMap.get("硬度")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("硬度").getDeviation()));
}
}else if (23==i2){
if (null!=stringMap.get("硬度")){
if (null!=stringMap.get("硬度").getFailQuantity()){
cell2.setCellValue(stringMap.get("硬度").getFailQuantity());
}
}
}
else if (24==i2){
if (null!=stringMap.get("长度")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("长度").getTestValue()));
}
}else if (25==i2){
if (null!=stringMap.get("长度")){
cell2.setCellValue(StringHandleUtils.getString(stringMap.get("长度").getDeviation()));
}
}else if (26==i2){
if (null!=stringMap.get("长度")){
if (null!=stringMap.get("长度").getFailQuantity()){
cell2.setCellValue(stringMap.get("长度").getFailQuantity());
}
}
}
else if (33==i2){
if (null!=stringMap.get("含水率")){
if (null!=stringMap.get("含水率").getTestValue()){
cell2.setCellValue(stringMap.get("含水率").getTestValue());
}
}
}
else if (34==i2){
if (null!=stringMap.get("含水率")){
if (null!=stringMap.get("含水率").getDeviation()){
cell2.setCellValue(stringMap.get("含水率").getDeviation());
}
}
}
else if (35==i2){
if (null!=stringMap.get("含末率")){
if (null!=stringMap.get("含末率").getTestValue()){
cell2.setCellValue(stringMap.get("含末率").getTestValue());
}
}
}
for (int k = 0; k < luoSiList.size(); k++) {
// if (k==0){
// if (27==i2){
// cell2.setCellValue(luoSiList.get(k));
// }
// }
if (i2==(27+k)){
cell2.setCellValue(luoSiList.get(k));
}
}
}
// sheet3
Row row3= sheet3.getRow(beginIndex3);
if (null ==row3){
row3=sheet3.createRow(beginIndex3);
}
DrugItem item = stringMap.get("烟支外观质量缺陷");
if (null!=item){
List<TestValueExtend> extendList = testValueExtendService.listBySampleIds(item.getId());
for (int i3 = 9; i3 < 38; i3++) {
Cell cell3 = row3.getCell(i3);
if (null == cell3) {
cell3 = row3.createCell(i3);
}
if (9==i3){
if (null !=item.getSampleQuantity()){
cell3.setCellValue(item.getSampleQuantity().toString());
}
}
for (int m = 0; m < extendList.size(); m++) {
TestValueExtend extend= extendList.get(m);
if (m==0){
if (10==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getType()));
}else if (11==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getCode()));
}else if (12==i3){
if (null != extend.getQuantity()){
cell3.setCellValue(extend.getQuantity().toString());
}
}
}else if (m==1){
if (13==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getType()));
}else if (14==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getCode()));
}else if (15==i3){
if (null != extend.getQuantity()){
cell3.setCellValue(extend.getQuantity().toString());
}
}
}else if (m==2){
if (16==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getType()));
}else if (17==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getCode()));
}else if (18==i3){
if (null != extend.getQuantity()){
cell3.setCellValue(extend.getQuantity().toString());
}
}
}else if (m==3){
if (19==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getType()));
}else if (20==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getCode()));
}else if (21==i3){
if (null != extend.getQuantity()){
cell3.setCellValue(extend.getQuantity().toString());
}
}
}else if (m==4){
if (22==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getType()));
}else if (23==i3){
cell3.setCellValue(StringHandleUtils.getString(extend.getCode()));
}else if (24==i3){
if (null != extend.getQuantity()){
cell3.setCellValue(extend.getQuantity().toString());
}
}
}
}
}
}
beginIndex0++;
beginIndex1++;
beginIndex2++;
beginIndex3++;
}
xssfWorkbook.setForceFormulaRecalculation(true);
exportService.downloadXlsx(response,"TestDataExport.xlsx",xssfWorkbook);
}
} }
...@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* <p> * <p>
* 检测值扩展表 服务实现类 * 检测值扩展表 服务实现类
...@@ -26,4 +28,9 @@ public class TestValueExtendServiceImpl extends BaseServiceImpl<TestValueExtendM ...@@ -26,4 +28,9 @@ public class TestValueExtendServiceImpl extends BaseServiceImpl<TestValueExtendM
wrapper.orderByAsc("ctime"); wrapper.orderByAsc("ctime");
return this.page(page, wrapper); return this.page(page, wrapper);
} }
@Override
public List<TestValueExtend> listBySampleIds(Long id) {
return list(Wrappers.<TestValueExtend>query().eq("item_id",id).orderByAsc("ctime"));
}
} }
...@@ -118,4 +118,8 @@ public class DrugSampleVO extends DrugSample { ...@@ -118,4 +118,8 @@ public class DrugSampleVO extends DrugSample {
@ApiModelProperty(value = "流转单位") @ApiModelProperty(value = "流转单位")
private String unit; private String unit;
@ApiModelProperty("ids字符串")
private String idsStr;
} }
package com.patzn.lims.res.service; package com.patzn.lims.res.service;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
import java.util.Map;
public interface IExportService { public interface IExportService {
String storageWord(XWPFDocument doc, String filePath);
Map<String, Object> wordToMap(String docFilePath);
String filePath(String fileName); String filePath(String fileName);
String fileFolderPath(String folder, String fileName); String fileFolderPath(String folder, String fileName);
InputStream fileWordInputStreamFolderPath(String folder, String fileName);
/** /**
* <p> * <p>
* 下载 DOCX 文件 * 下载 DOCX 文件
...@@ -26,4 +32,28 @@ public interface IExportService { ...@@ -26,4 +32,28 @@ public interface IExportService {
* @param fileName 文件名 * @param fileName 文件名
* @param doc DOCX 文档对象 * @param doc DOCX 文档对象
*/ */
void downloadDoc(HttpServletResponse response, String fileName, XWPFDocument doc);
void downloadXls(HttpServletResponse response, String fileName, HSSFWorkbook workbook);
void downloadXlsx(HttpServletResponse response, String fileName, XSSFWorkbook workbook);
void downloadXlsxs(HttpServletResponse response, String fileName, SXSSFWorkbook workbook);
XWPFDocument getXWPFDoc(String folder, String modelName);
XWPFDocument getXWPFDoc(InputStream io);
XSSFWorkbook getXSSFWorkbook(String modelName);
SXSSFWorkbook getSXSSFWorkbook(String modelName);
XSSFWorkbook getXSSFWorkbook(InputStream io);
HSSFWorkbook getHSSFWorkbook(String modelName);
} }
package com.patzn.lims.res.service.impl; package com.patzn.lims.res.service.impl;
import com.patzn.lims.core.api.PtAssert;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.lims.res.service.IExportService; import com.patzn.lims.res.service.IExportService;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.InputStream; import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URL; import java.net.URL;
import java.util.HashMap;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -23,36 +31,216 @@ public class ExportServiceImpl implements IExportService { ...@@ -23,36 +31,216 @@ public class ExportServiceImpl implements IExportService {
private final Logger logger = LoggerFactory.getLogger(ExportServiceImpl.class); private final Logger logger = LoggerFactory.getLogger(ExportServiceImpl.class);
@Override
public String storageWord(XWPFDocument doc, String filePath) {
try (
ByteArrayOutputStream bos = new ByteArrayOutputStream();
FileOutputStream out = new FileOutputStream(filePath, true)
) {
doc.write(bos);
out.write(bos.toByteArray());
} catch (Exception e) {
logger.error("保存 word 异常", e);
return null;
}
return filePath;
}
@Override
public Map<String, Object> wordToMap(String docFilePath) {
String filePath = String.format("templates/word/model/%s", docFilePath);
// 兼容打包 JAR 压缩情况处理
logger.debug("doc 文件路径 {}", docFilePath);
XWPFDocument doc = null;
try (InputStream in = this.getClass().getClassLoader().getResourceAsStream(filePath)) {
doc = new XWPFDocument(in);
} catch (Exception e) {
logger.error("word 转 map 异常", e);
}
Map<String, Object> map = new HashMap<>(2);
if (null!=doc&&null != doc.getTables()) {
map.put("table", doc.getTables().iterator());
}
map.put("doc", doc);
return map;
}
@Override @Override
public String filePath(String fileName) { public String filePath(String fileName) {
URL url = this.getClass().getClassLoader().getResource("templates/word/model/" + fileName); URL url = this.getClass().getClassLoader().getResource("templates/word/model/" + fileName);
PtAssert.fail(null == url, fileName + "不存在"); RestAssert.fail(null == url, fileName + "不存在");
return url.getPath(); return url.getPath();
} }
@Override @Override
public String fileFolderPath(String folder, String fileName) { public String fileFolderPath(String folder,String fileName) {
URL url = this.getClass().getClassLoader().getResource("templates/word/" + folder + "/" + fileName); URL url = this.getClass().getClassLoader().getResource("templates/word/"+folder+"/" + fileName);
PtAssert.fail(null == url, fileName + "不存在"); RestAssert.fail(null == url, fileName + "不存在");
return url.getPath(); return url.getPath();
} }
public String fileFolderPath(String fileName) {
URL url = this.getClass().getClassLoader().getResource("templates/excel/"+fileName);
RestAssert.fail(null == url, fileName + "不存在");
return url.getPath();
}
public InputStream fileInputStreamPath(String fileName) {
InputStream url = this.getClass().getClassLoader().getResourceAsStream("templates/excel/"+fileName);
return url;
}
@Override @Override
public InputStream fileWordInputStreamFolderPath(String folder, String fileName) { public void downloadDoc(HttpServletResponse response, String fileName, XWPFDocument doc) {
InputStream io= this.getClass().getClassLoader().getResourceAsStream("templates/word/" + folder + "/" + fileName); response.reset();
PtAssert.fail(null == io, fileName + "不存在"); response.setCharacterEncoding("UTF-8");
return io; response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
response.addHeader("Content-Disposition", String.format("attachment; filename=%s;charset=UTF-8", fileName));
try (
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream()
) {
doc.write(bos);
os.write(bos.toByteArray());
os.flush();
} catch (Exception e) {
logger.error("word 转 map 异常", e);
}
} }
@Override
public void downloadXls(HttpServletResponse response, String fileName, HSSFWorkbook workbook) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.addHeader("Content-Disposition", String.format("attachment; filename=%s;charset=UTF-8", fileName));
try (
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream()
) {
workbook.write(bos);
os.write(bos.toByteArray());
os.flush();
} catch (Exception e) {
logger.error("excel 转 map 异常", e);
}
}
public InputStream fileFolderPath(String fileName) { @Override
return getClass().getClassLoader().getResourceAsStream("templates/excel/" + fileName); public void downloadXlsx(HttpServletResponse response, String fileName, XSSFWorkbook workbook) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.addHeader("Content-Disposition", String.format("attachment; filename=%s;charset=UTF-8", fileName));
try (
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream()
) {
workbook.write(bos);
os.write(bos.toByteArray());
os.flush();
} catch (Exception e) {
logger.error("excel 转 map 异常", e);
}
} }
@Override
public void downloadXlsxs(HttpServletResponse response, String fileName, SXSSFWorkbook workbook) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.addHeader("Content-Disposition", String.format("attachment; filename=%s;charset=UTF-8", fileName));
try (
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream()
) {
workbook.write(bos);
os.write(bos.toByteArray());
os.flush();
} catch (Exception e) {
logger.error("excel 转 map 异常", e);
}
}
@Override
public XWPFDocument getXWPFDoc(String folder, String modelName) {
FileInputStream in;
XWPFDocument doc = null;
try {
in = new FileInputStream(new File(fileFolderPath(folder,modelName)));
doc = new XWPFDocument(in);
} catch (Exception e1) {
e1.printStackTrace();
}
return doc;
}
@Override
public XWPFDocument getXWPFDoc(InputStream io) {
XWPFDocument doc = null;
try {
doc = new XWPFDocument(io);
} catch (Exception e1) {
e1.printStackTrace();
}
return doc;
}
@Override
public XSSFWorkbook getXSSFWorkbook(String modelName){
InputStream is;
XSSFWorkbook xssfWorkbook=null;
try {
is = fileInputStreamPath(modelName);
xssfWorkbook = new XSSFWorkbook(is);
} catch (Exception e1) {
e1.printStackTrace();
}
return xssfWorkbook;
}
@Override
public SXSSFWorkbook getSXSSFWorkbook(String modelName){
InputStream is;
SXSSFWorkbook xssfWorkbook=null;
try {
is = fileInputStreamPath(modelName);
xssfWorkbook = new SXSSFWorkbook(new XSSFWorkbook(is));
xssfWorkbook.setCompressTempFiles(true); //压缩临时文件,很重要,否则磁盘很快就会被写满
} catch (Exception e1) {
e1.printStackTrace();
}
return xssfWorkbook;
}
@Override
public XSSFWorkbook getXSSFWorkbook(InputStream io) {
XSSFWorkbook xssfWorkbook=null;
try {
xssfWorkbook = new XSSFWorkbook(io);
} catch (Exception e1) {
e1.printStackTrace();
}
return xssfWorkbook;
}
@Override
public HSSFWorkbook getHSSFWorkbook(String modelName){
FileInputStream is;
HSSFWorkbook xssfWorkbook=null;
try {
is = new FileInputStream(new File(fileFolderPath(modelName)));
xssfWorkbook = new HSSFWorkbook(is);
} catch (Exception e1) {
e1.printStackTrace();
}
return xssfWorkbook;
}
} }
\ No newline at end of file
...@@ -48,10 +48,34 @@ ...@@ -48,10 +48,34 @@
</select> </select>
<sql id="iColumn">
i.ID,
i.NAME,
i.group_name,
i.group_id,
i.sample_id,
i.compare_symbol,
i.limit_value,
i.unit,
i.judged,
i.test_value,
i.status,
i.progress,
i.single_judge,
i.code,
i.standard_name,
i.type,
i.sample_quantity,
i.fail_quantity,
i.deviation ,
i.order_by
</sql>
<select id="selectVOList" resultType="com.patzn.lims.drug.vo.DrugItemVO"> <select id="selectVOList" resultType="com.patzn.lims.drug.vo.DrugItemVO">
WITH item AS ( WITH item AS (
SELECT i.* FROM drug_item i WHERE i.deleted = 0 SELECT <include refid="iColumn"/> FROM drug_item i WHERE i.deleted = 0
<if test="vo.status!=null"> <if test="vo.status!=null">
AND i.status = #{vo.status} AND i.status = #{vo.status}
</if> </if>
......
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