guoyujia 1 zi în urmă
părinte
comite
74d9517f12

+ 80 - 14
src/main/java/cn/ezhizao/project/business/technologicalProcessDetailDrawing/controller/BizTechnologicalProcessDetailDrawingController.java

@@ -13,6 +13,10 @@ import cn.ezhizao.project.business.message.domain.BizMessage;
 import cn.ezhizao.project.business.message.service.IBizMessageService;
 import cn.ezhizao.project.business.personSeal.domain.BizPersonalSeal;
 import cn.ezhizao.project.business.personSeal.service.IBizPersonalSealService;
+import cn.ezhizao.project.business.process.domain.BizProcess;
+import cn.ezhizao.project.business.process.service.IBizProcessService;
+import cn.ezhizao.project.business.product.domain.BizProduct;
+import cn.ezhizao.project.business.product.service.IBizProductService;
 import cn.ezhizao.project.business.publicSeal.domain.BizPublicSeal;
 import cn.ezhizao.project.business.publicSeal.service.IBizPublicSealService;
 import cn.ezhizao.project.business.technologicalProcessDetailDrawing.domain.BizTechnologicalProcessDetailDrawing;
@@ -42,6 +46,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -50,6 +55,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 电子图纸Controller
@@ -77,9 +83,15 @@ public class BizTechnologicalProcessDetailDrawingController extends BaseControll
     private ISysRoleService sysRoleService;
     @Resource
     private ISysUserService sysUserService;
+    @Resource
+    private IBizProductService bizProductService;
+    @Resource
+    private IBizProcessService bizProcessService;
 
     @Resource
     private IBizTechnologicalProcessDetailDrawingUserService bizTechnologicalProcessDetailDrawingUserService;
+    @Resource
+    private HttpServletRequest request;
 
 
     @Log(title = "电子图纸导出", businessType = BusinessType.EXPORT)
@@ -334,34 +346,88 @@ public class BizTechnologicalProcessDetailDrawingController extends BaseControll
             return error("未查询到当前员工");
         } else {
             // 给所有有图纸审批权限的人发站内信,通知审批
-            sendMessage();
+            sendMessage(bizTechnologicalProcessDetailDrawing);
+            //给所有工段长发送站内信,通知图纸审批
+            sendMessageToDept(bizTechnologicalProcessDetailDrawing);
             return success();
         }
     }
+    private void sendMessageToDept(List<BizTechnologicalProcessDetailDrawing> drawingDetails) {
+        List<Long> productIds = drawingDetails.stream().map(BizTechnologicalProcessDetailDrawing::getProductId).collect(Collectors.toList());
+        List<BizProduct> productList = bizProductService.query().in("id", productIds).list();
+        List<String> processCodes = drawingDetails.stream().map(BizTechnologicalProcessDetailDrawing::getProcessCode).collect(Collectors.toList());
+        List<BizProcess> processList = bizProcessService.query().in("process_code", processCodes).list();
+        List<BizMessage> messages = new ArrayList<>();
+        Long tenantId = Long.parseLong(request.getHeader("tenantId"));
+            List<SysUser> items = sysUserService.getAllFormman(tenantId);
+            items.forEach(v -> {
+                drawingDetails.forEach(d -> {
+                    BizMessage message = new BizMessage();
+                    message.setFromNickName(SecurityUtils.getLoginUser().getUser().getNickName());
+                    message.setFromUserId(SecurityUtils.getLoginUser().getUser().getUserId());
+                    message.setFromUserName(SecurityUtils.getLoginUser().getUser().getUserName());
+                    message.setToNickName(v.getNickName());
+                    message.setToUserId(v.getUserId());
+                    message.setToUserName(v.getUserName());
+                    BizProduct bizProduct = productList.stream().filter(p -> p.getId().equals(d.getProductId())).findFirst().orElse(null);
+                    BizProcess bizProcess = processList.stream().filter(p -> p.getProcessCode().equals(d.getProcessCode())).findFirst().orElse(null);
+                    if(d.getAbandoned() == 1){
+                        String mes = bizProduct.getDescription() + "产品,工艺版本" + d.getProductVersion()  + bizProcess.getProcessAlias() + "工序" + d.getDrawingName() + "图纸名,图纸已作废,请注意审批。";
+                        message.setMessage(mes);
+                    }else{
+                        if(d.getPattern().trim().equals("替换产品")){
+                            String mes = bizProduct.getDescription() + "产品,工艺版本" + d.getProductVersion()  + bizProcess.getProcessAlias() + "工序" + d.getDrawingName() + "图纸名,图纸已变更,请注意审批。";
+                            message.setMessage(mes);
+                        }else{
+                            String mes = bizProduct.getDescription() + "产品,工艺版本" + d.getProductVersion()  + bizProcess.getProcessAlias() + "工序" + d.getDrawingName() + "图纸名,图纸已上传,请注意审批。";
+                            message.setMessage(mes);
+                        }
+                    }
+                    String mes = bizProduct.getDescription() + "产品,工艺版本" + d.getProductVersion()  + bizProcess.getProcessAlias() + "工序" + d.getDrawingName() + "图纸名,图纸已作废,请注意查看。";
+//                    message.setMessage("您有图纸待批准,请前往【工艺管理】下【等待批准图纸】菜单进行操作。");
+                    message.setMessage(mes);
+                    message.setMessageDate(new Date());
+                    messages.add(message);
+                });
+            });
+        bizMessageService.saveBatch(messages);
+    }
 
     /**
      * 发送审批信息
      */
