feat: 科室设备经营分析功能

lh_dev_fifo
chenhc 7 months ago
parent 01225469b4
commit 2f58a0d25b

@ -0,0 +1,131 @@
package com.glxp.api.controller.dev;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.auth.InvBusUserEntity;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.auth.WarehouseUserEntity;
import com.glxp.api.entity.dev.DeviceBusinessProject;
import com.glxp.api.entity.dev.DeviceBusinessProjectDevice;
import com.glxp.api.entity.dev.DeviceInfoEntity;
import com.glxp.api.req.dev.DeviceBusinessProjectRequest;
import com.glxp.api.req.dev.DeviceCheckQuery;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.thrsys.DeviceBusinessProjectDeviceService;
import com.glxp.api.service.thrsys.DeviceBusinessProjectService;
import com.glxp.api.vo.dev.DeviceCheckVo;
import com.glxp.api.vo.dev.DeviceInfoVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.lang.reflect.Array;
import java.util.Date;
import java.util.List;
import java.util.Map;
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping
public class DeviceBusinessProjectController extends BaseController {
@Resource
DeviceBusinessProjectService deviceBusinessProjectService;
@Resource
DeviceBusinessProjectDeviceService deviceBusinessProjectDeviceService;
/**
*
*
* @param query
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udi/device/businessProject/page")
public BaseResponse page(@RequestBody DeviceBusinessProjectRequest query) {
List<DeviceBusinessProject> list = deviceBusinessProjectService.pageList(query);
PageInfo pageInfo = new PageInfo<>(list);
PageSimpleResponse page = new PageSimpleResponse();
page.setTotal(pageInfo.getTotal());
page.setList(pageInfo.getList());
return ResultVOUtils.success(page);
}
/**
*
*
* @param query
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udi/device/businessProject/detailList")
public BaseResponse detailList(@RequestBody DeviceBusinessProjectRequest query) {
List<DeviceInfoVo> list = deviceBusinessProjectDeviceService.detailList(query);
PageInfo pageInfo = new PageInfo<>(list);
PageSimpleResponse page = new PageSimpleResponse();
page.setTotal(pageInfo.getTotal());
page.setList(pageInfo.getList());
return ResultVOUtils.success(page);
}
/**
*
*
* @param query
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udi/device/businessProject/selectNotSelectDevice")
public BaseResponse selectNotSelectDevice(@RequestBody DeviceBusinessProjectRequest query) {
List<DeviceInfoVo> list = deviceBusinessProjectDeviceService.selectNotSelectDevice(query);
PageInfo pageInfo = new PageInfo<>(list);
PageSimpleResponse page = new PageSimpleResponse();
page.setTotal(pageInfo.getTotal());
page.setList(pageInfo.getList());
return ResultVOUtils.success(page);
}
@AuthRuleAnnotation("")
@PostMapping("/udi/device/businessProject/addDeviceProject")
public BaseResponse addDeviceProject(@RequestBody Map<String, Object> params) {
String sfxm = String.valueOf(params.get("sfxm"));
List<String> userListJson = (List<String>) params.get("deviceList");
if (StrUtil.isBlank(sfxm) || CollUtil.isEmpty(userListJson))
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
deviceBusinessProjectDeviceService.addDeviceProject(sfxm, userListJson);
return ResultVOUtils.success();
}
@AuthRuleAnnotation("")
@PostMapping("/udi/device/businessProject/deleteDeviceProject")
public BaseResponse deleteDeviceProject(@RequestBody DeviceBusinessProjectDevice deviceBusinessProjectDevice) {
if (null == deviceBusinessProjectDevice || deviceBusinessProjectDevice.getDeviceCode() == null) return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
deviceBusinessProjectDeviceService.deleteDeviceProject(deviceBusinessProjectDevice.getDeviceCode());
return ResultVOUtils.success();
}
}

@ -0,0 +1,18 @@
package com.glxp.api.dao.dev;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.dev.DeviceBusinessProjectDevice;
import com.glxp.api.entity.dev.DeviceInfoEntity;
import com.glxp.api.req.dev.DeviceBusinessProjectRequest;
import com.glxp.api.vo.dev.DeviceInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DeviceBusinessProjectDeviceMapper extends BaseMapper<DeviceBusinessProjectDevice> {
List<DeviceInfoVo> detailList(DeviceBusinessProjectRequest sfxm);
List<DeviceInfoVo> selectNotSelectDevice(DeviceBusinessProjectRequest query);
}

@ -0,0 +1,16 @@
package com.glxp.api.dao.dev;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.dev.DeviceBusinessProject;
import com.glxp.api.req.dev.DeviceBusinessProjectRequest;
import com.glxp.api.req.dev.DeviceCheckQuery;
import com.glxp.api.vo.dev.DeviceCheckVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface DeviceBusinessProjectMapper extends BaseMapper<DeviceBusinessProject> {
List<DeviceBusinessProject> pageVo(DeviceBusinessProjectRequest query);
}

@ -0,0 +1,124 @@
package com.glxp.api.entity.dev;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
@ApiModel(value="com-glxp-api-entity-dev-DeviceBusinessProject")
@Data
@TableName(value = "device_business_project")
public class DeviceBusinessProject implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="")
private Long id;
/**
*
*/
@TableField(value = "chargTime")
@ApiModelProperty(value="收费时间")
private Date chargTime;
/**
*
*/
@TableField(value = "sfxm")
@ApiModelProperty(value="收费项目")
private String sfxm;
/**
*
*/
@TableField(value = "sfmc")
@ApiModelProperty(value="收费名称")
private String sfmc;
/**
*
*/
@TableField(value = "je")
@ApiModelProperty(value="收费金额")
private BigDecimal je;
/**
* mz
*/
@TableField(value = "sfmz")
@ApiModelProperty(value="收费mz")
private String sfmz;
/**
*
*/
@TableField(value = "deptCode")
@ApiModelProperty(value="当前部门编码")
private String deptCode;
/**
*
*/
@TableField(value = "deptName")
@ApiModelProperty(value="当前部门编码")
private String deptName;
/**
*
*/
@TableField(value = "createUser")
@ApiModelProperty(value="创建人")
private String createUser;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateUser")
@ApiModelProperty(value="更新人")
private String updateUser;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value="更新时间")
private Date updateTime;
private static final long serialVersionUID = 1L;
public static final String COL_ID = "id";
public static final String COL_CHARGTIME = "chargTime";
public static final String COL_SFXM = "sfxm";
public static final String COL_SFMC = "sfmc";
public static final String COL_JE = "je";
public static final String COL_SFMZ = "sfmz";
public static final String COL_DEPTCODE = "deptCode";
public static final String COL_DEPTNAME = "deptName";
public static final String COL_CREATEUSER = "createUser";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATEUSER = "updateUser";
public static final String COL_UPDATETIME = "updateTime";
}

