This commit is contained in:
2023-05-17 09:54:30 +08:00
45 changed files with 477 additions and 2713 deletions

View File

@@ -14,7 +14,7 @@ import java.sql.Connection;
/**
* mybatis数据库操作拦截
*/
@Component
//@Component
@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})})
public class DatazhuazhuaInterceptor implements Interceptor {

View File

@@ -1,20 +0,0 @@
package org.nl.wms.masterdata_manage.controller.master;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 基础数据分类标准表 前端控制器
* </p>
*
* @author generator
* @since 2023-05-05
*/
@RestController
@RequestMapping("/mdPbClassstandard")
public class MdPbClassstandardController {
}

View File

@@ -1,20 +0,0 @@
package org.nl.wms.masterdata_manage.controller.master;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 计量单位表 前端控制器
* </p>
*
* @author generator
* @since 2023-05-05
*/
@RestController
@RequestMapping("/mdPbMeasureunit")
public class MdPbMeasureunitController {
}

View File

@@ -1,7 +1,8 @@
package org.nl.wms.masterdata_manage.备份master.rest;
package org.nl.wms.masterdata_manage.master.controller.classstandard;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -9,10 +10,13 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.TableDataInfo;
import org.nl.common.anno.Log;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService;
import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
import org.nl.wms.masterdata_manage.备份master.service.dto.ClassstandardDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -30,24 +34,27 @@ import java.util.Map;
@Api(tags = "基础类别管理")
@RequestMapping("/api/Classstandard")
@Slf4j
@SaIgnore
public class ClassstandardController {
private final ClassstandardService ClassstandardService;
@Autowired
private IMdPbClassstandardService mdPbClassstandardService;
@GetMapping
@Log("查询基础类别")
@ApiOperation("查询基础类别")
//@PreAuthorize("@el.check('Classstandard:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
return new ResponseEntity<>(ClassstandardService.queryAll(whereJson, page), HttpStatus.OK);
public ResponseEntity<Object> queryList(@RequestParam Map whereJson) {
return new ResponseEntity<>(TableDataInfo.build(mdPbClassstandardService.dropdownList(whereJson)), HttpStatus.OK);
}
@PostMapping
@Log("新增基础类别")
@ApiOperation("新增基础类别")
//@PreAuthorize("@el.check('Classstandard:add')")
public ResponseEntity<Object> create(@Validated @RequestBody ClassstandardDto dto) {
ClassstandardService.create(dto);
public ResponseEntity<Object> create(@Validated @RequestBody JSONObject form) {
mdPbClassstandardService.create(form);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@@ -55,8 +62,8 @@ public class ClassstandardController {
@Log("修改基础类别")
@ApiOperation("修改基础类别")
//@PreAuthorize("@el.check('Classstandard:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody ClassstandardDto dto) {
ClassstandardService.update(dto);
public ResponseEntity<Object> update(@Validated @RequestBody JSONObject form) {
mdPbClassstandardService.updateForm(form);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@@ -64,8 +71,8 @@ public class ClassstandardController {
@ApiOperation("删除基础类别")
//@PreAuthorize("@el.check('Classstandard:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
ClassstandardService.deleteAll(ids);
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
mdPbClassstandardService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@@ -74,7 +81,7 @@ public class ClassstandardController {
@ApiOperation("查询基础类型")
//@PreAuthorize("@el.check('materialtype:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson) {
return new ResponseEntity<>(ClassstandardService.loadClass(whereJson), HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(mdPbClassstandardService.loadClass(whereJson)), HttpStatus.OK);
}
@GetMapping("/getClass")
@@ -82,7 +89,7 @@ public class ClassstandardController {
@ApiOperation("查询基础类型")
//@PreAuthorize("@el.check('materialtype:list')")
public ResponseEntity<Object> queryClassBycode(@RequestParam Map whereJson) {
return new ResponseEntity<>(ClassstandardService.queryClassBycode(whereJson), HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(mdPbClassstandardService.queryClassBycode(whereJson)), HttpStatus.OK);
}
@@ -91,7 +98,7 @@ public class ClassstandardController {
@ApiOperation("查询分类基础列表")
//@PreAuthorize("@el.check('materialtype:list')")
public ResponseEntity<Object> queryClassById(@RequestParam Map whereJson) {
return new ResponseEntity<>(ClassstandardService.queryClassById(whereJson), HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(mdPbClassstandardService.queryClassById(whereJson)), HttpStatus.OK);
}
@GetMapping("/getClassTable")

View File

@@ -1,5 +1,5 @@
package org.nl.wms.masterdata_manage.备份master.rest;
package org.nl.wms.masterdata_manage.master.controller.measureunit;
import io.swagger.annotations.Api;
@@ -26,7 +26,7 @@ import java.util.Map;
@Api(tags = "计量单位管理")
@RequestMapping("/api/mdPbMeasureunit")
@Slf4j
public class UnitController {
public class MdPbMeasureunitController {
private final UnitService unitService;
@GetMapping

View File

@@ -0,0 +1,58 @@
package org.nl.wms.masterdata_manage.master.service.classstandard;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.masterdata_manage.master.service.classstandard.dao.MdPbClassstandard;
import java.util.List;
import java.util.Map;
/**
* <p>
* 基础数据分类标准表 服务类
* </p>
*
* @author generator
* @since 2023-05-05
*/
public interface IMdPbClassstandardService extends IService<MdPbClassstandard> {
/**
* 物料类型下拉选
* @param json
* @return
*/
List<Map> dropdownList(Map json);
/**
* 家在物料列表
* @param whereJson
*/
List<Map> loadClass(Map whereJson);
List<Map> queryClassBycode(Map whereJson);
List<Map> queryClassById(Map whereJson);
/**
* 创建
* @param form
* @return
*/
String create(JSONObject form);
/**
* 修改
* @param form
* @return
*/
String updateForm(JSONObject form);
/**
* 删除当前及子集
* @param ids
*/
void deleteAll(String[] ids);
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.masterdata_manage.service.master.dao;
package org.nl.wms.masterdata_manage.master.service.classstandard.dao;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -25,6 +26,7 @@ public class MdPbClassstandard implements Serializable {
/**
* 分类标识
*/
@TableId(value = "class_id")
private String class_id;
/**
@@ -55,7 +57,7 @@ public class MdPbClassstandard implements Serializable {
/**
* 子部门数目
*/
private String sub_count;
private Integer sub_count;
/**
* 是否叶子
@@ -95,7 +97,7 @@ public class MdPbClassstandard implements Serializable {
/**
* 创建时间
*/
private LocalDateTime create_time;
private String create_time;
/**
* 修改人
@@ -110,7 +112,9 @@ public class MdPbClassstandard implements Serializable {
/**
* 修改时间
*/
private LocalDateTime update_time;
private String update_time;
private Boolean is_delete;
}

View File

@@ -0,0 +1,121 @@
package org.nl.wms.masterdata_manage.master.service.classstandard.dto;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* <p>
* 基础数据分类标准表
* </p>
*
* @author generator
* @since 2023-05-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_pb_classstandard")
public class MdPbClassstandardTree implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分类标识
*/
@TableId(value = "class_id")
private String class_id;
/**
* 分类编码
*/
private String class_code;
/**
* 分类长编码
*/
private String long_class_code;
/**
* 分类名称
*/
private String class_name;
/**
* 分类简要描述
*/
private String class_desc;
/**
* 上级分类标识
*/
private String parent_class_id;
/**
* 子部门数目
*/
private Integer sub_count;
/**
* 是否叶子
*/
private Boolean is_leaf;
/**
* 是否可修改
*/
private Boolean is_modify;
/**
* 级别
*/
private String class_level;
/**
* 外部标识
*/
private String ext_id;
/**
* 外部上级标识
*/
private String ext_parent_id;
/**
* 创建人
*/
private String create_id;
/**
* 创建人姓名
*/
private String create_name;
/**
* 创建时间
*/
private String create_time;
/**
* 修改人
*/
private String update_id;
/**
* 修改人姓名
*/
private String update_name;
/**
* 修改时间
*/
private String update_time;
private List<MdPbClassstandardTree> itemClassstrandard;
}

View File

@@ -0,0 +1,240 @@
package org.nl.wms.masterdata_manage.master.service.classstandard.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.hash.Hash;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.nl.common.utils.CopyUtil;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService;
import org.nl.wms.masterdata_manage.master.service.classstandard.dao.MdPbClassstandard;
import org.nl.wms.masterdata_manage.master.service.classstandard.dto.MdPbClassstandardTree;
import org.nl.wms.masterdata_manage.service.master.dao.mapper.MdPbClassstandardMapper;
import org.nl.wms.masterdata_manage.备份master.service.dto.ClassstandardDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 基础数据分类标准表 服务实现类
* </p>
*
* @author generator
* @since 2023-05-05
*/
@Service
public class MdPbClassstandardServiceImpl extends ServiceImpl<MdPbClassstandardMapper, MdPbClassstandard> implements IMdPbClassstandardService {
@Override
public List<Map> dropdownList(Map whereJson) {
Assert.notNull(whereJson,"参数不能为空");
QueryWrapper<MdPbClassstandard> query = new QueryWrapper<MdPbClassstandard>()
.eq("parent_class_id", "0")
.eq("is_delete",false);
if (whereJson.get("class_code") !=null) {
query.eq("class_code",whereJson.get("class_code"));
}
return getMaps(this.listMaps(query));
}
@Override
public List<Map> loadClass(Map whereJson) {
List<Map<String, Object>> list = this.listMaps(new QueryWrapper<MdPbClassstandard>()
.eq("is_delete", false)
.eq("parent_class_id", whereJson.get("pid") == null ? "0":whereJson.get("pid")));
List<Map> result = getMaps(list);
return result;
}
@NotNull
private List<Map> getMaps(List<Map<String, Object>> list) {
List<Map> result = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Map<String, Object> item = list.get(i);
if ((int)item.get("sub_count") > 0) {
item.put("hasChildren", true);
item.put("leaf", false);
} else {
item.put("hasChildren", false);
item.put("leaf", true);
}
item.put("id", item.get("class_id"));
item.put("label", item.get("class_name"));
item.put("create_user_name", item.get("create_name"));
item.put("update_user_name", item.get("update_name"));
result.add(item);
}
return result;
}
@Override
public List<Map> queryClassBycode(Map whereJson) {
MdPbClassstandard classstandard = null;
if (ObjectUtil.isNotEmpty(whereJson.get("parent_class_code"))) {
classstandard = this.getOne(new QueryWrapper<MdPbClassstandard>().eq("class_code", whereJson.get("parent_class_code")));
if (classstandard == null) {
throw new BadRequestException("请输入正确的父节点编号!");
}
}
QueryWrapper<MdPbClassstandard> query = new QueryWrapper<MdPbClassstandard>().eq("is_delete",false);
if (ObjectUtil.isNotEmpty(whereJson.get("class_code"))) {
query.in("class_code",whereJson.get("class_code"));
}
if (ObjectUtil.isNotEmpty(whereJson.get("parent_class_code"))&&!whereJson.get("parent_class_code").equals("0")){
query.eq("class_id",classstandard.getClass_id());
}
if (ObjectUtil.isNotEmpty(whereJson.get("parent_class_code")) || whereJson.get("parent_class_code").equals("0")){
query.eq("parent_class_id","0").or().isNull("parent_class_id");
}
return getMaps(this.listMaps(query));
}
@Override
public List<Map> queryClassById(Map whereJson) {
QueryWrapper<MdPbClassstandard> query = new QueryWrapper<>();
if (ObjectUtil.isNotEmpty(whereJson.get("whereStr"))) {
query.last((String) whereJson.get("whereStr"));
}
if (ObjectUtil.isNotEmpty(whereJson.get("class_idStr"))) {
query.in("class_id",whereJson.get("class_idStr"));
}
if (ObjectUtil.isNotEmpty(whereJson.get("parent_class_id"))) {
query.eq("parent_class_id",whereJson.get("parent_class_id"));
}
return getMaps(this.listMaps(query));
}
@Override
@Transactional
public String create(JSONObject form) {
MdPbClassstandard one = this.getOne(new QueryWrapper<MdPbClassstandard>().eq("class_code", form.getString("class_code")));
if (one != null) {
throw new BadRequestException(form.getString("class_code")+"存在相同的基础类别编号");
}
MdPbClassstandard classstandard = form.toJavaObject(MdPbClassstandard.class);
classstandard.setClass_id(IdUtil.getStringId());
classstandard.setCreate_id(SecurityUtils.getCurrentUserId());
classstandard.setCreate_name(SecurityUtils.getCurrentNickName());
classstandard.setCreate_time(DateUtil.now());
classstandard.setIs_leaf(true);
classstandard.setClass_level(Math.ceil(classstandard.getClass_code().length() / 2.0) + "");
classstandard.setSub_count(0);
classstandard.setLong_class_code(classstandard.getClass_code());
this.save(classstandard);
///更新节点
if (classstandard.getParent_class_id() != null) {
updateSubCnt(classstandard.getClass_id());
}
return classstandard.getClass_id();
}
public void updateSubCnt(String class_id) {
if (!StringUtils.isEmpty(class_id)){
MdPbClassstandard one = this.getOne(new QueryWrapper<MdPbClassstandard>().eq("class_id", class_id).eq("is_delete",false));
if (one == null){
throw new BadRequestException(class_id+"没有对应分类数据");
}
int count = this.count(new QueryWrapper<MdPbClassstandard>()
.eq("parent_class_id", class_id));
one.setSub_count( count);
one.setIs_leaf(count > 0?false:true);
this.updateById(one);
}
}
@Override
@Transactional
public String updateForm(JSONObject form) {
checkParam(form);
MdPbClassstandard dto = form.toJavaObject(MdPbClassstandard.class);
dto.setUpdate_time(DateUtil.now());
dto.setUpdate_id(SecurityUtils.getCurrentUserId());
dto.setUpdate_name(SecurityUtils.getCurrentNickName());
this.updateById(dto);
//更新父节点中子节点数目
String oldPid = this.getOne(new QueryWrapper<MdPbClassstandard>().eq("class_id", form.getString("class_id"))).getParent_class_id();
updateSubCnt(oldPid);
updateSubCnt(form.getString("parent_class_id"));
return null;
}
private void checkParam(JSONObject form) {
Assert.notNull(form,"参数不能为空");
MdPbClassstandard onebyid = this.getOne(new QueryWrapper<MdPbClassstandard>().eq("class_id", form.getString("class_id")));
if (onebyid == null) {
throw new BadRequestException(form.getString("class_id")+"被删除或无权限,操作失败!");
}
MdPbClassstandard onebycode = this.getOne(new QueryWrapper<MdPbClassstandard>().eq("class_code", form.getString("class_code")));
if (onebycode != null) {
throw new BadRequestException("存在相同的供应商编号");
}
if (form.getString("parent_class_id") != null && form.getString("class_id").equals(form.getString("parent_class_id"))) {
throw new BadRequestException("上级不能为自己");
}
}
@Override
public void deleteAll(String[] ids) {
final String TOP_PARENT_ID = "0";
if (ids == null || ids.length==0){
return;
}
List<MdPbClassstandardTree> list = CopyUtil.copyList(this.list(), MdPbClassstandardTree.class);
Map<String, List<MdPbClassstandardTree>> collect = list.stream().collect(Collectors.groupingBy(MdPbClassstandardTree::getParent_class_id));
Set<String> removeCollect = new HashSet<>();
for (String id : ids) {
removeCollect.add(id);
List<MdPbClassstandardTree> top_parent = collect.remove(id);
this.getChildTree(top_parent, collect, removeCollect);
}
if (!CollectionUtils.isEmpty(removeCollect)){
this.update(new UpdateWrapper<MdPbClassstandard>()
.set("is_delete",true)
.set("update_id",SecurityUtils.getCurrentUserId())
.set("update_name",SecurityUtils.getCurrentNickName()).set("update_time",DateUtil.now()).in("class_id",removeCollect));
}
}
private List<MdPbClassstandardTree> getChildTree(List<MdPbClassstandardTree> top_parent, Map<String, List<MdPbClassstandardTree>> collect,Set<String> removeCollect){
removeCollect.addAll(top_parent.stream().map(MdPbClassstandardTree::getClass_id).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(collect)){
return top_parent;
}
for (MdPbClassstandardTree parent : top_parent) {
List<MdPbClassstandardTree> child = collect.remove(parent.getClass_id());
if (CollectionUtils.isEmpty(child)){
continue;
}
List<MdPbClassstandardTree> childMenuTree = getChildTree(child, collect,removeCollect);
if (!CollectionUtils.isEmpty(childMenuTree)){
parent.setItemClassstrandard(childMenuTree);
}
}
return top_parent;
}
}

View File

@@ -1,16 +0,0 @@
package org.nl.wms.masterdata_manage.service.master;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbClassstandard;
/**
* <p>
* 基础数据分类标准表 服务类
* </p>
*
* @author generator
* @since 2023-05-05
*/
public interface IMdPbClassstandardService extends IService<MdPbClassstandard> {
}

View File

@@ -1,7 +1,7 @@
package org.nl.wms.masterdata_manage.service.master.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbClassstandard;
import org.nl.wms.masterdata_manage.master.service.classstandard.dao.MdPbClassstandard;
/**
* <p>

View File

@@ -1,20 +0,0 @@
package org.nl.wms.masterdata_manage.service.master.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.masterdata_manage.service.master.IMdPbClassstandardService;
import org.nl.wms.masterdata_manage.service.master.dao.MdPbClassstandard;
import org.nl.wms.masterdata_manage.service.master.dao.mapper.MdPbClassstandardMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 基础数据分类标准表 服务实现类
* </p>
*
* @author generator
* @since 2023-05-05
*/
@Service
public class MdPbClassstandardServiceImpl extends ServiceImpl<MdPbClassstandardMapper, MdPbClassstandard> implements IMdPbClassstandardService {
}

View File

@@ -1,9 +1,6 @@
package org.nl.wms.masterdata_manage.storage.service.storage.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -11,8 +8,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
@@ -20,7 +15,6 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstora
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtBsrealstorattrMapper;
import org.nl.wms.masterdata_manage.备份st.service.dto.StorattrDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

View File

@@ -1,31 +0,0 @@
package org.nl.wms.masterdata_manage.备份st;
/**
* // 11-扣减可用; 12-增加可用;
* // 21-减库存; 22-加库存; 23-同时加; 24-同时减
*/
public enum IvtChangeTypeEnum {
SUB_CAN_USE("扣减可用数", 11),
ADD_CAN_USE("增加用数", 12),
SUB_IVT("扣减库存", 21),
ADD_IVT("增加库存", 22),
ADD_IVT_AND_CAN_USE("同时加库存和可用", 23),
SUB_IVT_AND_CAN_USE("同时减库存和可用", 24);
private final String name;
private final int index;
IvtChangeTypeEnum(String name, int index) {
this.name = name;
this.index = index;
}
public String getName() {
return name;
}
public int getIndex() {
return index;
}
}

View File

@@ -1,298 +0,0 @@
package org.nl.wms.masterdata_manage.备份st;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.wql.core.bean.WQLObject;
import java.math.BigDecimal;
/**
* Title: Test.java Description: 一、入库 单据审核,可用数、库存数加上。 取消审核,可用数、库存数减掉 二、出库
* 单据分配,可用数减掉 取消分配,可用数加回 单据审核,库存数减掉 取消审核,库存数加回
*
* @author ldjun
* @created 2020年7月23日 下午2:23:04
*/
public class StoreIvtServiceImpl {
/**
* @discription 添加仓储变动记录
* @author ldjun
* @created 2020年5月12日 下午12:54:42
*/
public void addIvtFlow(JSONObject disObj, IvtChangeTypeEnum changeType) {
String struct_id = disObj.getString("struct_id");
JSONObject pointObj = WQLObject.getWQLObject("sch_base_point").query("point_id ='" + struct_id + "'").uniqueResult(0);
String vehicle_code = disObj.getString("vehicle_code");
if (StrUtil.isEmpty(struct_id)) {
throw new BadRequestException("仓位标识不能为空!");
}
String change_qty = disObj.getString("change_qty");
if (StrUtil.isEmpty(change_qty)) {
change_qty = "0";
}
if (StrUtil.equals("0", change_qty)) {
throw new BadRequestException("变动量不能都为0!");
}
JSONObject param = new JSONObject();
param.put("change_id", IdUtil.getSnowflake(1, 1).nextId());
param.put("struct_id", struct_id);
param.put("struct_code",pointObj.getString("point_code"));
param.put("struct_name",pointObj.getString("point_name"));
param.put("material_id", disObj.getString("material_id"));
param.put("pcsn", disObj.getString("pcsn"));
//先默认写死,只有一个仓库
param.put("stor_id", "1528627995269533696");
param.put("change_type_scode",changeType.getIndex());
param.put("inv_id", disObj.getString("bill_id"));
param.put("bill_code", disObj.getString("bill_code"));
param.put("bill_type_scode", disObj.getString("bill_type_scode"));
param.put("qty_unit_id", disObj.getString("qty_unit_id"));
param.put("change_time", DateUtil.now());
param.put("change_qty", change_qty);
param.put("change_person_id", SecurityUtils.getCurrentUserId());
param.put("change_person_name", SecurityUtils.getCurrentNickName());
param.put("change_type", changeType.getIndex());
param.put("workprocedure_id", disObj.getString("workprocedure_id"));
param.put("is_full", disObj.getString("is_full"));
// 仓位库存变动记录表【ST_IVT_StructIvtFlow】
WQLObject ivtFlowTab = WQLObject.getWQLObject("ST_IVT_StructIvtFlow");
ivtFlowTab.insert(param);
// 根据变动记录改变仓位库存
param.put("vehicle_code", vehicle_code);
param.put("stewing_time", disObj.getString("stewing_time"));
param.put("producetask_id", disObj.getString("producetask_id"));
this.changeInventory(param, changeType);
}
/**
* @param param
* @discription 扣减可用数
* @author ldjun
* @created 2020年5月12日 上午8:52:44
*/
private void changeInventory(JSONObject param, IvtChangeTypeEnum changeType) {
WQLObject stackIvtTab = WQLObject.getWQLObject("ST_IVT_StructIvt");
String struct_id = param.getString("struct_id");
String vehicle_code = param.getString("vehicle_code");
String stewing_time = param.getString("stewing_time");
String producetask_id = param.getString("producetask_id");
String struct_name = param.getString("struct_name");
String struct_code = param.getString("struct_code");
if (StrUtil.isEmpty(struct_id)) {
throw new BadRequestException("仓位标识不能为空!");
}
String material_id = param.getString("material_id");
// 拼接查询条件参数
String whereArgs = "struct_id = '" + struct_id + "' and material_id = '" + material_id + "'";
JSONObject stackIvtObj = stackIvtTab.query(whereArgs).uniqueResult(0);
// 需变动的数量
String change_qty = param.getString("change_qty");
// 变动类型
// 11-扣减可用; 12-增加可用; 13-刷新可用
// 21-减库存; 22-加库存; 23-同时加; 24-同时减
// 31-加待入; 32-减待入 33减库存可用数可以为0 34同时减(库存和数量) 考虑负数 35 加库存 考虑负数
if (stackIvtObj == null) {// 说明该货位上还没有该物料,直接插入记录即可
JSONObject json = new JSONObject();
json.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId());
json.put("struct_id", param.getString("struct_id"));
json.put("struct_name", param.getString("struct_name"));
json.put("material_id", param.getString("material_id"));
json.put("pcsn", param.getString("pcsn"));
json.put("qty_unit_id", param.getString("qty_unit_id"));
json.put("instorage_time", DateUtil.now());
json.put("canuse_qty", "0");
json.put("frozen_qty", "0");
json.put("ivt_qty", "0");
json.put("warehousing_qty", "0");
json.put("qc_qty", "0");
// 11-扣减可用; 12-增加可用;
// 21-减库存; 22-加库存; 23-同时加(可用和库存); 24-同时减(可用和库存)
// 31-加待入; 32-减待入
switch (changeType.getIndex()) {
case 11: // 扣减可用重量和数量
break;
case 12:
break;
case 13:
break;
case 21:
break;
case 22:
json.put("ivt_qty", change_qty);
break;
case 23:
json.put("ivt_qty", change_qty);
json.put("canuse_qty", change_qty);
break;
case 24:// 同时减
// 语句
break;
case 31:// 加待入
// 语句
break;
case 32:// 减待入
// 语句
break;
default: // 可选
throw new BadRequestException("变动类型不正确!");
}
json.put("vehicle_code", vehicle_code);
json.put("stewing_time", stewing_time);
json.put("producetask_id", producetask_id);
json.put("struct_code", struct_code);
json.put("struct_name", struct_name);
json.put("barcode", param.getString("barcode"));
json.put("workprocedure_id", param.getString("workprocedure_id"));
String is_full = param.getString("is_full");
if (StrUtil.isEmpty(is_full)) {
is_full = "1";
}
json.put("is_full", is_full);
stackIvtTab.insert(json);
}
// 对应的货位上有物料,需判断数量重量相关字段是否符合实际逻辑,符合时更新相应记录
if (stackIvtObj != null) {
// 变动前可用数量
String before_canuse_qty = stackIvtObj.getString("canuse_qty");
// 变动前冻结数量
String before_frozen_qty = stackIvtObj.getString("frozen_qty");
// 变动前库存数量
String before_ivt_qty = stackIvtObj.getString("ivt_qty");
// 变动前待入数量
String before_warehousing_qty = stackIvtObj.getString("warehousing_qty");
// 变动前待检数量
String before_qc_qty = stackIvtObj.getString("qc_qty");
// 变动后可用数量
BigDecimal after_canuse_qty = new BigDecimal(0);
// 变动后冻结数量
BigDecimal after_frozen_qty = new BigDecimal(0);
// 变动后库存数量
BigDecimal after_ivt_qty = new BigDecimal(0);
// 变动后待入数量
BigDecimal after_warehousing_qty = new BigDecimal(0);
// 变动后待检数量
BigDecimal after_qc_qty = new BigDecimal(0);
// 判断是否减为0
boolean is_sub0 = false;
switch (changeType.getIndex()) {
case 11: // 扣减可用重量和数量
// 变动后可用数量
after_canuse_qty = NumberUtil.sub(before_canuse_qty, change_qty);
if (after_canuse_qty.doubleValue() < 0) {
throw new BadRequestException("可用数量不足,无法操作!");
}
stackIvtObj.put("canuse_qty", after_canuse_qty);
break;
case 12:// 12-增加可用重量和数量;
// 变动后可用数量
after_canuse_qty = NumberUtil.add(before_canuse_qty, change_qty);
stackIvtObj.put("canuse_qty", after_canuse_qty);
break;
case 13:// 刷新可用数量和重量
// 语句
break;
case 21:// 减库存
// 变动后库存数量
after_ivt_qty = NumberUtil.sub(before_ivt_qty, change_qty);
if (after_ivt_qty.doubleValue() < 0) {
throw new BadRequestException("可用数量不足,无法操作!");
}
if (after_ivt_qty.doubleValue() <= 0) {
is_sub0 = true;
}
stackIvtObj.put("ivt_qty", after_ivt_qty);
break;
case 33:// 减库存
after_ivt_qty = NumberUtil.sub(before_ivt_qty, change_qty);
if (after_ivt_qty.doubleValue() < 0) {
throw new BadRequestException("库存数量不足,无法操作!");
}
if (after_ivt_qty.doubleValue() <= 0) {
is_sub0 = true;
}
stackIvtObj.put("ivt_qty", after_ivt_qty);
break;
case 22:// 加库存重量和数量
// 变动后库存数量
after_ivt_qty = NumberUtil.add(before_ivt_qty, change_qty);
stackIvtObj.put("ivt_qty", after_ivt_qty);
break;
case 23:// 同时加(可用和库存)
// 变动后可用数量
after_canuse_qty = NumberUtil.add(before_canuse_qty, change_qty);
stackIvtObj.put("canuse_qty", after_canuse_qty);
// 变动后库存数量
after_ivt_qty = NumberUtil.add(before_ivt_qty, change_qty);
stackIvtObj.put("ivt_qty", after_ivt_qty);
// 语句
break;
case 24:// 同时减(库存和数量)
// 变动后可用数量
after_canuse_qty = NumberUtil.sub(before_canuse_qty, change_qty);
if (after_canuse_qty.doubleValue() < 0) {
throw new BadRequestException("可用数量不足,无法操作!");
}
stackIvtObj.put("canuse_qty", after_canuse_qty);
// 变动后库存数量
after_ivt_qty = NumberUtil.sub(before_ivt_qty, change_qty);
if (after_ivt_qty.doubleValue() < 0) {
throw new BadRequestException("可用数量不足,无法操作!");
}
if (after_ivt_qty.doubleValue() <= 0) {
is_sub0 = true;
}
stackIvtObj.put("ivt_qty", after_ivt_qty);
// 语句
break;
case 31:// 加待入
// 语句
break;
case 32:// 减待入
// 语句
break;
default: // 可选
throw new BadRequestException("变动类型不正确!");
}
// 库存减为0删除该记录
if (is_sub0) {
// 出完货以后更新载具号为空
JSONObject structObj = new JSONObject();
structObj.put("storagevehicle_code", "");
structObj.put("struct_id", stackIvtObj.getString("struct_id"));
stackIvtTab.delete(whereArgs);
} else {//更新
stackIvtObj.put("vehicle_code", vehicle_code);
stackIvtTab.update(stackIvtObj, whereArgs);
}
}
}
}

View File

@@ -1,67 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service;
import org.nl.wms.masterdata_manage.备份st.service.dto.MaterialsafeivtDto;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Map;
/**
* @description 服务接口
* @author zhouz
* @date 2021-12-10
**/
public interface MaterialsafeivtService {
/**
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询所有数据不分页
* @param whereJson 条件参数
* @return List<MaterialsafeivtDto>
*/
List<MaterialsafeivtDto> queryAll(Map whereJson);
/**
* 根据ID查询
* @param material_id ID
* @return Materialsafeivt
*/
MaterialsafeivtDto findById(Long material_id);
/**
* 根据编码查询
* @param code code
* @return Materialsafeivt
*/
MaterialsafeivtDto findByCode(String code);
/**
* 创建
* @param dto /
*/
void create(MaterialsafeivtDto dto);
/**
* 编辑
* @param dto /
*/
void update(MaterialsafeivtDto dto);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Long[] ids);
void insertSafe(Map whereJson);
}

View File

@@ -1,69 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service;
import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Map;
/**
* @description 服务接口
* @author zhouz
* @date 2021-12-09
**/
public interface StructrelamaterialService {
/**
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询所有数据不分页
* @param whereJson 条件参数
* @return List<StructrelamaterialDto>
*/
List<StructrelamaterialDto> queryAll(Map whereJson);
/**
* 根据ID查询
* @param material_type_id ID
* @return Structrelamaterial
*/
StructrelamaterialDto findById(Long material_type_id);
/**
* 根据编码查询
* @param code code
* @return Structrelamaterial
*/
StructrelamaterialDto findByCode(String code);
/**
* 创建
* @param dto /
*/
void create(StructrelamaterialDto dto);
/**
* 编辑
* @param dto /
*/
void update(StructrelamaterialDto dto);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Long[] ids);
void insertSet(Map whereJson);
void delSet(Map whereJson);
}

View File

@@ -1,73 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.wms.masterdata_manage.备份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<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询所有数据不分页
* @param whereJson 条件参数
* @return List<StructrelavehicletypeDto>
*/
List<StructrelavehicletypeDto> 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();
}

View File

@@ -1,40 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description /
* @author zhouz
* @date 2021-12-10
**/
@Data
public class MaterialsafeivtDto implements Serializable {
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long stor_id;
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long material_id;
private BigDecimal safe_ivt_down;
private BigDecimal safe_ivt_up;
private Long qty_unit_id;
private String qty_unit_name;
private Long set_id;
private String set_name;
private String set_time;
}

View File

@@ -1,116 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description /
* @author zhouz
* @date 2021-12-09
**/
@Data
public class SectattrDto implements Serializable {
/** 库区标识 */
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long sect_id;
/** 库区编码 */
private String sect_code;
/** 库区名称 */
private String sect_name;
/** 库区简称 */
private String simple_name;
/** 库区类型 */
private String sect_type_attr;
/** 仓库标识 */
private Long stor_id;
/** 仓库名称 */
private String stor_name;
/** 仓库类型 */
private String stor_type;
/** 容量 */
private BigDecimal capacity;
/** 宽度 */
private BigDecimal width;
/** 高度 */
private BigDecimal height;
/** 深度 */
private BigDecimal zdepth;
/** 起始X坐标 */
private BigDecimal xqty;
/** 起始Y坐标 */
private BigDecimal yqty;
/** 起始Z坐标 */
private BigDecimal zqty;
/** 负责人 */
private String sect_manager_name;
/** 负责人电话 */
private String mobile_no;
/** 备注 */
private String remark;
/** 创建人 */
private String create_id;
/** 创建人姓名 */
private String create_name;
/** 创建时间 */
private String create_time;
/** 修改人 */
private String update_id;
/** 修改人姓名 */
private String update_name;
/** 修改时间 */
private String update_time;
/** 是否删除 */
private String is_delete;
/** 背景色 */
private String back_ground_color;
/** 前景色 */
private String front_ground_color;
/** 背景图片 */
private String back_ground_pic;
/** 字体显示方向 */
private String font_direction_scode;
/** 所在楼层 */
private BigDecimal floor_no;
/** 是否启用 */
private String is_used;
/** 外部标识 */
private String ext_id;
}

View File

@@ -1,107 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description /
* @author zhouz
* @date 2021-12-08
**/
@Data
public class StorattrDto implements Serializable {
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long stor_id;
/** 仓库编码 */
private String stor_code;
/** 仓库名称 */
private String stor_name;
/** 简称 */
private String simple_name;
/** 容量 */
private BigDecimal stor_capacity;
/** 总面积(㎡) */
private BigDecimal total_area;
/** 仓库性质 */
private String stor_type_scode;
private String is_virtualstore;
private String is_semi_finished;
private String is_materialstore;
private String is_productstore;
private String is_reversed;
private String is_mvout_auto_cfm;
private String is_mvin_auto_cfm;
private String area;
/** 地址 */
private String storea_ddress;
/** 负责人 */
private String principal;
/** 联系电话 */
private String office_phone;
private String mobile_no;
/** 备注 */
private String remark;
private BigDecimal order_index;
private String whstate_scode;
/** 是否启用 */
private String is_used;
private String base_class_id;
private String create_id;
private String create_name;
private String create_time;
private String update_id;
private String update_name;
private String update_time;
private Long sysownerid;
private Long sysdeptid;
private Long syscompanyid;
private String is_delete;
private String ext_id;
private String depart_name;
private String company_name;
private String is_attachment;
}

View File

@@ -1,146 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description /
* @author zhouz
* @date 2021-12-09
**/
@Data
public class StructattrDto implements Serializable {
/** 仓位标识 */
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long struct_id;
/** 仓位编码 */
private String struct_code;
/** 仓位名称 */
private String struct_name;
/** 仓位简称 */
private String simple_name;
/** 库区标识 */
private Long sect_id;
/** 库区编码 */
private String sect_code;
/** 库区名称 */
private String sect_name;
/** 仓库标识 */
private Long stor_id;
/** 仓库编码 */
private String stor_code;
/** 仓库名称 */
private String stor_name;
/** 仓库类型 */
private String stor_type;
/** 容量 */
private BigDecimal capacity;
/** 宽度 */
private BigDecimal width;
/** 高度 */
private BigDecimal height;
/** 深度 */
private BigDecimal zdepth;
/** 承受重量 */
private BigDecimal weight;
/** 起始X坐标 */
private BigDecimal xqty;
/** 起始Y坐标 */
private BigDecimal yqty;
/** 起始Z坐标 */
private BigDecimal zqty;
/** 是否临时仓位 */
private String is_tempstruct;
/** 创建人 */
private String create_id;
/** 创建人姓名 */
private String create_name;
/** 创建时间 */
private String create_time;
/** 修改人 */
private String update_id;
/** 修改人姓名 */
private String update_name;
/** 修改时间 */
private String update_time;
/** 是否删除 */
private String is_delete;
/** 背景色 */
private String back_ground_color;
/** 前景色 */
private String front_ground_color;
/** 背景图片 */
private String back_ground_pic;
/** 字体显示方向 */
private String font_direction_scode;
/** 是否启用 */
private String is_used;
/** 是否判断高度 */
private String is_zdepth;
/** 存储载具标识 */
private Long storagevehicle_id;
/** 存储载具号 */
private String storagevehicle_code;
/** 存储载具类型 */
private String storagevehicle_type;
/** 是否空载具 */
private String is_emptyvehicle;
/** 载具数量 */
private BigDecimal storagevehicle_qty;
/** 锁定类型 */
private String lock_type;
/** 物料高度类型 */
private String material_height_type;
/** 外部标识 */
private String ext_id;
/** 备注 */
private String remark;
}

View File

@@ -1,66 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description /
* @author geng by
* @date 2022-06-02
**/
@Data
public class StructivtDto implements Serializable {
/** 库存记录标识 */
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long stockrecord_id;
/** 仓位标识 */
private Long struct_id;
/** 仓位编码 */
private String struct_code;
/** 仓位名称 */
private String struct_name;
/** 工序标识 */
private Long workprocedure_id;
/** 物料标识 */
private Long material_id;
/** 品质类型 */
private String quality_scode;
/** 批次 */
private String pcsn;
/** 可用数 */
private BigDecimal canuse_qty;
/** 冻结数 */
private BigDecimal frozen_qty;
/** 库存数 */
private BigDecimal ivt_qty;
/** 待入数 */
private BigDecimal warehousing_qty;
/** 计量单位标识 */
private Long qty_unit_id;
/** 入库时间 */
private Date instorage_time;
/** 销售单标识 */
private Long sale_id;
}

View File

@@ -1,32 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
/**
* @description /
* @author zhouz
* @date 2021-12-09
**/
@Data
public class StructrelamaterialDto implements Serializable {
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long sect_id;
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long material_type_id;
private Long set_id;
private String set_name;
private Date set_time;
}

View File

@@ -1,64 +0,0 @@
package org.nl.wms.masterdata_manage.备份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 String create_id;
/**
* 创建人
*/
private String create_name;
/**
* 创建时间
*/
private String create_time;
/**
* 修改人
*/
private String update_id;
/**
* 修改人
*/
private String update_name;
/**
* 修改时间
*/
private String update_time;
/**
* 是否已删除
*/
private String is_delete;
}

View File

@@ -1,157 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
import org.nl.wms.masterdata_manage.备份st.service.MaterialsafeivtService;
import org.nl.wms.masterdata_manage.备份st.service.dto.MaterialsafeivtDto;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author zhouz
* @description 服务实现
* @date 2021-12-10
**/
@Service
@RequiredArgsConstructor
@Slf4j
public class MaterialsafeivtServiceImpl implements MaterialsafeivtService {
private final ClassstandardService classstandardService;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String search = (String) whereJson.get("search");
String class_idStr = (String) whereJson.get("class_idStr");
HashMap<String, String> map = new HashMap<>();
if (!StrUtil.isEmpty(search)) {
//处理转义字符
if (search.contains("\\")) search = search.replace("\\", "\\\\\\");
map.put("search", "%" + search + "%");
}
String material_type_id = (String) whereJson.get("material_type_id");
//处理物料当前节点的所有子节点
if (!StrUtil.isEmpty(material_type_id)) {
map.put("material_type_id", material_type_id);
String classIds = classstandardService.getChildIdStr(material_type_id);
map.put("classIds", classIds);
} else if (ObjectUtil.isNotEmpty(class_idStr)) {
String classIds = classstandardService.getAllChildIdStr(class_idStr);
map.put("classIds", classIds);
}
map.put("flag", "1");
map.put("stor_id", MapUtil.getStr(whereJson, "stor_id"));
JSONObject jo = WQL.getWO("QST_IVT_MATERIALSAFE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "set_time desc");
return jo;
}
@Override
public void insertSafe(Map whereJson) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String stor_id = (String) whereJson.get("stor_id");
ArrayList<HashMap> rows = (ArrayList<HashMap>) whereJson.get("rows");
for (int i = 0; i < rows.size(); i++) {
HashMap<String, String> row = rows.get(i);
WQLObject.getWQLObject("ST_IVT_MaterialSafeIvt").delete("stor_id = '" + stor_id + "' AND material_id = '" + row.get("material_id") + "'");
JSONObject jo = new JSONObject();
jo.put("stor_id", stor_id);
jo.put("safe_ivt_down", row.get("safe_ivt_down"));
jo.put("material_id", row.get("material_id"));
jo.put("safe_ivt_up", "999999");
jo.put("qty_unit_id", row.get("qty_unit_id"));
jo.put("qty_unit_name", row.get("qty_unit_name"));
jo.put("set_id", currentUserId + "");
jo.put("set_name", nickName);
jo.put("set_time", DateUtil.now());
WQLObject.getWQLObject("ST_IVT_MaterialSafeIvt").insert(jo);
}
}
@Override
public List<MaterialsafeivtDto> queryAll(Map whereJson) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
JSONArray arr = wo.query().getResultJSONArray(0);
List<MaterialsafeivtDto> list = arr.toJavaList(MaterialsafeivtDto.class);
return list;
}
@Override
public MaterialsafeivtDto findById(Long material_id) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
JSONObject json = wo.query("material_id =" + material_id + "").uniqueResult(0);
final MaterialsafeivtDto obj = json.toJavaObject(MaterialsafeivtDto.class);
return obj;
}
@Override
public MaterialsafeivtDto findByCode(String code) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
final MaterialsafeivtDto obj = json.toJavaObject(MaterialsafeivtDto.class);
return obj;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(MaterialsafeivtDto dto) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.insert(json);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(MaterialsafeivtDto dto) {
MaterialsafeivtDto entity = this.findById(dto.getMaterial_id());
if (entity == null) {
throw new BadRequestException("被删除或无权限,操作失败!");
}
WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.update(json);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAll(Long[] ids) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
for (Long material_id : ids) {
JSONObject param = new JSONObject();
param.put("material_id", String.valueOf(material_id));
param.put("is_delete", "1");
param.put("update_optid", currentUserId);
param.put("update_optname", nickName);
param.put("update_time", DateUtil.now());
wo.update(param);
}
}
}

View File

@@ -1,177 +0,0 @@
package org.nl.wms.masterdata_manage.备份st.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
import org.nl.wms.masterdata_manage.备份st.service.StructrelamaterialService;
import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Date;
/**
* @author zhouz
* @description 服务实现
* @date 2021-12-09
**/
@Service
@RequiredArgsConstructor
@Slf4j
public class StructrelamaterialServiceImpl implements StructrelamaterialService {
private final ClassstandardService classstandardService;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String search = (String) whereJson.get("search");
HashMap<String, String> map = new HashMap<>();
if (!StrUtil.isEmpty(search)) {
map.put("search", "%" + search + "%");
}
map.put("flag", "1");
map.put("stor_id", (String) whereJson.get("stor_id"));
map.put("sect_id", (String) whereJson.get("sect_id"));
String material_type_id = (String) whereJson.get("material_type_id");
String class_idStr = (String) whereJson.get("class_idStr");
//处理物料当前节点的所有子节点
if (!StrUtil.isEmpty(material_type_id)) {
map.put("material_type_id", material_type_id);
String classIds = classstandardService.getChildIdStr(material_type_id);
map.put("classIds", classIds);
} else if (ObjectUtil.isNotEmpty(class_idStr)) {
String classIds = classstandardService.getAllChildIdStr(class_idStr);
map.put("classIds", classIds);
}
JSONObject jo = WQL.getWO("QST_IVT_MATERIALSET").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "set_time desc");
return jo;
}
@Override
public List<StructrelamaterialDto> queryAll(Map whereJson) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
JSONArray arr = wo.query().getResultJSONArray(0);
List<StructrelamaterialDto> list = arr.toJavaList(StructrelamaterialDto.class);
return list;
}
@Override
public StructrelamaterialDto findById(Long material_type_id) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
JSONObject json = wo.query("material_type_id =" + material_type_id + "").uniqueResult(0);
final StructrelamaterialDto obj = json.toJavaObject(StructrelamaterialDto.class);
return obj;
}
@Override
public StructrelamaterialDto findByCode(String code) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
final StructrelamaterialDto obj = json.toJavaObject(StructrelamaterialDto.class);
return obj;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(StructrelamaterialDto dto) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
dto.setMaterial_type_id(IdUtil.getSnowflake(1, 1).nextId());
dto.setSet_name(nickName);
dto.setSet_time(new Date());
WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.insert(json);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(StructrelamaterialDto dto) {
StructrelamaterialDto entity = this.findById(dto.getMaterial_type_id());
if (entity == null) {
throw new BadRequestException("被删除或无权限,操作失败!");
}
WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.update(json);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAll(Long[] ids) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
for (Long material_type_id : ids) {
JSONObject param = new JSONObject();
param.put("material_type_id", String.valueOf(material_type_id));
param.put("is_delete", "1");
param.put("update_optid", currentUserId);
param.put("update_optname", nickName);
param.put("update_time", DateUtil.now());
wo.update(param);
}
}
@Override
public void insertSet(Map whereJson) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
WQLObject mater = WQLObject.getWQLObject("ST_IVT_StructRelaMaterial");
String sect_id = (String) whereJson.get("sect_id");
ArrayList<HashMap> class_rows = (ArrayList<HashMap>) whereJson.get("class_rows");
for (int i = 0; i < class_rows.size(); i++) {
HashMap<String, String> class_row = class_rows.get(i);
JSONObject material_set = mater.query("sect_id = '" + sect_id + "' AND material_type_id = '" + class_row.get("class_id") + "'")
.uniqueResult(0);
if (material_set != null) {
HashMap<String, String> update_map = new HashMap<>();
update_map.put("set_id", currentUserId + "");
update_map.put("set_name", nickName);
update_map.put("set_time", DateUtil.now());
mater.update(update_map, "sect_id = '" + sect_id + "' AND material_type_id = '" + class_row.get("class_id") + "'");
} else {
JSONObject jo = new JSONObject();
jo.put("sect_id", sect_id);
jo.put("material_type_id", class_row.get("class_id"));
jo.put("set_id", currentUserId + "");
jo.put("set_name", nickName);
jo.put("set_time", DateUtil.now());
mater.insert(jo);
}
}
}
@Override
public void delSet(Map whereJson) {
String sect_id = (String) whereJson.get("sect_id");
String material_type_id = (String) whereJson.get("material_type_id");
WQLObject.getWQLObject("ST_IVT_StructRelaMaterial").delete("sect_id = '" + sect_id + "' AND material_type_id = '" + material_type_id + "'");
}
}

