Commit aaee09c6 by lijingjing

修改委托提交状态不变问题;

修改判定牌号保存问题;
修改委托单位相关信息报错问题;
parent 53edf4f5
......@@ -19,4 +19,7 @@ public class HmConst {
public static final String THIRD_CODE_MATERIALS = "三级编码物资";
public static final String EXIST_CODE_MATERIALS = "已有编码物资";
public static final String SCATTERED = "散样";
public static final String SECOND_PERIOD = "一二期";
public static final String THIRD_PERIOD = "三期";
}
\ No newline at end of file
package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.google.common.collect.Lists;
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.hmhj.dto.ContractSampleDTO;
import com.patzn.cloud.service.hmhj.dto.ContractSampleVODTO;
import com.patzn.cloud.service.hmhj.entity.ContractSample;
import com.patzn.cloud.service.hmhj.enums.ContractSampleStatusEnum;
import com.patzn.cloud.service.hmhj.vo.ContractSampleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.lims.hmhj.service.IContractSampleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
......@@ -570,4 +570,11 @@ public class ContractSampleController extends ServiceController {
public RestResult<Boolean> batchImport(@RequestPart MultipartFile file) {
return success(contractSampleService.batchImport(file, getAccount()));
}
@ApiOperation("批量修改合同信息")
@PostMapping("/batch_update")
public RestResult<Boolean> batchUpdate(@RequestParam("ids") Long[] ids, ContractSample contractSample) {
return success(contractSampleService.updateContractBatch(ids, contractSample, getAccount()));
}
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.baomidou.mybatisplus.annotations.SqlParser;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO;
import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO;
import com.patzn.cloud.service.hmhj.vo.*;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
......@@ -44,4 +42,7 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List<EntrustSample> selectByReportIds(@Param("reportIds") Long[] reportIds);
boolean updateBatchByData(@Param("sampleList") List<EntrustSample> sampleList);
@SqlParser(filter = true)
List<ReportSampleVO> selectReportSampleInfos(@Param("sampleIds") Long[] sampleIds);
}
......@@ -47,7 +47,7 @@ public interface IContractSampleService extends IBaseService<ContractSample> {
boolean submitToExpertReviewFromOrg(Long[] ids, Account account);
boolean submitCheckResultInput(Long[] ids,String result, Account account);
boolean submitCheckResultInput(Long[] ids, String result, Account account);
Page<ContractSampleVO> pageVO(Page<ContractSampleVO> page, ContractSampleVO contractSample);
......@@ -74,4 +74,6 @@ public interface IContractSampleService extends IBaseService<ContractSample> {
boolean isOutEntrustData(Long contractSampleId);
boolean batchImport(MultipartFile file, Account account);
boolean updateContractBatch(Long[] ids, ContractSample contractSample, Account account);
}
......@@ -7,6 +7,7 @@ import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustReport;
import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustReportVO;
import com.patzn.cloud.service.hmhj.vo.ReportSampleVO;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
......
......@@ -8,10 +8,7 @@ import com.patzn.cloud.service.hmhj.dto.*;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO;
import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO;
import com.patzn.cloud.service.hmhj.vo.*;
import java.util.List;
import java.util.Map;
......@@ -115,4 +112,6 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
List<EntrustSample> getByReportIds(Long[] reportIds);
boolean updateBatchByData(List<EntrustSample> sampleList);
List<ReportSampleVO> getReportBrands(Long[] sampleIds);
}
......@@ -49,7 +49,7 @@ public class ClientInfoServiceImpl extends BaseServiceImpl<ClientInfoMapper, Cli
if (StringUtils.isNotBlank(client)) {
wrapper.like("client", client);
}
wrapper.orderBy("ctime",false);
wrapper.orderBy("ctime", false);
return this.page(page, wrapper);
}
......@@ -90,11 +90,13 @@ public class ClientInfoServiceImpl extends BaseServiceImpl<ClientInfoMapper, Cli
// 额外处理数据
// 若委托单位为净化分厂
if (clientInfo.getClient().contains("净化分厂")) {
List<SysUser> orgUsers = userInfoService.getUsersByOrg(sysOrg.getId());
List<SysUser> roleUsers = userInfoService.getUsersByRoleName("净化化验员");
List<SysUser> orgUsers = userInfoService.getUsersByOrg(clientInfo.getOrgId());
if (CollectionUtils.isNotEmpty(roleUsers)) {
List<Long> orgUserIds = orgUsers.stream().map(SysUser::getId).collect(Collectors.toList());
result.put("jhUsers", roleUsers.stream().filter(t -> orgUserIds.contains(t.getId())).collect(Collectors.toList()));
}
}
return result;
}
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
......@@ -7,8 +8,8 @@ import com.baomidou.mybatisplus.plugins.Page;
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.exception.PatznException;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.service.hmhj.dto.ContractSampleDTO;
import com.patzn.cloud.service.hmhj.dto.ContractSampleVODTO;
import com.patzn.cloud.service.hmhj.entity.ContractSample;
......@@ -19,7 +20,6 @@ import com.patzn.cloud.service.hmhj.enums.ContractSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.vo.ContractSampleVO;
import com.patzn.cloud.service.lims.common.service.ILmsMsgService;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.ContractSampleMapper;
import com.patzn.cloud.service.lims.hmhj.service.IContractSampleItemService;
import com.patzn.cloud.service.lims.hmhj.service.IContractSampleRecordService;
......@@ -27,14 +27,9 @@ import com.patzn.cloud.service.lims.hmhj.service.IContractSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleService;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jfree.data.DataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -44,7 +39,10 @@ import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
......@@ -257,7 +255,7 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
@Transactional(rollbackFor = Exception.class)
@Override
public boolean submitCheckResultInput(Long[] ids,String result, Account account) {
public boolean submitCheckResultInput(Long[] ids, String result, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的合同!");
ContractSample contractSample = new ContractSample();
// 会审结论录入
......@@ -536,5 +534,16 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
return true;
}
@Override
public boolean updateContractBatch(Long[] ids, ContractSample contractSample, Account account) {
RestAssert.fail(null == ids || 0 == ids.length, "选择要修改信息为空");
// RestAssert.fail(StringUtils.isBlank(contractSample.getStoragePlace()),"存放地为空");
// RestAssert.fail(StringUtils.isBlank(contractSample.getDetailPlace()),"货位为空");
// RestAssert.fail(null == contractSample.getArrivalTime(),"到货时间为空");
// RestAssert.fail(null == contractSample.getStoragePlace(),"报建时间为空");
// RestAssert.fail(StringUtils.isBlank(contractSample.getStoragePlace()),"保管员为空");
// RestAssert.fail(null == contractSample.getType(),"检测类型为空");
return baseMapper.update(contractSample, Condition.create().in("id", ids)) > 0;
}
}
......@@ -17,6 +17,7 @@ import com.patzn.cloud.service.base.vo.SysUserOrgVO;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.EntrustReportVO;
import com.patzn.cloud.service.hmhj.vo.ReportSampleVO;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustReportMapper;
......@@ -124,6 +125,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
ossClient.download(report.getObjectKey(), report.getSampleName() + ".xlsx", response);
}
@Override
public boolean removeByIds(List<Long> ids) {
entrustReportRelSampleService.remove(Condition.create().in("report_id", ids));
......
......@@ -32,6 +32,7 @@ import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import com.patzn.cloud.service.lims.common.CompareUtils;
import com.patzn.cloud.service.lims.common.service.IExportService;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper;
......@@ -41,6 +42,9 @@ import com.patzn.cloud.service.lims.hmhj.original.SingleSheetMoreItemOperation;
import com.patzn.cloud.service.lims.hmhj.service.*;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -71,6 +75,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustReportService entrustReportService;
@Autowired
private IEntrustRecordService entrustRecordService;
@Autowired
......@@ -89,6 +96,12 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private IOriginalTemplateConfigService originalTemplateConfigService;
@Autowired
private IEntrustReportTemplateService entrustReportTemplateService;
@Autowired
private IEntrustReportTemplateConfigService entrustReportTemplateConfigService;
@Autowired
private IOriginalRecordService originalRecordService;
@Autowired
......@@ -116,6 +129,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private OssClient ossClient;
@Autowired
private IExportService exportService;
@Autowired
private Executor executor1;
@Autowired
......@@ -1093,11 +1109,119 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
}
}
if (updateSampleList.size() > 0) {
return entrustSampleService.updateBatchById(updateSampleList);
entrustSampleService.updateBatchById(updateSampleList);
}
handleSampleBrand(ids);
return true;
}
private String getCellValue(XSSFRow xssfRow, int cellIndex) {
XSSFCell cell = xssfRow.getCell(cellIndex);
String value = HSSFWorkbookUtil.getJavaValue(cell).toString();
return StringUtils.isBlank(value) ? "" : value.trim();
}
private void handleSampleBrand(Long[] ids) {
if (null == ids || 0 == ids.length) {
return;
}
List<ReportSampleVO> reportSampleList = entrustSampleService.getReportBrands(ids);
if (CollectionUtils.isEmpty(reportSampleList)) {
return;
}
List<EntrustReport> reportList = new ArrayList<>();
// objectKey data
Map<String, Long> objReportMap = reportSampleList.stream().collect(Collectors.toMap(ReportSampleVO::getObjectKey, ReportSampleVO::getReportId, (v1, v2) -> v1));
for (Map.Entry<String, Long> entry : objReportMap.entrySet()) {
EntrustReport entrustReport = new EntrustReport();
String objectKey = entry.getKey();
Long reportId = entry.getValue();
entrustReport.setId(reportId);
Map<String, String> sampleMap = reportSampleList.stream().filter(t -> t.getObjectKey().equals(objectKey)).collect(Collectors.toMap(ReportSampleVO::getSampleCode, ReportSampleVO::getSampleGrading));
InputStream io = ossClient.download(objectKey);
//结果回调
XSSFWorkbook xssfWorkbook = null;
try {
xssfWorkbook = new XSSFWorkbook(io);
} catch (Exception e) {
logger.error(e.getMessage(), e.getCause());
continue;
}
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
int rowNum = sheet.getLastRowNum();
// 默认开始行为:5,单元格序号为:-1
int startRow = 5, sampleCodePos = -1, sampleBrandPos = -1;
flag:
for (int i = 5; i < rowNum; i++) {
startRow = i;
XSSFRow xssfRow = sheet.getRow(i);
for (int j = 0; j < xssfRow.getLastCellNum(); j++) {
String title = getCellValue(xssfRow, j);
if ("试样编号".equals(title)) {
sampleCodePos = j;
}
if ("牌号".equals(title)) {
sampleBrandPos = j;
break flag;
}
}
}
// 若循环无牌号,那么跳过本次循环的原始记录
if (-1 == sampleBrandPos) {
continue;
}
for (int i = startRow + 1; i < rowNum; i++) {
XSSFRow xssfRow = sheet.getRow(i);
String sampleCode = getCellValue(xssfRow, sampleCodePos);
if (StringUtils.isBlank(sampleCode)) {
continue;
}
String sampleGrading = sampleMap.get(sampleCode);
if (StringUtils.isNotBlank(sampleGrading)) {
xssfRow.getCell(sampleBrandPos).setCellValue(sampleGrading);
}
}
FileOutputStream os = null;
File file = null;
String generated = "报告记录修改";
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
OssFileResult fileResult = ossClient.upload(file);
if (null != fileResult) {
entrustReport.setObjectKey(fileResult.getObjectKey());
reportList.add(entrustReport);
}
} catch (Exception e) {
logger.error("Exception 报错" + e.getMessage());
e.printStackTrace();
} finally {
try {
os.close();
xssfWorkbook.close();
io.close();
} catch (Exception e) {
e.printStackTrace();
}
FileUtils.deleteFiles(file);
}
}
if (CollectionUtils.isNotEmpty(reportList)) {
entrustReportService.updateBatchById(reportList);
}
}
@Override
public List<EntrustSampleItemVO> listMinStatusBySampleIds(List<Long> sampleIds) {
return baseMapper.selectMinStatusBySampleIds(sampleIds);
......
......@@ -1869,4 +1869,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
return baseMapper.updateBatchByData(sampleList);
}
@Override
public List<ReportSampleVO> getReportBrands(Long[] sampleIds) {
if (null == sampleIds || 0 == sampleIds.length) {
return null;
}
return baseMapper.selectReportSampleInfos(sampleIds);
}
}
\ No newline at end of file
......@@ -763,6 +763,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
RestAssert.fail(null == entrust.getSampleStatus(), "样品状态不能为空");
if (null != entrust.getIsSelf() && entrust.getIsSelf()) {
entrust.setUid(LoginHelper.getAccount().getUserId());
entrust.setPeriod(userInfoService.getUserPeriod(LoginHelper.getAccount()));
}
return page.setRecords(baseMapper.selectVOList(page, entrust));
}
......@@ -1511,7 +1512,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
updateModel.setStatus(EntrustStatusEnum.MAKE);
updateModel.setProgress(EntrustStatusEnum.MAKE);
updateModel.setFlowStatus(EntrustFlowEnum.MAKE.getName());
updateById(updateModel);
update(updateModel, Condition.create().in("id", normalIds));
// 更改样品编号级别
normalIds.forEach(entrustId -> {
entrustSampleService.updateSampleCodeByEntrustId(entrustId, HmConst.TWO);
......
......@@ -15,6 +15,7 @@ import com.patzn.cloud.service.lims.base.entity.LmsUserGroup;
import com.patzn.cloud.service.lims.base.vo.GroupUserVO;
import com.patzn.cloud.service.lims.common.consts.Symbol;
import com.patzn.cloud.service.lims.common.service.ILmsMsgService;
import com.patzn.cloud.service.lims.hmhj.common.consts.HmConst;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -140,6 +141,7 @@ public class UserInfoServiceImpl {
public List<SysUser> getUsersByOrg(Long orgId) {
RestAssert.fail(null == orgId, "组织ID为空");
return sysUserClient.getListByOrgId(orgId, null).serviceData();
}
public List<SysUser> getUsersByRoleName(String roleName) {
......@@ -155,4 +157,44 @@ public class UserInfoServiceImpl {
return getUserById(LoginHelper.getAccount().getUserId());
}
public String getPeriod(SysOrg sysOrg) {
if (null == sysOrg) {
return null;
}
if (sysOrg.getName().contains(HmConst.SECOND_PERIOD)) {
return HmConst.SECOND_PERIOD;
} else if (sysOrg.getName().contains(HmConst.THIRD_PERIOD)) {
return HmConst.THIRD_PERIOD;
}
if (null != sysOrg.getPid()) {
return getPeriod(sysOrgClient.get(sysOrg.getPid()).serviceData());
}
return null;
}
public String getUserPeriod(Account account) {
List<SysOrg> orgList = sysOrgClient.getListByUserId(account.getUserId()).getData();
if (CollectionUtils.isEmpty(orgList)) {
return null;
}
for (SysOrg org : orgList) {
if (org.getName().contains(HmConst.SECOND_PERIOD)) {
return HmConst.SECOND_PERIOD;
} else if (org.getName().contains(HmConst.THIRD_PERIOD)) {
return HmConst.THIRD_PERIOD;
}
if (null == org.getPid()) {
continue;
}
String period = getPeriod(sysOrgClient.get(org.getPid()).serviceData());
if (null == period) {
continue;
}
return period;
}
return null;
}
}
......@@ -31,6 +31,9 @@
and s.biz_id = e.material_id
and s.biz_type = 'REPORT_RECIPIENT'
and s.staff_id = #{vo.uid}
<if test="null!=vo.period">
AND s.type = #{vo.period}
</if>
)
)
</if>
......
......@@ -416,6 +416,26 @@
</foreach>
</select>
<select id="selectReportSampleInfos" resultType="com.patzn.cloud.service.hmhj.vo.ReportSampleVO">
select
distinct
r.entrust_id,
r.object_key,
rs.report_id,
rs.sample_id,
s.code "sample_code",
s.name "sample_name",
s.sample_grading
from entrust_report r
join entrust_report_rel_sample rs on rs.report_id = r.id
left join entrust_sample s on s.id = rs.sample_id
where r.deleted = 0 and rs.deleted = 0 and s.deleted = 0
and s.id in
<foreach collection="sampleIds" index="index" item="sampleId" open="(" separator="," close=")">
#{sampleId}
</foreach>
</select>
<update id="updateBatchByData" parameterType="java.util.List">
<foreach collection="sampleList" item="item" index="index" open="" close="" separator=";">
update entrust_sample
......
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