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] =?UTF-8?q?=E9=87=87=E8=B4=AD=E7=B1=BB=E5=9E=8B=E9=85=8D?= =?UTF-8?q?=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> + + +
+
+
+
配置管理 / + 采购类型配置 +
+
+ +
+ +
+ +
+
+
+
+ *采购类型名称
+
+ +
+
+
+ +
+
+ *所属大类
+
+ +
+
+
+ +
+
启用/禁用
+ +
+ checked + /> + +
+ +
+
+
+ +
+
+
+ + +
+ + +
+
+
+
+ + + + + + + + + + \ 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> + +
+
+ +
配置管理 / + 采购类型配置 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
类型名称 +
+ +
+
所属大类 +
+ +
+
创建时间 +
+
+
+ + +
+
+
+ + +
+
+
+
启用状态 +
+ +
+
+
+ + <@shiro.hasPermission name="PROCTYPEEXPORT"> + + +
+
+
+
+
+
+ <@shiro.hasPermission name="PROCTYPEADD"> + + + <@shiro.hasPermission name="PROCTYPEDEL"> + + +
+
+
+
+
+
+ + + + + + + + + + + + + <#if (pager.list)?exists && (pager.list?size>0)> + <#list pager.list as list> + + + + + + + + + + + +
采购类型名称所属大类创建人创建时间操作
${list.name!}${list.category!}${list.createdBy!}<#if list.createdTime??>${list.createdTime?datetime} +
+
+ <@shiro.hasPermission name="PROCTYPEEDIT"> + + + checked + /> +
+
+
+
+
+ + <#if (pager.list)?exists && (pager.list?size>0) > +
+ <#include "../common/order_list_pager.ftl"> +
+ <#else> +
+

没有找到任何记录!

+
+ +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + 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 @@
-
配置管理 /项目利润率配置
+
配置管理 / + 项目利润率配置