View File

@@ -1,187 +0,0 @@
package org.nl.wms.masterdata_manage.备份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.common.utils.SecurityUtils;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.masterdata_manage.备份st.service.StructrelavehicletypeService;
import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelavehicletypeDto;
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<String, Object> 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<StructrelavehicletypeDto> 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");
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
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", DateUtil.now());
param.put("create_id", currentUserId);
param.put("create_name", nickName);
param.put("create_time", DateUtil.now());
wo.insert(param);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(JSONObject param) {
String struct_id = param.getString("struct_id");
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
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", DateUtil.now());
param.put("create_id", currentUserId);
param.put("create_name", nickName);
param.put("create_time", DateUtil.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", DateUtil.now());
param.put("create_id", currentUserId);
param.put("create_name", nickName);
param.put("create_time", DateUtil.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;
}
}

View File

@@ -1,226 +0,0 @@
[交易说明]
交易名: 将海亮的物料导入mysql
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.material_code TYPEAS s_string
输入.processroute_uuid TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
QUERY
SELECT
*
FROM
MD_PB_BaseData_ClassInfo classinfot
LEFT JOIN MD_PB_BaseData_ClassStandard standard ON classinfot.class_uuid = standard.class_uuid
LEFT JOIN MD_ME_MaterialBase material ON material.material_uuid = classinfot.base_data_uuid
left join MD_ME_MaterialExt ext on ext.material_uuid = material.material_uuid
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
*
FROM
MD_PB_BaseData_ClassStandard class
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
*
FROM
ST_IVT_BSREALSTORATTR
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "4"
QUERY
SELECT
*
FROM
ST_IVT_SECTATTR
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "5"
QUERY
SELECT
*
FROM
ST_IVT_STRUCTATTR
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "6"
QUERY
SELECT
*
FROM
ST_IVT_StorageVehicleInfo
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "7"
QUERY
SELECT
*
FROM
wdk_sysparam
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "8"
QUERY
SELECT
*
FROM
IF_CacheLine_Position
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "9"
QUERY
SELECT
*
FROM
st_cacheline_position
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "10"
QUERY
SELECT
mb.*,
class.class_code,
class.class_name
FROM
md_me_materialbase mb
LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
WHERE
mb.is_delete = '0'
AND 1 = 1
AND class.class_id IN ( '1528555445302726656', '1528555443906023424', '1528555445080428544' )
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "11"
QUERY
SELECT
mb.*,
class.class_code,
class.class_name
FROM
md_me_materialbase mb
LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
WHERE
mb.is_delete = '0'
AND 1 = 1
AND class.class_id IN ( '1528555444031852544', '1528555444778438656', '1528555444291899392' )
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "12"
QUERY
SELECT
*
FROM
PDM_BI_WorkshopMaterialCorr
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "13"
QUERY
SELECT
*
FROM
PDM_BI_SemiMaterialCorr
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "14"
QUERY
SELECT
*
FROM
PDM_BI_WorkshopMaterialCorr corr
LEFT JOIN PF_PB_SysDicInfo sys ON sys.sysdic_code = corr.materialprocess_series
AND sys.sysdic_type = 'IF_WCS_DEVICESERIES'
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "15"
QUERY
SELECT
*
FROM
PDM_BI_ProduceProcessRoute route
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "16"
QUERY
SELECT
*
FROM
PDM_BI_ProduceProcessRoute route
LEFT JOIN PDM_BI_ProduceProcessRouteDtl dtl ON route.processroute_uuid = dtl.processroute_uuid
route.processroute_uuid = 输入.processroute_uuid
order by workprocedure_number
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -1,85 +0,0 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.classIds TYPEAS f_string
输入.stor_id TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
(case when stor.stor_id is null THEN '' else stor.stor_id end) AS stor_id,
(case when stor.stor_code is null then 'yclk01' else stor.stor_code end) stor_code,
(case when stor.stor_name is null then '原料库' else stor.stor_name end) stor_name,
(case when safe.safe_ivt_down is null then 0 else safe.safe_ivt_down end) safe_ivt_down,
mb.material_code,
mb.material_name,
mb.base_unit_id,
mb.material_id,
mb.base_unit_id AS qty_unit_id,
safe.set_name,
safe.set_time,
unit.unit_name AS qty_unit_name
FROM
md_me_materialbase mb
LEFT JOIN st_ivt_materialsafeivt safe ON safe.material_id = mb.material_id
LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = safe.stor_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mb.base_unit_id
LEFT JOIN md_pb_classstandard class ON class.class_id =mb.material_type_id
WHERE
1=1
OPTION 输入.classIds <> ""
mb.material_type_id in 输入.classIds
ENDOPTION
OPTION 输入.stor_id <> ""
stor.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.search <> ""
(
mb.material_code like 输入.search
OR
mb.material_name like 输入.search
)
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -1,78 +0,0 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.sect_id TYPEAS s_string
输入.classIds TYPEAS f_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
se.sect_code,
se.sect_name,
class.class_code,
class.class_name,
sm.*
FROM
st_ivt_structrelamaterial sm
INNER JOIN st_ivt_sectattr se ON se.sect_id = sm.sect_id
INNER JOIN md_pb_classstandard class ON class.class_id = sm.material_type_id
OPTION 输入.search <> ""
(
class.class_code like 输入.search
OR
class.class_name like 输入.search
)
ENDOPTION
OPTION 输入.stor_id <> ""
se.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.sect_id <> ""
se.sect_id = 输入.sect_id
ENDOPTION
OPTION 输入.classIds <> ""
class.class_id in 输入.classIds
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -1,90 +0,0 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.sect_type_attr TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
sect.*,
stor.stor_name
FROM
ST_IVT_SectAttr sect
left join ST_IVT_BSRealStorAttr stor on sect.stor_id = stor.stor_id
WHERE
sect.is_delete = '0'
OPTION 输入.search <> ""
(
sect.sect_code like 输入.search
OR
sect.sect_name like 输入.search
)
ENDOPTION
OPTION 输入.stor_id <> ""
sect.stor_id = 输入.stor_id
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
sect.sect_id,
sect.sect_name
FROM
st_ivt_sectattr sect
WHERE
sect.is_delete = '0'
AND
sect.is_used = '1'
OPTION 输入.stor_id <> ""
sect.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.sect_type_attr <> ""
sect.sect_type_attr = 输入.sect_type_attr
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -1,108 +0,0 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.is_materialstore TYPEAS s_string
输入.is_virtualstore TYPEAS s_string
输入.is_semi_finished TYPEAS s_string
输入.is_productstore TYPEAS s_string
输入.is_attachment TYPEAS s_string
输入.is_reversed TYPEAS s_string
输入.stor_id TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
stor.*,
detail.label
FROM
st_ivt_bsrealstorattr stor
LEFT JOIN sys_dict_detail detail ON detail.value = stor.stor_type_scode AND detail.dict_id = '30'
WHERE
stor.is_delete = '0'
OPTION 输入.search <> ""
(
stor.stor_code like 输入.search
OR
stor.stor_name like 输入.search
)
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
stor.stor_id,
stor.stor_code,
stor.stor_name
FROM
st_ivt_bsrealstorattr stor
WHERE
stor.is_delete = '0'
AND
stor.is_used = '1'
OPTION 输入.is_virtualstore <> ""
stor.is_virtualstore = 输入.is_virtualstore
ENDOPTION
OPTION 输入.is_semi_finished <> ""
stor.is_semi_finished = 输入.is_semi_finished
ENDOPTION
OPTION 输入.is_materialstore <> ""
stor.is_materialstore = 输入.is_materialstore
ENDOPTION
OPTION 输入.is_productstore <> ""
stor.is_productstore = 输入.is_productstore
ENDOPTION
OPTION 输入.is_attachment <> ""
stor.is_attachment = 输入.is_attachment
ENDOPTION
OPTION 输入.is_reversed <> ""
stor.is_reversed = 输入.is_reversed
ENDOPTION
OPTION 输入.stor_id <> ""
stor.stor_id = 输入.stor_id
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -1,107 +0,0 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.sect_id TYPEAS s_string
输入.workprocedure_id TYPEAS s_string
输入.struct TYPEAS s_string
输入.material TYPEAS s_string
输入.sale_code TYPEAS s_string
输入.product_series TYPEAS f_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
ivt.*,
sect.sect_name,
bsrealstorattr.stor_name,
workprocedure.workprocedure_code,
workprocedure.workprocedure_name,
material.material_code,
material.material_name,
material.material_spec,
material.product_series,
unit.unit_name,
saleorder.sale_code,
classstandard.class_name
FROM
ST_IVT_StructIvt ivt
left join st_ivt_structattr structattr on ivt.struct_id = structattr.struct_id
left join st_ivt_sectattr sect on structattr.sect_id = sect.sect_id
left join st_ivt_bsrealstorattr bsrealstorattr on sect.stor_id = bsrealstorattr.stor_id
left join pdm_bi_workprocedure workprocedure on ivt.workprocedure_id = workprocedure.workprocedure_id
left join md_me_materialbase material on ivt.material_id = material.material_id
left join md_pb_measureunit unit on ivt.qty_unit_id = unit.measure_unit_id
left join pcs_sale_order saleorder on ivt.sale_id = saleorder.sale_id
left join md_pb_classstandard classstandard on material.product_series = classstandard.class_id
WHERE
1 = 1
OPTION 输入.stor_id <> ""
bsrealstorattr.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.sect_id <> ""
sect.sect_id = 输入.sect_id
ENDOPTION
OPTION 输入.workprocedure_id <> ""
ivt.workprocedure_id = 输入.workprocedure_id
ENDOPTION
OPTION 输入.struct <> ""
(
ivt.struct_code like 输入.struct or
ivt.struct_name like 输入.struct
)
ENDOPTION
OPTION 输入.material <> ""
(
material.material_code like 输入.material or
material.material_name like 输入.material or
material.material_spec like 输入.material
)
ENDOPTION
OPTION 输入.sale_code <> ""
saleorder.sale_code like 输入.sale_code
ENDOPTION
OPTION 输入.product_series <> ""
material.product_series in 输入.product_series
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -1,79 +0,0 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.sect_id TYPEAS s_string
输入.lock_type TYPEAS s_string
输入.storagevehicle_type TYPEAS s_string
输入.is_used TYPEAS s_string
输入.is_delete TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
struct.*
FROM
st_ivt_structattr struct
WHERE
struct.is_delete = '0'
OPTION 输入.search <> ""
(
struct.struct_code like 输入.search
OR
struct.struct_name like 输入.search
)
ENDOPTION
OPTION 输入.stor_id <> ""
struct.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.sect_id <> ""
struct.sect_id = 输入.sect_id
ENDOPTION
OPTION 输入.lock_type <> ""
struct.lock_type = 输入.lock_type
ENDOPTION
OPTION 输入.lock_type = "00"
(struct.storagevehicle_code is null or struct.storagevehicle_code = '')
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -1,86 +0,0 @@
[交易说明]
交易名: 仓位载具类型查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为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

View File

@@ -2,15 +2,20 @@ package org.nl.wms.product_manage.controller.workorder;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.TableDataInfo;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.mps.service.ProduceWorkorderService;
import org.nl.wms.mps.service.dto.ProduceWorkorderDto;
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -38,6 +43,8 @@ import java.util.Map;
public class PdmProduceWorkorderController {
private final ProduceWorkorderService produceWorkorderService;
private final IPdmProduceWorkorderService iPdmProduceWorkorderService;
@Autowired
private IPdmBiDeviceService deviceService;
@GetMapping
@Log("查询工单管理")
@@ -93,7 +100,10 @@ public class PdmProduceWorkorderController {
@ApiOperation("根据工序查询没有工单的设备")
//@PreAuthorize("@el.check('WorkProcedure:add')")
public ResponseEntity<Object> getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceWorkorderService.getNotWorkDeviceByWorkproceduceId(param),HttpStatus.CREATED);
List<PdmBiDevice> list = deviceService.list(new QueryWrapper<PdmBiDevice>()
.eq("workprocedure_id", param.getString("workprocedure_id"))
.eq("is_delete", false));
return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.CREATED);
}
@PostMapping("/getDtl")