@ -0,0 +1,52 @@
package com.glxp.api.entity.dev;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* -
*/
@ApiModel(value="com-glxp-api-entity-dev-DeviceBusinessProjectDevice")
@Data
@TableName(value = "device_business_project_device")
public class DeviceBusinessProjectDevice implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="")
private Long id;
/**
*
*/
@TableField(value = "deviceCode")
@ApiModelProperty(value="设备编码")
private String deviceCode;
/**
*
*/
@TableField(value = "sfxm")
@ApiModelProperty(value="收费项目")
private String sfxm;
@TableField(value = "updateTime")
@ApiModelProperty(value="")
private Date updateTime;
private static final long serialVersionUID = 1L;
public static final String COL_ID = "id";
public static final String COL_DEVICECODE = "deviceCode";
public static final String COL_SFXM = "sfxm";
public static final String COL_UPDATETIME = "updateTime";
}

@ -0,0 +1,99 @@
package com.glxp.api.req.dev;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.glxp.api.util.page.ListPageRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class DeviceBusinessProjectRequest extends ListPageRequest {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="")
private Long id;
/**
*
*/
@TableField(value = "chargTime")
@ApiModelProperty(value="收费时间")
private Date chargTime;
/**
*
*/
@TableField(value = "sfxm")
@ApiModelProperty(value="收费项目")
private String sfxm;
/**
*
*/
@TableField(value = "sfmc")
@ApiModelProperty(value="收费名称")
private String sfmc;
/**
*
*/
@TableField(value = "je")
@ApiModelProperty(value="收费金额")
private BigDecimal je;
/**
* mz
*/
@TableField(value = "sfmz")
@ApiModelProperty(value="收费mz")
private String sfmz;
/**
*
*/
@TableField(value = "deptCode")
@ApiModelProperty(value="当前部门编码")
private String deptCode;
/**
*
*/
@TableField(value = "deptName")
@ApiModelProperty(value="当前部门编码")
private String deptName;
/**
*
*/
@TableField(value = "createUser")
@ApiModelProperty(value="创建人")
private String createUser;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateUser")
@ApiModelProperty(value="更新人")
private String updateUser;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value="更新时间")
private Date updateTime;
private String key;
}

