From 87fdb2f2bed0fa37a19e8e331525d62b0c63cbdd Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 19 Sep 2022 14:39:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/StructrelavehicletypeController.java | 75 +++++++ .../service/StructrelavehicletypeService.java | 73 +++++++ .../service/dto/StructrelavehicletypeDto.java | 64 ++++++ .../StructrelavehicletypeServiceImpl.java | 186 ++++++++++++++++++ .../st/wql/ST_Structrelavehicletype_01.wql | 86 ++++++++ .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 257024 -> 261120 bytes .../wms/basedata/st/structrelavehicletype.js | 34 ++++ .../st/structRelaVehicleType/index.vue | 165 ++++++++++++++++ 8 files changed, 683 insertions(+) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructrelavehicletypeController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructrelavehicletypeService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/StructrelavehicletypeDto.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructrelavehicletypeServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/ST_Structrelavehicletype_01.wql create mode 100644 mes/qd/src/api/wms/basedata/st/structrelavehicletype.js create mode 100644 mes/qd/src/views/wms/basedata/st/structRelaVehicleType/index.vue diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructrelavehicletypeController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructrelavehicletypeController.java new file mode 100644 index 00000000..195e5d6b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructrelavehicletypeController.java @@ -0,0 +1,75 @@ + +package org.nl.wms.basedata.st.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.annotation.Log; +import org.nl.wms.basedata.st.service.StructrelavehicletypeService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** +* @author geng by +* @date 2022-04-27 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "仓位载具关联管理") +@RequestMapping("/api/structrelavehicletype") +@Slf4j +public class StructrelavehicletypeController { + + private final StructrelavehicletypeService structrelavehicletypeService; + + @GetMapping + @Log("查询仓位载具关联") + @ApiOperation("查询仓位载具关联") + //@PreAuthorize("@el.check('structrelavehicletype:list')") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ + return new ResponseEntity<>(structrelavehicletypeService.queryAll(whereJson,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增仓位载具关联") + @ApiOperation("新增仓位载具关联") + //@PreAuthorize("@el.check('structrelavehicletype:add')") + public ResponseEntity create(@RequestBody JSONObject param){ + structrelavehicletypeService.create(param); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改仓位载具关联") + @ApiOperation("修改仓位载具关联") + //@PreAuthorize("@el.check('structrelavehicletype:edit')") + public ResponseEntity update(@RequestBody JSONObject param){ + structrelavehicletypeService.update(param); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除仓位载具关联") + @ApiOperation("删除仓位载具关联") + //@PreAuthorize("@el.check('structrelavehicletype:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody String[] ids) { + structrelavehicletypeService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/getStruct") + @Log("查询仓位") + @ApiOperation("查询仓位") + //@PreAuthorize("@el.check('iodisstruct:list')") + public ResponseEntity getStruct(){ + return new ResponseEntity<>(structrelavehicletypeService.getStruct(),HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructrelavehicletypeService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructrelavehicletypeService.java new file mode 100644 index 00000000..f4240832 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructrelavehicletypeService.java @@ -0,0 +1,73 @@ + +package org.nl.wms.basedata.st.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.basedata.st.service.dto.StructrelavehicletypeDto; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Map; + +/** +* @description 服务接口 +* @author geng by +* @date 2022-04-27 +**/ +public interface StructrelavehicletypeService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + + /** + * 查询所有数据不分页 + * @param whereJson 条件参数 + * @return List + */ + List queryAll(Map whereJson); + + /** + * 根据ID查询 + * @param relation_id ID + * @return Structrelavehicletype + */ + StructrelavehicletypeDto findById(String relation_id); + + /** + * 根据编码查询 + * @param code code + * @return Structrelavehicletype + */ + StructrelavehicletypeDto findByCode(String code); + + + /** + * 创建 + * @param param / + */ + void create(JSONObject param); + + /** + * 编辑 + * @param param / + */ + void update(JSONObject param); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(String[] ids); + + /** + * 查询仓位 + * @return + */ + JSONArray getStruct(); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/StructrelavehicletypeDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/StructrelavehicletypeDto.java new file mode 100644 index 00000000..d2fe3a0e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/StructrelavehicletypeDto.java @@ -0,0 +1,64 @@ +package org.nl.wms.basedata.st.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author geng by + * @description / + * @date 2022-04-27 + **/ +@Data +public class StructrelavehicletypeDto implements Serializable { + + /** + * 关系标识 + */ + private String relation_id; + + /** + * 仓位标识 + */ + private String struct_id; + + /** + * 载具类型 + */ + private String vehicle_type; + + /** + * 创建人 + */ + private Long create_id; + + /** + * 创建人 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改人 + */ + private Long update_optid; + + /** + * 修改人 + */ + private String update_optname; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 是否已删除 + */ + private String is_delete; +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructrelavehicletypeServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructrelavehicletypeServiceImpl.java new file mode 100644 index 00000000..b08db541 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructrelavehicletypeServiceImpl.java @@ -0,0 +1,186 @@ + +package org.nl.wms.basedata.st.service.impl; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.utils.SecurityUtils; +import org.nl.wms.basedata.st.service.StructrelavehicletypeService; +import org.nl.wms.basedata.st.service.dto.StructrelavehicletypeDto; +import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; +import org.nl.wql.util.WqlUtil; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + * @author geng by + * @description 服务实现 + * @date 2022-04-27 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class StructrelavehicletypeServiceImpl implements StructrelavehicletypeService { + + @Override + public Map queryAll(Map whereJson, Pageable page) { + String search = MapUtil.getStr(whereJson, "search"); + JSONObject map = new JSONObject(); + map.put("flag", "2"); + if (ObjectUtil.isNotEmpty(search)) { + map.put("search", "%" + search + "%"); + } + JSONObject json = WQL.getWO("ST_Structrelavehicletype_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "view_vehicleType.struct_code"); + WQLObject wo = WQLObject.getWQLObject("sys_dict_detail"); + JSONArray content = json.getJSONArray("content"); + JSONArray newContent = new JSONArray(); + for (int i = 0; i < content.size(); i++) { + JSONObject jsonObject = content.getJSONObject(i); + String vehicle_type = jsonObject.getString("vehicle_type"); + String[] vehicle_types = new String[0]; + if (StrUtil.isNotEmpty(vehicle_type)){ + vehicle_types = vehicle_type.split(","); + } + String typeNames = ""; + if (vehicle_types.length > 0){ + for (int j = 0; j < vehicle_types.length; j++) { + JSONObject type = wo.query("value = '" + vehicle_types[j] + "' and name = 'storagevehicle_type'").uniqueResult(0); + String typeName = type.getString("label"); + if (vehicle_types.length - 1 != j) { + typeNames = typeNames + typeName + ","; + } + if (vehicle_types.length - 1 == j) { + typeNames = typeNames + typeName; + } + } + } + jsonObject.put("is_edit","0"); + jsonObject.put("vehicle_type_name", typeNames); + jsonObject.put("vehicle_type", vehicle_types); + newContent.add(jsonObject); + } + json.put("content", newContent); + return json; + } + + @Override + public List queryAll(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype"); + JSONArray arr = wo.query().getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(StructrelavehicletypeDto.class); + return null; + } + + @Override + public StructrelavehicletypeDto findById(String relation_id) { + WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype"); + JSONObject json = wo.query("relation_id = '" + relation_id + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(StructrelavehicletypeDto.class); + } + return null; + } + + @Override + public StructrelavehicletypeDto findByCode(String code) { + WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype"); + JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(StructrelavehicletypeDto.class); + } + return null; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(JSONObject param) { + String struct_id = param.getString("struct_id"); + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype"); + JSONArray vehicle_types = param.getJSONArray("vehicle_type"); + for (int i = 0; i < vehicle_types.size(); i++) { + param.put("relation_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId())); + param.put("struct_id", struct_id); + param.put("vehicle_type", vehicle_types.get(i)); + param.put("update_optid", currentUserId); + param.put("update_optname", nickName); + param.put("update_time", now); + param.put("create_id", currentUserId); + param.put("create_name", nickName); + param.put("create_time", now); + wo.insert(param); + } + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject param) { + String struct_id = param.getString("struct_id"); + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype"); + + wo.delete("struct_id = '" + struct_id + "'"); + JSONArray vehicle_types = param.getJSONArray("vehicle_type"); + if (vehicle_types.size() == 0){ + param.put("relation_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId())); + param.put("struct_id", struct_id); + param.put("vehicle_type", null); + param.put("update_optid", currentUserId); + param.put("update_optname", nickName); + param.put("update_time", now); + param.put("create_id", currentUserId); + param.put("create_name", nickName); + param.put("create_time", now); + wo.insert(param); + return; + } + for (int i = 0; i < vehicle_types.size(); i++) { + param.put("relation_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId())); + param.put("struct_id", struct_id); + param.put("vehicle_type", vehicle_types.get(i)); + param.put("update_optid", currentUserId); + param.put("update_optname", nickName); + param.put("update_time", now); + param.put("create_id", currentUserId); + param.put("create_name", nickName); + param.put("create_time", now); + wo.insert(param); + } + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(String[] ids) { + WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype"); + for (String struct_id : ids) { + wo.delete("struct_id = '" + struct_id + "'"); + } + } + + @Override + public JSONArray getStruct() { + JSONObject map = new JSONObject(); + map.put("flag", "1"); + JSONArray json = WQL.getWO("ST_Structrelavehicletype_01").addParamMap(map).process().getResultJSONArray(0); + return json; + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/ST_Structrelavehicletype_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/ST_Structrelavehicletype_01.wql new file mode 100644 index 00000000..d7e77197 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/ST_Structrelavehicletype_01.wql @@ -0,0 +1,86 @@ +[交易说明] + 交易名: 仓位载具类型查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.search TYPEAS s_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + * + FROM + st_ivt_structattr + WHERE + is_delete = '0' and struct_id not in( + select distinct struct_id from st_ivt_structrelavehicletype + ) + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + SELECT + * + FROM + ( + SELECT + any_value ( vehicleType.struct_id ) AS struct_id, + any_value ( vehicleType.create_id ) AS create_id, + any_value ( vehicleType.create_name ) AS create_name, + any_value ( vehicleType.create_time ) AS create_time, + any_value ( vehicleType.update_optname ) AS update_optname, + any_value ( struct.struct_code ) AS struct_code, + any_value ( vehicleType.update_time ) AS update_time, + any_value ( struct.struct_name ) AS struct_name, + any_value ( GROUP_CONCAT( vehicleType.vehicle_type ) ) AS vehicle_type + FROM + ST_IVT_StructRelaVehicleType vehicleType + LEFT JOIN st_ivt_structattr struct ON vehicleType.struct_id = struct.struct_id + GROUP BY + vehicleType.struct_id + ) AS view_vehicleType + WHERE + 1 = 1 + OPTION 输入.search <> "" + (view_vehicleType.struct_code like 输入.search or + view_vehicleType.struct_name like 输入.search) + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index 5c4cf0183b088617e988c33f9377d0142a2475ef..0f5d9333e244c45ebd7876693ba13fd9328e540d 100644 GIT binary patch delta 50996 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 s&4l~p!1dUfcetW6@^tWnno8D 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 Pv|1AC6JGYCYP0-5yJHmU diff --git a/mes/qd/src/api/wms/basedata/st/structrelavehicletype.js b/mes/qd/src/api/wms/basedata/st/structrelavehicletype.js new file mode 100644 index 00000000..4d2188ac --- /dev/null +++ b/mes/qd/src/api/wms/basedata/st/structrelavehicletype.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/structrelavehicletype', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/structrelavehicletype/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/structrelavehicletype', + method: 'put', + data + }) +} + +export function getStruct() { + return request({ + url: 'api/structrelavehicletype/getStruct', + method: 'get' + }) +} + +export default { add, edit, del, getStruct } diff --git a/mes/qd/src/views/wms/basedata/st/structRelaVehicleType/index.vue b/mes/qd/src/views/wms/basedata/st/structRelaVehicleType/index.vue new file mode 100644 index 00000000..9b776da6 --- /dev/null +++ b/mes/qd/src/views/wms/basedata/st/structRelaVehicleType/index.vue @@ -0,0 +1,165 @@ + + + + +