From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java | 468 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 234 insertions(+), 234 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 4274e19..827f327 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 @@ -1,234 +1,234 @@ -package com.zy.asrs.wms.asrs.controller; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.parser.Feature; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.zy.asrs.framework.common.Cools; -import com.zy.asrs.framework.common.R; -import com.zy.asrs.framework.exception.CoolException; -import com.zy.asrs.wms.asrs.entity.MatField; -import com.zy.asrs.wms.asrs.entity.MatFieldValue; -import com.zy.asrs.wms.asrs.entity.Tag; -import com.zy.asrs.wms.asrs.entity.template.MatTemplate; -import com.zy.asrs.wms.asrs.service.MatFieldService; -import com.zy.asrs.wms.asrs.service.MatFieldValueService; -import com.zy.asrs.wms.asrs.service.TagService; -import com.zy.asrs.wms.common.annotation.CacheData; -import com.zy.asrs.wms.common.annotation.OperationLog; -import com.zy.asrs.wms.common.domain.BaseParam; -import com.zy.asrs.wms.common.domain.KeyValVo; -import com.zy.asrs.wms.common.domain.PageParam; -import com.zy.asrs.wms.asrs.entity.Mat; -import com.zy.asrs.wms.asrs.service.MatService; -import com.zy.asrs.wms.system.controller.BaseController; -import com.zy.asrs.wms.utils.ExcelUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.util.*; - -@RestController -@RequestMapping("/api") -public class MatController extends BaseController { - - @Autowired - private MatService matService; - @Autowired - private MatFieldService matFieldService; - @Autowired - private MatFieldValueService matFieldValueService; - @Autowired - private TagService tagService; - - @PreAuthorize("hasAuthority('asrs:mat:list')") - @PostMapping("/mat/page") - @CacheData(tableName = {"man_mat"}) - public R page(@RequestBody Map<String, Object> map) { - BaseParam baseParam = buildParam(map, BaseParam.class); - PageParam<Mat, BaseParam> pageParam = new PageParam<>(baseParam, Mat.class); - PageParam<Mat, BaseParam> page = matService.page(pageParam, pageParam.buildWrapper(true)); - - JSONObject data = JSON.parseObject(JSON.toJSONString(page)); - - List<Mat> records = page.getRecords(); - 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); - } - - @PreAuthorize("hasAuthority('asrs:mat:list')") - @PostMapping("/mat/list") - @CacheData(tableName = {"man_mat"}) - public R list(@RequestBody Map<String, Object> map) { - return R.ok().add(matService.list()); - } - - @PreAuthorize("hasAuthority('asrs:mat:list')") - @GetMapping("/mat/{id}") - @CacheData(tableName = {"man_mat"}) - public R get(@PathVariable("id") Long id) { - return R.ok().add(matService.getById(id)); - } - - @PreAuthorize("hasAuthority('asrs:mat:save')") - @OperationLog("娣诲姞鍟嗗搧妗f") - @PostMapping("/mat/save") - public R save(@RequestBody HashMap<String,Object> param) { - Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect); - if (!matService.save(mat)) { - return R.error("娣诲姞澶辫触"); - } - //璁剧疆鎵╁睍瀛楁 - setMatField(param, mat); - return R.ok("娣诲姞鎴愬姛"); - } - - @PreAuthorize("hasAuthority('asrs:mat:update')") - @OperationLog("淇敼鍟嗗搧妗f") - @PostMapping("/mat/update") - public R update(@RequestBody HashMap<String,Object> param) { - Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect); - //璁剧疆鎵╁睍瀛楁 - setMatField(param, mat); - - if (!matService.updateById(mat)) { - return R.error("淇敼澶辫触"); - } - return R.ok("淇敼鎴愬姛"); - } - - @PreAuthorize("hasAuthority('asrs:mat:remove')") - @OperationLog("鍒犻櫎鍟嗗搧妗f") - @PostMapping("/mat/remove/{ids}") - public R remove(@PathVariable Long[] ids) { - if (!matService.removeByIds(Arrays.asList(ids))) { - return R.error("鍒犻櫎澶辫触"); - } - return R.ok("鍒犻櫎鎴愬姛"); - } - - @PreAuthorize("hasAuthority('asrs:mat:list')") - @PostMapping("/mat/query") - public R query(@RequestParam(required = false) String condition) { - List<KeyValVo> vos = new ArrayList<>(); - LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>(); - if (!Cools.isEmpty(condition)) { - wrapper.like(Mat::getId, condition); - } - matService.page(new Page<>(1, 30), wrapper).getRecords().forEach( - item -> vos.add(new KeyValVo(item.getId(), item.getId())) - ); - return R.ok().add(vos); - } - - @PreAuthorize("hasAuthority('asrs:mat:list')") - @PostMapping("/mat/export") - public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - BaseParam baseParam = buildParam(map, BaseParam.class); - PageParam<Mat, BaseParam> pageParam = new PageParam<>(baseParam, Mat.class); - List<Mat> data = matService.list(pageParam.buildWrapper(true)); - - List<Mat> list = matService.parseMat(data); - List<MatField> matFields = matFieldService.getMatFields(); - ExcelUtil.build(ExcelUtil.create(list, Mat.class, matFields), response); - } - - private void setMatField(Map<String, Object> param, Mat mat) { - //鑾峰彇鎵╁睍瀛楁 - List<MatField> matFields = matFieldService.list(); - for (MatField matField : matFields) { - if (param.containsKey(matField.getName())) { - MatFieldValue fieldValue = matFieldValueService.getOne(new LambdaQueryWrapper<MatFieldValue>() - .eq(MatFieldValue::getMatId, mat.getId()) - .eq(MatFieldValue::getFieldId, matField.getId())); - Object valueObj = param.get(matField.getName()); - String value = ""; - if(valueObj != null) { - value = valueObj.toString(); - } - - if (fieldValue == null) { - fieldValue = new MatFieldValue(); - fieldValue.setMatId(mat.getId()); - fieldValue.setFieldId(matField.getId()); - fieldValue.setName(matField.getName()); - fieldValue.setValue(value); - matFieldValueService.save(fieldValue); - }else { - fieldValue.setValue(value); - matFieldValueService.updateById(fieldValue); - } - } - } - } - - @PreAuthorize("hasAuthority('asrs:mat:list')") - @PostMapping("/mat/exportTemplate") - public void exportTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - ArrayList<MatTemplate> list = new ArrayList<>(); - List<MatField> matFields = matFieldService.getMatFields(); - ExcelUtil.build(ExcelUtil.create(list, MatTemplate.class, matFields), response); - } - - @PostMapping("/mat/upload") - @Transactional - public R upload(@RequestParam("file") MultipartFile file) { - List<MatTemplate> list = ExcelUtil.parseExcelFile(file, MatTemplate.class); - for (MatTemplate matTemplate : list) { - String firstTag = matTemplate.getFirstTag(); - String secondTag = matTemplate.getSecondTag(); - Tag tag1 = null; - Long tagId = null; - - if (!Cools.isEmpty(firstTag)) { - Tag tag = tagService.getOne(new LambdaQueryWrapper<Tag>().eq(Tag::getName, firstTag)); - if (tag == null) { - tag = new Tag(); - tag.setName(firstTag); - tag.setParentId(0L); - tagService.save(tag); - } - - tagId = tag.getId(); - tag1 = tag; - } - - if (!Cools.isEmpty(secondTag)) { - if (tag1 != null) { - Tag tag = tagService.getOne(new LambdaQueryWrapper<Tag>().eq(Tag::getName, secondTag).eq(Tag::getParentId, tag1.getId())); - if (tag == null) { - tag = new Tag(); - tag.setName(secondTag); - tag.setParentId(tag1.getId()); - tagService.save(tag); - } - - tagId = tag.getId(); - } - } - - - Mat mat = new Mat(); - mat.sync(matTemplate); - mat.setTagId(tagId); - if (!matService.save(mat)) { - throw new CoolException("鍒涘缓鍟嗗搧澶辫触"); - } - //璁剧疆鎵╁睍瀛楁 - setMatField(matTemplate.getDynamicFields(), mat); - } - return R.ok(); - } - -} +package com.zy.asrs.wms.asrs.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.framework.common.R; +import com.zy.asrs.framework.exception.CoolException; +import com.zy.asrs.wms.asrs.entity.MatField; +import com.zy.asrs.wms.asrs.entity.MatFieldValue; +import com.zy.asrs.wms.asrs.entity.Tag; +import com.zy.asrs.wms.asrs.entity.template.MatTemplate; +import com.zy.asrs.wms.asrs.service.MatFieldService; +import com.zy.asrs.wms.asrs.service.MatFieldValueService; +import com.zy.asrs.wms.asrs.service.TagService; +import com.zy.asrs.wms.common.annotation.CacheData; +import com.zy.asrs.wms.common.annotation.OperationLog; +import com.zy.asrs.wms.common.domain.BaseParam; +import com.zy.asrs.wms.common.domain.KeyValVo; +import com.zy.asrs.wms.common.domain.PageParam; +import com.zy.asrs.wms.asrs.entity.Mat; +import com.zy.asrs.wms.asrs.service.MatService; +import com.zy.asrs.wms.system.controller.BaseController; +import com.zy.asrs.wms.utils.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +@RestController +@RequestMapping("/api") +public class MatController extends BaseController { + + @Autowired + private MatService matService; + @Autowired + private MatFieldService matFieldService; + @Autowired + private MatFieldValueService matFieldValueService; + @Autowired + private TagService tagService; + + @PreAuthorize("hasAuthority('asrs:mat:list')") + @PostMapping("/mat/page") + @CacheData(tableName = {"man_mat"}) + public R page(@RequestBody Map<String, Object> map) { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<Mat, BaseParam> pageParam = new PageParam<>(baseParam, Mat.class); + PageParam<Mat, BaseParam> page = matService.page(pageParam, pageParam.buildWrapper(true)); + + JSONObject data = JSON.parseObject(JSON.toJSONString(page)); + + List<Mat> records = page.getRecords(); + 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); + } + + @PreAuthorize("hasAuthority('asrs:mat:list')") + @PostMapping("/mat/list") + @CacheData(tableName = {"man_mat"}) + public R list(@RequestBody Map<String, Object> map) { + return R.ok().add(matService.list()); + } + + @PreAuthorize("hasAuthority('asrs:mat:list')") + @GetMapping("/mat/{id}") + @CacheData(tableName = {"man_mat"}) + public R get(@PathVariable("id") Long id) { + return R.ok().add(matService.getById(id)); + } + + @PreAuthorize("hasAuthority('asrs:mat:save')") + @OperationLog("娣诲姞鍟嗗搧妗f") + @PostMapping("/mat/save") + public R save(@RequestBody HashMap<String,Object> param) { + Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect); + if (!matService.save(mat)) { + return R.error("娣诲姞澶辫触"); + } + //璁剧疆鎵╁睍瀛楁 + setMatField(param, mat); + return R.ok("娣诲姞鎴愬姛"); + } + + @PreAuthorize("hasAuthority('asrs:mat:update')") + @OperationLog("淇敼鍟嗗搧妗f") + @PostMapping("/mat/update") + public R update(@RequestBody HashMap<String,Object> param) { + Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect); + //璁剧疆鎵╁睍瀛楁 + setMatField(param, mat); + + if (!matService.updateById(mat)) { + return R.error("淇敼澶辫触"); + } + return R.ok("淇敼鎴愬姛"); + } + + @PreAuthorize("hasAuthority('asrs:mat:remove')") + @OperationLog("鍒犻櫎鍟嗗搧妗f") + @PostMapping("/mat/remove/{ids}") + public R remove(@PathVariable Long[] ids) { + if (!matService.removeByIds(Arrays.asList(ids))) { + return R.error("鍒犻櫎澶辫触"); + } + return R.ok("鍒犻櫎鎴愬姛"); + } + + @PreAuthorize("hasAuthority('asrs:mat:list')") + @PostMapping("/mat/query") + public R query(@RequestParam(required = false) String condition) { + List<KeyValVo> vos = new ArrayList<>(); + LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>(); + if (!Cools.isEmpty(condition)) { + wrapper.like(Mat::getId, condition); + } + matService.page(new Page<>(1, 30), wrapper).getRecords().forEach( + item -> vos.add(new KeyValVo(item.getId(), item.getId())) + ); + return R.ok().add(vos); + } + + @PreAuthorize("hasAuthority('asrs:mat:list')") + @PostMapping("/mat/export") + public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<Mat, BaseParam> pageParam = new PageParam<>(baseParam, Mat.class); + List<Mat> data = matService.list(pageParam.buildWrapper(true)); + + List<Mat> list = matService.parseMat(data); + List<MatField> matFields = matFieldService.getMatFields(); + ExcelUtil.build(ExcelUtil.create(list, Mat.class, matFields), response); + } + + private void setMatField(Map<String, Object> param, Mat mat) { + //鑾峰彇鎵╁睍瀛楁 + List<MatField> matFields = matFieldService.list(); + for (MatField matField : matFields) { + if (param.containsKey(matField.getName())) { + MatFieldValue fieldValue = matFieldValueService.getOne(new LambdaQueryWrapper<MatFieldValue>() + .eq(MatFieldValue::getMatId, mat.getId()) + .eq(MatFieldValue::getFieldId, matField.getId())); + Object valueObj = param.get(matField.getName()); + String value = ""; + if(valueObj != null) { + value = valueObj.toString(); + } + + if (fieldValue == null) { + fieldValue = new MatFieldValue(); + fieldValue.setMatId(mat.getId()); + fieldValue.setFieldId(matField.getId()); + fieldValue.setName(matField.getName()); + fieldValue.setValue(value); + matFieldValueService.save(fieldValue); + }else { + fieldValue.setValue(value); + matFieldValueService.updateById(fieldValue); + } + } + } + } + + @PreAuthorize("hasAuthority('asrs:mat:list')") + @PostMapping("/mat/exportTemplate") + public void exportTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { + ArrayList<MatTemplate> list = new ArrayList<>(); + List<MatField> matFields = matFieldService.getMatFields(); + ExcelUtil.build(ExcelUtil.create(list, MatTemplate.class, matFields), response); + } + + @PostMapping("/mat/upload") + @Transactional + public R upload(@RequestParam("file") MultipartFile file) { + List<MatTemplate> list = ExcelUtil.parseExcelFile(file, MatTemplate.class); + for (MatTemplate matTemplate : list) { + String firstTag = matTemplate.getFirstTag(); + String secondTag = matTemplate.getSecondTag(); + Tag tag1 = null; + Long tagId = null; + + if (!Cools.isEmpty(firstTag)) { + Tag tag = tagService.getOne(new LambdaQueryWrapper<Tag>().eq(Tag::getName, firstTag)); + if (tag == null) { + tag = new Tag(); + tag.setName(firstTag); + tag.setParentId(0L); + tagService.save(tag); + } + + tagId = tag.getId(); + tag1 = tag; + } + + if (!Cools.isEmpty(secondTag)) { + if (tag1 != null) { + Tag tag = tagService.getOne(new LambdaQueryWrapper<Tag>().eq(Tag::getName, secondTag).eq(Tag::getParentId, tag1.getId())); + if (tag == null) { + tag = new Tag(); + tag.setName(secondTag); + tag.setParentId(tag1.getId()); + tagService.save(tag); + } + + tagId = tag.getId(); + } + } + + + Mat mat = new Mat(); + mat.sync(matTemplate); + mat.setTagId(tagId); + if (!matService.save(mat)) { + throw new CoolException("鍒涘缓鍟嗗搧澶辫触"); + } + //璁剧疆鎵╁睍瀛楁 + setMatField(matTemplate.getDynamicFields(), mat); + } + return R.ok(); + } + +} -- Gitblit v1.9.1