-
注:请注意保留小数点后两位
From f8f51723029c10401b2a11ce82099b56641e7915 Mon Sep 17 00:00:00 2001
From: hanbo <2608504783@qq.com>
Date: Fri, 5 Nov 2021 15:04:32 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E9=87=87=E8=B4=AD=E7=B1=BB=E5=9E=8B?=
=?UTF-8?q?=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../backend/ProcurementTypeController.java | 137 ++++++++
.../cn/palmte/work/model/ProcurementType.java | 86 +++++
.../work/model/ProcurementTypeRepository.java | 8 +
.../java/cn/palmte/work/model/SysConfig.java | 2 +-
.../work/service/ProcurementTypeService.java | 84 +++++
.../palmte/work/service/SysConfigService.java | 4 +
.../admin/procurement_type_input.ftl | 104 ++++++
.../templates/admin/procurement_type_list.ftl | 314 ++++++++++++++++++
.../admin/profit_marfin_config_input.ftl | 3 +-
9 files changed, 740 insertions(+), 2 deletions(-)
create mode 100644 src/main/java/cn/palmte/work/controller/backend/ProcurementTypeController.java
create mode 100644 src/main/java/cn/palmte/work/model/ProcurementType.java
create mode 100644 src/main/java/cn/palmte/work/model/ProcurementTypeRepository.java
create mode 100644 src/main/java/cn/palmte/work/service/ProcurementTypeService.java
create mode 100644 src/main/resources/templates/admin/procurement_type_input.ftl
create mode 100644 src/main/resources/templates/admin/procurement_type_list.ftl
diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcurementTypeController.java b/src/main/java/cn/palmte/work/controller/backend/ProcurementTypeController.java
new file mode 100644
index 0000000..a2c5811
--- /dev/null
+++ b/src/main/java/cn/palmte/work/controller/backend/ProcurementTypeController.java
@@ -0,0 +1,137 @@
+package cn.palmte.work.controller.backend;
+
+import cn.palmte.work.bean.ResponseMsg;
+import cn.palmte.work.model.ProcurementType;
+import cn.palmte.work.service.ProcurementTypeService;
+import cn.palmte.work.utils.Utils;
+import cn.palmte.work.utils.excel.ExportUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@Controller
+@RequestMapping("/procurement/type")
+public class ProcurementTypeController extends BaseController{
+
+ @Autowired
+ private ProcurementTypeService procurementTypeService;
+
+ /**
+ * 列表查询
+ * @param keywords
+ * @param pageNumber
+ * @param pageSize
+ * @param model
+ * @return
+ */
+ @RequestMapping("/list")
+ public String list(@RequestParam(value = "keywords",required = false) String keywords,
+ @RequestParam(value = PAGE_NUMBER, defaultValue = DEFAULT_PAGE_NUMBER) int pageNumber,
+ @RequestParam(value = PAGE_SIZE, defaultValue = DEFAULT_PAGE_SIZE) int pageSize,
+ Map
model) {
+ model.put("keywords",keywords);
+ ConcurrentHashMap searchInfo = getSearchInfo(keywords,model);
+ model.put("pager",procurementTypeService.list(searchInfo,pageNumber,pageSize));
+ return "/admin/procurement_type_list";
+ }
+
+ /**
+ * 跳转新增页面
+ * @param model
+ * @return
+ */
+ @GetMapping(value = "/add")
+ public String add( Map model){
+ ProcurementType procurementType = new ProcurementType();
+ model.put("procurementTypeId",-1);
+ model.put("procurementType",procurementType);
+ return "/admin/procurement_type_input";
+ }
+
+ /**
+ * 跳转到编辑页面
+ */
+ @RequestMapping("/edit")
+ public String edit(@RequestParam("id") int id, Map model) {
+ ProcurementType procurementType = procurementTypeService.findOne(id);
+ model.put("procurementTypeId",id);
+ model.put("procurementType", procurementType);
+ return "/admin/procurement_type_input";
+ }
+
+ /**
+ * 保存
+ * @param procurementTypeId
+ * @param procurementType
+ * @param model
+ * @return
+ */
+ @PostMapping(value = "/save")
+ public String save(@RequestParam("procurementTypeId") int procurementTypeId,
+ ProcurementType procurementType, Map model){
+
+ procurementTypeService.saveOtUpdate(procurementTypeId,procurementType);
+ return "redirect:/procurement/type/list";
+ }
+
+ /**
+ * 批量删除
+ * @param ids
+ * @return
+ */
+ @GetMapping(value = "/delete")
+ @ResponseBody
+ public ResponseMsg delete(@RequestParam("ids") String ids){
+ String[] deleteIds=ids.split("#%#");
+ boolean deleted = procurementTypeService.deleteByIDs(deleteIds);
+
+ ResponseMsg responseMsge=new ResponseMsg();
+ if(deleted){
+ responseMsge.setStatus(0);
+ responseMsge.setMsg("删除成功");
+ } else{
+ responseMsge.setStatus(1);
+ responseMsge.setMsg("删除失败");
+ }
+ return responseMsge;
+ }
+
+ /**
+ * 启用 禁用
+ */
+ @RequestMapping("/enableOrDisable")
+ @ResponseBody
+ public ResponseMsg enableOrDisable(@RequestParam("id") int id,
+ @RequestParam("status") int status, RedirectAttributes attr) {
+ boolean isSuccess = false;
+ try {
+ isSuccess = procurementTypeService.enableOrDisable(status, id);
+ } catch (Exception e) {
+ e.getMessage();
+ }
+ if (isSuccess) {
+ return ResponseMsg.buildSuccessMsg("操作成功");
+ } else {
+ return ResponseMsg.buildSuccessMsg("操作失败");
+ }
+ }
+
+ /**
+ * 导出
+ */
+ @RequestMapping("/export")
+ public void export(@RequestParam(value = "keywords",required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException {
+ Map searchInfo = getSearchInfo(keywords);
+ downloadHeader(httpServletResponse , Utils.generateExcelName("采购类型表"), "application/octet-stream");
+ String[] headers = {"采购类型名称","所属大类","创建人","创建时间"};
+ String[] exportColumns = {"name","category","createdBy","createdTime"};
+ ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
+ httpServletResponse.getOutputStream(), (pN, pS) -> procurementTypeService.list(searchInfo, pN, pS).getList());
+ }
+}
diff --git a/src/main/java/cn/palmte/work/model/ProcurementType.java b/src/main/java/cn/palmte/work/model/ProcurementType.java
new file mode 100644
index 0000000..026e72c
--- /dev/null
+++ b/src/main/java/cn/palmte/work/model/ProcurementType.java
@@ -0,0 +1,86 @@
+package cn.palmte.work.model;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+import java.util.Date;
+
+/**
+ * 采购类型配置
+ */
+@Entity
+@Table(name = "procurement_type")
+public class ProcurementType {
+
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @GenericGenerator(name = "persistenceGenerator", strategy = "increment")
+ private Integer id;
+
+ private String name;
+
+ private int category;
+
+ private int enabled;
+
+ @Column(name = "created_by")
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "created_time")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date createdTime;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getCategory() {
+ return category;
+ }
+
+ public void setCategory(int category) {
+ this.category = category;
+ }
+
+ public int getEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(int enabled) {
+ this.enabled = enabled;
+ }
+
+ public String getCreatedBy() {
+ return createdBy;
+ }
+
+ public void setCreatedBy(String createdBy) {
+ this.createdBy = createdBy;
+ }
+
+ public Date getCreatedTime() {
+ return createdTime;
+ }
+
+ public void setCreatedTime(Date createdTime) {
+ this.createdTime = createdTime;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/cn/palmte/work/model/ProcurementTypeRepository.java b/src/main/java/cn/palmte/work/model/ProcurementTypeRepository.java
new file mode 100644
index 0000000..f5ba88e
--- /dev/null
+++ b/src/main/java/cn/palmte/work/model/ProcurementTypeRepository.java
@@ -0,0 +1,8 @@
+package cn.palmte.work.model;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface ProcurementTypeRepository extends JpaRepository {
+
+
+}
diff --git a/src/main/java/cn/palmte/work/model/SysConfig.java b/src/main/java/cn/palmte/work/model/SysConfig.java
index 8190cd7..567524c 100644
--- a/src/main/java/cn/palmte/work/model/SysConfig.java
+++ b/src/main/java/cn/palmte/work/model/SysConfig.java
@@ -27,7 +27,7 @@ public class SysConfig {
private String value;
/**
- * 创建时间
+ * 更新时间
*/
@Column(name = "update_time")
@Temporal(TemporalType.TIMESTAMP)
diff --git a/src/main/java/cn/palmte/work/service/ProcurementTypeService.java b/src/main/java/cn/palmte/work/service/ProcurementTypeService.java
new file mode 100644
index 0000000..20251d7
--- /dev/null
+++ b/src/main/java/cn/palmte/work/service/ProcurementTypeService.java
@@ -0,0 +1,84 @@
+package cn.palmte.work.service;
+
+import cn.palmte.work.model.ProcurementType;
+import cn.palmte.work.model.ProcurementTypeRepository;
+import cn.palmte.work.utils.InterfaceUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import top.jfunc.common.db.QueryHelper;
+import top.jfunc.common.db.bean.Page;
+import top.jfunc.common.db.utils.Pagination;
+
+import java.util.Date;
+import java.util.Map;
+
+@Service
+public class ProcurementTypeService {
+
+ @Autowired
+ private ProcurementTypeRepository procurementTypeRepository;
+
+ @Autowired
+ private Pagination pagination;
+
+ public Page list(Map searchInfo, int pageNumber, int pageSize){
+ QueryHelper queryHelper = new QueryHelper("SELECT *","procurement_type");
+ queryHelper.addCondition(searchInfo.containsKey("name"), "name like ?", "%" +
+ searchInfo.get("name") + "%");
+ queryHelper.addCondition(searchInfo.containsKey("category") && !"-1".equals(searchInfo.get("category")),
+ "category=" + searchInfo.get("category"));
+ queryHelper.addCondition(searchInfo.containsKey("enabled") && !"-1".equals(searchInfo.get("enabled")),
+ "enabled=" + searchInfo.get("enabled"));
+ queryHelper.addCondition(searchInfo.containsKey("startTime"), "created_time >= ?", searchInfo.get("startTime") + " 00:00:00");
+ queryHelper.addCondition(searchInfo.containsKey("endTime"), "created_time <= ?", searchInfo.get("endTime") + " 23:59:59");
+ queryHelper.addOrderProperty("created_time", false);
+ return pagination.paginate(queryHelper.getSql(), ProcurementType.class,pageNumber,pageSize);
+ }
+
+ public ProcurementType findOne(int id) {
+ return procurementTypeRepository.findOne(id);
+ }
+
+ public void saveOtUpdate(int procurementTypeId, ProcurementType procurementType) {
+ ProcurementType obj = procurementTypeRepository.findOne(procurementTypeId);
+ if(null == obj){
+ obj = new ProcurementType();
+ obj.setName(procurementType.getName());
+ obj.setCategory(procurementType.getCategory());
+ obj.setEnabled(procurementType.getEnabled());
+ obj.setCreatedBy(InterfaceUtil.getAdmin().getRealName());
+ obj.setCreatedTime(new Date());
+ }else {
+ obj.setName(procurementType.getName());
+ obj.setCategory(procurementType.getCategory());
+ obj.setEnabled(procurementType.getEnabled());
+ }
+ procurementTypeRepository.saveAndFlush(obj);
+ }
+
+ public boolean deleteByIDs(String[] deleteIds) {
+ boolean deleted = true;
+ try {
+ for (String id : deleteIds) {
+ procurementTypeRepository.delete(Integer.parseInt(id));
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ deleted = false;
+ }
+
+ return deleted;
+ }
+
+ public boolean enableOrDisable(int status, int id) {
+ ProcurementType one = procurementTypeRepository.findOne(id);
+ one.setEnabled(status);
+ ProcurementType procurementType = procurementTypeRepository.saveAndFlush(one);
+
+ if(null != procurementType){
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/src/main/java/cn/palmte/work/service/SysConfigService.java b/src/main/java/cn/palmte/work/service/SysConfigService.java
index a049674..0696077 100644
--- a/src/main/java/cn/palmte/work/service/SysConfigService.java
+++ b/src/main/java/cn/palmte/work/service/SysConfigService.java
@@ -6,6 +6,8 @@ import cn.palmte.work.pojo.SysConfigRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.Date;
+
@Service
public class SysConfigService {
@@ -16,10 +18,12 @@ public class SysConfigService {
public void saveOrUpdate(SysConfigRequest sysConfigRequest) {
SysConfig underwrittenTaxRate = sysConfigRepository.findByCodeEquals("underwrittenTaxRate");
underwrittenTaxRate.setValue(sysConfigRequest.getUnderwrittenTaxRate());
+ underwrittenTaxRate.setUpdateTime(new Date());
sysConfigRepository.saveAndFlush(underwrittenTaxRate);
SysConfig projectContributionProfitRateThreshold = sysConfigRepository.findByCodeEquals("projectContributionProfitRateThreshold");
projectContributionProfitRateThreshold.setValue(sysConfigRequest.getProjectContributionProfitRateThreshold());
+ projectContributionProfitRateThreshold.setUpdateTime(new Date());
sysConfigRepository.saveAndFlush(projectContributionProfitRateThreshold);
}
diff --git a/src/main/resources/templates/admin/procurement_type_input.ftl b/src/main/resources/templates/admin/procurement_type_input.ftl
new file mode 100644
index 0000000..7003016
--- /dev/null
+++ b/src/main/resources/templates/admin/procurement_type_input.ftl
@@ -0,0 +1,104 @@
+<#assign base=request.contextPath />
+<#import "../common/defaultLayout.ftl" as defaultLayout>
+<@defaultLayout.layout>
+
+
+
+
+@defaultLayout.layout>
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/admin/procurement_type_list.ftl b/src/main/resources/templates/admin/procurement_type_list.ftl
new file mode 100644
index 0000000..87a60cc
--- /dev/null
+++ b/src/main/resources/templates/admin/procurement_type_list.ftl
@@ -0,0 +1,314 @@
+<#assign base=request.contextPath />
+<#import "../common/defaultLayout.ftl" as defaultLayout>
+<@defaultLayout.layout>
+
+
+
+
+
+
+
+
+
+ <#if (pager.list)?exists && (pager.list?size>0) >
+
+ <#include "../common/order_list_pager.ftl">
+
+ <#else>
+
+
没有找到任何记录!
+
+ #if>
+
+
+
+
+
+
+@defaultLayout.layout>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/templates/admin/profit_marfin_config_input.ftl b/src/main/resources/templates/admin/profit_marfin_config_input.ftl
index d783e43..53a26f7 100644
--- a/src/main/resources/templates/admin/profit_marfin_config_input.ftl
+++ b/src/main/resources/templates/admin/profit_marfin_config_input.ftl
@@ -7,7 +7,8 @@
-
配置管理 /项目利润率配置
+
配置管理 /
+ 项目利润率配置