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 5c4cf018..0f5d9333 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls differ 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 @@ + + + + +