add:基于金碟云参数:自定义表单同步配置
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
2024-03-07 13:01:05.011 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
to {POST [/api/externalFieldMapping]}: There is already 'bmExternalFieldMappingController' bean method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
|
||||
@@ -20,10 +20,10 @@ org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController
|
||||
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
|
||||
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
|
||||
at org.nl.AppRun.main(AppRun.java:39)
|
||||
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
to {POST [/api/externalFieldMapping]}: There is already 'bmExternalFieldMappingController' bean method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.validateMethodMapping(AbstractHandlerMethodMapping.java:669)
|
||||
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:635)
|
||||
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:332)
|
||||
@@ -40,10 +40,10 @@ org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
|
||||
... 16 common frames omitted
|
||||
2024-03-07 13:04:13.612 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
to {POST [/api/externalFieldMapping]}: There is already 'bmExternalFieldMappingController' bean method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
|
||||
@@ -61,10 +61,10 @@ org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController
|
||||
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
|
||||
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
|
||||
at org.nl.AppRun.main(AppRun.java:39)
|
||||
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'bmExternalFieldMappingController' method
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#addRows(List)
|
||||
to {POST [/api/externalFieldMapping]}: There is already 'bmExternalFieldMappingController' bean method
|
||||
org.nl.wms.base_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
org.nl.wms.sync_manage.field_mapping.controller.BmExternalFieldMappingController#create(BmExternalFieldMapping) mapped.
|
||||
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.validateMethodMapping(AbstractHandlerMethodMapping.java:669)
|
||||
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:635)
|
||||
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:332)
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package org.nl.common.domain.mybatis.handler;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
*
|
||||
* @author <a href="mailto:qinghehe@qq.com">gongmanman</a>
|
||||
* @Date Create on 2020/3/19/0019 18:30
|
||||
* @since version1.0 Copyright 2020 CLKJ All Rights Reserved.
|
||||
*/
|
||||
public class ListTypeHandler extends BaseTypeHandler<Object> {
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
return jsonTrans(rs.getString(columnName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||
return jsonTrans(rs.getString(columnIndex));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||
return jsonTrans(cs.getString(columnIndex));
|
||||
}
|
||||
|
||||
private Object jsonTrans(String s) {
|
||||
if(s == null){
|
||||
return new ArrayList<String>();
|
||||
}
|
||||
return JSONArray.parseArray(s,String.class);
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.base_manage.material.service.dao.BmMaterial;
|
||||
|
||||
/*
|
||||
|
||||
@@ -2,7 +2,7 @@ package org.nl.wms.base_manage.supplier.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.base_manage.supplier.service.dao.BmSupplier;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.nl.wms.base_manage.vehicle.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.MdPbVehicleattr;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具信息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
public interface IMdPbVehicleattrService extends IService<MdPbVehicleattr> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.base_manage.vehicle.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.MdPbVehicleivt;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具物料信息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
public interface IMdPbVehicleivtService extends IService<MdPbVehicleivt> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package org.nl.wms.base_manage.vehicle.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具信息表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("md_pb_vehicleattr")
|
||||
public class MdPbVehicleattr implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 载具编码
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 载具名称
|
||||
*/
|
||||
private String vehicle_name;
|
||||
|
||||
/**
|
||||
* 载具类型
|
||||
*/
|
||||
private String vehicle_type;
|
||||
|
||||
/**
|
||||
* 一维码
|
||||
*/
|
||||
private String one_code;
|
||||
|
||||
/**
|
||||
* 二维码
|
||||
*/
|
||||
private String two_code;
|
||||
|
||||
/**
|
||||
* RFID编码
|
||||
*/
|
||||
private String rfid_code;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String update_id;
|
||||
|
||||
/**
|
||||
* 修改人姓名
|
||||
*/
|
||||
private String update_name;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date update_time;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean is_used;
|
||||
|
||||
/**
|
||||
* 载具宽度
|
||||
*/
|
||||
private Integer w;
|
||||
|
||||
/**
|
||||
* 载具长度
|
||||
*/
|
||||
private Integer l;
|
||||
|
||||
/**
|
||||
* 载具高度
|
||||
*/
|
||||
private Integer h;
|
||||
|
||||
/**
|
||||
* 载具重量
|
||||
*/
|
||||
private Integer weight;
|
||||
|
||||
/**
|
||||
* 载具超限情况:0无1超w2h3l4W
|
||||
*/
|
||||
private String overstruct_type;
|
||||
|
||||
/**
|
||||
* 超限参数
|
||||
*/
|
||||
private Integer occupystruct_qty;
|
||||
|
||||
/**
|
||||
* 扩展信息
|
||||
*/
|
||||
private String ext_json;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package org.nl.wms.base_manage.vehicle.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具物料信息表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("md_pb_vehicleivt")
|
||||
public class MdPbVehicleivt implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 载具编码
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 工序id
|
||||
*/
|
||||
private String workprocedure_id;
|
||||
|
||||
/**
|
||||
* 批次
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
|
||||
/**
|
||||
* 数量计量单位标识
|
||||
*/
|
||||
private String qty_unit_id;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 父容器
|
||||
*/
|
||||
private String parent_id;
|
||||
|
||||
/**
|
||||
* 是否含子容器
|
||||
*/
|
||||
private Boolean has_child;
|
||||
|
||||
/**
|
||||
* 扩展信息
|
||||
*/
|
||||
private String ext_json;
|
||||
|
||||
/**
|
||||
* 物料关联单据
|
||||
*/
|
||||
private String correlate_order;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String update_time;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.base_manage.vehicle.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.MdPbVehicleattr;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
public interface MdPbVehicleattrMapper extends BaseMapper<MdPbVehicleattr> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.base_manage.vehicle.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.MdPbVehicleivt;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具物料信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
public interface MdPbVehicleivtMapper extends BaseMapper<MdPbVehicleivt> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.base_manage.vehicle.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.base_manage.vehicle.service.IMdPbVehicleattrService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.MdPbVehicleattr;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.mapper.MdPbVehicleattrMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具信息表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Service
|
||||
public class MdPbVehicleattrServiceImpl extends ServiceImpl<MdPbVehicleattrMapper, MdPbVehicleattr> implements IMdPbVehicleattrService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.base_manage.vehicle.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.base_manage.vehicle.service.IMdPbVehicleivtService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.MdPbVehicleivt;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.mapper.MdPbVehicleivtMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 载具物料信息表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Service
|
||||
public class MdPbVehicleivtServiceImpl extends ServiceImpl<MdPbVehicleivtMapper, MdPbVehicleivt> implements IMdPbVehicleivtService {
|
||||
|
||||
}
|
||||
@@ -37,10 +37,19 @@ import java.util.Map;
|
||||
@RestController
|
||||
@RequestMapping("/api/bmFormStruc")
|
||||
public class BmFormStrucController {
|
||||
|
||||
private static Map<String,String> BASE_FORM = MapOf.of("bus_id","业务单据单据id"
|
||||
,"bus_code","业务单据编号"
|
||||
,"bus_date","业务单据日期"
|
||||
,"bus_status","业务单据状态"
|
||||
,"material_id","物料id"
|
||||
,"qty","数量");
|
||||
|
||||
@Autowired
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
@Autowired
|
||||
IPmFormDataService iPmFormDataService;
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> queryAll(FormStrucQuery query, PageQuery pageQuery){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
@@ -78,5 +87,34 @@ public class BmFormStrucController {
|
||||
return new ResponseEntity<>(list,HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ONLY:只用于获取表单同步配置接口
|
||||
* 数据结构:{"type":xxx,"name":xxx,"desc":xxx,"item":{"desc":"描述"}}
|
||||
*/
|
||||
@GetMapping("/tableColumns/{form_type}")
|
||||
public ResponseEntity<Object> tableColumns(@PathVariable String form_type){
|
||||
//参数判读,参数解析,调用参数入库
|
||||
BmFormStruc form_struc = iBmFormStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", form_type));
|
||||
HashMap result = MapOf.of("has_child",form_struc.getHas_child(),"form_type", form_struc.getForm_type(), "form_name", form_struc.getForm_name(), "form_desc", form_struc.getForm_desc());
|
||||
JSONObject form_param = form_struc.getForm_param();
|
||||
form_param.putAll(BASE_FORM);
|
||||
List<Map> items = new ArrayList<>();
|
||||
for (String key : form_param.keySet()) {
|
||||
items.add(MapOf.of("lable",form_param.get(key),"value",key));
|
||||
}
|
||||
if (form_struc.getHas_child()){
|
||||
List<Map> dtl_items = new ArrayList<>();
|
||||
BmFormStruc child_struc = iBmFormStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", form_struc.getForm_type()));
|
||||
JSONObject child_param = child_struc.getForm_param();
|
||||
child_param.putAll(BASE_FORM);
|
||||
for (String key : child_param.keySet()) {
|
||||
dtl_items.add(MapOf.of("lable",form_param.get(key),"value",key));
|
||||
}
|
||||
result.put("dtl_item",dtl_items);
|
||||
}
|
||||
result.put("item",items);
|
||||
return new ResponseEntity<>(result,HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,11 @@ public class BmFormStruc implements Serializable {
|
||||
*/
|
||||
private String form_desc;
|
||||
|
||||
/**
|
||||
* 表单对应json字段
|
||||
*/
|
||||
private String convert_json;
|
||||
|
||||
/**
|
||||
* 创建id
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.early_manage.controller.early_msg;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库报警消息表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/almEarlyMsg")
|
||||
public class AlmEarlyMsgController {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package org.nl.wms.early_manage.controller.inv_early;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.early_manage.service.early_dtl.IAlmEarlyDtlService;
|
||||
import org.nl.wms.early_manage.service.early_dtl.dto.AlmDtlQuery;
|
||||
import org.nl.wms.early_manage.service.early_inv.IAlmEarlyInvService;
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
|
||||
import org.nl.wms.early_manage.service.early_inv.dto.AlmInvQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
订单:1000
|
||||
生产订单:1000
|
||||
150--------------------------
|
||||
| |
|
||||
|---300 150 150 150 第一天
|
||||
400 第二天
|
||||
300 第三天
|
||||
|
||||
**/
|
||||
/**
|
||||
* <p>
|
||||
* 安全库存报警配置表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/almEarlyInv")
|
||||
public class AlmEarlyInvController {
|
||||
|
||||
@Autowired
|
||||
private IAlmEarlyInvService iAlmEarlyInvService;
|
||||
@Autowired
|
||||
private IAlmEarlyDtlService iAlmEarlyDtlService;
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> getAll(AlmInvQuery query, PageQuery page) {
|
||||
Page<AlmEarlyInv> page1 = iAlmEarlyInvService.page(page.build(), query.build());
|
||||
return new ResponseEntity<>(TableDataInfo.build(iAlmEarlyInvService.page(page.build(), query.build())), HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/dtl")
|
||||
public ResponseEntity<Object> getDtl(AlmDtlQuery query, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(iAlmEarlyDtlService.page(page.build(),query.build())), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody JSONObject dto) {
|
||||
AlmEarlyInv inv = dto.toJavaObject(AlmEarlyInv.class);
|
||||
inv.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
inv.setId(IdUtil.getStringId());
|
||||
inv.setCreate_time(DateUtil.now());
|
||||
iAlmEarlyInvService.save(inv);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package org.nl.wms.early_manage.service;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/4/10 14:08
|
||||
*/
|
||||
public enum AlmTypeEnum {
|
||||
INV_ESRLY,
|
||||
Stay_ESRLY;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.early_manage.service.early_dtl;
|
||||
|
||||
import org.nl.wms.early_manage.service.early_dtl.dao.AlmEarlyDtl;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 报警配置明细 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-10
|
||||
*/
|
||||
public interface IAlmEarlyDtlService extends IService<AlmEarlyDtl> {
|
||||
|
||||
void batchInsert(String alm_id,List<String> items);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.nl.wms.early_manage.service.early_dtl.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 报警配置明细
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("alm_early_dtl")
|
||||
public class AlmEarlyDtl implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 安全库存方案id
|
||||
*/
|
||||
private String alm_id;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.nl.wms.early_manage.service.early_dtl.dao.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.early_manage.service.early_dtl.dao.AlmEarlyDtl;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 报警配置明细 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-10
|
||||
*/
|
||||
public interface AlmEarlyDtlMapper extends BaseMapper<AlmEarlyDtl> {
|
||||
|
||||
void batchInsert(@Param("alm_id") String alm_id, @Param("materials") List<String> materials);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?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.early_manage.service.early_dtl.dao.mapper.AlmEarlyDtlMapper">
|
||||
|
||||
<insert id="batchInsert">
|
||||
insert into alm_early_dtl values
|
||||
<foreach collection="materials" item="item" separator=",">
|
||||
(#{alm_id},#{item})
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.nl.wms.early_manage.service.early_dtl.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.early_manage.service.early_dtl.dao.AlmEarlyDtl;
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 19:49
|
||||
*/
|
||||
@Data
|
||||
public class AlmDtlQuery extends BaseQuery<AlmEarlyDtl> {
|
||||
|
||||
|
||||
@Override
|
||||
public void paramMapping() {
|
||||
super.doP.put("search", QParam.builder().k(new String[]{"local_field_name", "external_field_name"}).type(QueryTEnum.EQ).build());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.nl.wms.early_manage.service.early_dtl.impl;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.wms.early_manage.service.early_dtl.IAlmEarlyDtlService;
|
||||
import org.nl.wms.early_manage.service.early_dtl.dao.AlmEarlyDtl;
|
||||
import org.nl.wms.early_manage.service.early_dtl.dao.mapper.AlmEarlyDtlMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 报警配置明细 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-10
|
||||
*/
|
||||
@Service
|
||||
public class AlmEarlyDtlServiceImpl extends ServiceImpl<AlmEarlyDtlMapper, AlmEarlyDtl> implements IAlmEarlyDtlService {
|
||||
|
||||
@Override
|
||||
public void batchInsert(String alm_id,List<String> materials) {
|
||||
if (CollectionUtils.isEmpty(materials)|| StringUtils.isEmpty(alm_id)){
|
||||
return;
|
||||
}
|
||||
this.baseMapper.batchInsert(alm_id,materials);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.nl.wms.early_manage.service.early_inv;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 安全库存报警配置表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
public interface IAlmEarlyInvService extends IService<AlmEarlyInv> {
|
||||
|
||||
/**
|
||||
* 存储安全库存方案
|
||||
* @param param
|
||||
*/
|
||||
void savaAlmEarly(JSONObject param);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package org.nl.wms.early_manage.service.early_inv.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import lombok.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 安全库存报警配置表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "alm_early_inv",autoResultMap = true)
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AlmEarlyInv implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 安全库存方案名称
|
||||
*/
|
||||
private String alm_name;
|
||||
|
||||
/**
|
||||
* 仓库编码
|
||||
*/
|
||||
private String stor_code;
|
||||
|
||||
/**
|
||||
* 安全库存数量
|
||||
*/
|
||||
private Integer safety_qty;
|
||||
|
||||
/**
|
||||
* 安全库存天数
|
||||
*/
|
||||
private Integer safety_day;
|
||||
|
||||
/**
|
||||
* 表达式
|
||||
*/
|
||||
private String expression;
|
||||
|
||||
/**
|
||||
* 报警通知类型:1站内信2微信3xxx
|
||||
*/
|
||||
private String notice_type;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 扩展信息
|
||||
*/
|
||||
private String ext_json;
|
||||
/**
|
||||
* 扩展信息
|
||||
*/
|
||||
private Boolean is_used;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.early_manage.service.early_inv.dao.mapper;
|
||||
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 安全库存报警配置表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
public interface AlmEarlyInvMapper extends BaseMapper<AlmEarlyInv> {
|
||||
|
||||
}
|
||||
@@ -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.early_manage.service.early_inv.dao.mapper.AlmEarlyInvMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.nl.wms.early_manage.service.early_inv.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 19:49
|
||||
*/
|
||||
@Data
|
||||
public class AlmInvQuery extends BaseQuery<AlmEarlyInv> {
|
||||
|
||||
|
||||
@Override
|
||||
public void paramMapping() {
|
||||
super.doP.put("search", QParam.builder().k(new String[]{"local_field_name", "external_field_name"}).type(QueryTEnum.EQ).build());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package org.nl.wms.early_manage.service.early_inv.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.base_manage.material.service.IBmMaterialService;
|
||||
import org.nl.wms.base_manage.material.service.dao.BmMaterial;
|
||||
import org.nl.wms.early_manage.service.AlmTypeEnum;
|
||||
import org.nl.wms.early_manage.service.early_dtl.IAlmEarlyDtlService;
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
|
||||
import org.nl.wms.early_manage.service.early_inv.dao.mapper.AlmEarlyInvMapper;
|
||||
import org.nl.wms.early_manage.service.early_inv.IAlmEarlyInvService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 安全库存报警配置表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
@Service
|
||||
public class AlmEarlyInvServiceImpl extends ServiceImpl<AlmEarlyInvMapper, AlmEarlyInv> implements IAlmEarlyInvService {
|
||||
|
||||
@Autowired
|
||||
IBmMaterialService materialService;
|
||||
@Autowired
|
||||
IAlmEarlyDtlService iAlmEarlyDtlService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void savaAlmEarly(JSONObject param) {
|
||||
if (param==null){
|
||||
return;
|
||||
}
|
||||
AlmEarlyInv build = AlmEarlyInv.builder()
|
||||
.alm_name(param.getString("alm_name"))
|
||||
.expression(param.getString("expression"))
|
||||
.ext_json(param.getString("ext_json"))
|
||||
.notice_type(param.getString("notice_type"))
|
||||
.remark(param.getString("remark"))
|
||||
.safety_qty(param.getInteger("safety_qty"))
|
||||
.safety_day(param.getInteger("safety_day"))
|
||||
.stor_code(param.getString("stor_code"))
|
||||
.is_used(true)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_time(DateUtil.now())
|
||||
.id(IdUtil.getStringId()).build();
|
||||
Boolean screening = param.getBoolean("screening");
|
||||
List<String> items;
|
||||
if (screening){
|
||||
String material_type = param.getString("material_type");
|
||||
if (StringUtils.isEmpty(material_type)){
|
||||
throw new BadRequestException("根据类型筛选必须选择类型");
|
||||
}
|
||||
List<BmMaterial> list = materialService.list(new QueryWrapper<BmMaterial>().select("material_id").eq("material_type_id", material_type));
|
||||
items = list.stream().map(BmMaterial::getMaterial_id).collect(Collectors.toList());
|
||||
}else {
|
||||
JSONArray item = param.getJSONArray("item");
|
||||
items = item.toJavaList(String.class);
|
||||
}
|
||||
this.save(build);
|
||||
if (!CollectionUtils.isEmpty(items)){
|
||||
iAlmEarlyDtlService.batchInsert(build.getId(),items);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.early_manage.service.early_msg;
|
||||
|
||||
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库报警消息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
public interface IAlmEarlyMsgService extends IService<AlmEarlyMsg> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package org.nl.wms.early_manage.service.early_msg.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库报警消息表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("alm_early_msg")
|
||||
public class AlmEarlyMsg implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 消息类型:安全库存报警,呆料报警
|
||||
*/
|
||||
private String early_type;
|
||||
|
||||
/**
|
||||
* 仓库编码
|
||||
*/
|
||||
private String stor_code;
|
||||
|
||||
/**
|
||||
* 载具编码
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
/**
|
||||
* 物料批次
|
||||
*/
|
||||
private String pcsn;
|
||||
|
||||
/**
|
||||
* 库存数量
|
||||
*/
|
||||
private Integer qty;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 是否处理
|
||||
*/
|
||||
private Boolean is_read;
|
||||
|
||||
/**
|
||||
* 扩展仓库库存信息
|
||||
*/
|
||||
private String ext_json;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.early_manage.service.early_msg.dao.mapper;
|
||||
|
||||
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库报警消息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
public interface AlmEarlyMsgMapper extends BaseMapper<AlmEarlyMsg> {
|
||||
|
||||
}
|
||||
@@ -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.early_manage.service.early_msg.dao.mapper.AlmEarlyMsgMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.early_manage.service.early_msg.impl;
|
||||
|
||||
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
|
||||
import org.nl.wms.early_manage.service.early_msg.dao.mapper.AlmEarlyMsgMapper;
|
||||
import org.nl.wms.early_manage.service.early_msg.IAlmEarlyMsgService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库报警消息表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-09
|
||||
*/
|
||||
@Service
|
||||
public class AlmEarlyMsgServiceImpl extends ServiceImpl<AlmEarlyMsgMapper, AlmEarlyMsg> implements IAlmEarlyMsgService {
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.FileUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.cmd.CommandExecutor;
|
||||
import org.nl.wms.flow_manage.flow.framework.engine.cmd.unify.impl.StartInstanceCmd;
|
||||
@@ -54,6 +55,7 @@ public class ActDeModelController {
|
||||
public ResponseEntity<Object> add(@Validated @RequestBody ActDeModel dto) {
|
||||
dto.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
dto.setCreate_time(DateUtil.now());
|
||||
dto.setId(IdUtil.getStringId());
|
||||
modelService.save(dto);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ 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 org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -17,5 +18,5 @@ public abstract class SourceDataTypeHandler<K> extends TypeHandler<JSONObject,St
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract K sourceHandler(String entity, BmFormStruc form_struc);
|
||||
public abstract K sourceHandler(String entity, SyncFormMapping formMapping);
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@ 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.nl.wms.sync_manage.handler.BaseSyncClassHandler;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Service;
|
||||
public class ClassSourceDataTypeHandler extends SourceDataTypeHandler {
|
||||
|
||||
@Override
|
||||
public JSONObject sourceHandler(String entity, BmFormStruc form_struc) {
|
||||
public JSONObject sourceHandler(String entity, SyncFormMapping formMapping) {
|
||||
BaseSyncClassHandler<JSONObject> bean = SpringContextHolder.getBean("");
|
||||
return bean.handler();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package org.nl.wms.flow_manage.flow.framework.process.nodeType.source.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
@@ -19,30 +22,58 @@ import java.util.List;
|
||||
*/
|
||||
@Service
|
||||
public class MappingSourceDataTypeHandler extends SourceDataTypeHandler<PmFormData> {
|
||||
|
||||
|
||||
|
||||
@Value("${server.port}")
|
||||
private String post;
|
||||
//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) {
|
||||
public PmFormData sourceHandler(String entity, SyncFormMapping formMapping) {
|
||||
JSONArray datas = JSONArray.parseArray(entity);
|
||||
JSONArray mapping = (JSONArray)formMapping.getMapping_json().remove(0);
|
||||
|
||||
PmFormData formData = new PmFormData();
|
||||
formData.setId(IdUtil.getStringId());
|
||||
formData.setForm_type(form_struc.getForm_type());
|
||||
formData.setForm_type(formMapping.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);
|
||||
formData.setForm_data(form_json);
|
||||
|
||||
Class<PmFormData> dataClass = PmFormData.class;
|
||||
for (Object jdata : datas) {
|
||||
JSONObject data = (JSONObject) jdata;
|
||||
for (int i = 0; i < mapping.size(); i++) {
|
||||
JSONObject item_filed = mapping.getJSONObject(i);
|
||||
String mapping_field = item_filed.getString("value");
|
||||
String skipExpression = item_filed.getString("skipExpression");
|
||||
Object value = null;
|
||||
if (StringUtils.isNotEmpty(skipExpression)){
|
||||
//el表达式
|
||||
}else {
|
||||
value = data.get(mapping_field);
|
||||
}
|
||||
if (base_parm.contains(mapping_field)){
|
||||
Field field = dataClass.getDeclaredField(mapping_field);
|
||||
field.setAccessible(true);
|
||||
field.set(formData,value);
|
||||
}else {
|
||||
form_json.put(mapping_field,value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return formData;
|
||||
}
|
||||
|
||||
public String getPost() {
|
||||
return post;
|
||||
}
|
||||
|
||||
public void setPost(String post) {
|
||||
this.post = post;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
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.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
@@ -14,7 +13,7 @@ import org.springframework.stereotype.Service;
|
||||
public class ScriptSourceDataTypeHandler extends SourceDataTypeHandler {
|
||||
|
||||
@Override
|
||||
public Object sourceHandler(String entity, BmFormStruc form_struc) {
|
||||
public Object sourceHandler(String entity, SyncFormMapping formMapping) {
|
||||
GroovyShell shell = new GroovyShell();
|
||||
Object 脚本 = shell.evaluate("脚本");
|
||||
return 脚本;
|
||||
|
||||
@@ -4,7 +4,7 @@ import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.flow_manage.flow.service.model.dao.ActDeModel;
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package org.nl.wms.pm_manage.form_data.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -18,7 +22,7 @@ import lombok.EqualsAndHashCode;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("pm_form_data")
|
||||
@TableName(value = "pm_form_data",autoResultMap = true)
|
||||
public class PmFormData implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
@@ -76,7 +80,8 @@ public class PmFormData implements Serializable {
|
||||
/**
|
||||
* 自定义表单字段
|
||||
*/
|
||||
private String form_data;
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONObject form_data;
|
||||
|
||||
/**
|
||||
* 关联上级表单id
|
||||
|
||||
@@ -8,7 +8,10 @@ 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.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@@ -35,24 +38,30 @@ import java.util.Map;
|
||||
*/
|
||||
@Service
|
||||
public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormData> implements IPmFormDataService {
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
IBmFormStrucService formStrucService;
|
||||
@Autowired
|
||||
ISyncFormMappingService iSyncFormMappingService;
|
||||
@Autowired
|
||||
Map<String,SourceDataTypeHandler<PmFormData>> SourceDataTypeHandlerMap;
|
||||
|
||||
@Override
|
||||
public Integer syncFormData(String form_type, String dataString) {
|
||||
SyncFormMapping syncFormMapping = iSyncFormMappingService.getOne(new QueryWrapper<SyncFormMapping>().eq("form_type", form_type));
|
||||
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);
|
||||
PmFormData formData = SourceDataTypeHandlerMap.get(form_type).sourceHandler(dataString, syncFormMapping);
|
||||
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);
|
||||
PmFormData itemForm = SourceDataTypeHandlerMap.get(form_type).sourceHandler(itemData, syncFormMapping);
|
||||
itemForm.setParent_id(formData.getId());
|
||||
saves.add(itemForm);
|
||||
}
|
||||
@@ -60,4 +69,6 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
this.saveBatch(saves);
|
||||
return saves.size();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,92 +1,92 @@
|
||||
package org.nl.wms.base_manage.field_mapping.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.wms.base_manage.field_mapping.service.IBmExternalFieldMappingService;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dto.MappingQuery;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dto.RequestMappingParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/externalFieldMapping")
|
||||
public class BmExternalFieldMappingController {
|
||||
|
||||
@Autowired
|
||||
private IBmExternalFieldMappingService mappingsService;
|
||||
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> getAll(MappingQuery query, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(mappingsService.page(page.build(), query.build())), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody BmExternalFieldMapping dto) {
|
||||
mappingsService.save(dto);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/addRows")
|
||||
public ResponseEntity<Object> addRows(@RequestBody RequestMappingParam param) {
|
||||
mappingsService.addRows(param);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody BmExternalFieldMapping dto) {
|
||||
mappingsService.update(dto, new LambdaUpdateWrapper<BmExternalFieldMapping>().eq(BmExternalFieldMapping::getId, dto.getId()));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PutMapping("/updateRows")
|
||||
public ResponseEntity<Object> updateRows(@RequestBody RequestMappingParam param) {
|
||||
mappingsService.updateRows(param);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
if (ids.length > 0) {
|
||||
mappingsService.removeByIds(Arrays.asList(ids));
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getTableColumnNames/{table_name}")
|
||||
public ResponseEntity<Object> getTableColumnNames(@PathVariable String table_name) {
|
||||
return new ResponseEntity<>(mappingsService.getTableColumnNames(table_name), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getTableColumnNamesFromMapping/{table_name}")
|
||||
public ResponseEntity<Object> getTableColumnNamesFromMapping(@PathVariable String table_name) {
|
||||
return new ResponseEntity<>(mappingsService.getTableColumnNamesFromMapping(table_name), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getAllTableName")
|
||||
public ResponseEntity<Object> getAllTableName() {
|
||||
return new ResponseEntity<>(mappingsService.getAllTableName(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getExistTableName")
|
||||
public ResponseEntity<Object> getExistTableName() {
|
||||
return new ResponseEntity<>(mappingsService.getExistTableName(), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
package org.nl.wms.sync_manage.controller.field_mapping;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.IBmExternalFieldMappingService;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingQuery;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/externalFieldMapping")
|
||||
public class BmExternalFieldMappingController {
|
||||
|
||||
@Autowired
|
||||
private IBmExternalFieldMappingService mappingsService;
|
||||
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> getAll(MappingQuery query, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(mappingsService.page(page.build(), query.build())), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody BmExternalFieldMapping dto) {
|
||||
mappingsService.save(dto);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/addRows")
|
||||
public ResponseEntity<Object> addRows(@RequestBody RequestMappingParam param) {
|
||||
mappingsService.addRows(param);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody BmExternalFieldMapping dto) {
|
||||
mappingsService.update(dto, new LambdaUpdateWrapper<BmExternalFieldMapping>().eq(BmExternalFieldMapping::getId, dto.getId()));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PutMapping("/updateRows")
|
||||
public ResponseEntity<Object> updateRows(@RequestBody RequestMappingParam param) {
|
||||
mappingsService.updateRows(param);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
if (ids.length > 0) {
|
||||
mappingsService.removeByIds(Arrays.asList(ids));
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getTableColumnNames/{table_name}")
|
||||
public ResponseEntity<Object> getTableColumnNames(@PathVariable String table_name) {
|
||||
return new ResponseEntity<>(mappingsService.getTableColumnNames(table_name), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getTableColumnNamesFromMapping/{table_name}")
|
||||
public ResponseEntity<Object> getTableColumnNamesFromMapping(@PathVariable String table_name) {
|
||||
return new ResponseEntity<>(mappingsService.getTableColumnNamesFromMapping(table_name), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getAllTableName")
|
||||
public ResponseEntity<Object> getAllTableName() {
|
||||
return new ResponseEntity<>(mappingsService.getAllTableName(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getExistTableName")
|
||||
public ResponseEntity<Object> getExistTableName() {
|
||||
return new ResponseEntity<>(mappingsService.getExistTableName(), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
package org.nl.wms.sync_manage.controller.form_mapping;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.FileUtil;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingQuery;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dto.FormMappingQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.expression.EvaluationContext;
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单同步配置表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-11
|
||||
* 表单同步规则:从erp拉取数据
|
||||
* |
|
||||
* 单据结构表获取单据需要的字段<---->单据配置的映射关系获取到需要字段的值
|
||||
* |
|
||||
* 结构表has_child:单据明细的单据结构表字段<---->单据配置的映射关系获取到需要字段的值
|
||||
* |
|
||||
* 保存明细跟主单据
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/syncFormMapping")
|
||||
public class SyncFormMappingController {
|
||||
|
||||
private static final SpelExpressionParser SPEL_PARSER = new SpelExpressionParser();
|
||||
|
||||
@Autowired
|
||||
ISyncFormMappingService iSyncFormMappingService;
|
||||
@Autowired
|
||||
IPmFormDataService formDataService;
|
||||
|
||||
public static void main(String[] args) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("ddd","kkk");
|
||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||
context.setVariable("query1",jsonObject);
|
||||
Expression expression = SPEL_PARSER.parseExpression("#query1.ddd");
|
||||
String value = expression.getValue(context, String.class);
|
||||
System.out.println(value);
|
||||
}
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> getAll(FormMappingQuery query, PageQuery page) {
|
||||
|
||||
return new ResponseEntity<>(TableDataInfo.build(iSyncFormMappingService.page(page.build(), query.build())), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/create")
|
||||
public ResponseEntity<Object> create(@RequestBody JSONObject param) {
|
||||
iSyncFormMappingService.saveSyncMapping(param);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
|
||||
if (ids.length>0){
|
||||
iSyncFormMappingService.removeByIds(Arrays.asList(ids));
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/syncData")
|
||||
public ResponseEntity<Object> syncData(@RequestBody JSONObject syncFormMapping) {
|
||||
SyncFormMapping mapping = syncFormMapping.toJavaObject(SyncFormMapping.class);
|
||||
String data = FileUtil.readString("/Users/mima0000/Desktop/formdata.txt", "UTF_8");
|
||||
formDataService.syncFormData(mapping.getForm_type(),data);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.base_manage.field_mapping.handler;
|
||||
package org.nl.wms.sync_manage.handler;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.nl.wms.base_manage.field_mapping.handler.impl;
|
||||
package org.nl.wms.sync_manage.handler.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.base_manage.field_mapping.handler.BaseSyncClassHandler;
|
||||
import org.nl.wms.sync_manage.handler.BaseSyncClassHandler;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -1,66 +1,66 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dto.RequestMappingParam;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
public interface IBmExternalFieldMappingService extends IService<BmExternalFieldMapping> {
|
||||
|
||||
|
||||
/**
|
||||
* 根据数据表名获取所有字段名称
|
||||
*
|
||||
* @param tableName
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, String>> getTableColumnNames(String tableName);
|
||||
|
||||
/**
|
||||
* 获取数据库中所有表的名称
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getAllTableName();
|
||||
|
||||
|
||||
/**
|
||||
* 查询已配置的数据库表名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getExistTableName();
|
||||
|
||||
/**
|
||||
* 批量添加
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
void addRows(RequestMappingParam param);
|
||||
|
||||
/**
|
||||
* 批量修改
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
void updateRows(RequestMappingParam param);
|
||||
|
||||
/**
|
||||
* 从映射关系表中获取已配置映射关系的
|
||||
*
|
||||
* @param table_name
|
||||
* @return
|
||||
*/
|
||||
BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name);
|
||||
}
|
||||
package org.nl.wms.sync_manage.service.field_mapping;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
public interface IBmExternalFieldMappingService extends IService<BmExternalFieldMapping> {
|
||||
|
||||
|
||||
/**
|
||||
* 根据数据表名获取所有字段名称
|
||||
*
|
||||
* @param tableName
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, String>> getTableColumnNames(String tableName);
|
||||
|
||||
/**
|
||||
* 获取数据库中所有表的名称
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getAllTableName();
|
||||
|
||||
|
||||
/**
|
||||
* 查询已配置的数据库表名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getExistTableName();
|
||||
|
||||
/**
|
||||
* 批量添加
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
void addRows(RequestMappingParam param);
|
||||
|
||||
/**
|
||||
* 批量修改
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
void updateRows(RequestMappingParam param);
|
||||
|
||||
/**
|
||||
* 从映射关系表中获取已配置映射关系的
|
||||
*
|
||||
* @param table_name
|
||||
* @return
|
||||
*/
|
||||
BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name);
|
||||
}
|
||||
@@ -1,79 +1,79 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dto.MappingDto;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("bm_external_field_mapping")
|
||||
public class BmExternalFieldMapping implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 本地数据库表名称
|
||||
*/
|
||||
private String local_table_name;
|
||||
|
||||
/**
|
||||
* 接口地址
|
||||
*/
|
||||
private String api_address;
|
||||
|
||||
/**
|
||||
* 同步类型
|
||||
*/
|
||||
private String sync_type;
|
||||
|
||||
/**
|
||||
* 外部系统
|
||||
*/
|
||||
private String external_system;
|
||||
|
||||
/**
|
||||
* 映射关系
|
||||
*/
|
||||
private String mapping_json;
|
||||
|
||||
/**
|
||||
* 修改人ID
|
||||
*/
|
||||
private String last_update_id;
|
||||
|
||||
/**
|
||||
* 修改人名称
|
||||
*/
|
||||
private String last_update_name;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String last_update_time;
|
||||
|
||||
/**
|
||||
* mapping_json解析
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<MappingDto> dtos = new ArrayList<>();
|
||||
}
|
||||
package org.nl.wms.sync_manage.service.field_mapping.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingDto;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("bm_external_field_mapping")
|
||||
public class BmExternalFieldMapping implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 本地数据库表名称
|
||||
*/
|
||||
private String local_table_name;
|
||||
|
||||
/**
|
||||
* 接口地址
|
||||
*/
|
||||
private String api_address;
|
||||
|
||||
/**
|
||||
* 同步类型
|
||||
*/
|
||||
private String sync_type;
|
||||
|
||||
/**
|
||||
* 外部系统
|
||||
*/
|
||||
private String external_system;
|
||||
|
||||
/**
|
||||
* 映射关系
|
||||
*/
|
||||
private String mapping_json;
|
||||
|
||||
/**
|
||||
* 修改人ID
|
||||
*/
|
||||
private String last_update_id;
|
||||
|
||||
/**
|
||||
* 修改人名称
|
||||
*/
|
||||
private String last_update_name;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String last_update_time;
|
||||
|
||||
/**
|
||||
* mapping_json解析
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<MappingDto> dtos = new ArrayList<>();
|
||||
}
|
||||
@@ -1,41 +1,41 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service.dao.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
public interface BmExternalFieldMappingMapper extends BaseMapper<BmExternalFieldMapping> {
|
||||
|
||||
/**
|
||||
* 根据数据表名获取所有字段名称
|
||||
*
|
||||
* @param tableName
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, String>> getTableColumnNames(@Param("tableName") String tableName);
|
||||
|
||||
/**
|
||||
* 获取数据库中所有表的名称
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getAllTableName();
|
||||
|
||||
/**
|
||||
* 查询已配置的数据库表名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getExistTableName();
|
||||
}
|
||||
package org.nl.wms.sync_manage.service.field_mapping.dao.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
public interface BmExternalFieldMappingMapper extends BaseMapper<BmExternalFieldMapping> {
|
||||
|
||||
/**
|
||||
* 根据数据表名获取所有字段名称
|
||||
*
|
||||
* @param tableName
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, String>> getTableColumnNames(@Param("tableName") String tableName);
|
||||
|
||||
/**
|
||||
* 获取数据库中所有表的名称
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getAllTableName();
|
||||
|
||||
/**
|
||||
* 查询已配置的数据库表名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getExistTableName();
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
<?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.base_manage.field_mapping.service.dao.mapper.BmExternalFieldMappingMapper">
|
||||
<mapper namespace="org.nl.wms.sync_manage.service.field_mapping.dao.mapper.BmExternalFieldMappingMapper">
|
||||
|
||||
|
||||
<select id="getTableColumnNames" resultType="map">
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service.dto;
|
||||
package org.nl.wms.sync_manage.service.field_mapping.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -11,4 +11,4 @@ import lombok.Data;
|
||||
public class MappingDto {
|
||||
private String local_field_name;
|
||||
private String external_field_name;
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service.dto;
|
||||
package org.nl.wms.sync_manage.service.field_mapping.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.wms.sync_manage.service.field_mapping.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Author Gengby
|
||||
* @Date 2024/3/8
|
||||
*/
|
||||
@Data
|
||||
public class RequestMappingParam {
|
||||
|
||||
private BmExternalFieldMapping bmExternalFieldMapping;
|
||||
private List<MappingDto> dtos;
|
||||
}
|
||||
@@ -1,111 +1,111 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.base_manage.field_mapping.service.IBmExternalFieldMappingService;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.mapper.BmExternalFieldMappingMapper;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dto.MappingDto;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dto.RequestMappingParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
@Service
|
||||
public class BmExternalFieldMappingServiceImpl extends ServiceImpl<BmExternalFieldMappingMapper, BmExternalFieldMapping> implements IBmExternalFieldMappingService {
|
||||
|
||||
@Autowired(required = false)
|
||||
private BmExternalFieldMappingMapper mappingMapper;
|
||||
|
||||
@Override
|
||||
public List<Map<String, String>> getTableColumnNames(String tableName) {
|
||||
return mappingMapper.getTableColumnNames(tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAllTableName() {
|
||||
List<String> allTableName = mappingMapper.getAllTableName();
|
||||
List<String> existTableName = this.getExistTableName();
|
||||
allTableName.removeAll(existTableName);
|
||||
return allTableName;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<String> getExistTableName() {
|
||||
return mappingMapper.getExistTableName();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addRows(RequestMappingParam param) {
|
||||
BmExternalFieldMapping mapping = param.getBmExternalFieldMapping();
|
||||
List<MappingDto> dtos = param.getDtos();
|
||||
Assert.notNull(dtos, "映射关系不能为空!");
|
||||
Map<String, String> mappingJson = dtos.stream().collect(Collectors.toMap(MappingDto::getExternal_field_name, MappingDto::getLocal_field_name));
|
||||
mapping.setMapping_json(JSON.toJSONString(mappingJson));
|
||||
mapping.setId(IdUtil.getStringId());
|
||||
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
||||
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
||||
mapping.setLast_update_time(DateUtil.now());
|
||||
mappingMapper.insert(mapping);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void updateRows(RequestMappingParam param) {
|
||||
BmExternalFieldMapping mapping = param.getBmExternalFieldMapping();
|
||||
LambdaUpdateWrapper<BmExternalFieldMapping> luw = new LambdaUpdateWrapper<>();
|
||||
luw.eq(BmExternalFieldMapping::getLocal_table_name, mapping.getLocal_table_name());
|
||||
List<MappingDto> dtos = param.getDtos();
|
||||
mappingMapper.delete(luw);
|
||||
if (ObjectUtil.isNotEmpty(dtos)) {
|
||||
Map<String, String> mappingJson = dtos.stream().collect(Collectors.toMap(MappingDto::getExternal_field_name, MappingDto::getLocal_field_name));
|
||||
mapping.setMapping_json(JSON.toJSONString(mappingJson));
|
||||
mapping.setId(IdUtil.getStringId());
|
||||
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
||||
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
||||
mapping.setLast_update_time(DateUtil.now());
|
||||
mappingMapper.insert(mapping);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name) {
|
||||
LambdaQueryWrapper<BmExternalFieldMapping> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(BmExternalFieldMapping::getLocal_table_name, table_name);
|
||||
BmExternalFieldMapping mapping = mappingMapper.selectOne(lqw);
|
||||
String mapping_json = mapping.getMapping_json();
|
||||
if (StrUtil.isNotBlank(mapping_json)) {
|
||||
Map<String, String> map = JSON.parseObject(mapping_json, Map.class);
|
||||
List<MappingDto> list = new ArrayList<>();
|
||||
map.forEach((key, value) -> {
|
||||
MappingDto dto = new MappingDto();
|
||||
dto.setExternal_field_name(key);
|
||||
dto.setLocal_field_name(value);
|
||||
list.add(dto);
|
||||
});
|
||||
mapping.setDtos(list);
|
||||
}
|
||||
return mapping;
|
||||
}
|
||||
}
|
||||
package org.nl.wms.sync_manage.service.field_mapping.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.IBmExternalFieldMappingService;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.mapper.BmExternalFieldMappingMapper;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingDto;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 同步字段映射表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-03-06
|
||||
*/
|
||||
@Service
|
||||
public class BmExternalFieldMappingServiceImpl extends ServiceImpl<BmExternalFieldMappingMapper, BmExternalFieldMapping> implements IBmExternalFieldMappingService {
|
||||
|
||||
@Autowired(required = false)
|
||||
private BmExternalFieldMappingMapper mappingMapper;
|
||||
|
||||
@Override
|
||||
public List<Map<String, String>> getTableColumnNames(String tableName) {
|
||||
return mappingMapper.getTableColumnNames(tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAllTableName() {
|
||||
List<String> allTableName = mappingMapper.getAllTableName();
|
||||
List<String> existTableName = this.getExistTableName();
|
||||
allTableName.removeAll(existTableName);
|
||||
return allTableName;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<String> getExistTableName() {
|
||||
return mappingMapper.getExistTableName();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addRows(RequestMappingParam param) {
|
||||
BmExternalFieldMapping mapping = param.getBmExternalFieldMapping();
|
||||
List<MappingDto> dtos = param.getDtos();
|
||||
Assert.notNull(dtos, "映射关系不能为空!");
|
||||
Map<String, String> mappingJson = dtos.stream().collect(Collectors.toMap(MappingDto::getExternal_field_name, MappingDto::getLocal_field_name));
|
||||
mapping.setMapping_json(JSON.toJSONString(mappingJson));
|
||||
mapping.setId(IdUtil.getStringId());
|
||||
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
||||
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
||||
mapping.setLast_update_time(DateUtil.now());
|
||||
mappingMapper.insert(mapping);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void updateRows(RequestMappingParam param) {
|
||||
BmExternalFieldMapping mapping = param.getBmExternalFieldMapping();
|
||||
LambdaUpdateWrapper<BmExternalFieldMapping> luw = new LambdaUpdateWrapper<>();
|
||||
luw.eq(BmExternalFieldMapping::getLocal_table_name, mapping.getLocal_table_name());
|
||||
List<MappingDto> dtos = param.getDtos();
|
||||
mappingMapper.delete(luw);
|
||||
if (ObjectUtil.isNotEmpty(dtos)) {
|
||||
Map<String, String> mappingJson = dtos.stream().collect(Collectors.toMap(MappingDto::getExternal_field_name, MappingDto::getLocal_field_name));
|
||||
mapping.setMapping_json(JSON.toJSONString(mappingJson));
|
||||
mapping.setId(IdUtil.getStringId());
|
||||
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
||||
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
||||
mapping.setLast_update_time(DateUtil.now());
|
||||
mappingMapper.insert(mapping);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name) {
|
||||
LambdaQueryWrapper<BmExternalFieldMapping> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(BmExternalFieldMapping::getLocal_table_name, table_name);
|
||||
BmExternalFieldMapping mapping = mappingMapper.selectOne(lqw);
|
||||
String mapping_json = mapping.getMapping_json();
|
||||
if (StrUtil.isNotBlank(mapping_json)) {
|
||||
Map<String, String> map = JSON.parseObject(mapping_json, Map.class);
|
||||
List<MappingDto> list = new ArrayList<>();
|
||||
map.forEach((key, value) -> {
|
||||
MappingDto dto = new MappingDto();
|
||||
dto.setExternal_field_name(key);
|
||||
dto.setLocal_field_name(value);
|
||||
list.add(dto);
|
||||
});
|
||||
mapping.setDtos(list);
|
||||
}
|
||||
return mapping;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.nl.wms.sync_manage.service.form_mapping;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单同步配置表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-11
|
||||
*/
|
||||
public interface ISyncFormMappingService extends IService<SyncFormMapping> {
|
||||
|
||||
void saveSyncMapping(JSONObject param);
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package org.nl.wms.sync_manage.service.form_mapping.dao;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
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-04-11
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "sync_form_mapping",autoResultMap = true)
|
||||
public class SyncFormMapping implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 本地数据库表名称
|
||||
*/
|
||||
private String form_type;
|
||||
|
||||
/**
|
||||
* 接口地址
|
||||
*/
|
||||
private String form_name;
|
||||
|
||||
/**
|
||||
* 同步地址
|
||||
*/
|
||||
private String sync_url;
|
||||
|
||||
/**
|
||||
* 同步类型 1接口 2视图
|
||||
*/
|
||||
private String sync_type;
|
||||
|
||||
/**
|
||||
* 外部系统
|
||||
*/
|
||||
private String external_system;
|
||||
|
||||
/**
|
||||
* 映射关系
|
||||
*/
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONArray mapping_json;
|
||||
|
||||
/**
|
||||
* 修改人ID
|
||||
*/
|
||||
private String update_id;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private String update_time;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String update_name;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.sync_manage.service.form_mapping.dao.mapper;
|
||||
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单同步配置表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-11
|
||||
*/
|
||||
public interface SyncFormMappingMapper extends BaseMapper<SyncFormMapping> {
|
||||
|
||||
}
|
||||
@@ -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.sync_manage.service.form_mapping.dao.mapper.SyncFormMappingMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.nl.wms.sync_manage.service.form_mapping.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.common.domain.entity.BaseQuery;
|
||||
import org.nl.common.domain.entity.QParam;
|
||||
import org.nl.common.enums.QueryTEnum;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.mapper.SyncFormMappingMapper;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/4 19:49s
|
||||
*/
|
||||
@Data
|
||||
public class FormMappingQuery extends BaseQuery<SyncFormMapping> {
|
||||
|
||||
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package org.nl.wms.base_manage.field_mapping.service.dto;
|
||||
package org.nl.wms.sync_manage.service.form_mapping.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.wms.base_manage.field_mapping.service.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -15,4 +16,4 @@ public class RequestMappingParam {
|
||||
|
||||
private BmExternalFieldMapping bmExternalFieldMapping;
|
||||
private List<MappingDto> dtos;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package org.nl.wms.sync_manage.service.form_mapping.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.mapper.SyncFormMappingMapper;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 表单同步配置表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-11
|
||||
*/
|
||||
@Service
|
||||
public class SyncFormMappingServiceImpl extends ServiceImpl<SyncFormMappingMapper, SyncFormMapping> implements ISyncFormMappingService {
|
||||
|
||||
/**
|
||||
* 保存配置
|
||||
* mst:主数据信息
|
||||
* item:jsonArray
|
||||
* label:字段名
|
||||
* value:字段
|
||||
* mapping_field:对应外部系统映射字段
|
||||
* skipExpression:表达式复杂字段通过这个表达式进行转换
|
||||
* 明细字段 dtl_item:jsonArray
|
||||
* label:字段名
|
||||
* value:字段
|
||||
* mapping_field:对应外部系统映射字段
|
||||
* skipExpression:表达式复杂字段通过这个表达式进行转换
|
||||
*/
|
||||
@Override
|
||||
public void saveSyncMapping(JSONObject param) {
|
||||
if (param==null){
|
||||
return;
|
||||
}
|
||||
JSONObject mst = param.getJSONObject("mst");
|
||||
SyncFormMapping mapping = new SyncFormMapping();
|
||||
mapping.setId(IdUtil.getStringId());
|
||||
mapping.setForm_name(mst.getString("form_name"));
|
||||
mapping.setForm_type(mst.getString("form_type"));
|
||||
mapping.setSync_url(mst.getString("sync_url"));
|
||||
mapping.setSync_type(mst.getString("sync_type"));
|
||||
mapping.setExternal_system(mst.getString("external_system"));
|
||||
mapping.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
mapping.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
mapping.setUpdate_time(DateUtil.now());
|
||||
mapping.setMapping_json(param.getJSONArray("item"));
|
||||
this.save(mapping);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.nl.wms.system_manage.controller.menu;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
@@ -10,7 +8,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
|
||||
import org.nl.wms.system_manage.service.menu.ISysMenuService;
|
||||
import org.nl.wms.system_manage.service.menu.dao.SysMenu;
|
||||
import org.nl.wms.system_manage.service.menu.dto.MenuDto;
|
||||
@@ -37,7 +34,6 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class SysMenuController {
|
||||
private final ISysMenuService iSysMenuService;
|
||||
private final PlatformTransactionManager platformTransactionManager;
|
||||
|
||||
@GetMapping(value = "/build")
|
||||
//("根据用户获取菜单")
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -17,7 +17,6 @@ import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.CopyUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
|
||||
import org.nl.wms.system_manage.service.dict.ISysDictService;
|
||||
import org.nl.wms.system_manage.service.dict.dao.Dict;
|
||||
import org.nl.wms.system_manage.service.menu.ISysMenuService;
|
||||
@@ -318,9 +317,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
|
||||
@Override
|
||||
public List<MenuDto> buildTree(List<MenuDto> menuDtos) {
|
||||
List<MenuDto> trees = new ArrayList<>();
|
||||
Set<String> ids = new HashSet<>();
|
||||
List<MenuDto> collect = menuDtos.stream().filter(a -> a.getType().equals("2")).collect(Collectors.toList());
|
||||
for (MenuDto menuDTO : collect) {
|
||||
if (menuDTO.getPid() == null) {
|
||||
trees.add(menuDTO);
|
||||
}
|
||||
for (MenuDto it : menuDtos) {
|
||||
if (menuDTO.getMenu_id().equals(it.getPid())) {
|
||||
if (menuDTO.getChildren() == null) {
|
||||
@@ -331,7 +334,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
}
|
||||
}
|
||||
}
|
||||
return menuDtos;
|
||||
if (trees.size() == 0) {
|
||||
trees = menuDtos.stream().filter(s -> !ids.contains(s.getMenu_id())).collect(Collectors.toList());
|
||||
}
|
||||
return trees;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -407,20 +413,41 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
// 一级目录需要加斜杠,不然会报警告
|
||||
menuVo.setPath(pid.equals(menuDTO.getPid())? "/" + menuDTO.getPath() : menuDTO.getPath());
|
||||
menuVo.setHidden(menuDTO.getHidden());
|
||||
menuVo.setMeta(new MenuMetaVo(menuDTO.getTitle(), menuDTO.getIcon(), !menuDTO.getCache()));
|
||||
// 如果不是外链
|
||||
if (!menuDTO.getIframe()) {
|
||||
if ("2".equals(menuDTO.getType())) {
|
||||
menuVo.setComponent(pid.equals(menuDTO.getPid()) ? "Layout" : "ParentView");
|
||||
} else {
|
||||
if (pid.equals(menuDTO.getPid())) {
|
||||
menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent()) ? "Layout" : menuDTO.getComponent());
|
||||
//"2".equals(menuDTO.getType() 判断是不是目录
|
||||
} else if (!pid.equals(menuDTO.getPid()) && "2".equals(menuDTO.getType())) {
|
||||
menuVo.setComponent(StrUtil.isEmpty(menuDTO.getComponent()) ? "ParentView" : menuDTO.getComponent());
|
||||
|
||||
} else if (!StrUtil.isEmpty(menuDTO.getComponent())) {
|
||||
menuVo.setComponent(menuDTO.getComponent());
|
||||
}
|
||||
}
|
||||
menuVo.setMeta(new MenuMetaVo(menuDTO.getTitle(), menuDTO.getIcon(), !menuDTO.getCache()));
|
||||
if (menuDtoList != null && menuDtoList.size() != 0) {
|
||||
menuVo.setAlwaysShow(true);
|
||||
menuVo.setRedirect("noredirect");
|
||||
menuVo.setChildren(buildMenus(menuDtoList,pid));
|
||||
// 处理是一级菜单并且没有子菜单的情况
|
||||
} else if (StrUtil.isEmpty(menuDTO.getPid())) {
|
||||
MenuVo menuVo1 = new MenuVo();
|
||||
menuVo1.setMeta(menuVo.getMeta());
|
||||
// 非外链
|
||||
if (!menuDTO.getIframe()) {
|
||||
menuVo1.setPath("index");
|
||||
menuVo1.setName(menuVo.getName());
|
||||
menuVo1.setComponent(menuVo.getComponent());
|
||||
} else {
|
||||
menuVo1.setPath(menuDTO.getPath());
|
||||
}
|
||||
menuVo.setName(null);
|
||||
menuVo.setMeta(null);
|
||||
menuVo.setComponent("Layout");
|
||||
List<MenuVo> list1 = new ArrayList<>();
|
||||
list1.add(menuVo1);
|
||||
menuVo.setChildren(list1);
|
||||
}
|
||||
list.add(menuVo);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user