-    private void sendMessage() {
+    private void sendMessage(List<BizTechnologicalProcessDetailDrawing> drawingDetails) {
+        List<Long> productIds = drawingDetails.stream().map(BizTechnologicalProcessDetailDrawing::getProductId).collect(Collectors.toList());
+        List<BizProduct> productList = bizProductService.query().in("id", productIds).list();
+        List<String> processCodes = drawingDetails.stream().map(BizTechnologicalProcessDetailDrawing::getProcessCode).collect(Collectors.toList());
+        List<BizProcess> processList = bizProcessService.query().in("process_code", processCodes).list();
         SysRole role = new SysRole();
         role.setRoleKey("drawingRatify");
         List<SysRole> roles = sysRoleService.selectRoleList(role);
         List<BizMessage> messages = new ArrayList<>();
+        Long tenantId = Long.parseLong(request.getHeader("tenantId"));
         roles.forEach(l -> {
             SysUser conditions = new SysUser();
             conditions.setRoleId(l.getRoleId());
+            conditions.setTenantId(tenantId);
             List<SysUser> items = sysUserService.selectAllocatedList(conditions);
             items.forEach(v -> {
-                BizMessage message = new BizMessage();
-                message.setFromNickName(SecurityUtils.getLoginUser().getUser().getNickName());
-                message.setFromUserId(SecurityUtils.getLoginUser().getUser().getUserId());
-                message.setFromUserName(SecurityUtils.getLoginUser().getUser().getUserName());
-                message.setToNickName(v.getNickName());
-                message.setToUserId(v.getUserId());
-                message.setToUserName(v.getUserName());
-                message.setMessage("您有图纸待批准,请前往【工艺管理】下【等待批准图纸】菜单进行操作。");
-                message.setMessageDate(new Date());
-                messages.add(message);
+                drawingDetails.forEach(d -> {
+                    BizMessage message = new BizMessage();
+                    message.setFromNickName(SecurityUtils.getLoginUser().getUser().getNickName());
+                    message.setFromUserId(SecurityUtils.getLoginUser().getUser().getUserId());
+                    message.setFromUserName(SecurityUtils.getLoginUser().getUser().getUserName());
+                    message.setToNickName(v.getNickName());
+                    message.setToUserId(v.getUserId());
+                    message.setToUserName(v.getUserName());
+                    BizProduct bizProduct = productList.stream().filter(p -> p.getId().equals(d.getProductId())).findFirst().orElse(null);
+                    BizProcess bizProcess = processList.stream().filter(p -> p.getProcessCode().equals(d.getProcessCode())).findFirst().orElse(null);
+                    String mes = bizProduct.getDescription() + "产品,工艺版本" + d.getProductVersion()  + bizProcess.getProcessAlias() + "工序" + d.getDrawingName() + "图纸名,图纸已变化,请注意审批。";
+//                    message.setMessage("您有图纸待批准,请前往【工艺管理】下【等待批准图纸】菜单进行操作。");
+                    message.setMessage(mes);
+                    message.setMessageDate(new Date());
+                    messages.add(message);
+                });
             });
         });
         bizMessageService.saveBatch(messages);
@@ -375,7 +441,7 @@ public class BizTechnologicalProcessDetailDrawingController extends BaseControll
     @Transactional
     public AjaxResult drawingNG(@RequestBody List<BizTechnologicalProcessDetailDrawing> processDetailDrawing) throws NoSuchFieldException, IllegalAccessException, IOException {
         bizTechnologicalProcessDetailDrawingService.drawingNG(processDetailDrawing, SecurityUtils.getLoginUser().getUser().getUserName(), SecurityUtils.getLoginUser().getUser().getNickName());
-        sendMessage();
+        sendMessage(processDetailDrawing);
         return success(true);
     }
 
@@ -389,7 +455,7 @@ public class BizTechnologicalProcessDetailDrawingController extends BaseControll
         } else if (i == 4) {
             return error("未查询到当前员工");
         } else {
-            sendMessage();
+            sendMessage(processDetailDrawing);
             return success();
         }
 

+ 1 - 0
src/main/java/cn/ezhizao/project/system/mapper/SysUserMapper.java

@@ -56,6 +56,7 @@ public interface SysUserMapper {
      * @return 用户信息集合信息
      */
     public List<SysUser> selectAllocatedList(SysUser user);
+    public List<SysUser> getAllFormman(Long tenantId);
 
     /**
      * 根据条件分页查询未分配用户角色列表

+ 1 - 0
src/main/java/cn/ezhizao/project/system/service/ISysUserService.java

@@ -53,6 +53,7 @@ public interface ISysUserService
      * @return 用户信息集合信息
      */
     List<SysUser> selectAllocatedList(SysUser user);
+    List<SysUser> getAllFormman(Long tenantId);
 
     /**
      * 根据条件分页查询未分配用户角色列表

+ 6 - 0
src/main/java/cn/ezhizao/project/system/service/impl/SysUserServiceImpl.java

@@ -140,6 +140,12 @@ public class SysUserServiceImpl implements ISysUserService {
         return userMapper.selectAllocatedList(user);
     }
 
+    @Override
+    public List<SysUser> getAllFormman(Long tenantId) {
+        return userMapper.getAllFormman(tenantId);
+    }
+
+
     /**
      * 根据条件分页查询未分配用户角色列表
      *

+ 5 - 0
src/main/resources/mybatis/system/SysUserMapper.xml

@@ -335,6 +335,11 @@
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
 	</select>
+	<select id="getAllFormman" resultType="SysUser">
+		select t1.* from sys_user t1 left join sys_dept_user t2 on t1.user_id = t2.user_id
+		where t1.del_flag = '0' and t2.deleted = 0 and t2.is_formman = 1
+		<if test="tenantId != null and tenantId != 0"> AND t1.tenant_id = #{tenantId}</if>
+	</select>
 
 	<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
 		SELECT distinct u.user_id, u.user_name, u.nick_name, u.email, u.phone_number, u.status, u.create_time