From b04a7e554c7d7c5ffb6305915bb142ed26d0cabf Mon Sep 17 00:00:00 2001 From: YYC <1833023622@qq.com> Date: 星期三, 01 十一月 2023 14:24:47 +0800 Subject: [PATCH] 药剂Id生成--日期+三位顺序号 --- igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java | 512 +++++++++++++++++++++----------------------------------- 1 files changed, 192 insertions(+), 320 deletions(-) diff --git a/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java b/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java index c61fec0..ec6a803 100644 --- a/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java +++ b/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java @@ -1,369 +1,241 @@ package com.ld.igds.drug.service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Repository; +import com.bstek.bdf2.core.model.DefaultDept; +import com.bstek.bdf2.core.orm.hibernate.HibernateDao; -import com.bstek.bdf2.core.orm.jdbc.JdbcDao; import com.bstek.dorado.data.provider.Page; +import com.ld.igds.constant.RedisConst; import com.ld.igds.models.Drug; import com.ld.igds.models.DrugApply; import com.ld.igds.models.DrugInout; -import com.ld.igds.models.DrugLog; +import com.ld.igds.sys.service.SysDeptService; import com.ld.igds.util.ContextUtil; +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.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** - * 鍚庢湡璋冩暣涓篐ibernate - * @author Andy + * 鑽墏绠$悊 * + * @author Andy */ -@Repository -public class HDrugService extends JdbcDao { +@Service +public class HDrugService extends HibernateDao { + @Autowired + private RedisUtil redisUtil; + @Autowired + private SysDeptService sysDeptService; - public void pageDrug(Page<Drug> page, Map<String, Object> param) - throws Exception { + /** + * 缂撳瓨 鑽墏ID + */ + public static final String CACHE_DRUG_ID = "DRUG_ID"; - List<Object> args = new ArrayList<Object>(); + /** + * 鍒嗛〉鏌ヨ鑽墏淇℃伅 + * + * @param page + * @param param + * @throws Exception + */ + public void pageDrug(Page<Drug> page, Map<String, Object> param) throws Exception { + StringBuffer hql = new StringBuffer(); + Map<String, Object> args = new HashMap<>(); + hql.append(" from " + Drug.class.getName() + " where companyId=:companyId"); + args.put("companyId", ContextUtil.getCompanyId()); + if (null != param) { + buildHql(hql, param, args); + } + hql.append(" order by id "); + String countHql = "select count(*) " + hql.toString(); + this.pagingQuery(page, String.valueOf(hql), countHql, args); + } - args.add(ContextUtil.getCompanyId()); + /** + * 鑾峰彇鑽墏鍒楄〃 + * + * @param companyId + * @return + */ + public List<Drug> listDrug(String companyId, Map<String, Object> param) { + StringBuffer hql = new StringBuffer(" from " + Drug.class.getName() + " where companyId=:companyId"); + Map<String, Object> args = new HashMap<>(); + args.put("companyId", companyId); + if (null != param) { + buildHql(hql, param, args); + } + hql.append(" order by id desc"); + return this.query(hql.toString(), args); - String sql = "select * from D_DRUG where company_id_ =? "; + } - if (null != param) { - String str = (String) param.get("name"); - if (StringUtils.isNotEmpty(str)) { - sql += " and name_ like ?"; - args.add("%" + str + "%"); - } - } - sql += " order by name_ "; + /** + * 鏇存柊鎴栨坊鍔犺嵂鍓備俊鎭� + * + * @param data + * @return + */ + public String saveDrug(Drug data) { + if (null == data.getCompanyId()) { + data.setCompanyId(ContextUtil.getCompanyId()); + } + if (null == data.getDeptId()) { + data.setDeptId(ContextUtil.subDeptId(null)); + } + DefaultDept dept = sysDeptService.getDeptById(data.getDeptId()); + data.setDeptName(dept.getName()); + Session session = this.getSessionFactory().openSession(); + data.setUpdateTime(new Date()); + data.setUpdateUser(ContextUtil.getLoginUserCName()); + try { + if (null == data.getId()) { + String id = createId(data.getCompanyId(), data.getCgrq()); + data.setId(id); + session.save(data); + } else { + session.saveOrUpdate(data); + } - this.pagingQuery(page, sql, args.toArray(), new DrugRowMapper()); - } + } catch (Exception e) { + e.printStackTrace(); + } finally { + session.flush(); + session.close(); + } + return null; + } - public List<Drug> listDrug(String name) { + /** + * 鍒犻櫎鑽墏淇℃伅 + * + * @param data + * @return + */ + public String delDrug(Drug 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; + } - String sql = "select * from D_DRUG where company_id_ =? "; - List<Object> args = new ArrayList<Object>(); + public void pageDrugInout(Page<DrugInout> page, Map<String, Object> param) { - args.add(ContextUtil.getCompanyId()); + } - if (StringUtils.isNotEmpty(name)) { - sql += " and name_ like ?"; - args.add("%" + name + "%"); - } + public String delDrugInout(DrugInout data) { - sql += " order by name_ "; + return null; + } - return this.getJdbcTemplate().query(sql, args.toArray(), - new DrugRowMapper()); - } + public String updateDrugInout(DrugInout data) { - public String delDrug(Drug data) { + return null; + } - if (null == data.getId()) { - return null; - } + private String addDrugInout(DrugInout data) { + return null; + } - String sql = " delete from D_DRUG where ID_ =?"; - this.getJdbcTemplate().update(sql, new Object[] { data.getId() }); + public String auditDrugApply(DrugApply data) { - return null; - } + if (null == data.getAuditUser()) { + data.setAuditUser(ContextUtil.getLoginUserCName()); + } + if (null == data.getAuditTime()) { + data.setApplyTime(new Date()); + } - public String updateDrug(Drug data) { - data.setUpdateTime(new Date()); - data.setUpdateUser(ContextUtil.getLoginUserCName()); - if (null == data.getId()) { - return this.addDrug(data); - } + if (data.getApplyUser().equals(data.getAuditUser())) { + return "绯荤粺锛氬鏍镐汉鍜岀敵璇蜂汉涓嶅彲涓哄悓涓�涓汉銆�"; + } - String sql = " update D_DRUG set name_=?," + "spec_=?," + "dosage_=?," - + "count_=?," + "update_User_=?," + "update_Time_=?," - + "remarks_=? where id_=?"; + return updateDrugApply(data); - this.getJdbcTemplate().update( - sql, - new Object[] { data.getName(), data.getSpec(), - data.getDosage(), data.getCount(), - data.getUpdateUser(), data.getUpdateTime(), - data.getRemarks(), data.getId() }); + } - return null; - } + public String updateDrugApply(DrugApply data) { - private String addDrug(Drug data) { - data.setId(ContextUtil.getUUID()); - data.setCompanyId(ContextUtil.getCompanyId()); + return null; + } - String sql = " insert into D_DRUG(id_,company_ID_,name_,spec_,dosage_,count_,update_User_,update_Time_,remarks_) " - + " values(?,?,?,?,?,?,?,?,?)"; + private String addDrugApply(DrugApply data) { + return null; + } - this.getJdbcTemplate().update( - sql, - new Object[] { data.getId(), data.getCompanyId(), - data.getName(), data.getSpec(), data.getDosage(), - data.getCount(), data.getUpdateUser(), - data.getUpdateTime(), data.getRemarks() }); + public String delDrugApply(DrugApply data) { + return null; + } - return null; - } + public void pageDrugApply(Page<DrugApply> page, Map<String, Object> param) { - public void pageDrugInout(Page<DrugInout> page, Map<String, Object> param) { - List<Object> args = new ArrayList<Object>(); + } - args.add(ContextUtil.getCompanyId()); + public String createId(String companyId, Date time) { - String sql = "select * from D_DRUG_INOUT where company_id_ =? "; + String timeKey = DateFormatUtils.format(time, "yyyyMMdd"); + // 浠庣紦瀛樹腑鑾峰彇宸叉湁鐨勭粍缁囩紪鐮� + String cacheKey = RedisConst.buildKey(companyId, HDrugService.CACHE_DRUG_ID); - if (null != param) { - String str = (String) param.get("name"); + String cacheId = (String) redisUtil.get(cacheKey); - if (StringUtils.isNotEmpty(str)) { - sql += " and person_ like ?"; - args.add("%" + str + "%"); - } + if (null != cacheId && cacheId.indexOf(timeKey) >= 0) { + String temp = cacheId.substring(cacheId.length() - 3); + Integer i = Integer.valueOf(temp); + cacheId = timeKey + String.format("%03d", ++i); + } else { + List<Drug> result = listDrug(companyId, null); + if (null == result || result.size() == 0) { + cacheId = timeKey + "001"; + } else { + Drug drug = result.get(0); + String temp = drug.getId().substring(drug.getId().length() - 3); + Integer i = Integer.valueOf(temp); + cacheId = timeKey + String.format("%03d", ++i); + } + } + // 鏇存柊缂撳瓨 + redisUtil.set(cacheKey, cacheId); - str = (String) param.get("type"); - if (StringUtils.isNotEmpty(str)) { - sql += " and type_ = ?"; - args.add(str); - } - } + return cacheId; + } - sql += " order by update_time_ desc "; - this.pagingQuery(page, sql, args.toArray(), new DrugInoutRowMapper()); - } - - public String delDrugInout(DrugInout data) { - - if (null == data.getId()) { - return null; - } - - String sql = " delete from D_DRUG_INOUT where ID_ =?"; - - this.getJdbcTemplate().update(sql, new Object[] { data.getId() }); - - return null; - } - - public String updateDrugInout(DrugInout data) { - data.setUpdateTime(new Date()); - data.setUpdateUser(ContextUtil.getLoginUserCName()); - if (null == data.getId()) { - return this.addDrugInout(data); - } - - String sql = " update D_DRUG_INOUT set DRUG_ID_=?," + "TIME_=?," - + "PERSON_=?," + "REASON_=?," + "COUNT_=?," + "TYPE_=?," - + "UPDATE_USER_=?,UPDATE_TIME_=?,REMARKS_=? where id_=?"; - - this.getJdbcTemplate() - .update(sql, - new Object[] { data.getDrugId(), data.getTime(), - data.getPerson(), data.getReason(), - data.getCount(), data.getType(), - data.getUpdateUser(), data.getUpdateTime(), - data.getRemarks(), data.getId() }); - - return null; - } - - private String addDrugInout(DrugInout data) { - data.setId(ContextUtil.getUUID()); - data.setCompanyId(ContextUtil.getCompanyId()); - - String sql = "insert into D_DRUG_INOUT(ID_,COMPANY_ID_,DRUG_ID_,TIME_,PERSON_,REASON_,COUNT_,TYPE_,UPDATE_USER_,UPDATE_TIME_,REMARKS_)" - + " values(?,?,?,?,?,?,?,?,?,?,?)"; - - this.getJdbcTemplate().update( - sql, - new Object[] { data.getId(), data.getCompanyId(), - data.getDrugId(), data.getTime(), data.getPerson(), - data.getReason(), data.getCount(), data.getType(), - data.getUpdateUser(), data.getUpdateTime(), - data.getRemarks() }); - return null; - } - - public String delDrugLog(DrugLog data) { - if (null == data.getId()) { - return null; - } - - String sql = " delete from D_DRUG_LOG where ID_ =?"; - - this.getJdbcTemplate().update(sql, new Object[] { data.getId() }); - - return null; - } - - public String updateDrugLog(DrugLog data) { - data.setUpdateTime(new Date()); - data.setUpdateUser(ContextUtil.getLoginUserCName()); - if (null == data.getId()) { - return this.addDrugLog(data); - } - - String sql = " update D_DRUG_LOG set DEPOT_ID_=?," - + "START_=?," - + "END_=?," - + "USER_=?," - + "UPDATE_USER_=?,UPDATE_TIME_=?,REMARKS_=?,DOSE_=? where ID_=?"; - - this.getJdbcTemplate().update( - sql, - new Object[] { data.getDepotId(), data.getStart(), - data.getEnd(), data.getUser(), data.getUpdateUser(), - data.getUpdateTime(), data.getRemarks(), - data.getDose(), data.getId() }); - - return null; - } - - private String addDrugLog(DrugLog data) { - data.setId(ContextUtil.getUUID()); - data.setCompanyId(ContextUtil.getCompanyId()); - - String sql = "insert into D_DRUG_LOG(ID_,COMPANY_ID_,DEPOT_ID_,START_,END_,USER_,UPDATE_USER_,UPDATE_TIME_,REMARKS_,DOSE_)" - + " values(?,?,?,?,?,?,?,?,?,?)"; - - this.getJdbcTemplate() - .update(sql, - new Object[] { data.getId(), data.getCompanyId(), - data.getDepotId(), data.getStart(), - data.getEnd(), data.getUser(), - data.getUpdateUser(), data.getUpdateTime(), - data.getRemarks(), data.getDose() }); - return null; - } - - - public void pageDrugLog(Page<DrugLog> page, Map<String, Object> param) { - List<Object> args = new ArrayList<Object>(); - - args.add(ContextUtil.getCompanyId()); - - String sql = "select * from D_DRUG_LOG where company_id_ =? "; - - if (null != param) { - String str = (String) param.get("name"); - if (StringUtils.isNotEmpty(str)) { - sql += " and user_ = ?"; - args.add(str); - } - } - sql += " order by start_ desc "; - - this.pagingQuery(page, sql, args.toArray(), new DrugLogRowMapper()); - - } - - public String auditDrugApply(DrugApply data) { - - if (null == data.getAuditUser()) { - data.setAuditUser(ContextUtil.getLoginUserCName()); - } - if (null == data.getAuditTime()) { - data.setApplyTime(new Date()); - } - - if (data.getApplyUser().equals(data.getAuditUser())) { - return "绯荤粺锛氬鏍镐汉鍜岀敵璇蜂汉涓嶅彲涓哄悓涓�涓汉銆�"; - } - - return updateDrugApply(data); - - } - - public String updateDrugApply(DrugApply data) { - - if (null == data.getApplyTime()) { - data.setAuditTime(new Date()); - } - if (null == data.getApplyUser()) { - data.setApplyUser(ContextUtil.getLoginUserCName()); - } - - if (null == data.getId()) { - return this.addDrugApply(data); - } - - String sql = " update D_DRUG_APPLY set " + "APPLY_TIME_=?," - + "APPLY_USER_=?," + "APPLY_REASON_=?," + "DRUG_NAME_=?," - + "COUNT_=?," + "AUDIT_TIME_=?," + "AUDIT_USER_=?," - + "AUDIT_REASON_=?," + "STATUS_=?," + "REMARKS_=? " - + "where ID_=?"; - - this.getJdbcTemplate().update( - sql, - new Object[] { data.getApplyTime(), data.getApplyUser(), - data.getApplyReason(), data.getDrugName(), - data.getCount(), data.getAuditTime(), - data.getAuditUser(), data.getAuditReason(), - data.getStatus(), data.getRemarks(), data.getId() }); - - return null; - } - - private String addDrugApply(DrugApply data) { - data.setId(ContextUtil.getUUID()); - data.setCompanyId(ContextUtil.getCompanyId()); - data.setStatus(DrugApply.STATUS_APPLY); - - String sql = "INSERT INTO D_DRUG_APPLY(ID_,COMPANY_ID_,APPLY_TIME_,APPLY_USER_,APPLY_REASON_,DRUG_NAME_,COUNT_,AUDIT_TIME_,AUDIT_USER_,AUDIT_REASON_," - + "STATUS_,REMARKS_) values(?,?,?,?,?,?,?,?,?,?,?,?)"; - - this.getJdbcTemplate().update( - sql, - new Object[] { data.getId(), data.getCompanyId(), - data.getApplyTime(), data.getApplyUser(), - data.getApplyReason(), data.getDrugName(), - data.getCount(), data.getAuditTime(), - data.getAuditUser(), data.getAuditReason(), - data.getStatus(), data.getRemarks() }); - - return null; - } - - public String delDrugApply(DrugApply data) { - - if (null == data.getId()) { - return null; - } - - String sql = " delete from D_DRUG_APPLY where ID_ =?"; - - this.getJdbcTemplate().update(sql, new Object[] { data.getId() }); - - return null; - } - - public void pageDrugApply(Page<DrugApply> page, Map<String, Object> param) { - List<Object> args = new ArrayList<Object>(); - - args.add(ContextUtil.getCompanyId()); - - String sql = "select * from D_DRUG_APPLY where company_id_ =? "; - - if (null != param) { - String str = (String) param.get("name"); - if (StringUtils.isNotEmpty(str)) { - sql += " and APPLY_USER_ like ?"; - args.add("%" + str + "%"); - } - } - sql += " order by APPLY_TIME_ desc "; - - this.pagingQuery(page, sql, args.toArray(), new DrugApplyRowMapper()); - } + public void buildHql(StringBuffer hql, Map<String, Object> param, Map<String, Object> args) { + String str = (String) param.get("id"); + if (StringUtils.isNotEmpty(str)) { + hql.append(" and id =:id"); + args.put("id", str); + } + str = (String) param.get("name"); + if (StringUtils.isNotEmpty(str)) { + hql.append(" and name like :name"); + args.put("name", "%" + str + "%"); + } + Date date = (Date) param.get("start"); + if (null != date) { + hql.append(" and cgrq >=:start"); + args.put("start", date); + } + date = (Date) param.get("end"); + if (null != date) { + hql.append(" and cgrq <=:end"); + args.put("end", date); + } + } } -- Gitblit v1.9.3