24282 преди 11 месеца
родител
ревизия
f604b89fca

+ 71 - 0
jy-business/src/main/java/com/jy/business/corporation/controller/CorporationController.java

@@ -0,0 +1,71 @@
+package com.jy.business.corporation.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jy.business.corporation.model.dto.CorporationDto;
+import com.jy.business.corporation.model.dto.CorporationSelectDto;
+import com.jy.business.corporation.model.vo.CorporationVo;
+import com.jy.business.corporation.service.CorporationService;
+import com.jy.framework.model.base.BaseSelectDto;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.GetMapping;
+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;
+
+/**
+ * <p>
+ * 公司信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+@RestController
+@RequestMapping("/corporation")
+public class CorporationController {
+
+    @Resource
+    private CorporationService corporationService;
+
+    /**
+     * 公司信息分页
+     */
+    @GetMapping("/getPage")
+    public Page<CorporationVo> getPage(CorporationSelectDto dto) {
+        return corporationService.getPage(dto);
+    }
+
+    /**
+     * 公司信息明细
+     */
+    @GetMapping("/getDetail")
+    public CorporationVo getDetail(BaseSelectDto dto) {
+        return corporationService.getDetail(dto.getId());
+    }
+
+    /**
+     * 公司信息新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody CorporationDto dto) {
+        corporationService.add(dto);
+    }
+
+    /**
+     * 公司信息编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody CorporationDto dto) {
+        corporationService.edit(dto);
+    }
+
+    /**
+     * 公司信息删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        corporationService.delete(dto.getIdList());
+    }
+
+}

+ 52 - 0
jy-business/src/main/java/com/jy/business/corporation/dao/CorporationDao.java

@@ -0,0 +1,52 @@
+package com.jy.business.corporation.dao;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jy.business.corporation.mapper.CorporationMapper;
+import com.jy.business.corporation.model.dto.CorporationSelectDto;
+import com.jy.business.corporation.model.entity.Corporation;
+import com.jy.business.corporation.model.table.CorporationTable;
+import com.jy.business.corporation.model.vo.CorporationVo;
+import com.jy.framework.model.base.BaseDao;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CorporationDao extends BaseDao<CorporationMapper, Corporation> {
+
+    /**
+     * 公司信息分页
+     */
+    public Page<CorporationVo> getPage(CorporationSelectDto dto) {
+        CorporationTable c = CorporationTable.c;
+
+        return sql(CorporationVo.class)
+                .select(
+                        c.all
+                )
+                .from(c)
+                .where(
+
+                )
+                .orderBy(
+                    c.id.desc()
+                )
+                .page(dto.getPage());
+    }
+
+    /**
+     * 公司信息明细
+     */
+    public CorporationVo getDetail(Long id) {
+        CorporationTable c = CorporationTable.c;
+
+        return sql(CorporationVo.class)
+                .select(
+                        c.all
+                )
+                .from(c)
+                .where(
+                    c.id.eq(id)
+                )
+                .one();
+    }
+
+}

+ 16 - 0
jy-business/src/main/java/com/jy/business/corporation/mapper/CorporationMapper.java

@@ -0,0 +1,16 @@
+package com.jy.business.corporation.mapper;
+
+import com.jy.business.corporation.model.entity.Corporation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 公司信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+public interface CorporationMapper extends BaseMapper<Corporation> {
+
+}

+ 5 - 0
jy-business/src/main/java/com/jy/business/corporation/mapper/xml/CorporationMapper.xml

@@ -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="com.jy.business.corporation.mapper.CorporationMapper">
+
+</mapper>

+ 17 - 0
jy-business/src/main/java/com/jy/business/corporation/model/dto/CorporationDto.java

@@ -0,0 +1,17 @@
+package com.jy.business.corporation.model.dto;
+
+import com.jy.business.corporation.model.entity.Corporation;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 公司信息新增编辑入参实体
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+@Getter
+@Setter
+public class CorporationDto extends Corporation {
+
+}

+ 17 - 0
jy-business/src/main/java/com/jy/business/corporation/model/dto/CorporationSelectDto.java

@@ -0,0 +1,17 @@
+package com.jy.business.corporation.model.dto;
+
+import com.jy.framework.model.base.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 公司信息列表查询入参实体
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+@Getter
+@Setter
+public class CorporationSelectDto extends BaseSelectDto {
+
+}

+ 94 - 0
jy-business/src/main/java/com/jy/business/corporation/model/entity/Corporation.java

