From 69cd9f59a0fabf12f8c9147fcba7f69817a870b3 Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期一, 06 十一月 2023 23:40:59 +0800 Subject: [PATCH] 更新仓内抓拍2 --- igds-inout/src/main/java/com/ld/igds/m/service/HVarietyChangeService.java | 214 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 150 insertions(+), 64 deletions(-) diff --git a/igds-inout/src/main/java/com/ld/igds/m/service/HVarietyChangeService.java b/igds-inout/src/main/java/com/ld/igds/m/service/HVarietyChangeService.java index cbc2d81..2c4043f 100644 --- a/igds-inout/src/main/java/com/ld/igds/m/service/HVarietyChangeService.java +++ b/igds-inout/src/main/java/com/ld/igds/m/service/HVarietyChangeService.java @@ -2,9 +2,16 @@ import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; +import com.ld.igds.constant.RedisConst; +import com.ld.igds.m.InoutManageUtil; +import com.ld.igds.models.InoutStockChange; +import com.ld.igds.util.DateUtil; +import com.ld.igds.util.RedisUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; import org.hibernate.Session; import org.springframework.stereotype.Component; @@ -13,83 +20,162 @@ import com.ld.igds.models.InoutVarietyChange; import com.ld.igds.util.ContextUtil; +import javax.annotation.Resource; + +import static com.bstek.dorado.view.widget.form.DateTimeSpinnerType.date; + @Component public class HVarietyChangeService extends HibernateDao { - public void pageData(Page<InoutVarietyChange> page, Map<String, Object> param) - throws Exception { - String hql = " from " + InoutVarietyChange.class.getName() - + " where companyId=:companyId"; + @Resource + private RedisUtil redisUtil; - Map<String, Object> args = new HashMap<String, Object>(); - args.put("companyId", ContextUtil.getCompanyId()); + public void pageData(Page<InoutVarietyChange> page, Map<String, Object> param) + throws Exception { + String hql = " from " + InoutVarietyChange.class.getName() + + " where companyId=:companyId"; - if (null != param) { + Map<String, Object> args = new HashMap<String, Object>(); + args.put("companyId", ContextUtil.getCompanyId()); - String str = (String) param.get("depotId"); - if (StringUtils.isNotEmpty(str)) { - hql += " and depotId =:depotId"; - args.put("depotId", str); - } + if (null != param) { - str = (String) param.get("foodVariety"); - if (StringUtils.isNotEmpty(str)) { - hql += " and foodVariety =:foodVariety"; - args.put("foodVariety", str); - } + String str = (String) param.get("depotId"); + if (StringUtils.isNotEmpty(str)) { + hql += " and depotId =:depotId"; + args.put("depotId", str); + } - str = (String) param.get("type"); - if (StringUtils.isNotEmpty(str)) { - hql += " and type =:type"; - args.put("type", str); - } - } + str = (String) param.get("foodVariety"); + if (StringUtils.isNotEmpty(str)) { + hql += " and foodVariety =:foodVariety"; + args.put("foodVariety", str); + } - String count = "select count(*) " + hql; + str = (String) param.get("type"); + if (StringUtils.isNotEmpty(str)) { + hql += " and type =:type"; + args.put("type", str); + } + } - hql += " order by changeTime desc"; + String count = "select count(*) " + hql; - this.pagingQuery(page, hql, count, args); + hql += " order by changeTime desc"; - } + this.pagingQuery(page, hql, count, args); - public void saveData(InoutVarietyChange data) { - if (null == data.getCompanyId()) { - data.setCompanyId(ContextUtil.getCompanyId()); - } - if (null == data.getDeptId()) { - data.setDeptId(ContextUtil.subDeptId(null)); - } - Session session = this.getSessionFactory().openSession(); - data.setUpdateTime(new Date()); - try { - if (null == data.getId()) { - data.setId(ContextUtil.getUUID()); - session.save(data); - } else { - session.update(data); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - session.flush(); - session.close(); - } - } + } - public String delData(InoutVarietyChange data) { - Session session = this.getSessionFactory().openSession(); - try { - if (null != data.getId()) { - session.delete(data); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - session.flush(); - session.close(); - } - return null; - } + public void saveData(InoutVarietyChange data) { + if (null == data.getCompanyId()) { + data.setCompanyId(ContextUtil.getCompanyId()); + } + if (null == data.getDeptId()) { + data.setDeptId(ContextUtil.subDeptId(null)); + } + Session session = this.getSessionFactory().openSession(); + data.setUpdateTime(new Date()); + + try { + if (null == data.getId()) { + String id = createId(data.getChangeTime(), ContextUtil.getCompanyId()); + data.setId(id); + session.save(data); + } else { + session.update(data); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + session.flush(); + session.close(); + } + } + + public String delData(InoutVarietyChange data) { + Session session = this.getSessionFactory().openSession(); + try { + if (null != data.getId()) { + session.delete(data); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + session.flush(); + session.close(); + } + return null; + } + + public List<InoutVarietyChange> queryAll(Map<String, Object> param) { + + String hql = "from " + InoutVarietyChange.class.getName() + + " where 1=1 "; + Map<String, Object> args = new HashMap<String, Object>(); + Date date = (Date) param.get("dateTime"); + if (null != date) { + hql += " and updateTime >= :startTime and updateTime < :endTime"; + args.put("startTime", DateUtil.getCurZero(date)); + args.put("endTime", DateUtil.getNextZero(date)); + } + + hql += " order by updateTime desc "; + return this.query(hql, args); + } + + public List<InoutVarietyChange> getMaxId(Map<String, Object> param) { + + String hql = "from " + InoutVarietyChange.class.getName() + " where 1 = 1 "; + Map<String, Object> args = new HashMap<String, Object>(); + if (null != param) { + String str = (String) param.get("timeKey"); + if (StringUtils.isNotEmpty(str)) { + hql += " and id like :timeKey"; + args.put("timeKey", str); + } + } + hql += " order by id desc "; + return this.query(hql, args); + } + + public String createId(Date date, String companyId) { + // 鏃堕棿鎴虫爣绛� + String timeKey = DateFormatUtils.format(date, "yyyyMMdd"); + + // 浠庣紦瀛樹腑鑾峰彇宸叉湁鐨勭粍缁囩紪鐮� + String cacheKey = RedisConst.buildKey(companyId, + InoutManageUtil.CACHE_VARIETY_ID); + + String cacheId = (String) redisUtil.get(cacheKey); + + if (null != cacheId && cacheId.indexOf(timeKey) >= 0) { + String temp = cacheId.substring(cacheId.length() - 3); + Integer i = Integer.valueOf(temp); + i++; + cacheId = timeKey + String.format("%03d", i); + } else { + Map<String, Object> args = new HashMap<>(); + args.put("timeKey", timeKey + "%"); + List<InoutVarietyChange> result = getMaxId(args); + + if (null == result || result.size() == 0) { + cacheId = timeKey + "001"; + } else { + int max = 0; + int num; + for (InoutVarietyChange varietyChange : result) { + num = Integer.parseInt(varietyChange.getId().substring(varietyChange.getId().length() - 3)); + max = Math.max(max, num); + } + cacheId = timeKey + String.format("%03d", ++max); + } + } + // 鏇存柊缂撳瓨 + redisUtil.set(cacheKey, cacheId); + + return cacheId; + } + } -- Gitblit v1.9.3