@ -0,0 +1,62 @@
package com.glxp.api.service.thrsys;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.dev.DeviceBusinessProject;
import com.glxp.api.entity.dev.DeviceInfoEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.dev.DeviceBusinessProjectRequest;
import com.glxp.api.vo.dev.DeviceInfoVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.dev.DeviceBusinessProjectDevice;
import com.glxp.api.dao.dev.DeviceBusinessProjectDeviceMapper;
@Service
public class DeviceBusinessProjectDeviceService extends ServiceImpl<DeviceBusinessProjectDeviceMapper, DeviceBusinessProjectDevice> {
public List<DeviceInfoVo> detailList(DeviceBusinessProjectRequest query) {
if (query == null || StrUtil.isEmpty(query.getSfxm())){
throw new JsonException("收费项目编码不可为空");
}
if (query.getPage() != null) {
PageHelper.startPage(query.getPage(), query.getLimit());
}
List<DeviceInfoVo> list = this.baseMapper.detailList(query);
return list;
}
public List<DeviceInfoVo> selectNotSelectDevice(DeviceBusinessProjectRequest query) {
if (query == null || StrUtil.isEmpty(query.getSfxm())){
throw new JsonException("收费项目编码不可为空");
}
if (query.getPage() != null) {
PageHelper.startPage(query.getPage(), query.getLimit());
}
List<DeviceInfoVo> list = this.baseMapper.selectNotSelectDevice(query);
return list;
}
public void addDeviceProject(String sfxm, List<String> userList) {
if (CollUtil.isNotEmpty(userList)){
List<DeviceBusinessProjectDevice> objects = new ArrayList<>();
for (int i = 0; i < userList.size(); i++) {
String s = userList.get(i);
DeviceBusinessProjectDevice deviceBusinessProjectDevice = new DeviceBusinessProjectDevice();
deviceBusinessProjectDevice.setSfxm(sfxm);
deviceBusinessProjectDevice.setDeviceCode(s);
objects.add(deviceBusinessProjectDevice);
}
this.saveBatch(objects);
}
}
public void deleteDeviceProject(String getDeviceCode) {
remove(new LambdaQueryWrapper<DeviceBusinessProjectDevice>().eq(DeviceBusinessProjectDevice::getDeviceCode,getDeviceCode));
}
}

@ -0,0 +1,23 @@
package com.glxp.api.service.thrsys;
import com.github.pagehelper.PageHelper;
import com.glxp.api.req.dev.DeviceBusinessProjectRequest;
import com.glxp.api.vo.dev.DeviceCheckVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.dev.DeviceBusinessProjectMapper;
import com.glxp.api.entity.dev.DeviceBusinessProject;
@Service
public class DeviceBusinessProjectService extends ServiceImpl<DeviceBusinessProjectMapper, DeviceBusinessProject> {
public List<DeviceBusinessProject> pageList(DeviceBusinessProjectRequest query) {
if (query.getPage() != null) {
PageHelper.startPage(query.getPage(), query.getLimit());
}
List<DeviceBusinessProject> list = this.baseMapper.pageVo(query);
return list;
}
}

