From b44955171ff4416a9041fd6b674800bfc4d8ee16 Mon Sep 17 00:00:00 2001 From: Houjie <714924425@qq.com> Date: 星期一, 18 八月 2025 11:41:20 +0800 Subject: [PATCH] 安灯处理 ,安灯已处理列表,安灯数据模型 增加字段,安灯发起:新增发起人 --- src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java | 13 +++ src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java | 3 src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml | 125 +++++++++++++++++++++++-------- src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java | 5 + src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java | 3 src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java | 8 ++ src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java | 14 +++ src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java | 9 ++ src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java | 18 ++++ src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java | 8 ++ src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java | 34 ++++++++ 11 files changed, 207 insertions(+), 33 deletions(-) diff --git a/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java b/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java index 921719b..f1b74a5 100644 --- a/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java +++ b/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java @@ -102,7 +102,18 @@ return Result.OK(list); } - + /** + * APP瀹夌伅宸插鐞嗗垪琛ㄦ煡璇� + * + * @param factoryId + * @return + */ + @ApiOperation(value = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ", notes = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/queryUserAndonHandelList") + public Result<List<AndonButtonDTO>> queryUserAndonHandelList(@RequestParam("factoryId") String factoryId) { + List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonHandelList(factoryId); + return Result.OK(list); + } /** * 娣诲姞 * diff --git a/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java b/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java index 3fbbe9c..9132c9f 100644 --- a/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java +++ b/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java @@ -12,6 +12,8 @@ import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.andon.entity.AndonOrder; import org.jeecg.modules.andon.service.IAndonOrderService; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -33,6 +35,8 @@ public class AndonOrderController extends JeecgController<AndonOrder, IAndonOrderService> { @Autowired private IAndonOrderService andonOrderService; + + /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -87,6 +91,20 @@ return Result.OK("鍝嶅簲鎴愬姛锛�"); } + + /** + * APP瀹夌伅澶勭悊鎿嶄綔 + * + * + * @return + */ + @ApiOperation(value = "APP瀹夌伅澶勭悊鎿嶄綔", notes = "APP瀹夌伅澶勭悊鎿嶄綔") + @PostMapping(value = "/AndonHandel") + public Result<String> AndonHandel(@RequestBody AndonOrder andonOrder) { + return andonOrderService.handleAndonOrder(andonOrder); + } + + /** * 缂栬緫 * diff --git a/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java b/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java index 8c82ac8..044b1dd 100644 --- a/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java +++ b/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java @@ -77,4 +77,7 @@ @ApiModelProperty(value = "宸ュ崟鐘舵��") private String orderStatus; + @ApiModelProperty(value = "瀹夌伅鍙戣捣浜�") + private String operator; + } diff --git a/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java b/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java index bdee167..e7e0331 100644 --- a/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java +++ b/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java @@ -68,6 +68,7 @@ private String buttonId; /**瀹夌伅浜�*/ @Excel(name = "瀹夌伅浜�", width = 15) + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username") @ApiModelProperty(value = "瀹夌伅浜�") private String operator; /**瀹夌伅鏃堕棿*/ @@ -82,6 +83,7 @@ @ApiModelProperty(value = "瀹夌伅绛夌骇") private String andonLevel; /**鍝嶅簲浜�*/ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username") @Excel(name = "鍝嶅簲浜�", width = 15) @ApiModelProperty(value = "鍝嶅簲浜�") private String responder; @@ -92,6 +94,7 @@ @ApiModelProperty(value = "鍝嶅簲鏃堕棿") private Date responseTime; /**澶勭悊浜�*/ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username") @Excel(name = "澶勭悊浜�", width = 15) @ApiModelProperty(value = "澶勭悊浜�") private String processor; diff --git a/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java b/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java index 47fab66..dbf50f1 100644 --- a/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java +++ b/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java @@ -36,6 +36,14 @@ */ List<AndonButtonDTO> queryUserAndonRespondList(String factoryId); + + /** + * 澶勭悊瀹夌伅鍒楄〃 + * @param factoryId + * @return + */ + List<AndonButtonDTO> queryUserAndonHandelList(String factoryId); + } diff --git a/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml b/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml index fa2b139..0475bda 100644 --- a/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml +++ b/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml @@ -27,6 +27,7 @@ on arc.button_id = abc.id where arc.factory_id=#{factoryId}; </select> + <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO"> select arc.id, abc.id as buttonId, @@ -68,37 +69,6 @@ and ao.factory_id = arc.factory_id and ao.order_status = '1') = 1 </select> -<!-- <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO">--> -<!-- select arc.id,--> -<!-- abc.id as buttonId,--> -<!-- abc.button_name as buttonName,--> -<!-- abc.button_code as buttonCode,--> -<!-- (select count(1)--> -<!-- from andon_order ao--> -<!-- where ao.button_id = arc.button_id--> -<!-- and ao.factory_id = arc.factory_id--> -<!-- and ao.order_status != '3') as blinkingFlag, STUFF((SELECT ',' + CAST (ao.id AS VARCHAR)--> -<!-- FROM andon_order ao--> -<!-- WHERE ao.button_id = arc.button_id--> -<!-- and ao.factory_id = arc.factory_id--> -<!-- FOR XML PATH ('')), 1, 1, '') as orderIds, bf.factory_name as factoryName, parent_bf.factory_name as parentFactoryName, abc.upgrade_response_duration as upgradeResponseDuration, abc.second_upgrade_response_duration as secondUpgradeResponseDuration, arc.firster_responder as responder, arc.second_responder, arc.third_responder, STUFF((SELECT ',' + ao.order_status--> -<!-- FROM andon_order ao--> -<!-- WHERE ao.button_id = arc.button_id--> -<!-- and ao.factory_id = arc.factory_id--> -<!-- and ao.order_status != '3'--> -<!-- FOR XML PATH ('')), 1, 1, '') as orderStatus--> -<!-- from andon_response_config arc--> -<!-- left join andon_button_config abc--> -<!-- on arc.button_id = abc.id--> -<!-- left join base_factory bf on arc.factory_id = bf.id--> -<!-- left join base_factory parent_bf on bf.parent_id = parent_bf.id--> -<!-- where arc.factory_id=#{factoryId}--> -<!-- and (select count (1)--> -<!-- from andon_order ao--> -<!-- where ao.button_id = arc.button_id--> -<!-- and ao.factory_id = arc.factory_id--> -<!-- and ao.order_status != '3') = 1--> -<!-- </select>--> <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO"> select arc.id, @@ -128,7 +98,12 @@ WHERE ao.button_id = arc.button_id and ao.factory_id = arc.factory_id and ao.order_status = '2' - FOR XML PATH ('')), 1, 1, '') as orderStatus + FOR XML PATH ('')), 1, 1, '') as orderStatus, + (SELECT TOP 1 ao.operator + FROM andon_order ao + WHERE ao.button_id = arc.button_id + and ao.factory_id = arc.factory_id + and ao.order_status = '2') as operator from andon_response_config arc left join andon_button_config abc on arc.button_id = abc.id @@ -141,4 +116,90 @@ and ao.factory_id = arc.factory_id and ao.order_status = '2') = 1 </select> +<!-- <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO">--> +<!-- select arc.id,--> +<!-- abc.id as buttonId,--> +<!-- abc.button_name as buttonName,--> +<!-- abc.button_code as buttonCode,--> +<!-- (select count(1)--> +<!-- from andon_order ao--> +<!-- where ao.button_id = arc.button_id--> +<!-- and ao.factory_id = arc.factory_id--> +<!-- and ao.order_status = '2') as blinkingFlag,--> +<!-- STUFF((SELECT ',' + CAST(ao.id AS VARCHAR)--> +<!-- FROM andon_order ao--> +<!-- WHERE ao.button_id = arc.button_id--> +<!-- and ao.factory_id = arc.factory_id--> +<!-- and ao.order_status = '2'--> +<!-- FOR XML PATH ('')), 1, 1, '') as orderIds,--> +<!-- bf.factory_name as factoryName,--> +<!-- parent_bf.factory_name as parentFactoryName,--> +<!-- abc.upgrade_response_duration as upgradeResponseDuration,--> +<!-- abc.second_upgrade_response_duration as secondUpgradeResponseDuration,--> +<!-- arc.firster_responder as responder,--> +<!-- arc.second_responder,--> +<!-- arc.third_responder,--> +<!-- STUFF((SELECT ',' + ao.order_status--> +<!-- FROM andon_order ao--> +<!-- WHERE ao.button_id = arc.button_id--> +<!-- and ao.factory_id = arc.factory_id--> +<!-- and ao.order_status = '2'--> +<!-- FOR XML PATH ('')), 1, 1, '') as orderStatus--> +<!-- from andon_response_config arc--> +<!-- left join andon_button_config abc--> +<!-- on arc.button_id = abc.id--> +<!-- left join base_factory bf on arc.factory_id = bf.id--> +<!-- left join base_factory parent_bf on bf.parent_id = parent_bf.id--> +<!-- where arc.factory_id = #{factoryId}--> +<!-- and (select count(1)--> +<!-- from andon_order ao--> +<!-- where ao.button_id = arc.button_id--> +<!-- and ao.factory_id = arc.factory_id--> +<!-- and ao.order_status = '2') = 1--> +<!-- </select>--> + + + <select id="queryUserAndonHandelList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO"> + select arc.id, + abc.id as buttonId, + abc.button_name as buttonName, + abc.button_code as buttonCode, + (select count(1) + from andon_order ao + where ao.button_id = arc.button_id + and ao.factory_id = arc.factory_id + and ao.order_status = '3') as blinkingFlag, + STUFF((SELECT ',' + CAST(ao.id AS VARCHAR) + FROM andon_order ao + WHERE ao.button_id = arc.button_id + and ao.factory_id = arc.factory_id + and ao.order_status = '3' + FOR XML PATH ('')), 1, 1, '') as orderIds, + bf.factory_name as factoryName, + parent_bf.factory_name as parentFactoryName, + abc.upgrade_response_duration as upgradeResponseDuration, + abc.second_upgrade_response_duration as secondUpgradeResponseDuration, + arc.firster_responder as responder, + arc.second_responder, + arc.third_responder, + STUFF((SELECT ',' + ao.order_status + FROM andon_order ao + WHERE ao.button_id = arc.button_id + and ao.factory_id = arc.factory_id + and ao.order_status = '3' + FOR XML PATH ('')), 1, 1, '') as orderStatus + from andon_response_config arc + left join andon_button_config abc + on arc.button_id = abc.id + left join base_factory bf on arc.factory_id = bf.id + left join base_factory parent_bf on bf.parent_id = parent_bf.id + where arc.factory_id = #{factoryId} + and (select count(1) + from andon_order ao + where ao.button_id = arc.button_id + and ao.factory_id = arc.factory_id + and ao.order_status = '3') = 1 + </select> + + </mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java b/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java index dca5f8f..500343c 100644 --- a/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java +++ b/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java @@ -37,4 +37,12 @@ */ List<AndonButtonDTO> queryUserAndonRespondList(String factoryId); + + /** + * 鏌ヨ鐢ㄦ埛鍙戣捣瀹夌伅澶勭悊鍒楄〃 + * @param factoryId + * @return + */ + List<AndonButtonDTO> queryUserAndonHandelList(String factoryId); + } diff --git a/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java b/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java index 08a9fa5..c4485d3 100644 --- a/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java +++ b/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java @@ -1,6 +1,7 @@ package org.jeecg.modules.andon.service; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.andon.entity.AndonOrder; import java.util.List; @@ -22,4 +23,12 @@ */ String getPrimaryResponder(AndonOrder andonOrder); + + + /** + * 澶勭悊瀹夌伅宸ュ崟 + * @param andonOrder + * @return + */ + Result<String> handleAndonOrder(AndonOrder andonOrder); } diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java index e6b670a..3dc9212 100644 --- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java +++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java @@ -39,5 +39,10 @@ return baseMapper.queryUserAndonRespondList(factoryId); } + @Override + public List<AndonButtonDTO> queryUserAndonHandelList(String factoryId) { + return baseMapper.queryUserAndonHandelList(factoryId); + } + } diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java index e12effd..e9b6a34 100644 --- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java +++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java @@ -3,12 +3,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.andon.entity.AndonResponseConfig; import org.jeecg.modules.andon.mapper.AndonResponseConfigMapper; import org.jeecg.modules.andon.service.IAndonOrderService; import org.jeecg.modules.andon.entity.AndonOrder; import org.jeecg.modules.andon.mapper.AndonOrderMapper; import org.jeecg.modules.feishu.service.FeishuUserService; +import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -60,4 +62,36 @@ return config.getFirsterResponder(); } + @Override + public Result<String> handleAndonOrder(AndonOrder andonOrder) { + + // 璁剧疆宸ュ崟鐘舵�佷负澶勭悊涓� + andonOrder.setOrderStatus("3"); + + // 鑾峰彇鍝嶅簲鑰呯敤鎴峰悕 + String responderUsername = andonOrder.getResponder(); + + // 楠岃瘉鍝嶅簲鑰呯敤鎴峰悕涓嶄负绌� + if (StringUtils.isBlank(responderUsername)) { + return Result.error("鍝嶅簲鑰呬俊鎭笉鑳戒负绌�"); + } + + // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴蜂俊鎭� + SysUser sysUser = sysUserService.getOne( + new QueryWrapper<SysUser>().eq("username", responderUsername) + ); + + // 楠岃瘉鐢ㄦ埛鏄惁瀛樺湪 + if (sysUser == null) { + return Result.error("鎵句笉鍒扮敤鎴峰悕涓� " + responderUsername + " 鐨勭敤鎴�"); + } + // 璁剧疆鍝嶅簲鑰匢D + andonOrder.setResponder(sysUser.getId()); + andonOrder.setProcessor(sysUser.getId()); + // 鏇存柊宸ュ崟淇℃伅 + this.updateById(andonOrder); + + return Result.OK("澶勭悊鎴愬姛"); + } + } diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java index 926ae5f..f6f23ae 100644 --- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java +++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.andon.dto.AndonButtonDTO; import org.jeecg.modules.andon.entity.AndonButtonConfig; import org.jeecg.modules.andon.entity.AndonOrder; @@ -61,6 +63,10 @@ throw new IllegalArgumentException("璇锋眰鍙傛暟涓嶈兘涓虹┖"); } /** + * 璁剧疆瀹夌伅浜� + */ + + /** * 2. 鑾峰彇鍝嶅簲閰嶇疆 */ AndonResponseConfig andonResponseConfig = this.getById(andonButtonDTO.getId()); @@ -70,6 +76,14 @@ log.warn("鏈壘鍒癐D涓篬{}]鐨勫畨鐏鍗�"); throw new IllegalArgumentException("鏈壘鍒板搴旂殑瀹夌伅璁㈠崟"); } + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (loginUser != null) { + log.warn("鏈壘鍒板綋鍓嶇敤鎴�"); + + } + assert loginUser != null; + andonOrder.setResponder(loginUser.getId()); String orderStatus = andonOrder.getOrderStatus(); andonButtonDTO.setOrderStatus(orderStatus); if (andonResponseConfig == null) { -- Gitblit v1.9.3