@@ -0,0 +1,94 @@
+package com.jy.business.corporation.model.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.jy.framework.model.base.BaseIdPo;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 公司信息
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+@Getter
+@Setter
+public class Corporation extends BaseIdPo {
+
+    /**
+     * 公司名称
+     */
+    private String name;
+
+    /**
+     * 企业类型
+     */
+    private Integer type;
+
+    /**
+     * 统一信用代码
+     */
+    private String uscCode;
+
+    /**
+     * 法定代表人
+     */
+    private String legalPersonName;
+
+    /**
+     * 注册资本
+     */
+    private String registeredCapital;
+
+    /**
+     * 纳税人资质
+     */
+    private String taxpayerQualification;
+
+    /**
+     * 公司电话
+     */
+    private String corporationNumber;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateUser;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * 逻辑删除标记
+     */
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private Long delFlag;
+
+}

+ 94 - 0
jy-business/src/main/java/com/jy/business/corporation/model/table/CorporationTable.java

@@ -0,0 +1,94 @@
+package com.jy.business.corporation.model.table;
+
+import com.jy.business.corporation.model.entity.Corporation;
+import com.jy.framework.mybatis.join.QueryColumn;
+import com.jy.framework.mybatis.join.Table;
+
+public class CorporationTable extends Table<Corporation> {
+
+    public static CorporationTable corporation = new CorporationTable();
+    public static CorporationTable c = corporation.as("c");
+
+    /**
+     * 公司id
+     */
+    public QueryColumn id = this.field(Corporation::getId);
+
+    /**
+     * 公司名称
+     */
+    public QueryColumn name = this.field(Corporation::getName);
+
+    /**
+     * 企业类型
+     */
+    public QueryColumn type = this.field(Corporation::getType);
+
+    /**
+     * 统一信用代码
+     */
+    public QueryColumn uscCode = this.field(Corporation::getUscCode);
+
+    /**
+     * 法定代表人
+     */
+    public QueryColumn legalPersonName = this.field(Corporation::getLegalPersonName);
+
+    /**
+     * 注册资本
+     */
+    public QueryColumn registeredCapital = this.field(Corporation::getRegisteredCapital);
+
+    /**
+     * 纳税人资质
+     */
+    public QueryColumn taxpayerQualification = this.field(Corporation::getTaxpayerQualification);
+
+    /**
+     * 公司电话
+     */
+    public QueryColumn corporationNumber = this.field(Corporation::getCorporationNumber);
+
+    /**
+     * 备注
+     */
+    public QueryColumn remark = this.field(Corporation::getRemark);
+
+    /**
+     * 创建人
+     */
+    public QueryColumn createUser = this.field(Corporation::getCreateUser);
+
+    /**
+     * 创建时间
+     */
+    public QueryColumn createTime = this.field(Corporation::getCreateTime);
+
+    /**
+     * 更新人
+     */
+    public QueryColumn updateUser = this.field(Corporation::getUpdateUser);
+
+    /**
+     * 更新时间
+     */
+    public QueryColumn updateTime = this.field(Corporation::getUpdateTime);
+
+    /**
+     * 逻辑删除标记
+     */
+    public QueryColumn delFlag = this.field(Corporation::getDelFlag);
+
+    private CorporationTable() {
+        super(Corporation.class);
+    }
+
+    private CorporationTable(String alias) {
+        super(Corporation.class, alias);
+    }
+
+    public CorporationTable as(String alias) {
+        return new CorporationTable(alias);
+    }
+
+}

+ 17 - 0
jy-business/src/main/java/com/jy/business/corporation/model/vo/CorporationVo.java

@@ -0,0 +1,17 @@
+package com.jy.business.corporation.model.vo;
+
+import com.jy.business.corporation.model.entity.Corporation;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 公司信息列表查询返回值实体
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+@Getter
+@Setter
+public class CorporationVo extends Corporation {
+
+}

+ 45 - 0
jy-business/src/main/java/com/jy/business/corporation/service/CorporationService.java

@@ -0,0 +1,45 @@
+package com.jy.business.corporation.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jy.business.corporation.model.dto.CorporationDto;
+import com.jy.business.corporation.model.dto.CorporationSelectDto;
+import com.jy.business.corporation.model.vo.CorporationVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公司信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+public interface CorporationService {
+
+    /**
+     * 公司信息分页
+     */
+    Page<CorporationVo> getPage(CorporationSelectDto dto);
+
+    /**
+     * 公司信息明细
+     */
+    CorporationVo getDetail(Long id);
+
+    /**
+     * 公司信息新增
+     */
+    void add(CorporationDto dto);
+
+    /**
+     * 公司信息编辑
+     */
+    void edit(CorporationDto dto);
+
+    /**
+     * 公司信息删除
+     */
+    void delete(List<Long> idList);
+
+}

+ 58 - 0
jy-business/src/main/java/com/jy/business/corporation/service/impl/CorporationServiceImpl.java

