还在想到底记录些什么 在实际工作中的事情。
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,
本文地址:https://dxoca.cn/everyDay/395.html 百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
您好~我是腾讯云+社区的运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan
作者申请此计划后将作者的文章进行搬迁同步到社区的专栏下,你只需要简单填写一下表单申请即可,我们会给作者提供包括流量、云服务器等,另外还有些周边礼物。
我们诚挚的邀请您并期待您的加入~