View File

@@ -11,8 +11,6 @@ import org.nl.modules.system.util.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.masterdata_manage.备份st.IvtChangeTypeEnum;
import org.nl.wms.masterdata_manage.备份st.StoreIvtServiceImpl;
import org.nl.common.StructFindUtil;
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
@@ -63,7 +61,7 @@ public class CallMaterialTask extends AbstractAcsTask {
WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
JSONObject mstObj = mstTab.query("task_id='" + task_id + "' and is_delete='0'").uniqueResult(0);
//审核 加库存可和用数量
StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
//StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
mstObj.put("bill_status", "50");
mstObj.put("confirm_optid", SecurityUtils.getCurrentUserId());
mstObj.put("confirm_optname", SecurityUtils.getCurrentNickName());
@@ -91,7 +89,7 @@ public class CallMaterialTask extends AbstractAcsTask {
throw new BadRequestException("未找到可用点位:" + start_point_code);
}
param.put("struct_id", startPointDto.getPoint_id());
ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_IVT);
//ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_IVT);
//解锁仓位,托盘信息,回写到点位上去
String vehicle_code = jsonTask.getString("vehicle_code");
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
@@ -345,7 +343,7 @@ public class CallMaterialTask extends AbstractAcsTask {
}
//减少库存可用数量
StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
//StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
JSONObject param = new JSONObject();
param.put("material_id", material_id);
param.put("bill_id", iostorinv_id);
@@ -355,7 +353,7 @@ public class CallMaterialTask extends AbstractAcsTask {
param.put("vehicle_code", startPoint.getVehicle_code());
param.put("workprocedure_id", ivt_workprocedure_id);
ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_CAN_USE);
//ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_CAN_USE);
JSONObject taskObj = new JSONObject();
taskObj.put("task_id", task_id);
taskObj.put("task_code", CodeUtil.getNewCode("TASK_CODE"));

