From e83dacb5066a86db29dbdc232218d8aba6adc95f Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 02 八月 2024 13:34:04 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java | 65 ++++++++++++++++---------------- 1 files changed, 32 insertions(+), 33 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java index 36e50ef..eed691f 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java @@ -9,7 +9,9 @@ import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; import com.zy.asrs.wms.asrs.entity.MatField; +import com.zy.asrs.wms.asrs.entity.MatFieldValue; import com.zy.asrs.wms.asrs.service.MatFieldService; +import com.zy.asrs.wms.asrs.service.MatFieldValueService; import com.zy.asrs.wms.common.annotation.OperationLog; import com.zy.asrs.wms.common.domain.BaseParam; import com.zy.asrs.wms.common.domain.KeyValVo; @@ -33,6 +35,8 @@ private MatService matService; @Autowired private MatFieldService matFieldService; + @Autowired + private MatFieldValueService matFieldValueService; @PreAuthorize("hasAuthority('asrs:mat:list')") @PostMapping("/mat/page") @@ -43,25 +47,12 @@ JSONObject data = JSON.parseObject(JSON.toJSONString(page)); - ArrayList<JSONObject> list = new ArrayList<>(); - data.put("records", list); List<Mat> records = page.getRecords(); - for (Mat record : records) { - JSONObject tmp = JSON.parseObject(JSON.toJSONString(record)); - String extend = record.getExtend(); - if (!Cools.isEmpty(extend)) { - List<JSONObject> matFields = JSON.parseArray(extend, JSONObject.class); - for (JSONObject matField : matFields) { - if (matField.getString("type").equals("num")) { - tmp.put(matField.getString("name"), matField.getDouble("value")); - } else if (matField.getString("type").equals("bool")) { - tmp.put(matField.getString("name"), matField.getBoolean("value")); - }else { - tmp.put(matField.getString("name"), matField.getString("value")); - } - } - } - list.add(tmp); + data.put("records", records); + for (Mat mat : records) { + List<MatFieldValue> list = matFieldValueService.list(new LambdaQueryWrapper<MatFieldValue>() + .eq(MatFieldValue::getMatId, mat.getId())); + mat.syncField(list); } return R.ok().add(data); @@ -84,13 +75,11 @@ @PostMapping("/mat/save") public R save(@RequestBody HashMap<String,Object> param) { Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect); - //鑾峰彇鎵╁睍瀛楁 - List<JSONObject> fields = getMatFieldList(param); - mat.setExtend(JSON.toJSONString(fields, SerializerFeature.DisableCircularReferenceDetect)); - if (!matService.save(mat)) { return R.error("娣诲姞澶辫触"); } + //璁剧疆鎵╁睍瀛楁 + setMatField(param, mat); return R.ok("娣诲姞鎴愬姛"); } @@ -99,9 +88,8 @@ @PostMapping("/mat/update") public R update(@RequestBody HashMap<String,Object> param) { Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect); - //鑾峰彇鎵╁睍瀛楁 - List<JSONObject> fields = getMatFieldList(param); - mat.setExtend(JSON.toJSONString(fields, SerializerFeature.DisableCircularReferenceDetect)); + //璁剧疆鎵╁睍瀛楁 + setMatField(param, mat); if (!matService.updateById(mat)) { return R.error("淇敼澶辫触"); @@ -136,21 +124,32 @@ @PreAuthorize("hasAuthority('asrs:mat:list')") @PostMapping("/mat/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - ExcelUtil.build(ExcelUtil.create(matService.list(), Mat.class), response); + List<Mat> list = matService.parseMat(matService.list()); + List<MatField> matFields = matFieldService.getMatFields(); + ExcelUtil.build(ExcelUtil.create(list, Mat.class, matFields), response); } - private List<JSONObject> getMatFieldList(HashMap<String, Object> param) { + private void setMatField(HashMap<String, Object> param, Mat mat) { //鑾峰彇鎵╁睍瀛楁 List<MatField> matFields = matFieldService.list(); - ArrayList<JSONObject> fields = new ArrayList<>(); for (MatField matField : matFields) { - if(param.containsKey(matField.getName())){ - JSONObject parsed = JSON.parseObject(JSON.toJSONString(matField), Feature.DisableCircularReferenceDetect); - parsed.put("value", param.get(matField.getName())); - fields.add(parsed); + if (param.containsKey(matField.getName())) { + MatFieldValue fieldValue = matFieldValueService.getOne(new LambdaQueryWrapper<MatFieldValue>() + .eq(MatFieldValue::getMatId, mat.getId()) + .eq(MatFieldValue::getFieldId, matField.getId())); + if (fieldValue == null) { + fieldValue = new MatFieldValue(); + fieldValue.setMatId(mat.getId()); + fieldValue.setFieldId(matField.getId()); + fieldValue.setName(matField.getName()); + fieldValue.setValue(param.get(matField.getName()).toString()); + matFieldValueService.save(fieldValue); + }else { + fieldValue.setValue(param.get(matField.getName()).toString()); + matFieldValueService.updateById(fieldValue); + } } } - return fields; } } -- Gitblit v1.9.1