Przeglądaj źródła

零件的添加与修改

5 lat temu
rodzic
commit
ce63e6d13b

+ 1 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/constant/Constant.java

@@ -44,7 +44,7 @@ public class Constant {
     public static final String WECHAT_SECRET = "473ee2fab33e6d8a885800403d777581";//secret
     public static final String WECHAT_APPID = "wx42c0f9d19a4756a7";//appId
     public static final String PLAN_TYPE = "保养类型";//保养类型
-    public static final String MAIN_TAIN_NOTICE = "该模具需要保养请前往处理";//保养通知
+    public static final String MAIN_TAIN_NOTICE = "该模具需要保养,请前往处理";//保养通知
     public static final String MAINTAIN_NAME_FIRST = "动作";//保养类型名称0
     public static final String MAINTAIN_NAME_SECOND = "易损件";//保养类型名称1
     public static final String MAINTAIN_WAY_FIRST = "喷漆";//对应保养类型动作

+ 2 - 2
cloud-model/src/main/java/com/hssx/cloudmodel/controller/MouldController.java

@@ -40,9 +40,9 @@ public class MouldController {
     private ProjectService projectService;
     /**
      * 添加/修改模具设备
-     * 添加参数:equipmentId 设备id, modelNo 模具编号 ,modelName 模具名称
+     * 添加参数:equipmentId 设备id, modelNo 模具编号 ,modelName 模具名称 ,maintainCount 保养设定次数:"1,2,3"
      * 修改参数:id 模具id, settingLife 使用年限, initialModulus 初始模次 equipmentId 设备id,
-     * produceCompanyId 生产方公司id,ocCycle 每模平均周期,rfid rfid码,
+     * produceCompanyId 生产方公司id,ocCycle 每模平均周期,rfid rfid码,maintainCount 保养设定次数:"1,2,3"
      * @return
      */
     @ApiOperation("添加/修改模具")

+ 14 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/entity/Mould.java

@@ -159,10 +159,15 @@ public class Mould extends Model<Mould> {
     @TableField("run_times")
     private Integer runTimes;
     /**
-     * 保养提醒 0-提醒,1-不提醒
+     * 保养提醒 0-不需要保养,1-保养
      */
     @TableField("is_maintain")
     private Integer isMaintain;
+    /**
+     * 保养设定次数:"1,2,3"
+     */
+    @TableField("maintain_count")
+    private String maintainCount;
 
 
     public Integer getId() {
@@ -357,6 +362,14 @@ public class Mould extends Model<Mould> {
         this.isMaintain = isMaintain;
     }
 
+    public String getMaintainCount() {
+        return maintainCount;
+    }
+
+    public void setMaintainCount(String maintainCount) {
+        this.maintainCount = maintainCount;
+    }
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 2 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/mapper/NewsNoticeUserMapper.java

@@ -2,6 +2,7 @@ package com.hssx.cloudmodel.mapper;
 
 import com.hssx.cloudmodel.entity.NewsNoticeUser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface NewsNoticeUserMapper extends BaseMapper<NewsNoticeUser> {
 
+    void updateNewsNoticeUserByNewsNoticeId(@Param("id") Integer id);
 }

+ 2 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldFileServiceImpl.java

@@ -380,7 +380,7 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
                         dir.mkdirs();
                     }
                     String fileName = "";
-                    if (file != null && !file.isEmpty()) {
+                    if (!file.isEmpty()) {
                         fileName = file.getOriginalFilename();
                         String fileNamePrex = fileName.substring(0, fileName.lastIndexOf("."));
                         String[] split = fileNamePrex.split("\\+");
@@ -404,6 +404,7 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
                         fileName = rand + sufix;
                         partFile.setFileType(sufix);//文件后缀
                         partFile.setFileUrl("/upload/" + fileName);
+//                        partFile.setUplodtorId();
                         File saveFile = new File(dir, fileName);
                         mouldFileMapper.insert(partFile);
                         try {

+ 5 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldMaintainServiceImpl.java

@@ -47,12 +47,17 @@ public class MouldMaintainServiceImpl extends ServiceImpl<MouldMaintainMapper, M
     ProjectMapper projectMapper;
     @Resource
     ProjectUserMapper projectUserMapper;
+    @Resource
+    NewsNoticeMapper newsNoticeMapper;
+    @Resource
+    NewsNoticeUserMapper newsNoticeUserMapper;
 
     @Override
     public HttpRespMsg addMaintain(MultipartFile file, String path, MouldMaintain mouldMaintain, String token) {
         HttpRespMsg msg = new HttpRespMsg();
         Mould mould = mouldMapper.selectById(mouldMaintain.getMouldId());
         User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", token));
+        //将之前的所有保养提醒消息更新成已读
         if (user != null) {
             if (file != null && !file.isEmpty()) {
                 File dir = null;

+ 52 - 17
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldServiceImpl.java

@@ -13,6 +13,7 @@ import com.hssx.cloudmodel.service.MouldService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.hssx.cloudmodel.util.HttpKit;
 import com.hssx.cloudmodel.util.HttpRespMsg;
+import com.hssx.cloudmodel.util.ListUtil;
 import com.hssx.cloudmodel.util.WechatTemplateMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringEscapeUtils;
@@ -25,6 +26,7 @@ import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.*;
 
 /**
@@ -161,14 +163,29 @@ public class MouldServiceImpl extends ServiceImpl<MouldMapper, Mould> implements
         //查询所有被分配到项目的模具
         List<Mould> moulds = mouldMapper.selectList(new QueryWrapper<Mould>().isNotNull("project_id"));
         for (Mould mould : moulds) {
-            if (mould.getInitialModulus() < mould.getRunTimes()) {
-                //提示保养,向模具资产方人员公众号推送消息
-                User user = userMapper.selectOne(new QueryWrapper<User>().eq("parent_id", Constant.SYS_ID).eq("company_id", mould.getCompanyId()));
-                MouldEquipmentVO mouldEquipmentVO = new MouldEquipmentVO();
-                mouldEquipmentVO.setPlanType(Constant.PLAN_TYPE);
-                mouldEquipmentVO.setArea(mould.getArea());
-                mouldEquipmentVO.setName(mould.getModelName());
-                msg = sendMaintainTemplateMessage(Constant.MAINTAIN_NOTICE_TEMPLATE_ID, user.getOpenid(), Constant.WECHAT_APPID, Constant.WECHAT_SECRET, mouldEquipmentVO);
+            List<Integer> counts = ListUtil.convertIntegerIdsArrayToList(mould.getMaintainCount());
+            Collections.sort(counts);
+            Integer noticeCount = 0;
+            if (counts.size() > 0) {
+                for (Integer count : counts) {
+                    if (count <= mould.getRunTimes()) {
+                        noticeCount = count;
+                    }
+                }
+            }
+            if (noticeCount != 0) {
+                //需要保养
+                Mould m = new Mould();
+                m.setId(mould.getId());
+                m.setIsMaintain(1);
+                mouldMapper.updateById(m);
+//                //提示保养,向模具资产方人员公众号推送消息
+//                User user = userMapper.selectOne(new QueryWrapper<User>().eq("parent_id", Constant.SYS_ID).eq("company_id", mould.getCompanyId()));
+//                MouldEquipmentVO mouldEquipmentVO = new MouldEquipmentVO();
+//                mouldEquipmentVO.setPlanType(Constant.PLAN_TYPE);
+//                mouldEquipmentVO.setArea(mould.getArea());
+//                mouldEquipmentVO.setName(mould.getModelName());
+//                msg = sendMaintainTemplateMessage(Constant.MAINTAIN_NOTICE_TEMPLATE_ID, user.getOpenid(), Constant.WECHAT_APPID, Constant.WECHAT_SECRET, mouldEquipmentVO);
                 //添加通知消息
                 Project project = projectMapper.selectById(mould.getProjectId());
                 //查询到参与该项目的人
@@ -184,19 +201,37 @@ public class MouldServiceImpl extends ServiceImpl<MouldMapper, Mould> implements
                     userIds.add(projectApprove.getApproverId());
                 }
                 List<User> users = userMapper.selectList(new QueryWrapper<User>().in("id", userIds));
-                for (User u : users) {
-                    //添加通知的消息
-                    NewsNotice newsNotice = new NewsNotice();
+                //查询到之前模具保养的消息
+                NewsNotice oldNews = newsNoticeMapper.selectOne(new QueryWrapper<NewsNotice>().eq("ref_id", mould.getId()).eq("notice_type", 1));
+                NewsNotice newsNotice = new NewsNotice();
+                if(oldNews != null){
+                    NewsNotice newNews = new NewsNotice();
+                    newNews.setId(oldNews.getId());
+                    oldNews.setIndate(LocalDateTime.now());
+                    newsNoticeMapper.updateById(oldNews);
+                    newsNoticeUserMapper.updateNewsNoticeUserByNewsNoticeId(oldNews.getId());
+//                    for (User u : users) {
+//                        //添加通知的消息
+//                        NewsNoticeUser newsNoticeUser = new NewsNoticeUser();
+//                        newsNoticeUser.setNewsId(oldNews.getId());
+//                        newsNoticeUser.setUserId(u.getId());
+//                        newsNoticeUser.setIsRead(0);
+//                        newsNoticeUserMapper.updateById(newsNoticeUser);
+//                    }
+                }else{
                     newsNotice.setNoticeType(Constant.MAINTAIN_TYPE);
                     newsNotice.setProjectId(project.getId());
                     newsNotice.setProjectName(project.getProjectName());
                     newsNotice.setRefId(mould.getId());
                     newsNotice.setContent(Constant.MAIN_TAIN_NOTICE);
                     newsNoticeMapper.insert(newsNotice);
-                    NewsNoticeUser newsNoticeUser = new NewsNoticeUser();
-                    newsNoticeUser.setNewsId(newsNotice.getId());
-                    newsNoticeUser.setUserId(u.getId());
-                    newsNoticeUserMapper.insert(newsNoticeUser);
+                    for (User u : users) {
+                        //添加通知的消息
+                        NewsNoticeUser newsNoticeUser = new NewsNoticeUser();
+                        newsNoticeUser.setNewsId(newsNotice.getId());
+                        newsNoticeUser.setUserId(u.getId());
+                        newsNoticeUserMapper.insert(newsNoticeUser);
+                    }
                 }
             }
         }
@@ -218,9 +253,9 @@ public class MouldServiceImpl extends ServiceImpl<MouldMapper, Mould> implements
     @Override
     public HttpRespMsg isMaintain(Mould mould) {
         HttpRespMsg msg = new HttpRespMsg();
-        if(mould.getId() !=null){
+        if (mould.getId() != null) {
             mouldMapper.updateById(mould);
-        }else{
+        } else {
             msg.setError("模具id不存在");
         }
         return msg;

+ 72 - 67
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/PartServiceImpl.java

@@ -33,7 +33,7 @@ import java.util.List;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author 吴涛涛
@@ -47,81 +47,86 @@ public class PartServiceImpl extends ServiceImpl<PartMapper, Part> implements Pa
     UserMapper userMapper;
     @Resource
     MouldMapper mouldMapper;
+
     @Override
     public HttpRespMsg importPartExcel(MultipartFile file, UserVO userVO) throws IOException, InvalidFormatException {
         HttpRespMsg msg = new HttpRespMsg();
         User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
-        if(user != null){
-            List<Part> parts = partMapper.selectList(new QueryWrapper<Part>().eq("mould_id",userVO.getMouldId()));
+        if (user != null) {
+            List<Part> parts = partMapper.selectList(new QueryWrapper<Part>().eq("mould_id", userVO.getMouldId()));
 //            try {
-                File f = null;
-                if ("".equals(file) || file.getSize() <= 0) {
-                    file = null;
-                } else {
-                    //获取输入流
-                    InputStream ins = file.getInputStream();
-                    //新建一个文件
-                    f = new File(file.getOriginalFilename());
-                    //输入流转file
-                    inputStreamToFile(ins, f);
-                }
-                Mould mould = mouldMapper.selectById(userVO.getMouldId());
-                //根据文件创建工作簿
-                XSSFWorkbook wookbook = new XSSFWorkbook(f);
-                XSSFSheet sheet = wookbook.getSheetAt(0);
-                int s = sheet.getLastRowNum();
-            System.out.println("s==========>"+s);
-                // 遍历当前sheet中的所有行,第一行是数据对应的字段,不是数据,
-                // 故从第二行开始遍历拿数据(如果有标题的话,则从第三行开始拿数据)
-                for (int j = 1; j < sheet.getLastRowNum() + 1; j++) {
-                    XSSFRow row = sheet.getRow(j);
-                    System.out.println("row====>"+row);
-                    //新建零件
-                    Part part = new Part();
-                    part.setMouldId(mould.getId());
-                    // 遍历所有的列,下面的10是excle表格里共有10列即对应了10个字段
-                    for (int y = 0; y < 2; y++) {
-                        XSSFCell cell = row.getCell(y);
-                        System.out.println("cell====>"+row);
-                        cell.setCellType(Cell.CELL_TYPE_STRING);
-                        //取出当前列的值
-                        String value = cell.getStringCellValue();
-                        //判断第几列插入数据,后面就是从列中取数据往对象里放,然后插入到数据库里
-                        if (value == null && "".equals(value)) {
-                            log.error("数据不可为空");
-                            msg.setError("数据不可为空");
-                            return msg;
-                        } else if (y == 0) {
-                            //零件编号
-                            for (Part p : parts) {
-                                if(value.equals(p.getPartNo())){
-                                    msg.setError("第"+j+"行的零件编号:"+value+"已被占用,请修改后重新上传");
-                                    return msg;
-                                }
-                            }
-                            part.setPartNo(value);
-                        } else if (y == 1) {
-                            //零件名称
-                            part.setPartName(value);
-                        } else if (y == 2) {
-                            //零件寿命
-                            part.setPartLife(Integer.parseInt(value));
-                            if(Integer.parseInt(value)<mould.getSettingLife()){
-                                part.setIsVulnerable(1);
+            File f = null;
+            if ("".equals(file) || file.getSize() <= 0) {
+                file = null;
+            } else {
+                //获取输入流
+                InputStream ins = file.getInputStream();
+                //新建一个文件
+                f = new File(file.getOriginalFilename());
+                //输入流转file
+                inputStreamToFile(ins, f);
+            }
+            Mould mould = mouldMapper.selectById(userVO.getMouldId());
+            //根据文件创建工作簿
+            XSSFWorkbook wookbook = new XSSFWorkbook(f);
+            XSSFSheet sheet = wookbook.getSheetAt(0);
+            int s = sheet.getLastRowNum();
+            System.out.println("s==========>" + s);
+            // 遍历当前sheet中的所有行,第一行是数据对应的字段,不是数据,
+            // 故从第二行开始遍历拿数据(如果有标题的话,则从第三行开始拿数据)
+            for (int j = 1; j < sheet.getLastRowNum() + 1; j++) {
+                XSSFRow row = sheet.getRow(j);
+                System.out.println("row====>" + row);
+                //新建零件
+                Part part = new Part();
+                part.setMouldId(mould.getId());
+                // 遍历所有的列,下面的10是excle表格里共有10列即对应了10个字段
+                for (int y = 0; y < 3; y++) {
+                    XSSFCell cell = row.getCell(y);
+                    System.out.println("cell====>" + row);
+                    cell.setCellType(Cell.CELL_TYPE_STRING);
+                    //取出当前列的值
+                    String value = cell.getStringCellValue();
+                    //判断第几列插入数据,后面就是从列中取数据往对象里放,然后插入到数据库里
+                    if (value == null && "".equals(value)) {
+                        log.error("数据不可为空");
+                        msg.setError("数据不可为空");
+                        return msg;
+                    } else if (y == 0) {
+                        //零件编号
+                        for (Part p : parts) {
+                            if (value.equals(p.getPartNo())) {
+                                msg.setError("第" + j + "行的零件编号:" + value + "已被占用,请修改后重新上传");
+                                return msg;
                             }
-                            part.setPartLife(Integer.parseInt(value));
                         }
+                        part.setPartNo(value);
+                    } else if (y == 1) {
+                        //零件名称
+                        part.setPartName(value);
+                    } else if (y == 2) {
+                        //零件寿命
+                        part.setPartLife(Integer.parseInt(value));
+                        if (Integer.parseInt(value) < mould.getSettingLife()) {
+                            part.setIsVulnerable(1);
+                        }
+                        part.setPartLife(Integer.parseInt(value));
                     }
-                    part.setCreatorId(user.getId());
-                    part.setCreator(user.getUsername());
-                    partMapper.insert(part);
                 }
+                part.setCreatorId(user.getId());
+                part.setCreator(user.getUsername());
+                partMapper.insert(part);
+            }
+            //用完后删除临时文件
+            if (!f.isDirectory()) {
+                f.delete();
+            }
 //            } catch (Exception e) {
 //                log.error(e.getMessage(), e);
 //                msg.setError(e.getMessage());
 //                return msg;
 //            }
-        }else{
+        } else {
             msg.setError("用户不存在或者未登录");
         }
         return msg;
@@ -130,7 +135,7 @@ public class PartServiceImpl extends ServiceImpl<PartMapper, Part> implements Pa
     @Override
     public HttpRespMsg add(Part part, UserVO userVO) {
         HttpRespMsg msg = new HttpRespMsg();
-        if(part.getId() != null){
+        if (part.getId() != null) {
             //修改
             Part m = partMapper.selectOne(new QueryWrapper<Part>().eq("part_no", part.getPartNo()));
             if ((m != null && m.getId() == part.getId()) || m == null) {
@@ -138,11 +143,11 @@ public class PartServiceImpl extends ServiceImpl<PartMapper, Part> implements Pa
             } else {
                 msg.setError("当前模具编号已存在,请重新输入其他模具编号");
             }
-        }else{
+        } else {
             //添加
             Mould mould = mouldMapper.selectById(userVO.getMouldId());
             User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
-            if(part.getPartLife()<mould.getSettingLife()){
+            if (part.getPartLife() < mould.getSettingLife()) {
                 part.setIsVulnerable(1);
             }
             part.setCreatorId(user.getId());
@@ -156,11 +161,11 @@ public class PartServiceImpl extends ServiceImpl<PartMapper, Part> implements Pa
     public HttpRespMsg getList(UserVO userVO) {
         HttpRespMsg msg = new HttpRespMsg();
         User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
-        if(user != null){
+        if (user != null) {
             List<PartVO> list = new ArrayList<>();
             list = partMapper.selectPartFileByMouldId(userVO);
             msg.data = list;
-        }else{
+        } else {
             msg.setError("用户不存在或者未登录");
         }
         return msg;

+ 4 - 3
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/VnoticeUserServiceImpl.java

@@ -58,9 +58,9 @@ public class VnoticeUserServiceImpl extends ServiceImpl<VnoticeUserMapper, Vnoti
                 isRedPoint = true;
             }
             PageInfo<VnoticeUser> pageInfo = new PageInfo<VnoticeUser>(list);
-            Map<String,Object> map = new HashMap<>();
-            map.put("list",pageInfo);
-            map.put("isRedPoint",isRedPoint);
+            Map<String, Object> map = new HashMap<>();
+            map.put("list", pageInfo);
+            map.put("isRedPoint", isRedPoint);
             msg.data = map;
         } else {
             msg.setError("用户不存在或者未登录");
@@ -71,6 +71,7 @@ public class VnoticeUserServiceImpl extends ServiceImpl<VnoticeUserMapper, Vnoti
     @Override
     public HttpRespMsg read(Integer id) {
         HttpRespMsg msg = new HttpRespMsg();
+        //不是保养消息才改成已读,保养消息自动忽略
         NewsNoticeUser item = new NewsNoticeUser();
         item.setId(id);
         item.setIsRead(1);

+ 1 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/util/FileUtil.java

@@ -20,7 +20,7 @@ public class FileUtil {
 	}
 	
 	public static void main(String[] args) {
-		long l = 1024*1024*1*1024;
+		long l = 1024 * 1024 * 1 * 1024;
 		System.out.println(getReadableFileSize(l));
 	}
 }

+ 6 - 3
cloud-model/src/main/resources/mapper/MouldMapper.xml

@@ -28,6 +28,7 @@
         <result column="produce_company_id" property="produceCompanyId" />
         <result column="run_times" property="runTimes" />
         <result column="is_maintain" property="isMaintain" />
+        <result column="maintain_count" property="maintainCount" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -38,6 +39,7 @@
 
     <resultMap id="BaseResultMapVO" type="com.hssx.cloudmodel.entity.vo.MouldVO">
         <id column="id" property="id"/>
+        <result column="maintain_count" property="maintainCount" />
         <result column="model_no" property="modelNo"/>
         <result column="model_name" property="modelName"/>
         <result column="oc_cycle" property="ocCycle"/>
@@ -68,6 +70,7 @@
         <result column="hillNumber" property="hillNumber"/>
         <result column="ownerCompanyName" property="ownerCompanyName"/>
         <result column="companyName" property="companyName"/>
+        <result column="is_maintain" property="isMaintain" />
     </resultMap>
 
     <update id="updateMouldByProjectId">
@@ -76,7 +79,7 @@
 
     <select id="selectListByCondition" resultMap="BaseResultMapVO">
         select
-        tbm.id id,tbm.model_no model_no, tbm.model_name model_name,tbm.initial_modulus initial_modulus,tbm.rfid rfid,tbm.creator_id creator_id,tbm.equipment_id equipment_id,
+        tbm.id id,tbm.model_no model_no, tbm.model_name model_name,tbm.initial_modulus initial_modulus,tbm.rfid rfid,tbm.creator_id creator_id,tbm.equipment_id equipment_id,tbm.is_maintain,
         tbmp.end_time endTime,tbm.state state,tbp.project_name projectName,tbc.company_name companyName,tbco.company_name produceCompany,
         tbp.manager mangerName,tbm.factory_name factory_name,tbm.area area,tbmp.hill_number hillNumber,tbm.oc_cycle oc_cycle,tbp.manager_id managerId,
         tbmp.equipment_no equipmentNo,tbm.setting_life setting_life,tbp.owner_company_name ownerCompanyName,tbm.run_times run_times
@@ -114,7 +117,7 @@
     </select>
     <select id="selectListByConditionByProject" resultMap="BaseResultMapVO">
         select
-        tbm.id id,tbm.model_no model_no, tbm.model_name model_name,tbm.initial_modulus initial_modulus,tbm.rfid rfid,tbp.manager_id managerId,tbm.equipment_id equipment_id,
+        tbm.id id,tbm.model_no model_no, tbm.model_name model_name,tbm.initial_modulus initial_modulus,tbm.rfid rfid,tbp.manager_id managerId,tbm.equipment_id equipment_id,is_maintain,
         tbmp.end_time endTime,tbm.state state,tbp.project_name projectName,tbc.company_name companyName,tbco.company_name produceCompany,
         tbp.manager mangerName,tbm.factory_name factory_name,tbm.area area,tbmp.hill_number hillNumber,tbm.oc_cycle oc_cycle,tbm.creator_id creator_id,
         tbmp.equipment_no equipmentNo,tbm.setting_life setting_life,tbp.owner_company_name ownerCompanyName,tbm.run_times run_times
@@ -149,7 +152,7 @@
 
     <select id="getDetailById" resultMap="BaseResultMapVO">
     select
-        tbm.project_id project_id, tbm.setting_life setting_life, tbm.area area,tbm.equipment_id equipment_id,
+        tbm.project_id project_id, tbm.setting_life setting_life, tbm.area area,tbm.equipment_id equipment_id,tbm.maintain_count maintain_count,is_maintain,
         tbm.id id,tbm.model_no model_no, tbm.model_name,tbm.initial_modulus initial_modulus,tbp.manager_id managerId,
         tbmp.end_time endTime,tbm.state state,tbp.project_name projectName,tbco.company_name produceCompany,tbm.creator_id creator_id,
         tbp.manager mangerName,tbm.factory_name factory_name,tbm.area area,tbm.rfid rfid,tbm.oc_cycle oc_cycle,tbc.company_name companyName,

+ 9 - 1
cloud-model/src/main/resources/mapper/NewsNoticeUserMapper.xml

@@ -14,5 +14,13 @@
     <sql id="Base_Column_List">
         id, user_id, is_read, news_id
     </sql>
-
+    
+    <update id="updateNewsNoticeUserByNewsNoticeId">
+        update
+          tb_news_notice_user
+        set
+          is_read=0
+        where
+           news_id = #{id}
+    </update>
 </mapper>