@ -0,0 +1,48 @@
<?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="com.glxp.api.dao.dev.DeviceBusinessProjectDeviceMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.dev.DeviceBusinessProjectDevice">
<!--@mbg.generated-->
<!--@Table device_business_project_device-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="deviceCode" jdbcType="VARCHAR" property="deviceCode" />
<result column="sfxm" jdbcType="VARCHAR" property="sfxm" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, deviceCode, sfxm, updateTime
</sql>
<select id="detailList" resultType="com.glxp.api.vo.dev.DeviceInfoVo">
select di.*
from device_business_project_device
left join device_info di on di.deviceCode = device_business_project_device.deviceCode
<where>
<if test="sfxm != null and sfxm != ''">
AND sfxm like concat('%', #{sfxm}, '%')
</if>
<if test="key != null and key != ''">
AND (
deviceCode like concat('%', #{key}, '%') OR productName like concat('%', #{key}, '%')
)
</if>
</where>
order by createTime desc
</select>
<select id="selectNotSelectDevice" resultType="com.glxp.api.vo.dev.DeviceInfoVo">
select device_info.*
from device_info
left join device_business_project_device on device_info.deviceCode = device_business_project_device.deviceCode
<where>
AND sfxm is null
<if test="key != null and key != ''">
AND (
deviceCode like concat('%', #{key}, '%') OR productName like concat('%', #{key}, '%')
)
</if>
</where>
order by createTime desc
</select>
</mapper>

@ -0,0 +1,41 @@
<?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="com.glxp.api.dao.dev.DeviceBusinessProjectMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.dev.DeviceBusinessProject">
<!--@mbg.generated-->
<!--@Table device_business_project-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="chargTime" jdbcType="TIMESTAMP" property="chargTime" />
<result column="sfxm" jdbcType="VARCHAR" property="sfxm" />
<result column="sfmc" jdbcType="VARCHAR" property="sfmc" />
<result column="je" jdbcType="DECIMAL" property="je" />
<result column="sfmz" jdbcType="VARCHAR" property="sfmz" />
<result column="deptCode" jdbcType="VARCHAR" property="deptCode" />
<result column="deptName" jdbcType="VARCHAR" property="deptName" />
<result column="createUser" jdbcType="VARCHAR" property="createUser" />
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
<result column="updateUser" jdbcType="VARCHAR" property="updateUser" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, chargTime, sfxm, sfmc, je, sfmz, deptCode, deptName, `createUser`, createTime,
updateUser, updateTime
</sql>
<select id="pageVo" resultType="com.glxp.api.entity.dev.DeviceBusinessProject">
select sfxm,sfmc
from device_business_project
<where>
<if test="sfmc != null and sfmc != ''">
AND sfmc like concat('%', #{sfmc}, '%')
</if>
<if test="deptName != null and deptName != ''">
AND deptName like concat('%', #{deptName}, '%')
</if>
</where>
group by sfxm,sfmc
order by createTime desc
</select>
</mapper>

@ -3993,3 +3993,43 @@ VALUES (46026, 102, '1', 1, 'profitNum', '盘盈数量', 'text', NULL, NULL, NUL
INSERT ignore INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`,
`buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, `dataFuc`, `isShowXx`)
VALUES (46027, 102, '1', 1, 'lossNum', '盘亏数量', 'text', NULL, NULL, NULL, 102, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT ignore INTO `auth_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`,
`visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (5235, '效益管理', 1703, 0, 'benefitManagement', NULL, NULL, 1, 0, 'M', '0', '0', NULL, NULL, '超级用户', '2023-02-08 17:01:50', NULL, NULL, NULL);
INSERT ignore INTO `auth_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`,
`visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (5236, '收费项目关系', 5235, 1, 'purchase/benefitManagement/projectRelationship', 'purchase/benefitManagement/projectRelationship', '', 1, 0, 'C', '0', '0', 'purchase:purApplyArgument:purApplyArgument', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL);
CREATE TABLE IF NOT EXISTS `device_business_project`
(
`id` bigint NOT NULL AUTO_INCREMENT,
`chargTime` datetime DEFAULT NULL COMMENT '收费时间',
`sfxm` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收费项目',
`sfmc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收费名称',
`je` decimal(10,3) DEFAULT NULL COMMENT '收费金额',
`sfmz` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收费mz',
`deptCode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前部门编码',
`deptName` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前部门编码',
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`updateUser` varchar(255) DEFAULT NULL COMMENT '更新人',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci
ROW_FORMAT = DYNAMIC COMMENT='设备收费项目表';
CREATE TABLE IF NOT EXISTS `device_business_project_device` (
`id` bigint NOT NULL AUTO_INCREMENT,
`deviceCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备编码',
`sfxm` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收费项目',
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='设备收费项目-设备关联表';
Loading…
Cancel
Save