Commit b800a8b3 by lijingjing

修改霍煤需求;

parent b9454ba0
......@@ -43,6 +43,7 @@ public class ExcelController extends ServiceController {
ExcelController.TPL.put("MeterSendSampleImport", "出检样品导入模板");
ExcelController.TPL.put("SoilEntrustImport", "试验委托单导入模板");
ExcelController.TPL.put("SoilAptExpImport", "试样项目导入模板");
ExcelController.TPL.put("ContractImport", "合同导入模板");
ExcelController.TPL.put("ContractSampleImport", "报验单导入模板");
......
......@@ -96,10 +96,8 @@ public class EntrustFlowUtils {
case 10:
case 11:
case 12:
statusEnum = EntrustStatusEnum.TEST;
break;
case 13:
statusEnum = EntrustStatusEnum.OUT_INPUT;
statusEnum = EntrustStatusEnum.TEST;
break;
case 14:
case 15:
......@@ -152,6 +150,9 @@ public class EntrustFlowUtils {
case 12:
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_SEND;
break;
case 13:
sampleStatusEnum = EntrustSampleStatusEnum.QUALITY_INSPECT;
break;
case 14:
case 15:
sampleStatusEnum = EntrustSampleStatusEnum.END;
......@@ -192,6 +193,8 @@ public class EntrustFlowUtils {
return EntrustReportStatusEnum.ISSUE;
} else if (flowEnum == EntrustFlowEnum.REPORT_SEND) {
return EntrustReportStatusEnum.SEND;
} else if (flowEnum == EntrustFlowEnum.QUALITY_INSPECT) {
return EntrustReportStatusEnum.INSPECT;
} else if (flowEnum == EntrustFlowEnum.QUALITY_JUDGE) {
return EntrustReportStatusEnum.END;
} else if (flowEnum == EntrustFlowEnum.ARCHIVES) {
......
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.AcceptanceExpert;
import com.patzn.cloud.service.lims.hmhj.service.IAcceptanceExpertService;
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-09-22
*/
@Api(tags = "验收专家配置表")
@RestController
@RequestMapping("/v1/expert")
public class AcceptanceExpertController extends ServiceController {
@Autowired
private IAcceptanceExpertService acceptanceExpertService;
@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<AcceptanceExpert>> getPage(AcceptanceExpert acceptanceExpert) {
return success(acceptanceExpertService.page(getPage(), acceptanceExpert));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<AcceptanceExpert> get(@PathVariable("id") Long id) {
return success(acceptanceExpertService.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, AcceptanceExpert acceptanceExpert) {
acceptanceExpert.setId(id);
return success(acceptanceExpertService.updateById(acceptanceExpert));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(AcceptanceExpert acceptanceExpert) {
return success(acceptanceExpertService.save(acceptanceExpert));
}
@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(acceptanceExpertService.removeByIds(ids));
}
}
......@@ -16,6 +16,7 @@ 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.List;
......@@ -47,8 +48,6 @@ public class ContractInfoController extends ServiceController {
@PostMapping("/page")
public RestResult<Page<ContractInfoVO>> getPage(ContractInfoVO contractInfo) {
contractInfo.setStatus(ContractInfoStatusEnum.DRAFT);
// 根据组织显示数据
contractInfo.setPeriod(userInfoService.getUserPeriod(getAccount()));
return success(contractInfoService.pageVO(getPage(), contractInfo));
}
......@@ -109,6 +108,12 @@ public class ContractInfoController extends ServiceController {
return success(contractInfoService.removeByIds(ids));
}
@ApiOperation("批量导入合同单")
@PostMapping("/batch_import")
public RestResult<Boolean> batchImport(@RequestPart MultipartFile file) {
return success(contractInfoService.batchImport(file, getAccount()));
}
@ApiOperation("批量修改合同信息")
@PostMapping("/batch_update")
public RestResult<Boolean> batchUpdate(@RequestParam("ids") Long[] ids, ContractInfo contractInfo) {
......
......@@ -247,7 +247,7 @@ public class ContractSampleController extends ServiceController {
ContractSampleStatusEnum.ENTRUST_REG
));
contractSample.setType(2);
contractSample.setUserOrgName(userInfoService.getOrgNameByUserPeriod(getAccount(),HmConst.ACCEPTANCE_ROOM));
contractSample.setUserOrgName(userInfoService.getOrgNameByUserPeriod(getAccount(), HmConst.ACCEPTANCE_ROOM));
return success(contractSampleService.pageVO(getPage(), contractSample));
}
......@@ -322,9 +322,9 @@ public class ContractSampleController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_expert_review")
public RestResult<Page<ContractSample>> getPageExpertReview(ContractSample contractSample) {
public RestResult<Page<ContractSampleVO>> getPageExpertReview(ContractSampleVO contractSample) {
contractSample.setStatus(ContractSampleStatusEnum.EXPERT_REVIEW);
return success(contractSampleService.page(getPage(), contractSample));
return success(contractSampleService.pageExpertReview(getPage(), contractSample));
}
......@@ -431,7 +431,6 @@ public class ContractSampleController extends ServiceController {
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(ContractSample contractSample) {
contractSample.setPeriod(userInfoService.getUserPeriod(getAccount()));
return success(contractSampleService.save(contractSample));
}
......@@ -439,14 +438,13 @@ public class ContractSampleController extends ServiceController {
@ApiOperation("添加")
@PostMapping("/add_contract_sample")
public RestResult<Boolean> addDTO(@RequestBody ContractSampleDTO dto) {
dto.setPeriod(userInfoService.getUserPeriod(getAccount()));
return success(contractSampleService.addDTO(dto));
}
@ApiOperation("根据合同添加储运合同信息")
@PostMapping("/add_by_contract_info")
public RestResult<Boolean> addDtoByContractInfo(@RequestBody ContractSampleDTO dto) {
dto.setPeriod(userInfoService.getUserPeriod(getAccount()));
// dto.setPeriod(userInfoService.getUserPeriod(getAccount()));
return success(contractSampleService.addByContractInfo(dto));
}
......@@ -515,8 +513,8 @@ public class ContractSampleController extends ServiceController {
@ApiOperation("专家会审提交至验收结果录入")
@PostMapping("/submit_check_result_input")
public RestResult<Boolean> submitCheckResultInput(@RequestParam("ids") Long[] ids, @RequestParam("result") String result) {
return success(contractSampleService.submitCheckResultInput(ids, result, getAccount()));
public RestResult<Boolean> submitCheckResultInput(@RequestParam("ids") Long[] ids, @RequestParam("result") String result, String reason) {
return success(contractSampleService.submitCheckResultInput(ids, result, reason, getAccount()));
}
......
......@@ -739,6 +739,39 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_entrust_report_grant_his")
public RestResult<Page<EntrustVO>> getPageReportGrantHis(EntrustVO entrust) {
entrust.setReportStatusList(Lists.newArrayList(
EntrustReportStatusEnum.INSPECT,
EntrustReportStatusEnum.REPORT_PRINT,
EntrustReportStatusEnum.END
));
return success(entrustService.pageEntrustByReportHis(getPage(), entrust));
}
@ApiOperation(value = "质检审核委托分页列表", notes = "质检审核委托分页列表")
@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_entrust_quality_inspection")
public RestResult<Page<EntrustVO>> getPageQualityInspection(EntrustVO entrust) {
entrust.setReportStatus(EntrustReportStatusEnum.INSPECT);
return success(entrustService.pageEntrustByReport(getPage(), entrust));
}
@ApiOperation(value = "质检审核历史分页列表", notes = "质检审核历史分页列表")
@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_entrust_quality_inspection_his")
public RestResult<Page<EntrustVO>> getPageQualityInspectionHis(EntrustVO entrust) {
entrust.setReportStatusList(Lists.newArrayList(
EntrustReportStatusEnum.REPORT_PRINT,
EntrustReportStatusEnum.END
));
......
package com.patzn.cloud.service.lims.hmhj.controller;
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 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 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.EntrustReport;
import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustReportVO;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService;
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 javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
......@@ -162,6 +153,32 @@ public class EntrustReportController extends ServiceController {
@PostMapping("/page_report_send_his")
public RestResult<Page<EntrustReport>> getPageSendHis(EntrustReport entrustReport) {
List<EntrustReportStatusEnum> reportStatusList = new ArrayList<>();
reportStatusList.add(EntrustReportStatusEnum.INSPECT);
reportStatusList.add(EntrustReportStatusEnum.REPORT_PRINT);
reportStatusList.add(EntrustReportStatusEnum.END);
return success(entrustReportService.pageStatus(getPage(), reportStatusList, entrustReport));
}
@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_quality_inspect")
public RestResult<Page<EntrustReport>> getPageQualityInspection(EntrustReport entrustReport) {
entrustReport.setStatus(EntrustReportStatusEnum.INSPECT);
return success(entrustReportService.page(getPage(), entrustReport));
}
@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_quality_inspect_his")
public RestResult<Page<EntrustReport>> getPageQualityInspectHis(EntrustReport entrustReport) {
List<EntrustReportStatusEnum> reportStatusList = new ArrayList<>();
reportStatusList.add(EntrustReportStatusEnum.REPORT_PRINT);
reportStatusList.add(EntrustReportStatusEnum.END);
return success(entrustReportService.pageStatus(getPage(), reportStatusList, entrustReport));
......@@ -280,10 +297,16 @@ public class EntrustReportController extends ServiceController {
}
@ApiOperation("报告发放提交至质量判定")
@PostMapping("/submit_from_send_to_judge")
public RestResult<Boolean> submitFromSendToJudge(@RequestParam("ids") Long[] ids) {
return success(entrustReportService.submitFromSendToJudge(ids, getAccount()));
@ApiOperation("报告发放提交至质检审核")
@PostMapping("/submit_from_send_to_inspect")
public RestResult<Boolean> submitFromSendToInspect(@RequestParam("ids") Long[] ids) {
return success(entrustReportService.submitFromSendToInspect(ids, getAccount()));
}
@ApiOperation("质检审核提交至质量判定")
@PostMapping("/submit_from_inspect_to_judge")
public RestResult<Boolean> submitFromInspectToJudge(@RequestParam("ids") Long[] ids) {
return success(entrustReportService.submitFromInspectToJudge(ids, getAccount()));
}
......@@ -314,6 +337,12 @@ public class EntrustReportController extends ServiceController {
return success(entrustReportService.backFromReportSendToAllow(ids, reason, getAccount()));
}
@ApiOperation("质检审核退回至报告发放")
@PostMapping("/back_from_inspect_to_send")
public RestResult<Boolean> backFromInspectToSend(@RequestParam("ids") Long[] ids, @RequestParam("reason") String reason) {
return success(entrustReportService.backFromInspectToSend(ids, reason, getAccount()));
}
@ApiOperation("报告批准退回至报告审核")
@PostMapping("/back_from_report_allow_to_check")
public RestResult<Boolean> backFromReportAllowToCheck(@RequestParam("ids") Long[] ids, @RequestParam("reason") String reason) {
......
......@@ -2,30 +2,30 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.google.common.collect.Lists;
import com.patzn.cloud.service.hmhj.dto.*;
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.EntrustSampleADDDTO;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
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 org.apache.commons.lang3.ArrayUtils;
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.IEntrustSampleService;
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.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -171,6 +171,19 @@ public class EntrustSampleController extends ServiceController {
return success(entrustSampleService.page(getPage(), entrustSample));
}
@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_quality_inspect")
public RestResult<Page<EntrustSample>> getPageQualityInspect(EntrustSample entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.QUALITY_INSPECT);
return success(entrustSampleService.page(getPage(), entrustSample));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
......
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.AcceptanceExpert;
/**
* <p>
* 验收专家配置表 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-09-22
*/
public interface AcceptanceExpertMapper extends BatchMapper<AcceptanceExpert> {
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.hmhj.entity.ContractSample;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.ContractSample;
import com.patzn.cloud.service.hmhj.vo.ContractSampleVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
......@@ -22,4 +21,6 @@ public interface ContractSampleMapper extends BatchMapper<ContractSample> {
List<ContractSampleVO> selectVOList(RowBounds rowBounds, @Param("vo") ContractSampleVO contractSample);
List<ContractSampleVO> selectVOPublishList(RowBounds rowBounds, @Param("vo") ContractSampleVO contractSample);
List<ContractSampleVO> selectExpertReviewList(RowBounds rowBounds, @Param("vo") ContractSampleVO contractSample);
}
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.AcceptanceExpert;
import java.util.List;
/**
* 验收专家配置表 服务类
*
* @author meazty
* @since 2021-09-22
*/
public interface IAcceptanceExpertService extends IBaseService<AcceptanceExpert> {
Page<AcceptanceExpert> page(Page<AcceptanceExpert> page, AcceptanceExpert acceptanceExpert);
boolean removeByIds(List<Long> ids);
}
......@@ -6,6 +6,7 @@ import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.ContractInfoDTO;
import com.patzn.cloud.service.hmhj.entity.ContractInfo;
import com.patzn.cloud.service.hmhj.vo.ContractInfoVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
......@@ -25,5 +26,7 @@ public interface IContractInfoService extends IBaseService<ContractInfo> {
boolean updateContractBatch(Long[] ids, ContractInfo contractInfo, Account account);
boolean batchImport(MultipartFile file, Account account);
Page<ContractInfoVO> pageVO(Page<ContractInfoVO> page, ContractInfoVO contractInfo);
}
......@@ -49,7 +49,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,String failReason, Account account);
Page<ContractSampleVO> pageVO(Page<ContractSampleVO> page, ContractSampleVO contractSample);
......@@ -82,4 +82,6 @@ public interface IContractSampleService extends IBaseService<ContractSample> {
boolean updateSuspendOrContinue(Long[] ids, Integer suspend, Account account);
boolean addByContractInfo(ContractSampleDTO contractSampleDTO);
Page<ContractSampleVO> pageExpertReview(Page<ContractSampleVO> page, ContractSampleVO contractSample);
}
......@@ -7,7 +7,6 @@ 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;
......@@ -63,4 +62,9 @@ public interface IEntrustReportService extends IBaseService<EntrustReport> {
void changeExcelReportToPdf(Long[] ids);
boolean submitFromSendToInspect(Long[] ids, Account account);
boolean submitFromInspectToJudge(Long[] ids, Account account);
boolean backFromInspectToSend(Long[] ids, String reason, 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.AcceptanceExpert;
import com.patzn.cloud.service.lims.hmhj.mapper.AcceptanceExpertMapper;
import com.patzn.cloud.service.lims.hmhj.service.IAcceptanceExpertService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 验收专家配置表 服务实现类
*
* @author meazty
* @since 2021-09-22
*/
@Service
public class AcceptanceExpertServiceImpl extends BaseServiceImpl<AcceptanceExpertMapper, AcceptanceExpert> implements IAcceptanceExpertService {
@Override
public Page<AcceptanceExpert> page(Page<AcceptanceExpert> page, AcceptanceExpert acceptanceExpert) {
Wrapper wrapper = new EntityWrapper<>(acceptanceExpert);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
......@@ -16,9 +16,19 @@ import com.patzn.cloud.service.lims.hmhj.mapper.ContractInfoMapper;
import com.patzn.cloud.service.lims.hmhj.service.IContractInfoItemService;
import com.patzn.cloud.service.lims.hmhj.service.IContractInfoService;
import org.apache.commons.lang3.StringUtils;
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.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
......@@ -31,9 +41,6 @@ import java.util.List;
public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper, ContractInfo> implements IContractInfoService {
@Autowired
private IContractInfoService contractInfoService;
@Autowired
private IContractInfoItemService contractInfoItemService;
@Override
......@@ -75,7 +82,7 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
List<ContractInfoItem> itemList = dto.getItemList();
ContractInfo contractInfo = dto.convert(ContractInfo.class);
RestAssert.fail(null == dto.getContractQuantity(), "合同数量不能为空");
dto.setArrivalQuantity(0);
dto.setArrivalQuantity("0");
if (save(contractInfo)) {
if (CollectionUtils.isNotEmpty(itemList)) {
for (ContractInfoItem item : itemList) {
......@@ -92,9 +99,9 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
@Override
public boolean updateContractBatch(Long[] ids, ContractInfo contractInfo, Account account) {
RestAssert.fail(null == ids || 0 == ids.length, "选择要修改信息为空");
RestAssert.fail(StringUtils.isBlank(contractInfo.getStoragePlace()), "存放地为空");
RestAssert.fail(StringUtils.isBlank(contractInfo.getDetailPlace()), "货位为空");
RestAssert.fail(StringUtils.isBlank(contractInfo.getStoragePlace()), "保管员为空");
// RestAssert.fail(StringUtils.isBlank(contractInfo.getStoragePlace()), "存放地为空");
// RestAssert.fail(StringUtils.isBlank(contractInfo.getDetailPlace()), "货位为空");
// RestAssert.fail(StringUtils.isBlank(contractInfo.getStoragePlace()), "保管员为空");
// RestAssert.fail(null == contractInfo.getArrivalTime(),"到货时间为空");
// RestAssert.fail(null == contractInfo.getStoragePlace(),"报建时间为空");
// RestAssert.fail(null == contractInfo.getType(),"检测类型为空");
......@@ -106,4 +113,92 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
return page.setRecords(baseMapper.selectVOList(page, contractInfo));
}
@Override
public boolean batchImport(MultipartFile file, Account account) {
XSSFWorkbook workbook = null;
try {
InputStream is = file.getInputStream();
workbook = new XSSFWorkbook(is);
} catch (IOException e) {
RestAssert.fail("文件读取失败");
}
int sheetCount = workbook.getNumberOfSheets();
for (int i = 0; i < sheetCount; i++) {
XSSFSheet sheet = workbook.getSheetAt(i);
if (null == sheet) {
continue;
}
// 固定开始行和开始列
int beginRowNum = 5, beginColumnNum = 1;
// 最后一行
int lastRowNum = sheet.getLastRowNum();
if (lastRowNum < beginRowNum) {
RestAssert.fail("导入文件中没有有效数据");
}
short lastCellNum = sheet.getRow(5).getLastCellNum();
ArrayList<ContractInfo> contractInfos = new ArrayList<>();
for (int j = 5; j <= lastRowNum; j++) {
XSSFRow row = sheet.getRow(j);
ContractInfo info = new ContractInfo();
for (int k = beginColumnNum; k < lastCellNum; k++) {
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("合同编号")) {
info.setCode(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("订单号")) {
info.setOrderNo(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("供货单位")) {
info.setSupplier(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("物资编码")) {
info.setMaterialCode(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("物资名称")) {
info.setMaterialName(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("规格型号")) {
info.setSpec(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("单位")) {
info.setUnit(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("合同数量")) {
info.setContractQuantity(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("货位")) {
info.setDetailPlace(row.getCell(k).getStringCellValue());
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("到货时间")) {
String time = row.getCell(k).getStringCellValue();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
Date date = null;
try {
date = dateFormat.parse(time);
} catch (ParseException e) {
RestAssert.fail("解析时间出错");
}
info.setArrivalTime(date);
continue;
}
if (sheet.getRow(beginRowNum - 1).getCell(k).getStringCellValue().equals("采购员")) {
info.setBuyer(row.getCell(k).getStringCellValue());
}
}
contractInfos.add(info);
}
this.saveBatch(contractInfos);
}
return true;
}
}
......@@ -3,20 +3,19 @@ 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.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.exception.PatznException;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
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;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.util.List;
import java.util.Map;
......@@ -51,6 +50,11 @@ public class ContractOkOrganizerServiceImpl extends BaseServiceImpl<ContractOkOr
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.forEach(t -> {
RestAssert.fail(null == t.getUserId(), "验收专家不能为空");
});
List<Long> userIds = contractOkOrganizerList.stream().map(ContractOkOrganizer::getUserId).collect(Collectors.toList());
RestAssert.fail(userIds.size() != contractOkOrganizerList.size(),"验收专家不能重复!");
contractOkOrganizerList.stream().forEach(t -> t.setContractSampleId(contractSampleId));
return saveOrUpdateBatch(contractOkOrganizerList);
} catch (Exception e) {
......@@ -74,6 +78,11 @@ public class ContractOkOrganizerServiceImpl extends BaseServiceImpl<ContractOkOr
RestAssert.fail(CollectionUtils.isEmpty(organizerDTO.getContractOkOrganizerList()), "验收专家信息为空");
List<ContractOkOrganizer> contractOkOrganizerList = organizerDTO.getContractOkOrganizerList();
contractOkOrganizerList.forEach(t -> {
RestAssert.fail(null == t.getUserId(), "验收专家不能为空");
});
List<Long> userIdList = contractOkOrganizerList.stream().map(ContractOkOrganizer::getUserId).distinct().collect(Collectors.toList());
RestAssert.fail(userIdList.size() != contractOkOrganizerList.size(), "验收专家不能重复");
for (Long contractId : organizerDTO.getContractIds()) {
contractOkOrganizerList.forEach(t -> {
......
......@@ -17,7 +17,6 @@ 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;
......@@ -202,6 +201,21 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
@Override
public boolean submitFromSendToInspect(Long[] ids, Account account) {
return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_SEND, EntrustFlowEnum.QUALITY_INSPECT, account);
}
@Override
public boolean submitFromInspectToJudge(Long[] ids, Account account) {
return doExecuteSubmit(ids, EntrustFlowEnum.QUALITY_INSPECT, EntrustFlowEnum.QUALITY_JUDGE, account);
}
@Override
public boolean backFromInspectToSend(Long[] ids, String reason, Account account) {
return doExecuteBack(ids, EntrustFlowEnum.QUALITY_INSPECT, EntrustFlowEnum.REPORT_SEND, reason, account);
}
private void deleteReportPdf(Long[] ids) {
List<EntrustReport> reportList = list(Condition.create().in("id", ids).isNotNull("object_key"));
if (CollectionUtils.isEmpty(reportList)) {
......@@ -231,7 +245,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
RestAssert.fail(null == sampleIds || sampleIds.isEmpty(), "报告样品信息为空");
// 判断配置了路径可能出现错的情况
if (fromFlowStatus == EntrustFlowEnum.REPORT_ALLOW &&
(toFlowStatus == EntrustFlowEnum.REPORT_ISSUE || toFlowStatus == EntrustFlowEnum.REPORT_SEND)) {
(toFlowStatus == EntrustFlowEnum.REPORT_ISSUE || toFlowStatus == EntrustFlowEnum.REPORT_SEND || toFlowStatus == EntrustFlowEnum.QUALITY_INSPECT)) {
judgeStatusPath(entrust, toFlowStatus);
}
......@@ -258,7 +272,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
if (toFlowStatus == EntrustFlowEnum.REPORT_ALLOW) {
entrustReport.setReportChecker(account.getUserName()).setReportCheckerId(account.getUserId()).setReportCheckTime(new Date());
} else if (toFlowStatus == EntrustFlowEnum.REPORT_ISSUE || toFlowStatus == EntrustFlowEnum.REPORT_SEND) {
} else if (toFlowStatus == EntrustFlowEnum.REPORT_ISSUE || toFlowStatus == EntrustFlowEnum.REPORT_SEND || toFlowStatus == EntrustFlowEnum.QUALITY_INSPECT) {
entrust.setTestTimeE(new Date());
entrustService.updateById(entrust);
entrustReport.setReportAllower(account.getUserName()).setReportAllowerId(account.getUserId()).setReportAllowTime(new Date());
......@@ -275,6 +289,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
entrustReport.setReportIssuer(account.getUserName()).setReportIssuerId(account.getUserId()).setReportIssueTime(new Date());
} else if (fromFlowStatus == EntrustFlowEnum.REPORT_SEND) {
entrustReport.setReportSender(account.getUserName()).setReportSenderId(account.getUserId()).setReportSendTime(new Date());
} else if (fromFlowStatus == EntrustFlowEnum.QUALITY_INSPECT) {
entrustReport.setQualityInspector(account.getUserName()).setQualityInspectorId(account.getUserId()).setQualityInspectTime(new Date());
}
// 若提交至 -> 质量判定,那么需要更改委托状态
if (toFlowStatus == EntrustFlowEnum.QUALITY_JUDGE) {
......@@ -301,9 +317,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
// ==
EntrustSampleStatusEnum finalSampleStatusEnum = sampleStatusEnum;
if (CollectionUtils.isNotEmpty(entrustSamples) &&
entrustSamples.stream().filter(t ->
!sampleIds.contains(t.getId())
if (CollectionUtils.isNotEmpty(entrustSamples) && entrustSamples.stream().filter(t -> !sampleIds.contains(t.getId())
).noneMatch(t -> (int) t.getStatus().getValue() < (int) finalSampleStatusEnum.getValue())) {
entrust.setFlowStatus(toFlowStatus.getName());
entrustService.updateById(entrust);
......@@ -370,7 +384,9 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
EntrustReportStatusEnum reportProgress = null;
EntrustReport entrustReport = new EntrustReport();
if (fromFlowStatus == EntrustFlowEnum.REPORT_SEND) {
if (fromFlowStatus == EntrustFlowEnum.QUALITY_INSPECT) {
reportProgress = EntrustReportStatusEnum.BACK_INSPECT;
} else if (fromFlowStatus == EntrustFlowEnum.REPORT_SEND) {
reportProgress = EntrustReportStatusEnum.BACK_SEND;
} else if (fromFlowStatus == EntrustFlowEnum.REPORT_ISSUE) {
reportProgress = EntrustReportStatusEnum.BACK_ISSUE;
......@@ -405,14 +421,16 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ISSUE;
reportStatusEnum = EntrustReportStatusEnum.ISSUE;
entrustReport.setReportSender(null).setReportSenderId(null).setReportSendTime(null);
} else if (EntrustFlowEnum.REPORT_SEND == toFlowStatus) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_SEND;
reportStatusEnum = EntrustReportStatusEnum.SEND;
entrustReport.setQualityInspectorId(null).setQualityInspector(null).setQualityInspectTime(null);
}
EntrustSampleStatusEnum finalSampleStatusEnum = sampleStatusEnum;
// 主要处理流程状态及日志
List<EntrustSample> filterList = entrustSamples.stream().filter(t ->
!sampleIds.contains(t.getId())
).collect(Collectors.toList());
List<EntrustSample> filterList = entrustSamples.stream().filter(t -> !sampleIds.contains(t.getId())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(filterList) || filterList.stream().noneMatch(t -> (int) t.getStatus().getValue() > (int) finalSampleStatusEnum.getValue())) {
entrust.setFlowStatus(toFlowStatus.getName());
......@@ -423,7 +441,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
// 若从签收或批准往前驳回,则删除的PDF文件
if (fromFlowStatus == EntrustFlowEnum.REPORT_ISSUE || fromFlowStatus == EntrustFlowEnum.REPORT_SEND) {
if (fromFlowStatus == EntrustFlowEnum.REPORT_ISSUE || fromFlowStatus == EntrustFlowEnum.REPORT_SEND || fromFlowStatus == EntrustFlowEnum.QUALITY_INSPECT) {
executor1.execute(() -> deleteReportPdf(ids));
}
......
......@@ -17,7 +17,6 @@ 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;
......@@ -246,6 +245,6 @@ public class UserInfoServiceImpl {
}
return HmConst.NO_MATCH;
}
return list.get(0);
return StringUtils.join(list, ",");
}
}
<?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.AcceptanceExpertMapper">
</mapper>
......@@ -43,25 +43,12 @@
AND (s.factory_area is null or strpos(#{vo.period},s.factory_area) > 0 )
</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
<foreach collection="vo.idList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="null != vo.noShowInfo">
AND NOT EXISTS (
select 1 from entrust_info ss where ss.deleted = 0 and ss.contract_info_id = s.id
)
</if>
</sql>
<select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.ContractInfoVO">
......
......@@ -91,5 +91,15 @@
order by s.ctime desc
</select>
<select id="selectExpertReviewList" resultType="com.patzn.cloud.service.hmhj.vo.ContractSampleVO">
SELECT
s.*
FROM contract_sample s
join contract_ok_organizer o on o.contract_sample_id = s.id
WHERE s.deleted = 0 and o.deleted = 0
<include refid="sqlWhere"/>
and o.acceptance_result is null
order by s.ctime desc
</select>
</mapper>
/** created by meazty on 2021/9/18 9:54 **/
/** created by meazty on 2021/9/18 9:54 **/
......@@ -194,9 +194,11 @@ ALTER TABLE "public"."contract_info_item" ADD CONSTRAINT "contract_info_item_pke
ALTER TABLE "public"."contract_sample"
ADD COLUMN "contract_id" int8;
ADD COLUMN "contract_id" int8,
ADD COLUMN "contract_code" varchar(64) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."contract_sample"."contract_id" IS '合同信息编号';
COMMENT ON COLUMN "public"."contract_sample"."contract_id" IS '合同信息Id';
COMMENT ON COLUMN "public"."contract_sample"."contract_code" IS '合同信息编号';
ALTER TABLE "public"."entrust"
......
/** created by meazty on 2021/9/22 13:42 **/
/** created by meazty on 2021/9/22 13:42 **/
-- ----------------------------
-- Table structure for acceptance_expert
-- ----------------------------
DROP TABLE IF EXISTS "public"."acceptance_expert";
CREATE TABLE "public"."acceptance_expert" (
"id" int8 NOT NULL,
"user_id" int8,
"user_name" varchar(64) COLLATE "pg_catalog"."default",
"real_name" varchar(64) COLLATE "pg_catalog"."default",
"post" varchar(120) COLLATE "pg_catalog"."default",
"branch" varchar(64) COLLATE "pg_catalog"."default",
"company_id" int8,
"uid" int8,
"ctime" timestamp(0),
"ltime" timestamp(0),
"lid" int8,
"deleted" int2 DEFAULT 0
)
;
COMMENT ON COLUMN "public"."acceptance_expert"."user_id" IS '用户ID';
COMMENT ON COLUMN "public"."acceptance_expert"."user_name" IS '用户名';
COMMENT ON COLUMN "public"."acceptance_expert"."real_name" IS '姓名';
COMMENT ON COLUMN "public"."acceptance_expert"."post" IS '职务';
COMMENT ON COLUMN "public"."acceptance_expert"."branch" IS '分厂';
COMMENT ON COLUMN "public"."acceptance_expert"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."acceptance_expert"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."acceptance_expert"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."acceptance_expert"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."acceptance_expert"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."acceptance_expert"."deleted" IS '是否删除0否1是';
COMMENT ON TABLE "public"."acceptance_expert" IS '验收专家配置表';
-- ----------------------------
-- Primary Key structure for table acceptance_expert
-- ----------------------------
ALTER TABLE "public"."acceptance_expert" ADD CONSTRAINT "acceptance_expert_pkey" PRIMARY KEY ("id");
-----------------------------------------------------
---- 添加验收人员相关字段
-----------------------------------------------------
ALTER TABLE "public"."contract_ok_organizer"
ADD COLUMN "acceptance_result" varchar(64) COLLATE "pg_catalog"."default",
ADD COLUMN "fail_reason" varchar(255) COLLATE "pg_catalog"."default",
ADD COLUMN "post" varchar(120) COLLATE "pg_catalog"."default",
ADD COLUMN "branch" varchar(64) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."contract_ok_organizer"."acceptance_result" IS '验收结论';
COMMENT ON COLUMN "public"."contract_ok_organizer"."fail_reason" IS '不合格原因';
COMMENT ON COLUMN "public"."contract_ok_organizer"."post" IS '职务';
COMMENT ON COLUMN "public"."contract_ok_organizer"."branch" IS '分厂';
-----------------------------------------------------
--- 添加质量审核人字段 --
-----------------------------------------------------
-----------------------------------------------------
ALTER TABLE "public"."entrust_report"
ADD COLUMN "quality_inspector" varchar(64) COLLATE "pg_catalog"."default",
ADD COLUMN "quality_inspector_id" int8,
ADD COLUMN "quality_inspect_time" timestamp(6);
COMMENT ON COLUMN "public"."entrust_report"."quality_inspector" IS '质量审核人';
COMMENT ON COLUMN "public"."entrust_report"."quality_inspector_id" IS '质量审核人ID';
COMMENT ON COLUMN "public"."entrust_report"."quality_inspect_time" IS '质量审核时间';
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