@@ -0,0 +1,58 @@
+package com.jy.business.corporation.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jy.business.corporation.dao.CorporationDao;
+import com.jy.business.corporation.model.dto.CorporationDto;
+import com.jy.business.corporation.model.dto.CorporationSelectDto;
+import com.jy.business.corporation.model.vo.CorporationVo;
+import com.jy.business.corporation.service.CorporationService;
+import com.jy.framework.utils.AssertUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公司信息 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-16
+ */
+@Service
+public class CorporationServiceImpl implements CorporationService {
+
+    @Resource
+    private CorporationDao corporationDao;
+
+    @Override
+    public Page<CorporationVo> getPage(CorporationSelectDto dto) {
+        return corporationDao.getPage(dto);
+    }
+
+    @Override
+    public CorporationVo getDetail(Long id) {
+        CorporationVo vo = corporationDao.getDetail(id);
+        AssertUtil.notNull(vo, "未知数据");
+        return vo;
+    }
+
+    @Override
+    public void add(CorporationDto dto) {
+        corporationDao.save(dto);
+    }
+
+    @Override
+    public void edit(CorporationDto dto) {
+        corporationDao.updateById(dto);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<Long> idList) {
+        corporationDao.removeBatchByIds(idList);
+    }
+
+}

+ 1 - 1
jy-generator/src/main/resources/templates/vue/index.vue.blt

