package com.demo; import com.demo.cost.TbsMapper; import com.demo.cost.entity.JslBmsRegion; import com.demo.cost.entity.JslTbsBudgetLog; import com.demo.t20230616.CenterInfoDto; import com.demo.t20230616.JslBmsCenter; import com.demo.t20230616.JslTbsBudget; import com.demo.t20230616.JslTbsScheduleItemBudget; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.noear.wood.DbContext; import java.math.BigDecimal; import java.sql.SQLException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; /** * @author YenHex * @since 2023/3/22 */ @Slf4j public class Application3 { DbContext xltDbContext = TbsMapper.getXltDbContext(); DbContext jslDbContext = TbsMapper.getJslDbContext(); private final String tbs_budget = "tbs_budget"; private final String tbs_budget_condition = "tbs_budget_condition"; private final String tbs_schedule_item_budget = "tbs_schedule_item_budget"; private final String bms_cost_center = "bms_cost_center"; private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) { new Application3().buildBudgetRegion(); } @SneakyThrows public void test(){ } @SneakyThrows private void buildBudgetCenter(){ String sqlcenter = "select g.center_type,g.center_id from tbs_cost_apply a left join tbs_activity_center_goods g" + " on a.id = g.cost_apply_id where g.act_start_date < '2023-01-01' and center_type = 'center' GROUP BY g.center_type,g.center_id "; String sql_center = "select * from bms_cost_center where del_flag = 0"; List bmsCenterList = jslDbContext.sql(sql_center).getList(JslBmsCenter.class); List> centerlist = jslDbContext.sql(sqlcenter).getMapList(); for(Map map:centerlist){ String centerType = (String)map.get("center_type"); String centerId = (String)map.get("center_id"); CenterInfoDto centerDto = null; if(centerDto==null){ for (JslBmsCenter bmsCenter : bmsCenterList) { if(centerId.equals(bmsCenter.getId().toString())){ centerDto = new CenterInfoDto(); centerDto.setId(bmsCenter.getId()+""); centerDto.setCode(bmsCenter.getCode()); centerDto.setName(bmsCenter.getName()); centerDto.setType("center"); break; } } } JslTbsBudget tbsBudget = new JslTbsBudget(); tbsBudget.setBudgetCode("2022"+centerDto.getName()+"全年"); tbsBudget.setBudgetState(0); tbsBudget.setSubjectId(0L); tbsBudget.setSubjectCode(""); tbsBudget.setSubjectName(""); tbsBudget.setCenterId(centerDto.getId()); tbsBudget.setCenterType(centerDto.getType()); tbsBudget.setCenterCode(centerDto.getCode()); tbsBudget.setCenterName(centerDto.getName()); tbsBudget.setScheduleId(5L); tbsBudget.setScheduleCode("2022year"); tbsBudget.setScheduleName("2022年年度预算"); tbsBudget.setConditionFlag(0); tbsBudget.setTenantId("001"); try { long tbsBudgetId = jslDbContext.table(tbs_budget).setEntity(tbsBudget).insert(); JslTbsScheduleItemBudget itemBudget = new JslTbsScheduleItemBudget(); itemBudget.setScheduleId(5L); itemBudget.setTenantId("001"); itemBudget.setBudgetAmount(BigDecimal.ZERO); itemBudget.setItemName("2022年"); itemBudget.setStartDate("2022-01-01"); itemBudget.setEndDate("2022-12-31"); itemBudget.setScheduleItemId(11L); itemBudget.setBudgetId(tbsBudgetId); long itemBudgetId = jslDbContext.table(tbs_schedule_item_budget).setEntity(itemBudget).insert(); JslTbsBudgetLog budgetLog = new JslTbsBudgetLog(); budgetLog.setBudgetId(itemBudget.getBudgetId()); budgetLog.setBudgetCode(tbsBudget.getBudgetCode()); budgetLog.setOptType(0); budgetLog.setOptUserId("0"); budgetLog.setOptUserName("系统导入"); budgetLog.setOptUserCode("system_his2022"); budgetLog.setAmount(BigDecimal.ZERO); budgetLog.setScheduleId(itemBudget.getScheduleId()); budgetLog.setScheduleItemId(itemBudget.getScheduleItemId()); budgetLog.setScheduleItemBudgetId(itemBudgetId); budgetLog.setItemName(itemBudget.getItemName()); budgetLog.setStartDate(LocalDateTime.parse("2022-01-01 00:00:00",formatter)); budgetLog.setEndDate(LocalDateTime.parse("2022-12-31 00:00:00",formatter)); budgetLog.setSubjectId(0L); budgetLog.setSubjectCode(""); budgetLog.setSubjectName(""); budgetLog.setCenterType(tbsBudget.getCenterType()); budgetLog.setCenterId(tbsBudget.getCenterId()); budgetLog.setCenterCode(tbsBudget.getCenterCode()); budgetLog.setCenterName(tbsBudget.getCenterName()); budgetLog.setRollbackFlag(0); budgetLog.setMigrateFlag(0); budgetLog.setTenantId("001"); jslDbContext.table("tbs_budget_log").setEntity(budgetLog).insert(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } @SneakyThrows private void buildBudgetRegion(){ String sqlcenter = "select g.center_type,g.center_id from tbs_cost_apply a left join tbs_activity_center_goods g " + "on a.id = g.cost_apply_id where g.act_start_date < '2023-01-01' and center_type = 'saleRegion' GROUP BY g.center_type,g.center_id "; String sql_sale_region = "select * from bms_region where del_flag = 0"; List saleRegionList = jslDbContext.sql(sql_sale_region).getList(JslBmsRegion.class); List> centerlist = jslDbContext.sql(sqlcenter).getMapList(); for(Map map:centerlist){ String centerType = (String)map.get("center_type"); String centerId = (String)map.get("center_id"); CenterInfoDto centerDto = null; if(centerDto==null){ for (JslBmsRegion bmsRegion : saleRegionList) { if(centerId.equals(bmsRegion.getId())){ centerDto = new CenterInfoDto(); centerDto.setId(bmsRegion.getId()); centerDto.setCode(bmsRegion.getCode()); centerDto.setName(bmsRegion.getName()); centerDto.setType("saleRegion"); break; } } } String tbsBudgetSql = "select * from tbs_budget where schedule_id = 5 and center_type=? and center_id =?"; List> count = jslDbContext.sql(tbsBudgetSql,centerType,centerId).getMapList(); if(count.size()>0){ continue; } JslTbsBudget tbsBudget = new JslTbsBudget(); tbsBudget.setBudgetCode("2022"+centerDto.getName()+"全年"); tbsBudget.setBudgetState(0); tbsBudget.setSubjectId(0L); tbsBudget.setSubjectCode(""); tbsBudget.setSubjectName(""); tbsBudget.setCenterId(centerDto.getId()); tbsBudget.setCenterType(centerDto.getType()); tbsBudget.setCenterCode(centerDto.getCode()); tbsBudget.setCenterName(centerDto.getName()); tbsBudget.setScheduleId(5L); tbsBudget.setScheduleCode("2022year"); tbsBudget.setScheduleName("2022年年度预算"); tbsBudget.setConditionFlag(0); tbsBudget.setTenantId("001"); try { long tbsBudgetId = jslDbContext.table(tbs_budget).setEntity(tbsBudget).insert(); JslTbsScheduleItemBudget itemBudget = new JslTbsScheduleItemBudget(); itemBudget.setScheduleId(5L); itemBudget.setTenantId("001"); itemBudget.setBudgetAmount(BigDecimal.ZERO); itemBudget.setItemName("2022年"); itemBudget.setStartDate("2022-01-01"); itemBudget.setEndDate("2022-12-31"); itemBudget.setScheduleItemId(11L); itemBudget.setBudgetId(tbsBudgetId); long itemBudgetId = jslDbContext.table(tbs_schedule_item_budget).setEntity(itemBudget).insert(); JslTbsBudgetLog budgetLog = new JslTbsBudgetLog(); budgetLog.setBudgetId(itemBudget.getBudgetId()); budgetLog.setBudgetCode(tbsBudget.getBudgetCode()); budgetLog.setOptType(0); budgetLog.setOptUserId("0"); budgetLog.setOptUserName("系统导入"); budgetLog.setOptUserCode("system_his2022"); budgetLog.setAmount(BigDecimal.ZERO); budgetLog.setScheduleId(itemBudget.getScheduleId()); budgetLog.setScheduleItemId(itemBudget.getScheduleItemId()); budgetLog.setScheduleItemBudgetId(itemBudgetId); budgetLog.setItemName(itemBudget.getItemName()); budgetLog.setStartDate(LocalDateTime.parse("2022-01-01 00:00:00",formatter)); budgetLog.setEndDate(LocalDateTime.parse("2022-12-31 00:00:00",formatter)); budgetLog.setSubjectId(0L); budgetLog.setSubjectCode(""); budgetLog.setSubjectName(""); budgetLog.setCenterType(tbsBudget.getCenterType()); budgetLog.setCenterId(tbsBudget.getCenterId()); budgetLog.setCenterCode(tbsBudget.getCenterCode()); budgetLog.setCenterName(tbsBudget.getCenterName()); budgetLog.setRollbackFlag(0); budgetLog.setMigrateFlag(0); budgetLog.setTenantId("001"); jslDbContext.table("tbs_budget_log").setEntity(budgetLog).insert(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } }