下发字段:
`DISTRIBUTION_STATUS` tinyint(1) DEFAULT '0' COMMENT '下发状态,0未下发,1已下发,2已作废',
Mybatis封装之后日志打印也确实是0数字:
<== Columns: PART_NO, PART_NAME, PART_NAME_EN, UNIT_CODE, MIN_PACKAGE, APPLICABLE_VEHICLE_TYPE, MODEL, QUANTITY_PER_CAR, PROVIDER_CODE, PROVIDER_NAME, PLAN_PRICE, CLAIM_PRICE, LIMIT_PRICE, NOT_TAX_INSTRUCT_PRICE, COST_SALES_PRICE, PRICE_ADD_RATE, IS_BATCH_OUT, PART_STATUS, IS_UNSAFE, IS_BACK, IS_C_SALE, IS_C_PURCHASE, IS_BATTERY, IS_DELETED, PART_VEHICLE_MODEL, IS_TRIPLE_GUARANTEE, IS_CLAIM, DISTRIBUTION_STATUS, IN_AMOUNT, REMARK, SUGGEST_RETAIL_PRICE_TAXED <== Row: TEST-PART-NO-20, , null, null, 0.0000, 1003, 1003, 1, null, null, 51.5500, 424994.7600, 91.5500, 91.5500, 842876.2200, 0.0000, 10041001, 10041001, 10041001, 10041001, 10041001, 10041001, 10041001, 0, null, 10041001, 10041001, 0, 521564.5000, 这是备注信息333, 487138.6400
但是返回到前端的JSON数据就不是了:
{ "resultCode": 200, "errMsg": null, "elapsedMilliseconds": 0, "data": { "records": [ { "IS_TRIPLE_GUARANTEE": 10041001, "PART_STATUS": 10041001, "IS_DELETED": 0, "PART_NO": "TEST-PART-NO-20", "APPLICABLE_VEHICLE_TYPE": "1003", "MIN_PACKAGE": 0, "IS_CLAIM": 10041001, "PRICE_ADD_RATE": 0, "LIMIT_PRICE": 91.55, "PART_NAME": "", "PLAN_PRICE": 51.55, "IS_C_SALE": 10041001, "DISTRIBUTION_STATUS": false, "IS_BATCH_OUT": 10041001, "REMARK": "这是备注信息333", "PART_NAME_EN": null, "PROVIDER_NAME": null, "UNIT_CODE": null, "IS_BATTERY": 10041001, "IS_UNSAFE": 10041001, "MODEL": "1003", "QUANTITY_PER_CAR": "1", "NOT_TAX_INSTRUCT_PRICE": 91.55, "CLAIM_PRICE": 424994.76, "IN_AMOUNT": 521564.5, "IS_C_PURCHASE": 10041001, "SUGGEST_RETAIL_PRICE_TAXED": 487138.64, "COST_SALES_PRICE": 842876.22, "PROVIDER_CODE": null, "IS_BACK": 10041001, "PART_VEHICLE_MODEL": null },
我的解决办法是用map的computeIfPresent方法处理:
maps.forEach(map -> map.computeIfPresent("DISTRIBUTION_STATUS", (k, v) -> { if (v.equals(true)) return 1; else if (v.equals(false)) return 0; return v; }));
虽然显示是0,但是可能Java里面JDBC封装成了TRUE & FALSE,
这里用equals方法做了个判断,让值重新覆写一遍,但是2的情况应该是正常的
这里试试看看:
UPDATE tm_part_info SET DISTRIBUTION_STATUS = 2 WHERE PART_NAME = '测试配件19'
结果是可以的,那就说明1和0会和TRUE & FALSE 匹配上,要么就是框架做了自动装箱的处理
其他值则正常返回