From 99f928a971a5d2c58d5fafb38728471a39b5a759 Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期四, 02 十一月 2023 15:20:57 +0800
Subject: [PATCH] 优化人员信息

---
 igds-manager/src/main/java/com/ld/igds/oa/service/HDeptDeviceService.java |   88 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 84 insertions(+), 4 deletions(-)

diff --git a/igds-manager/src/main/java/com/ld/igds/oa/service/HDeptDeviceService.java b/igds-manager/src/main/java/com/ld/igds/oa/service/HDeptDeviceService.java
index 7b64f1b..0e6091b 100644
--- a/igds-manager/src/main/java/com/ld/igds/oa/service/HDeptDeviceService.java
+++ b/igds-manager/src/main/java/com/ld/igds/oa/service/HDeptDeviceService.java
@@ -1,17 +1,23 @@
 package com.ld.igds.oa.service;
 
+import com.bstek.bdf2.core.model.DefaultDept;
 import com.bstek.bdf2.core.orm.hibernate.HibernateDao;
 import com.bstek.dorado.data.provider.Page;
 import com.ld.igds.models.DeptDevice;
 import com.ld.igds.models.DeviceCheckup;
+import com.ld.igds.sys.service.SysDeptService;
 import com.ld.igds.util.ContextUtil;
 import com.ld.igds.util.DateUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.hibernate.Session;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -21,6 +27,10 @@
  */
 @Component
 public class HDeptDeviceService extends HibernateDao {
+
+    @Autowired
+    private SysDeptService sysDeptService;
+
 
     //=====================================搴撳尯璁惧=======================================//
     public void pageData(Page<DeptDevice> page, Map<String, Object> param)
@@ -45,9 +55,15 @@
 
         Session session = this.getSessionFactory().openSession();
         try {
-            data.setCompanyId(ContextUtil.getCompanyId());
-            if (null == data.getId()) {
-                data.setId(ContextUtil.getUUID());
+            if (null == data.getCompanyId()) {
+                data.setCompanyId(ContextUtil.getCompanyId());
+            }
+            if (StringUtils.isEmpty(data.getDeptId())) {
+                data.setDeptId(ContextUtil.subDeptId(null));
+            }
+            data.setUpdateTime(new Date());
+            if (null == data.getSbbh()) {
+                data.setSbbh(DateFormatUtils.format(new Date(), "yyyyMMdd") + getIndex(data.getCompanyId()));
             }
             session.saveOrUpdate(data);
         } finally {
@@ -57,10 +73,51 @@
         return null;
     }
 
+    public String getIndex(String companyId) {
+        List<DeptDevice> list = getDataByTime(companyId);
+        int index = 10000;
+        if (list != null && list.size() > 0) {
+            String id = list.get(0).getSbbh().substring(8);
+            int temp = Integer.valueOf(id) + 1;
+            index += temp;
+        }else {
+            index ++;
+        }
+        return String.valueOf(index).substring(1);
+    }
+
+    private List<DeptDevice> getDataByTime(String companyId) {
+        String hql = " from " + DeptDevice.class.getName()
+                + " where companyId =:companyId ";
+
+        Map<String, Object> args = new HashMap<String, Object>();
+        args.put("companyId", companyId);
+
+        hql += " and updateTime >:startTime";
+        args.put("startTime", DateUtil.getCurZero(new Date()));
+
+
+        hql += " and updateTime <:endTime";
+        args.put("endTime", DateUtil.getNextZero(new Date()));
+
+
+        hql += " order by id desc";
+
+        return this.query(hql, args);
+    }
+
     public String delData(DeptDevice data) {
         Session session = this.getSessionFactory().openSession();
         try {
+            Map<String, Object> param = new HashMap<>();
+            param.put("code", data.getSbbh());
+            List<DeviceCheckup> list = this.listCheck(param);
+            for (DeviceCheckup checkup : list) {
+                session.delete(checkup);
+            }
             session.delete(data);
+        } catch (Exception e) {
+            e.printStackTrace();
         } finally {
             session.flush();
             session.close();
@@ -88,11 +145,34 @@
 
     }
 
+    public List<DeviceCheckup> listCheck(Map<String, Object> param) throws Exception {
+        String hql = " from " + DeviceCheckup.class.getName() + " where companyId=:companyId";
+
+        Map<String, Object> args = new HashMap<>();
+        args.put("companyId", ContextUtil.getCompanyId());
+
+        if (null != param) {
+            hql = buildHql(hql, param, args);
+        }
+
+        hql += " order by jdsj desc";
+
+        return this.query(hql, args);
+    }
+
     public String saveCheck(DeviceCheckup data) {
 
         Session session = this.getSessionFactory().openSession();
         try {
-            data.setCompanyId(ContextUtil.getCompanyId());
+            if (null == data.getCompanyId()) {
+                data.setCompanyId(ContextUtil.getCompanyId());
+            }
+            if (StringUtils.isEmpty(data.getKqdm())) {
+                data.setKqdm(ContextUtil.subDeptId(null));
+            }
+            DefaultDept dept = sysDeptService.getCacheDept(data.getCompanyId(), data.getKqdm());
+            data.setKqmc(dept.getName());
+            data.setZhgxsj(new Date());
             if (null == data.getId()) {
                 data.setId(ContextUtil.getUUID());
             }

--
Gitblit v1.9.3