Commit ec8dc179 by lijingjing

添加接口保存合同用户所属期数;

添加接口合同相关暂停功能;
添加功能质量判定自动计算牌号(仅限原铝);
添加自动合并提交报告(报告签收、报告发放)自动汇入电子档案,不再手动质量判定;
添加合同相关字段;
parent 1a759b9e
package com.patzn.cloud.service.lims.hmhj.controller;
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.hmhj.entity.CargoSpace;
import com.patzn.cloud.service.lims.hmhj.service.ICargoSpaceService;
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 java.util.List;
/**
* 货位管理 前端控制器
*
* @author meazty
* @since 2021-08-20
*/
@Api(tags = "货位管理")
@RestController
@RequestMapping("/v1/cargo_space")
public class CargoSpaceController extends ServiceController {
@Autowired
private ICargoSpaceService cargoSpaceService;
@ApiOperation("分页列表")
@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),
})
@PostMapping("/page")
public RestResult<Page<CargoSpace>> getPage(CargoSpace cargoSpace) {
return success(cargoSpaceService.page(getPage(), cargoSpace));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<CargoSpace> get(@PathVariable("id") Long id) {
return success(cargoSpaceService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, CargoSpace cargoSpace) {
cargoSpace.setId(id);
return success(cargoSpaceService.updateById(cargoSpace));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(CargoSpace cargoSpace) {
return success(cargoSpaceService.save(cargoSpace));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(cargoSpaceService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.dto.ContractOkOrganizerDTO;
import com.patzn.cloud.service.hmhj.entity.ContractOkOrganizer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -74,6 +75,12 @@ public class ContractOkOrganizerController extends ServiceController {
return success(contractOkOrganizerService.saveBatch(itemJson));
}
@ApiOperation("批量维护验收专家")
@PostMapping("/add_organizer_batch")
public RestResult<Boolean> addOrganizerBatch(@RequestBody String organizerJson) {
return success(contractOkOrganizerService.saveOrganizerBatch(organizerJson));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
......
......@@ -63,6 +63,7 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_out")
public RestResult<Page<Entrust>> getPageOut(Entrust entrust) {
entrust.setStatus(EntrustStatusEnum.OUT_DRAFT);
entrust.setUserOrgNames(userInfoService.getOrgNameByUserPeriod(getAccount(),"二期验收室","三期验收室"));
return success(entrustService.page(getPage(), entrust));
}
......
......@@ -541,6 +541,19 @@ public class EntrustSampleController extends ServiceController {
return success(entrustSampleService.pageBySampleLeftHis(getPage(), sampleVO));
}
@ApiOperation("验收结果录入分页列表")
@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_acceptance_result_entry")
public RestResult<Page<EntrustSampleVO>> getPageAcceptanceResultEntry(EntrustSampleVO entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.END);
return success(entrustSampleService.pageAcceptanceResultEntry(getPage(), entrustSample));
}
@ApiOperation("检测结果查询分页列表")
@ApiImplicitParams({
......
......@@ -63,7 +63,19 @@ public class MaterialController extends ServiceController {
})
@PostMapping("/page_material")
public RestResult<Page<Material>> getPageMaterial(Material material) {
return success(materialService.pageMaterial(getPage(), material, getAccount()));
return success(materialService.getPageMaterialByPerson(getPage(), material, "ASSIGNOR", getAccount()));
}
@ApiOperation("样品库按人分页列表")
@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_materials")
public RestResult<Page<Material>> getPageMaterialByPerson(Material material) {
return success(materialService.getPageMaterialByPerson(getPage(), material, "REPORT_RECIPIENT", getAccount()));
}
@ApiOperation("查询 id 信息")
......
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.CargoSpace;
/**
* <p>
* 货位管理 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-08-20
*/
public interface CargoSpaceMapper extends BatchMapper<CargoSpace> {
}
......@@ -31,6 +31,7 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List<EntrustSampleVO> selectTestResultQuery(RowBounds rowBounds, @Param("vo") EntrustSampleVO entrustSample);
@SqlParser(filter = true)
List<AlTasteStatsVO> selectAlTasteStats(@Param("vo") StatsQueryDTO queryDTO);
List<ElectrolyteRatioStatsVO> selectElectrolyteRatioStats(@Param("vo") QueryDTO queryDTO);
......@@ -45,4 +46,6 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
@SqlParser(filter = true)
List<ReportSampleVO> selectReportSampleInfos(@Param("sampleIds") Long[] sampleIds);
String selectLastCode(@Param("queryKey") String queryKey);
}
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.CargoSpace;
import java.util.List;
/**
* 货位管理 服务类
*
* @author meazty
* @since 2021-08-20
*/
public interface ICargoSpaceService extends IBaseService<CargoSpace> {
Page<CargoSpace> page(Page<CargoSpace> page, CargoSpace cargoSpace);
boolean removeByIds(List<Long> ids);
}
......@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.ContractOkOrganizerDTO;
import com.patzn.cloud.service.hmhj.entity.ContractOkOrganizer;
import java.util.List;
......@@ -19,4 +20,6 @@ public interface IContractOkOrganizerService extends IBaseService<ContractOkOrga
boolean removeByIds(List<Long> ids);
boolean saveBatch(String itemJson);
boolean saveOrganizerBatch(String organizerJson);
}
......@@ -27,6 +27,8 @@ public interface IContractSampleService extends IBaseService<ContractSample> {
boolean submitToStoreTransport(Long[] ids, Account account);
boolean submitToStoreRegister(Long[] ids, Account account);
boolean submitToProTechCheck(Long[] ids, Account account);
boolean proTechCheckPass(Long[] ids, Account account);
......
......@@ -14,7 +14,7 @@ import java.util.List;
import java.util.Map;
/**
* 服务类
* 服务类
*
* @author wwd
* @since 2021-02-01
......@@ -63,7 +63,7 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
List<ElectrolyteRatioStatsVO> getElectrolyteRatioStatsQuery(QueryDTO queryDTO);
Map<String,Object> getPMakeFeStatsQuery(QueryDTO queryDTO);
Map<String, Object> getPMakeFeStatsQuery(QueryDTO queryDTO);
boolean updateSampleNextFlowInfo(Entrust entrust, EntrustFlowEnum nextFlowStatus, Account account);
......@@ -99,7 +99,7 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean isRequireJudgeGrading(Long entrustId);
boolean updateJudgeStatus(Long entrustId,Integer judgeStatus);
boolean updateJudgeStatus(Long entrustId, Integer judgeStatus);
Page<EntrustSampleVO> pageVOForMakeHis(Page<EntrustSampleVO> page, EntrustSampleVO entrustSample);
......@@ -114,4 +114,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean updateBatchByData(List<EntrustSample> sampleList);
List<ReportSampleVO> getReportBrands(Long[] sampleIds);
Page<EntrustSampleVO> pageAcceptanceResultEntry(Page<EntrustSampleVO> page, EntrustSampleVO entrustSampleVO);
String getNewCode(String queryKey, int lens);
}
......@@ -22,5 +22,5 @@ public interface IMaterialService extends IBaseService<Material> {
boolean removeByIds(List<Long> ids);
Page<Material> pageMaterial(Page<Material> page, Material material, Account account);
Page<Material> getPageMaterialByPerson(Page<Material> page, Material material, String bizType, Account account);
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.entity.CargoSpace;
import com.patzn.cloud.service.lims.hmhj.mapper.CargoSpaceMapper;
import com.patzn.cloud.service.lims.hmhj.service.ICargoSpaceService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* 货位管理 服务实现类
*
* @author meazty
* @since 2021-08-20
*/
@Service
public class CargoSpaceServiceImpl extends BaseServiceImpl<CargoSpaceMapper, CargoSpace> implements ICargoSpaceService {
@Override
public Page<CargoSpace> page(Page<CargoSpace> page, CargoSpace cargoSpace) {
String cargo = cargoSpace.getCargoSpace(), location = cargoSpace.getStorageLocation(), plantArea = cargoSpace.getPlantArea();
cargoSpace.setCargoSpace(null).setPlantArea(null).setStorageLocation(null);
Wrapper wrapper = new EntityWrapper<>(cargoSpace);
if (StringUtils.isNotBlank(cargo)) {
wrapper.like("cargo_space", cargo);
}
if (StringUtils.isNotBlank(location)) {
wrapper.like("storage_location", location);
}
if (StringUtils.isNotBlank(plantArea)) {
wrapper.like("plant_area", plantArea);
}
wrapper.orderDesc(Collections.singleton("ctime"));
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
......@@ -3,8 +3,12 @@ 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.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.exception.PatznException;
import com.patzn.cloud.service.hmhj.dto.ContractOkOrganizerDTO;
import com.patzn.cloud.service.hmhj.entity.ContractOkOrganizer;
import com.patzn.cloud.service.hmhj.entity.ContractSample;
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;
......@@ -15,6 +19,8 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 服务实现类
......@@ -54,4 +60,37 @@ public class ContractOkOrganizerServiceImpl extends BaseServiceImpl<ContractOkOr
return false;
}
@Override
public boolean saveOrganizerBatch(String organizerJson) {
ContractOkOrganizerDTO organizerDTO = null;
try {
organizerDTO = JSONObject.parseObject(organizerJson, ContractOkOrganizerDTO.class);
} catch (Exception e) {
throw new PatznException("信息转换失败");
}
RestAssert.fail(null == organizerDTO.getContractIds(), "合同信息为空");
RestAssert.fail(CollectionUtils.isEmpty(organizerDTO.getContractOkOrganizerList()), "验收专家信息为空");
List<ContractOkOrganizer> contractOkOrganizerList = organizerDTO.getContractOkOrganizerList();
for (Long contractId : organizerDTO.getContractIds()) {
contractOkOrganizerList.forEach(t -> {
t.setContractSampleId(contractId);
});
List<ContractOkOrganizer> organizerList = list(Condition.create().eq("contract_sample_id", contractId));
if (CollectionUtils.isNotEmpty(organizerList)) {
Map<Long, Long> userMap = organizerList.stream().collect(Collectors.toMap(ContractOkOrganizer::getUserId, ContractOkOrganizer::getId));
contractOkOrganizerList.forEach(t -> {
if (userMap.containsKey(t.getUserId())) {
t.setId(userMap.get(t.getUserId()));
}
});
}
saveOrUpdateBatch(contractOkOrganizerList);
contractOkOrganizerList.forEach(t -> t.setUserId(null).setId(null));
}
return true;
}
}
......@@ -123,6 +123,19 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
return super.update(contractSample, Condition.create().in("id", ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean submitToStoreRegister(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的合同!");
judgePauseStatus(ids);
ContractSample contractSample = new ContractSample();
contractSample.setStatus(ContractSampleStatusEnum.STORAGE_REGISTER);
contractSample.setProgress(ContractSampleStatusEnum.STORAGE_REGISTER);
contractSampleRecordService.record(ids, ContractSampleStatusEnum.DRAFT, ContractSampleStatusEnum.STORAGE_REGISTER, 0, "提交至储运入库登记", account);
// lmsMsgService.sendMsg("/hmhj/accept_manage/accept_register","有合同从提交过来,请及时处理","新的储运部门登记任务!",account,null);
return super.update(contractSample, Condition.create().in("id", ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -434,9 +447,9 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
@Override
public Page<ContractSample> pageOutReg(Page<ContractSample> page, ContractSample contractSample) {
String code = contractSample.getCode();
String code = contractSample.getCode(),userOrgNames = contractSample.getUserOrgNames();
String materialName = contractSample.getMaterialName();
contractSample.setCode(null).setMaterialName(null);
contractSample.setCode(null).setMaterialName(null).setUserOrgNames(null);
Wrapper wrapper = new EntityWrapper<>(contractSample);
if (StringUtils.isNotBlank(code)) {
......@@ -445,6 +458,9 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
if (StringUtils.isNotBlank(materialName)) {
wrapper.like("material_name", materialName);
}
if (StringUtils.isNotBlank(userOrgNames)) {
wrapper.like("user_org_names", userOrgNames);
}
wrapper.orderBy("ctime", false);
wrapper.notExists("select 1 from entrust_sample s where s.deleted = 0 and s.contract_sample_id = contract_sample.id");
return this.page(page, wrapper);
......
......@@ -234,6 +234,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
(toFlowStatus == EntrustFlowEnum.REPORT_ISSUE || toFlowStatus == EntrustFlowEnum.REPORT_SEND)) {
judgeStatusPath(entrust, toFlowStatus);
}
// 是否可以进入下一步流程,一旦为空,直接正常流程处理
EntrustFlowEnum flowStatus = EntrustFlowUtils.getNextFlowStatus(entrust.getFlowStatus(), entrust.getStatusPath());
// 报告的审核状态不再走submitToNextNode
......
......@@ -382,7 +382,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
executor1.execute(() -> changeExcelToPdf(ids, list));
// 提交后执行组合判定
executor1.execute(() -> updateComposeJudgeByTestValue(entrustId));
executor1.execute(() -> {
entrustSampleItemService.updateItemComposeJudgeByEntrustId(entrust.getId());
updateComposeJudgeByTestValue(entrustId);
});
// 处理原铝是否重取
executor1.execute(() -> updateSampleRetakeByEntrustId(entrustId));
......@@ -977,7 +980,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
for (EntrustSampleVO sampleVO : sampleList) {
EntrustSample sample = sampleVO.convert(EntrustSample.class);
// 若为此标准,需要判断是否需要过滤掉稀有元素的判断
boolean isSpecStandard = "GB/T 1196 2017".equalsIgnoreCase(sampleVO.getProductCode());
boolean isSpecStandard = sampleVO.getProductCode().contains("GB/T 1196 2017");
// 检测值【内部检测值实际为指标表中数据,外委检测值为检测项目数据】
List<EntrustSampleItemVO> sampleItemList;
// 若为外部检测
......@@ -997,18 +1000,18 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 是否组合判定
boolean isComposeJudgment = null != standard.getComposeJudge() && 1 == standard.getComposeJudge().intValue();
// 计算合计-组合判定合计值
BigDecimal totalDecimal = sampleItemList.stream().filter(t -> {
// 过滤为组合判定且值不为空检测项目
BigDecimal totalDecimal = sampleItemList.stream().map(t -> {
if (StringUtils.isBlank(t.getTestValue())) {
return BigDecimal.ZERO;
}
String testValue = t.getTestValue().trim();
int composeJudge = null == t.getComposeJudge() ? 0 : t.getComposeJudge().intValue();
return 1 == composeJudge && StringUtils.isNotBlank(t.getTestValue());
}).map(t -> {
// 符合此条件,需要判断是否此标准且为稀有元素且值小于0.01即可忽略为0
String testValue = t.getTestValue().trim();
RestAssert.fail(!isNumber(testValue), String.format("样品编号【%s】存在错误检测值【%s】", sample.getCode(), testValue));
if (isSpecStandard && otherYsList.contains(t.getName()) && Double.parseDouble(testValue) < 0.01) {
return BigDecimal.ZERO;
if (1 == composeJudge || (isSpecStandard && otherYsList.contains(t.getName()) && Double.parseDouble(testValue) >= 0.01)) {
return new BigDecimal(testValue);
}
return new BigDecimal(testValue);
return BigDecimal.ZERO;
}).reduce(BigDecimal.ZERO, BigDecimal::add);
// 杂质合计值修约
......@@ -1227,9 +1230,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
}
if (CollectionUtils.isNotEmpty(reportList)) {
entrustReportService.updateBatchById(reportList);
Long[] reportIds = reportList.stream().map(EntrustReport::getId).collect(Collectors.toList()).toArray(new Long[reportList.size()]);
// Long[] reportIds = reportList.stream().map(EntrustReport::getId).collect(Collectors.toList()).toArray(new Long[reportList.size()]);
// 重新生成pdf文件
entrustReportService.changeExcelReportToPdf(reportIds);
// entrustReportService.changeExcelReportToPdf(reportIds);
}
}
......
......@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
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.commons.toolkit.FileUtils;
......@@ -43,6 +44,8 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
......@@ -100,6 +103,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override
public Page<EntrustSample> page(Page<EntrustSample> page, EntrustSample entrustSample) {
Wrapper wrapper = new EntityWrapper<>(entrustSample);
wrapper.orderDesc(Collections.singleton("ctime"));
return this.page(page, wrapper);
}
......@@ -237,14 +241,18 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
return super.count(Condition.create().eq("entrust_id", id));
}
private Long getValSum(Long val1, Long val2) {
return (null == val1 ? 0l : val1) + (null == val2 ? 0l : val2);
private Integer getValSum(Integer val1, Integer val2) {
return (null == val1 ? 0 : val1) + (null == val2 ? 0 : val2);
}
private Double getValSum(Double val1, Double val2) {
return (null == val1 ? 0.0000 : val1) + (null == val2 ? 0.0000 : val2);
}
private double getPer(double d) {
return new BigDecimal(d).setScale(2, RoundingMode.UP).doubleValue();
}
private AlTasteStatsVO getTotalData(List<AlTasteStatsVO> voList) {
AlTasteStatsVO bpStatsVO = new AlTasteStatsVO();
bpStatsVO.setPlant("合计");
......@@ -252,21 +260,30 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
for (AlTasteStatsVO t : voList) {
bpStatsVO.setTotal(getValSum(bpStatsVO.getTotal(), t.getTotal()));
bpStatsVO.setSlotsNum(getValSum(bpStatsVO.getSlotsNum(), t.getSlotsNum()));
// ==
bpStatsVO.setAl85Num(getValSum(bpStatsVO.getAl85Num(), t.getAl85Num()));
bpStatsVO.setAl85Per(getValSum(bpStatsVO.getAl85Per(), t.getAl85Per()));
bpStatsVO.setAl85Per(getPer(t.getAl85Num() * 1.0 / t.getTotal()));
bpStatsVO.setAl85SlotsNum(getValSum(bpStatsVO.getAl85SlotsNum(), t.getAl85SlotsNum()));
bpStatsVO.setAl70DtNum(getValSum(bpStatsVO.getAl70DtNum(), t.getAl70DtNum()));
bpStatsVO.setAl70DtPer(getPer(t.getAl70DtNum() * 1.0 / t.getTotal()));
bpStatsVO.setAl70DtSlotsNum(getValSum(bpStatsVO.getAl70DtSlotsNum(), t.getAl70DtSlotsNum()));
bpStatsVO.setAl70Num(getValSum(bpStatsVO.getAl70Num(), t.getAl70Num()));
bpStatsVO.setAl70Per(getValSum(bpStatsVO.getAl70Per(), t.getAl70Per()));
bpStatsVO.setAl70Per(getPer(t.getAl70Num() * 1.0 / t.getTotal()));
bpStatsVO.setAl70SlotsNum(getValSum(bpStatsVO.getAl70SlotsNum(), t.getAl70SlotsNum()));
bpStatsVO.setFe10Num(getValSum(bpStatsVO.getFe10Num(), t.getFe10Num()));
bpStatsVO.setFe10Per(getValSum(bpStatsVO.getFe10Per(), t.getFe10Per()));
bpStatsVO.setFe10SlotsNum(getValSum(bpStatsVO.getFe10SlotsNum(), t.getFe10SlotsNum()));
bpStatsVO.setAl70GeNum(getValSum(bpStatsVO.getAl70GeNum(), t.getAl70GeNum()));
bpStatsVO.setAl70GePer(getPer(t.getAl70GeNum() * 1.0 / t.getTotal()));
bpStatsVO.setAl70GeSlotsNum(getValSum(bpStatsVO.getAl70GeSlotsNum(), t.getAl70GeSlotsNum()));
bpStatsVO.setFe08Num(getValSum(bpStatsVO.getFe08Num(), t.getFe08Num()));
bpStatsVO.setFe08Per(getValSum(bpStatsVO.getFe08Per(), t.getFe08Per()));
bpStatsVO.setFe08SlotsNum(getValSum(bpStatsVO.getFe08SlotsNum(), t.getFe08SlotsNum()));
// bpStatsVO.setFe10Num(getValSum(bpStatsVO.getFe10Num(), t.getFe10Num()));
// bpStatsVO.setFe10Per(t.getFe10Num() * 1.0 / t.getTotal());
// bpStatsVO.setFe10SlotsNum(getValSum(bpStatsVO.getFe10SlotsNum(), t.getFe10SlotsNum()));
// bpStatsVO.setFe08Num(getValSum(bpStatsVO.getFe08Num(), t.getFe08Num()));
// bpStatsVO.setFe08Per(t.getFe08Num() * 1.0 / t.getTotal());
// bpStatsVO.setFe08SlotsNum(getValSum(bpStatsVO.getFe08SlotsNum(), t.getFe08SlotsNum()));
}
return bpStatsVO;
}
......@@ -634,7 +651,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override
public boolean removeByIds(List<Long> ids) {
entrustSampleItemService.remove(Condition.create().in("entrust_sample_id",ids));
entrustSampleItemService.remove(Condition.create().in("entrust_sample_id", ids));
return baseMapper.deleteBatchIds(ids) > 0;
}
......@@ -1877,4 +1894,41 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
return baseMapper.selectReportSampleInfos(sampleIds);
}
@Override
public Page<EntrustSampleVO> pageAcceptanceResultEntry(Page<EntrustSampleVO> page, EntrustSampleVO entrustSampleVO) {
if (null == entrustSampleVO.getContractSampleId()) {
return null;
}
List<EntrustSample> entrustSamples = list(Condition.create().eq("contract_sample_id", entrustSampleVO.getContractSampleId()));
if (CollectionUtils.isEmpty(entrustSamples)) {
return null;
}
Long entrustId = entrustSamples.get(0).getEntrustId();
if (null == entrustId) {
return null;
}
entrustSampleVO.setEntrustId(entrustId);
return page.setRecords(baseMapper.selectVOList(page, entrustSampleVO));
}
@Override
public String getNewCode(String queryKey, int lens) {
String startKey = "000000000000000000", defKey = queryKey + startKey.substring(0, lens - 1) + 1;
if (StringUtils.isBlank(queryKey)) {
return defKey;
}
String lastCode = baseMapper.selectLastCode(queryKey);
if (StringUtils.isBlank(lastCode)) {
return defKey;
}
String sampleSN = lastCode.substring(lastCode.length() - lens);
try {
Integer nextSN = Integer.parseInt(sampleSN) + 1;
return queryKey + startKey.substring(0, lens - nextSN.toString().length()) + nextSN;
} catch (NumberFormatException e) {
logger.error(e.getMessage(), e.getCause());
throw new PatznException("样品编码流水号获取异常");
}
}
}
\ No newline at end of file
......@@ -113,8 +113,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override
public Page<Entrust> page(Page<Entrust> page, Entrust entrust) {
String code = entrust.getCode(), client = entrust.getClient();
entrust.setCode(null).setClient(null);
String code = entrust.getCode(), client = entrust.getClient(),userOrgNames = entrust.getUserOrgNames();
entrust.setCode(null).setClient(null).setUserOrgNames(null);
Wrapper wrapper = new EntityWrapper<>(entrust);
if (StringUtils.isNotBlank(code)) {
wrapper.like("code", code);
......@@ -122,6 +122,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
if (StringUtils.isNotBlank(client)) {
wrapper.like("client", client);
}
if (StringUtils.isNotBlank(userOrgNames)) {
wrapper.like("user_org_names", userOrgNames);
}
wrapper.orderBy("ctime", false);
return this.page(page, wrapper);
}
......@@ -249,16 +252,25 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
// 替换班次BC
sampleCode = sampleCode.replace("BC", clazz);
// @yyMM&CH&BC&SN len(SN) = 3
String queryKey = sampleCode.substring(0, sampleCode.length() - 3);
sampleCode = entrustSampleService.getNewCode(queryKey, 3);
}
// 电解质散样样品编号处理
else if (CodeTypeEnum.ELECT_BULK_SAMPLE_CODE == codeType) {
// 替换槽号CH
sampleCode = sampleCode.replace("CH", sample.getSlotNo());
// @yyMM&CH&SN len(SN) = 3
String queryKey = sampleCode.substring(0, sampleCode.length() - 3);
sampleCode = entrustSampleService.getNewCode(queryKey, 3);
}
//原铝重取样品编号处理
else if (CodeTypeEnum.AL_RETAKE_SAMPLE_CODE == codeType) {
// 替换槽号CH
sampleCode = sampleCode.replace("CH", sample.getSlotNo());
// @yyMMdd&CH&C&SN len(SN) = 1
String queryKey = sampleCode.substring(0, sampleCode.length() - 1);
sampleCode = entrustSampleService.getNewCode(queryKey, 1);
}
}
......@@ -325,7 +337,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
entrust.setId(IdWorker.getId());
// 保存并提交委托时使用
dto.setId(entrust.getId());
List<String> orgNameList = userInfoService.getUserOrgNames(account);
if (com.baomidou.mybatisplus.toolkit.CollectionUtils.isNotEmpty(orgNameList)) {
dto.setUserOrgNames(StringUtils.join(orgNameList, ","));
}
if (CollectionUtils.isNotEmpty(sampleDTOList)) {
RestAssert.fail(sampleDTOList.stream().map(EntrustSampleDTO::getName).distinct().count() > 1, "一个委托只能下同一种样品!");
......@@ -359,6 +374,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
entrust.setTotalFee(totalFee);
//保存样品名称
entrust.setSampleName(sampleDTOList.get(0).getName());
if(null == entrust.getMaterialId()){
entrust.setMaterialId(sampleDTOList.get(0).getMaterialId());
}
if (saveEntrust(entrust)) {
if (CollectionUtils.isNotEmpty(saveSampleList)) {
entrustSampleService.saveBatch(saveSampleList);
......@@ -1329,8 +1347,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
entrustVO.setCodes(ListToStringUtils.listToString(codes, Symbol.HALT, gangCode));
dataMap.put("entrust", entrustVO);
/* 项目名 */
Set<String> itemNames = currItems.stream().filter(i -> StringUtils.isNotEmpty(i.getName()))
.map(i -> i.getName()).collect(Collectors.toSet());
Set<String> itemNames = currItems.stream().map(i -> i.getName())
.filter(name -> StringUtils.isNotEmpty(name)).collect(Collectors.toSet());
/* 执行标准 */
Set<String> standards = currItems.stream()
.filter(i -> StringUtils.isNotEmpty(i.getStandard()))
......@@ -1456,7 +1474,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// 默认设置
int status = null == statusInt ? 0 : statusInt.intValue();
// 组织ID
Long orgId = -1l;
Long orgId = -1L;
if (1 == status) {
List<SysOrg> orgList = sysOrgClient.getListByUserId(LoginHelper.getAccount().getUserId()).getData();
RestAssert.fail(CollectionUtils.isEmpty(orgList), "用户组织为空");
......@@ -1468,7 +1486,6 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override
public Page<EntrustVO> getPageEntrustTpl(Page<EntrustVO> page, EntrustVO entrust) {
List<SysOrg> orgList = sysOrgClient.getListByUserId(LoginHelper.getAccount().getUserId()).getData();
Long orgId = -2l;
if (CollectionUtils.isNotEmpty(orgList)) {
entrust.setOrgId(orgList.get(0).getId());
}
......@@ -1514,9 +1531,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
updateModel.setFlowStatus(EntrustFlowEnum.MAKE.getName());
update(updateModel, Condition.create().in("id", normalIds));
// 更改样品编号级别
normalIds.forEach(entrustId -> {
entrustSampleService.updateSampleCodeByEntrustId(entrustId, HmConst.TWO);
});
normalIds.forEach(entrustId -> entrustSampleService.updateSampleCodeByEntrustId(entrustId, HmConst.TWO));
entrustRecordService.record(normalIds, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备");
lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托审核通过,请及时进行样品的制备", "新的样品制备任务!", account, sendUserIdList);
}
......
......@@ -56,9 +56,12 @@ public class MaterialServiceImpl extends BaseServiceImpl<MaterialMapper, Materia
}
@Override
public Page<Material> pageMaterial(Page<Material> page, Material material,Account account) {
public Page<Material> getPageMaterialByPerson(Page<Material> page, Material material, String bizType, Account account) {
if (StringUtils.isBlank(bizType)) {
return null;
}
Wrapper<Material> wrapper = new EntityWrapper<>(material);
wrapper.exists("select 1 from business_staff s where s.deleted = 0 and s.biz_id = material.id and s.biz_type = 'ASSIGNOR' and s.staff_id = " + account.getUserId());
wrapper.exists("select 1 from business_staff s where s.deleted = 0 and s.biz_id = material.id and s.biz_type = '" + bizType + "' and s.staff_id = " + account.getUserId());
return page(page, material, wrapper);
}
}
......@@ -11,6 +11,7 @@ import com.patzn.cloud.service.lims.hmhj.service.IStandardSampleService;
import jodd.util.StringUtil;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
......@@ -29,6 +30,7 @@ public class StandardSampleServiceImpl extends BaseServiceImpl<StandardSampleMap
if (StringUtil.isNotBlank(name)) {
wrapper.like("name", name);
}
wrapper.orderAsc(Collections.singleton("num"));
return this.page(page, wrapper);
}
......
......@@ -17,12 +17,12 @@ 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.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -138,6 +138,11 @@ public class UserInfoServiceImpl {
return CollectionUtils.isNotEmpty(orgList) ? orgList.get(0) : null;
}
public Long getUserOrgId(Account account) {
SysOrg sysOrg = getUserOrg(account);
return null == sysOrg ? null : sysOrg.getId();
}
public List<SysUser> getUsersByOrg(Long orgId) {
RestAssert.fail(null == orgId, "组织ID为空");
return sysUserClient.getListByOrgId(orgId, "").getData();
......@@ -173,6 +178,32 @@ public class UserInfoServiceImpl {
return null;
}
public String getSysOrgName(SysOrg sysOrg) {
if (null == sysOrg) {
return "";
}
if (null != sysOrg.getPid()) {
return getSysOrgName(sysOrgClient.get(sysOrg.getPid()).serviceData());
}
return "";
}
public List<String> getUserOrgNames(Account account) {
List<SysOrg> orgList = sysOrgClient.getListByUserId(account.getUserId()).getData();
if (CollectionUtils.isEmpty(orgList)) {
return null;
}
Set<String> nameSet = new HashSet<>();
for (SysOrg org : orgList) {
nameSet.add(org.getName());
String orgName = getSysOrgName(org);
if (StringUtils.isNotBlank(orgName)) {
nameSet.add(orgName);
}
}
return new ArrayList<>(nameSet);
}
public String getUserPeriod(Account account) {
List<SysOrg> orgList = sysOrgClient.getListByUserId(account.getUserId()).getData();
if (CollectionUtils.isEmpty(orgList)) {
......@@ -197,4 +228,17 @@ public class UserInfoServiceImpl {
}
return null;
}
public String getOrgNameByUserPeriod(Account account, String... periods) {
List<String> userOrgNameList = getUserOrgNames(account);
if (CollectionUtils.isEmpty(userOrgNameList)) {
return null;
}
List<String> list = Arrays.stream(periods).filter(t -> userOrgNameList.contains(t)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(list)) {
return null;
}
return list.get(0);
}
}
<?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.hmhj.mapper.CargoSpaceMapper">
</mapper>
......@@ -5,28 +5,36 @@
<sql id="sqlWhere">
<if test="null!=vo.neType">
AND s.type != #{vo.neType}
</if>
<if test="null!=vo.neType">
AND s.type != #{vo.neType}
</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.status">
AND s.status = #{vo.status}
</if>
<if test="null!=vo.materialName">
AND s.material_name LIKE CONCAT('%',#{vo.materialName},'%')
</if>
<if test="null!=vo.code">
AND s.code LIKE CONCAT('%',#{vo.code},'%')
</if>
<if test="null!=vo.currUserId">
AND exists (select 1 from v_sys_user_role r where r.user_id = #{vo.currUserId} and r.role_name in ('验收主管','验收管理员'))
</if>
<if test="null!=vo.materialName">
AND s.material_name LIKE CONCAT('%',#{vo.materialName},'%')
</if>
<if test="null!=vo.userOrgNames">
AND s.user_org_names LIKE CONCAT('%',#{vo.userOrgNames},'%')
</if>
<if test="null!=vo.statusList">
AND s.status IN
<foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<if test="null!=vo.statusList">
AND s.status IN
<foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<if test="null!=vo.idList">
AND s.id IN
......@@ -41,12 +49,12 @@
</sql>
<select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.ContractSampleVO">
SELECT s.* FROM contract_sample s WHERE s.deleted = 0
SELECT s.* FROM contract_sample s WHERE s.deleted = 0
<include refid="sqlWhere"/>
order by s.ctime desc
</select>
<select id="selectVOPublishList" resultType="com.patzn.cloud.service.hmhj.vo.ContractSampleVO">
SELECT s.*,
SELECT s.*,
t.code AS "sampleCode",
t.name,
t.id AS "entrustSampleId",
......
......@@ -251,16 +251,14 @@
<select id="selectEntrustProgressList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT id,code,client,client_tel,entrust_time,assignor,test_side,status,progress,
SELECT id,code,client,client_tel,entrust_time,assignor,test_side,status,progress,sample_name,
s."sample_num"
FROM entrust e
left join (select s.entrust_id,count(1) "sample_num" from entrust_sample s
where s.deleted = 0 group by s.entrust_id
) s on s.entrust_id = e.id
WHERE deleted = 0
<include refid="basicCondition"/>
<if test="null != vo.entrustTimeS and null != vo.entrustTimeE">
AND to_char(entrust_time, 'YYYY-MM-dd HH24:MI:SS') BETWEEN #{vo.entrustTimeS} AND #{vo.entrustTimeE}
</if>
......
......@@ -180,47 +180,55 @@
<select id="selectAlTasteStats" resultType="com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO">
with ix as (
SELECT
i.company_id,
i.entrust_sample_id,
(case when sum(ROUND(CAST(ii.test_value AS NUMERIC),5)) &lt;= 0.15 then 1 else 0 end) "al_85_num",
(case when sum(ROUND(CAST(ii.test_value AS NUMERIC),5)) &gt; 0.15 and sum(ROUND(CAST(ii.test_value AS NUMERIC),5)) &lt;= 0.3 then 1 else 0 end) "al_70_num",
sum(case when ii."name" = 'Fe%' and ROUND(CAST(ii.test_value AS NUMERIC),5) &lt;= 0.1 then 1 else 0 end) "fe_10_num",
sum(case when ii."name" = 'Fe%' and ROUND(CAST(ii.test_value AS NUMERIC),5) &lt;= 0.008 then 1 else 0 end) "fe_08_num"
s.id "sample_id",
case when s.sample_grading = 'Al99.85' then 1 else 0 end "al_85_num",
case when s.sample_grading = 'Al99.80' then 1 else 0 end "al_80_num",
case when s.sample_grading = 'Al99.70' then 1 else 0 end "al_70_num",
case when s.sample_grading = 'Al99.70DT' then 1 else 0 end "al_70_dt_num",
case when (s.sample_grading = 'Al99.85' or s.sample_grading = 'Al99.80' or s.sample_grading = 'Al99.70' or s.sample_grading = 'Al99.70DT') then 1 else 0 end "al_70_ge_num"
FROM
entrust_sample_item i,
entrust_sample_item_index ii
entrust_sample s
JOIN electrolyzer e ON s.electrolyzer_id = e.ID
WHERE
i.ID = ii.entrust_sample_item_id
AND i.deleted = 0
AND ii.deleted = 0
and ii.test_value is not null and is_numeric(ii.test_value)
GROUP BY i.company_id,i.entrust_sample_id
s.deleted = 0 and e.deleted = 0 AND s.type = 0
AND s.status = 70
AND s.NAME = '原铝'
AND s.sample_grading is not null
)
SELECT
e.model "branch",
e.plant,
COUNT ( 1 ) "total",
( CASE WHEN COUNT ( 1 ) / ${vo.days} > 1 THEN ( COUNT ( 1 ) / (${vo.days} / 2) ) ELSE 1 END ) "slots_num",
sum(ix.al_85_num) "al_85_num",
round(coalesce(sum(ix.al_85_num),0) * 1.0 / COUNT ( 1 ),2) "al_85_per",
round(coalesce(sum(ix.al_85_num),0) / (${vo.days} / 2)) "al_85_slots_num",
sum(ix.al_80_num) "al_80_num",
round(coalesce(sum(ix.al_80_num),0) * 1.0 / COUNT ( 1 ),2) "al_80_per",
round(coalesce(sum(ix.al_80_num),0) / (${vo.days} / 2)) "al_80_slots_num",
sum(ix.al_70_num) "al_70_num",
round(coalesce(sum(ix.al_70_num),0) * 1.0 / COUNT ( 1 ),2) "al_70_per",
round(coalesce(sum(ix.al_70_num),0) / (${vo.days} / 2)) "al_70_slots_num",
sum(ix.fe_10_num) "fe_10_num",
round(coalesce(sum(ix.fe_10_num),0) * 1.0 / COUNT ( 1 ),2) "fe_10_per",
round(coalesce(sum(ix.fe_10_num),0) / (${vo.days} / 2)) "fe_10_slots_num",
sum(ix.al_70_dt_num) "al_70_dt_num",
round(coalesce(sum(ix.al_70_dt_num),0) * 1.0 / COUNT ( 1 ),2) "al_70_dt_per",
round(coalesce(sum(ix.al_70_dt_num),0) / (${vo.days} / 2)) "al_70_dt_slots_num",
sum(ix.fe_08_num) "fe_08_num",
round(coalesce(sum(ix.fe_08_num),0) * 1.0 / COUNT ( 1 ),2) "fe_08_per",
round(coalesce(sum(ix.fe_08_num),0) / (${vo.days} / 2)) "fe_08_slots_num"
sum(ix.al_70_ge_num) "al_70_ge_num",
round(coalesce(sum(ix.al_70_ge_num),0) * 1.0 / COUNT ( 1 ),2) "al_70_ge_per",
round(coalesce(sum(ix.al_70_ge_num),0) / (${vo.days} / 2)) "al_70_ge_slots_num"
FROM
entrust_sample s
JOIN electrolyzer e ON s.electrolyzer_id = e.ID
LEFT JOIN ix ix ON ix.entrust_sample_id = s.id
LEFT JOIN ix ON ix.sample_id = s.id
WHERE
s.deleted = 0 and e.deleted = 0 and s.name = '原铝' AND s.type = 0
s.deleted = 0 and e.deleted = 0 AND s.type = 0
AND s.status = 70
AND s.NAME = '原铝'
AND s.sample_grading is not null
<if test="null != vo.timeS and null != vo.timeE">
AND EXISTS (
select 1 from entrust_sample_item si where si.deleted = 0 and si.entrust_sample_id = s.id
......@@ -436,6 +444,10 @@
</foreach>
</select>
<select id="selectLastCode" resultType="java.lang.String">
select max(s.code) "max_code" from entrust_sample s where s.deleted = 0 and s.code like concat(#{queryKey},'%')
</select>
<update id="updateBatchByData" parameterType="java.util.List">
<foreach collection="sampleList" item="item" index="index" open="" close="" separator=";">
update entrust_sample
......
/** created by meazty on 2021/8/20 17:07 **/
/** created by meazty on 2021/8/20 17:07 **/
ALTER TABLE "public"."contract_sample"
ADD COLUMN "qualified_quantity" int2,
ADD COLUMN "storage_time" timestamp(6);
COMMENT ON COLUMN "public"."contract_sample"."qualified_quantity" IS '合格数量';
COMMENT ON COLUMN "public"."contract_sample"."storage_time" IS '入库时间';
-- -------------------------------------------------------- --
DROP TABLE IF EXISTS "public"."cargo_space";
CREATE TABLE "public"."cargo_space" (
"id" int8 NOT NULL,
"plant_area" varchar(64) COLLATE "pg_catalog"."default",
"storage_location" varchar(128) COLLATE "pg_catalog"."default",
"cargo_space" varchar(64) COLLATE "pg_catalog"."default",
"remark" varchar(255) COLLATE "pg_catalog"."default",
"company_id" int8 NOT NULL,
"uid" int8 NOT NULL,
"lid" int8,
"ltime" timestamp(6),
"ctime" timestamp(6) NOT NULL,
"deleted" int2 NOT NULL DEFAULT 0
)
;
COMMENT ON COLUMN "public"."cargo_space"."plant_area" IS '厂区';
COMMENT ON COLUMN "public"."cargo_space"."storage_location" IS '存放位置';
COMMENT ON COLUMN "public"."cargo_space"."cargo_space" IS '货位';
COMMENT ON COLUMN "public"."cargo_space"."remark" IS '备注';
COMMENT ON COLUMN "public"."cargo_space"."company_id" IS '企业 ID';
COMMENT ON COLUMN "public"."cargo_space"."uid" IS '创建人 ID';
COMMENT ON COLUMN "public"."cargo_space"."lid" IS '最后修改人 ID';
COMMENT ON COLUMN "public"."cargo_space"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."cargo_space"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."cargo_space"."deleted" IS '0、正常 1、删除';
COMMENT ON TABLE "public"."cargo_space" IS '货位管理';
-- ----------------------------
-- Primary Key structure for table cargo_space
-- ----------------------------
ALTER TABLE "public"."cargo_space" ADD CONSTRAINT "cargo_space_pkey" PRIMARY KEY ("id");
\ No newline at end of file
/** created by meazty on 2021/8/20 17:07 **/
/** created by meazty on 2021/8/20 17:07 **/
ALTER TABLE "public"."contract_sample"
ADD COLUMN "user_org_names" varchar(512) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."contract_sample"."user_org_names" IS '用户组织信息';
ALTER TABLE "public"."entrust"
ADD COLUMN "user_org_names" varchar(512) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."entrust"."user_org_names" IS '用户组织信息';
ALTER TABLE "public"."entrust_sample"
ADD COLUMN "code_edit" bool;
COMMENT ON COLUMN "public"."entrust_sample"."code_edit" IS '是否可编辑';
-- --------------------------------------------------------
create or replace view v_sys_user_role
as
SELECT u.company_id,
u.user_id,
u.role_id,
u.role_name
FROM dblink(func_db_info('pc_base'::character varying)::text, 'SELECT r.company_id,rr.user_id, rr.role_id, r.NAME "role_name"
FROM sys_user_rel_role rr, sys_role r
WHERE r.status = 1 AND r.ID = rr.role_id '::text) u(company_id bigint, user_id bigint, role_id bigint, role_name character varying);
\ No newline at end of file
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