add:流程编排2
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package org.nl.common.utils;
|
||||
|
||||
|
||||
import org.nl.wms.system_manage.service.coderule.ISysCodeRuleService;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
|
||||
public class CodeUtil {
|
||||
|
||||
public static Map<String, ArrayBlockingQueue<String>> CODE_COLLECTION = new HashMap();
|
||||
|
||||
public static String getNewCode(String ruleCode) {
|
||||
final String[] code = {""};
|
||||
ISysCodeRuleService service = SpringContextHolder.getBean(ISysCodeRuleService.class);
|
||||
RedissonUtils.lock(() -> code[0] = service.codeDemo("1",ruleCode), ruleCode, 1);
|
||||
return code[0];
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package org.nl.wms.base_manage.field_mapping.handler;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/2 17:33
|
||||
*/
|
||||
public abstract class BaseSyncClassHandler<T> {
|
||||
|
||||
public abstract T handler();
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.base_manage.field_mapping.handler.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.base_manage.field_mapping.handler.BaseSyncClassHandler;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/2 17:34
|
||||
*/
|
||||
public class IosinvSyncClassHandler extends BaseSyncClassHandler<JSONObject> {
|
||||
|
||||
@Override
|
||||
public JSONObject handler() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package org.nl.wms.config_manage.form_struc.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.config_manage.form_struc.service.dto.FormStrucQuery;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/bmFormStruc")
|
||||
public class BmFormStrucController {
|
||||
@Autowired
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
@Autowired
|
||||
IPmFormDataService iPmFormDataService;
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> queryAll(FormStrucQuery query, PageQuery pageQuery){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
Page<BmFormStruc> page = iBmFormStrucService.page(pageQuery.build(), query.build());
|
||||
return new ResponseEntity<>(TableDataInfo.build(page),HttpStatus.OK);
|
||||
}
|
||||
@PostMapping
|
||||
public ResponseEntity<Object> save(@RequestBody JSONObject param){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
BmFormStruc formStruc = param.toJavaObject(BmFormStruc.class);
|
||||
formStruc.setCreate_time(DateUtil.now());
|
||||
formStruc.setId(IdUtil.getStringId());
|
||||
formStruc.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
iBmFormStrucService.save(formStruc);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/delete")
|
||||
public ResponseEntity<Object> delete(List<String> types){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
int dataCount = iPmFormDataService.count(new QueryWrapper<PmFormData>().in("form_type", types));
|
||||
if (dataCount>0){
|
||||
throw new BadRequestException("当前表单存在业务数据,不允许删除");
|
||||
}
|
||||
iBmFormStrucService.remove(new QueryWrapper<BmFormStruc>().in("form_type", types));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/getTypes")
|
||||
public ResponseEntity<Object> getTypes(){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
List<Map<String, Object>> select = iBmFormStrucService.listMaps(new QueryWrapper<BmFormStruc>().select("form_type", "form_name").groupBy("form_type"));
|
||||
List<Map> list = new ArrayList<>();
|
||||
for (Map<String, Object> map : select) {
|
||||
list.add(MapOf.of("lable",map.get("form_name"),"value",map.get("form_type")));
|
||||
}
|
||||
return new ResponseEntity<>(list,HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.config_manage.form_struc.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
public interface IBmFormStrucService extends IService<BmFormStruc> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package org.nl.wms.config_manage.form_struc.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "bm_form_struc",autoResultMap = true)
|
||||
public class BmFormStruc implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId()
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
private String form_type;
|
||||
|
||||
/**
|
||||
* 单据名称
|
||||
*/
|
||||
private String form_name;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String form_desc;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 业务单据单据id
|
||||
*/
|
||||
private String bus_id;
|
||||
|
||||
/**
|
||||
* 业务单据编号
|
||||
*/
|
||||
private String bus_code;
|
||||
|
||||
/**
|
||||
* 业务单据日期
|
||||
*/
|
||||
private String bus_date;
|
||||
|
||||
/**
|
||||
* 业务单据状态
|
||||
*/
|
||||
private String bus_status;
|
||||
|
||||
/**
|
||||
* 物料id
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private String qty;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 自定义表单字段存json:{"dept":"部门","empp":"员工"}
|
||||
*/
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONObject form_param;
|
||||
|
||||
/**
|
||||
* 是否含有明细表单
|
||||
*/
|
||||
private Boolean has_child;
|
||||
/**
|
||||
* 关联上级表单id
|
||||
*/
|
||||
private String parent_id;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.config_manage.form_struc.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
public interface BmFormStrucMapper extends BaseMapper<BmFormStruc> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.config_manage.form_struc.service.dao.mapper.BmFormStrucMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
package org.nl.wms.config_manage.form_struc.service.dto;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@Data
|
||||
public class FormStrucQuery extends BaseQuery<BmFormStruc> {
|
||||
|
||||
private String form_type;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.config_manage.form_struc.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.mapper.BmFormStrucMapper;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@Service
|
||||
public class BmFormStrucServiceImpl extends ServiceImpl<BmFormStrucMapper, BmFormStruc> implements IBmFormStrucService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.nl.wms.decision_manage.handler.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:13
|
||||
*/
|
||||
public abstract class DecisionHandler<T,P> {
|
||||
|
||||
public abstract List<T> handler(List<T> list, P param);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.base;
|
||||
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 巷道均衡策略
|
||||
*/
|
||||
public class AlleyAveRuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.base;
|
||||
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 同类型聚簇策略
|
||||
*/
|
||||
public class ClusterRuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.base;
|
||||
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 先进先出策略
|
||||
*/
|
||||
public class FIFORuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.base;
|
||||
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 货位限位策略:限高,限宽,双货位
|
||||
*/
|
||||
public class LimitStorageRuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.base;
|
||||
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 就近放置策略:根据物料ABC类区分
|
||||
*/
|
||||
public class NearbyRuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.base;
|
||||
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 轻上重下策略
|
||||
*/
|
||||
public class WeightRuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
##货位分配原则 出入库
|
||||
|
||||
###1、上轻下重原则
|
||||
根据货物重量选择摆放位置。把重的东西放在下层,把轻放在货架上层。需要人工搬运的大型货物以腰部的高度摆放。这样提高效率、保证安全。
|
||||
###2、优先靠近出入口原则
|
||||
根据出入库频率选定位置。出入库频率高的货物应放在靠近出入口,易于作业的地方;流动性差的货物放在离出入口较远的地方;季节性物品按季节特性来选定场所摆放。
|
||||
###3、先进先出原则
|
||||
一般企业为了加快周转,先入先出一同种物料出库时,先入库的物资,需要先提取出库,以加快物料周转,从而避免因物料长期积压产生锈蚀、变形、变质及其他损坏造成的损失。因此在货位分配时要方便先进物品优先出库。
|
||||
###4、同类物品集中原则
|
||||
同一品种同一地方保管。为提高作业效率和保管效率同一物品或类似物品应在同一地方保管,提高仓储工作效率。
|
||||
###5、多巷道分布原则
|
||||
货位分配是应提高可靠性,分巷道存放一仓库有多个巷道时,同种物品分散在不同的巷道进行存放。以防止因某巷道堵塞影响某种物料的出库,造成生产中断。
|
||||
###6.超限分配原则:
|
||||
对于货位超限:横向/纵向暂用多个货位.高度超限
|
||||
|
||||
##规则处理方式:责任链模式
|
||||
list->5
|
||||
1->list->2->list->3->list list.get(0)
|
||||
class
|
||||
List<> handler(List<货位集合>,入库物料信息)
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.decision_manage.handler.service.impl.diy;
|
||||
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.decision_manage.handler.service.DecisionHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/6 16:18
|
||||
* 自定义类处理器
|
||||
*/
|
||||
public class ClassRuleHandler extends DecisionHandler<String,String> {
|
||||
@Override
|
||||
public List<String> handler(List<String> list, String param) {
|
||||
// Object bean = SpringContextHolder.getBean("xxxx.ss");
|
||||
// return bean.xxxx
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.engine.behavior.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.behavior.FlowNodeActivityBehavior;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.FormTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto;
|
||||
import org.nl.wms.stor_manage.service.iostor.IStIvtIostorinvService;
|
||||
import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv;
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/3/18 13:17
|
||||
* 源:UserTask
|
||||
* 获取不同的类型执行器.处理该节点:获取当前表单
|
||||
获取表单配置表
|
||||
确认有没有自定义字段:如果有则创建自定义字段
|
||||
生成出入库单单据
|
||||
*/
|
||||
@Service
|
||||
public class IostorInActivityBehavior extends FlowNodeActivityBehavior<PmFormDataDto> {
|
||||
@Autowired
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
@Autowired
|
||||
IStIvtIostorinvdtlService iostorinvdtlService;
|
||||
@Autowired
|
||||
IStIvtIostorinvService iostorinvService;
|
||||
|
||||
@Override
|
||||
public void execute(ExecutionEntity<PmFormDataDto> execution) {
|
||||
FlowElement flowElement = execution.getCurrentFlowElement();
|
||||
if (flowElement instanceof FormTask){
|
||||
//根据当前表单配置生成当前节点表单数据
|
||||
FormTask formTask = (FormTask) flowElement;
|
||||
PmFormDataDto sourceData = execution.getT();
|
||||
BmFormStruc formStruc = iBmFormStrucService.getOne(new QueryWrapper<BmFormStruc>()
|
||||
.eq("form_type", formTask.getForm_type()));
|
||||
if (formStruc==null){
|
||||
throw new BadRequestException("【flow】当前节点表单类型未定义");
|
||||
}
|
||||
//处理自定义参数:
|
||||
if (formTask.getSkipExpression()!=null || formTask.getSkipExpression().size()>0){
|
||||
TypeHandler<JSONObject,PmFormDataDto> typeHandler = TypeHandler.HANDLER_MAP.get(formTask.getTask_type());
|
||||
if (typeHandler==null){
|
||||
throw new BadRequestException("【flow】当前节点处理类型未定义");
|
||||
}
|
||||
JSONObject handler = typeHandler.handler(formTask.getSkipExpression(), sourceData, formStruc);
|
||||
//该参数里包含三部分:主数据基础字段,组数据自定义及明细,
|
||||
//明细:基础字段,组数据自定义及参数
|
||||
StIvtIostorinv mst = handler.toJavaObject(StIvtIostorinv.class);
|
||||
Object itemArr = handler.remove("item");
|
||||
if(itemArr !=null && itemArr instanceof JSONArray){
|
||||
JSONArray arr = (JSONArray) itemArr;
|
||||
List<StIvtIostorinvdtl> iostorinvs = arr.toJavaList(StIvtIostorinvdtl.class);
|
||||
iostorinvdtlService.batchInsert(iostorinvs);
|
||||
}
|
||||
iostorinvService.save(mst);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void leave(ExecutionEntity execution) {
|
||||
super.leave(execution);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.engine.behavior.impl;
|
||||
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.behavior.FlowNodeActivityBehavior;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.FormTask;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/3/18 13:17
|
||||
* 源:UserTask
|
||||
*/
|
||||
@Service
|
||||
public class IostorOutActivityBehavior extends FlowNodeActivityBehavior<PmFormData> {
|
||||
|
||||
@Override
|
||||
public void execute(ExecutionEntity<PmFormData> execution) {
|
||||
FlowElement flowElement = execution.getCurrentFlowElement();
|
||||
String type = flowElement.getType();
|
||||
if (flowElement instanceof FormTask){
|
||||
//根据当前表单配置生成当前节点表单数据
|
||||
FormTask formTask = (FormTask) flowElement;
|
||||
}
|
||||
PmFormData sourceForm = execution.getT();
|
||||
//TODO:获取不同的类型执行器.处理该节点:获取当前表单
|
||||
//获取表单配置表
|
||||
|
||||
//确认有没有自定义字段:如果有则创建自定义字段
|
||||
|
||||
//生成出入库单单据
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void leave(ExecutionEntity execution) {
|
||||
super.leave(execution);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/3/21 15:16
|
||||
*/
|
||||
@Service
|
||||
public class MappingHandler extends TypeHandler<JSONObject, PmFormDataDto> {
|
||||
@Autowired
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
@Override
|
||||
public JSONObject handler(List<String> param, PmFormDataDto entity, BmFormStruc form_struc) {
|
||||
|
||||
JSONObject returnObj = new JSONObject();
|
||||
//基础字段映射
|
||||
JSONObject mapping = JSONObject.parseObject(param.remove(0));
|
||||
JSONObject data = (JSONObject) JSONObject.toJSON(entity);
|
||||
for (String item : mapping.keySet()) {
|
||||
String value = data.getString(item);
|
||||
returnObj.put(item,value);
|
||||
}
|
||||
//查询表单配置表,获取自定义json:自定义字段参数获取
|
||||
JSONObject form_param = form_struc.getForm_param();
|
||||
if (form_param!=null){
|
||||
Set<String> diy = form_param.keySet();
|
||||
JSONObject form_data = new JSONObject();
|
||||
for (String item : diy) {
|
||||
String value = data.getString(item);
|
||||
form_data.put(item,value);
|
||||
}
|
||||
returnObj.put("form_data",form_data);
|
||||
}
|
||||
BmFormStruc item_struc = iBmFormStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("parent_id",form_struc.getForm_type()));
|
||||
if (item_struc!=null){
|
||||
JSONArray itemList = new JSONArray();
|
||||
for (PmFormDataDto item : entity.getDtl()) {
|
||||
itemList.add(this.handler(param, item, item_struc));
|
||||
}
|
||||
returnObj.put("item",itemList);
|
||||
}
|
||||
return returnObj;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.source;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/2 09:46
|
||||
*/
|
||||
public abstract class SourceDataTypeHandler<K> extends TypeHandler<JSONObject,String> {
|
||||
|
||||
@Override
|
||||
public JSONObject handler(List<String> param, String entity, BmFormStruc form_struc) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract K sourceHandler(String entity, BmFormStruc form_struc);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.source.impl;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.base_manage.field_mapping.handler.BaseSyncClassHandler;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.source.SourceDataTypeHandler;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/2 09:48
|
||||
* //TODO:类处理器未实现
|
||||
*/
|
||||
@Service
|
||||
public class ClassSourceDataTypeHandler extends SourceDataTypeHandler {
|
||||
|
||||
@Override
|
||||
public JSONObject sourceHandler(String entity, BmFormStruc form_struc) {
|
||||
BaseSyncClassHandler<JSONObject> bean = SpringContextHolder.getBean("");
|
||||
return bean.handler();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.source.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.SneakyThrows;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.source.SourceDataTypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/2 09:48
|
||||
*/
|
||||
@Service
|
||||
public class MappingSourceDataTypeHandler extends SourceDataTypeHandler<PmFormData> {
|
||||
//material_id,qty,pcsn,code这些属于基础字段
|
||||
private List base_parm = ListOf.of("data","code","material_id","qty","pcsn","code");
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public PmFormData sourceHandler(String entity, BmFormStruc form_struc) {
|
||||
PmFormData formData = new PmFormData();
|
||||
formData.setId(IdUtil.getStringId());
|
||||
formData.setForm_type(form_struc.getForm_type());
|
||||
formData.setStatus("1");
|
||||
formData.setCreate_time(DateUtil.now());
|
||||
formData.setStatus("1");
|
||||
Class<PmFormData> dataClass = PmFormData.class;
|
||||
JSONObject source = JSONObject.parseObject(entity);
|
||||
JSONObject form_json = new JSONObject();
|
||||
for (String key : form_struc.getForm_param().keySet()) {
|
||||
Object value = source.get(key);
|
||||
String mapping_field = form_struc.getForm_param().getString(key);
|
||||
form_json.put(mapping_field,value);
|
||||
if (base_parm.contains(mapping_field)){
|
||||
Field field = dataClass.getDeclaredField(mapping_field);
|
||||
field.setAccessible(true);
|
||||
field.set(formData,value);
|
||||
}
|
||||
}
|
||||
return formData;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.source.impl;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import groovy.lang.GroovyShell;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.source.SourceDataTypeHandler;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/2 09:48
|
||||
*/
|
||||
@Service
|
||||
public class ScriptSourceDataTypeHandler extends SourceDataTypeHandler {
|
||||
|
||||
@Override
|
||||
public Object sourceHandler(String entity, BmFormStruc form_struc) {
|
||||
GroovyShell shell = new GroovyShell();
|
||||
Object 脚本 = shell.evaluate("脚本");
|
||||
return 脚本;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package org.nl.wms.pm_manage.form_data.controller;
|
||||
|
||||
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单信息表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/pmFormData")
|
||||
public class PmFormDataController {
|
||||
|
||||
@Autowired
|
||||
IPmFormDataService formDataService;
|
||||
|
||||
@GetMapping("/sync/{type}")
|
||||
public ResponseEntity<Object> sync(@RequestParam String type, String formDtl){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
formDataService.syncFormData("type",formDtl);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.nl.wms.pm_manage.form_data.service;
|
||||
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单信息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
public interface IPmFormDataService extends IService<PmFormData> {
|
||||
|
||||
Integer syncFormData(String type,String dataString);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package org.nl.wms.pm_manage.form_data.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单信息表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("pm_form_data")
|
||||
public class PmFormData implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 业务单据单据id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 业务单据编号
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 业务单据日期
|
||||
*/
|
||||
private String date;
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
private String form_type;
|
||||
|
||||
/**
|
||||
* 业务单据状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 物料id
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 自定义表单字段
|
||||
*/
|
||||
private String form_data;
|
||||
|
||||
/**
|
||||
* 关联上级表单id
|
||||
*/
|
||||
private String parent_id;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.pm_manage.form_data.service.dao.mapper;
|
||||
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
public interface PmFormDataMapper extends BaseMapper<PmFormData> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,89 @@
|
||||
package org.nl.wms.pm_manage.form_data.service.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单信息表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@Data
|
||||
public class PmFormDataDto implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 业务单据单据id
|
||||
*/
|
||||
private String bus_id;
|
||||
|
||||
/**
|
||||
* 业务单据编号
|
||||
*/
|
||||
private String bus_code;
|
||||
|
||||
/**
|
||||
* 业务单据日期
|
||||
*/
|
||||
private String bus_date;
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
private String form_type;
|
||||
|
||||
/**
|
||||
* 业务单据状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 物料id
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 自定义表单字段
|
||||
*/
|
||||
private String form_data;
|
||||
|
||||
/**
|
||||
* 关联上级表单id
|
||||
*/
|
||||
private String parent_id;
|
||||
|
||||
|
||||
private List<PmFormDataDto> dtl;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package org.nl.wms.pm_manage.form_data.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.source.SourceDataTypeHandler;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单信息表 服务实现类
|
||||
* 表单结构
|
||||
* ---------------BmFormStruc---------------
|
||||
* /\
|
||||
* / \
|
||||
* / \
|
||||
* 表单数据 / \表单同步配置表
|
||||
* PmFormData BmFormSync
|
||||
* 表单回显时:自定义字段通过表单结构获取lebel
|
||||
* 表单同步设置时:通过表单结构获取所有字段,进行配置字段映射,或者class处理
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-25
|
||||
*/
|
||||
@Service
|
||||
public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormData> implements IPmFormDataService {
|
||||
@Autowired
|
||||
IBmFormStrucService formStrucService;
|
||||
@Autowired
|
||||
Map<String,SourceDataTypeHandler<PmFormData>> SourceDataTypeHandlerMap;
|
||||
|
||||
@Override
|
||||
public Integer syncFormData(String form_type, String dataString) {
|
||||
BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", form_type));
|
||||
Assert.notNull(one,"当前单据类型未定义"+form_type);
|
||||
List<PmFormData> saves = new ArrayList<>();
|
||||
//TODO: 查询同步配置表:获取表单的同步处理:SourceDataTypeHandler:分为字段映射跟class类处理,脚本处理
|
||||
PmFormData formData = SourceDataTypeHandlerMap.get(form_type).sourceHandler(dataString, one);
|
||||
saves.add(formData);
|
||||
if (one.getHas_child()){
|
||||
BmFormStruc item = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("parent_id", one.getId()));
|
||||
String[] split = dataString.split(",");
|
||||
for (String itemData : split) {
|
||||
PmFormData itemForm = SourceDataTypeHandlerMap.get(form_type).sourceHandler(itemData, item);
|
||||
itemForm.setParent_id(formData.getId());
|
||||
saves.add(itemForm);
|
||||
}
|
||||
}
|
||||
this.saveBatch(saves);
|
||||
return saves.size();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.stor_manage.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单主表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-28
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/stIvtIostorinv")
|
||||
public class StIvtIostorinvController {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.stor_manage.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/stIvtIostorinvdtl")
|
||||
public class StIvtIostorinvdtlController {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.stor_manage.service.iostor;
|
||||
|
||||
import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单主表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-28
|
||||
*/
|
||||
public interface IStIvtIostorinvService extends IService<StIvtIostorinv> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package org.nl.wms.stor_manage.service.iostor.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单主表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-28
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinv")
|
||||
public class StIvtIostorinv implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 出入单标识
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 出入类型
|
||||
*/
|
||||
private Boolean io_type;
|
||||
|
||||
/**
|
||||
* 业务日期
|
||||
*/
|
||||
private String biz_date;
|
||||
|
||||
/**
|
||||
* 生产区域编码
|
||||
*/
|
||||
private String product_code;
|
||||
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Boolean is_delete;
|
||||
|
||||
/**
|
||||
* 源单号
|
||||
*/
|
||||
private String source_code;
|
||||
|
||||
/**
|
||||
* 源单类型
|
||||
*/
|
||||
private String source_type;
|
||||
|
||||
/**
|
||||
* 关联订单
|
||||
*/
|
||||
private String order;
|
||||
|
||||
/**
|
||||
* 制单人
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 制单时间
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String update_id;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String update_time;
|
||||
|
||||
/**
|
||||
* 自定义映射数据
|
||||
*/
|
||||
private String form_data;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.stor_manage.service.iostor.dao.mapper;
|
||||
|
||||
import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单主表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-28
|
||||
*/
|
||||
public interface StIvtIostorinvMapper extends BaseMapper<StIvtIostorinv> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.iostor.dao.mapper.StIvtIostorinvMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.stor_manage.service.iostor.impl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.iostor.IStIvtIostorinvService;
|
||||
import org.nl.wms.stor_manage.service.iostor.dao.StIvtIostorinv;
|
||||
import org.nl.wms.stor_manage.service.iostor.dao.mapper.StIvtIostorinvMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单主表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-28
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper, StIvtIostorinv> implements IStIvtIostorinvService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dtl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface IStIvtIostorinvdtlService extends IService<StIvtIostorinvdtl> {
|
||||
|
||||
void batchInsert(List<StIvtIostorinvdtl> dtls);
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dtl.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("st_ivt_iostorinvdtl")
|
||||
public class StIvtIostorinvdtl implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 出入单明细标识
|
||||
*/
|
||||
private Long iostorinvdtl_id;
|
||||
|
||||
/**
|
||||
* 出入单标识
|
||||
*/
|
||||
private Long iostorinv_id;
|
||||
|
||||
/**
|
||||
* 明细序号
|
||||
*/
|
||||
private BigDecimal seq_no;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private Long material_id;
|
||||
|
||||
/**
|
||||
* 批次
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 品质类型
|
||||
*/
|
||||
private String quality_scode;
|
||||
|
||||
/**
|
||||
* 单据明细状态
|
||||
*/
|
||||
private String bill_status;
|
||||
|
||||
/**
|
||||
* 数量计量单位标识
|
||||
*/
|
||||
private Long qty_unit_id;
|
||||
|
||||
/**
|
||||
* 数量计量单位名称
|
||||
*/
|
||||
private String qty_unit_name;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal plan_qty;
|
||||
|
||||
/**
|
||||
* 来源单据明细标识
|
||||
*/
|
||||
private Long source_billdtl_id;
|
||||
|
||||
/**
|
||||
* 来源单据类型
|
||||
*/
|
||||
private String source_bill_type;
|
||||
|
||||
/**
|
||||
* 来源单编号
|
||||
*/
|
||||
private String source_bill_code;
|
||||
|
||||
/**
|
||||
* 来源单表名
|
||||
*/
|
||||
private String source_bill_table;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 已分配数量
|
||||
*/
|
||||
private BigDecimal assign_qty;
|
||||
|
||||
/**
|
||||
* 未分配数量
|
||||
*/
|
||||
private BigDecimal unassign_qty;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dtl.dao.mapper;
|
||||
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
public interface StIvtIostorinvdtlMapper extends BaseMapper<StIvtIostorinvdtl> {
|
||||
|
||||
Integer batchInsert(List<StIvtIostorinvdtl> dtls);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.stor_manage.service.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper">
|
||||
|
||||
<insert id="batchInsert">
|
||||
insert into st_ivt_iostorinvdtl() values <foreach collection="dtls" open="(" close=")" item="item">
|
||||
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
package org.nl.wms.stor_manage.service.iostor_dtl.impl;
|
||||
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper;
|
||||
import org.nl.wms.stor_manage.service.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单明细表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-29
|
||||
*/
|
||||
@Service
|
||||
public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlMapper, StIvtIostorinvdtl> implements IStIvtIostorinvdtlService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<StIvtIostorinvdtl> dtls) {
|
||||
this.baseMapper.batchInsert(dtls);
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"author": "Zheng Jie",
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
@@ -55,6 +55,8 @@
|
||||
"jsencrypt": "^3.0.0-rc.1",
|
||||
"jszip": "3.1.5",
|
||||
"mavon-editor": "^2.9.0",
|
||||
"min-dash": "^4.2.1",
|
||||
"min-dom": "^5.0.0",
|
||||
"normalize.css": "7.0.0",
|
||||
"nprogress": "0.2.0",
|
||||
"path-to-regexp": "2.4.0",
|
||||
|
||||
@@ -59,7 +59,7 @@ export const loadMenus = (next, to) => {
|
||||
const rewriteRoutes = filterAsyncRouter(rdata, false, true)
|
||||
rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
|
||||
|
||||
store.dispatch('GenerateRoutes', rewriteRoutes).then(() => { // 存储路由
|
||||
store.dispatch('GenerateRoutes', rewriteRoutes).then(() => {
|
||||
router.addRoutes(rewriteRoutes) // 动态添加可访问路由表
|
||||
next({ ...to, replace: true })
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user