Commit ea2b332b by ghxdhr

Merge branch 'master' of git.patzn.com:wangweidong/patzn-cloud-service-hmhj

parents 3f544d45 dcd846b0
......@@ -2,14 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.entity.ContractOkOrganizer;
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.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
......@@ -75,6 +68,12 @@ public class ContractOkOrganizerController extends ServiceController {
return success(contractOkOrganizerService.save(contractOkOrganizer));
}
@ApiOperation("批量添加")
@PostMapping("/addBatch")
public RestResult<Boolean> addBatch(@RequestBody String itemJson) {
return success(contractOkOrganizerService.saveBatch(itemJson));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
......
......@@ -277,7 +277,8 @@ public class EntrustController extends ServiceController {
public RestResult<Boolean> addOutEntrust(@RequestBody EntrustDTO dto) {
dto.setStatus(EntrustStatusEnum.OUT_DRAFT);
dto.setProgress(EntrustStatusEnum.OUT_DRAFT);
return success(entrustService.saveEntrustDTO(dto, getAccount()));
return success(entrustService.saveOutEntrust(dto, getAccount()));
}
......
......@@ -28,8 +28,6 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List<EntrustSampleVO> selectVOList(RowBounds rowBounds, @Param("vo") EntrustSampleVO entrustSample);
List<EntrustSampleVO> selectListWithRelation(@Param("vo") EntrustSampleVO entrustSample);
List<EntrustSampleVO> selectMinStatusByEntrustIds(@Param("entrustIds") List<Long> entrustIds);
List<EntrustSampleVO> selectTestResultQuery(RowBounds rowBounds,@Param("vo") EntrustSampleVO entrustSample);
......
......@@ -17,4 +17,6 @@ public interface IContractOkOrganizerService extends IBaseService<ContractOkOrga
Page<ContractOkOrganizer> page(Page<ContractOkOrganizer> page, ContractOkOrganizer contractOkOrganizer);
boolean removeByIds(List<Long> ids);
boolean saveBatch(String itemJson);
}
......@@ -96,5 +96,5 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean updateSampleCodeByIds(List<Long> sampleIdsList, int level);
List<EntrustSampleVO> selectListWithRelation(EntrustSampleVO entrustSampleVO);
List<EntrustSampleVO> selectVOLists(EntrustSampleVO entrustSampleVO);
}
......@@ -96,4 +96,6 @@ public interface IEntrustService extends IBaseService<Entrust> {
/* 修改检测委托书的打印状态 */
Boolean updatePrintStatus(List<Long> ids);
Boolean saveOutEntrust(EntrustDTO dto, Account account);
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.service.hmhj.entity.ContractOkOrganizer;
import com.patzn.cloud.service.lims.hmhj.mapper.ContractOkOrganizerMapper;
import com.patzn.cloud.service.lims.hmhj.service.IContractOkOrganizerService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
......@@ -32,4 +36,22 @@ public class ContractOkOrganizerServiceImpl extends BaseServiceImpl<ContractOkOr
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public boolean saveBatch(String itemJson) {
RestAssert.fail(StringUtils.isBlank(itemJson), "数据不能为空");
try {
JSONObject jsonObject = JSONObject.parseObject(itemJson);
RestAssert.fail(!jsonObject.containsKey("id"), "数据不包含ID信息");
Long contractSampleId = Long.parseLong(jsonObject.get("id").toString());
List<ContractOkOrganizer> contractOkOrganizerList = JSONArray.parseArray(jsonObject.getString("infoList"), ContractOkOrganizer.class);
contractOkOrganizerList.stream().forEach(t -> t.setContractSampleId(contractSampleId));
return saveOrUpdateBatch(contractOkOrganizerList);
} catch (Exception e) {
logger.error(e.getMessage(), e.getCause());
RestAssert.fail("数据转换异常");
}
return false;
}
}
......@@ -464,7 +464,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Override
public OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account,String entrustCode) {
public OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account, String entrustCode) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择试验项目!");
RestAssert.fail(null == templateId, "请选择原始记录模板");
OriginalTemplate template = originalTemplateService.getById(templateId);
......@@ -514,7 +514,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
}
/* 获取采集数据,并保存到SampleVO中 */
getCollectionData(null,sampleVOList,entrustCode);
getCollectionData(null, sampleVOList, entrustCode);
if (null == template.getSampleBeginRow() || null == template.getSampleMergerNum() || null == template.getTemplateSampleNum()) {
......@@ -535,7 +535,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} else {
/* 获取采集到的数据 */
getCollectionData(voList,null,entrustCode);
getCollectionData(voList, null, entrustCode);
if (CollectionUtils.isNotEmpty(voList)) {
mapReplace.put("#{sampleFrom}", voList.get(0).getSampleFrom());
......@@ -594,7 +594,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return objectKey;
}
private void getCollectionData(List<EntrustSampleItemVO> itemVOListList,List<EntrustSampleVO> sampleVOList,String entrustCode) {
private void getCollectionData(List<EntrustSampleItemVO> itemVOListList, List<EntrustSampleVO> sampleVOList, String entrustCode) {
/* 拿到所有样品的编号 */
Set<String> numSet = new HashSet<>();
if (itemVOListList != null) {
......@@ -604,11 +604,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
numSet = sampleVOList.stream().map(vo -> vo.getCode()).collect(Collectors.toSet());
}
/* 通过样品编号拿到所有的采集数据 */
List<LmsOriginalRecordInfo> records = originalRecordInfoService.list(Condition.create().in("sample_num", numSet).eq("contract_code",entrustCode));
List<LmsOriginalRecordInfo> records = originalRecordInfoService.list(Condition.create().in("sample_num", numSet).eq("contract_code", entrustCode));
/* 按照样品编号和项目分开,来存放采集到的数据 record的data */
HashMap<String, List<String>> mapByNumItemName = new HashMap<>();
for (LmsOriginalRecordInfo record : records) {
MapMergeUtils.getorCreateMapArrayList(record.getSampleNum(),mapByNumItemName,record.getData());
MapMergeUtils.getorCreateMapArrayList(record.getSampleNum(), mapByNumItemName, record.getData());
}
/* 设置采集数据的Map -- itemVo */
if (itemVOListList != null) {
......@@ -638,11 +638,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
}
}
public static Map<String,String> toStringStringMap(String jsonString) {
public static Map<String, String> toStringStringMap(String jsonString) {
HashMap<String, String> stringStringHashMap = new HashMap<>();
Map<String, Object> stringObjectMap = JsonUtils.exchange(jsonString);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
stringStringHashMap.put(entry.getKey(),(String) entry.getValue());
stringStringHashMap.put(entry.getKey(), (String) entry.getValue());
}
return stringStringHashMap;
}
......@@ -790,13 +790,13 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
for (EntrustSampleVO sampleVO : sampleList) {
// 若为此标准,需要判断是否需要过滤掉稀有元素的判断
boolean isSpecStandard = "GB/T 1196 2017".equalsIgnoreCase(sampleVO.getStandardCode());
boolean isSpecStandard = "GB/T 1196 2017".equalsIgnoreCase(sampleVO.getProductCode());
// 获取检测项目及指标数据
List<EntrustSampleItemIndexVO> sampleItemIndexList = entrustSampleItemIndexService.listVOBySampleIds(Arrays.asList(sampleVO.getId()));
RestAssert.fail(CollectionUtils.isEmpty(sampleItemIndexList), "样品检测项目及内容不能为空");
// 计算合计值
BigDecimal totalValue = sampleItemIndexList.stream().map(t -> {
BigDecimal totalValue = sampleItemIndexList.stream().filter(t -> StringUtils.isBlank(t.getTestValue())).map(t -> {
// 符合此条件,需要判断是否此标准且为稀有元素且值小于0.01即可忽略为0
if (isSpecStandard && otherYsList.contains(t.getName()) && Double.parseDouble(t.getTestValue()) < 0.01) {
return BigDecimal.ZERO;
......@@ -807,7 +807,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 获取检测项目值对象
Map<String, Double> itemDataMap = sampleItemIndexList.stream().collect(Collectors.toMap(EntrustSampleItemIndexVO::getName, t -> Double.parseDouble(t.getTestValue())));
// 获得产品标准信息
// 获得产品标准信息 -- 实时最新不是根据样品中的是否组合判定进行判定
// 可能需要根据样品中的字段进行判断是否需要组合判定composeJudge
GradingStandard standard = gradingStandardService.getById(sampleVO.getProductStandardId());
RestAssert.fail(null == standard, "产品标准不能为空");
// 是否组合判定
......@@ -906,7 +907,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
*/
private boolean updateJudgeNoPass(EntrustSample sample, Account account) {
sample.setOkJudge("不合格").setJudger(account.getUserName()).setJudgerId(account.getUserId())
.setJudgeCheckTime(new Date()).setJudgeStatus(0).setJudgeProgress(0);
.setJudgeCheckTime(new Date()).setJudgeStatus(0).setJudgeProgress(0)
.setSampleGrading("-");
return entrustSampleService.updateById(sample);
}
......@@ -991,7 +993,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
EntrustSampleVO sampleVO = entrustSamples.get(0);
// 若不为此标准,直接返回
if (!"GB/T 1196 2017".equalsIgnoreCase(sampleVO.getStandardCode())) {
if (!"GB/T 1196 2017".equalsIgnoreCase(sampleVO.getProductCode())) {
return;
}
List<String> otherYsList = Arrays.asList("Mn", "V", "Ni");
......
......@@ -27,6 +27,7 @@ import com.patzn.poibox.xwpf.PoiUtil2007;
import com.patzn.poibox.xwpf.XWPFTemplate;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.RowBounds;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
......@@ -566,23 +567,23 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
@Override
public List<EntrustSampleVO> getVOListByEntrustId(Long entrustId){
if(null == entrustId){
public List<EntrustSampleVO> getVOListByEntrustId(Long entrustId) {
if (null == entrustId) {
return null;
}
EntrustSampleVO vo = new EntrustSampleVO();
vo.setEntrustId(entrustId);
return selectListWithRelation(vo);
return selectVOLists(vo);
}
@Override
public List<EntrustSampleVO> getVOListByIds(List<Long> sampleIdList){
if(CollectionUtils.isEmpty(sampleIdList)){
public List<EntrustSampleVO> getVOListByIds(List<Long> sampleIdList) {
if (CollectionUtils.isEmpty(sampleIdList)) {
return null;
}
EntrustSampleVO vo = new EntrustSampleVO();
vo.setIds(sampleIdList);
return selectListWithRelation(vo);
return selectVOLists(vo);
}
@Override
......@@ -1730,8 +1731,8 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
@Override
public List<EntrustSampleVO> selectListWithRelation(EntrustSampleVO entrustSampleVO){
return baseMapper.selectListWithRelation(entrustSampleVO);
public List<EntrustSampleVO> selectVOLists(EntrustSampleVO entrustSampleVO) {
return baseMapper.selectVOList(RowBounds.DEFAULT, entrustSampleVO);
}
}
\ No newline at end of file
......@@ -278,6 +278,15 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true;
}
@Override
public Boolean saveOutEntrust(EntrustDTO dto, Account account) {
RestAssert.fail(CollectionUtils.isEmpty(dto.getSampleDTOList()), "外委样品不能为空");
dto.getSampleDTOList().stream().forEach(t -> {
t.setCategory("外委检测物资");
});
return saveEntrustDTO(dto, account);
}
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -1271,6 +1280,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true;
}
private ByteArrayOutputStream getEntrustBaos() {
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("\\templates.\\word.\\entrust.\\EntrustExportTemplate.docx");
RestAssert.fail(null == inputStream, "委托检测书模板获取失败");
......
......@@ -77,58 +77,6 @@
order by s.order_by asc, s.code ,s.ctime desc
</select>
<!--查询带关联信息的样品列表-->
<select id="selectListWithRelation" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
SELECT
s.*,
g.name "standard_name",g.code "standard_code",g.compose_judge "standard_compose_judge"
FROM entrust_sample s
LEFT JOIN grading_standard g on g.id = s.product_standard_id
WHERE deleted = 0
<if test="null != vo.entrustId">
AND s.entrust_id = #{vo.entrustId}
</if>
<if test="null != vo.status">
AND s.status = #{vo.status}
</if>
<if test="null != vo.code">
AND s.code LIKE CONCAT('%',#{vo.code},'%')
</if>
<if test="null != vo.notStatus">
AND s.status != #{vo.notStatus}
</if>
<if test="null != vo.itemStatus">
AND exists (
select 1 from entrust_sample_item i where i.deleted = 0
and i.entrust_sample_id = s.id
and i.status = #{vo.itemStatus}
)
</if>
<if test="null != vo.itemStatusList">
AND exists (
select 1 from entrust_sample_item i where i.deleted = 0
and i.entrust_sample_id = s.id
and i.status IN
<foreach collection="vo.itemStatusList" index="index" item="itemStatus" open="(" separator="," close=")">
#{itemStatus}
</foreach>
)
</if>
<if test="null!=vo.ids">
AND s.id IN
<foreach collection="vo.ids" index="index" item="sampleId" open="(" separator="," close=")">
#{sampleId}
</foreach>
</if>
order by s.order_by asc, s.code ,s.ctime desc
</select>
<select id="selectMinStatusByEntrustIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
WITH summary AS (
......
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