@@ -111,7 +111,7 @@ onMounted(() => {
 
 function getPage() {
   getPageApi(queryData.value).then((resp) => {
-    tableData.value = resp.rows
+    tableData.value = resp.records
     pageTotal.value = resp.total
   })
 }

+ 27 - 0
jy-ui/src/api/business/corporation/corporation.ts

@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+import { PageType, StrAnyObj } from '@/typings'
+
+// 公司信息分页
+export function getPageApi(params: StrAnyObj): Promise<PageType<StrAnyObj>> {
+  return request.get('/corporation/getPage', params)
+}
+
+// 公司信息明细
+export function getDetailApi(params: StrAnyObj): Promise<StrAnyObj> {
+  return request.get('/corporation/getDetail', params)
+}
+
+// 公司信息新增
+export function addApi(data: StrAnyObj): Promise<void> {
+  return request.post('/corporation/add', data)
+}
+
+// 公司信息编辑
+export function editApi(data: StrAnyObj): Promise<void> {
+  return request.post('/corporation/edit', data)
+}
+
+// 公司信息删除
+export function deleteApi(data: StrAnyObj): Promise<void> {
+  return request.post('/corporation/delete', data)
+}

+ 255 - 0
jy-ui/src/views/business/corporation/index.vue

@@ -0,0 +1,255 @@
+<script setup lang="ts">
+import AForm from '@/components/AForm/index.vue'
+import { FormConfigType } from '@/components/AForm/type'
+import { ToolbarConfigType } from '@/components/AToolbar/type'
+import { ColumnConfigType } from '@/components/ATable/type'
+import { StrAnyObj, StrAnyObjArr } from '@/typings'
+import { useHandleData } from '@/utils/useHandleData'
+import { getPageApi, getDetailApi, addApi, editApi, deleteApi } from '@/api//business/corporation/corporation'
+
+const queryRef = ref<InstanceType<typeof AForm>>()
+const formRef = ref<InstanceType<typeof AForm>>()
+
+const showQuery = ref<boolean>(true)
+const selectKeys = ref<string[]>([])
+const pageTotal = ref<number>(0)
+
+const queryData = ref<StrAnyObj>({ pageNum: 1, pageSize: 10 })
+const tableData = ref<StrAnyObjArr>([])
+const formData = ref<StrAnyObj>({ })
+
+const dialogTitle = ref<string>('')
+const dialogVisible = ref<boolean>(false)
+
+const queryConfig: FormConfigType[] = [
+  {
+    type: 'input',
+    prop: 'name',
+    label: '公司名称'
+  },
+  {
+    type: 'select',
+    prop: 'type',
+    label: '企业类型',
+    dict: 'corporation_type'
+  },
+  {
+    type: 'input',
+    prop: 'uscCode',
+    label: '统一信用代码'
+  }
+]
+
+const toolbarConfig: ToolbarConfigType[] = [
+  {
+    common: 'search',
+    click() {
+      queryData.value.pageNum = 1
+      getPage()
+    }
+  },
+  {
+    common: 'reset',
+    click() {
+      queryRef.value?.resetFields()
+      getPage()
+    }
+  },
+  {
+    common: 'add',
+    click() {
+      dialogVisible.value = true
+      dialogTitle.value = '新增'
+    }
+  },
+  {
+    common: 'delete',
+    disabled() {
+      return selectKeys.value.length == 0
+    },
+    click() {
+      handleRemove(selectKeys.value)
+    }
+  }
+]
+
+const columnConfig: ColumnConfigType[] = [
+  {
+    prop: 'name',
+    label: '公司名称'
+  },
+  {
+    prop: 'type',
+    label: '企业类型',
+    dict: 'corporation_type'
+  },
+  {
+    prop: 'uscCode',
+    label: '统一信用代码'
+  },
+  {
+    prop: 'legalPersonName',
+    label: '法定代表人'
+  },
+  {
+    prop: 'registeredCapital',
+    label: '注册资本'
+  },
+  {
+    prop: 'taxpayerQualification',
+    label: '纳税人资质'
+  },
+  {
+    prop: 'corporationNumber',
+    label: '公司电话'
+  },
+  {
+    width: 250,
+    handleConfig: [
+      {
+        common: 'update',
+        click(row) {
+          dialogVisible.value = true
+          dialogTitle.value = '编辑'
+          getDetailApi({ id: row.id }).then((resp: StrAnyObj) => {
+            formData.value = resp
+          })
+        }
+      },
+      {
+        common: 'delete',
+        click(row) {
+          handleRemove([row.id])
+        }
+      }
+    ]
+  }
+]
+
+const formConfig: FormConfigType[] = [
+  {
+    type: 'input',
+    prop: 'name',
+    label: '公司名称',
+    rule: [{ required: true, message: '公司名称不能为空', trigger: 'blur' }]
+  },
+  {
+    type: 'select',
+    prop: 'type',
+    label: '企业类型',
+    dict: 'corporation_type',
+    rule: [{ required: true, message: '企业类型不能为空', trigger: 'blur' }]
+  },
+  {
+    type: 'input',
+    prop: 'uscCode',
+    label: '统一信用代码',
+    rule: [{ required: true, message: '统一信用代码不能为空', trigger: 'blur' }]
+  },
+  {
+    type: 'input',
+    prop: 'legalPersonName',
+    label: '法定代表人',
+  },
+  {
+    type: 'input',
+    prop: 'registeredCapital',
+    label: '注册资本',
+  },
+  {
+    type: 'input',
+    prop: 'taxpayerQualification',
+    label: '纳税人资质',
+  },
+  {
+    type: 'input',
+    prop: 'corporationNumber',
+    label: '公司电话',
+  },
+  {
+    type: 'input',
+    itemType: 'textarea',
+    prop: 'remark',
+    label: '备注',
+    rows: 3
+  }
+]
+
+onMounted(() => {
+  getPage()
+})
+
+function getPage() {
+  getPageApi(queryData.value).then((resp) => {
+    tableData.value = resp.records
+    pageTotal.value = resp.total
+  })
+}
+
+function tableSelectionChange(item: StrAnyObjArr) {
+  selectKeys.value = item.map((item) => item.id)
+}
+
+function formSubmit() {
+  formRef.value?.validate(() => {
+    if (formData.value.id) {
+      editApi(formData.value).then(() => {
+        dialogVisible.value = false
+        ElMessage.success('修改成功')
+        getPage()
+      })
+    } else {
+      addApi(formData.value).then(() => {
+        dialogVisible.value = false
+        ElMessage.success('新增成功')
+        getPage()
+      })
+    }
+  })
+}
+
+function formClosed() {
+  formRef.value?.resetFields()
+}
+
+function handleRemove(idList: string[]) {
+  useHandleData('是否确认删除?', () => {
+    deleteApi({ idList }).then(() => {
+      ElMessage.success('删除成功')
+      getPage()
+    })
+  })
+}
+</script>
+
+<template>
+  <div>
+    <el-card v-if="showQuery">
+      <a-form ref="queryRef" v-model="queryData" :config="queryConfig" :span="6"> </a-form>
+    </el-card>
+
+    <a-table
+      selection
+      :data="tableData"
+      :page-total="pageTotal"
+      :toolbar-config="toolbarConfig"
+      :column-config="columnConfig"
+      v-model:showQuery="showQuery"
+      v-model:page-num="queryData.pageNum"
+      v-model:page-size="queryData.pageSize"
+      @page-num-change="getPage"
+      @page-size-change="getPage"
+      @selection-change="tableSelectionChange"
+    >
+    </a-table>
+
+    <a-dialog
+      v-model="dialogVisible"
+      :title="dialogTitle"
+      @submit="formSubmit"
+      @closed="formClosed"
+    >
+      <a-form ref="formRef" v-model="formData" :config="formConfig" :span="24"> </a-form>
+    </a-dialog>
+  </div>
+</template>