Commit e2bef935 authored by 高宇's avatar 高宇

1.月度信息

parent 7ad81c91
...@@ -146,4 +146,14 @@ public class Jnsp7xtmDqsjController extends CyPaginationController<Jnsp7xtmDqsj> ...@@ -146,4 +146,14 @@ public class Jnsp7xtmDqsjController extends CyPaginationController<Jnsp7xtmDqsj>
CyMessCons.MESSAGE_ALERT_ERROR, CyMessCons.MESSAGE_ALERT_ERROR,
jnsp7xtmDqsjServiceImpl.truncateTable(key)); jnsp7xtmDqsjServiceImpl.truncateTable(key));
} }
@CyOpeLogAnno(title = "system-Jnsp7xtmDqsj管理-流式添加数据", businessType = CyLogTypeEnum.QUERY)
@ApiOperation(value = "流式添加数据", notes = "流式添加数据")
@PostMapping (value = "/streamAdd")
public CyResult streamAdd() {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
jnsp7xtmDqsjServiceImpl.streamAdd());
}
} }
package org.rcisoft.bus.jnsp7xtmdqsj.dao; package org.rcisoft.bus.jnsp7xtmdqsj.dao;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.ResultSetType;
import org.apache.ibatis.session.ResultHandler;
import org.rcisoft.bus.jnsp7xtm.vo.Jnsp7xtmVo;
import org.rcisoft.core.mapper.CyBaseMapper; import org.rcisoft.core.mapper.CyBaseMapper;
import org.rcisoft.bus.jnsp7xtmdqsj.entity.Jnsp7xtmDqsj; import org.rcisoft.bus.jnsp7xtmdqsj.entity.Jnsp7xtmDqsj;
import org.apache.ibatis.annotations.ResultMap; import org.springframework.beans.factory.annotation.Value;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.rcisoft.core.model.CyPageInfo; import org.rcisoft.core.model.CyPageInfo;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Created with cy on 2024年5月14日 上午10:20:48. * Created with cy on 2024年5月14日 上午10:20:48.
...@@ -35,5 +38,10 @@ public interface Jnsp7xtmDqsjRepository extends CyBaseMapper<Jnsp7xtmDqsj> { ...@@ -35,5 +38,10 @@ public interface Jnsp7xtmDqsjRepository extends CyBaseMapper<Jnsp7xtmDqsj> {
* 截断表信息 * 截断表信息
* **/ * **/
void truncateTable(@Param("key") String key); void truncateTable(@Param("key") String key);
void streamQuery(@Param("handler") ResultHandler<Jnsp7xtmVo> handler);
/**总数**/
Integer queryTotal();
} }
package org.rcisoft.bus.jnsp7xtmdqsj.entity; package org.rcisoft.bus.jnsp7xtmdqsj.entity;
import cn.afterturn.easypoi.cache.manager.IFileLoader;
import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.JdbcType;
import org.rcisoft.bus.jnsp7xtm.vo.Jnsp7xtmVo; import org.rcisoft.bus.jnsp7xtm.vo.Jnsp7xtmVo;
import org.rcisoft.core.entity.CyIdEntity; import org.rcisoft.core.entity.CyIdEntity;
...@@ -352,5 +355,71 @@ public class Jnsp7xtmDqsj { ...@@ -352,5 +355,71 @@ public class Jnsp7xtmDqsj {
public static final String TERM_L = "L"; public static final String TERM_L = "L";
public static Jnsp7xtmDqsj generateJnsp7xtmDqsj(Jnsp7xtmVo jnsp7xtmVo){
Jnsp7xtmDqsj jnsp7xtmDqsj = new Jnsp7xtmDqsj();
// y.cust_group - cust_gc 20项
BeanUtil.copyProperties(jnsp7xtmVo,jnsp7xtmDqsj);
jnsp7xtmDqsj.setTerm(TERM_C);
jnsp7xtmDqsj.setMonth(jnsp7xtmVo.getNqy());
/*
if(x.nqy = xxxx04 ... 09) y.half = 1H
if(x.nqy = xxxx10 ... 03) y.half = 2H
*/
String lastTwoNqy = "";
if (StringUtils.isNotBlank(jnsp7xtmVo.getNqy()) && jnsp7xtmVo.getNqy().length() > 2) {
lastTwoNqy = jnsp7xtmVo.getNqy().substring(jnsp7xtmVo.getNqy().length() - 2);
if (lastTwoNqy.equals("04") || lastTwoNqy.equals("05") || lastTwoNqy.equals("06") || lastTwoNqy.equals("07") || lastTwoNqy.equals("08") || lastTwoNqy.equals("09")) {
jnsp7xtmDqsj.setHalf("1H");
} else {
jnsp7xtmDqsj.setHalf("2H");
}
/*
if(x.nqy = xxxx04 ... 06) y.quarter = Q1
if(x.nqy = xxxx07 ... 09) y.quarter = Q2
if(x.nqy = xxxx10 ... 12) y.quarter = Q3
if(x.nqy = xxxx01 ... 03) y.quarter = Q4
*/
if (lastTwoNqy.equals("01") || lastTwoNqy.equals("02") || lastTwoNqy.equals("03")) {
jnsp7xtmDqsj.setQuarter("Q4");
} else if (lastTwoNqy.equals("04") || lastTwoNqy.equals("05") || lastTwoNqy.equals("06")) {
jnsp7xtmDqsj.setQuarter("Q1");
} else if (lastTwoNqy.equals("07") || lastTwoNqy.equals("08") || lastTwoNqy.equals("09")) {
jnsp7xtmDqsj.setQuarter("Q2");
} else if (lastTwoNqy.equals("10") || lastTwoNqy.equals("11") || lastTwoNqy.equals("12")) {
jnsp7xtmDqsj.setQuarter("Q3");
}
jnsp7xtmDqsj.setCc(jnsp7xtmVo.getKhm());
jnsp7xtmDqsj.setCn(jnsp7xtmVo.getKhm());
// if(x.xslj == "W0") ? y.io = I: y.io = O
if (StringUtils.isNotBlank(jnsp7xtmVo.getXslj())) {
if (jnsp7xtmVo.getXslj().equals("W0"))
jnsp7xtmDqsj.setIo("I");
jnsp7xtmDqsj.setIo("O");
}
jnsp7xtmDqsj.setRoute(jnsp7xtmVo.getXslj());
jnsp7xtmDqsj.setPc(jnsp7xtmVo.getZd());
// if(x.zd == "CR" || WR || MP) ? y.factory = "CC1" : y.factory = "CC2"
if (StringUtils.isNotBlank(jnsp7xtmVo.getZd())) {
if (jnsp7xtmVo.getZd().equals("CR") || jnsp7xtmVo.getZd().equals("WR") || jnsp7xtmVo.getZd().equals("MP"))
jnsp7xtmDqsj.setFactory("CC1");
jnsp7xtmDqsj.setFactory("CC2");
}
jnsp7xtmDqsj.setSize(jnsp7xtmVo.getJlpm());
jnsp7xtmDqsj.setPn(jnsp7xtmVo.getPn());
jnsp7xtmDqsj.setSypn(jnsp7xtmVo.getSypn());
jnsp7xtmDqsj.setPo(new BigDecimal(jnsp7xtmVo.getZzc()));
// y.qty = y.po + y.fc (BigDecimal)
if (jnsp7xtmDqsj.getPo() != null && jnsp7xtmDqsj.getFc() != null) {
jnsp7xtmDqsj.setQty(jnsp7xtmDqsj.getPo().add(jnsp7xtmDqsj.getFc()) );
}
jnsp7xtmDqsj.setUp(new BigDecimal(jnsp7xtmVo.getXsjg()));
jnsp7xtmDqsj.setCurrency(jnsp7xtmVo.getBz());
jnsp7xtmDqsj.setAmt(new BigDecimal(jnsp7xtmVo.getRmb()));
}
return jnsp7xtmDqsj;
}
} }
...@@ -75,4 +75,9 @@ public interface Jnsp7xtmDqsjService { ...@@ -75,4 +75,9 @@ public interface Jnsp7xtmDqsjService {
* 截断表 * 截断表
* **/ * **/
Integer truncateTable(String KeyTable); Integer truncateTable(String KeyTable);
/**
* 流程添加
* **/
Integer streamAdd();
} }
...@@ -3,16 +3,23 @@ package org.rcisoft.bus.jnsp7xtmdqsj.service.impl; ...@@ -3,16 +3,23 @@ package org.rcisoft.bus.jnsp7xtmdqsj.service.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.client.model.Collation;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.rcisoft.bus.jnsp7xtm.dto.Jnsp7xtmDto;
import org.rcisoft.bus.jnsp7xtm.dto.Jnsp7xtmOptionDto; import org.rcisoft.bus.jnsp7xtm.dto.Jnsp7xtmOptionDto;
import org.rcisoft.bus.jnsp7xtm.entity.Jnsp7xtm; import org.rcisoft.bus.jnsp7xtm.entity.Jnsp7xtm;
import org.rcisoft.bus.jnsp7xtm.enums.ColTransitionEnum; import org.rcisoft.bus.jnsp7xtm.enums.ColTransitionEnum;
import org.rcisoft.bus.jnsp7xtm.vo.Jnsp7xtmVo;
import org.rcisoft.core.exception.CyServiceException; import org.rcisoft.core.exception.CyServiceException;
import org.rcisoft.core.util.CyUserUtil; import org.rcisoft.core.util.CyUserUtil;
import org.rcisoft.core.aop.CyPageUtilAsp; import org.rcisoft.core.aop.CyPageUtilAsp;
...@@ -26,6 +33,7 @@ import org.rcisoft.core.service.CyBaseService; ...@@ -26,6 +33,7 @@ import org.rcisoft.core.service.CyBaseService;
import org.rcisoft.util.ExcelExportStatisticStyler; import org.rcisoft.util.ExcelExportStatisticStyler;
import org.rcisoft.util.ExportToExcelUtil; import org.rcisoft.util.ExportToExcelUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
...@@ -33,7 +41,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -33,7 +41,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.rcisoft.core.model.CyPageInfo; import org.rcisoft.core.model.CyPageInfo;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
...@@ -52,6 +62,8 @@ public class Jnsp7xtmDqsjServiceImpl extends ServiceImpl<Jnsp7xtmDqsjRepository, ...@@ -52,6 +62,8 @@ public class Jnsp7xtmDqsjServiceImpl extends ServiceImpl<Jnsp7xtmDqsjRepository,
// 数据表锁 // 数据表锁
private static Lock dataTableLock = new ReentrantLock(); private static Lock dataTableLock = new ReentrantLock();
@Value("${fetchSize}")
private Integer batchInsertSize;
/** /**
* 保存 * 保存
...@@ -166,4 +178,29 @@ public class Jnsp7xtmDqsjServiceImpl extends ServiceImpl<Jnsp7xtmDqsjRepository, ...@@ -166,4 +178,29 @@ public class Jnsp7xtmDqsjServiceImpl extends ServiceImpl<Jnsp7xtmDqsjRepository,
return 1; return 1;
} }
/**
* 流式添加
* **/
@Override
public Integer streamAdd() {
// 获取全部数据
List<Jnsp7xtmDqsj> addList = new ArrayList<>();
baseMapper.streamQuery(resultContext -> {
Jnsp7xtmVo resultObject = resultContext.getResultObject();
Jnsp7xtmDqsj jnsp7xtmDqsj = Jnsp7xtmDqsj.generateJnsp7xtmDqsj(resultObject);
addList.add(jnsp7xtmDqsj);
if (addList.size() > batchInsertSize) {
log.info("addList",addList);
log.info("批量插入");
addList.clear();
}
});
if(CollectionUtil.isNotEmpty(addList)){
log.info("addList",addList);
log.info("批量插入");
}
return 1;
}
} }
...@@ -296,6 +296,8 @@ knife4j: ...@@ -296,6 +296,8 @@ knife4j:
export: export:
size: 20 size: 20
fetchSize: 10
login: login:
loginName: "00" loginName: "00"
......
...@@ -307,4 +307,42 @@ ...@@ -307,4 +307,42 @@
FROM FROM
jnsp7xtm_dqsj jnsp7xtm_dqsj
</select> </select>
<select id="streamQuery" resultType="org.rcisoft.bus.jnsp7xtm.vo.Jnsp7xtmVo" fetchSize="10">
SELECT
jnsp.*,
cust.cust_code,
cust.cust_name,
cust.cust_group,
cust.cust_group2,
cust.cust_rt1,
cust.cust_io,
cust.cust_newpic,
cust.cust_group1,
cust.cust_rt2,
cust.cust_rout,
cust.cust_addr,
cust.cust_g0,
cust.cust_g20,
cust.cust_g30,
cust.cust_g201,
cust.cust_save,
cust.cust_stype,
cust.cust_g1,
cust.cust_yj,
cust.cust_yj2,
cust.cust_yj3,
cust.cust_gc,
bps.pn,
bps.sypn
FROM
jnsp7xtm jnsp left JOIN b_customer cust on jnsp.khdm = cust.cust_code
left join b_pn_sypn bps on bps.pn = jnsp.pn
</select>
<select id="queryTotal" resultType="java.lang.Integer">
SELECT
count(*)
FROM
jnsp7xtm jnsp left JOIN b_customer cust on jnsp.khdm = cust.cust_code
left join b_pn_sypn bps on bps.pn = jnsp.pn
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment