From 07af7bd2217050ed0df8a0c154ba1a61692adcb9 Mon Sep 17 00:00:00 2001 From: luqingyang <lqy5492@163.com> Date: 星期三, 25 十月 2023 16:36:18 +0800 Subject: [PATCH] 物品管理、物品分类、机构、用户、缓存 相关代码 --- consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java | 264 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 216 insertions(+), 48 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java index d916f93..686bd31 100644 --- a/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java @@ -2,34 +2,130 @@ import com.consum.base.pojo.FinSysTenantParam; import com.consum.model.po.FinSysTenant; -import com.iplatform.model.po.S_user_core; +import com.consum.model.po.FinSysTenantUser; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; -/** - * @Description 绯荤粺鏈烘瀯 - * @Author 鍗㈠簡闃� - * @Date 2023/10/23 - */ @Service public class FinSysTenantServiceImpl extends BaseServiceImpl { - private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM fin_sys_tenant WHERE CODE = ?"; + private static final String QUERY_TREE_ALL = "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1 order by parent_id, LV ASC"; + private static final String QUERY_TREE_BY_CODE = "SELECT * FROM FIN_SYS_TENANT "; + private static final String QUERY_BY_PARENT_ID = "SELECT * FROM FIN_SYS_TENANT WHERE parent_id = ?"; + private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM FIN_SYS_TENANT WHERE CODE = ?"; + private static final String QUERY_LIST_BY_CITY_CODE = "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT "; + private static final String QUERY_LIST_BY_PARENT_ID = "SELECT * FROM FIN_SYS_TENANT WHERE PARENT_ID = ? ORDER BY LV ASC"; /** - * @Description 鏍规嵁鏈烘瀯id鏌ヨ鏈烘瀯 - * @Author 鍗㈠簡闃� - * @Date 2023/10/23 + * @Author 锛歱ower + * @Date 锛� 2023/7/20 20:41 + * 鑾峰彇鍖哄垝淇℃伅 涓昏鐢ㄤ簬缂撳瓨 */ - public FinSysTenant selectByTenantId(String code) { - List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{code}, new FinSysTenant()); + public FinSysTenant queryOneByCode(String code) { + FinSysTenant tenant = new FinSysTenant(); + tenant.setCode(code); + List<FinSysTenant> tenantList = this.select(tenant); + if (!StringUtils.isEmptyList(tenantList)) { + return tenantList.get(0); + } + return null; + } + + + private static final String QUERY_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC"; + + public List<FinSysTenant> queryForTree() { + // 灞曠ず鍏ㄩ儴鑺傜偣 + return this.select(QUERY_TREE_ALL, new Object[]{}, new FinSysTenant()); + } + + /** + * @Author 锛歱ower + * @Date 锛� 2023/7/20 16:34 + * 鏍规嵁id 鏌ヨ涓嬬骇鎵�鏈夎妭鐐� 鍦板競鏌ヨ鑷繁 鐪佹煡璇㈡墍鏈夊湴甯� + */ + public List<FinSysTenant> queryTreeById(Long id, Integer lv) { + if (lv == 3) { + return new ArrayList<>(); + } + Map<String, Object> parameter = new HashMap<>(5); + StringBuilder sql = new StringBuilder(QUERY_TREE_BY_CODE); + if (id != null && lv == 1) { + sql.append(" WHERE PARENT_ID = :orgId OR ID = :orgId"); + parameter.put("orgId", id); + } + if (id != null && lv == 2) { + sql.append(" WHERE ID = :orgId"); + parameter.put("orgId", id); + } + return this.select(sql.toString(), parameter, new FinSysTenant()); + } + + /** + * @Author 锛歱ower + * @Date 锛� 2023/7/21 14:46 + * 鐗规畩鏁版嵁 绂佹鍏朵粬鎺ュ彛浣跨敤 + */ + public Map<Long, List<FinSysTenant>> queryCountyByCityCode(Long id, Integer lv) { + Map<String, Object> parameter = new HashMap<>(5); + StringBuilder sql = new StringBuilder(QUERY_LIST_BY_CITY_CODE); + if (id != null && (lv == 2 || lv == 3)) { + sql.append(" WHERE LV >= 2 "); + sql.append(" AND (PARENT_ID = :orgId OR ID = :orgId ) "); + parameter.put("orgId", id); + } else { + sql.append(" WHERE LV > 1 "); + sql.append(" AND PARENT_ID IS NOT NULL "); + } + sql.append(" ORDER BY PARENT_ID ,ID "); + List<FinSysTenant> list = this.select(sql.toString(), parameter, new FinSysTenant()); + // return list.stream().filter(tenant -> Objects.nonNull(tenant.getParentId())).collect(Collectors.groupingBy(FinSysTenant::getParentId)); + return list.stream().collect(Collectors.groupingBy(FinSysTenant::getParentId)); + } + + + /** + * @Description 鏌ヨ鎵�鏈夌殑甯傜骇甯︽渤鍗楃渷鐨勫尯鍒� + * @Author wh + * @Date 2023/7/20 15:29 + */ + public List<FinSysTenant> selectByLV2() { + return this.select(QUERY_LV2_ALL, new Object[]{}, new FinSysTenant()); + } + + /** + * @Description 鏍规嵁鐖剁骇id鑾峰彇涓嬬骇鍒楄〃 + * @Author wh + * @Date 2023/7/25 13:53 + */ + public List<FinSysTenant> getByParentId(Long parentId) { + return this.select(QUERY_LIST_BY_PARENT_ID, new Object[]{parentId}, new FinSysTenant()); + } + + /** + * @Description 鏍规嵁鍖哄垝CODE鏌ヨ鍖哄垝淇℃伅 + * @Author wh + * @Date 2023/9/11 19:16 + */ + public FinSysTenant selectByParentId(String parentId) { + List<FinSysTenant> select = this.select(QUERY_BY_PARENT_ID, new Object[]{parentId}, new FinSysTenant()); + if (StringUtils.isEmptyList(select)) { + return null; + } else { + return select.get(0); + } + } + + public FinSysTenant selectByTenantId(String tenantCode) { + List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{tenantCode}, new FinSysTenant()); if (StringUtils.isEmptyList(select)) { return null; } else { @@ -38,12 +134,30 @@ } /** + * 鍒犻櫎 + * @author 鍗㈠簡闃� + * @date 2023/10/4 + */ + public int updateById(FinSysTenantParam param, FinSysTenantUser sysInfo) { + FinSysTenant finSysTenant = new FinSysTenant(); + finSysTenant.setTempId(param.getId()); + finSysTenant.setStatus(0); + finSysTenant.setIsDelete(1); + finSysTenant.setModified(getCurrentDate()); + finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + finSysTenant.setUpdateBy(sysInfo.getUserName()); + return this.update(finSysTenant); + } + + + + /** * 娣诲姞鏈烘瀯 * @author 鍗㈠簡闃� * @date 2023/10/4 */ - public int addSysTenant(FinSysTenantParam param, S_user_core currentUser, int lv) { - FinSysTenant sysTenant = new FinSysTenant(); + public int addFinSysTenant(FinSysTenantParam param, FinSysTenantUser sysInfo, int lv) { + FinSysTenant finSysTenant = new FinSysTenant(); //id鍜宼empId StringBuilder sql = new StringBuilder("SELECT max(id) FROM fin_sys_tenant WHERE 1=1"); @@ -59,21 +173,23 @@ } else { id = param.getParentId() * 1000 + 1; } - sysTenant.setTempId(id); - sysTenant.setId(id); - sysTenant.setStatus(param.getStatus()); + finSysTenant.setTempId(id); + finSysTenant.setId(id); + finSysTenant.setStatus(param.getStatus()); - sysTenant.setParentId(param.getParentId()); - sysTenant.setCode(param.getCode()); - sysTenant.setName(param.getName()); - sysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); - sysTenant.setSummary(param.getSummary()); - sysTenant.setCreateBy(currentUser.getUser_name()); + finSysTenant.setParentId(param.getParentId()); + finSysTenant.setCode(param.getCode()); + //璁剧疆璇︾粏鍦板潃鍙婄粡绾害 + finSysTenant.setName(param.getName()); + finSysTenant.setCreateTime3(getCurrentDate()); + finSysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + finSysTenant.setSummary(param.getSummary()); + finSysTenant.setCreateBy(sysInfo.getUserName()); //璁剧疆鍚勫眰绾d鍙婂悕绉� - sysTenant.setLv(lv); - setLvIdAndName(param, sysTenant, id, lv); + finSysTenant.setLv(lv); + setLvIdAndName(param, finSysTenant, id, lv); - return this.insert(sysTenant); + return this.insert(finSysTenant); } /** @@ -82,15 +198,15 @@ * @author 鍗㈠簡闃� * @date 2023/10/4 */ - private void setLvIdAndName(FinSysTenantParam param, FinSysTenant sysTenant, long id, int lv) { + private void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) { if (lv == 2) { //鏂板甯傜骇鏈烘瀯 //鏌ヨ涓婁竴绾� - 鐪佺骇 FinSysTenant finSysTenant1 = this.get(new FinSysTenant(param.getParentId())); if (finSysTenant1 != null) { - sysTenant.setLv1Id(finSysTenant1.getId()); - sysTenant.setLv1Name(finSysTenant1.getName()); - sysTenant.setLv2Id(id); - sysTenant.setLv2Name(param.getName()); + finSysTenant.setLv1Id(finSysTenant1.getId()); + finSysTenant.setLv1Name(finSysTenant1.getName()); + finSysTenant.setLv2Id(id); + finSysTenant.setLv2Name(param.getName()); } } else if (lv == 3) { //鏂板鍘跨骇鏈烘瀯 //鏌ヨ涓婁竴绾� - 甯傜骇 @@ -99,12 +215,12 @@ //鏌ヨ涓婁竴绾� - 鐪佺骇 FinSysTenant finSysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId())); - sysTenant.setLv1Id(finSysTenant1.getId()); - sysTenant.setLv1Name(finSysTenant1.getName()); - sysTenant.setLv2Id(finSysTenant2.getId()); - sysTenant.setLv2Name(finSysTenant2.getName()); - sysTenant.setLv3Id(id); - sysTenant.setLv3Name(param.getName()); + finSysTenant.setLv1Id(finSysTenant1.getId()); + finSysTenant.setLv1Name(finSysTenant1.getName()); + finSysTenant.setLv2Id(finSysTenant2.getId()); + finSysTenant.setLv2Name(finSysTenant2.getName()); + finSysTenant.setLv3Id(id); + finSysTenant.setLv3Name(param.getName()); } } else if (lv == 4) { //鏂板鏀眬鏈烘瀯 //鏌ヨ涓婁竴绾� - 鍘跨骇 @@ -116,17 +232,69 @@ //鏌ヨ涓婁竴绾� - 鐪佺骇 FinSysTenant sysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId())); if (sysTenant1 != null) { - sysTenant.setLv1Id(sysTenant1.getId()); - sysTenant.setLv1Name(sysTenant1.getName()); - sysTenant.setLv2Id(finSysTenant2.getId()); - sysTenant.setLv2Name(finSysTenant2.getName()); - sysTenant.setLv3Id(finSysTenant3.getId()); - sysTenant.setLv3Name(finSysTenant3.getName()); - sysTenant.setLv4Id(id); - sysTenant.setLv4Name(param.getName()); + finSysTenant.setLv1Id(sysTenant1.getId()); + finSysTenant.setLv1Name(sysTenant1.getName()); + finSysTenant.setLv2Id(finSysTenant2.getId()); + finSysTenant.setLv2Name(finSysTenant2.getName()); + finSysTenant.setLv3Id(finSysTenant3.getId()); + finSysTenant.setLv3Name(finSysTenant3.getName()); + finSysTenant.setLv4Id(id); + finSysTenant.setLv4Name(param.getName()); } } } } } + + + /** + * 鎵归噺娣诲姞鏈烘瀯 + * @author jlq + * @date 2023/10/9 + */ + public void insertFinSysTenantBatch(List<FinSysTenantParam> params, FinSysTenantUser sysInfo, int lv){ + for (FinSysTenantParam param : params) { + addFinSysTenant(param,sysInfo,lv); + } + } + + + + /** + * 鑾峰彇褰撳墠鏃ユ湡 + * + * @author 鍗㈠簡闃� + * @date 2023/10/4 + */ + private Date getCurrentDate() { + Date currentDate = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String formattedDate = dateFormat.format(currentDate); + try { + Date convertedDate = dateFormat.parse(formattedDate); + } catch (ParseException e) { + e.printStackTrace(); + } + return currentDate; + } + + /** + * 缂栬緫 + * @author 鍗㈠簡闃� + * @date 2023/10/6 + */ + public int updateFinSysTenant(FinSysTenant finSysTenant, FinSysTenantUser sysInfo) { + Integer lv = finSysTenant.getLv(); + if (lv == 1) { + finSysTenant.setLv1Name(finSysTenant.getName()); + } else if (lv == 2) { + finSysTenant.setLv2Name(finSysTenant.getName()); + } else { + finSysTenant.setLv3Name(finSysTenant.getName()); + } + finSysTenant.setModified(getCurrentDate()); + finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + finSysTenant.setUpdateBy(sysInfo.getUserName()); + return this.update(finSysTenant); + } } -- Gitblit v1.9.1