View File

@@ -13,8 +13,6 @@ import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.masterdata_manage.备份st.IvtChangeTypeEnum;
import org.nl.wms.masterdata_manage.备份st.StoreIvtServiceImpl;
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
@@ -68,7 +66,7 @@ public class SendMaterialTask extends AbstractAcsTask {
WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
JSONObject mstObj = mstTab.query("task_id='" + task_id + "' and is_delete='0'").uniqueResult(0);
//审核 加库存可和用数量
StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
//StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
mstObj.put("bill_status", "50");
mstObj.put("confirm_optid", SecurityUtils.getCurrentUserId());
mstObj.put("confirm_optname", SecurityUtils.getCurrentNickName());
@@ -104,7 +102,7 @@ public class SendMaterialTask extends AbstractAcsTask {
throw new BadRequestException("未找到可用点位:" + start_point_code);
}
param.put("struct_id", nextPointDto.getPoint_id());
ivtService.addIvtFlow(param, IvtChangeTypeEnum.ADD_IVT_AND_CAN_USE);
//ivtService.addIvtFlow(param, IvtChangeTypeEnum.ADD_IVT_AND_CAN_USE);
//解锁仓位,托盘信息,回写到点位上去
String vehicle_code = jsonTask.getString("vehicle_code");
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");

View File

@@ -49,7 +49,7 @@ public class PdmBiDevice implements Serializable {
/**
* 物料标识
*/
private Long material_id;
private String material_id;
/**
* 工单编号
@@ -99,7 +99,7 @@ public class PdmBiDevice implements Serializable {
/**
* 是否人工
*/
private String is_artificial;
private Boolean is_artificial;
/**
* 备注
@@ -114,7 +114,7 @@ public class PdmBiDevice implements Serializable {
/**
* 创建人
*/
private Long create_id;
private String create_id;
/**
* 创建人
@@ -129,7 +129,7 @@ public class PdmBiDevice implements Serializable {
/**
* 修改人
*/
private Long update_id;
private String update_id;
/**
* 修改人
@@ -144,12 +144,12 @@ public class PdmBiDevice implements Serializable {
/**
* 是否删除
*/
private String is_delete;
private Boolean is_delete;
/**
* 是否在用
*/
private String is_used;
private Boolean is_used;
/**
* 设备图标

View File

@@ -36,8 +36,8 @@
<if test="query.product_series != null and query.product_series != ''">
and ShiftOrder.materialprocess_series in ${query.product_series}
</if>
<if test="query.begin_time != null and query.begin_time != ''">
and ShiftOrder.realproducestart_date >= #{query.begin_time}
<if test="query.start_time != null and query.start_time != ''">
and ShiftOrder.realproducestart_date >= #{query.start_time}
</if>
<if test="query.end_time != null and query.end_time != ''">
and #{query.end_time} >= ShiftOrder.realproducestart_date

View File

@@ -1,101 +0,0 @@
[交易说明]
交易名: 工序出库单分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.material_id TYPEAS s_string
输入.is_full TYPEAS s_string
输入.ivt_workprocedure_id TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
a.*,
b.workprocedure_name,
c.material_name,
p1.point_name AS start_point_name,
p2.point_name AS end_point_name,
unit.unit_name
FROM
ST_IVT_workProcedureIOS a
LEFT JOIN pdm_bi_workprocedure b ON a.workprocedure_id = b.workprocedure_id
LEFT JOIN md_me_materialbase c ON c.material_id = a.material_id
LEFT JOIN sch_base_point p1 ON a.start_point_code = p1.point_code
LEFT JOIN sch_base_point p2 ON a.end_point_code = p2.point_code
LEFT JOIN md_pb_measureunit unit ON a.qty_unit_id = unit.measure_unit_id
WHERE
a.is_delete = '0'
AND a.io_type = '1'
OPTION 输入.search <> ""
a.bill_code like 输入.search
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "2"
PAGEQUERY
SELECT
point.*,
material.material_id,
material.material_name,
point.vehicle_code AS vehicle_code111,
structivt.pcsn,
structivt.canuse_qty,
structivt.frozen_qty,
structivt.ivt_qty,
structivt.warehousing_qty,
structivt.qty_unit_id,
structivt.instorage_time,
unit.unit_name
FROM
st_ivt_structivt structivt
LEFT JOIN sch_base_point point ON point.point_id = structivt.struct_id
LEFT JOIN md_me_materialbase material ON structivt.material_id = material.material_id
LEFT JOIN md_pb_measureunit unit ON structivt.qty_unit_id = unit.measure_unit_id
WHERE
point.is_delete = '0'
AND point.lock_type = '00'
AND structivt.canuse_qty > 0
AND point.is_used = '1'
and structivt.workprocedure_id = 输入.ivt_workprocedure_id
and structivt.material_id = 输入.material_id
ENDSELECT
ENDPAGEQUERY
ENDIF