寒光博客

[搬砖日记]零零碎碎开发
还在想到底记录些什么 在实际工作中的事情。 2021年7月21日 BigDecimal对象数组的初始化 BigDe...
扫描右侧二维码阅读全文
21
2021/07

[搬砖日记]零零碎碎开发

还在想到底记录些什么 在实际工作中的事情。

2021年7月21日

BigDecimal对象数组的初始化

BigDecimal[] total = new BigDecimal[11];
Arrays.fill(total, BigDecimal.ZERO);

2021年7月23日

10点上班
对库存明细的报表返回进行后端汇总处理

关于钱的问题

BigDecimal对象之间比较 compareto(0.25==0.250) 不考虑精度 equal(0.25!=0.250)会考虑
BigDecimal除法要处理小数点的问题(无限循环会报错),还有被除数为0的情况

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
//1.我的原生写法
 totalItem.put("intoUnitCost", 
(total[1].compareTo(BigDecimal.valueOf(0)) == 0 ? 0 : total[3].divide(total[1],2,BigDecimal.ROUND_UP)));
//2.使用项目经理分装的模块(精度默认10,要去前端处理精度)
totalItem.put("intoUnitCost", 
(Arith.div(Helper.toDouble(total[3]), Helper.toDouble(total[1]))));

数据传输 PageData

如果使用PageData 来处理post
前端post控制分页一定要定义和 修改这俩参数

, page: false //开启分页
, limit:Number.MAX_VALUE

sql

group by 是在 order by 执行之后执行的 并且groupby 会默认保留第一条(最上面)数据的内容
利用这个特性 实现了 期末库存(最新数据的记录 降序desc)的记录 免去了java后端繁杂的处理
但是 有一个报表需求 期初期末的记录同时从在 所以,这时候需要反过去查询 通过现在得出的唯一key 对对应是数据升排序 然后在分组 取出最顶的值即可

获取某个时间节点前的最后一条数据
做期初数据 只需要知道时间范围内的最旧的一条的数据即可获取上一条的数据

SELECT
    *
FROM
    invla
WHERE
    100002631 = LA004
AND LA010 < '2021-07-08 16:33:35'
ORDER BY
    LA010 DESC 
LIMIT 1

当前时间往前n天或月或年的sql计算和java计算
sql计算:

--一月前
select DATE_SUB(CURDATE(), INTERVAL 1 Month) as monthTime; 
--一天前
select DATE_SUB(CURDATE(), INTERVAL 1 DAY) as  dayTime; 
--一年前
select DATE_SUB(CURDATE(), INTERVAL 1 YEAr) as newField; 
--指定日期三天前
SELECT DATE_SUB('2018-07-6', INTERVAL 3 DAY) AS newField;
---指定日期 3年2个月前
SELECT DATE_SUB('2019-06-02', INTERVAL '3-2' YEAR_MONTH) AS newField;  

SELECT DATE_SUB('2011-09-14 2:44:36', INTERVAL '2:26' HOUR_MINUTE) AS newField;  

年龄算生日

    ROUND(
        DATEDIFF(CURDATE(), inter_fie09) / 365.2422 -- 差一天生日 四舍五入 计算生日
    ) AS fie09,
本文作者:Author:     文章标题:[搬砖日记]零零碎碎开发
本文地址:https://dxoca.cn/everyDay/395.html       百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
Last modification:August 4th, 2021 at 05:04 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment