From bccaf7e7d0b50ff9df3120c38193d77d60fe26eb Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 16 七月 2025 14:46:00 +0800 Subject: [PATCH] art: 技术状态鉴定工单变更-提交、作废,审批接口添加 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java | 271 ++++++++++++++++++++ db/430设备管理数据库设计.pdma.json | 76 +++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java | 17 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java | 35 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java | 307 +++++++++++++---------- lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java | 17 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderChangeRequest.java | 51 +++ 7 files changed, 636 insertions(+), 138 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 60db58d..d9919ac 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" @@ -2,9 +2,9 @@ "name": "430璁惧绠$悊鏁版嵁搴撹璁�", "describe": "鎻忚堪璁惧绠$悊鏁版嵁搴撹璁℃枃妗�", "avatar": "", - "version": "4.9.4", + "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", - "updatedTime": "2025-7-16 09:50:41", + "updatedTime": "2025-7-16 10:18:22", "dbConns": [], "profile": { "default": { @@ -29134,6 +29134,42 @@ "uiHint": null }, { + "defKey": "equipment_manager_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": "6F893E15-38C2-4B49-B9B1-8D693D0FCADE" + }, + { + "defKey": "equipment_manager_comment", + "defName": "涓荤棰嗗鎰忚", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "3D0D5A7E-D831-4DCF-8EE6-4929FC02BB81" + }, + { "defKey": "depart_manager_signature", "defName": "閮ㄩ棬棰嗗绛惧瓧", "comment": "鏍规嵁鍙樻洿鍘熷洜绫诲瀷鍖哄垎涓嶅悓鐨勪汉瀹℃壒", @@ -29170,6 +29206,24 @@ "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", "id": "6916268E-683D-4550-B7AB-8C89AD1A5E16", "uiHint": null + }, + { + "defKey": "depart_manager_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": "2FDCCD31-8269-4971-97A9-057021E4148D" }, { "defKey": "depart_manager_comment", @@ -29229,6 +29283,24 @@ "uiHint": null }, { + "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": "7D3E8B25-E8CF-4FF9-9028-705E27461D72" + }, + { "defKey": "production_support_comment", "defName": "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�", "comment": "", diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java index 623abf2..aa3b5cf 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java @@ -26,6 +26,23 @@ @Autowired private RedisTemplate redisTemplate; + public String translateField(String field, String value, String dictCode) { + if (StringUtils.isBlank(value)) { + return ""; + } + // 瀛楀吀鏁版嵁鍒楄〃锛� key = 瀛楀吀code锛寁alue=鏁版嵁鍒楄〃 + Map<String, List<String>> dataListMap = new HashMap<>(5); + dataListMap.put(dictCode, this.listAddAllDeduplicate(new ArrayList<>(), Arrays.asList(value.split(",")))); + //step.2 璋冪敤缈昏瘧鏂规硶锛屼竴娆℃�х炕璇� + Map<String, List<DictModel>> translText = this.translateAllDict(dataListMap); + //缈昏瘧 + List<DictModel> dictModels = translText.get(dictCode); + if (CollectionUtil.isEmpty(dictModels)) { + return ""; + } + return this.translDictText(dictModels, value); + } + public void translateField(String field, String value, JSONObject item, String dictCode) { if (StringUtils.isBlank(value)) { item.put(field + CommonConstant.DICT_TEXT_SUFFIX, null); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java index 2433a2a..b6ea5bb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java @@ -1,7 +1,6 @@ package org.jeecg.modules.eam.controller; -import cn.hutool.core.collection.CollectionUtil; -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; @@ -10,9 +9,10 @@ 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.TechnicalStatusEvaluationOrderChangeStatusEnum; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange; import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeQuery; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeRequest; import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderChangeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -22,143 +22,188 @@ 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/eamTechnicalStatusEvaluationOrderChange") public class EamTechnicalStatusEvaluationOrderChangeController extends JeecgController<EamTechnicalStatusEvaluationOrderChange, IEamTechnicalStatusEvaluationOrderChangeService> { - @Autowired - private IEamTechnicalStatusEvaluationOrderChangeService eamTechnicalStatusEvaluationOrderChangeService; - - /** - * 鍒嗛〉鍒楄〃鏌ヨ - * - * @param query - * @param pageNo - * @param pageSize - * @param req - * @return - */ - @ApiOperation(value="鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-鍒嗛〉鍒楄〃鏌ヨ", notes="鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-鍒嗛〉鍒楄〃鏌ヨ") - @GetMapping(value = "/list") - public Result<?> queryPageList(EamTechnicalStatusEvaluationOrderChangeQuery query, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - Page<EamTechnicalStatusEvaluationOrderChange> page = new Page<EamTechnicalStatusEvaluationOrderChange>(pageNo, pageSize); - IPage<EamTechnicalStatusEvaluationOrderChange> pageList = eamTechnicalStatusEvaluationOrderChangeService.queryPageList(page, query); - return Result.OK(pageList); - } - - /** - * 娣诲姞 - * - * @param request - * @return - */ - @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-娣诲姞") - @ApiOperation(value="鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-娣诲姞", notes="鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-娣诲姞") - @PostMapping(value = "/add") - public Result<?> add(@RequestBody EamTechnicalStatusEvaluationOrderChange request) { - if (request == null) { - return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); - } - boolean b = eamTechnicalStatusEvaluationOrderChangeService.addTechnicalStatusEvaluationOrderChange(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 EamTechnicalStatusEvaluationOrderChange request) { - if (request == null) { - return Result.error("缂栬緫鐨勫璞′笉鑳戒负绌猴紒"); - } - boolean b = eamTechnicalStatusEvaluationOrderChangeService.editTechnicalStatusEvaluationOrderChange(request); - if (!b) { - return Result.error("缂栬緫澶辫触锛�"); - } - 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) { - eamTechnicalStatusEvaluationOrderChangeService.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.eamTechnicalStatusEvaluationOrderChangeService.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) { - EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange = eamTechnicalStatusEvaluationOrderChangeService.getById(id); - return Result.OK(eamTechnicalStatusEvaluationOrderChange); - } + @Autowired + private IEamTechnicalStatusEvaluationOrderChangeService eamTechnicalStatusEvaluationOrderChangeService; - /** - * 瀵煎嚭excel - * - * @param request - * @param eamTechnicalStatusEvaluationOrderChange - */ - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange) { - return super.exportXls(request, eamTechnicalStatusEvaluationOrderChange, EamTechnicalStatusEvaluationOrderChange.class, "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�"); - } + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param query + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-鍒嗛〉鍒楄〃鏌ヨ", notes = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamTechnicalStatusEvaluationOrderChangeQuery query, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + Page<EamTechnicalStatusEvaluationOrderChange> page = new Page<EamTechnicalStatusEvaluationOrderChange>(pageNo, pageSize); + IPage<EamTechnicalStatusEvaluationOrderChange> pageList = eamTechnicalStatusEvaluationOrderChangeService.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, EamTechnicalStatusEvaluationOrderChange.class); - } + /** + * 娣诲姞 + * + * @param request + * @return + */ + @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-娣诲姞") + @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-娣诲姞", notes = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamTechnicalStatusEvaluationOrderChange request) { + if (request == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + boolean b = eamTechnicalStatusEvaluationOrderChangeService.addTechnicalStatusEvaluationOrderChange(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 EamTechnicalStatusEvaluationOrderChange request) { + if (request == null) { + return Result.error("缂栬緫鐨勫璞′笉鑳戒负绌猴紒"); + } + boolean b = eamTechnicalStatusEvaluationOrderChangeService.editTechnicalStatusEvaluationOrderChange(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 = eamTechnicalStatusEvaluationOrderChangeService.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) { + EamTechnicalStatusEvaluationOrderChange entity = eamTechnicalStatusEvaluationOrderChangeService.getById(id); + if (entity == null) { + return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) { + return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒"); + } + entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.ABOLISH.name()); + eamTechnicalStatusEvaluationOrderChangeService.updateById(entity); + return Result.OK("浣滃簾鎴愬姛!"); + } + + @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-瀹℃壒") + @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-瀹℃壒", notes = "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�-瀹℃壒") + @PostMapping("/approval") + public Result<?> approval(@RequestBody EamTechnicalStatusEvaluationOrderChangeRequest request) { + if (request == null) { + return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒"); + } + // 妫�鏌ヨ姹傚弬鏁� + if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) { + return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�"); + } + EamTechnicalStatusEvaluationOrderChange b = eamTechnicalStatusEvaluationOrderChangeService.approval(request); + if (b == null) { + return Result.error("鎿嶄綔澶辫触锛�"); + } + 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) { + eamTechnicalStatusEvaluationOrderChangeService.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.eamTechnicalStatusEvaluationOrderChangeService.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) { + EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange = eamTechnicalStatusEvaluationOrderChangeService.getById(id); + return Result.OK(eamTechnicalStatusEvaluationOrderChange); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamTechnicalStatusEvaluationOrderChange + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange) { + return super.exportXls(request, eamTechnicalStatusEvaluationOrderChange, EamTechnicalStatusEvaluationOrderChange.class, "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇�"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EamTechnicalStatusEvaluationOrderChange.class); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java index bc81f5d..7b416fd 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java @@ -4,11 +4,14 @@ 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; @@ -55,43 +58,75 @@ private String changeOrderNum; /**鐢宠浜�*/ @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 = "鍙樻洿鐘舵��;寰呮彁浜ゃ�佸緟涓荤瀹℃牳銆佸緟閮ㄩ棬纭銆佸緟淇濋殰閮ㄧ‘璁ゃ�佸凡浣滃簾銆佸凡瀹屾垚") + @Dict(dicCode = "technical_status_evaluation_order_change_status") private String changeStatus; /**鍙樻洿鍘熷洜;鐢熶骇浠诲姟鎬ユ棤娉曞仠鏈恒�佽澶囨晠闅滄澶勪簬缁翠慨鐘舵�併�佽澶囧凡鎶ュ簾銆佽澶囧ぇ淇�佹惉杩併�佹敼閫�*/ @ApiModelProperty(value = "鍙樻洿鍘熷洜;鐢熶骇浠诲姟鎬ユ棤娉曞仠鏈恒�佽澶囨晠闅滄澶勪簬缁翠慨鐘舵�併�佽澶囧凡鎶ュ簾銆佽澶囧ぇ淇�佹惉杩併�佹敼閫�") + @Dict(dicCode = "technical_status_evaluation_order_change_reason") private String applyReason; /**鍙樻洿閴村畾鏃ユ湡*/ @ApiModelProperty(value = "鍙樻洿閴村畾鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date deferredEvaluationDate; /**涓荤棰嗗绛惧瓧*/ @ApiModelProperty(value = "涓荤棰嗗绛惧瓧") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String equipmentManagerSignature; /**涓荤棰嗗绛惧瓧鏃堕棿*/ @ApiModelProperty(value = "涓荤棰嗗绛惧瓧鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date equipmentManagerSignatureTime; + /**涓荤棰嗗绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "涓荤棰嗗绛惧瓧缁撴灉") + @Dict(dicCode = "approved_rejected") + private String equipmentManagerSignatureResult; + /**涓荤棰嗗鎰忚*/ + @ApiModelProperty(value = "涓荤棰嗗鎰忚") + private String equipmentManagerComment; /**閮ㄩ棬棰嗗绛惧瓧;鏍规嵁鍙樻洿鍘熷洜绫诲瀷鍖哄垎涓嶅悓鐨勪汉瀹℃壒*/ @ApiModelProperty(value = "閮ㄩ棬棰嗗绛惧瓧;鏍规嵁鍙樻洿鍘熷洜绫诲瀷鍖哄垎涓嶅悓鐨勪汉瀹℃壒") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String departManagerSignature; /**閮ㄩ棬棰嗗绛惧瓧鏃堕棿*/ @ApiModelProperty(value = "閮ㄩ棬棰嗗绛惧瓧鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date departManagerSignatureTime; + /**閮ㄩ棬棰嗗绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "閮ㄩ棬棰嗗绛惧瓧缁撴灉") + @Dict(dicCode = "approved_rejected") + private String departManagerSignatureResult; /**閮ㄩ棬棰嗗鎰忚*/ @ApiModelProperty(value = "閮ㄩ棬棰嗗鎰忚") private String departManagerComment; /**鐢熶骇淇濋殰閮ㄩ瀵肩瀛�*/ @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; diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderChangeRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderChangeRequest.java new file mode 100644 index 0000000..37eb5d1 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderChangeRequest.java @@ -0,0 +1,51 @@ +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; +import java.util.Date; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇村鎵瑰璞�", description="鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇村鎵�") +public class EamTechnicalStatusEvaluationOrderChangeRequest extends FlowTaskVo implements Serializable { + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + /**宸ュ崟ID*/ + @ApiModelProperty(value = "宸ュ崟ID") + private String orderId; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**鍙樻洿鍘熷洜;鐢熶骇浠诲姟鎬ユ棤娉曞仠鏈恒�佽澶囨晠闅滄澶勪簬缁翠慨鐘舵�併�佽澶囧凡鎶ュ簾銆佽澶囧ぇ淇�佹惉杩併�佹敼閫�*/ + @ApiModelProperty(value = "鍙樻洿鍘熷洜;鐢熶骇浠诲姟鎬ユ棤娉曞仠鏈恒�佽澶囨晠闅滄澶勪簬缁翠慨鐘舵�併�佽澶囧凡鎶ュ簾銆佽澶囧ぇ淇�佹惉杩併�佹敼閫�") + private String applyReason; + /**鍙樻洿閴村畾鏃ユ湡*/ + @ApiModelProperty(value = "鍙樻洿閴村畾鏃ユ湡") + private Date deferredEvaluationDate; + /**涓荤棰嗗绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "涓荤棰嗗绛惧瓧缁撴灉") + private String equipmentManagerSignatureResult; + /**涓荤棰嗗鎰忚*/ + @ApiModelProperty(value = "涓荤棰嗗鎰忚") + private String equipmentManagerComment; + /**閮ㄩ棬棰嗗鎰忚*/ + @ApiModelProperty(value = "閮ㄩ棬棰嗗鎰忚") + private String departManagerComment; + /**閮ㄩ棬棰嗗绛惧瓧缁撴灉*/ + @ApiModelProperty(value = "閮ㄩ棬棰嗗绛惧瓧缁撴灉") + private String departManagerSignatureResult; + /**鐢熶骇淇濋殰閮ㄩ瀵肩瀛楃粨鏋�*/ + @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楃粨鏋�") + private String productionSupportSignatureResult; + /**鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�*/ + @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�") + private String productionSupportComment; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java index 8c5e3ee..d4c5383 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java @@ -2,9 +2,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange; import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeQuery; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeRequest; /** * @Description: 鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇� @@ -35,4 +36,18 @@ * @return */ boolean editTechnicalStatusEvaluationOrderChange(EamTechnicalStatusEvaluationOrderChange request); + + /** + * 鎻愪氦 寮�鍚祦绋嬪鎵� + * @param id + * @return + */ + boolean submit(String id); + + /** + * 瀹℃壒 + * @param request + * @return + */ + EamTechnicalStatusEvaluationOrderChange approval(EamTechnicalStatusEvaluationOrderChangeRequest request); } 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 e12b83f..b935a12 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 @@ -1,5 +1,7 @@ package org.jeecg.modules.eam.service.impl; +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; @@ -8,32 +10,39 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.flowable.engine.TaskService; +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.TranslateDictTextUtils; 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.TechnicalStatusEvaluationOrderChangeStatusEnum; -import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum; +import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.EamBaseHFCode; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder; import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange; import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationOrderChangeMapper; import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeQuery; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeRequest; import org.jeecg.modules.eam.service.IEamBaseHFCodeService; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderChangeService; import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService; 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; @@ -61,6 +70,21 @@ private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private IEamBaseHFCodeService hfCodeService; + @Autowired + private FlowCommonService flowCommonService; + @Autowired + private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Autowired + private TaskService taskService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private ISysUserService sysUserService; + @Override public IPage<EamTechnicalStatusEvaluationOrderChange> queryPageList(Page<EamTechnicalStatusEvaluationOrderChange> page, EamTechnicalStatusEvaluationOrderChangeQuery query) { @@ -181,6 +205,245 @@ } @Override + @Transactional(rollbackFor = Exception.class) + public boolean submit(String id) { + EamTechnicalStatusEvaluationOrderChange entity = this.getBaseMapper().selectById(id); + if (entity == null) { + throw new JeecgBootException("瑕佹彁浜ょ殑宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) { + throw new JeecgBootException("璇ュ伐鍗曞凡杩涜杩囨彁浜わ紒"); + } + EamTechnicalStatusEvaluationOrder order = evaluationOrderService.getById(entity.getOrderId()); + if(order == null) { + 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.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.EQUIPMENT_MANAGER_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.getChangeOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(), + entity.getId(), "IEamTechnicalStatusEvaluationOrderChangeService", "evaluation_order_change_process", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", entity.getId()); + String applyReasonText = translateDictTextUtils.translateField("applyReason", entity.getApplyReason(), "technical_status_evaluation_order_change_reason"); + if (StrUtil.isEmpty(applyReasonText)) { + variables.put("organization", "鏂板鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮粯璁ゅ惎鍔ㄦ祦绋�"); + variables.put("comment", "鏂板鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮粯璁ゅ惎鍔ㄦ祦绋�"); + } else { + variables.put("organization", applyReasonText); + variables.put("comment", applyReasonText); + } + variables.put("proofreading", true); + variables.put("NextAssignee", userApprovalList); + Result<?> result = flowDefinitionService.startProcessInstanceByKey("evaluation_order_change_process", variables); + if(result == null || !result.isSuccess()) { + throw new JeecgBootException("鍚姩娴佺▼澶辫触锛�"); + } + //鏇存柊宸ュ崟鐘舵�佷负鍙樻洿涓� + order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.CHANGING.name()); + boolean b = evaluationOrderService.updateById(order); + if(!b) { + throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氬伐鍗曠姸鎬佹洿鏂板け璐ワ紒"); + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public EamTechnicalStatusEvaluationOrderChange approval(EamTechnicalStatusEvaluationOrderChangeRequest request) { + EamTechnicalStatusEvaluationOrderChange entity = this.getBaseMapper().selectById(request.getId()); + if (entity == null) { + throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + EamTechnicalStatusEvaluationOrder order = evaluationOrderService.getById(entity.getOrderId()); + if(order == 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("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); + } + + TechnicalStatusEvaluationOrderChangeStatusEnum status = TechnicalStatusEvaluationOrderChangeStatusEnum.getInstance(entity.getChangeStatus()); + if (status == null) { + return null; + } + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + List<String> userApprovalList; + List<UserSelector> userSelectors; + switch (status) { + case EQUIPMENT_MANAGER_SIGNING: + //浣跨敤鍗曚綅涓荤瀹ょ骇棰嗗瀹℃牳 + if(TechnicalStatusEvaluationOrderChangeReasonEnum.PRODUCTION_WORK_ORDER_EXPEDITED.name().equals(request.getApplyReason())) { + //鐢熶骇浠诲姟 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0012); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐢熶骇鎸囨尌閮ㄥ绾ч瀵硷紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + } else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_BREAKDOWN_REPAIR.name().equals(request.getApplyReason())) { + //璁惧鏁呴殰 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0013); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨鍖洪暱锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + } else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_SCRAPPED.name().equals(request.getApplyReason())) { + //璁惧鎶ュ簾 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0014); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰璧勪骇绠$悊閮紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + } else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_MAJOR.name().equals(request.getApplyReason())) { + //璁惧澶т慨 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0016); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰杩愮淮鍟嗗姟瀹や富浠伙紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + }else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_RELOCATION.name().equals(request.getApplyReason()) || TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_RETROFITTING.name().equals(request.getApplyReason())) { + //璁惧鎼縼銆佹敼閫� + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0015); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰椤圭洰涓荤閮紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + } else { + throw new JeecgBootException("鍙樻洿鐢宠鍘熷洜鏃犳硶璇嗗埆锛屽鎵瑰け璐ワ紒"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getEquipmentManagerComment())) { + values.put("organization", "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇翠娇鐢ㄥ崟浣嶄富绠″绾ч瀵�"); + values.put("comment", "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇翠娇鐢ㄥ崟浣嶄富绠″绾ч瀵�"); + request.setComment("鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇翠娇鐢ㄥ崟浣嶄富绠″绾ч瀵�"); + } else { + values.put("organization", request.getEquipmentManagerComment()); + values.put("comment", request.getEquipmentManagerComment()); + request.setComment(request.getEquipmentManagerComment()); + } + + //璁剧疆entity + entity.setEquipmentManagerSignature(user.getUsername()); + entity.setEquipmentManagerSignatureTime(new Date()); + entity.setEquipmentManagerComment(request.getEquipmentManagerComment()); + entity.setEquipmentManagerSignatureResult(request.getEquipmentManagerSignatureResult()); + values.put("departHeaderConfirmFlag", request.getEquipmentManagerSignatureResult()); + if(BusinessCodeConst.APPROVED.equals(request.getEquipmentManagerSignatureResult())) { + //閫氳繃 + entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.DEPART_MANAGER_SIGNING.name()); + values.put("NextAssignee", userApprovalList); + }else { + //椹冲洖 + entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.REJECTED.name()); + } + break; + case DEPART_MANAGER_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.getDepartManagerComment())) { + values.put("organization", "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮儴闂ㄩ瀵煎鏍�"); + values.put("comment", "鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮儴闂ㄩ瀵煎鏍�"); + request.setComment("鎶�鏈姸鎬侀壌瀹氬伐鍗曞彉鏇撮儴闂ㄩ瀵煎鏍�"); + } else { + values.put("organization", request.getDepartManagerComment()); + values.put("comment", request.getDepartManagerComment()); + request.setComment(request.getDepartManagerComment()); + } + //璁剧疆entity + entity.setDepartManagerSignature(user.getUsername()); + entity.setDepartManagerSignatureTime(new Date()); + entity.setDepartManagerSignatureResult(request.getDepartManagerSignatureResult()); + entity.setDepartManagerComment(request.getDepartManagerComment()); + if(BusinessCodeConst.APPROVED.equals(request.getDepartManagerSignatureResult())) { + //閫氳繃 + entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.PRODUCTION_SUPPORT_SIGNING.name()); + values.put("NextAssignee", userApprovalList); + }else { + //椹冲洖 + entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.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.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.COMPLETED.name()); + order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); + order.setEvaluationDate(entity.getDeferredEvaluationDate()); + evaluationOrderService.updateById(order); + }else { + //椹冲洖 + entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.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();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 -- Gitblit v1.9.3