Commit 7520c7dc authored by 竹天卫's avatar 竹天卫

1样品编号改成 来样编号

2生成平行样编号 先调获取最大的本所编号,然后前端根据最大的平行样编号,放到每个样品中,如果是平行样,自动预留。
 (如果是平行样,会生成两条记录,本所编号是相同的, 第一个平行样编号和本所编号相同,第二个平行样的平行样编号会在本所编号上+1)
3样品处理列表只显示样品,有平行样只显示一条记录
parent c3b017a2
......@@ -76,6 +76,16 @@ public class EntrustController {
return BaseResponse.errorMsg("失败!");
}
@ApiOperation(value = "获取样品表里最大的本所编号")
@GetMapping("/getMaxCementCode")
public BaseResponse getMaxCementCode(){
try {
return entrustService.getMaxCementCode();
}catch (Exception e){
log.debug("获取样品表里最大的本所编号{}",e);
}
return BaseResponse.errorMsg("失败!");
}
@ApiOperation(value = "委托评审")
@PostMapping("/approval")
......
......@@ -38,6 +38,9 @@ public class Entrust implements Serializable {
@ApiModelProperty("项目id")
private Integer projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目编号")
private String projectCode;
......
......@@ -34,7 +34,7 @@ public class Sample implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("来样编号(样品编号)")
@ApiModelProperty("来样编号")
private String sampleCode;
@ApiModelProperty("样品名")
......@@ -58,6 +58,9 @@ public class Sample implements Serializable {
@ApiModelProperty("是否平行样(1是,0否)")
private Integer isParallel;
@ApiModelProperty("平行样编号")
private String parallelCode;
@ApiModelProperty("本所编号")
private String cementCode;
......
......@@ -32,7 +32,7 @@ public class SampleTmp implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("来样编号(样品编号)")
@ApiModelProperty("来样编号")
private String sampleCode;
@ApiModelProperty("样品名")
......
......@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
......@@ -24,4 +25,7 @@ public interface SampleMapper extends BaseMapper<Sample> {
SampleVo getDetail(Integer id);
@Select("select max(parallel_code) from sample")
String getMaxCementCode();
}
......@@ -4,6 +4,7 @@
<sql id="where">
<where>
and s.cement_code = s.parallel_code
<if test="params.startDate != null and params.startDate != ''">
and DATE(e.create_time) &gt;= #{params.startDate}
</if>
......
......@@ -29,4 +29,6 @@
left join project p on p.id = e.project_id
where s.id = #{id}
</select>
</mapper>
......@@ -23,6 +23,9 @@ public class EntrustQuery {
@ApiModelProperty("项目id")
private Integer projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目编号")
private String projectCode;
......
......@@ -18,7 +18,7 @@ public class SampleQuery {
private Integer id;
@ApiModelProperty("来样编号(样品编号)")
@ApiModelProperty("来样编号")
private String sampleCode;
@ApiModelProperty("样品名")
......@@ -42,6 +42,9 @@ public class SampleQuery {
@ApiModelProperty(" 是否平行样(1是,0否)")
private Integer isParallel;
@ApiModelProperty("本所编号")
private String cementCode;
@ApiModelProperty("产值")
private BigDecimal outputValue;
......
......@@ -19,7 +19,7 @@ public class SampleTmpQuery {
private Integer id;
@ApiModelProperty("来样编号(样品编号)")
@ApiModelProperty("来样编号")
private String sampleCode;
@ApiModelProperty("样品名")
......
......@@ -93,9 +93,12 @@ public class EntrustVo {
@ApiModelProperty("样品临时列表")
private List<SampleTmpVo> sampleTmpList;
@ApiModelProperty("样品列表")
@ApiModelProperty("样品列表(展示平行样的样品)")
private List<SampleVo> sampleList;
@ApiModelProperty("样品处理列表(不展示平行样的样品)")
private List<SampleVo> sampleHandleList;
@ApiModelProperty("检测项 只显示第一个样品的")
private String checkTeam;
......
......@@ -21,7 +21,7 @@ public class SampleVo {
@ApiModelProperty("样品表id")
private Integer id;
@ApiModelProperty("来样编号(样品编号)")
@ApiModelProperty("来样编号")
private String sampleCode;
@ApiModelProperty("样品名")
......@@ -48,6 +48,9 @@ public class SampleVo {
@ApiModelProperty("是否平行样(1是,0否)")
private Integer isParallel;
@ApiModelProperty("平行样编号")
private String parallelCode;
@ApiModelProperty("本所编号")
private String cementCode;
......
......@@ -27,6 +27,8 @@ public interface IEntrustService extends IService<Entrust> {
BaseResponse<EntrustVo> getDtail(Integer id);
BaseResponse<String> getMaxCementCode();
BaseResponse<String> approval(ApprovalQuery query);
BaseResponse<String> handle(HandleQuery query);
......
......@@ -7,6 +7,7 @@ import cn.wise.sc.cement.business.mapper.EntityEnclosureMapper;
import cn.wise.sc.cement.business.model.query.EnclosureQuery;
import cn.wise.sc.cement.business.service.IEntityEnclosureService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -40,6 +41,21 @@ public class CommonServiceImpl {
return applyNo;
}
/**
* 生成平行样编号
* @param cementCode
* @return
*/
public String createParallelCode(String cementCode){
String[] cementCodes = cementCode.split("-");
Integer counts = Integer.parseInt(cementCodes[1])+1;
String tailNo = counts<10?("00"+counts):counts<100?("0"+counts):String.valueOf(counts);
String resultCode = cementCodes[0]+"-"+tailNo;
return resultCode;
}
/**
......
......@@ -8,6 +8,7 @@ import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.query.*;
import cn.wise.sc.cement.business.model.vo.*;
import cn.wise.sc.cement.business.service.*;
import cn.wise.sc.cement.business.util.RedisUtil;
import cn.wise.sc.cement.business.wrapper.page.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -70,6 +71,10 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
private IEquipmentUseService equipmentUseService;
@Resource
private ProjectMapper projectMapper;
@Autowired
RedisUtil redisUtil;
@Resource
private SampleMapper sampleMapper;
/**
* 委托分页
......@@ -132,9 +137,13 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
if(query.getClientId() == null){
return BaseResponse.errorMsg("请选择委托单位");
}
if(query.getProjectId() == null || StringUtils.isEmpty(query.getProjectCode())){
return BaseResponse.errorMsg("请选择项目");
if(StringUtils.isEmpty(query.getProjectName())){
return BaseResponse.errorMsg("请填写项目名称或选择已有项目");
}
}
if(StringUtils.isEmpty(query.getSendName()) || StringUtils.isEmpty(query.getSendPhone())){
return BaseResponse.errorMsg("请填写送样人信息");
}
......@@ -185,6 +194,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
sampleWrapper.orderByAsc("id");
List<Sample> sampleList = sampleService.list(sampleWrapper);
List<SampleVo> sampleVoList = new ArrayList<>();
List<SampleVo> sampleHandleVoList = new ArrayList<>();
if(sampleList!= null && sampleList.size()>0){
for(Sample sample : sampleList){
SampleVo sampleVo = new SampleVo();
......@@ -214,9 +224,18 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
sampleVo.setSampleDistributionTeamVoList(sampleNoDistributionTeamVoList);
}
sampleVoList.add(sampleVo);
//样品处理列表只展示
if(sample.getIsParallel()==1){
if(sample.getCementCode().equals(sample.getParallelCode())){
sampleHandleVoList.add(sampleVo);
}
}else{
sampleHandleVoList.add(sampleVo);
}
}
}
entrustVo.setSampleList(sampleVoList);
entrustVo.setSampleList(sampleVoList);//样品列表(展示平行样样品)
entrustVo.setSampleHandleList(sampleHandleVoList);//处理样品列表(不展示平行样样品)
}else{
QueryWrapper<SampleTmp> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("entrust_id", entrustVo.getId());
......@@ -239,9 +258,6 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
}
sampleTmpVo.setTeamName(teamName);
sampleTmpVoList.add(sampleTmpVo);
}
}
......@@ -250,6 +266,23 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return BaseResponse.okData(entrustVo);
}
/**
* 获取样品表里最大的平行样编号
* @return
*/
@Override
public BaseResponse<String> getMaxCementCode(){
Object obj = redisUtil.getString("maxCementCode");
String maxCementCode = "";
if(obj == null){
maxCementCode = sampleMapper.getMaxCementCode();
}else{
maxCementCode = obj.toString();
}
redisUtil.setString("maxCementCode", maxCementCode);
return BaseResponse.okData(maxCementCode);
}
/**
* 委托评审
* @param query
......@@ -269,7 +302,6 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return BaseResponse.errorMsg("当前状态不允许评审");
}
Entrust entrust = entrustMapper.selectById(entrustVo.getId());
if(query.getIsAgree() ==1){ //通过
if(StringUtils.isEmpty(query.getProjectType())){
return BaseResponse.errorMsg("请选择项目类型");
......@@ -277,8 +309,9 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
if(query.getSampleList() != null && query.getSampleList().size()>0){
List<Sample> sampleList = new ArrayList<>();
QueryWrapper<Sample> sampleQueryWrapper = new QueryWrapper<>();
Integer nums = sampleService.count(sampleQueryWrapper);
String maxCementCode = ""; //最大本所编号对应的平行样编号
for(SampleQuery sampleQuery : query.getSampleList()){
maxCementCode= sampleQuery.getCementCode();
Sample sample = new Sample();
BeanUtils.copyProperties(sampleQuery, sample);
sample.setId(null)
......@@ -286,26 +319,26 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
.setStatus(0) //样品状态为未领用状态
.setCreateTime(LocalDateTime.now());
if(sampleQuery.getIsParallel() ==1){ //平行样
//生成本所编号
String cementCode = commonService.createNo("BS", nums);
String cementCode2 = commonService.createNo("BS", nums+1);
sample.setCementCode(cementCode);
//生成平行样编号 (如果是平行样,会生成两条记录,本所编号是相同的,
// 第一个平行样编号和本所编号相同,第二个平行样的平行样编号会在本所编号上+1)
sample.setParallelCode(sampleQuery.getCementCode());
sampleList.add(sample);
Sample sample2 = new Sample();
BeanUtils.copyProperties(sample, sample2);
sample2.setCementCode(cementCode2);
sample2.setParallelCode(commonService.createParallelCode(sampleQuery.getCementCode()));
sampleList.add(sample2);
nums = nums + 2;
maxCementCode = sample2.getParallelCode();
}else if(sampleQuery.getIsParallel() ==0){ //非平行样
String cementCode = commonService.createNo("BS", nums);
sample.setCementCode(cementCode);
//如果不是平行样,本所编号和平行样编号是相同的。且就一条记录
sample.setParallelCode(sampleQuery.getCementCode());
sampleList.add(sample);
nums = nums + 1;
}else{
return BaseResponse.errorMsg("请选择是否需要平行样");
}
}
sampleService.saveBatch(sampleList);
//最大的平行样编号放入redis
redisUtil.setString("maxCementCode", maxCementCode);
}
entrust.setStatus(1).setProjectType(query.getProjectType()).setUpdateTime(LocalDateTime.now());
logsService.saveLog(SysLogs.ObjType.ENTRUST_LOG, entrust.getId(), "修改评审状态为“通过”", null);
......
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