You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
10 KiB

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<JslBmsCenter> bmsCenterList = jslDbContext.sql(sql_center).getList(JslBmsCenter.class);
List<Map<String,Object>> centerlist = jslDbContext.sql(sqlcenter).getMapList();
for(Map<String,Object> 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<JslBmsRegion> saleRegionList = jslDbContext.sql(sql_sale_region).getList(JslBmsRegion.class);
List<Map<String,Object>> centerlist = jslDbContext.sql(sqlcenter).getMapList();
for(Map<String,Object> 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<Map<String,Object>> 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();
}
}
}
}