New file |
| | |
| | | package com.zt.life.modules.configItemChange.controller; |
| | | |
| | | |
| | | import com.zt.common.annotation.LogOperation; |
| | | import com.zt.common.annotation.QueryParam; |
| | | import com.zt.common.constant.Constant; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import com.zt.common.servlet.PageResult; |
| | | import com.zt.common.servlet.Result; |
| | | import com.zt.common.validator.AssertUtils; |
| | | import com.zt.common.validator.ValidatorUtils; |
| | | import com.zt.common.validator.group.AddGroup; |
| | | import com.zt.common.validator.group.DefaultGroup; |
| | | import com.zt.common.validator.group.UpdateGroup; |
| | | import com.zt.life.modules.configItemChange.dto.ConfigItemChangeDto; |
| | | import com.zt.life.modules.configItemChange.model.ConfigItemChange; |
| | | import com.zt.life.modules.configItemChange.service.ConfigItemChangeService; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem; |
| | | import com.zt.life.sys.dto.OssDto; |
| | | import com.zt.life.sys.service.SysOssConfigService; |
| | | import com.zt.modules.coderule.service.SysCodeRuleService; |
| | | 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 springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * config_item_warehouse |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2023-11-27 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/configItemWarehouse/ConfigItemWarehouse/") |
| | | @Api(tags="config_item_warehouse") |
| | | public class ConfigItemChangeController { |
| | | @Autowired |
| | | private ConfigItemChangeService configItemChangeService; |
| | | |
| | | @Autowired |
| | | private SysCodeRuleService sysCodeRuleService; |
| | | |
| | | @Autowired |
| | | private SysOssConfigService sysOssConfigService; |
| | | @GetMapping("page") |
| | | @ApiOperation("分页") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), |
| | | @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = "code", value = "配置项入库编号", dataType = Constant.QT.STRING, format = "a.code^LK"), |
| | | @ApiImplicitParam(name = "projectCode", value = "项目编号", dataType = Constant.QT.STRING, format = "p.code^EQ"), |
| | | @ApiImplicitParam(name = "softwareName", value = "项目名称", dataType = Constant.QT.STRING, format = "p.software_name^EQ"), |
| | | @ApiImplicitParam(name = "libraryType", value = "库类型", dataType = Constant.QT.STRING, format = "a.library_type^EQ") }) |
| | | public PageResult<ConfigItemChange> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ |
| | | List<ConfigItemChange> configItemChange = configItemChangeService.page(queryFilter); |
| | | return PageResult.ok(configItemChange); |
| | | } |
| | | |
| | | @GetMapping("getDto") |
| | | @ApiOperation("信息") |
| | | public Result<ConfigItemChangeDto> getDto(Long projectId, Long warehouseId) { |
| | | ConfigItemChangeDto data = configItemChangeService.getDto(projectId, warehouseId); |
| | | if (warehouseId!=null) { |
| | | for (WarehouseConfigItem configItem : data.getConfigItemList()) { |
| | | Long configItemId = configItem.getId(); |
| | | OssDto ossDto = sysOssConfigService.getOssByBusiType(configItemId, "config_item_warehouse"); |
| | | if (ossDto != null) { |
| | | configItem.setFiles(ossDto); |
| | | } |
| | | } |
| | | } |
| | | return Result.ok(data); |
| | | } |
| | | |
| | | @PostMapping |
| | | @ApiOperation("新增") |
| | | @LogOperation("新增") |
| | | public Result insert(@RequestBody ConfigItemChangeDto configItemDto){ |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(configItemDto, AddGroup.class, DefaultGroup.class); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("funCode", "config_item_warehouse"); |
| | | map.put("projectId",configItemDto.getProjectId().toString()); |
| | | configItemDto.getConfigItemChange().setCode(sysCodeRuleService.getNewCode(map)); |
| | | Boolean result = configItemChangeService.save(configItemDto); |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation("修改") |
| | | @LogOperation("修改") |
| | | public Result update(@RequestBody ConfigItemChangeDto configItemDto){ |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(configItemDto, UpdateGroup.class, DefaultGroup.class); |
| | | Boolean result = configItemChangeService.save(configItemDto); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @DeleteMapping("deleteConfigItem") |
| | | @ApiOperation("删除") |
| | | @LogOperation("删除") |
| | | public Result delete(@RequestBody Long[] ids){ |
| | | //效验数据 |
| | | AssertUtils.isArrayEmpty(ids, "id"); |
| | | configItemChangeService.delete(ids); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.configItemChange.dao; |
| | | |
| | | import com.zt.common.dao.BaseDao; |
| | | import com.zt.life.modules.configItemChange.model.ConfigItemChange; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * config_item_warehouse |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2023-11-27 |
| | | */ |
| | | @Mapper |
| | | public interface ConfigItemChangeDao extends BaseDao<ConfigItemChange> { |
| | | |
| | | List<ConfigItemChange> getList(Map<String, Object> params); |
| | | |
| | | List<WarehouseCmAudit> itemList(String dictType); |
| | | |
| | | String checkIdentify(String code,String projectCode); |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.configItemChange.dto; |
| | | |
| | | import com.zt.life.modules.configItemChange.model.ConfigItemChange; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit; |
| | | import com.zt.life.modules.project.model.Project; |
| | | import com.zt.modules.workflow.dto.FlowInfoDto; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ConfigItemChangeDto { |
| | | private Long id; |
| | | private Long projectId; |
| | | private Long warehouseId; |
| | | |
| | | @ApiModelProperty(value = "测试项目基本信息") |
| | | private Project project; |
| | | @ApiModelProperty(value = "配置项入库") |
| | | private ConfigItemChange configItemChange; |
| | | |
| | | private FlowInfoDto flowInfoDto; |
| | | |
| | | @ApiModelProperty(value = "入库配置项") |
| | | private List<WarehouseConfigItem> configItemList = new ArrayList<>(); |
| | | @ApiModelProperty(value = "CM审核") |
| | | private List<WarehouseCmAudit> cmAuditList = new ArrayList<>(); |
| | | @ApiModelProperty(value = "QA审核") |
| | | private List<WarehouseQaAudit> qaAuditList = new ArrayList<>(); |
| | | } |
| | | |
New file |
| | |
| | | package com.zt.life.modules.configItemChange.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.zt.common.entity.BusiEntity; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * config_item_warehouse |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2023-11-27 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=false) |
| | | @TableName("config_item_warehouse") |
| | | public class ConfigItemChange extends BusiEntity { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ApiModelProperty(value = "项目ID") |
| | | private Long projectId; |
| | | |
| | | |
| | | |
| | | @ApiModelProperty(value = "配置项入库编号") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "申请人") |
| | | private String applicant; |
| | | |
| | | @ApiModelProperty(value = "申请日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date applyDate; |
| | | |
| | | @ApiModelProperty(value = "库类型") |
| | | private String libraryType; |
| | | |
| | | @ApiModelProperty(value = "QA审核结果") |
| | | private String qaAuditResults; |
| | | |
| | | @ApiModelProperty(value = "QA审核人") |
| | | private String qaAuditor; |
| | | |
| | | @ApiModelProperty(value = "QA审核人ID") |
| | | private String qaAuditorId; |
| | | |
| | | @ApiModelProperty(value = "QA审核日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date qaAuditDate; |
| | | |
| | | @ApiModelProperty(value = "CM审核结果") |
| | | private String cmAuditResults; |
| | | |
| | | @ApiModelProperty(value = "CM审核人") |
| | | private String cmAuditor; |
| | | |
| | | @ApiModelProperty(value = "CM审核人ID") |
| | | private String cmAuditorId; |
| | | |
| | | @ApiModelProperty(value = "CM审核日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date cmAuditDate; |
| | | |
| | | @ApiModelProperty(value = "批准意见") |
| | | private String approvalOpinions; |
| | | |
| | | @ApiModelProperty(value = "批准签字") |
| | | private String approvalSign; |
| | | |
| | | @ApiModelProperty(value = "批准日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date approvalDate; |
| | | |
| | | @ApiModelProperty(value = "项目CM操作") |
| | | private String projectCmOperations; |
| | | |
| | | @ApiModelProperty(value = "操作人") |
| | | private String operator; |
| | | |
| | | @ApiModelProperty(value = "操作人ID") |
| | | private String operatorId; |
| | | |
| | | @ApiModelProperty(value = "操作日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date operateDate; |
| | | |
| | | @ApiModelProperty(value = "备注") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "年份") |
| | | private String year; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "项目名称") |
| | | private String softwareName; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "项目编号") |
| | | private String projectCode; |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.configItemChange.service; |
| | | |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import com.zt.common.service.BaseService; |
| | | import com.zt.life.modules.configItemChange.dao.ConfigItemChangeDao; |
| | | import com.zt.life.modules.configItemChange.dto.ConfigItemChangeDto; |
| | | import com.zt.life.modules.configItemChange.model.ConfigItemChange; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem; |
| | | import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit; |
| | | import com.zt.life.modules.configItemWarehouse.service.WarehouseCmAuditService; |
| | | import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService; |
| | | import com.zt.life.modules.configItemWarehouse.service.WarehouseQaAuditService; |
| | | import com.zt.life.modules.project.service.ProjectService; |
| | | import com.zt.life.modules.testCheckOrder.model.TestCheckOrder; |
| | | import com.zt.life.modules.testCheckOrder.service.TestCheckOrderService; |
| | | import com.zt.life.sys.service.SysOssConfigService; |
| | | import com.zt.modules.coderule.service.SysCodeRuleService; |
| | | import com.zt.modules.oss.service.SysOssService; |
| | | import com.zt.modules.workflow.dto.FlowInfoDto; |
| | | import com.zt.modules.workflow.service.WorkflowService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * config_item_warehouse |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2023-11-27 |
| | | */ |
| | | @Service |
| | | public class ConfigItemChangeService extends BaseService<ConfigItemChangeDao, ConfigItemChange> { |
| | | @Autowired |
| | | private SysOssConfigService sysOssConfigService; |
| | | |
| | | @Autowired |
| | | private SysOssService sysOssService; |
| | | |
| | | @Autowired |
| | | private WorkflowService workflowService; |
| | | |
| | | @Autowired |
| | | private SysCodeRuleService sysCodeRuleService; |
| | | |
| | | @Autowired |
| | | private ProjectService projectService; |
| | | |
| | | @Autowired |
| | | private WarehouseCmAuditService cmAuditService; |
| | | |
| | | @Autowired |
| | | private WarehouseQaAuditService qaAuditService; |
| | | |
| | | @Autowired |
| | | private WarehouseConfigItemService configItemService; |
| | | |
| | | @Autowired |
| | | private TestCheckOrderService testCheckOrderService; |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param queryFilter |
| | | * @return |
| | | */ |
| | | public List<ConfigItemChange> page(QueryFilter queryFilter) { |
| | | return baseDao.getList(queryFilter.getQueryParams()); |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | * |
| | | * @param ids |
| | | */ |
| | | public void delete(Long[] ids) { |
| | | super.deleteLogic(ids); |
| | | } |
| | | |
| | | public Boolean save(ConfigItemChangeDto configItemDto) { |
| | | Long warehouseId = configItemDto.getConfigItemChange().getId(); |
| | | if (warehouseId != null) |
| | | baseDao.updateById(configItemDto.getConfigItemChange()); |
| | | else { |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("funCode", "config_item_warehouse"); |
| | | map.put("projectId", configItemDto.getProjectId().toString()); |
| | | configItemDto.getConfigItemChange().setProjectId(configItemDto.getProjectId()); |
| | | configItemDto.getConfigItemChange().setCode(sysCodeRuleService.getNewCode(map)); |
| | | baseDao.insert(configItemDto.getConfigItemChange()); |
| | | warehouseId = configItemDto.getConfigItemChange().getId(); |
| | | } |
| | | |
| | | for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) { |
| | | configItem.setWarehouseId(warehouseId); |
| | | if (configItem.getId() != null) { |
| | | if (configItem.getCheckId()!=null){ |
| | | String code ="719CTC-09-ST"; |
| | | String projectCode = configItemDto.getProject().getCode(); |
| | | if (configItem.getItemName().equals("软件测试计划")){ |
| | | code=code+"P"; |
| | | }else if (configItem.getItemName().equals("软件测试说明")){ |
| | | code=code+"D"; |
| | | }else if (configItem.getItemName().equals("软件测试记录")){ |
| | | code=code+"L"; |
| | | }else if (configItem.getItemName().equals("软件测试报告")){ |
| | | code=code+"R"; |
| | | } |
| | | configItem.setItemIdentify(code+"-"+projectCode); |
| | | } |
| | | configItemService.update(configItem); |
| | | } else { |
| | | configItem.setWarehouseId(warehouseId); |
| | | configItemService.insert(configItem); |
| | | } |
| | | Long checkId = configItem.getCheckId(); |
| | | if (checkId != null) { |
| | | TestCheckOrder testCheckOrder = testCheckOrderService.get(checkId); |
| | | if (testCheckOrder.getConfigItemId() == null) { |
| | | Long configItemId = configItem.getId(); |
| | | testCheckOrder.setConfigItemId(configItemId); |
| | | testCheckOrderService.update(testCheckOrder); |
| | | } |
| | | } |
| | | sysOssConfigService.updateOss(configItem.getId(), configItem.getFiles());// 保存附件 |
| | | } |
| | | |
| | | for (WarehouseCmAudit cmAudit : configItemDto.getCmAuditList()) { |
| | | cmAudit.setWarehouseId(warehouseId); |
| | | if (cmAudit.getId() != null) { |
| | | cmAuditService.update(cmAudit); |
| | | } else { |
| | | cmAudit.setWarehouseId(warehouseId); |
| | | cmAuditService.insert(cmAudit); |
| | | } |
| | | } |
| | | |
| | | for (WarehouseQaAudit qaAudit : configItemDto.getQaAuditList()) { |
| | | qaAudit.setWarehouseId(warehouseId); |
| | | if (qaAudit.getId() != null) { |
| | | qaAuditService.update(qaAudit); |
| | | } else { |
| | | qaAudit.setWarehouseId(warehouseId); |
| | | qaAuditService.insert(qaAudit); |
| | | } |
| | | } |
| | | |
| | | Long bizId = configItemDto.getConfigItemChange().getId(); |
| | | FlowInfoDto flowInfoDto = configItemDto.getFlowInfoDto(); |
| | | |
| | | if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) { |
| | | if ("tj".equals(flowInfoDto.getSubmitType())) { |
| | | workflowService.startFlow(flowInfoDto.getFlowCode(), bizId); |
| | | } |
| | | workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark()); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | public ConfigItemChangeDto getDto(Long projectId, Long warehouseId) { |
| | | ConfigItemChangeDto data = new ConfigItemChangeDto(); |
| | | if (warehouseId != null) { |
| | | data.setId(warehouseId); |
| | | ConfigItemChange configItemChange = this.get(warehouseId); |
| | | data.setConfigItemChange(configItemChange); |
| | | |
| | | if (projectId == null) { |
| | | projectId = configItemChange.getProjectId(); |
| | | } |
| | | List<WarehouseCmAudit> CmAuditList = cmAuditService.getList(warehouseId); |
| | | data.setCmAuditList(CmAuditList); |
| | | List<WarehouseQaAudit> QaAuditList = qaAuditService.getList(warehouseId); |
| | | data.setQaAuditList(QaAuditList); |
| | | List<WarehouseConfigItem> ConfigItemList = configItemService.getList(warehouseId); |
| | | data.setConfigItemList(ConfigItemList); |
| | | |
| | | } else { |
| | | ConfigItemChange configItemChange = new ConfigItemChange(); |
| | | data.setConfigItemChange(configItemChange); |
| | | List<?> cmList = baseDao.itemList("warehouse_cm_audit"); |
| | | List<?> CmAuditList = cmList; |
| | | data.setCmAuditList((List<WarehouseCmAudit>) CmAuditList); |
| | | List<?> qaList = baseDao.itemList("warehouse_qa_audit"); |
| | | List<?> QaAuditList = qaList; |
| | | data.setQaAuditList((List<WarehouseQaAudit>) QaAuditList); |
| | | List<?> resultList = configItemService.ConfigItemList(projectId); |
| | | List<?> ConfigItemList = resultList; |
| | | data.setConfigItemList((List<WarehouseConfigItem>) ConfigItemList); |
| | | } |
| | | |
| | | if (projectId != null) { |
| | | data.setProjectId(projectId); |
| | | data.setProject(projectService.get(projectId)); |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | |
| | | } |
| | |
| | | @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = "code", value = "配置项入库编号", dataType = Constant.QT.STRING, format = "code^LK"), |
| | | @ApiImplicitParam(name = "projectCode", value = "项目编号", dataType = Constant.QT.STRING, format = "code1^EQ"), |
| | | @ApiImplicitParam(name = "softwareName", value = "项目名称", dataType = Constant.QT.STRING, format = "software_name^EQ"), |
| | | @ApiImplicitParam(name = "libraryType", value = "库类型", dataType = Constant.QT.STRING, format = "library_type^EQ") }) |
| | | @ApiImplicitParam(name = "code", value = "配置项入库编号", dataType = Constant.QT.STRING, format = "a.code^LK"), |
| | | @ApiImplicitParam(name = "projectCode", value = "项目编号", dataType = Constant.QT.STRING, format = "p.code^EQ"), |
| | | @ApiImplicitParam(name = "softwareName", value = "项目名称", dataType = Constant.QT.STRING, format = "p.software_name^EQ"), |
| | | @ApiImplicitParam(name = "libraryType", value = "库类型", dataType = Constant.QT.STRING, format = "a.library_type^EQ") }) |
| | | public PageResult<ConfigItemWarehouse> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ |
| | | List<ConfigItemWarehouse> configItemWarehouse=configItemWarehouseService.page(queryFilter); |
| | | return PageResult.ok(configItemWarehouse); |
| | |
| | | for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) { |
| | | configItem.setWarehouseId(warehouseId); |
| | | if (configItem.getId() != null) { |
| | | if (configItem.getCheckId()!=null){ |
| | | String code ="719CTC-09-ST"; |
| | | String projectCode = configItemDto.getProject().getCode(); |
| | | if (configItem.getItemName().equals("软件测试计划")){ |
| | | code=code+"P"; |
| | | }else if (configItem.getItemName().equals("软件测试说明")){ |
| | | code=code+"D"; |
| | | }else if (configItem.getItemName().equals("软件测试记录")){ |
| | | code=code+"L"; |
| | | }else if (configItem.getItemName().equals("软件测试报告")){ |
| | | code=code+"R"; |
| | | } |
| | | configItem.setItemIdentify(code+"-"+projectCode); |
| | | } |
| | | configItemService.update(configItem); |
| | | } else { |
| | | configItem.setWarehouseId(warehouseId); |
| | |
| | | @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = "code", value = "物品流转单编号", dataType = Constant.QT.STRING, format = "code^LK"), |
| | | @ApiImplicitParam(name = "softwareName", value = "物品名称", dataType = Constant.QT.STRING, format = "software_name^EQ"), |
| | | @ApiImplicitParam(name = "softwareIdentity", value = "物品编号", dataType = Constant.QT.STRING, format = "software_identity^EQ") |
| | | @ApiImplicitParam(name = "code", value = "物品流转单编号", dataType = Constant.QT.STRING, format = "a.code^LK"), |
| | | @ApiImplicitParam(name = "softwareName", value = "物品名称", dataType = Constant.QT.STRING, format = "p.software_name^EQ"), |
| | | @ApiImplicitParam(name = "softwareIdentity", value = "物品编号", dataType = Constant.QT.STRING, format = "p.software_identity^EQ") |
| | | }) |
| | | public PageResult<ItemCirculatOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ |
| | | |
| | |
| | | @ApiModelProperty(value = "项目ID") |
| | | private Long projectId; |
| | | |
| | | |
| | | @ApiModelProperty(value = "委托单编号") |
| | | private String code; |
| | | |
| | |
| | | |
| | | @ApiModelProperty(value = "委托方签字日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private String entrustSignDate; |
| | | private Date entrustSignDate; |
| | | |
| | | @ApiModelProperty(value = "承托方签字") |
| | | private String contractSign; |
| | | |
| | | @ApiModelProperty(value = "承托方签字日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private String contractSignDate; |
| | | private Date contractSignDate; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "委托单位名称") |
| | |
| | | @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), |
| | | @ApiImplicitParam(name = "code", value = "编号", dataType = Constant.QT.STRING, format = "code^LK"), |
| | | @ApiImplicitParam(name = "softwareidentity", value = "项目标识", dataType = Constant.QT.STRING, format = "softwareIdentity^LK"), |
| | | @ApiImplicitParam(name = "softwarename", value = "项目名称", dataType = Constant.QT.STRING, format = "softwareName^LK")}) |
| | | @ApiImplicitParam(name = "code", value = "编号", dataType = Constant.QT.STRING, format = "a.code^LK"), |
| | | @ApiImplicitParam(name = "softwareIdentity", value = "项目标识", dataType = Constant.QT.STRING, format = "p.software_identity^LK"), |
| | | @ApiImplicitParam(name = "softwareName", value = "项目名称", dataType = Constant.QT.STRING, format = "p.software_name^LK"), |
| | | @ApiImplicitParam(name = "pageCode", value = "配置项标识", dataType = Constant.QT.STRING, format = "a.page_code^LK")}) |
| | | public PageResult<TestCheckOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter) { |
| | | return PageResult.ok(testCheckOrderService.page(queryFilter)); |
| | | List<TestCheckOrder> testCheckOrder =testCheckOrderService.page(queryFilter); |
| | | return PageResult.ok(testCheckOrder); |
| | | } |
| | | |
| | | @GetMapping("getDto") |
| | |
| | | if (projectId == null) { |
| | | projectId = checkOrder.getProjectId(); |
| | | } |
| | | |
| | | List<TestCheckOrderList> checkOrderList = checkOrderListService.getList(checkId); |
| | | data.setCheckOrderList(checkOrderList); |
| | | |
New file |
| | |
| | | <template> |
| | | <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit"> |
| | | <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" |
| | | label-width="120px" class="warehouseFormAuto"> |
| | | <div> |
| | | <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: -5px"> |
| | | <span>{{dataForm.configItemChange.code || '编号自动生成'}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> |
| | | <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="warehouseContentWidth"> |
| | | <el-form-item class="marginTopAndMarginBottom" label="项目编号" style="width: 49%"> |
| | | <el-input v-model="dataForm.project.code" placeholder="请输入项目编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="marginTopAndMarginBottom" label="项目名称" style="width: 49%"> |
| | | <el-input v-model="dataForm.project.softwareName" placeholder="请输入项目名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="申请人" style="width: 49%"> |
| | | <el-input :disabled="stepMarker!=='pzxrk_first'" v-model="dataForm.configItemChange.applicant" |
| | | placeholder="请输入申请人"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="申请日期" style="width: 49%"> |
| | | <el-date-picker |
| | | :disabled="stepMarker!=='pzxrk_first'" |
| | | v-model="dataForm.configItemChange.applyDate" |
| | | type="date" |
| | | placeholder="请选择申请日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item class="marginTopAndMarginBottom2" label="库类型" style="width: 99%"> |
| | | <zt-dict v-model="dataForm.configItemChange.libraryType" :radio="true" dict="library_type"></zt-dict> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="el-flexManageDialog el-border-bottom"> |
| | | <div class="DFormWidth DAlign DHold"> |
| | | 入库配置项 |
| | | </div> |
| | | <div class="el-border-left" style="width: calc(100% - 120px)"> |
| | | <div class="table-container"> |
| | | <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot" |
| | | style="width: 99%;margin-left: 5px" border :data="dataForm.configItemList" |
| | | stripe> |
| | | <el-table-column prop="no" align="center" width="60" label="序号"> |
| | | <template slot-scope="scope"> |
| | | <span v-html="indexFormat(scope.$index)"></span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="itemName" width="200" label="配置项名称"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-if="showAddAndEdit" v-model="row.itemName" placeholder="配置项名称"></el-input> |
| | | <span v-else>{{row.itemName}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="itemDentify" align="center" min-width="290" label="配置项标识"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-if="showAddAndEdit" v-model="row.itemIdentify" placeholder="配置项标识"></el-input> |
| | | <span v-else>{{row.itemIdentify}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="version" align="center" width="120" label="版本"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-if="showAddAndEdit" v-model="row.version" placeholder="版本"></el-input> |
| | | <span v-else>{{row.version}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="retrospectVersion" label="上溯版" width="120" align="center"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-if="showAddAndEdit" v-model="row.retrospectVersion" placeholder="上溯版"></el-input> |
| | | <span v-else>{{row.retrospectVersion}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="secretClass" label="密级" width="100" align="center"> |
| | | <template v-slot="{ row }"> |
| | | <zt-dict :disabled="!showAddAndEdit" v-model="row.secretClass" placeholder="密级" dict="secret_class" |
| | | clearable></zt-dict> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="showColumn" fixed="right" label="管理" width="100" align="center"> |
| | | <template v-slot="{ row }"> |
| | | <zt-table-button v-if="row.checkId" |
| | | @click="openCheckOrderWin(row)">修改检查单 |
| | | </zt-table-button> |
| | | <zt-table-button v-else-if="',软件测试计划,软件测试说明,软件测试记录,软件测试报告'.indexOf(row.itemName)>0" |
| | | @click="openCheckOrderWin(row)">新增检查单 |
| | | </zt-table-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" prop="files" label="上传附件" width="240" align="center"> |
| | | <template v-slot="{ row }"> |
| | | <!-- <zt-table-button @click="files(row.id)">上传附件</zt-table-button>--> |
| | | <table-uploader busi-type="config_item_warehouse" model-name="row" :dataForm="row" |
| | | v-model="row.files"/> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div v-if="showAddAndEdit" class="icon-container"> |
| | | <el-dropdown @command="handleCommand"> |
| | | <span class="el-dropdown-link"> |
| | | <i class="el-icon-plus"></i> |
| | | </span> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item v-for="item in menuOptions" :key="item.pageCode" :command="item.pageCode"> |
| | | {{ item.name }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | <!-- 放置固定的图标 --> |
| | | <!-- <i class="el-icon-plus"></i>--> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="el-flexManageDialog el-border-bottom"> |
| | | <div class="DFormWidth DAlign DHold"> |
| | | 项目QA审核 |
| | | </div> |
| | | <div class="el-border-left" style="width: calc(100% - 120px)"> |
| | | <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border |
| | | :data="dataForm.qaAuditList" |
| | | stripe> |
| | | <el-table-column prop="no" align="center" width="80" label="序号"></el-table-column> |
| | | <el-table-column prop="examineItem" min-width="300" label="检查项"></el-table-column> |
| | | <el-table-column label="检查结果" width="250" align="center"> |
| | | <template slot-scope="scope"> |
| | | <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="scope.row.examineResult" placeholder="检查结果" |
| | | dict="tristate2" :radio="true" |
| | | clearable></zt-dict> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" width="120" label="不适用说明"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-if="stepMarker=='pzxrk_qash'" v-model="row.notApplyExplan" placeholder="不适用说明"></el-input> |
| | | <span v-else>{{row.notApplyExplan}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="el-border-top"> |
| | | <el-form-item label="审核结果" style="width: 99%"> |
| | | <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="dataForm.configItemChange.qaAuditResults" |
| | | dict="is_pass" :radio="true" |
| | | clearable></zt-dict> |
| | | </el-form-item> |
| | | <el-form-item label="审核人:" style="width: 48%"> |
| | | <span>{{dataForm.configItemChange.qaAuditor}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="审核日期:" style="width: 48%"> |
| | | <span>{{dataForm.configItemChange.qaAuditDate}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="el-flexManageDialog el-border-bottom"> |
| | | <div class="DFormWidth DAlign DHold"> |
| | | CM审核 |
| | | </div> |
| | | <div class="el-border-left" style="width: calc(100% - 120px)"> |
| | | <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border |
| | | :data="dataForm.cmAuditList" |
| | | stripe> |
| | | <el-table-column prop="no" align="center" width="80" label="序号"></el-table-column> |
| | | <el-table-column prop="examineItem" min-width="300" label="检查项"></el-table-column> |
| | | <el-table-column label="检查结果" width="250" align="center"> |
| | | <template slot-scope="scope"> |
| | | <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="scope.row.examineResult" placeholder="检查结果" |
| | | dict="tristate2" :radio="true" |
| | | clearable></zt-dict> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="notApplyExplan" align="center" width="120" label="不适用说明"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-if="stepMarker=='pzxrk_cmsh'" v-model="row.notApplyExplan" placeholder="不适用说明"></el-input> |
| | | <span v-else>{{row.notApplyExplan}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="el-border-top"> |
| | | <el-form-item label="审核结果" style="width: 99%"> |
| | | <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="dataForm.configItemChange.cmAuditResults" |
| | | placeholder="审核结果" dict="is_pass" :radio="true" |
| | | clearable></zt-dict> |
| | | </el-form-item> |
| | | <el-form-item label="审核人:" style="width: 48%"> |
| | | <span>{{dataForm.configItemChange.cmAuditor}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="审核日期:" style="width: 48%"> |
| | | <span>{{dataForm.configItemChange.cmAuditDate}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="el-flexManageDialog el-border-bottom"> |
| | | <div class="DFormWidth DAlign DHold"> |
| | | 批准意见 |
| | | </div> |
| | | <div style="width: calc(100% - 120px)" class="el-border-left"> |
| | | <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%"> |
| | | <zt-dict :disabled="stepMarker!=='pzxrk_bmsh'" v-model="dataForm.configItemChange.approvalOpinions" |
| | | dict="is_pass" :radio="true" |
| | | clearable></zt-dict> |
| | | </el-form-item> |
| | | <el-form-item label-width="80%" label="签字:" style="width: 65%"> |
| | | <span>{{dataForm.configItemChange.approvalSign}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="日期:" style="width: 20%"> |
| | | <span>{{dataForm.configItemChange.approvalDate}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | <div class="el-flexManageDialog el-border-bottom"> |
| | | <div class="DFormWidth DAlign DHold"> |
| | | 项目CM操作 |
| | | </div> |
| | | <div style="width: calc(100% - 120px)" class="el-border-left"> |
| | | <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> |
| | | <el-input v-if="stepMarker=='pzxrk_cmcz'" type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.configItemChange.projectCmOperations"></el-input> |
| | | <span v-else>{{dataForm.configItemChange.projectCmOperations}}</span> |
| | | </el-form-item> |
| | | <el-form-item label-width="80%" label="操作人:" style="width: 65%"> |
| | | <span>{{dataForm.configItemChange.operator}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="日期:" style="width: 20%"> |
| | | <span>{{dataForm.configItemChange.operateDate}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | <div class="el-flexManageDialog"> |
| | | <div class="DFormWidth DAlign DHold"> |
| | | 备注 |
| | | </div> |
| | | <div style="width: calc(100% - 120px)" class="el-border-left"> |
| | | <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> |
| | | <el-input type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.configItemChange.remark"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <add-or-update-check ref="addOrUpdate" @recall="setCheckId"/> |
| | | </el-form> |
| | | </zt-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import AddOrUpdateCheck from '../testCheckOrder/TestCheckOrder-AddOrUpdate' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | disabled: true, |
| | | stepMarker: '', |
| | | title: '查看', |
| | | showColumn: false, |
| | | showAddAndEdit:false, |
| | | menuOptions: [ |
| | | {pageCode: 'plan', name: '软件测试计划',itemIdentify:''}, |
| | | {pageCode: 'explain', name: '软件测试说明'}, |
| | | {pageCode: 'record', name: '软件测试记录'}, |
| | | {pageCode: 'report', name: '软件测试报告'}, |
| | | {pageCode: 'other', name: '其他'} |
| | | ], |
| | | pageNameCode: {'软件测试计划': 'plan', '软件测试说明': 'explain', '软件测试记录': 'record', '软件测试报告': 'report'}, |
| | | dataForm: { |
| | | id: '', |
| | | configItemChange: { |
| | | id: "", |
| | | code: "", |
| | | applicant: "", |
| | | applyDate: "", |
| | | libraryType: "", |
| | | qaAuditResults: "", |
| | | qaAuditor: "", |
| | | qaAuditDate: "", |
| | | cmAuditResults: "", |
| | | cmAuditor: "", |
| | | cmAuditDate: "", |
| | | approvalOpinions: "", |
| | | approvalSign: "", |
| | | approvalDate: "", |
| | | projectCmOperations: "", |
| | | operator: "", |
| | | operateDate: "", |
| | | remark: "", |
| | | }, |
| | | project: { |
| | | code: '', |
| | | softwareName: '', |
| | | }, |
| | | cmAuditList: [], |
| | | configItemList: [], |
| | | qaAuditList: [], |
| | | flowInfoDto: {} |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const roleName = localStorage.getItem('roleName') |
| | | if (roleName && roleName.includes('QA')) { |
| | | this.showColumn = true; |
| | | } |
| | | if (roleName && roleName.includes('测试员')) { |
| | | this.showAddAndEdit = true; |
| | | } |
| | | }, |
| | | computed: {}, |
| | | components: { |
| | | AddOrUpdateCheck |
| | | }, |
| | | methods: { |
| | | indexFormat(index) { |
| | | return index += 1 |
| | | }, |
| | | init(id, row) { |
| | | console.log(id, row, '入库单的') |
| | | if (id) { |
| | | this.dataForm.id = id |
| | | } else { |
| | | this.dataForm.id = row.id |
| | | } |
| | | if (row.projectId) { |
| | | this.dataForm.projectId = row.projectId |
| | | } |
| | | this.getInfo() |
| | | if (!this.dataForm.disabled) { |
| | | if (!row.stepMarker) { |
| | | this.stepMarker = 'pzxrk_first' |
| | | this.title = '入库申请' |
| | | } else { |
| | | this.title = row.stepName |
| | | this.stepMarker = row.stepMarker |
| | | } |
| | | } |
| | | console.log(this.dataForm.id, this.dataForm.projectId, 'params params') |
| | | }, |
| | | // addConfigItemWarehouseRow(){ |
| | | // this.dataForm.configItemList.push({}) |
| | | // this.$nextTick(()=>{ |
| | | // const tableBody=this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') |
| | | // tableBody.scrollTop = tableBody.scrollHeight; |
| | | // }) |
| | | // }, |
| | | handleCommand(pageCode) { |
| | | const selectedItem = this.menuOptions.find(item => item.pageCode === pageCode); |
| | | console.log(selectedItem, "handleCommand(pageCode) selectedItem") |
| | | if (selectedItem.pageCode === 'other') { |
| | | this.dataForm.configItemList.push({}) |
| | | } else if (selectedItem) { |
| | | this.dataForm.configItemList.push({itemName: selectedItem.name, pageCode: selectedItem.pageCode}) |
| | | } |
| | | this.$nextTick(() => { |
| | | const tableBody = this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') |
| | | tableBody.scrollTop = tableBody.scrollHeight; |
| | | }) |
| | | }, |
| | | openCheckOrderWin(row) { |
| | | console.log(row, "openCheckOrderWin(row)") |
| | | row.projectId = this.dataForm.projectId |
| | | if (!row.pageCode) { |
| | | if (!row.checkId) { |
| | | row.checkId = -1 |
| | | } |
| | | row.pageCode = this.pageNameCode[row.itemName] |
| | | console.log(row.itemName, row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode") |
| | | } |
| | | this.$refs.addOrUpdate.$refs.dialog.init(null, row) |
| | | |
| | | }, |
| | | setCheckId(checkId, row) { |
| | | console.log(checkId, row, "setCheckId(checkId, row)") |
| | | this.$set(row, 'checkId', checkId) |
| | | }, |
| | | // 获取信息 |
| | | async getInfo() { |
| | | let params = { |
| | | warehouseId: this.dataForm.id, |
| | | projectId: this.dataForm.projectId |
| | | } |
| | | let res = await this.$http.get(`/configItemChange/ConfigItemWarehouse/getDto`, {params: params}) |
| | | this.dataForm = { |
| | | ...this.dataForm, |
| | | ...res.data |
| | | } |
| | | if (this.dataForm.project === null) { |
| | | this.dataForm.project = {} |
| | | } |
| | | if (this.dataForm.configItemChange === null) { |
| | | this.dataForm.circulatOrder = {} |
| | | } |
| | | if (this.dataForm.flowInfoDto === null) { |
| | | this.dataForm.flowInfoDto = {} |
| | | } |
| | | console.log(this.dataForm, "getInfo this.dataForm") |
| | | }, |
| | | // 表单提交 |
| | | async formSubmit(submitType) { |
| | | if (this.showColumn && submitType == 'bl') { |
| | | for (let item of this.dataForm.configItemList) { |
| | | if (item) { |
| | | if (this.pageNameCode[item.itemName] && !item.checkId) { |
| | | this.$alert("有未提交的检查单") |
| | | return |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (submitType == 'tj' || submitType == 'bl') { |
| | | let flowInfo = { |
| | | flowCode: 'pzxrk', |
| | | stepIdMark: this.stepMarker, |
| | | submitType: submitType |
| | | } |
| | | this.dataForm.flowInfoDto = flowInfo; |
| | | } |
| | | let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/configItemChange/ConfigItemWarehouse/', this.dataForm) |
| | | if (res.success) { |
| | | await this.$tip.success() |
| | | this.$refs.dialog.close() |
| | | this.$emit('refreshDataList') |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | .ManageFormAuto { |
| | | width: 70%; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .confirmDAuto { |
| | | border: 1px solid; |
| | | } |
| | | |
| | | .el-flexManageDialog { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .DFormWidth { |
| | | width: 120px; |
| | | } |
| | | |
| | | .DAlign { |
| | | text-align: center; |
| | | } |
| | | |
| | | .DManageForm { |
| | | /*border-left: 1px solid;*/ |
| | | width: 100%; |
| | | } |
| | | |
| | | .DManageForm > .el-form-item > .el-form-item__content { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .el-form-item.el-CMTextarea > .el-form-item__content { |
| | | width: 100%; |
| | | } |
| | | |
| | | .el-form .el-form-item.el-wt-form-item-margin { |
| | | margin-left: 120px; |
| | | } |
| | | |
| | | .el-form-border { |
| | | border-top: 1px solid; |
| | | border-bottom: 1px solid; |
| | | } |
| | | |
| | | .el-margin-top-bot { |
| | | margin-top: 5px; |
| | | margin-bottom: 5px; |
| | | } |
| | | |
| | | .zt .el-table.el-software th { |
| | | background: transparent; |
| | | } |
| | | |
| | | .zt .el-table.el-software th > .cell { |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .DHold { |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .zt .el-table.el-software { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .warehouseContentWidth > .el-form-item > .el-form-item__content { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .warehouseContentWidth > .el-form-item.lastChild > .el-form-item__content { |
| | | width: calc(100% - 142px); |
| | | } |
| | | |
| | | .warehouseFormAuto .marginTopAndMarginBottom { |
| | | margin-top: 10px !important; |
| | | margin-bottom: 0 !important; |
| | | } |
| | | |
| | | .warehouseFormAuto .marginTopAndMarginBottom2 { |
| | | margin-top: -10px !important; |
| | | margin-bottom: 0 !important; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="fa-card-a"> |
| | | <zt-table-wraper query-url="/configItemChange/ConfigItemWarehouse/page" delete-url="/configItemChange/ConfigItemWarehouse/deleteConfigItem" v-slot="{ table }"> |
| | | <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.code" placeholder="请输入配置项入库编号" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.projectCode" placeholder="请输入项目编号" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.softwareName" placeholder="请输入项目名称" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <zt-dict v-model="dataForm.libraryType" dict="library_type" clearable></zt-dict> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <zt-button type="query" @click="table.query()"/> |
| | | <zt-button type="primary" class="el-icon-edit" perm="configItemChange:add" @click="add()">新增</zt-button> |
| | | <zt-button type="delete" perm="configItemChange:delete" @click="table.deleteHandle()"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle"> |
| | | <el-table-column align="center" type="selection" width="40"/> |
| | | <el-table-column prop="code" label="配置项入库编号"/> |
| | | <el-table-column prop="projectCode" label="项目编号"/> |
| | | <el-table-column prop="softwareName" label="项目名称"/> |
| | | <zt-table-column-dict prop="libraryType" label="库类型" dict="library_type"/> |
| | | <zt-table-column-handle :table="table" edit-perm="configItemChange:update" delete-perm="configItemChange::delete"/> |
| | | </el-table> |
| | | <!-- 弹窗, 新增 / 修改 --> |
| | | <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/> |
| | | <ProjectSelect ref="projectSelect" |
| | | @refreshDataList="table.query" |
| | | @setProjectInfo="openAddWin"> |
| | | </ProjectSelect> |
| | | </zt-table-wraper> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import AddOrUpdate from './ConfigItemChange-AddOrUpdate' |
| | | import ProjectSelect from "../project/Project-select"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataForm: { |
| | | code: '', |
| | | projectCode: '', |
| | | softwareName: '', |
| | | libraryType: '' |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | AddOrUpdate, |
| | | ProjectSelect |
| | | }, |
| | | methods:{ |
| | | add() { |
| | | this.$refs.projectSelect.$refs.dialog.init("config_item_warehouse") |
| | | }, |
| | | openAddWin(row) { |
| | | console.log(row.id, 'row.id') |
| | | // this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id}) |
| | | this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id}) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | this.showAddAndEdit = true; |
| | | } |
| | | }, |
| | | computed: { |
| | | |
| | | }, |
| | | computed: {}, |
| | | components: { |
| | | AddOrUpdateCheck |
| | | }, |
| | |
| | | console.log(row, "openCheckOrderWin(row)") |
| | | row.projectId = this.dataForm.projectId |
| | | if (!row.pageCode){ |
| | | if (!row.checkId) { |
| | | row.checkId = -1 |
| | | } |
| | | row.pageCode = this.pageNameCode[row.itemName] |
| | | console.log(row.itemName,row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode") |
| | | } |
| | |
| | | <div style="width: calc(100% - 120px);"> |
| | | <div class="el-border-left"> |
| | | <el-form-item label="物品是否需要返还" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0"> |
| | | <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemRequire" :radio="true" |
| | | <zt-dict :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.itemRequire" :radio="true" |
| | | dict="is_or_not"></zt-dict> |
| | | </el-form-item> |
| | | <el-form-item label="物品的其他要求:" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0"> |
| | | <el-input :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input> |
| | | <el-input :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="el-border-left " style="width: 35%;height: 80px;"> |
| | | <el-form-item label="是否完成病毒查杀" label-width="150px" style="padding-left:20px;margin-bottom:0"> |
| | | <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | <zt-dict :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | </el-form-item> |
| | | <el-form-item label="病毒库版本:" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0"> |
| | | <el-input :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input> |
| | | <el-input :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="el-border-left " style="width: 35%;height: 40px;"> |
| | | <el-form-item label="是否满足测试要求" label-width="150px" style="padding-left:20px;margin-bottom:0"> |
| | | <zt-dict :disabled="stepMarker=='wplz_xzjc'" v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | <zt-dict :disabled="stepMarker!=='wplz_xzjc'" v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="el-border-left " style="width: 35%;height: 40px;"> |
| | | <el-form-item label="是否完成样品发放" label-width="150px" style="padding-left:20px;margin-bottom:0"> |
| | | <zt-dict :disabled="stepMarker=='wplz_wpff'"v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | <zt-dict :disabled="stepMarker!=='wplz_wpff'"v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | if (row.flowCode === 'wplz') { |
| | | this.$refs.itemCirculatOrder.$refs.dialog.init(row.bizId, row) |
| | | } else if (row.flowCode === 'pzxrk') { |
| | | this.$refs.configItemWarehouse.$refs.dialog.init(row.bizId, row) |
| | | this.$refs.configItemChange.$refs.dialog.init(row.bizId, row) |
| | | }else if (row.flowCode === 'csjcd') { |
| | | this.$refs.testCheckOrder.$refs.dialog.init(row.bizId, row) |
| | | } else { |
| | |
| | | label-width="120px" class="testCheckFormAuto"> |
| | | <div> |
| | | <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: -5px"> |
| | | <span>{{dataForm.testCheckOrder.code || '编号自动生成'}}</span> |
| | | <span>{{dataForm.checkOrder.code || '编号自动生成'}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> |
| | |
| | | <el-input v-model="dataForm.project.softwareName" placeholder="项目名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="marginTopAndMarginBottom3" label="检查人" style="width: 49%"> |
| | | <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.testCheckOrder.examiner" placeholder="检查人"></el-input> |
| | | <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.checkOrder.examiner" |
| | | placeholder="检查人"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="marginTopAndMarginBottom3" label="检查时间" style="width: 49%"> |
| | | <el-date-picker |
| | | :disabled="stepMarker!=='csjcd_first'" |
| | | v-model="dataForm.testCheckOrder.examDate" |
| | | v-model="dataForm.checkOrder.examDate" |
| | | type="date" |
| | | placeholder="请选择检查时间"> |
| | | </el-date-picker> |
| | |
| | | <div class="el-border-left acceptDate" style="height: 80px;width: 80%;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | <el-input type="textarea" |
| | | :rows="3" v-model="dataForm.testCheckOrder.problemDescription" placeholder="问题描述..."></el-input> |
| | | :rows="3" v-model="dataForm.checkOrder.problemDescription" placeholder="问题描述..."></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="el-border-left acceptDate" style="height: 80px;width: 80%;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | <el-input type="textarea" |
| | | :rows="3" v-model="dataForm.testCheckOrder.problemProcess" placeholder="问题处理..."></el-input> |
| | | :rows="3" v-model="dataForm.checkOrder.problemProcess" placeholder="问题处理..."></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | <span>{{dataForm.testCheckOrder.processor}}</span> |
| | | <span>{{dataForm.checkOrder.processor}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 84px;text-align: center;font-weight: 600"> |
| | |
| | | </div> |
| | | <div class="el-border-left acceptDate1" style="width: 40%;height: 40px;"> |
| | | <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0"> |
| | | <span>{{dataForm.testCheckOrder.verifier}}</span> |
| | | <span>{{dataForm.checkOrder.verifier}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | softwareIdentity: '', |
| | | softwareName: '', |
| | | }, |
| | | testCheckOrder: { |
| | | checkOrder: { |
| | | code: '', |
| | | examiner: '', |
| | | examDate: '', |
| | |
| | | init(id, row) { |
| | | this.configDetailRow = row |
| | | if (row.checkId) { |
| | | if (row.checkId != -1) { |
| | | this.dataForm.id = row.checkId |
| | | } |
| | | } else if (id) { |
| | | this.dataForm.id = id |
| | | } else { |
| | |
| | | }, |
| | | // 表单提交 |
| | | async formSubmit(submitType) { |
| | | if (submitType == 'tj') { |
| | | let isFlow = false |
| | | if (submitType == 'tj') { |
| | | for (let item of this.dataForm.checkOrderList) { |
| | | if (!item.checkResult) { |
| | | this.$alert("有未填写的数据") |
| | |
| | | submitType == '' |
| | | } |
| | | } |
| | | if (submitType == 'tj' || submitType == 'bl' && isFlow) { |
| | | if (submitType == 'tj' || submitType == 'bl') { |
| | | let flowInfo = { |
| | | flowCode: 'csjcd', |
| | | stepIdMark: this.stepMarker, |
| | |
| | | } |
| | | this.dataForm.flowInfoDto = flowInfo; |
| | | } |
| | | |
| | | console.log(this.dataForm, "this.dataForm formSubmit(submitType)") |
| | | let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm) |
| | | if (res.success) { |
| | | await this.$tip.success() |
| | |
| | | <template> |
| | | <el-card shadow="never" class="aui-card--fill"> |
| | | <div class="mod-testCheckOrder-testCheckOrder}"> |
| | | <zt-table-wraper :query-url="QueryUrl" delete-url="/testCheckOrder/TestCheckOrder/deleteCheckOrder" |
| | | <zt-table-wraper query-url="/testCheckOrder/TestCheckOrder/page" delete-url="/testCheckOrder/TestCheckOrder/deleteCheckOrder" |
| | | v-slot="{ table }"> |
| | | <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.code" placeholder="请输入编号" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.softwarename" placeholder="请输入项目名称" clearable></el-input> |
| | | <el-input v-model="dataForm.softwareName" placeholder="请输入项目名称" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <zt-button type="query" @click="table.query()"/> |
| | |
| | | QueryUrl:'', |
| | | dataForm: { |
| | | code: '', |
| | | softwareidentity: '', |
| | | softwarename: '', |
| | | softwareIdentity: '', |
| | | softwareName: '', |
| | | pageCode:this.$route.query.pageCode |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.pageCode = this.$route.query.pageCode |
| | | this.dataForm.pageCode = this.$route.query.pageCode |
| | | console.log(this.pageCode,'this.pageCode this.pageCode') |
| | | }, |
| | | watch:{ |
| | | pageCode(){ |
| | | this.QueryUrl=`/testCheckOrder/TestCheckOrder/page?pageCode=${this.pageCode}` |
| | | console.log(this.QueryUrl,'watch pageCode url') |
| | | } |
| | | }, |
| | | components: { |
| | | AddOrUpdate, |