From 23c0928c8ef29e4910e28f5fd12b1cb2efde3324 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Tue, 27 Jan 2026 13:13:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E5=8F=A6=E5=AD=98=E4=B8=BA?= =?UTF-8?q?=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ErfTriConfirmController.java | 84 ++++++++++- .../erf/entity/ErfProcessTemplate.java | 112 +++++++++++++++ .../erf/mapper/ErfProcessTemplateMapper.java | 28 ++++ .../service/ErfProcessTemplateService.java | 45 ++++++ .../impl/ErfProcessTemplateServiceImpl.java | 135 ++++++++++++++++++ .../mapper/erf/ErfProcessTemplateMapper.xml | 23 +++ 6 files changed, 426 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/xujie/sys/modules/erf/entity/ErfProcessTemplate.java create mode 100644 src/main/java/com/xujie/sys/modules/erf/mapper/ErfProcessTemplateMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/erf/service/ErfProcessTemplateService.java create mode 100644 src/main/java/com/xujie/sys/modules/erf/service/impl/ErfProcessTemplateServiceImpl.java create mode 100644 src/main/resources/mapper/erf/ErfProcessTemplateMapper.xml diff --git a/src/main/java/com/xujie/sys/modules/erf/controller/ErfTriConfirmController.java b/src/main/java/com/xujie/sys/modules/erf/controller/ErfTriConfirmController.java index 11666947..69ca10c4 100644 --- a/src/main/java/com/xujie/sys/modules/erf/controller/ErfTriConfirmController.java +++ b/src/main/java/com/xujie/sys/modules/erf/controller/ErfTriConfirmController.java @@ -2,12 +2,15 @@ package com.xujie.sys.modules.erf.controller; import com.xujie.sys.common.utils.R; import com.xujie.sys.modules.erf.data.ErfTriConfirmData; +import com.xujie.sys.modules.erf.entity.ErfProcessTemplate; +import com.xujie.sys.modules.erf.service.ErfProcessTemplateService; import com.xujie.sys.modules.erf.service.ErfTriConfirmService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * 三方确认控制器 @@ -23,6 +26,9 @@ public class ErfTriConfirmController { @Autowired private ErfTriConfirmService erfTriConfirmService; + @Autowired + private ErfProcessTemplateService erfProcessTemplateService; + /** * 查询三方确认列表 * @@ -105,7 +111,7 @@ public class ErfTriConfirmController { */ @PostMapping("/updateProcessSequence") @ResponseBody - public R updateProcessSequence(@RequestBody java.util.Map data) { + public R updateProcessSequence(@RequestBody Map data) { try { String applyNo = (String) data.get("applyNo"); @SuppressWarnings("unchecked") @@ -118,4 +124,80 @@ public class ErfTriConfirmController { return R.error("更新顺序失败: " + e.getMessage()); } } + + /** + * 查询工序模版列表 + * + * @param data 包含site的请求数据 + * @return 模版列表 + */ + @PostMapping("/getProcessTemplateList") + @ResponseBody + public R getProcessTemplateList(@RequestBody Map data) { + try { + String site = (String) data.get("site"); + List list = erfProcessTemplateService.getTemplateList(site); + return R.ok().put("list", list); + } catch (Exception e) { + log.error("查询工序模版列表失败: " + e.getMessage(), e); + return R.error("查询失败: " + e.getMessage()); + } + } + + /** + * 保存工序模版 + * + * @param template 模版数据 + * @return 操作结果 + */ + @PostMapping("/saveProcessTemplate") + @ResponseBody + public R saveProcessTemplate(@RequestBody ErfProcessTemplate template) { + try { + erfProcessTemplateService.saveTemplate(template); + return R.ok("保存模版成功"); + } catch (Exception e) { + log.error("保存工序模版失败: " + e.getMessage(), e); + return R.error("保存失败: " + e.getMessage()); + } + } + + /** + * 删除工序模版 + * + * @param data 包含id的请求数据 + * @return 操作结果 + */ + @PostMapping("/deleteProcessTemplate") + @ResponseBody + public R deleteProcessTemplate(@RequestBody Map data) { + try { + Long id = Long.valueOf(data.get("id").toString()); + erfProcessTemplateService.deleteTemplate(id); + return R.ok("删除模版成功"); + } catch (Exception e) { + log.error("删除工序模版失败: " + e.getMessage(), e); + return R.error("删除失败: " + e.getMessage()); + } + } + + /** + * 根据角色查询负责人列表 + * + * @param data 包含roleType和site的请求数据 + * @return 用户列表 + */ + @PostMapping("/getUserListByRole") + @ResponseBody + public R getUserListByRole(@RequestBody Map data) { + try { + String roleType = (String) data.get("roleType"); + String site = (String) data.get("site"); + List> list = erfProcessTemplateService.getUserListByRole(roleType, site); + return R.ok().put("list", list); + } catch (Exception e) { + log.error("查询负责人列表失败: " + e.getMessage(), e); + return R.error("查询失败: " + e.getMessage()); + } + } } diff --git a/src/main/java/com/xujie/sys/modules/erf/entity/ErfProcessTemplate.java b/src/main/java/com/xujie/sys/modules/erf/entity/ErfProcessTemplate.java new file mode 100644 index 00000000..7cb8f684 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/erf/entity/ErfProcessTemplate.java @@ -0,0 +1,112 @@ +package com.xujie.sys.modules.erf.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 工序模版实体类 + * + *

核心字段说明:

+ *
    + *
  • template_name:模版名称(工序名称)
  • + *
  • prod_approver_name:车间负责人默认值
  • + *
  • qa_approver_name:质量负责人默认值
  • + *
  • tech_approver_name:技术负责人默认值
  • + *
+ * + * @author System + * @since 2026-01-27 + */ +@Data +@TableName("erf_process_template") +public class ErfProcessTemplate implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 站点编码 + */ + @TableField("site") + private String site; + + /** + * 模版名称(工序名称) + */ + @TableField("template_name") + private String templateName; + + /** + * 车间负责人 + */ + @TableField("prod_approver_name") + private String prodApproverName; + + /** + * 车间负责人用户ID + */ + @TableField("prod_approver_user_id") + private Long prodApproverUserId; + + /** + * 质量负责人 + */ + @TableField("qa_approver_name") + private String qaApproverName; + + /** + * 质量负责人用户ID + */ + @TableField("qa_approver_user_id") + private Long qaApproverUserId; + + /** + * 技术负责人 + */ + @TableField("tech_approver_name") + private String techApproverName; + + /** + * 技术负责人用户ID + */ + @TableField("tech_approver_user_id") + private Long techApproverUserId; + + /** + * 备注 + */ + @TableField("remark") + private String remark; + + /** + * 创建人用户ID + */ + @TableField(value = "creator_user_id", fill = FieldFill.INSERT) + private Long creatorUserId; + + /** + * 创建人姓名 + */ + @TableField(value = "creator_name", fill = FieldFill.INSERT) + private String creatorName; + + /** + * 创建时间 + */ + @TableField(value = "create_time", fill = FieldFill.INSERT) + private Date createTime; + + /** + * 删除标记 (0=未删除, 1=已删除) + */ + @TableField("is_deleted") + @TableLogic + private Integer isDeleted; +} diff --git a/src/main/java/com/xujie/sys/modules/erf/mapper/ErfProcessTemplateMapper.java b/src/main/java/com/xujie/sys/modules/erf/mapper/ErfProcessTemplateMapper.java new file mode 100644 index 00000000..9ce2a52b --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/erf/mapper/ErfProcessTemplateMapper.java @@ -0,0 +1,28 @@ +package com.xujie.sys.modules.erf.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xujie.sys.modules.erf.entity.ErfProcessTemplate; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 工序模版Mapper + * + * @author System + * @since 2026-01-27 + */ +@Mapper +public interface ErfProcessTemplateMapper extends BaseMapper { + + /** + * 根据角色名称查询用户列表 + * + * @param roleName 角色名称 + * @param site 站点编码 + * @return 用户列表 + */ + List> getUserListByRoleName(@Param("roleName") String roleName, @Param("site") String site); +} diff --git a/src/main/java/com/xujie/sys/modules/erf/service/ErfProcessTemplateService.java b/src/main/java/com/xujie/sys/modules/erf/service/ErfProcessTemplateService.java new file mode 100644 index 00000000..552faaa9 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/erf/service/ErfProcessTemplateService.java @@ -0,0 +1,45 @@ +package com.xujie.sys.modules.erf.service; + +import com.xujie.sys.modules.erf.entity.ErfProcessTemplate; + +import java.util.List; + +/** + * 工序模版服务接口 + * + * @author System + * @since 2026-01-27 + */ +public interface ErfProcessTemplateService { + + /** + * 查询工序模版列表 + * + * @param site 站点编码 + * @return 模版列表 + */ + List getTemplateList(String site); + + /** + * 保存工序模版 + * + * @param template 模版数据 + */ + void saveTemplate(ErfProcessTemplate template); + + /** + * 删除工序模版 + * + * @param id 模版ID + */ + void deleteTemplate(Long id); + + /** + * 根据角色查询负责人列表 + * + * @param roleType 角色类型(PROD=车间, QA=质量, TECH=技术) + * @param site 站点编码 + * @return 用户列表 + */ + List> getUserListByRole(String roleType, String site); +} diff --git a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfProcessTemplateServiceImpl.java b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfProcessTemplateServiceImpl.java new file mode 100644 index 00000000..e30e070b --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfProcessTemplateServiceImpl.java @@ -0,0 +1,135 @@ +package com.xujie.sys.modules.erf.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.xujie.sys.modules.erf.entity.ErfProcessTemplate; +import com.xujie.sys.modules.erf.mapper.ErfProcessTemplateMapper; +import com.xujie.sys.modules.erf.service.ErfProcessTemplateService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 工序模版服务实现类 + * + * @author System + * @since 2026-01-27 + */ +@Slf4j +@Service +@Transactional +public class ErfProcessTemplateServiceImpl implements ErfProcessTemplateService { + + @Autowired + private ErfProcessTemplateMapper erfProcessTemplateMapper; + + /** + * 查询工序模版列表 + */ + @Override + public List getTemplateList(String site) { + log.info("查询工序模版列表,site: {}", site); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("site", site); + wrapper.orderByDesc("create_time"); + + return erfProcessTemplateMapper.selectList(wrapper); + } + + /** + * 保存工序模版 + */ + @Override + public void saveTemplate(ErfProcessTemplate template) { + log.info("保存工序模版: {}", template.getTemplateName()); + + // 检查是否已存在同名模版 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("site", template.getSite()); + wrapper.eq("template_name", template.getTemplateName()); + + ErfProcessTemplate existing = erfProcessTemplateMapper.selectOne(wrapper); + + if (existing != null) { + // 更新已有模版 + template.setId(existing.getId()); + erfProcessTemplateMapper.updateById(template); + } else { + // 新增模版 + erfProcessTemplateMapper.insert(template); + } + } + + /** + * 删除工序模版 + */ + @Override + public void deleteTemplate(Long id) { + log.info("删除工序模版,id: {}", id); + erfProcessTemplateMapper.deleteById(id); + } + + /** + * 根据角色查询负责人列表 + * + *

角色类型说明:

+ *
    + *
  • PROD:车间负责人
  • + *
  • QA:质量负责人
  • + *
  • TECH:技术负责人
  • + *
+ * + *

实现逻辑:

+ *
    + *
  • 根据角色类型映射到sys_role表中的角色名称
  • + *
  • 通过sys_user_role关联表查询拥有该角色的用户
  • + *
  • 只返回状态为正常(status=1)且匹配站点的用户
  • + *
+ */ + @Override + public List> getUserListByRole(String roleType, String site) { + log.info("查询负责人列表,roleType: {}, site: {}", roleType, site); + + // 角色类型映射到角色名称 + String roleName = getRoleNameByType(roleType); + + if (roleName == null) { + log.warn("未知的角色类型: {}", roleType); + return new ArrayList<>(); + } + + log.info("映射角色名称: {} -> {}", roleType, roleName); + + // 从数据库查询用户列表 + List> userList = erfProcessTemplateMapper.getUserListByRoleName(roleName, site); + + log.info("查询到 {} 条用户记录", userList.size()); + + return userList; + } + + /** + * 角色类型映射到角色名称 + * + * @param roleType 角色类型(PROD/QA/TECH) + * @return 角色名称 + */ + private String getRoleNameByType(String roleType) { + switch (roleType) { + case "PROD": + return "车间负责人"; + case "QA": + return "质量负责人"; + case "TECH": + return "技术负责人"; + default: + return null; + } + } +} diff --git a/src/main/resources/mapper/erf/ErfProcessTemplateMapper.xml b/src/main/resources/mapper/erf/ErfProcessTemplateMapper.xml new file mode 100644 index 00000000..125b470a --- /dev/null +++ b/src/main/resources/mapper/erf/ErfProcessTemplateMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + +