From b14ba88936db357c8394f0826212caf54a8edd8c Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期四, 17 七月 2025 16:44:50 +0800 Subject: [PATCH] art: 技术状态鉴定申请-接口添加 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationApplication.java | 46 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationApplicationMapper.java | 16 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationQuery.java | 24 + lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java | 1 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java | 2 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationApplicationController.java | 248 +++++++------- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationApplicationServiceImpl.java | 402 ++++++++++++++++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationApplicationService.java | 39 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java | 2 db/430设备管理数据库设计.pdma.json | 76 ++++ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java | 6 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationApplicationMapper.xml | 7 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationRequest.java | 48 +++ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationApplicationStatusEnum.java | 22 + 14 files changed, 799 insertions(+), 140 deletions(-) diff --git "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" index 0977d73..408cff4 100644 --- "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" +++ "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" @@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", - "updatedTime": "2025-7-16 17:21:35", + "updatedTime": "2025-7-17 15:28:19", "dbConns": [], "profile": { "default": { @@ -30579,6 +30579,24 @@ "id": "054483BD-F2AA-4DD4-9A80-704EE7CDB735" }, { + "defKey": "equipment_id", + "defName": "璁惧ID", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "id": "725DECE8-22D5-4ABF-9EF1-08F2ABA68507" + }, + { "defKey": "applicant", "defName": "鐢宠浜�", "comment": "", @@ -30727,6 +30745,24 @@ "id": "69D24654-9C0B-41E5-BACA-8205ADC593B5" }, { + "defKey": "depart_header_signature_result", + "defName": "鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧缁撴灉", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "12E6E83C-632B-4282-B140-0A3ADA001810" + }, + { "defKey": "depart_header_comment", "defName": "鐢宠鍗曚綅瀹ょ骇棰嗗鎰忚", "comment": "", @@ -30764,7 +30800,7 @@ }, { "defKey": "production_header_signature_time", - "defName": "鐢熶骇璁惧绠$悊涓荤绛惧瓧鍥涗欢", + "defName": "鐢熶骇璁惧绠$悊涓荤绛惧瓧鏃堕棿", "comment": "", "type": "", "len": "", @@ -30779,6 +30815,24 @@ "extProps": {}, "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", "id": "211441D2-7629-4881-8140-77EBB38A346E" + }, + { + "defKey": "production_header_signature_result", + "defName": "鐢熶骇璁惧绠$悊涓荤绛惧瓧缁撴灉", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "75B946F2-25CB-4A20-9ABF-CE46C4F8F22E" }, { "defKey": "production_header_comment", @@ -30835,6 +30889,24 @@ "id": "235E86E2-B79D-456A-AFA0-0402225859F7" }, { + "defKey": "production_support_signature_result", + "defName": "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楃粨鏋�", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "E0246F70-42C2-4A36-8594-1A001E5CDB91" + }, + { "defKey": "production_support_comment", "defName": "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�", "comment": "", diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java index 63ca798..7c792bc 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java @@ -32,9 +32,11 @@ //鎶�鏈姸鎬侀壌瀹氬伐鍗曠紪鐮佽鍒� String TECHNICAL_STATUS_EVALUATION_ORDER_CODE_RULE = "TechnicalStatusEvaluationOrderCodeRule"; //鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇寸紪鐮佽鍒� - String TECHNICAL_STATUS_EVALUATION_ORDER_CHANG_CODE_RULE = "TechnicalStatusEvaluationOrderChangeCodeRule"; + String TECHNICAL_STATUS_EVALUATION_ORDER_CHANGE_CODE_RULE = "TechnicalStatusEvaluationOrderChangeCodeRule"; //鎶�鏈姸鎬佸彉鏇寸紪鐮佽鍒� - String TECHNICAL_STATUS_CHANG_CODE_RULE = "TechnicalStatusChangeCodeRule"; + String TECHNICAL_STATUS_CHANGE_CODE_RULE = "TechnicalStatusChangeCodeRule"; + //鎶�鏈姸鎬佸彉鏇寸紪鐮佽鍒� + String TECHNICAL_STATUS_EVALUATION_APPLY_CODE_RULE = "TechnicalStatusEvaluationApplyCodeRule"; /** * 澶囦欢璇疯喘鍗曠姸鎬� 1:宸插垱寤� 2:宸叉彁浜� 3:宸查�氳繃 4:宸查┏鍥� 5:宸插畬鎴� */ diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java index 8d3aa48..f0b00e2 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java @@ -11,5 +11,6 @@ TECHNICAL_STATUS_EVALUATION_PRECISION_CHECK, //璁惧绮惧害妫�鏌ュ崟 TECHNICAL_STATUS_EVALUATION_ORDER_CHANGE, //鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇� TECHNICAL_STATUS_CHANGE, //鎶�鏈姸鎬佸彉鏇寸敵璇� + TECHNICAL_STATUS_EVALUATION_APPLY, //鎶�鏈姸鎬侀壌瀹氱敵璇� ; } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationApplicationStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationApplicationStatusEnum.java new file mode 100644 index 0000000..99ad445 --- /dev/null +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationApplicationStatusEnum.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.eam.constant; + +public enum TechnicalStatusEvaluationApplicationStatusEnum { + WAIT_SUBMIT, //寰呮彁浜� + DEPART_HEADER_SIGNING, //鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧涓� + PRODUCTION_HEADER_SIGNING, //鐢熶骇璁惧绠$悊涓荤绛惧瓧 + PRODUCTION_SUPPORT_SIGNING, //鐢熶骇淇濋殰閮ㄩ瀵肩瀛� + ABOLISH, //宸蹭綔搴� + REJECTED, //宸查┏鍥� + COMPLETED, //宸插畬鎴� + ; + + public static TechnicalStatusEvaluationApplicationStatusEnum getInstance(String code) { + TechnicalStatusEvaluationApplicationStatusEnum[] values = TechnicalStatusEvaluationApplicationStatusEnum.values(); + for (TechnicalStatusEvaluationApplicationStatusEnum value : values) { + if (value.name().equals(code)) { + return value; + } + } + return null; + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationApplicationController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationApplicationController.java index 7315c8a..f402727 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationApplicationController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationApplicationController.java @@ -1,6 +1,6 @@ package org.jeecg.modules.eam.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; @@ -9,143 +9,147 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; -import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationApplicationStatusEnum; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationApplication; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationApplicationQuery; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationApplicationRequest; import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationApplicationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Arrays; - /** +/** * @Description: 鍔犲伐璁惧鎶�鏈壌瀹氱敵璇� * @Author: jeecg-boot - * @Date: 2025-07-09 + * @Date: 2025-07-09 * @Version: V1.0 */ @Slf4j -@Api(tags="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�") +@Api(tags = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�") @RestController @RequestMapping("/eam/eamTechnicalStatusEvaluationApplication") public class EamTechnicalStatusEvaluationApplicationController extends JeecgController<EamTechnicalStatusEvaluationApplication, IEamTechnicalStatusEvaluationApplicationService> { - @Autowired - private IEamTechnicalStatusEvaluationApplicationService eamTechnicalStatusEvaluationApplicationService; - - /** - * 鍒嗛〉鍒楄〃鏌ヨ - * - * @param eamTechnicalStatusEvaluationApplication - * @param pageNo - * @param pageSize - * @param req - * @return - */ - @ApiOperation(value="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鍒嗛〉鍒楄〃鏌ヨ", notes="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鍒嗛〉鍒楄〃鏌ヨ") - @GetMapping(value = "/list") - public Result<?> queryPageList(EamTechnicalStatusEvaluationApplication eamTechnicalStatusEvaluationApplication, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper<EamTechnicalStatusEvaluationApplication> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusEvaluationApplication, req.getParameterMap()); - Page<EamTechnicalStatusEvaluationApplication> page = new Page<EamTechnicalStatusEvaluationApplication>(pageNo, pageSize); - IPage<EamTechnicalStatusEvaluationApplication> pageList = eamTechnicalStatusEvaluationApplicationService.page(page, queryWrapper); - return Result.OK(pageList); - } - - /** - * 娣诲姞 - * - * @param eamTechnicalStatusEvaluationApplication - * @return - */ - @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-娣诲姞") - @ApiOperation(value="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-娣诲姞", notes="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-娣诲姞") - @PostMapping(value = "/add") - public Result<?> add(@RequestBody EamTechnicalStatusEvaluationApplication eamTechnicalStatusEvaluationApplication) { - eamTechnicalStatusEvaluationApplicationService.save(eamTechnicalStatusEvaluationApplication); - return Result.OK("娣诲姞鎴愬姛锛�"); - } - - /** - * 缂栬緫 - * - * @param eamTechnicalStatusEvaluationApplication - * @return - */ - @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-缂栬緫") - @ApiOperation(value="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-缂栬緫", notes="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-缂栬緫") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationApplication eamTechnicalStatusEvaluationApplication) { - eamTechnicalStatusEvaluationApplicationService.updateById(eamTechnicalStatusEvaluationApplication); - return Result.OK("缂栬緫鎴愬姛!"); - } - - /** - * 閫氳繃id鍒犻櫎 - * - * @param id - * @return - */ - @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鍒犻櫎") - @ApiOperation(value="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鍒犻櫎", notes="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鍒犻櫎") - @DeleteMapping(value = "/delete") - public Result<?> delete(@RequestParam(name="id",required=true) String id) { - eamTechnicalStatusEvaluationApplicationService.removeById(id); - return Result.OK("鍒犻櫎鎴愬姛!"); - } - - /** - * 鎵归噺鍒犻櫎 - * - * @param ids - * @return - */ - @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鎵归噺鍒犻櫎") - @ApiOperation(value="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鎵归噺鍒犻櫎", notes="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鎵归噺鍒犻櫎") - @DeleteMapping(value = "/deleteBatch") - public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.eamTechnicalStatusEvaluationApplicationService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); - } - - /** - * 閫氳繃id鏌ヨ - * - * @param id - * @return - */ - @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鏌ヨ") - @ApiOperation(value="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鏌ヨ", notes="鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鏌ヨ") - @GetMapping(value = "/queryById") - public Result<?> queryById(@RequestParam(name="id",required=true) String id) { - EamTechnicalStatusEvaluationApplication eamTechnicalStatusEvaluationApplication = eamTechnicalStatusEvaluationApplicationService.getById(id); - return Result.OK(eamTechnicalStatusEvaluationApplication); - } + @Autowired + private IEamTechnicalStatusEvaluationApplicationService eamTechnicalStatusEvaluationApplicationService; - /** - * 瀵煎嚭excel - * - * @param request - * @param eamTechnicalStatusEvaluationApplication - */ - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusEvaluationApplication eamTechnicalStatusEvaluationApplication) { - return super.exportXls(request, eamTechnicalStatusEvaluationApplication, EamTechnicalStatusEvaluationApplication.class, "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�"); - } + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param query + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鍒嗛〉鍒楄〃鏌ヨ", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamTechnicalStatusEvaluationApplicationQuery query, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + Page<EamTechnicalStatusEvaluationApplication> page = new Page<EamTechnicalStatusEvaluationApplication>(pageNo, pageSize); + IPage<EamTechnicalStatusEvaluationApplication> pageList = eamTechnicalStatusEvaluationApplicationService.queryPageList(page, query); + return Result.OK(pageList); + } - /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, EamTechnicalStatusEvaluationApplication.class); - } + /** + * 娣诲姞 + * + * @param request + * @return + */ + @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-娣诲姞") + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-娣诲姞", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamTechnicalStatusEvaluationApplication request) { + if (request == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + boolean b = eamTechnicalStatusEvaluationApplicationService.addEamTechnicalStatusEvaluationApplication(request); + if (!b) { + return Result.error("娣诲姞澶辫触锛�"); + } + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param request + * @return + */ + @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-缂栬緫") + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-缂栬緫", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationApplication request) { + if (request == null) { + return Result.error("缂栬緫鐨勫璞′笉鑳戒负绌猴紒"); + } + boolean b = eamTechnicalStatusEvaluationApplicationService.editEamTechnicalStatusEvaluationApplication(request); + if (!b) { + return Result.error("缂栬緫澶辫触锛�"); + } + return Result.OK("缂栬緫鎴愬姛!"); + } + + @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鎻愪氦") + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鎻愪氦", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-鎻愪氦") + @GetMapping("/submit") + public Result<?> submit(@RequestParam(name = "id") String id) { + boolean b = eamTechnicalStatusEvaluationApplicationService.submit(id); + if (!b) { + return Result.error("鎻愪氦澶辫触锛�"); + } + return Result.OK("鎻愪氦鎴愬姛!"); + } + + @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-浣滃簾") + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-浣滃簾", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-浣滃簾") + @GetMapping("/abolish") + public Result<?> abolish(@RequestParam(name = "id") String id) { + EamTechnicalStatusEvaluationApplication entity = eamTechnicalStatusEvaluationApplicationService.getById(id); + if (entity == null) { + return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if (!TechnicalStatusEvaluationApplicationStatusEnum.WAIT_SUBMIT.name().equals(entity.getApplicationStatus())) { + return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒"); + } + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.ABOLISH.name()); + eamTechnicalStatusEvaluationApplicationService.updateById(entity); + return Result.OK("浣滃簾鎴愬姛!"); + } + + @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-瀹℃壒") + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-瀹℃壒", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-瀹℃壒") + @PostMapping("/approval") + public Result<?> approval(@RequestBody EamTechnicalStatusEvaluationApplicationRequest request) { + if (request == null) { + return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒"); + } + // 妫�鏌ヨ姹傚弬鏁� + if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) { + return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�"); + } + EamTechnicalStatusEvaluationApplication b = eamTechnicalStatusEvaluationApplicationService.approval(request); + if (b == null) { + return Result.error("鎿嶄綔澶辫触锛�"); + } + return Result.ok("鎿嶄綔鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @AutoLog(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鏌ヨ") + @ApiOperation(value = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鏌ヨ", notes = "鍔犲伐璁惧鎶�鏈壌瀹氱敵璇�-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamTechnicalStatusEvaluationApplication eamTechnicalStatusEvaluationApplication = eamTechnicalStatusEvaluationApplicationService.getById(id); + return Result.OK(eamTechnicalStatusEvaluationApplication); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationApplication.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationApplication.java index d0f9f8d..2b1a32a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationApplication.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationApplication.java @@ -1,13 +1,17 @@ package org.jeecg.modules.eam.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -46,46 +50,84 @@ /**鐢宠鍗曞彿*/ @ApiModelProperty(value = "鐢宠鍗曞彿") private String applicationOrderNum; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; /**鐢宠浜�*/ @ApiModelProperty(value = "鐢宠浜�") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String applicant; /**鐢宠閮ㄩ棬*/ @ApiModelProperty(value = "鐢宠閮ㄩ棬") + @Dict(dictTable = "eam_base_factory", dicText = "factory_name", dicCode = "org_code") private String factoryOrgCode; /**鐢宠鏃ユ湡*/ @ApiModelProperty(value = "鐢宠鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date applyDate; /**鐢宠鍗曠姸鎬�;寰呮彁浜ゃ�佸緟鍗曚綅瀹ょ骇棰嗗瀹℃牳銆佺敓浜ц澶囩鐞嗕富绠″鏍搞�佸緟淇濋殰閮ㄩ瀵煎鏍搞�佸凡浣滃簾銆佸凡瀹屾垚*/ @ApiModelProperty(value = "鐢宠鍗曠姸鎬�;寰呮彁浜ゃ�佸緟鍗曚綅瀹ょ骇棰嗗瀹℃牳銆佺敓浜ц澶囩鐞嗕富绠″鏍搞�佸緟淇濋殰閮ㄩ瀵煎鏍搞�佸凡浣滃簾銆佸凡瀹屾垚") private String applicationStatus; /**鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧*/ @ApiModelProperty(value = "鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String departHeaderSignature; /**鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧鏃堕棿*/ @ApiModelProperty(value = "鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date departHeaderSignatureTime; + /**鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧缁撴灉") + @Dict(dicCode = "approved_rejected") + private String departHeaderSignatureResult; /**鐢宠鍗曚綅瀹ょ骇棰嗗鎰忚*/ @ApiModelProperty(value = "鐢宠鍗曚綅瀹ょ骇棰嗗鎰忚") private String departHeaderComment; /**鐢熶骇璁惧绠$悊涓荤绛惧瓧*/ @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤绛惧瓧") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String productionHeaderSignature; - /**鐢熶骇璁惧绠$悊涓荤绛惧瓧鍥涗欢*/ - @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤绛惧瓧鍥涗欢") + /**鐢熶骇璁惧绠$悊涓荤绛惧瓧鏃堕棿*/ + @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤绛惧瓧鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date productionHeaderSignatureTime; + /**鐢熶骇璁惧绠$悊涓荤绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤绛惧瓧缁撴灉") + @Dict(dicCode = "approved_rejected") + private String productionHeaderSignatureResult; /**鐢熶骇璁惧绠$悊涓荤鎰忚*/ @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤鎰忚") private String productionHeaderComment; /**鐢熶骇淇濋殰閮ㄩ瀵肩瀛�*/ @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛�") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String productionSupportSignature; /**鐢熶骇淇濋殰閮ㄩ瀵肩瀛楁椂闂�*/ @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楁椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date productionSupportSignatureTime; + /**鐢熶骇淇濋殰閮ㄩ瀵肩瀛楄В缁撴灉*/ + @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楄В缁撴灉") + @Dict(dicCode = "approved_rejected") + private String productionSupportSignatureResult; /**鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�*/ @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�") private String productionSupportComment; /**HF缂栫爜*/ @ApiModelProperty(value = "HF缂栫爜") private String hfCode; + /**澶囨敞*/ + @ApiModelProperty(value = "澶囨敞") + private String remark; + + @TableField(exist = false) + private String equipmentCode; + @TableField(exist = false) + private String equipmentName; + @TableField(exist = false) + private String equipmentModel; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationApplicationMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationApplicationMapper.java index 609faa6..1a8bd59 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationApplicationMapper.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationApplicationMapper.java @@ -1,10 +1,13 @@ package org.jeecg.modules.eam.mapper; -import java.util.List; - +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationApplication; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange; /** * @Description: 鍔犲伐璁惧鎶�鏈壌瀹氱敵璇� @@ -14,4 +17,11 @@ */ public interface EamTechnicalStatusEvaluationApplicationMapper extends BaseMapper<EamTechnicalStatusEvaluationApplication> { + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamTechnicalStatusEvaluationApplication> queryPageList(Page<EamTechnicalStatusEvaluationApplication> page, @Param(Constants.WRAPPER) QueryWrapper<EamTechnicalStatusEvaluationOrderChange> queryWrapper); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationApplicationMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationApplicationMapper.xml index f5516bf..5fe8968 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationApplicationMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationApplicationMapper.xml @@ -2,4 +2,11 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationApplicationMapper"> + <select id="queryPageList" + resultType="org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationApplication"> + select ems.*, e.equipment_code, e.equipment_name, e.equipment_model + from eam_technical_status_evaluation_application ems + inner join eam_equipment e on ems.equipment_id = e.id + ${ew.customSqlSegment} + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationQuery.java new file mode 100644 index 0000000..f02c524 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationQuery.java @@ -0,0 +1,24 @@ +package org.jeecg.modules.eam.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class EamTechnicalStatusEvaluationApplicationQuery { + private String applicationOrderNum; + private String equipmentId; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date dateBegin; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date dateEnd; + private String applicationStatus; + private String factoryOrgCode; + + private String column; + private String order; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationRequest.java new file mode 100644 index 0000000..52eb5fd --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationApplicationRequest.java @@ -0,0 +1,48 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; + +import java.io.Serializable; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="鎶�鏈姸鎬侀壌瀹氱敵璇峰鎵瑰璞�", description="鎶�鏈姸鎬侀壌瀹氱敵璇峰鎵�") +public class EamTechnicalStatusEvaluationApplicationRequest extends FlowTaskVo implements Serializable { + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**鐢宠閮ㄩ棬*/ + @ApiModelProperty(value = "鐢宠閮ㄩ棬") + private String factoryOrgCode; + /**澶囨敞*/ + @ApiModelProperty(value = "澶囨敞") + private String remark; + + /**鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "鐢宠鍗曚綅瀹ょ骇棰嗗绛惧瓧缁撴灉") + private String departHeaderSignatureResult; + /**鐢宠鍗曚綅瀹ょ骇棰嗗鎰忚*/ + @ApiModelProperty(value = "鐢宠鍗曚綅瀹ょ骇棰嗗鎰忚") + private String departHeaderComment; + /**鐢熶骇璁惧绠$悊涓荤绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤绛惧瓧缁撴灉") + private String productionHeaderSignatureResult; + /**鐢熶骇璁惧绠$悊涓荤鎰忚*/ + @ApiModelProperty(value = "鐢熶骇璁惧绠$悊涓荤鎰忚") + private String productionHeaderComment; + /**鐢熶骇淇濋殰閮ㄩ瀵肩瀛楄В缁撴灉*/ + @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楄В缁撴灉") + private String productionSupportSignatureResult; + /**鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�*/ + @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�") + private String productionSupportComment; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationApplicationService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationApplicationService.java index eafcee6..fec8fcd 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationApplicationService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationApplicationService.java @@ -1,7 +1,11 @@ package org.jeecg.modules.eam.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationApplication; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationApplicationQuery; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationApplicationRequest; /** * @Description: 鍔犲伐璁惧鎶�鏈壌瀹氱敵璇� @@ -11,4 +15,39 @@ */ public interface IEamTechnicalStatusEvaluationApplicationService extends IService<EamTechnicalStatusEvaluationApplication> { + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param query + * @return + */ + IPage<EamTechnicalStatusEvaluationApplication> queryPageList(Page<EamTechnicalStatusEvaluationApplication> page, EamTechnicalStatusEvaluationApplicationQuery query); + + /** + * 鏂板 + * @param request + * @return + */ + boolean addEamTechnicalStatusEvaluationApplication(EamTechnicalStatusEvaluationApplication request); + + /** + * 缂栬緫 + * @param request + * @return + */ + boolean editEamTechnicalStatusEvaluationApplication(EamTechnicalStatusEvaluationApplication request); + + /** + * 鎻愪氦 + * @param id + * @return + */ + boolean submit(String id); + + /** + * 瀹℃壒 + * @param request + * @return + */ + EamTechnicalStatusEvaluationApplication approval(EamTechnicalStatusEvaluationApplicationRequest request); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java index 1cc25da..2b5aac5 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java @@ -153,7 +153,7 @@ order.setRemark(request.getRemark()); order.setChangeStatus(TechnicalStatusChangeOrderStatusEnum.WAIT_SUBMIT.name()); order.setFactoryOrgCode(request.getFactoryOrgCode()); - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_CHANG_CODE_RULE); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_CHANGE_CODE_RULE); order.setChangeOrderNum(codeSeq); //鍒犻櫎鏍囪 order.setDelFlag(CommonConstant.DEL_FLAG_0); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationApplicationServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationApplicationServiceImpl.java index a33d873..c9c7b24 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationApplicationServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationApplicationServiceImpl.java @@ -1,11 +1,53 @@ package org.jeecg.modules.eam.service.impl; -import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationApplication; -import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationApplicationMapper; -import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationApplicationService; -import org.springframework.stereotype.Service; - +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum; +import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationApplicationStatusEnum; +import org.jeecg.modules.eam.entity.EamBaseHFCode; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationApplication; +import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange; +import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationApplicationMapper; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationApplicationQuery; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationApplicationRequest; +import org.jeecg.modules.eam.service.IEamBaseHFCodeService; +import org.jeecg.modules.eam.service.IEamEquipmentService; +import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationApplicationService; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; +import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.system.entity.BaseFactory; +import org.jeecg.modules.system.entity.BaseFactoryUser; +import org.jeecg.modules.system.service.IBaseFactoryService; +import org.jeecg.modules.system.service.IBaseFactoryUserService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.vo.UserSelector; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 鍔犲伐璁惧鎶�鏈壌瀹氱敵璇� @@ -13,7 +55,353 @@ * @Date: 2025-07-09 * @Version: V1.0 */ -@Service -public class EamTechnicalStatusEvaluationApplicationServiceImpl extends ServiceImpl<EamTechnicalStatusEvaluationApplicationMapper, EamTechnicalStatusEvaluationApplication> implements IEamTechnicalStatusEvaluationApplicationService { +@Service("IEamTechnicalStatusEvaluationApplicationService") +public class EamTechnicalStatusEvaluationApplicationServiceImpl extends ServiceImpl<EamTechnicalStatusEvaluationApplicationMapper, EamTechnicalStatusEvaluationApplication> implements IEamTechnicalStatusEvaluationApplicationService, FlowCallBackServiceI { + @Autowired + private IBaseFactoryUserService baseFactoryUserService; + @Autowired + private IBaseFactoryService baseFactoryService; + @Autowired + private IEamEquipmentService equipmentService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private IEamBaseHFCodeService hfCodeService; + @Autowired + private FlowCommonService flowCommonService; + @Autowired + private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private ISysUserService sysUserService; + @Override + public IPage<EamTechnicalStatusEvaluationApplication> queryPageList(Page<EamTechnicalStatusEvaluationApplication> page, EamTechnicalStatusEvaluationApplicationQuery query) { + QueryWrapper<EamTechnicalStatusEvaluationOrderChange> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ems.del_flag", CommonConstant.DEL_FLAG_0); + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + return page; + } + if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { + //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 + List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); + queryWrapper.in("e.equipment_code", equipArr); + } else { + //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� + List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService. + list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId())); + if (!CollectionUtils.isEmpty(baseFactoryUserList)) { + Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); + Set<String> factoryCodeList = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); + queryWrapper.in("e.factory_org_code", factoryCodeList); + } else { + return page; + } + } + if (query != null) { + //缂栫爜 妯$硦鏌ヨ + if (StringUtils.isNotBlank(query.getApplicationOrderNum())) { + queryWrapper.like("ems.application_order_num", query.getApplicationOrderNum()); + } + //璁惧 + if (StringUtils.isNotBlank(query.getEquipmentId())) { + queryWrapper.eq("ems.equipment_id", query.getEquipmentId()); + } + //浣跨敤鍗曚綅 + if(StringUtils.isNotBlank(query.getFactoryOrgCode())) { + queryWrapper.eq("ems.factory_org_code", query.getFactoryOrgCode()); + } + //淇濆吇鍒嗙被 + if (StringUtils.isNotBlank(query.getApplicationStatus())) { + queryWrapper.eq("ems.application_status", query.getApplicationStatus()); + } + if (query.getDateBegin() != null && query.getDateEnd() != null) { + queryWrapper.between("ems.apply_date", query.getDateBegin(), query.getDateEnd()); + } + //鎺掑簭 + if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) { + String column = query.getColumn(); + if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { + column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); + } + if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) { + queryWrapper.orderByAsc("ems." + oConvertUtils.camelToUnderline(column)); + } else { + queryWrapper.orderByDesc("ems." + oConvertUtils.camelToUnderline(column)); + } + } else { + queryWrapper.orderByDesc("ems.create_time"); + } + } else { + queryWrapper.orderByDesc("ems.create_time"); + } + return this.getBaseMapper().queryPageList(page, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addEamTechnicalStatusEvaluationApplication(EamTechnicalStatusEvaluationApplication request) { + //鏌ヨ璁惧 + EamEquipment equipment = equipmentService.getById(request.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧淇℃伅涓嶅瓨鍦紝鎿嶄綔澶辫触锛�"); + } + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + throw new JeecgBootException("鐧诲綍鐢ㄦ埛淇℃伅涓虹┖锛屾搷浣滃け璐ワ紒"); + } + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_APPLY_CODE_RULE); + request.setApplicationOrderNum(codeSeq); + request.setId(null); + request.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.WAIT_SUBMIT.name()); + request.setDelFlag(CommonConstant.DEL_FLAG_0); + request.setApplicant(sysUser.getUsername()); + request.setApplyDate(new Date()); + request.setFactoryOrgCode(equipment.getFactoryOrgCode()); + //鎶�鏈姸鎬侀壌瀹氳〃 + EamBaseHFCode eamBaseHFCode = hfCodeService.selectByCategory(HfTemplateCategoryEnum.TECHNICAL_STATUS_EVALUATION_APPLY.name()); + if (eamBaseHFCode == null) { + throw new JeecgBootException("鏈厤缃妧鏈姸鎬侀壌瀹氱敵璇风殑HF缂栫爜锛屾坊鍔犲け璐ワ紒"); + } + request.setHfCode(eamBaseHFCode.getHfCode()); + this.getBaseMapper().insert(request); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editEamTechnicalStatusEvaluationApplication(EamTechnicalStatusEvaluationApplication request) { + EamTechnicalStatusEvaluationApplication entity = this.getBaseMapper().selectById(request.getId()); + if(entity == null) { + throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + if(!TechnicalStatusEvaluationApplicationStatusEnum.WAIT_SUBMIT.name().equals(entity.getApplicationStatus())) { + throw new JeecgBootException("鍙湁寰呮彁浜ょ姸鎬佹墠鍙紪杈戯紒"); + } + entity.setRemark(request.getRemark()); + this.getBaseMapper().updateById(entity); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submit(String id) { + EamTechnicalStatusEvaluationApplication entity = this.getBaseMapper().selectById(id); + if (entity == null) { + throw new JeecgBootException("瑕佹彁浜ょ殑宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if (!TechnicalStatusEvaluationApplicationStatusEnum.WAIT_SUBMIT.name().equals(entity.getApplicationStatus())) { + throw new JeecgBootException("璇ュ伐鍗曞凡杩涜杩囨彁浜わ紒"); + } + EamEquipment equipment = equipmentService.getById(entity.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(sysUser == null || !sysUser.getUsername().equals(entity.getApplicant())) { + throw new JeecgBootException("涓嶆槸鏈汉锛屼笉鑳芥彁浜ゆ宸ュ崟锛�"); + } + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.DEPART_HEADER_SIGNING.name()); + //鏌ヨ涓嬬骇瀹℃壒浜哄憳 + List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0011); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰浣跨敤鍗曚綅涓荤瀹ょ骇棰嗗锛屾棤娉曟彁浜わ紒"); + } + List<String> userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + //鏇存柊瀹炰綋 + this.getBaseMapper().updateById(entity); + //鍚姩娴佺▼ + flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getApplicationOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(), + entity.getId(), "IEamTechnicalStatusEvaluationApplicationService", "technical_status_evaluation_apply_process", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", entity.getId()); + if (StrUtil.isEmpty(entity.getRemark())) { + variables.put("organization", "鏂板鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮粯璁ゅ惎鍔ㄦ祦绋�"); + variables.put("comment", "鏂板鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮粯璁ゅ惎鍔ㄦ祦绋�"); + } else { + variables.put("organization", entity.getRemark()); + variables.put("comment", entity.getRemark()); + } + variables.put("proofreading", true); + variables.put("NextAssignee", userApprovalList); + Result<?> result = flowDefinitionService.startProcessInstanceByKey("technical_status_evaluation_apply_process", variables); + if(result == null || !result.isSuccess()) { + throw new JeecgBootException("鍚姩娴佺▼澶辫触锛�"); + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public EamTechnicalStatusEvaluationApplication approval(EamTechnicalStatusEvaluationApplicationRequest request) { + EamTechnicalStatusEvaluationApplication entity = this.getBaseMapper().selectById(request.getId()); + if (entity == null) { + throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒"); + } + request.setAssignee(user.getUsername()); + // 鑾峰彇娴佺▼涓氬姟璁板綍 + FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId()); + if (flowMyBusiness == null) { + throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + + boolean userAuthorized = flowMyBusinessService.isUserAuthorized(flowMyBusiness, user); + if (!userAuthorized) { + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + // 璁ら浠诲姟 + if (!flowMyBusinessService.claimTask(flowMyBusiness.getTaskId(), user)) { + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒"); + } + + EamEquipment equipment = equipmentService.getById(entity.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); + } + + TechnicalStatusEvaluationApplicationStatusEnum status = TechnicalStatusEvaluationApplicationStatusEnum.getInstance(entity.getApplicationStatus()); + if (status == null) { + return null; + } + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + List<String> userApprovalList; + List<UserSelector> userSelectors; + switch (status) { + case DEPART_HEADER_SIGNING: + //浣跨敤鍗曚綅涓荤瀹ょ骇棰嗗 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0006); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐢熶骇璁惧绠$悊涓荤锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getDepartHeaderComment())) { + values.put("organization", "鎶�鏈姸鎬侀壌瀹氱敵璇蜂娇鐢ㄥ崟浣嶄富绠″绾ч瀵�"); + values.put("comment", "鎶�鏈姸鎬侀壌瀹氱敵璇蜂娇鐢ㄥ崟浣嶄富绠″绾ч瀵�"); + request.setComment("鎶�鏈姸鎬侀壌瀹氱敵璇蜂娇鐢ㄥ崟浣嶄富绠″绾ч瀵�"); + } else { + values.put("organization", request.getDepartHeaderComment()); + values.put("comment", request.getDepartHeaderComment()); + request.setComment(request.getDepartHeaderComment()); + } + //璁剧疆entity + entity.setDepartHeaderSignature(user.getUsername()); + entity.setDepartHeaderSignatureTime(new Date()); + entity.setDepartHeaderComment(request.getDepartHeaderComment()); + entity.setDepartHeaderSignatureResult(request.getDepartHeaderSignatureResult()); + values.put("departHeaderConfirmFlag", request.getDepartHeaderSignatureResult()); + if(BusinessCodeConst.APPROVED.equals(request.getDepartHeaderSignatureResult())) { + //閫氳繃 + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.PRODUCTION_HEADER_SIGNING.name()); + values.put("NextAssignee", userApprovalList); + }else { + //椹冲洖 + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.REJECTED.name()); + } + break; + case PRODUCTION_HEADER_SIGNING: + //閮ㄩ棬棰嗗瀹℃牳 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0017); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐢熶骇淇濋殰閮ㄩ瀵硷紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getProductionHeaderComment())) { + values.put("organization", "鎶�鏈姸鎬侀壌瀹氱敵璇风敓浜ц澶囩鐞嗕富绠″鏍�"); + values.put("comment", "鎶�鏈姸鎬侀壌瀹氱敵璇风敓浜ц澶囩鐞嗕富绠″鏍�"); + request.setComment("鎶�鏈姸鎬侀壌瀹氱敵璇风敓浜ц澶囩鐞嗕富绠″鏍�"); + } else { + values.put("organization", request.getProductionHeaderComment()); + values.put("comment", request.getProductionHeaderComment()); + request.setComment(request.getProductionHeaderComment()); + } + //璁剧疆entity + entity.setProductionHeaderSignature(user.getUsername()); + entity.setProductionHeaderSignatureTime(new Date()); + entity.setProductionHeaderSignatureResult(request.getProductionHeaderSignatureResult()); + entity.setProductionHeaderComment(request.getProductionHeaderComment()); + if(BusinessCodeConst.APPROVED.equals(request.getProductionHeaderSignatureResult())) { + //閫氳繃 + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.PRODUCTION_SUPPORT_SIGNING.name()); + values.put("NextAssignee", userApprovalList); + }else { + //椹冲洖 + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.REJECTED.name()); + } + break; + case PRODUCTION_SUPPORT_SIGNING: + //缁翠慨瀹や富浠荤瀛� + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getProductionSupportComment())) { + values.put("organization", "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇寸敓浜т繚闅滈儴瀹℃牳"); + values.put("comment", "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇寸敓浜т繚闅滈儴瀹℃牳"); + request.setComment("鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇寸敓浜т繚闅滈儴瀹℃牳"); + } else { + values.put("organization", request.getProductionSupportComment()); + values.put("comment", request.getProductionSupportComment()); + request.setComment(request.getProductionSupportComment()); + } + //璁剧疆entity + entity.setProductionSupportSignature(user.getUsername()); + entity.setProductionSupportSignatureTime(new Date()); + entity.setProductionSupportSignatureResult(request.getProductionSupportSignatureResult()); + entity.setProductionSupportComment(request.getProductionSupportComment()); + if(BusinessCodeConst.APPROVED.equals(request.getProductionSupportSignatureResult())) { + //閫氳繃 + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.COMPLETED.name()); + }else { + //椹冲洖 + entity.setApplicationStatus(TechnicalStatusEvaluationApplicationStatusEnum.REJECTED.name()); + } + break; + } + request.setValues(values); + + // 瀹屾垚娴佺▼浠诲姟 + Result<?> result = flowTaskService.complete(request); + if (!result.isSuccess()) { + throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�"); + } + //淇濆瓨宸ュ崟 + this.getBaseMapper().updateById(entity); + return entity; + } + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� + //鑾峰彇涓嬩竴姝ュ鐞嗕汉 + Object object = values.get("NextAssignee"); + return (List<String>) object; + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java index d6335d2..76de47e 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java @@ -163,7 +163,7 @@ if (sysUser == null) { throw new JeecgBootException("鐧诲綍鐢ㄦ埛淇℃伅涓虹┖锛屾搷浣滃け璐ワ紒"); } - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CHANG_CODE_RULE); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CHANGE_CODE_RULE); request.setChangeOrderNum(codeSeq); request.setId(null); request.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name()); -- Gitblit v1.9.3