From dc365b683db65a47f133cccabd9be09d935f5285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=93=E7=84=B1?= Date: Sun, 25 Aug 2019 23:15:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=B3=E7=A8=8E=E4=BA=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/pom.xml | 5 + .../controller/BssTaxinfoController.java | 122 ++++++ .../business/validator/BssTaxinfoValid.java | 22 + .../system/controller/RoleController.java | 1 - admin/src/main/resources/application.yml | 4 +- .../templates/business/taxinfo/add.html | 47 +++ .../templates/business/taxinfo/detail.html | 35 ++ .../templates/business/taxinfo/index.html | 76 ++++ .../modules/business/domain/BssGoods.java | 62 +++ .../modules/business/domain/BssTaxinfo.java | 53 +++ .../repository/BssGoodsRepository.java | 11 + .../repository/BssTaxinfoRepository.java | 11 + .../business/service/BssGoodsService.java | 41 ++ .../business/service/BssTaxinfoService.java | 41 ++ .../service/impl/BssGoodsServiceImpl.java | 66 +++ .../service/impl/BssTaxinfoServiceImpl.java | 66 +++ .../system/service/impl/UserServiceImpl.java | 4 +- sdoc/cwhelp.sql | 375 ++++++++++++++---- sdoc/~$发票形成会计凭证类.docx | Bin 0 -> 162 bytes sdoc/~$设计.docx | Bin 0 -> 162 bytes sdoc/应用环境.xlsx | Bin 10612 -> 10764 bytes 21 files changed, 952 insertions(+), 90 deletions(-) create mode 100644 admin/src/main/java/com/cwhelp/admin/business/controller/BssTaxinfoController.java create mode 100644 admin/src/main/java/com/cwhelp/admin/business/validator/BssTaxinfoValid.java create mode 100644 admin/src/main/resources/templates/business/taxinfo/add.html create mode 100644 admin/src/main/resources/templates/business/taxinfo/detail.html create mode 100644 admin/src/main/resources/templates/business/taxinfo/index.html create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/domain/BssGoods.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/domain/BssTaxinfo.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/repository/BssGoodsRepository.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/repository/BssTaxinfoRepository.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/service/BssGoodsService.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/service/BssTaxinfoService.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssGoodsServiceImpl.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssTaxinfoServiceImpl.java create mode 100644 sdoc/~$发票形成会计凭证类.docx create mode 100644 sdoc/~$设计.docx diff --git a/admin/pom.xml b/admin/pom.xml index 6bc701c..b140f53 100644 --- a/admin/pom.xml +++ b/admin/pom.xml @@ -56,6 +56,11 @@ bss ${project.version} + + com.cwhelp.modules + bss + ${project.version} + diff --git a/admin/src/main/java/com/cwhelp/admin/business/controller/BssTaxinfoController.java b/admin/src/main/java/com/cwhelp/admin/business/controller/BssTaxinfoController.java new file mode 100644 index 0000000..591786c --- /dev/null +++ b/admin/src/main/java/com/cwhelp/admin/business/controller/BssTaxinfoController.java @@ -0,0 +1,122 @@ +package com.cwhelp.admin.business.controller; + +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.common.utils.EntityBeanUtil; +import com.cwhelp.common.utils.ResultVoUtil; +import com.cwhelp.common.utils.StatusUtil; +import com.cwhelp.common.vo.ResultVo; +import com.cwhelp.component.shiro.ShiroUtil; +import com.cwhelp.modules.business.domain.BssTaxinfo; +import com.cwhelp.modules.business.service.BssTaxinfoService; +import com.cwhelp.admin.business.validator.BssTaxinfoValid; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author yan.y + * @date 2019/08/16 + */ +@Controller +@RequestMapping("/bss/taxinfo") +public class BssTaxinfoController { + + @Autowired + private BssTaxinfoService bssTaxinfoService; + + /** + * 列表页面 + */ + @GetMapping("/index") + @RequiresPermissions("bss:taxinfo:index") + public String index(Model model, BssTaxinfo bssTaxinfo) { + + // 创建匹配器,进行动态查询匹配 + ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("platformId",match -> match.contains()); + + bssTaxinfo.setPlatformId(ShiroUtil.getSubject().getBssPlatform().getId()); + // 获取数据列表 + Example example = Example.of(bssTaxinfo, matcher); + Page list = bssTaxinfoService.getPageList(example); + + // 封装数据 + model.addAttribute("list", list.getContent()); + model.addAttribute("page", list); + return "/business/taxinfo/index"; + } + + /** + * 跳转到添加页面 + */ + @GetMapping("/add") + @RequiresPermissions("bss:taxinfo:add") + public String toAdd() { + return "/business/taxinfo/add"; + } + + /** + * 跳转到编辑页面 + */ + @GetMapping("/edit/{id}") + @RequiresPermissions("bss:taxinfo:edit") + public String toEdit(@PathVariable("id") BssTaxinfo bssTaxinfo, Model model) { + model.addAttribute("bssTaxinfo", bssTaxinfo); + return "/business/taxinfo/add"; + } + + /** + * 保存添加/修改的数据 + * @param valid 验证对象 + */ + @PostMapping({"/add","/edit"}) + @RequiresPermissions({"bss:taxinfo:add","bss:taxinfo:edit"}) + @ResponseBody + public ResultVo save(@Validated BssTaxinfoValid valid, BssTaxinfo bssTaxinfo) { + bssTaxinfo.setPlatformId(ShiroUtil.getSubject().getBssPlatform().getId()); + // 复制保留无需修改的数据 + if (bssTaxinfo.getId() != null) { + BssTaxinfo beBssTaxinfo = bssTaxinfoService.getById(bssTaxinfo.getId()); + EntityBeanUtil.copyProperties(beBssTaxinfo, bssTaxinfo); + } + + // 保存数据 + bssTaxinfoService.save(bssTaxinfo); + return ResultVoUtil.SAVE_SUCCESS; + } + + /** + * 跳转到详细页面 + */ + @GetMapping("/detail/{id}") + @RequiresPermissions("bss:taxinfo:detail") + public String toDetail(@PathVariable("id") BssTaxinfo bssTaxinfo, Model model) { + model.addAttribute("bssTaxinfo",bssTaxinfo); + return "/business/taxinfo/detail"; + } + + /** + * 设置一条或者多条数据的状态 + */ + @RequestMapping("/status/{param}") + @RequiresPermissions("bss:taxinfo:status") + @ResponseBody + public ResultVo status( + @PathVariable("param") String param, + @RequestParam(value = "ids", required = false) List ids) { + // 更新状态 + StatusEnum statusEnum = StatusUtil.getStatusEnum(param); + if (bssTaxinfoService.updateStatus(statusEnum, ids)) { + return ResultVoUtil.success(statusEnum.getMessage() + "成功"); + } else { + return ResultVoUtil.error(statusEnum.getMessage() + "失败,请重新操作"); + } + } +} \ No newline at end of file diff --git a/admin/src/main/java/com/cwhelp/admin/business/validator/BssTaxinfoValid.java b/admin/src/main/java/com/cwhelp/admin/business/validator/BssTaxinfoValid.java new file mode 100644 index 0000000..c8286e9 --- /dev/null +++ b/admin/src/main/java/com/cwhelp/admin/business/validator/BssTaxinfoValid.java @@ -0,0 +1,22 @@ +package com.cwhelp.admin.business.validator; + +import lombok.Data; + +import java.io.Serializable; +import javax.validation.constraints.NotEmpty; + +/** + * @author yan.y + * @date 2019/08/16 + */ +@Data +public class BssTaxinfoValid implements Serializable { + @NotEmpty(message = "纳税人识别号不能为空") + private String taxNo; + @NotEmpty(message = "开户行及账号不能为空") + private String account; + @NotEmpty(message = "地址、电话不能为空") + private String addressPhone; + @NotEmpty(message = "名称不能为空") + private String name; +} \ No newline at end of file diff --git a/admin/src/main/java/com/cwhelp/admin/system/controller/RoleController.java b/admin/src/main/java/com/cwhelp/admin/system/controller/RoleController.java index f98d8ce..fcdf0c6 100644 --- a/admin/src/main/java/com/cwhelp/admin/system/controller/RoleController.java +++ b/admin/src/main/java/com/cwhelp/admin/system/controller/RoleController.java @@ -81,7 +81,6 @@ public class RoleController { * 跳转到角色分配页面 */ @GetMapping("/rolePage") - @RequiresPermissions("system:user:role") public String toRole(@RequestParam(value = "ids") BssEmployee bssEmployee, Model model) { User user = userService.getByName(bssEmployee.getPhoneNum()); if (ObjectUtils.isEmpty(user)) { diff --git a/admin/src/main/resources/application.yml b/admin/src/main/resources/application.yml index ab38e13..70fdec8 100644 --- a/admin/src/main/resources/application.yml +++ b/admin/src/main/resources/application.yml @@ -16,9 +16,9 @@ spring: ## 数据库配置 datasource: driver-class-name: com.mysql.jdbc.Driver - url: jdbc:mysql://139.196.24.156:3306/cwhelp?useSSL=false&characterEncoding=utf-8 + url: jdbc:mysql://47.102.154.191:3306/cwhelp_test?useSSL=false&characterEncoding=utf-8 username: root - password: ifish7mysql + password: LABcwmysql devtools: restart: enabled: true diff --git a/admin/src/main/resources/templates/business/taxinfo/add.html b/admin/src/main/resources/templates/business/taxinfo/add.html new file mode 100644 index 0000000..ee24b6f --- /dev/null +++ b/admin/src/main/resources/templates/business/taxinfo/add.html @@ -0,0 +1,47 @@ + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + \ No newline at end of file diff --git a/admin/src/main/resources/templates/business/taxinfo/detail.html b/admin/src/main/resources/templates/business/taxinfo/detail.html new file mode 100644 index 0000000..b905eef --- /dev/null +++ b/admin/src/main/resources/templates/business/taxinfo/detail.html @@ -0,0 +1,35 @@ + + + + + +
+
基本信息
+ + + + + + + + + + + + + + + + + + + + + + + +
名称纳税人识别号
开户行及账号地址及电话
备注
+
+ + + \ No newline at end of file diff --git a/admin/src/main/resources/templates/business/taxinfo/index.html b/admin/src/main/resources/templates/business/taxinfo/index.html new file mode 100644 index 0000000..5697823 --- /dev/null +++ b/admin/src/main/resources/templates/business/taxinfo/index.html @@ -0,0 +1,76 @@ + + + + + +
+
+ 纳税人信息管理 + +
+
+
+ +
+ +
+ +
+
启用
+
冻结
+
删除
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + 名称纳税人识别号开户行及账号地址及电话操作
名称纳税人识别号开户行及账号地址及电话 + 编辑 + 详细 + 删除 +
+
+
+
+
+ + + \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/domain/BssGoods.java b/modules/system/src/main/java/com/cwhelp/modules/business/domain/BssGoods.java new file mode 100644 index 0000000..54f3dc0 --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/domain/BssGoods.java @@ -0,0 +1,62 @@ +package com.cwhelp.modules.business.domain; + +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.common.utils.StatusUtil; +import lombok.Data; +import org.hibernate.annotations.Where; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import javax.persistence.Entity; +import javax.persistence.EntityListeners; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * @author yan.y + * @date 2019/08/16 + */ +@Data +@Entity +@Table(name="bss_goods") +@EntityListeners(AuditingEntityListener.class) +@Where(clause = StatusUtil.notDelete) +public class BssGoods implements Serializable { + // 主键ID + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private Long id; + private String name; + // 货物代码 + private String code; + // 数量 + private Integer num; + // 细节金额 + private BigDecimal detail_amount; + // 税额 + private BigDecimal tax_amount; + // 税率 + private String tax_rate; + // 单位 + private String unit; + // 单价 + private String unit_price; + // 规格型号 + private String specification; + // 增值税 + private Integer vat_invoice_id; + // 创建时间 + @CreatedDate + private Date createDate; + // 更新时间 + @LastModifiedDate + private Date updateDate; + // 数据状态 + private Byte status = StatusEnum.OK.getCode(); +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/domain/BssTaxinfo.java b/modules/system/src/main/java/com/cwhelp/modules/business/domain/BssTaxinfo.java new file mode 100644 index 0000000..a7369d0 --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/domain/BssTaxinfo.java @@ -0,0 +1,53 @@ +package com.cwhelp.modules.business.domain; + +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.common.utils.StatusUtil; +import lombok.Data; +import org.hibernate.annotations.Where; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import java.io.Serializable; +import java.util.Date; +import java.util.concurrent.ConcurrentHashMap; +import javax.persistence.*; + +/** + * @author yan.y + * @date 2019/08/16 + */ +@Data +@Entity +@Table(name="bss_taxinfo") +@EntityListeners(AuditingEntityListener.class) +@Where(clause = StatusUtil.notDelete) +public class BssTaxinfo implements Serializable { + // 主键ID + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private Long id; + // 纳税人识别号 + @Column(name = "tax_no") + private String taxNo; + // 开户行及账号 + private String account; + // 地址、电话 + @Column(name = "address_phone") + private String addressPhone; + private String name; + // 备注 + private String remark; + // 创建时间 + @CreatedDate + private Date createDate; + // 更新时间 + @LastModifiedDate + private Date updateDate; + + @Column(name = "bss_platform_id") + private Long platformId; + + // 数据状态 + private Byte status = StatusEnum.OK.getCode(); +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/repository/BssGoodsRepository.java b/modules/system/src/main/java/com/cwhelp/modules/business/repository/BssGoodsRepository.java new file mode 100644 index 0000000..cca5a5d --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/repository/BssGoodsRepository.java @@ -0,0 +1,11 @@ +package com.cwhelp.modules.business.repository; + +import com.cwhelp.modules.business.domain.BssGoods; +import com.cwhelp.modules.system.repository.BaseRepository; + +/** + * @author yan.y + * @date 2019/08/16 + */ +public interface BssGoodsRepository extends BaseRepository { +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/repository/BssTaxinfoRepository.java b/modules/system/src/main/java/com/cwhelp/modules/business/repository/BssTaxinfoRepository.java new file mode 100644 index 0000000..ee9f04d --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/repository/BssTaxinfoRepository.java @@ -0,0 +1,11 @@ +package com.cwhelp.modules.business.repository; + +import com.cwhelp.modules.business.domain.BssTaxinfo; +import com.cwhelp.modules.system.repository.BaseRepository; + +/** + * @author yan.y + * @date 2019/08/16 + */ +public interface BssTaxinfoRepository extends BaseRepository { +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/service/BssGoodsService.java b/modules/system/src/main/java/com/cwhelp/modules/business/service/BssGoodsService.java new file mode 100644 index 0000000..a59ad26 --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/service/BssGoodsService.java @@ -0,0 +1,41 @@ +package com.cwhelp.modules.business.service; + +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.modules.business.domain.BssGoods; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author yan.y + * @date 2019/08/16 + */ +public interface BssGoodsService { + + /** + * 获取分页列表数据 + * @param example 查询实例 + * @return 返回分页数据 + */ + Page getPageList(Example example); + + /** + * 根据ID查询数据 + * @param id 主键ID + */ + BssGoods getById(Long id); + + /** + * 保存数据 + * @param bssGoods 实体对象 + */ + BssGoods save(BssGoods bssGoods); + + /** + * 状态(启用,冻结,删除)/批量状态处理 + */ + @Transactional + Boolean updateStatus(StatusEnum statusEnum, List idList); +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/service/BssTaxinfoService.java b/modules/system/src/main/java/com/cwhelp/modules/business/service/BssTaxinfoService.java new file mode 100644 index 0000000..bda4b8f --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/service/BssTaxinfoService.java @@ -0,0 +1,41 @@ +package com.cwhelp.modules.business.service; + +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.modules.business.domain.BssTaxinfo; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author yan.y + * @date 2019/08/16 + */ +public interface BssTaxinfoService { + + /** + * 获取分页列表数据 + * @param example 查询实例 + * @return 返回分页数据 + */ + Page getPageList(Example example); + + /** + * 根据ID查询数据 + * @param id 主键ID + */ + BssTaxinfo getById(Long id); + + /** + * 保存数据 + * @param bssTaxinfo 实体对象 + */ + BssTaxinfo save(BssTaxinfo bssTaxinfo); + + /** + * 状态(启用,冻结,删除)/批量状态处理 + */ + @Transactional + Boolean updateStatus(StatusEnum statusEnum, List idList); +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssGoodsServiceImpl.java b/modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssGoodsServiceImpl.java new file mode 100644 index 0000000..62a9cf3 --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssGoodsServiceImpl.java @@ -0,0 +1,66 @@ +package com.cwhelp.modules.business.service.impl; + +import com.cwhelp.common.data.PageSort; +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.modules.business.domain.BssGoods; +import com.cwhelp.modules.business.repository.BssGoodsRepository; +import com.cwhelp.modules.business.service.BssGoodsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author yan.y + * @date 2019/08/16 + */ +@Service +public class BssGoodsServiceImpl implements BssGoodsService { + + @Autowired + private BssGoodsRepository bssGoodsRepository; + + /** + * 根据ID查询数据 + * @param id 主键ID + */ + @Override + @Transactional + public BssGoods getById(Long id) { + return bssGoodsRepository.findById(id).orElse(null); + } + + /** + * 获取分页列表数据 + * @param example 查询实例 + * @return 返回分页数据 + */ + @Override + public Page getPageList(Example example) { + // 创建分页对象 + PageRequest page = PageSort.pageRequest(); + return bssGoodsRepository.findAll(example, page); + } + + /** + * 保存数据 + * @param bssGoods 实体对象 + */ + @Override + public BssGoods save(BssGoods bssGoods) { + return bssGoodsRepository.save(bssGoods); + } + + /** + * 状态(启用,冻结,删除)/批量状态处理 + */ + @Override + @Transactional + public Boolean updateStatus(StatusEnum statusEnum, List idList) { + return bssGoodsRepository.updateStatus(statusEnum.getCode(), idList) > 0; + } +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssTaxinfoServiceImpl.java b/modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssTaxinfoServiceImpl.java new file mode 100644 index 0000000..5830790 --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/business/service/impl/BssTaxinfoServiceImpl.java @@ -0,0 +1,66 @@ +package com.cwhelp.modules.business.service.impl; + +import com.cwhelp.common.data.PageSort; +import com.cwhelp.common.enums.StatusEnum; +import com.cwhelp.modules.business.domain.BssTaxinfo; +import com.cwhelp.modules.business.repository.BssTaxinfoRepository; +import com.cwhelp.modules.business.service.BssTaxinfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author yan.y + * @date 2019/08/16 + */ +@Service +public class BssTaxinfoServiceImpl implements BssTaxinfoService { + + @Autowired + private BssTaxinfoRepository bssTaxinfoRepository; + + /** + * 根据ID查询数据 + * @param id 主键ID + */ + @Override + @Transactional + public BssTaxinfo getById(Long id) { + return bssTaxinfoRepository.findById(id).orElse(null); + } + + /** + * 获取分页列表数据 + * @param example 查询实例 + * @return 返回分页数据 + */ + @Override + public Page getPageList(Example example) { + // 创建分页对象 + PageRequest page = PageSort.pageRequest(); + return bssTaxinfoRepository.findAll(example, page); + } + + /** + * 保存数据 + * @param bssTaxinfo 实体对象 + */ + @Override + public BssTaxinfo save(BssTaxinfo bssTaxinfo) { + return bssTaxinfoRepository.save(bssTaxinfo); + } + + /** + * 状态(启用,冻结,删除)/批量状态处理 + */ + @Override + @Transactional + public Boolean updateStatus(StatusEnum statusEnum, List idList) { + return bssTaxinfoRepository.updateStatus(statusEnum.getCode(), idList) > 0; + } +} \ No newline at end of file diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java index 0113548..534fcde 100644 --- a/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java @@ -110,8 +110,8 @@ public class UserServiceImpl implements UserService { deptIn.forEach(in::value); preList.add(in); } - // 1 为财务帮平台超级账号 - if (AdminConst.ADMIN_PLATFORM_ID.equals(user.getBssPlatform().getId())) { + // 如果不是平台账号则限制平台ID查询账号信息 + if (!AdminConst.ADMIN_PLATFORM_ID.equals(user.getBssPlatform().getId())) { BssPlatform bssPlatform = user.getBssPlatform(); Join join = root.join("bssPlatform", JoinType.INNER); Predicate eq = cb.equal(join.get("id").as(Long.class),bssPlatform.getId()); diff --git a/sdoc/cwhelp.sql b/sdoc/cwhelp.sql index 5ee5640..3a67ecd 100644 --- a/sdoc/cwhelp.sql +++ b/sdoc/cwhelp.sql @@ -1,20 +1,144 @@ /* Navicat MySQL Data Transfer -Source Server : ifish_local -Source Server Version : 50643 -Source Host : localhost:3306 +Source Server : ifish_test +Source Server Version : 50630 +Source Host : 139.196.24.156:3306 Source Database : cwhelp Target Server Type : MYSQL -Target Server Version : 50643 +Target Server Version : 50630 File Encoding : 65001 -Date: 2019-07-29 00:38:33 +Date: 2019-08-16 00:09:39 */ SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for bss_dept +-- ---------------------------- +DROP TABLE IF EXISTS `bss_dept`; +CREATE TABLE `bss_dept` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '部门名称', + `description` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '描述', + `platform_id` bigint(20) DEFAULT NULL COMMENT '平台ID', + `create_date` datetime DEFAULT NULL COMMENT '创建时间', + `update_date` datetime DEFAULT NULL COMMENT '更新时间', + `create_by` bigint(20) DEFAULT NULL COMMENT '创建用户', + `update_by` bigint(20) DEFAULT NULL COMMENT '更新用户', + `status` tinyint(4) DEFAULT NULL COMMENT '状态(1:正常,2:冻结,3:删除)', + `remark` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`), + KEY `bss_dept_ibfk_1` (`create_by`), + KEY `bss_dept_ibfk_2` (`update_by`), + KEY `bss_dept_ibfk_3` (`platform_id`), + CONSTRAINT `bss_dept_ibfk_1` FOREIGN KEY (`create_by`) REFERENCES `sys_user` (`id`), + CONSTRAINT `bss_dept_ibfk_2` FOREIGN KEY (`update_by`) REFERENCES `sys_user` (`id`), + CONSTRAINT `bss_dept_ibfk_3` FOREIGN KEY (`platform_id`) REFERENCES `bss_platform` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- ---------------------------- +-- Records of bss_dept +-- ---------------------------- +INSERT INTO `bss_dept` VALUES ('1', '系统部', '系统部', '2', '2019-07-30 00:14:36', '2019-07-30 18:18:08', '1', '1', '1', '系统部'); +INSERT INTO `bss_dept` VALUES ('2', '业务部', '业务部', '1', '2019-08-01 23:36:41', '2019-08-01 23:36:41', '1', '1', '1', '业务部'); + +-- ---------------------------- +-- Table structure for bss_employee +-- ---------------------------- +DROP TABLE IF EXISTS `bss_employee`; +CREATE TABLE `bss_employee` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '员工名称', + `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID', + `position` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '职位', + `phone_num` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '手机号码', + `card` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '身份证号码', + `email` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '邮箱', + `sex` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '性别', + `education` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '学历', + `create_date` datetime DEFAULT NULL COMMENT '创建时间', + `update_date` datetime DEFAULT NULL COMMENT '更新时间', + `create_by` bigint(20) DEFAULT NULL COMMENT '创建用户', + `update_by` bigint(20) DEFAULT NULL COMMENT '更新用户', + `status` tinyint(4) DEFAULT NULL COMMENT '状态(1:正常,2:冻结,3:删除)', + `remark` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`), + KEY `bss_employee_ibfk_1` (`dept_id`), + KEY `bss_employee_ibfk_2` (`create_by`), + KEY `bss_employee_ibfk_3` (`update_by`), + CONSTRAINT `bss_employee_ibfk_1` FOREIGN KEY (`dept_id`) REFERENCES `bss_dept` (`id`), + CONSTRAINT `bss_employee_ibfk_2` FOREIGN KEY (`create_by`) REFERENCES `sys_user` (`id`), + CONSTRAINT `bss_employee_ibfk_3` FOREIGN KEY (`update_by`) REFERENCES `sys_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- ---------------------------- +-- Records of bss_employee +-- ---------------------------- +INSERT INTO `bss_employee` VALUES ('1', '易焱', '2', '业务员', '18521303582', '430621199508207711', 'thelongcode@163.com', '1', '4', '2019-08-01 23:47:29', '2019-08-01 23:52:02', '1', '1', '1', ''); +INSERT INTO `bss_employee` VALUES ('2', '易焱1', '1', '系统管理员', '18521303581', '430621199508207711', 'thelongcode@163.com', '1', '5', '2019-08-02 01:06:28', '2019-08-02 01:06:28', '8', '8', '1', ''); +INSERT INTO `bss_employee` VALUES ('3', '测试用户', '2', '业务员', '13721775488', '430621198401224475', '535709395@qq.com', '1', '5', '2019-08-05 20:49:29', '2019-08-05 20:49:29', '1', '1', '1', ''); + +-- ---------------------------- +-- Table structure for bss_enterprise +-- ---------------------------- +DROP TABLE IF EXISTS `bss_enterprise`; +CREATE TABLE `bss_enterprise` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '名称', + `name` varchar(255) COLLATE utf8_bin DEFAULT NULL, + `credit_code` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '统一社会信用代码', + `platform_id` bigint(20) DEFAULT NULL COMMENT '所属平台', + `location` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '所在地', + `industry` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '行业', + `vat_type` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '增值税种类(1:小规模纳税人 2:一般纳税人)', + `accounting_standards` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '会计准则(1:小企业会计准则 2:企业会计准则 3:民间非营利组织会计制度)', + `create_date` datetime DEFAULT NULL COMMENT '创建时间', + `update_date` datetime DEFAULT NULL COMMENT '更新时间', + `create_by` bigint(20) DEFAULT NULL COMMENT '创建用户', + `update_by` bigint(20) DEFAULT NULL COMMENT '更新用户', + `status` tinyint(4) DEFAULT NULL COMMENT '状态(1:正常,2:冻结,3:删除)', + `remark` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`), + KEY `bss_enterprise__ibfk_1` (`platform_id`), + KEY `bss_enterprise__ibfk_2` (`create_by`), + KEY `bss_enterprise__ibfk_3` (`update_by`), + CONSTRAINT `bss_enterprise__ibfk_1` FOREIGN KEY (`platform_id`) REFERENCES `bss_platform` (`id`), + CONSTRAINT `bss_enterprise__ibfk_2` FOREIGN KEY (`create_by`) REFERENCES `sys_user` (`id`), + CONSTRAINT `bss_enterprise__ibfk_3` FOREIGN KEY (`update_by`) REFERENCES `sys_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- ---------------------------- +-- Records of bss_enterprise +-- ---------------------------- +INSERT INTO `bss_enterprise` VALUES ('1', '爱鱼奇科技有限公司', '224877755446', '1', '上海市', '智能硬件', '2', '1', '2019-08-06 23:03:22', '2019-08-06 23:05:21', '1', '1', '1', ''); +INSERT INTO `bss_enterprise` VALUES ('2', '爱鱼奇科技有限公司1', '22487775544645', '1', '上海市', '智能硬件', '1', '2', '2019-08-06 23:22:53', '2019-08-06 23:22:53', '1', '1', '3', ''); +INSERT INTO `bss_enterprise` VALUES ('3', '爱鱼奇科技有限公司', '224877755446', '1', '上海市', '智能硬件', '1', '1', '2019-08-06 23:30:50', '2019-08-06 23:30:50', '1', '1', '3', ''); +INSERT INTO `bss_enterprise` VALUES ('4', '爱鱼奇科技有限公司1', '2248777554463', '1', '上海市', '智能硬件', '2', '1', '2019-08-06 23:33:36', '2019-08-06 23:36:26', '1', '1', '1', ''); + +-- ---------------------------- +-- Table structure for bss_goods +-- ---------------------------- +DROP TABLE IF EXISTS `bss_goods`; +CREATE TABLE `bss_goods` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '货物名称', + `code` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '货物代码', + `num` int(11) DEFAULT NULL COMMENT '数量', + `detail_amount` decimal(10,2) DEFAULT NULL COMMENT '细节金额', + `tax_amount` decimal(10,2) DEFAULT NULL COMMENT '税额', + `tax_rate` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '税率', + `unit` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '单位', + `unit_price` decimal(10,2) DEFAULT NULL COMMENT '单价', + `specification` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '规格型号', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- ---------------------------- +-- Records of bss_goods +-- ---------------------------- + -- ---------------------------- -- Table structure for bss_platform -- ---------------------------- @@ -44,7 +168,48 @@ CREATE TABLE `bss_platform` ( -- Records of bss_platform -- ---------------------------- INSERT INTO `bss_platform` VALUES ('1', '财务帮', '易焱', '18521303581', '430621199508207711', 'thelongcode@163.com', '1', '2019-07-28 22:13:21', '2019-07-29 00:03:40', '1', '1', '1', ''); -INSERT INTO `bss_platform` VALUES ('2', '易焱工作室', '易焱', '18521303581', '430621199508207711', 'thelongcode@163.com', '2', '2019-07-29 00:09:57', '2019-07-29 00:09:57', '1', '1', '1', ''); +INSERT INTO `bss_platform` VALUES ('2', '易焱工作室', '易焱', '18521303583', '430621199508207713', 'thelongcode1@163.com', '4', '2019-07-29 00:09:57', '2019-08-06 23:42:40', '1', '1', '1', ''); + +-- ---------------------------- +-- Table structure for bss_taxinfo +-- ---------------------------- +DROP TABLE IF EXISTS `bss_taxinfo`; +CREATE TABLE `bss_taxinfo` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `tax_no` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '纳税人识别号', + `account` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '开户行及账号', + `address_phone` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '地址、电话', + `name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '名称', + `remark` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- ---------------------------- +-- Records of bss_taxinfo +-- ---------------------------- + +-- ---------------------------- +-- Table structure for bss_vat_invoice +-- ---------------------------- +DROP TABLE IF EXISTS `bss_vat_invoice`; +CREATE TABLE `bss_vat_invoice` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `invoice_code` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '发票代码', + `invoice_no` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '发票号码', + `invoice_date` date DEFAULT NULL COMMENT '发票日期', + `check_code` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '校验码', + `machine_no` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '机器编码', + `invoice_money` decimal(10,0) DEFAULT NULL COMMENT '发票金额', + `tax_amount` decimal(10,0) DEFAULT NULL COMMENT '税额', + `total_amount` decimal(10,0) DEFAULT NULL COMMENT '总金额', + `total_amount_cn` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '总金额(大写)', + `remark` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- ---------------------------- +-- Records of bss_vat_invoice +-- ---------------------------- -- ---------------------------- -- Table structure for sys_action_log @@ -66,68 +231,12 @@ CREATE TABLE `sys_action_log` ( PRIMARY KEY (`id`), KEY `FK32gm4dja0jetx58r9dc2uljiu` (`oper_by`) USING BTREE, CONSTRAINT `sys_action_log_ibfk_1` FOREIGN KEY (`oper_by`) REFERENCES `sys_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1139 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1421 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of sys_action_log -- ---------------------------- -INSERT INTO `sys_action_log` VALUES ('1082', '用户管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'save', 'sys_user', '1', '更新用户成功:admin', '2019-07-28 17:35:15', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1083', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 17:44:22', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1084', '部门管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.DeptController', 'save', 'sys_dept', '8', '更新部门:1公司代理', '2019-07-28 17:59:16', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1085', '部门管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.DeptController', 'save', 'sys_dept', '9', '更新部门:1个人代理', '2019-07-28 17:59:27', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1086', '角色分配', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'auth', 'sys_user', '1', '角色分配成功:admin', '2019-07-28 18:00:30', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1087', '部门管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.DeptController', 'save', 'sys_dept', '10', '添加部门:1公司代理-业务', '2019-07-28 18:01:54', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1088', '用户管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'save', 'sys_user', '8', '添加用户成功:yiyan', '2019-07-28 18:02:41', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1089', '角色授权', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.RoleController', 'auth', 'sys_role', '17', '角色授权成功:业务通用', '2019-07-28 18:03:02', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1090', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录失败:[yiyan]您不是后台管理员!', '2019-07-28 18:03:17', 'yiyan', null); -INSERT INTO `sys_action_log` VALUES ('1091', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:03:25', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1092', '角色分配', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'auth', 'sys_user', '8', '角色分配成功:yiyan', '2019-07-28 18:03:34', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1093', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:03:45', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1094', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:04:26', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1095', '角色授权', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.RoleController', 'auth', 'sys_role', '17', '角色授权成功:业务通用', '2019-07-28 18:04:41', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1096', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:04:53', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1097', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:17:17', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1098', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:19:55', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1099', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:20:19', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1100', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:26:07', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1101', '用户管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'save', 'sys_user', '1', '更新用户成功:admin', '2019-07-28 18:26:28', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1102', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:26:46', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1103', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:27:44', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1104', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:43:18', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1105', '用户登录', '2', '127.0.0.1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录失败:[admin]用户名或密码错误', '2019-07-28 18:43:59', 'admin', null); -INSERT INTO `sys_action_log` VALUES ('1106', '用户登录', '2', '127.0.0.1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:44:04', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1107', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:44:53', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1108', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:45:16', '易焱', '8'); -INSERT INTO `sys_action_log` VALUES ('1109', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 18:46:49', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1110', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 20:35:44', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1111', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 20:46:06', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1112', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 20:46:49', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1113', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 20:48:11', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1114', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 21:24:43', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1115', '字典管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.DictController', 'save', 'sys_dict', '3', '更新字典:用户性别', '2019-07-28 22:06:57', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1116', '角色状态', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.RoleController', 'status', null, null, '删除ID:[16]', '2019-07-28 22:07:54', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1117', '用户管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'save', 'sys_user', '8', '更新用户成功:yiyan', '2019-07-28 22:22:50', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1118', '部门管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.DeptController', 'save', 'sys_dept', '1', '更新部门:财务帮', '2019-07-28 22:24:30', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1119', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 22:26:27', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1120', '角色授权', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.RoleController', 'auth', 'sys_role', '1', '角色授权成功:超级管理员', '2019-07-28 22:30:08', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1121', '角色授权', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.RoleController', 'auth', 'sys_role', '17', '角色授权成功:业务通用', '2019-07-28 22:30:22', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1122', '角色授权', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.RoleController', 'auth', 'sys_role', '16', '角色授权成功:业务管理', '2019-07-28 22:30:28', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1123', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 22:30:47', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1124', '角色分配', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.UserController', 'auth', 'sys_user', '1', '角色分配成功:admin', '2019-07-28 22:31:16', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1125', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '26', '更新菜单:行为日志', '2019-07-28 22:32:45', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1126', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 22:33:00', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1127', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 23:03:10', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1128', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-28 23:54:04', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1129', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '164', '添加菜单:财务帮', '2019-07-28 23:58:27', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1130', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '159', '更新菜单:平台信息', '2019-07-29 00:02:07', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1131', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '160', '更新菜单:添加', '2019-07-29 00:02:20', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1132', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '161', '更新菜单:编辑', '2019-07-29 00:02:29', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1133', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '162', '更新菜单:详细', '2019-07-29 00:02:41', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1134', '菜单管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.MenuController', 'save', 'sys_menu', '163', '更新菜单:修改状态', '2019-07-29 00:02:50', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1135', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-29 00:03:03', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1136', '字典管理', '1', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.DictController', 'save', 'sys_dict', '11', '添加字典:平台类型', '2019-07-29 00:07:58', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1137', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-29 00:09:17', '超级管理员', '1'); -INSERT INTO `sys_action_log` VALUES ('1138', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-07-29 00:13:11', '超级管理员', '1'); +INSERT INTO `sys_action_log` VALUES ('1420', '用户登录', '2', '0:0:0:0:0:0:0:1', 'com.cwhelp.admin.system.controller.LoginController', 'login', null, null, '后台登录成功', '2019-08-13 17:25:06', '超级管理员', '1'); -- ---------------------------- -- Table structure for sys_dept @@ -178,7 +287,7 @@ CREATE TABLE `sys_dict` ( KEY `FKoyng5jlifhsme0gc1lwiub0lr` (`update_by`) USING BTREE, CONSTRAINT `sys_dict_ibfk_1` FOREIGN KEY (`create_by`) REFERENCES `sys_user` (`id`), CONSTRAINT `sys_dict_ibfk_2` FOREIGN KEY (`update_by`) REFERENCES `sys_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of sys_dict @@ -189,7 +298,14 @@ INSERT INTO `sys_dict` VALUES ('3', '用户性别', 'USER_SEX', '2', '1:男,2: INSERT INTO `sys_dict` VALUES ('4', '菜单类型', 'MENU_TYPE', '2', '1:一级菜单,2:子级菜单,3:不是菜单', '', '2018-10-05 20:24:57', '2018-10-13 13:56:05', '1', '1', '1'); INSERT INTO `sys_dict` VALUES ('5', '搜索栏状态', 'SEARCH_STATUS', '2', '1:正常,2:冻结', '', '2018-10-05 20:25:45', '2019-02-26 00:34:34', '1', '1', '1'); INSERT INTO `sys_dict` VALUES ('6', '日志类型', 'LOG_TYPE', '2', '1:业务,2:登录,3:系统', '', '2018-10-05 20:28:47', '2019-02-26 00:31:43', '1', '1', '1'); -INSERT INTO `sys_dict` VALUES ('11', '平台类型', 'PLATFORM_TYPE', '2', '1:自营,2:代理,3:个人,4:公司', '', '2019-07-29 00:07:58', '2019-07-29 00:07:58', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('11', '平台类型', 'BSS_PLATFORM_TYPE', '2', '1:自营,2:代理,3:个人,4:公司', '', '2019-07-29 00:07:58', '2019-07-29 00:07:58', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('12', '业务部门类型', 'BSS_DEPT_TYPE', '2', '1:行政部,2:财务部,3:市场部,4:采购部,5:研发部,6:人力资源部,7:企管部,8:技术部,9:后勤部,10:销售部,11:其它', '', '2019-07-29 21:36:59', '2019-07-29 21:36:59', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('13', '用户类型', 'USER_TYPE', '2', '1:平台账号,2:普通账号', '', '2019-07-31 20:23:57', '2019-07-31 20:23:57', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('14', '员工状态', 'EMPLOYEE_TYPE', '2', '1:在职,2:离职', '', '2019-07-31 23:23:20', '2019-07-31 23:23:20', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('15', '学历', 'EDUCATION', '2', '1:初中及以下,2:高中,3:大专,4:本科,5:研究生,6:博士', '', '2019-07-31 23:25:09', '2019-07-31 23:25:09', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('16', '角色类型', 'ROLE_TYPE', '2', '1:平台,2:普通', '', '2019-08-04 21:32:47', '2019-08-04 21:32:47', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('17', '增值税种类', 'VAT_TYPE', '2', '1:小规模纳税人,2:一般纳税人', '', '2019-08-06 20:46:22', '2019-08-06 20:47:31', '1', '1', '1'); +INSERT INTO `sys_dict` VALUES ('18', '会计准则', 'ACCOUNTING_STANDARDS', '2', '1:小企业会计准则,2:企业会计准则,3:民间非营利组织会计制度', '', '2019-08-06 20:47:21', '2019-08-06 20:47:21', '1', '1', '1'); -- ---------------------------- -- Table structure for sys_file @@ -240,7 +356,7 @@ CREATE TABLE `sys_menu` ( KEY `FKsiko0qcr8ddamvrxf1tk4opgc` (`update_by`) USING BTREE, CONSTRAINT `sys_menu_ibfk_1` FOREIGN KEY (`create_by`) REFERENCES `sys_user` (`id`), CONSTRAINT `sys_menu_ibfk_2` FOREIGN KEY (`update_by`) REFERENCES `sys_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=180 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of sys_menu @@ -276,18 +392,33 @@ INSERT INTO `sys_menu` VALUES ('28', '日志删除', '26', '[0],[2],[26]', '/sys INSERT INTO `sys_menu` VALUES ('30', '开发中心', '0', '[0]', '#', '#', 'fa fa-gavel', '1', '4', '', '2018-10-19 16:38:23', '2019-07-28 23:58:27', '1', '1', '1'); INSERT INTO `sys_menu` VALUES ('31', '代码生成', '30', '[0],[30]', '/dev/code', '#', '', '2', '1', '', '2018-10-19 16:39:04', '2019-03-13 17:43:58', '1', '1', '1'); INSERT INTO `sys_menu` VALUES ('125', '表单构建', '30', '[0],[30]', '/dev/build', '#', '', '2', '2', '', '2018-11-25 16:12:23', '2019-02-24 16:16:40', '1', '1', '1'); -INSERT INTO `sys_menu` VALUES ('136', '部门管理', '2', '[0],[2]', '/system/bssDept/index', 'system:bssDept:index', '', '2', '4', '', '2018-12-02 16:33:23', '2019-02-24 16:10:50', '1', '1', '3'); -INSERT INTO `sys_menu` VALUES ('137', '添加', '136', '[0],[2],[136]', '/system/bssDept/add', 'system:bssDept:add', '', '3', '1', '', '2018-12-02 16:33:23', '2019-02-24 16:13:34', '1', '1', '3'); -INSERT INTO `sys_menu` VALUES ('138', '编辑', '136', '[0],[2],[136]', '/system/bssDept/edit', 'system:bssDept:edit', '', '3', '2', '', '2018-12-02 16:33:23', '2019-02-24 16:13:42', '1', '1', '3'); -INSERT INTO `sys_menu` VALUES ('139', '详细', '136', '[0],[2],[136]', '/system/bssDept/detail', 'system:bssDept:detail', '', '3', '3', '', '2018-12-02 16:33:23', '2019-02-24 16:13:49', '1', '1', '3'); -INSERT INTO `sys_menu` VALUES ('140', '改变状态', '136', '[0],[2],[136]', '/system/bssDept/status', 'system:bssDept:status', '', '3', '4', '', '2018-12-02 16:33:23', '2019-02-24 16:13:57', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('136', '部门管理', '2', '[0],[2]', '/system/dept/index', 'system:dept:index', '', '2', '4', '', '2018-12-02 16:33:23', '2019-02-24 16:10:50', '1', '1', '3'); +INSERT INTO `sys_menu` VALUES ('137', '添加', '136', '[0],[2],[136]', '/system/dept/add', 'system:dept:add', '', '3', '1', '', '2018-12-02 16:33:23', '2019-02-24 16:13:34', '1', '1', '3'); +INSERT INTO `sys_menu` VALUES ('138', '编辑', '136', '[0],[2],[136]', '/system/dept/edit', 'system:dept:edit', '', '3', '2', '', '2018-12-02 16:33:23', '2019-02-24 16:13:42', '1', '1', '3'); +INSERT INTO `sys_menu` VALUES ('139', '详细', '136', '[0],[2],[136]', '/system/dept/detail', 'system:dept:detail', '', '3', '3', '', '2018-12-02 16:33:23', '2019-02-24 16:13:49', '1', '1', '3'); +INSERT INTO `sys_menu` VALUES ('140', '改变状态', '136', '[0],[2],[136]', '/system/dept/status', 'system:dept:status', '', '3', '4', '', '2018-12-02 16:33:23', '2019-02-24 16:13:57', '1', '1', '1'); INSERT INTO `sys_menu` VALUES ('146', '数据接口', '30', '[0],[30]', '/dev/swagger', '#', '', '2', '3', '', '2018-12-09 21:11:11', '2019-02-24 23:38:18', '1', '1', '1'); -INSERT INTO `sys_menu` VALUES ('159', '平台信息', '164', '[0]', '/bss/bssPlatform/index', 'bss:bssPlatform:index', 'fa fa-television', '1', '1', '', '2019-07-28 23:30:18', '2019-07-29 00:02:07', '1', '1', '1'); -INSERT INTO `sys_menu` VALUES ('160', '添加', '159', '[0],[159]', '/bss/bssPlatform/add', 'bss:bssPlatform:add', '', '3', '1', '', '2019-07-28 23:30:18', '2019-07-29 00:02:20', '1', '1', '1'); -INSERT INTO `sys_menu` VALUES ('161', '编辑', '159', '[0],[159]', '/bss/bssPlatform/edit', 'bss:bssPlatform:edit', '', '3', '2', '', '2019-07-28 23:30:18', '2019-07-29 00:02:29', '1', '1', '1'); -INSERT INTO `sys_menu` VALUES ('162', '详细', '159', '[0],[159]', '/bss/bssPlatform/detail', 'bss:bssPlatform:detail', '', '3', '3', '', '2019-07-28 23:30:18', '2019-07-29 00:02:41', '1', '1', '1'); -INSERT INTO `sys_menu` VALUES ('163', '修改状态', '159', '[0],[159]', '/bss/bssPlatform/status', 'bss:bssPlatform:status', '', '3', '4', '', '2019-07-28 23:30:18', '2019-07-29 00:02:50', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('159', '平台信息', '164', '[0]', '/bss/platform/index', 'bss:platform:index', 'fa fa-television', '1', '1', '', '2019-07-28 23:30:18', '2019-07-29 00:02:07', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('160', '添加', '159', '[0],[159]', '/bss/platform/add', 'bss:platform:add', '', '3', '1', '', '2019-07-28 23:30:18', '2019-07-29 00:02:20', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('161', '编辑', '159', '[0],[159]', '/bss/platform/edit', 'bss:platform:edit', '', '3', '2', '', '2019-07-28 23:30:18', '2019-07-29 00:02:29', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('162', '详细', '159', '[0],[159]', '/bss/platform/detail', 'bss:platform:detail', '', '3', '3', '', '2019-07-28 23:30:18', '2019-07-29 00:02:41', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('163', '修改状态', '159', '[0],[159]', '/bss/platform/status', 'bss:platform:status', '', '3', '4', '', '2019-07-28 23:30:18', '2019-07-29 00:02:50', '1', '1', '1'); INSERT INTO `sys_menu` VALUES ('164', '财务帮', '0', '[0]', '#', 'bss', 'fa fa-bars', '1', '2', '', '2019-07-28 23:58:27', '2019-07-28 23:58:27', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('165', '业务部门', '164', '[0]', '/bss/dept/index', 'bss:dept:index', 'fa fa-television', '1', '2', '', '2019-07-29 22:01:41', '2019-07-29 22:40:19', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('166', '添加', '165', '[0],[165]', '/bss/dept/add', 'bss:dept:add', '', '3', '1', '', '2019-07-29 22:01:41', '2019-07-29 22:40:32', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('167', '编辑', '165', '[0],[165]', '/bss/dept/edit', 'bss:dept:edit', '', '3', '2', '', '2019-07-29 22:01:41', '2019-07-29 22:40:43', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('168', '详细', '165', '[0],[165]', '/bss/dept/detail', 'bss:dept:detail', '', '3', '3', '', '2019-07-29 22:01:41', '2019-07-29 22:40:56', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('169', '修改状态', '165', '[0],[165]', '/bss/dept/status', 'bss:dept:status', '', '3', '4', '', '2019-07-29 22:01:41', '2019-07-29 22:41:06', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('170', '员工', '164', '[0]', '/bss/employee/index', 'bss:employee:index', '', '1', '3', '', '2019-07-31 23:35:49', '2019-07-31 23:56:28', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('171', '添加', '170', '[0],[170]', '/bss/employee/add', 'bss:employee:add', '', '3', '1', '', '2019-07-31 23:35:49', '2019-07-31 23:56:40', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('172', '编辑', '170', '[0],[170]', '/bss/employee/edit', 'bss:employee:edit', '', '3', '2', '', '2019-07-31 23:35:49', '2019-07-31 23:56:48', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('173', '详细', '170', '[0],[170]', '/bss/employee/detail', 'bss:employee:detail', '', '3', '3', '', '2019-07-31 23:35:49', '2019-07-31 23:57:00', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('174', '修改状态', '170', '[0],[170]', '/bss/employee/status', 'bss:employee:status', '', '3', '4', '', '2019-07-31 23:35:49', '2019-07-31 23:57:18', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('175', '账套信息', '164', '[0]', '/bss/enterprise/index', 'bss:enterprise:index', '', '1', '4', '', '2019-08-06 21:15:16', '2019-08-06 21:27:16', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('176', '添加', '175', '[0],[175]', '/bss/enterprise/add', 'bss:enterprise:add', null, '3', '1', null, '2019-08-06 21:15:16', '2019-08-06 21:15:16', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('177', '编辑', '175', '[0],[175]', '/bss/enterprise/edit', 'bss:enterprise:edit', null, '3', '1', null, '2019-08-06 21:15:16', '2019-08-06 21:15:16', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('178', '详细', '175', '[0],[175]', '/bss/enterprise/detail', 'bss:enterprise:detail', null, '3', '1', null, '2019-08-06 21:15:16', '2019-08-06 21:15:16', '1', '1', '1'); +INSERT INTO `sys_menu` VALUES ('179', '修改状态', '175', '[0],[175]', '/bss/enterprise/status', 'bss:enterprise:status', null, '3', '1', null, '2019-08-06 21:15:16', '2019-08-06 21:15:16', '1', '1', '1'); -- ---------------------------- -- Table structure for sys_role @@ -297,6 +428,7 @@ CREATE TABLE `sys_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `title` varchar(255) DEFAULT NULL COMMENT '角色名称(中文名)', `name` varchar(255) DEFAULT NULL COMMENT '标识名称', + `type` varchar(255) DEFAULT NULL COMMENT '类型(1:平台 2:普通)', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `create_date` datetime DEFAULT NULL COMMENT '创建时间', `update_date` datetime DEFAULT NULL COMMENT '更新时间', @@ -308,14 +440,15 @@ CREATE TABLE `sys_role` ( KEY `FKrouqqi3f2bgc5o83wdstlh6q4` (`update_by`) USING BTREE, CONSTRAINT `sys_role_ibfk_1` FOREIGN KEY (`create_by`) REFERENCES `sys_user` (`id`), CONSTRAINT `sys_role_ibfk_2` FOREIGN KEY (`update_by`) REFERENCES `sys_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of sys_role -- ---------------------------- -INSERT INTO `sys_role` VALUES ('1', '超级管理员', 'admin', '', '2018-09-29 00:12:40', '2019-07-28 22:30:08', '1', '1', '1'); -INSERT INTO `sys_role` VALUES ('16', '业务管理', 'business_admin', '业务管理人员角色', '2019-07-28 17:25:46', '2019-07-28 22:30:28', '1', '1', '1'); -INSERT INTO `sys_role` VALUES ('17', '业务通用', 'business_common', '业务通用人员角色', '2019-07-28 17:26:40', '2019-07-28 22:30:22', '1', '1', '1'); +INSERT INTO `sys_role` VALUES ('1', '超级管理员', 'admin', '1', '', '2018-09-29 00:12:40', '2019-08-01 00:49:32', '1', '1', '1'); +INSERT INTO `sys_role` VALUES ('16', '业务管理', 'business_admin', '2', '业务管理人员角色', '2019-07-28 17:25:46', '2019-08-05 21:02:46', '1', '1', '1'); +INSERT INTO `sys_role` VALUES ('17', '业务通用', 'business_common', '2', '业务通用人员角色', '2019-07-28 17:26:40', '2019-08-05 21:02:37', '1', '1', '1'); +INSERT INTO `sys_role` VALUES ('18', '账套管理员', 'zt_admin', '2', '', '2019-08-04 22:03:36', '2019-08-07 00:05:33', '1', '1', '1'); -- ---------------------------- -- Table structure for sys_role_menu @@ -366,12 +499,67 @@ INSERT INTO `sys_role_menu` VALUES ('1', '28'); INSERT INTO `sys_role_menu` VALUES ('1', '30'); INSERT INTO `sys_role_menu` VALUES ('1', '31'); INSERT INTO `sys_role_menu` VALUES ('1', '125'); +INSERT INTO `sys_role_menu` VALUES ('1', '140'); INSERT INTO `sys_role_menu` VALUES ('1', '146'); INSERT INTO `sys_role_menu` VALUES ('1', '159'); +INSERT INTO `sys_role_menu` VALUES ('18', '159'); INSERT INTO `sys_role_menu` VALUES ('1', '160'); +INSERT INTO `sys_role_menu` VALUES ('18', '160'); INSERT INTO `sys_role_menu` VALUES ('1', '161'); +INSERT INTO `sys_role_menu` VALUES ('18', '161'); INSERT INTO `sys_role_menu` VALUES ('1', '162'); +INSERT INTO `sys_role_menu` VALUES ('18', '162'); INSERT INTO `sys_role_menu` VALUES ('1', '163'); +INSERT INTO `sys_role_menu` VALUES ('18', '163'); +INSERT INTO `sys_role_menu` VALUES ('1', '164'); +INSERT INTO `sys_role_menu` VALUES ('16', '164'); +INSERT INTO `sys_role_menu` VALUES ('17', '164'); +INSERT INTO `sys_role_menu` VALUES ('18', '164'); +INSERT INTO `sys_role_menu` VALUES ('1', '165'); +INSERT INTO `sys_role_menu` VALUES ('16', '165'); +INSERT INTO `sys_role_menu` VALUES ('18', '165'); +INSERT INTO `sys_role_menu` VALUES ('1', '166'); +INSERT INTO `sys_role_menu` VALUES ('16', '166'); +INSERT INTO `sys_role_menu` VALUES ('18', '166'); +INSERT INTO `sys_role_menu` VALUES ('1', '167'); +INSERT INTO `sys_role_menu` VALUES ('16', '167'); +INSERT INTO `sys_role_menu` VALUES ('18', '167'); +INSERT INTO `sys_role_menu` VALUES ('1', '168'); +INSERT INTO `sys_role_menu` VALUES ('16', '168'); +INSERT INTO `sys_role_menu` VALUES ('18', '168'); +INSERT INTO `sys_role_menu` VALUES ('1', '169'); +INSERT INTO `sys_role_menu` VALUES ('16', '169'); +INSERT INTO `sys_role_menu` VALUES ('18', '169'); +INSERT INTO `sys_role_menu` VALUES ('1', '170'); +INSERT INTO `sys_role_menu` VALUES ('16', '170'); +INSERT INTO `sys_role_menu` VALUES ('17', '170'); +INSERT INTO `sys_role_menu` VALUES ('18', '170'); +INSERT INTO `sys_role_menu` VALUES ('1', '171'); +INSERT INTO `sys_role_menu` VALUES ('16', '171'); +INSERT INTO `sys_role_menu` VALUES ('17', '171'); +INSERT INTO `sys_role_menu` VALUES ('18', '171'); +INSERT INTO `sys_role_menu` VALUES ('1', '172'); +INSERT INTO `sys_role_menu` VALUES ('16', '172'); +INSERT INTO `sys_role_menu` VALUES ('17', '172'); +INSERT INTO `sys_role_menu` VALUES ('18', '172'); +INSERT INTO `sys_role_menu` VALUES ('1', '173'); +INSERT INTO `sys_role_menu` VALUES ('16', '173'); +INSERT INTO `sys_role_menu` VALUES ('17', '173'); +INSERT INTO `sys_role_menu` VALUES ('18', '173'); +INSERT INTO `sys_role_menu` VALUES ('1', '174'); +INSERT INTO `sys_role_menu` VALUES ('16', '174'); +INSERT INTO `sys_role_menu` VALUES ('17', '174'); +INSERT INTO `sys_role_menu` VALUES ('18', '174'); +INSERT INTO `sys_role_menu` VALUES ('1', '175'); +INSERT INTO `sys_role_menu` VALUES ('18', '175'); +INSERT INTO `sys_role_menu` VALUES ('1', '176'); +INSERT INTO `sys_role_menu` VALUES ('18', '176'); +INSERT INTO `sys_role_menu` VALUES ('1', '177'); +INSERT INTO `sys_role_menu` VALUES ('18', '177'); +INSERT INTO `sys_role_menu` VALUES ('1', '178'); +INSERT INTO `sys_role_menu` VALUES ('18', '178'); +INSERT INTO `sys_role_menu` VALUES ('1', '179'); +INSERT INTO `sys_role_menu` VALUES ('18', '179'); -- ---------------------------- -- Table structure for sys_user @@ -383,9 +571,11 @@ CREATE TABLE `sys_user` ( `nickname` varchar(255) DEFAULT NULL COMMENT '用户昵称', `password` varchar(255) DEFAULT NULL COMMENT '密码', `salt` varchar(255) DEFAULT NULL COMMENT '密码盐', + `bss_platform_id` bigint(20) DEFAULT NULL COMMENT '平台ID', `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID', `picture` varchar(255) DEFAULT NULL COMMENT '头像', `sex` varchar(255) DEFAULT NULL COMMENT '性别(1:男,2:女)', + `type` varchar(255) DEFAULT NULL COMMENT '类型(1:平台账号 2:普通账号)', `email` varchar(255) DEFAULT NULL COMMENT '邮箱', `phone` varchar(255) DEFAULT NULL COMMENT '电话号码', `remark` varchar(255) DEFAULT NULL COMMENT '备注', @@ -394,14 +584,20 @@ CREATE TABLE `sys_user` ( `status` tinyint(4) DEFAULT NULL COMMENT '状态(1:正常,2:冻结,3:删除)', PRIMARY KEY (`id`), KEY `FKb3pkx0wbo6o8i8lj0gxr37v1n` (`dept_id`) USING BTREE, - CONSTRAINT `sys_user_ibfk_1` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; + KEY `sys_user_ibfk_2` (`bss_platform_id`), + CONSTRAINT `sys_user_ibfk_1` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`id`), + CONSTRAINT `sys_user_ibfk_2` FOREIGN KEY (`bss_platform_id`) REFERENCES `bss_platform` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of sys_user -- ---------------------------- -INSERT INTO `sys_user` VALUES ('1', 'admin', '超级管理员', '3dd0affe1e514fa059d00bf63134fe48d45acd3f350aaed83b0b54ef05579092', '3ABR79', '1', '/upload/picture/20190726/c3b2a31dca404ad0bf96bb10719bf689.jpg', '1', 'thelongcode@163.com', '18521303581', '', '2018-08-09 23:00:03', '2019-07-28 22:31:16', '1'); -INSERT INTO `sys_user` VALUES ('8', 'yiyan', '易焱', 'b382eecc12388c6dc7d6f3d3ded24a088eed35e15264d628e7c4e9b81e2854b6', 'VWO8Aw', '1', null, '1', 'thelongcode@163.com', '175017730036', '', '2019-07-28 18:02:41', '2019-07-28 22:22:50', '1'); +INSERT INTO `sys_user` VALUES ('1', 'admin', '超级管理员', '3dd0affe1e514fa059d00bf63134fe48d45acd3f350aaed83b0b54ef05579092', '3ABR79', '1', '1', '/upload/picture/20190726/c3b2a31dca404ad0bf96bb10719bf689.jpg', '1', '1', 'thelongcode@163.com', '18521303581', '', '2018-08-09 23:00:03', '2019-08-07 00:23:14', '1'); +INSERT INTO `sys_user` VALUES ('8', 'yiyan', '易焱', 'b97b7e057a8af725a2c13f9abb0c84c47d34a948947d5564e308a315030f5a85', '6wHos0', '2', '1', null, '1', '1', 'thelongcode@163.com', '18501773036', '12345', '2019-07-28 18:02:41', '2019-08-06 20:22:37', '1'); +INSERT INTO `sys_user` VALUES ('9', 'thelongcode@163.com', 'thelongcode@163.com', '238a8f6b94a8299d1689c070278c3282a9e3a0f9cc0ef574605d0b96344eb631', 'n2LAmG', '2', '1', null, '1', '1', 'thelongcode@163.com', '18501773037', '', '2019-07-31 20:30:39', '2019-08-05 00:59:42', '1'); +INSERT INTO `sys_user` VALUES ('10', '18521303582', '18521303582', '3190a8cb7f834b457174d1b880c4ef4ae4cc1fdd324d02366a8cc9544c2f9a6e', 'WHW0Nx', '1', '1', null, '1', '2', 'thelongcode2@163.com', '18521303582', '', '2019-08-05 01:38:13', '2019-08-05 20:17:42', '1'); +INSERT INTO `sys_user` VALUES ('11', '13721775488', '测试用户', '90534664c6a36ae97c4db6159c5c7ee5ad3fa9bc962e5318a4036d00b04beeaa', 'yeMy24', '1', '1', null, '1', '2', '535709395@qq.com', '13721775488', '系统生成', '2019-08-05 20:50:49', '2019-08-05 21:03:05', '1'); +INSERT INTO `sys_user` VALUES ('12', '18521303581', '易焱1', 'b12fe138c157f7b1b5ff466086541dc089c28b4e702c9a4d6c548241a6c7110e', 'yn7XLD', '2', '1', null, '1', '2', 'thelongcode@163.com', '18521303581', '系统生成', '2019-08-06 20:22:17', '2019-08-06 20:22:20', '1'); -- ---------------------------- -- Table structure for sys_user_role @@ -420,4 +616,13 @@ CREATE TABLE `sys_user_role` ( -- Records of sys_user_role -- ---------------------------- INSERT INTO `sys_user_role` VALUES ('1', '1'); +INSERT INTO `sys_user_role` VALUES ('8', '16'); +INSERT INTO `sys_user_role` VALUES ('10', '16'); +INSERT INTO `sys_user_role` VALUES ('11', '16'); +INSERT INTO `sys_user_role` VALUES ('12', '16'); INSERT INTO `sys_user_role` VALUES ('8', '17'); +INSERT INTO `sys_user_role` VALUES ('10', '17'); +INSERT INTO `sys_user_role` VALUES ('12', '17'); +INSERT INTO `sys_user_role` VALUES ('8', '18'); +INSERT INTO `sys_user_role` VALUES ('10', '18'); +INSERT INTO `sys_user_role` VALUES ('12', '18'); diff --git a/sdoc/~$发票形成会计凭证类.docx b/sdoc/~$发票形成会计凭证类.docx new file mode 100644 index 0000000000000000000000000000000000000000..fcd42e3fa9819ae3c2e99e74ae57ff52b9d59275 GIT binary patch literal 162 xcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oc1^`8%3f%wz literal 0 HcmV?d00001 diff --git a/sdoc/~$设计.docx b/sdoc/~$设计.docx new file mode 100644 index 0000000000000000000000000000000000000000..fcd42e3fa9819ae3c2e99e74ae57ff52b9d59275 GIT binary patch literal 162 xcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oc1^`8%3f%wz literal 0 HcmV?d00001 diff --git a/sdoc/应用环境.xlsx b/sdoc/应用环境.xlsx index 1279d656bda883b39e5dc9400efe6cbebfbf24e3..dc05a2bf2a3e8fc2de3dff40bc557f5e239d6cfc 100644 GIT binary patch delta 4769 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 delta 4656 zcmZ8l2QVB^x8BvQ&gz5}ZAFQah~75ZiXg1c>U9xB^hJb34XgLwi4rwxkSNi6?Ky;JD*OSLo|9JbC9B4;9Sx_U_)TT?!r2YK)D>(bg- zm&<#_>ZEl`>`;s=bKgDQH|W#~1%e3&Q9i6jx44)F;M{05XDPB#9h1 z1&%b}#T=DpsCKo|ESYXCfJ0C_s{<$6PVu;2G+^v@CYEH zo1~(F8gOhJOg|?B=9H7Fh8${}P^B`eN)J*hNlt4*(jl)_{gaS=I{$vwvc4i-8u zpgYd((?_ec4O0!s(XY60W5*H^K{?(EgyC8got=y!ff@p{m;N6xN`S zu9Rp-x9Q!lzB{jV(~g%3>s}&VWt%A=v+*}H<>m(6&g zIlJqt#2;w6I^azNPVD$q2eigHQ?Aernj(mL;Et9@z)U$igo4dfKOLFCBS{VTj?fkM|LTNX8`pc?^;tNZ&P#>DL| zj@j4u#1&oyhqgLNk9Yeml#h`x$&U}3>CX7`6WQ1@U%cwj?^p{wDVt>6hi8f`6tfzA z|AL-bCq9{$Z<5Eg`8{nC=uSevjwih7x*JxU-&ssJID77bE5s}B`+oZiQx~9cPnFof z{s1CMCMQZ>_Z{#f&gNM(eqTk%WKE0w{?Fo`41W&uA=US;DZu;l5IRC1nG~Du2lwA% zTGv3*c>8m})?V=7OwXHGo3zpkTqo6mUut|4Rr1uuMV{8^6#>9}htb2U>y&7x;0OG1 ztZF|DM`BSV;jNnsZNcX<|6Y>|l%WPjPzyo}=Y0&U2LS*eEdYSz&%E+<6mWC*a

$ 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 N$53j#e)hkq{{sN+m}dY0