From dc352ea3b9ec925320784592f29ca640b3a7b2ea Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期二, 05 十二月 2023 14:05:44 +0800 Subject: [PATCH] 6 --- zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java | 12 web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue | 26 + web/src/views/layout/main-sidebar.vue | 1 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java | 82 ++++ zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java | 15 zt/core/src/main/resources/mapper/sys/SysPostDao.xml | 2 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java | 39 + modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java | 17 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java | 44 ++ modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java | 24 + modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java | 12 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java | 114 +++++ modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml | 21 + web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue | 22 + web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue | 88 ++++ modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java | 128 ++++++ modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java | 3 web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue | 22 + web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue | 22 + web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue | 22 + zt/core/src/main/resources/mapper/sys/SysTenantDao.xml | 4 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java | 77 +++ modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java | 23 core/src/main/java/com/zt/life/export/service/WordFileService.java | 16 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java | 23 + modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml | 34 + modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java | 52 ++ modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java | 31 + web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue | 19 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java | 97 ++++ web/src/views/modules/testCheckOrder/TestCheckOrder.vue | 58 ++ 31 files changed, 1,077 insertions(+), 73 deletions(-) diff --git a/core/src/main/java/com/zt/life/export/service/WordFileService.java b/core/src/main/java/com/zt/life/export/service/WordFileService.java index 0576d03..3ef75f1 100644 --- a/core/src/main/java/com/zt/life/export/service/WordFileService.java +++ b/core/src/main/java/com/zt/life/export/service/WordFileService.java @@ -14,8 +14,10 @@ import org.springframework.stereotype.Service; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; import java.io.*; import java.lang.reflect.Field; import java.util.*; @@ -65,20 +67,26 @@ } else if (staticFieldValue != null) { String valStr = staticFieldValue.toString(); if (valStr.contains("鏂囦欢鍥剧墖:")) { - valStr = valStr.replace("鏂囦欢鍥剧墖:", ""); + valStr = localPath + valStr.replace("鏂囦欢鍥剧墖:", ""); File file = new File(valStr); if (file.exists()) { try (InputStream in = ossEncryptService.decrypt(file)) { - staticFieldValue = new PictureRenderData(500, 500, ".png", in); + InputStream in2 = ossEncryptService.decrypt(file); + BufferedImage bufferedImage = ImageIO.read(in2); + int width = bufferedImage.getWidth(); + int height = bufferedImage.getHeight(); + staticFieldValue = new PictureRenderData(width, height, ".png", in); /*staticFieldValue = new PictureRenderData(80, 100, "d://" + valStr);*/ } catch (IOException e) { e.printStackTrace(); } + } else { + staticFieldValue = new PictureRenderData(100, 30, "template/noSign.png"); } - if (wordData.get(fieldName) == null) - wordData.put(fieldName, staticFieldValue); } } + if (wordData.get(fieldName) == null) + wordData.put(fieldName, staticFieldValue); } } } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java index 08b6147..88e68dd 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java @@ -26,6 +26,9 @@ @ApiModelProperty(value = "椤圭洰ID") private Long projectId; + @ApiModelProperty(value = "妫�鏌ュ崟ID") + private Long checkId; + @ApiModelProperty(value = "閰嶇疆椤瑰叆搴撶紪鍙�") private String code; diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java index 70405bf..240c223 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java @@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; @@ -77,15 +78,6 @@ @ApiOperation("淇℃伅") public Result<ItemCirculatOrderDto> getDto(Long projectId, Long circulatOrderid) { ItemCirculatOrderDto data = itemCirculatOrderService.getDto(projectId, circulatOrderid); - if (circulatOrderid!=null) { - for (ItemCirculatOrderTechnical technical : data.getTechnicalList()) { - Long technicalId = technical.getId(); - OssDto ossDto = sysOssConfigService.getOssByBusiType(technicalId, "circulat_order"); - if (ossDto != null) { - technical.setFiles(ossDto); - } - } - } return Result.ok(data); } @@ -125,4 +117,11 @@ return Result.ok(); } + @GetMapping("exportCirculatOrder") + @ApiOperation("鎵撳嵃鐗╁搧娴佽浆鍗�") + @LogOperation("鎵撳嵃鐗╁搧娴佽浆鍗�") + public void exportCirculatOrder(Long id, HttpServletRequest request, HttpServletResponse response) { + itemCirculatOrderService.exportCirculatOrder(id, request, response); + } + } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java index 4eae527..9c0c365 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java @@ -95,5 +95,17 @@ @ApiModelProperty(value = "鍏朵粬瑕佹眰") private String itemRequireStr; + @TableField(exist = false) + @ApiModelProperty(value = "鐗╁搧鎺ユ敹鎯呭喌璇存槑") + private String acceptSituationStr; + + @TableField(exist = false) + @ApiModelProperty(value = "鏍″噯妫�娴嬫儏鍐佃鏄�") + private String detectSituationStr; + + @TableField(exist = false) + @ApiModelProperty(value = "鐗╁搧鍙戞斁鎯呭喌璇存槑") + private String issueSituationStr; + } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java index 03a5329..d5cacb0 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java @@ -1,19 +1,17 @@ package com.zt.life.modules.itemCirculatOrder.service; +import cn.hutool.core.convert.Convert; import com.zt.common.service.BaseService; -import com.zt.core.sys.dto.DictDto; -import com.zt.core.sys.dto.DictItemDto; -import com.zt.core.sys.dto.DictLeafDto; import com.zt.life.export.dto.WordFile; +import com.zt.life.export.service.WordFileService; import com.zt.life.modules.itemCirculatOrder.dao.ItemCirculatOrderDao; -import com.zt.life.modules.itemCirculatOrder.dao.ItemCirculatOrderTechnicalDao; import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto; import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder; import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical; -import com.zt.life.modules.project.dto.SoftwareTestOrderDto; +import com.zt.life.modules.mainPart.utils.GetShowDictList; +import com.zt.life.modules.mainPart.utils.GetFilesPath; import com.zt.life.modules.project.model.*; import com.zt.life.modules.project.service.ProjectService; -import com.zt.life.modules.project.service.SoftwareTestOrderService; import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService; import com.zt.life.sys.dto.OssDto; import com.zt.life.sys.service.SysOssConfigService; @@ -25,16 +23,13 @@ import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; -import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileNotFoundException; import java.io.UnsupportedEncodingException; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** @@ -65,6 +60,16 @@ @Autowired private WorkflowService workflowService; + + @Autowired + private GetShowDictList getShowDictList; + + @Autowired + private WordFileService wordFileService; + + @Autowired + private GetFilesPath getFilesPath; + /** * 鍒嗛〉鏌ヨ @@ -120,7 +125,7 @@ Long bizId = itemCirculatOrderDto.getCirculatOrder().getId(); FlowInfoDto flowInfoDto = itemCirculatOrderDto.getFlowInfoDto(); - if (flowInfoDto != null && "tj,bl".contains(flowInfoDto.getSubmitType())) { + if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) { if ("tj".equals(flowInfoDto.getSubmitType())) { workflowService.startFlow(flowInfoDto.getFlowCode(), bizId); } @@ -164,11 +169,59 @@ project.setSoftwareType(type); data.setProject(project); } - if (data.getTestAgencyInfo() == null) data.setTestAgencyInfo(testAgencyInfoService.get(10000L)); - + if (circulatOrderid != null) { + for (ItemCirculatOrderTechnical technical : data.getTechnicalList()) { + Long technicalId = technical.getId(); + OssDto ossDto = sysOssConfigService.getOssByBusiType(technicalId, "circulat_order"); + if (ossDto != null) { + technical.setFiles(ossDto); + } + } + } return data; } + public void exportCirculatOrder(Long id, HttpServletRequest request, HttpServletResponse response) { + try { + ItemCirculatOrderDto dataObj = this.getDto(null, id); + + String acceptorPath = "鏂囦欢鍥剧墖:"+ getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemAcceptorId())); + dataObj.getCirculatOrder().setItemAcceptor(acceptorPath); + String detectorPath = "鏂囦欢鍥剧墖:"+getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getCalibratDetectorId())); + dataObj.getCirculatOrder().setCalibratDetector(detectorPath); + String issuerPath = "鏂囦欢鍥剧墖:"+getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemIssuerId())); + dataObj.getCirculatOrder().setItemIssuer(issuerPath); + //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴� + String itemRequireStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getItemRequire(), "is_or_not", false); + dataObj.getCirculatOrder().setItemRequireStr(itemRequireStr); + + String acceptSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getAcceptSituation(), "is_or_not", false); + dataObj.getCirculatOrder().setAcceptSituationStr(acceptSituationStr); + + String detectSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDetectSituation(), "is_or_not", false); + dataObj.getCirculatOrder().setDetectSituationStr(detectSituationStr); + + String issueSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getIssueSituation(), "is_or_not", false); + dataObj.getCirculatOrder().setIssueSituationStr(issueSituationStr); + + for (ItemCirculatOrderTechnical technical : dataObj.getTechnicalList()) { + String value = technical.getSecretClass(); + String secretClassStr = getShowDictList.getShowDictList(value, "secret_class", false); + technical.setSecretClass(secretClassStr); + } + + + WordFile wordFile = new WordFile(); + wordFile.setModulePath("鐗╁搧娴佽浆鍗�.docx"); + wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_鐗╁搧娴佽浆鍗�.docx"); + wordFileService.exportWordFile(request, dataObj, wordFile, response); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java new file mode 100644 index 0000000..501e6c0 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java @@ -0,0 +1,44 @@ +package com.zt.life.modules.mainPart.utils; + +import com.zt.core.sys.model.SysUser; +import com.zt.life.sys.dto.OssDto; +import com.zt.modules.oss.cloud.LocalStorageService; +import com.zt.modules.oss.model.SysOss; +import com.zt.modules.oss.service.SysOssService; +import com.zt.modules.sys.service.SysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +@Service +public class GetFilesPath { + @Autowired + private SysUserService sysUserService; + + @Autowired + private SysOssService sysOssService; + + public String getSignPath(Long userId) { + SysUser data = sysUserService.getUserInfo(userId); + OssDto oss = data.getFiles2(); + return getFirstImagePath(oss); + } + + public String getFirstImagePath(OssDto oss) { + String filePath = ""; + if (oss != null) { + if (oss.getGroups().size() > 0) { + OssDto.OssFieldGroupDto group = oss.getGroups().get(0); + if (group.getFields().size() > 0) { + OssDto.OssFieldDto field = group.getFields().get(0); + if (field.getFiles().size() > 0) { + com.zt.core.oss.dto.OssDto file = field.getFiles().get(0); + SysOss sysOss = sysOssService.get(file.getId()); + filePath = sysOss.getPath(); + } + } + } + } + return filePath; + } +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java index 7a01b68..1e31c4f 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java @@ -6,6 +6,7 @@ import com.zt.core.sys.dto.DictLeafDto; import com.zt.life.export.dto.WordFile; import com.zt.life.export.service.WordFileService; +import com.zt.life.modules.mainPart.utils.GetFilesPath; import com.zt.life.modules.mainPart.utils.GetShowDictList; import com.zt.life.modules.project.dao.EnvironDao; import com.zt.life.modules.project.dto.EnvironDto; @@ -75,7 +76,7 @@ private SysOssService sysOssService; @Autowired - private LocalStorageService localStorageService; + private GetFilesPath getFilesPath; @Value("${zt.oss.local-path}") private String localPath; @@ -203,7 +204,7 @@ public void exportEnviron(Long id, HttpServletRequest request, HttpServletResponse response) { try { EnvironDto dataObj = this.getDto(id, null); - String imagePath = "鏂囦欢鍥剧墖:"+getFirstImagePath(dataObj.getFiles()); + String imagePath = "鏂囦欢鍥剧墖:"+getFilesPath.getFirstImagePath(dataObj.getFiles()); dataObj.getEnviron().setTestEnvirontDiagram(imagePath); //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴� String isVirusScanStr = getShowDictList.getShowDictList(dataObj.getEnviron().getIsVirusScan(), "is_or_not", false); @@ -220,21 +221,5 @@ } } - public String getFirstImagePath(OssDto oss) { - String filePath = ""; - if (oss != null) { - if (oss.getGroups().size() > 0) { - OssDto.OssFieldGroupDto group = oss.getGroups().get(0); - if (group.getFields().size() > 0) { - OssDto.OssFieldDto field = group.getFields().get(0); - if (field.getFiles().size() > 0) { - com.zt.core.oss.dto.OssDto file = field.getFiles().get(0); - SysOss sysOss = sysOssService.get(file.getId()); - filePath = localPath+sysOss.getPath(); - } - } - } - } - return filePath; - } + } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java new file mode 100644 index 0000000..f643f0d --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java @@ -0,0 +1,114 @@ +package com.zt.life.modules.testCheckOrder.controller; + + +import com.zt.common.annotation.LogOperation; +import com.zt.common.constant.Constant; +import com.zt.common.annotation.QueryParam; +import com.zt.common.db.query.QueryFilter; +import com.zt.common.servlet.Result; +import com.zt.common.servlet.PageResult; +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.project.dto.EnvironDto; +import com.zt.life.modules.project.dto.SoftwareTestOrderDto; +import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrder; +import com.zt.life.modules.testCheckOrder.service.TestCheckOrderService; +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 javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * test_check_order + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@RestController +@RequestMapping("/testCheckOrder/TestCheckOrder/") +@Api(tags="test_check_order") +public class TestCheckOrderController { + @Autowired + private TestCheckOrderService testCheckOrderService; + + @Autowired + private SysCodeRuleService sysCodeRuleService; + + @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 = "code^LK"), @ApiImplicitParam(name = "softwareidentity", value = "椤圭洰鏍囪瘑", dataType = Constant.QT.STRING, format = "softwareIdentity^LK"), @ApiImplicitParam(name = "softwarename", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "softwareName^LK") }) + public PageResult<TestCheckOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ + + return PageResult.ok(testCheckOrderService.page(queryFilter)); + } + + @GetMapping("getDto") + @ApiOperation("淇℃伅") + public Result<CheckOrderDto> getDto(Long checkId, Long projectId,String itemType) { + CheckOrderDto data = testCheckOrderService.getDto(checkId, projectId,itemType); + return Result.ok(data); + } + + @PostMapping + @ApiOperation("鏂板") + @LogOperation("鏂板") + public Result insert(@RequestBody CheckOrderDto checkOrderDto){ + //鏁堥獙鏁版嵁 + ValidatorUtils.validateEntity(checkOrderDto, AddGroup.class, DefaultGroup.class); + Map<String, String> map = new HashMap<>(); + map.put("funCode", "test_check_order"); + map.put("projectId",checkOrderDto.getProjectId().toString()); + checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map)); + Boolean result = testCheckOrderService.save(checkOrderDto); + return Result.ok(); + } + + @PutMapping + @ApiOperation("淇敼") + @LogOperation("淇敼") + public Result update(@RequestBody CheckOrderDto checkOrderDto){ + //鏁堥獙鏁版嵁 + ValidatorUtils.validateEntity(checkOrderDto, UpdateGroup.class, DefaultGroup.class); + Boolean result = testCheckOrderService.save(checkOrderDto); + + return Result.ok(); + } + + @DeleteMapping("deleteCheckOrder") + @ApiOperation("鍒犻櫎") + @LogOperation("鍒犻櫎") + public Result delete(@RequestBody Long[] ids){ + //鏁堥獙鏁版嵁 + AssertUtils.isArrayEmpty(ids, "id"); + testCheckOrderService.delete(ids); + + return Result.ok(); + } + + /*@GetMapping("exportCheckOrder") + @ApiOperation("鎵撳嵃娴嬭瘯鐜寤虹珛纭琛�") + @LogOperation("鎵撳嵃娴嬭瘯鐜寤虹珛纭琛�") + public void exportEnviron(Long id, HttpServletRequest request, HttpServletResponse response) { + environService.exportEnviron(id, request, response); + }*/ +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java new file mode 100644 index 0000000..841299c --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java @@ -0,0 +1,97 @@ +package com.zt.life.modules.testCheckOrder.controller; + + +import com.zt.common.annotation.LogOperation; +import com.zt.common.constant.Constant; +import com.zt.common.annotation.QueryParam; +import com.zt.common.db.query.QueryFilter; +import com.zt.common.servlet.Result; +import com.zt.common.servlet.PageResult; +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.testCheckOrder.model.TestCheckOrderList; +import com.zt.life.modules.testCheckOrder.service.TestCheckOrderListService; +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 javax.servlet.http.HttpServletResponse; +import java.util.List; + + +/** + * test_check_order_list + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@RestController +@RequestMapping("/testCheckOrder/TestCheckOrderList/") +@Api(tags="test_check_order_list") +public class TestCheckOrderListController { + @Autowired + private TestCheckOrderListService testCheckOrderListService; + + @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 = "softwareName", value = "杞欢鍚嶇О", dataType = Constant.QT.STRING, format = "software_name^EQ"), + }) + public PageResult<TestCheckOrderList> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ + + return PageResult.ok(testCheckOrderListService.page(queryFilter)); + } + + @GetMapping("{id}") + @ApiOperation("淇℃伅") + public Result<TestCheckOrderList> get(@PathVariable("id") Long id){ + TestCheckOrderList data = testCheckOrderListService.get(id); + + return Result.ok(data); + } + + @PostMapping + @ApiOperation("鏂板") + @LogOperation("鏂板") + public Result insert(@RequestBody TestCheckOrderList testCheckOrderList){ + //鏁堥獙鏁版嵁 + ValidatorUtils.validateEntity(testCheckOrderList, AddGroup.class, DefaultGroup.class); + testCheckOrderListService.insert(testCheckOrderList); + + return Result.ok(); + } + + @PutMapping + @ApiOperation("淇敼") + @LogOperation("淇敼") + public Result update(@RequestBody TestCheckOrderList testCheckOrderList){ + //鏁堥獙鏁版嵁 + ValidatorUtils.validateEntity(testCheckOrderList, UpdateGroup.class, DefaultGroup.class); + testCheckOrderListService.update(testCheckOrderList); + + return Result.ok(); + } + + @DeleteMapping + @ApiOperation("鍒犻櫎") + @LogOperation("鍒犻櫎") + public Result delete(@RequestBody Long[] ids){ + //鏁堥獙鏁版嵁 + AssertUtils.isArrayEmpty(ids, "id"); + testCheckOrderListService.delete(ids); + + return Result.ok(); + } + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java new file mode 100644 index 0000000..4df6682 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java @@ -0,0 +1,23 @@ +package com.zt.life.modules.testCheckOrder.dao; + +import com.zt.common.dao.BaseDao; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrder; +import org.apache.ibatis.annotations.Mapper; + + +import java.util.List; +import java.util.Map; + + +/** + * test_check_order + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@Mapper +public interface TestCheckOrderDao extends BaseDao<TestCheckOrder> { + + List<TestCheckOrder> getList(Map<String, Object> params); + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java new file mode 100644 index 0000000..17c4a13 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java @@ -0,0 +1,24 @@ +package com.zt.life.modules.testCheckOrder.dao; + +import com.zt.common.dao.BaseDao; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList; +import org.apache.ibatis.annotations.Mapper; + + +import java.util.List; +import java.util.Map; + + +/** + * test_check_order_list + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@Mapper +public interface TestCheckOrderListDao extends BaseDao<TestCheckOrderList> { + + List<TestCheckOrderList> getList(Map<String, Object> params); + + List<TestCheckOrderList> itemList(String dictType); +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java new file mode 100644 index 0000000..2a94346 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java @@ -0,0 +1,31 @@ +package com.zt.life.modules.testCheckOrder.dto; + +import com.zt.life.modules.project.model.*; +import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrder; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList; +import com.zt.life.sys.dto.OssDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class CheckOrderDto { + private Long id;//ID + private Long projectId;//椤圭洰ID + private Long checkId;//妫�鏌ュ崟ID + private Long configOrderId;//鍏ュ簱鍗旾D + private Long configItemId;//閰嶇疆椤笽D + private String configItemType;//閰嶇疆椤圭被鍨� + + + @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅") + private Project project; + @ApiModelProperty(value = "妫�鏌ュ崟") + private TestCheckOrder checkOrder; + + @ApiModelProperty(value = "妫�鏌ュ崟鍒楄〃") + private List<TestCheckOrderList> checkOrderList = new ArrayList<>(); +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java new file mode 100644 index 0000000..568795e --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java @@ -0,0 +1,82 @@ +package com.zt.life.modules.testCheckOrder.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.zt.common.entity.BusiEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * test_check_order + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("test_check_order") +public class TestCheckOrder extends BusiEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "椤圭洰ID") + private Long projectId; + + @ApiModelProperty(value = "閰嶇疆椤瑰叆搴�/鍙樻洿鍗旾D") + private Long configOrderId; + + @ApiModelProperty(value = "閰嶇疆椤笽D") + private Long configItemId; + + @ApiModelProperty(value = "閰嶇疆椤圭被鍨�") + private Long configItemType; + + @ApiModelProperty(value = "缂栧彿") + private String code; + + @ApiModelProperty(value = "椤圭洰鏍囪瘑") + private String softwareIdentity; + + @ApiModelProperty(value = "椤圭洰鍚嶇О") + private String softwareName; + + @ApiModelProperty(value = "妫�鏌ヤ汉") + private String examiner; + + @ApiModelProperty(value = "妫�鏌ユ椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date examDate; + + @ApiModelProperty(value = "闂鎻忚堪") + private String problemDescription; + + @ApiModelProperty(value = "闂澶勭悊") + private String problemProcess; + + @ApiModelProperty(value = "澶勭悊浜�") + private String processor; + + @ApiModelProperty(value = "澶勭悊浜篒D") + private Long processorId; + + @ApiModelProperty(value = "澶勭悊鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date processDate; + + @ApiModelProperty(value = "楠岃瘉浜�") + private String verifier; + + @ApiModelProperty(value = "楠岃瘉浜篒D") + private String verifierId; + + @ApiModelProperty(value = "楠岃瘉鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date verifyDate; + + @ApiModelProperty(value = "骞翠唤") + private String year; + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java new file mode 100644 index 0000000..c5fc211 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java @@ -0,0 +1,39 @@ +package com.zt.life.modules.testCheckOrder.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.zt.common.entity.BusiEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * test_check_order_list + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("test_check_order_list") +public class TestCheckOrderList extends BusiEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "妫�鏌ュ崟ID") + private Long checkOrderId; + + @ApiModelProperty(value = "搴忓彿") + private Integer no; + + @ApiModelProperty(value = "涓昏妫�鏌ュ唴瀹�") + private String checkContent; + + @ApiModelProperty(value = "妫�鏌ョ粨鏋�") + private String checkResult; + + @ApiModelProperty(value = "澶囨敞") + private String remark; + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java new file mode 100644 index 0000000..8fc424c --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java @@ -0,0 +1,52 @@ +package com.zt.life.modules.testCheckOrder.service; + +import com.zt.common.service.BaseService; +import com.zt.life.modules.project.model.EnvironSoftwareResources; +import com.zt.life.modules.testCheckOrder.dao.TestCheckOrderListDao; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList; +import org.springframework.stereotype.Service; +import com.zt.common.db.query.QueryFilter; +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * test_check_order_list + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@Service +public class TestCheckOrderListService extends BaseService<TestCheckOrderListDao, TestCheckOrderList> { + + /** + * 鍒嗛〉鏌ヨ + * + * @param queryFilter + * @return + */ + public List<TestCheckOrderList> page(QueryFilter queryFilter) { + return baseDao.getList(queryFilter.getQueryParams()); + } + + /** + * 鍒犻櫎 + * + * @param ids + */ + public void delete(Long[] ids) { + super.deleteLogic(ids); + } + + public List<TestCheckOrderList> getList(Long checkId) { + Map<String, Object> params = new HashMap<>(); + params.put("checkId",checkId); + return baseDao.getList(params); + } + + public List<TestCheckOrderList> itemList(String dictType) { + return baseDao.itemList(dictType); + } +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java new file mode 100644 index 0000000..dd376c7 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java @@ -0,0 +1,128 @@ +package com.zt.life.modules.testCheckOrder.service; + +import com.zt.common.service.BaseService; +import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto; +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.itemCirculatOrder.dto.ItemCirculatOrderDto; +import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder; +import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical; +import com.zt.life.modules.project.model.Project; +import com.zt.life.modules.project.service.ProjectService; +import com.zt.life.modules.testCheckOrder.dao.TestCheckOrderDao; +import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrder; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList; +import com.zt.life.sys.dto.OssDto; +import com.zt.modules.coderule.service.SysCodeRuleService; +import com.zt.modules.workflow.dto.FlowInfoDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zt.common.db.query.QueryFilter; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * test_check_order + * + * @author zt generator + * @since 1.0.0 2023-12-05 + */ +@Service +public class TestCheckOrderService extends BaseService<TestCheckOrderDao, TestCheckOrder> { + @Autowired + private TestCheckOrderListService checkOrderListService; + + @Autowired + private ProjectService projectService; + + @Autowired + private SysCodeRuleService sysCodeRuleService; + + + /** + * 鍒嗛〉鏌ヨ + * + * @param queryFilter + * @return + */ + public List<TestCheckOrder> page(QueryFilter queryFilter) { + return baseDao.getList(queryFilter.getQueryParams()); + } + + /** + * 鍒犻櫎 + * + * @param ids + */ + public void delete(Long[] ids) { + super.deleteLogic(ids); + } + + + public CheckOrderDto getDto(Long checkId, Long projectId,String itemType) { + CheckOrderDto data = new CheckOrderDto(); + if (checkId != null) { + data.setId(checkId); + TestCheckOrder checkOrder = this.get(checkId); + data.setCheckOrder(checkOrder); + if (projectId == null) { + projectId = checkOrder.getProjectId(); + } + + List<TestCheckOrderList> checkOrderList = checkOrderListService.getList(checkId); + data.setCheckOrderList(checkOrderList); + + } else { + TestCheckOrder checkOrder = new TestCheckOrder(); + data.setCheckOrder(checkOrder); + List<TestCheckOrderList> checkOrderList =new ArrayList(); + if (itemType.equals("plan")){ + checkOrderList = checkOrderListService.itemList("plan_check_item"); + }else if (itemType.equals("explain")){ + checkOrderList = checkOrderListService.itemList("explain_check_item"); + }else if(itemType.equals("record")){ + checkOrderList = checkOrderListService.itemList("record_check_item"); + }else if (itemType.equals("report")){ + checkOrderList = checkOrderListService.itemList("report_check_item"); + } + data.setCheckOrderList(checkOrderList); + } + if (projectId != null) { + data.setProjectId(projectId); + data.setProject(projectService.get(projectId)); + } + return data; + } + + public Boolean save(CheckOrderDto checkOrderDto) { + Long checkId = checkOrderDto.getCheckOrder().getId(); + if (checkId != null) + baseDao.updateById(checkOrderDto.getCheckOrder()); + else { + Map<String, String> map = new HashMap<>(); + map.put("funCode", "test_check_order"); + map.put("projectId", checkOrderDto.getProjectId().toString()); + checkOrderDto.getCheckOrder().setProjectId(checkOrderDto.getProjectId()); + checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map)); + baseDao.insert(checkOrderDto.getCheckOrder()); + checkId = checkOrderDto.getCheckOrder().getId(); + } + + for (TestCheckOrderList checkOrderList : checkOrderDto.getCheckOrderList()) { + checkOrderList.setCheckOrderId(checkId); + if (checkOrderList.getId() != null) { + checkOrderListService.update(checkOrderList); + } else { + checkOrderList.setCheckOrderId(checkId); + checkOrderListService.insert(checkOrderList); + } + } + return true; + } +} diff --git a/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml new file mode 100644 index 0000000..176226c --- /dev/null +++ b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml @@ -0,0 +1,21 @@ +<?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.zt.life.modules.testCheckOrder.dao.TestCheckOrderDao"> + + <select id="getList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrder"> + select a.* ,p.* + from test_check_order a + INNER JOIN project p ON p.id = a.project_id + <where> + a.is_delete = 0 and p.is_delete = 0 + <if test="whereSql!=null"> + and ${whereSql} + </if> + </where> + <if test="orderBySql!=null"> + ORDER BY ${orderBySql} + </if> + </select> + +</mapper> diff --git a/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml new file mode 100644 index 0000000..a2e4096 --- /dev/null +++ b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml @@ -0,0 +1,34 @@ +<?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.zt.life.modules.testCheckOrder.dao.TestCheckOrderListDao"> + + <select id="getList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrderList"> + select a.* + from test_check_order_list a + <where> + a.is_delete = 0 + <if test="whereSql!=null"> + and ${whereSql} + </if> + </where> + <if test="orderBySql!=null"> + ORDER BY ${orderBySql} + </if> + </select> + <select id="itemList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrderList"> + SET @row_number = 0; + SELECT dd.dict_label AS checkContent, + (@row_number := @row_number + 1) AS no + FROM sys_dict_type dt + JOIN sys_dict_data dd ON dt.ID = dd.DICT_TYPE_ID + <where> + dd.IS_DELETE = 0 + <if test="dictType != null and dictType != ''"> + and dt.DICT_TYPE = #{dictType} + </if> + </where> + ORDER BY dd.sort + </select> + +</mapper> diff --git a/web/src/views/layout/main-sidebar.vue b/web/src/views/layout/main-sidebar.vue index 73b2c77..a356a6e 100644 --- a/web/src/views/layout/main-sidebar.vue +++ b/web/src/views/layout/main-sidebar.vue @@ -213,6 +213,7 @@ this.$refs.mainNavbar.refresh() } this.$nextTick(() => { + console.log(route.meta.params,"route.meta.params") this.$router.push({name: route.name, query: route.meta.params, params: route.meta.params}) }) } diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue index 7b4f338..9941199 100644 --- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue +++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue @@ -15,10 +15,11 @@ <el-input v-model="dataForm.project.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> </el-form-item> <el-form-item label="鐢宠浜�" style="width: 49%"> - <el-input v-model="dataForm.configItemWarehouse.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input> + <el-input :disabled="stepMarker=='pzxrk_first'"v-model="dataForm.configItemWarehouse.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input> </el-form-item> <el-form-item label="鐢宠鏃ユ湡" style="width: 49%"> <el-date-picker + :disabled="stepMarker=='pzxrk_first'" v-model="dataForm.configItemWarehouse.applyDate" type="date" placeholder="璇烽�夋嫨鐢宠鏃ユ湡"> @@ -93,20 +94,20 @@ <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="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true" + <zt-dict :disabled="stepMarker=='wplz_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="getRoleName.indexOf('QA瑙掕壊')>=0" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input> + <el-input v-if="stepMarker=='wplz_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="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true" + <zt-dict :disabled="stepMarker=='wplz_qash'" v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true" clearable></zt-dict> </el-form-item> <el-form-item label="瀹℃牳浜猴細" style="width: 48%"> @@ -129,20 +130,20 @@ <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="getRoleName.indexOf('CM瑙掕壊')===-1" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true" + <zt-dict :disabled="stepMarker=='wplz_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="getRoleName.indexOf('CM瑙掕壊')>=0" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input> + <el-input v-if="stepMarker=='wplz_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="getRoleName.indexOf('CM瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true" + <zt-dict :disabled="stepMarker=='wplz_cmsh'" v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true" clearable></zt-dict> </el-form-item> <el-form-item label="瀹℃牳浜猴細" style="width: 48%"> @@ -160,7 +161,7 @@ </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="getRoleName.indexOf('閮ㄩ棬SCCB瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true" + <zt-dict :disabled="stepMarker=='wplz_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true" clearable></zt-dict> </el-form-item> <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%"> @@ -177,7 +178,7 @@ </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="getRoleName.indexOf('CM瑙掕壊')>=0" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input> + <el-input v-if="stepMarker=='wplz_cmcz'" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input> </el-form-item> <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%"> <span>{{dataForm.configItemWarehouse.operator}}</span> diff --git a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue index af0239d..ff2903a 100644 --- a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue +++ b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue @@ -98,11 +98,11 @@ <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 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 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> @@ -129,10 +129,10 @@ </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 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 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> @@ -185,7 +185,7 @@ </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="getRoleName.indexOf('QA瑙掕壊')===-1" 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> @@ -238,7 +238,7 @@ </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 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> @@ -254,10 +254,16 @@ </div> </div> </el-form> + <template v-slot:footer> + <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button> + </template> </zt-dialog> </template> <script> + import qs from "qs"; + import Cookies from "js-cookie"; + export default { data() { return { @@ -363,6 +369,14 @@ } console.log(this.dataForm, "getInfo this.dataForm") }, + async print(){ + var params = qs.stringify({ + token: Cookies.get('token'), + id:this.dataForm.id + }) + let apiURL = `/itemCirculatOrder/ItemCirculatOrder/exportCirculatOrder/` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}` + }, // 琛ㄥ崟鎻愪氦 async formSubmit(submitType) { console.log(this.dataForm, "this.dataForm11111") diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue new file mode 100644 index 0000000..2bd1f40 --- /dev/null +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue @@ -0,0 +1,88 @@ +<template> + <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> + <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> + <zt-form-item label="缂栧彿" prop="code" rules="required"> + <el-input v-model="dataForm.code"></el-input> + </zt-form-item> + <zt-form-item label="椤圭洰鏍囪瘑" prop="softwareidentity" rules="required"> + <el-input v-model="dataForm.softwareidentity"></el-input> + </zt-form-item> + <zt-form-item label="椤圭洰鍚嶇О" prop="softwarename" rules="required"> + <el-input v-model="dataForm.softwarename"></el-input> + </zt-form-item> + <zt-form-item label="妫�鏌ヤ汉" prop="examiner" rules="required"> + <el-input v-model="dataForm.examiner"></el-input> + </zt-form-item> + <zt-form-item label="妫�鏌ユ椂闂�" prop="examDate" rules="required"> + <el-input v-model="dataForm.examDate"></el-input> + </zt-form-item> + <zt-form-item label="闂鎻忚堪" prop="problemDescription" rules="required"> + <el-input v-model="dataForm.problemDescription"></el-input> + </zt-form-item> + <zt-form-item label="闂澶勭悊" prop="problemProcess" rules="required"> + <el-input v-model="dataForm.problemProcess"></el-input> + </zt-form-item> + <zt-form-item label="澶勭悊浜�" prop="processor" rules="required"> + <el-input v-model="dataForm.processor"></el-input> + </zt-form-item> + <zt-form-item label="澶勭悊鏃ユ湡" prop="processDate" rules="required"> + <el-input v-model="dataForm.processDate"></el-input> + </zt-form-item> + <zt-form-item label="楠岃瘉浜�" prop="verifier" rules="required"> + <el-input v-model="dataForm.verifier"></el-input> + </zt-form-item> + <zt-form-item label="楠岃瘉鏃ユ湡" prop="verifyDate" rules="required"> + <el-input v-model="dataForm.verifyDate"></el-input> + </zt-form-item> + <zt-form-item label="骞翠唤" prop="year" rules="required"> + <el-input v-model="dataForm.year"></el-input> + </zt-form-item> + </el-form> + </zt-dialog> +</template> + +<script> + export default { + data() { + return { + dataForm: { + id: '', + projectId: '', + code: '', + softwareidentity: '', + softwarename: '', + examiner: '', + examDate: '', + problemDescription: '', + problemProcess: '', + processor: '', + processorId: '', + processDate: '', + verifier: '', + verifierId: '', + verifyDate: '', + year: '' + } + } + }, + methods: { + // 鑾峰彇淇℃伅 + async getInfo() { + let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/${this.dataForm.id}`) + this.dataForm = { + ...this.dataForm, + ...res.data + } + }, + // 琛ㄥ崟鎻愪氦 + async formSubmit() { + let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm) + if (res.success) { + await this.$tip.success() + this.$refs.dialog.close() + this.$emit('refreshDataList') + } + } + } + } +</script> diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue new file mode 100644 index 0000000..6356569 --- /dev/null +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue @@ -0,0 +1,58 @@ +<template> + <el-card shadow="never" class="aui-card--fill"> + <div class="mod-testCheckOrder-testCheckOrder}"> + <zt-table-wraper query-url="/testCheckOrder/TestCheckOrder/page" delete-url="/testCheckOrder/TestCheckOrder" 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-form-item> + <el-form-item> + <zt-button type="query" @click="table.query()"/> + <zt-button type="add" perm="testCheckOrder:add" @click="table.editHandle()"/> + <zt-button type="delete" perm="testCheckOrder: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 type="selection" width="40"/> + <el-table-column prop="code" label="缂栧彿"/> + <el-table-column prop="softwareIdentity" label="椤圭洰鏍囪瘑"/> + <el-table-column prop="softwareName" label="椤圭洰鍚嶇О"/> + <zt-table-column-handle :table="table" edit-perm="testCheckOrder:update" delete-perm="testCheckOrder::delete"/> + </el-table> + <!-- 寮圭獥, 鏂板 / 淇敼 --> + <add-or-update @refreshDataList="table.query"/> + </zt-table-wraper> + </div> + </el-card> +</template> + +<script> + import AddOrUpdate from './TestCheckOrder-AddOrUpdate' + export default { + props: { + pageCode: { + type: String, + default: '' + }, + pageRead: { + type: String, + default: 'yes' + } + }, + data() { + return { + dataForm: { + code: '', + softwareidentity: '', + softwarename: '', + } + } + }, + components: { + AddOrUpdate + } + } +</script> diff --git a/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue new file mode 100644 index 0000000..c9fb553 --- /dev/null +++ b/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue @@ -0,0 +1,22 @@ +<template> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> +</template> + +<script> + import TestCheckOrder from './TestCheckOrder' + + export default { + data() { + return { + pageCode: 'explain', + pageRead: 'no' + } + }, + components: { + TestCheckOrder, + }, + mounted() { + }, + methods: {} + } +</script> diff --git a/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue new file mode 100644 index 0000000..d013e21 --- /dev/null +++ b/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue @@ -0,0 +1,22 @@ +<template> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> +</template> + +<script> + import TestCheckOrder from './TestCheckOrder' + + export default { + data() { + return { + pageCode: 'plan', + pageRead: 'no' + } + }, + components: { + TestCheckOrder, + }, + mounted() { + }, + methods: {} + } +</script> diff --git a/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue new file mode 100644 index 0000000..33991db --- /dev/null +++ b/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue @@ -0,0 +1,22 @@ +<template> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> +</template> + +<script> + import TestCheckOrder from './TestCheckOrder' + + export default { + data() { + return { + pageCode: 'record', + pageRead: 'no' + } + }, + components: { + TestCheckOrder, + }, + mounted() { + }, + methods: {} + } +</script> diff --git a/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue new file mode 100644 index 0000000..6fdf44b --- /dev/null +++ b/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue @@ -0,0 +1,22 @@ +<template> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> +</template> + +<script> + import TestCheckOrder from './TestCheckOrder' + + export default { + data() { + return { + pageCode: 'report', + pageRead: 'no' + } + }, + components: { + TestCheckOrder, + }, + mounted() { + }, + methods: {} + } +</script> diff --git a/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java b/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java index 2f4e694..c9188c3 100644 --- a/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java +++ b/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java @@ -103,17 +103,7 @@ @ApiOperation("淇℃伅") @RequiresPermissions("sys:user:info") public Result<SysUser> get(@PathVariable("id") Long id) { - SysUser data = sysUserService.get(id); - if (data != null) { - OssDto ossDto= sysOssConfigService.getOssByBusiType(data.getId() , "users_avatar"); - if (ossDto != null) { - data.setFiles(ossDto); - } - OssDto ossDto2= sysOssConfigService.getOssByBusiType(data.getId() , "users_sign"); - if (ossDto2 != null) { - data.setFiles2(ossDto2); - } - } + SysUser data = sysUserService.getUserInfo(id); // 鐢ㄦ埛宀椾綅鍒楄〃 data.setPostIdList(sysPostUserService.getUserPosts(id).stream().map(post -> post.getId()) .collect(Collectors.toList())); diff --git a/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java b/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java index ff1fe8d..1248eea 100644 --- a/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java +++ b/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java @@ -334,4 +334,19 @@ public List<SysUser> getUsersList() { return baseDao.getUsersList(); } + + public SysUser getUserInfo(Long id) { + SysUser data = super.get(id); + if (data != null) { + OssDto ossDto= sysOssConfigService.getOssByBusiType(data.getId() , "users_avatar"); + if (ossDto != null) { + data.setFiles(ossDto); + } + OssDto ossDto2= sysOssConfigService.getOssByBusiType(data.getId() , "users_sign"); + if (ossDto2 != null) { + data.setFiles2(ossDto2); + } + } + return data; + } } diff --git a/zt/core/src/main/resources/mapper/sys/SysPostDao.xml b/zt/core/src/main/resources/mapper/sys/SysPostDao.xml index a81d30b..138c798 100644 --- a/zt/core/src/main/resources/mapper/sys/SysPostDao.xml +++ b/zt/core/src/main/resources/mapper/sys/SysPostDao.xml @@ -4,7 +4,7 @@ <mapper namespace="com.zt.modules.sys.dao.SysPostDao"> <select id="getList" resultType="com.zt.modules.sys.model.SysPost"> - select a.* ,(select t2.dept_name from SYS_DEPT t2 where t2.dept_id=a.dept_id) deptName + select a.* ,(select t2.name from SYS_DEPT t2 where t2.id=a.dept_id) deptName from SYS_POST a where a.is_delete = 0 <if test="name != null"> diff --git a/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml b/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml index 286d427..1498aa1 100644 --- a/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml +++ b/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml @@ -4,8 +4,8 @@ <mapper namespace="com.zt.modules.sys.dao.SysTenantDao"> <select id="getList" resultType="com.zt.modules.sys.model.SysTenant"> - select a.*, u.phonenumber adminMobile, u.nick_name adminRealName - from SYS_TENANT a left join SYS_USER u on a.admin_user_id = u.user_id + select a.*, u.MOBILE adminMobile, u.real_name adminRealName + from SYS_TENANT a left join SYS_USER u on a.admin_user_id = u.id where a.is_delete = 0 <if test="code != null"> and a.code like #{code} -- Gitblit v1.9.1