diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java index 3132db0..5327e96 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java @@ -1,9 +1,14 @@ package com.ruoyi.kaohe.controller; import java.util.List; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.kaohe.domain.*; +import com.ruoyi.kaohe.service.IKhPcEmpService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -16,7 +21,6 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.kaohe.domain.KhPingce; import com.ruoyi.kaohe.service.IKhPingceService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; @@ -33,6 +37,8 @@ public class KhPingceController extends BaseController { @Autowired private IKhPingceService khPingceService; + @Autowired + private IKhPcEmpService pcEmpService; /** * 查询考核评测列表 @@ -74,10 +80,25 @@ public class KhPingceController extends BaseController */ @PreAuthorize("@ss.hasPermi('kaohe:pingce:add')") @Log(title = "考核评测", businessType = BusinessType.INSERT) + @Transactional @PostMapping public AjaxResult add(@RequestBody KhPingce khPingce) { - return toAjax(khPingceService.insertKhPingce(khPingce)); + khPingceService.insertKhPingce(khPingce); + //增加关联表 + List pcEmps = khPingce.getPcEmps(); + if(pcEmps !=null&& pcEmps.size()>0){ + for(KhEmployee item:pcEmps){ + KhPcEmp pcEmp = new KhPcEmp(); + pcEmp.setPcId(khPingce.getId()); + pcEmp.setEmpId(item.getId()); + pcEmp.setEmpName(item.getEmpName()); + pcEmp.setDeptId(item.getDeptId()); + pcEmp.setDeptName(item.getDeptName()); + pcEmpService.insertKhPcEmp(pcEmp); + } + } + return AjaxResult.success(); } /** @@ -86,9 +107,30 @@ public class KhPingceController extends BaseController @PreAuthorize("@ss.hasPermi('kaohe:pingce:edit')") @Log(title = "考核评测", businessType = BusinessType.UPDATE) @PutMapping + @Transactional public AjaxResult edit(@RequestBody KhPingce khPingce) { - return toAjax(khPingceService.updateKhPingce(khPingce)); + khPingceService.updateKhPingce(khPingce); + + List pcEmps = khPingce.getPcEmps(); + if(pcEmps !=null&& pcEmps.size()>0){ + //删除原来关联 + KhPcEmp query = new KhPcEmp(); + query.setPcId(khPingce.getId()); + List temItems = pcEmpService.selectKhPcEmpList(query); + List ids = temItems.stream().map(KhPcEmp::getId).collect(Collectors.toList()); + pcEmpService.deleteKhPcEmpByIds(ids.toArray(new Long[ids.size()])); + //增加新的关联 + for(KhEmployee item:pcEmps){ + KhPcEmp pcEmp = new KhPcEmp(); + pcEmp.setEmpId(item.getId()); + pcEmp.setEmpName(item.getEmpName()); + pcEmp.setDeptId(item.getDeptId()); + pcEmp.setDeptName(item.getDeptName()); + pcEmpService.insertKhPcEmp(pcEmp); + } + } + return AjaxResult.success(); } /** @@ -99,6 +141,12 @@ public class KhPingceController extends BaseController @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { + for(Long id:ids){ + KhPingce khPingce = khPingceService.selectKhPingceById(id); + if(!khPingce.getState().equals("0")){ + return AjaxResult.error("评测:"+khPingce.getPcTitle()+" 不是未开始状态,不允许删除"); + } + } return toAjax(khPingceService.deleteKhPingceByIds(ids)); } } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java index 9b53a6e..f76b68d 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java @@ -87,6 +87,7 @@ public class KhTemplateController extends BaseController public AjaxResult add(@RequestBody KhTemplate khTemplate) { khTemplateService.insertKhTemplate(khTemplate); + //增加关联表 List items = khTemplate.getItems(); if(items !=null&& items.size()>0){ for(KhItems item:items){ @@ -119,6 +120,7 @@ public class KhTemplateController extends BaseController List temItems = temItemService.selectKhTemItemList(query); List ids = temItems.stream().map(KhTemItem::getId).collect(Collectors.toList()); temItemService.deleteKhTemItemByIds(ids.toArray(new Long[ids.size()])); + //增加新的关联 for(KhItems item:items){ KhTemItem temItem = new KhTemItem(); temItem.setTemName(khTemplate.getTemName()); diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhPingce.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhPingce.java index c050b1b..84de18d 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhPingce.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhPingce.java @@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.util.List; + /** * 考核评测对象 kh_pingce * @@ -42,7 +44,17 @@ public class KhPingce extends BaseEntity @Excel(name = "评测状态(0 开始 1 进行中 2 完成)") private String state; - public void setId(Long id) + private List pcEmps; + + public List getPcEmps() { + return pcEmps; + } + + public void setPcEmps(List pcEmps) { + this.pcEmps = pcEmps; + } + + public void setId(Long id) { this.id = id; } diff --git a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhPingceMapper.xml b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhPingceMapper.xml index a672c70..393e419 100644 --- a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhPingceMapper.xml +++ b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhPingceMapper.xml @@ -17,6 +17,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + @@ -24,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"