diff --git a/src/main/java/com/pro/bus/controller/CheckController.java b/src/main/java/com/pro/bus/controller/CheckController.java new file mode 100644 index 0000000000000000000000000000000000000000..bd2303fb476587c187badb210ee2d498d8a41fc1 --- /dev/null +++ b/src/main/java/com/pro/bus/controller/CheckController.java @@ -0,0 +1,85 @@ +package com.pro.bus.controller; + +import com.github.pagehelper.PageInfo; +import com.pro.bus.entity.Check; +import com.pro.bus.entity.Process; +import com.pro.bus.service.CheckService; +import com.pro.sys.entity.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.Map; + +@Controller +@RequestMapping("/bus") +public class CheckController { + + @Autowired + private CheckService checkService; + /** + * 去质检页面 + * @return + */ + @RequestMapping("check") + public String toCheck(){ + return "bus/check"; + } + + /** + * 质检数据接口 + * @param page + * @param pageSize + * @param check + * @return + */ + @RequestMapping("getcheck") + @ResponseBody + public Map getcheck(@RequestParam(value = "page",defaultValue = "1") int page, @RequestParam(value = "limit",required = false) int pageSize, Check check){ + Map map = new HashMap(); + PageInfo checks = checkService.getcheck(page,pageSize,check); + map.put("code", 0); + map.put("msg", ""); + map.put("count", checks.getTotal()); + map.put("data", checks.getList()); + return map; + } + + /** + * 质检前处理 + * @param process_id + * @return + */ + @RequestMapping(value = "preCheck/{process_id}", + method = RequestMethod.GET) + @ResponseBody + public Result preCheck(@PathVariable("process_id")Integer process_id){ + return checkService.preCheck(process_id); + } + + /** + * 添加质检 + * @param check + * @return + */ + @RequestMapping(value = "addCheck", + method = RequestMethod.POST) + @ResponseBody + public Result addCheck(Check check){ + return checkService.addCheck(check); + } + + /** + * 完成质检 + * @param process_id + * @return + */ + @RequestMapping(value = "checkdone/{process_id}", + method = RequestMethod.PUT) + @ResponseBody + public Result checkdone(@PathVariable("process_id") Integer process_id){ + return checkService.checkdone(process_id); + } + +} diff --git a/src/main/java/com/pro/bus/entity/Check.java b/src/main/java/com/pro/bus/entity/Check.java new file mode 100644 index 0000000000000000000000000000000000000000..7478b4c9f20b096f04e035f7c9ade286fc226422 --- /dev/null +++ b/src/main/java/com/pro/bus/entity/Check.java @@ -0,0 +1,181 @@ +package com.pro.bus.entity; + +public class Check { + + private Integer process_id; //组号 + private Integer plan_id; //计划编号 + private String process_std; //规格 + private String process_cus; //客户 + private String process_color; //颜色 + private Double arrange_num; //整理量(产量) + private String process_status; //状态 + private String product_level; //等级 + private String product_num; //成品量 + private Double sum_num; //合计 + private Double level1_num; //等级1数量 + private Double level2_num; //等级2数量 + private Double level3_num; //等级3数量 + private Double level4_num; //等级外数量 + private Double check_num; //质检量 + private String check_date; //质检日期 + private String check_person; //质检人 + + public Integer getProcess_id() { + return process_id; + } + + public void setProcess_id(Integer process_id) { + this.process_id = process_id; + } + + public Integer getPlan_id() { + return plan_id; + } + + public void setPlan_id(Integer plan_id) { + this.plan_id = plan_id; + } + + public String getProcess_std() { + return process_std; + } + + public void setProcess_std(String process_std) { + this.process_std = process_std; + } + + public String getProcess_cus() { + return process_cus; + } + + public void setProcess_cus(String process_cus) { + this.process_cus = process_cus; + } + + public String getProcess_color() { + return process_color; + } + + public void setProcess_color(String process_color) { + this.process_color = process_color; + } + + public Double getArrange_num() { + return arrange_num; + } + + public void setArrange_num(Double arrange_num) { + this.arrange_num = arrange_num; + } + + public String getProcess_status() { + return process_status; + } + + public void setProcess_status(String process_status) { + this.process_status = process_status; + } + + public String getProduct_level() { + return product_level; + } + + public void setProduct_level(String product_level) { + this.product_level = product_level; + } + + public String getProduct_num() { + return product_num; + } + + public void setProduct_num(String product_num) { + this.product_num = product_num; + } + + public Double getSum_num() { + return sum_num; + } + + public void setSum_num(Double sum_num) { + this.sum_num = sum_num; + } + + public Double getLevel1_num() { + return level1_num; + } + + public void setLevel1_num(Double level1_num) { + this.level1_num = level1_num; + } + + public Double getLevel2_num() { + return level2_num; + } + + public void setLevel2_num(Double level2_num) { + this.level2_num = level2_num; + } + + public Double getLevel3_num() { + return level3_num; + } + + public void setLevel3_num(Double level3_num) { + this.level3_num = level3_num; + } + + public Double getLevel4_num() { + return level4_num; + } + + public void setLevel4_num(Double level4_num) { + this.level4_num = level4_num; + } + + public Double getCheck_num() { + return check_num; + } + + public void setCheck_num(Double check_num) { + this.check_num = check_num; + } + + public String getCheck_date() { + return check_date; + } + + public void setCheck_date(String check_date) { + this.check_date = check_date; + } + + public String getCheck_person() { + return check_person; + } + + public void setCheck_person(String check_person) { + this.check_person = check_person; + } + + @Override + public String toString() { + return "Check{" + + "process_id=" + process_id + + ", plan_id=" + plan_id + + ", process_std='" + process_std + '\'' + + ", process_cus='" + process_cus + '\'' + + ", process_color='" + process_color + '\'' + + ", arrange_num=" + arrange_num + + ", process_status='" + process_status + '\'' + + ", product_level='" + product_level + '\'' + + ", product_num='" + product_num + '\'' + + ", sum_num=" + sum_num + + ", level1_num=" + level1_num + + ", level2_num=" + level2_num + + ", level3_num=" + level3_num + + ", level4_num=" + level4_num + + ", check_num=" + check_num + + ", check_date='" + check_date + '\'' + + ", check_person='" + check_person + '\'' + + '}'; + } +} diff --git a/src/main/java/com/pro/bus/mapper/CheckMapper.java b/src/main/java/com/pro/bus/mapper/CheckMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..41d7057988e628a0f32d2d2d95f5341405cd1d7a --- /dev/null +++ b/src/main/java/com/pro/bus/mapper/CheckMapper.java @@ -0,0 +1,42 @@ +package com.pro.bus.mapper; + +import com.pro.bus.entity.Check; +import com.pro.sys.entity.Result; +import org.apache.ibatis.annotations.Param; +import org.mybatis.spring.annotation.MapperScan; + +import java.util.List; + +@MapperScan +public interface CheckMapper { + + /** + * 质检数据接口 + * @param check + * @return + */ + List getcheck(Check check); + + /** + * 质检前处理 + * @return + */ + int updateStatus(Integer process_id); + List ifexist(Integer process_id); + int preCheck(@Param("process_id") Integer process_id,@Param("level")String level); + + /** + * 添加质检 + * @param check + * @return + */ + int addCheck(Check check); + + /** + * 完成质检 + * @param process_id + * @return + */ + int checkdone(Integer process_id); + int checkdonep(Integer process_id); +} diff --git a/src/main/java/com/pro/bus/service/CheckService.java b/src/main/java/com/pro/bus/service/CheckService.java new file mode 100644 index 0000000000000000000000000000000000000000..ffd84978ff08d1110dd8548e6224e50160f74420 --- /dev/null +++ b/src/main/java/com/pro/bus/service/CheckService.java @@ -0,0 +1,38 @@ +package com.pro.bus.service; + +import com.github.pagehelper.PageInfo; +import com.pro.bus.entity.Check; +import com.pro.bus.entity.Process; +import com.pro.sys.entity.Result; + +public interface CheckService { + /** + * 质检数据接口 + * @param page + * @param pageSize + * @param check + * @return + */ + PageInfo getcheck(int page, int pageSize, Check check); + + /** + * 质检前处理 + * @param process_id + * @return + */ + Result preCheck(Integer process_id); + + /** + * 添加质检 + * @param check + * @return + */ + Result addCheck(Check check); + + /** + * 完成质检 + * @param process_id + * @return + */ + Result checkdone(Integer process_id); +} diff --git a/src/main/java/com/pro/bus/service/impl/CheckServiceImpl.java b/src/main/java/com/pro/bus/service/impl/CheckServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..91afc5b011e6fdbe82752cf9d8a72ca35f9851b9 --- /dev/null +++ b/src/main/java/com/pro/bus/service/impl/CheckServiceImpl.java @@ -0,0 +1,81 @@ +package com.pro.bus.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.pro.bus.entity.Check; +import com.pro.bus.entity.Process; +import com.pro.bus.mapper.CheckMapper; +import com.pro.bus.service.CheckService; +import com.pro.sys.entity.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class CheckServiceImpl implements CheckService { + + @Autowired + private CheckMapper checkMapper; + + /** + * 质检数据接口 + * @param page + * @param pageSize + * @param check + * @return + */ + @Override + public PageInfo getcheck(int page, int pageSize, Check check) { + PageHelper.startPage(page,pageSize); + return new PageInfo(checkMapper.getcheck(check)); + + } + + /** + * 质检前处理 + * @param process_id + * @return + */ + @Override + public Result preCheck(Integer process_id) { + int flag = 0; + if (checkMapper.ifexist(process_id).size() == 0 ) { + String[] levels = {"01", "02", "03", "04"}; + checkMapper.updateStatus(process_id); + for (int i = 0; i < levels.length; i++) { + flag = checkMapper.preCheck(process_id, levels[i]); + } + if (flag > 0){ + return Result.successResult(); + } + return Result.failResult(); + } + return Result.successResult(); + } + + /** + * 添加质检 + * @param check + * @return + */ + @Override + public Result addCheck(Check check) { + if (checkMapper.addCheck(check) > 0) { + return Result.successResult("成功质检"); + } + return Result.failResult("出错啦.."); + } + + /** + * 完成质检 + * @param process_id + * @return + */ + @Override + public Result checkdone(Integer process_id) { + if (checkMapper.checkdone(process_id) > 0) { + checkMapper.checkdonep(process_id); + return Result.successResult("质检完啦"); + } + return Result.failResult("凉凉.."); + } +} diff --git a/src/main/java/com/pro/sys/ShiroDefinitionSectionFactory.java b/src/main/java/com/pro/sys/ShiroDefinitionSectionFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..3a112ab8ef9e09eeaf087e78cac9a89b10c89cf8 --- /dev/null +++ b/src/main/java/com/pro/sys/ShiroDefinitionSectionFactory.java @@ -0,0 +1,113 @@ +package com.pro.sys; + +import com.pro.sys.entity.Module; +import com.pro.sys.service.ShiroService; +import org.apache.shiro.config.Ini; +import org.apache.shiro.mgt.SecurityManager; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.text.MessageFormat; +import java.util.List; + +/** + * 自定义生成filterChainDefinitionMap的工厂bean + */ +public class ShiroDefinitionSectionFactory implements FactoryBean { + + public static final String PREMISSION_FORMAT = "authc,perms[{0}]"; + + @Resource + private SecurityManager securityManager; + + @Resource + private ShiroService shiroService; + + /** + * 注入先于动态权限加载的默认认证授权定义 + */ + private String preFilterChainDefinitions; + + + /** + * 注入后于动态权限加载的默认认证授权定义 + */ + private String postFilterChainDefinitions; + + @Override + public Ini.Section getObject() throws Exception { + + /* + * Ini是Map的实现类 + * Ini.Section是Map的实现类,表示一个Ini配置片段实例 + */ + Ini ini = new Ini(); + + //加载动态权限前的ini配置 + ini.load(preFilterChainDefinitions); + + //获取ini配置片段 + Ini.Section section = ini.getSection(Ini.DEFAULT_SECTION_NAME); + + + /* + * 加载动态权限 + */ + + List moduleList = shiroService.getAllSubModules(); + + //由注入的资源管理对象获取所有资源数据,并且资源的authorities的属性是EAGER的fetch类型 + for(Module module:moduleList) { + if(StringUtils.isEmpty(module.getM_url())) { + continue; + } + + //将动态权限放入ini配置片段中 + section.put(module.getM_url(), MessageFormat.format(PREMISSION_FORMAT, String.valueOf(module.getM_url())) ); + + } + + //加载动态权限之后的ini配置 + Ini postIni = new Ini(); + postIni.load(postFilterChainDefinitions); + Ini.Section postSection=postIni.getSection(Ini.DEFAULT_SECTION_NAME); + + //将动态权限之后的ini配置放入统一的ini配置片段中 + section.putAll(postSection); + + System.out.println("==========================Shiro安全规则======================================="); + System.out.println(section.entrySet()); + System.out.println("=============================Shiro安全规则===================================="); + + return section; + } + + + + + public void setPreFilterChainDefinitions(String preFilterChainDefinitions) { + this.preFilterChainDefinitions = preFilterChainDefinitions; + } + + + + + public void setPostFilterChainDefinitions(String postFilterChainDefinitions) { + this.postFilterChainDefinitions = postFilterChainDefinitions; + } + + + + + @Override + public Class getObjectType() { + return this.getClass(); + } + + @Override + public boolean isSingleton() { + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/com/pro/sys/mapper/ShiroMapper.java b/src/main/java/com/pro/sys/mapper/ShiroMapper.java index 841014e6d6f193723112a4cdea977f15594e463d..48d3f136bc45a36f398339573c0251ecee2159b4 100644 --- a/src/main/java/com/pro/sys/mapper/ShiroMapper.java +++ b/src/main/java/com/pro/sys/mapper/ShiroMapper.java @@ -37,4 +37,10 @@ public interface ShiroMapper { * @return */ List getMenuList(@Param("ro_ids") List ro_ids); + + /** + * 获得所有权限 + * @return + */ + List getAllSubModules(); } \ No newline at end of file diff --git a/src/main/java/com/pro/sys/service/ShiroService.java b/src/main/java/com/pro/sys/service/ShiroService.java index 230a9d41d5de16e77c29607dbeb9a92055797cb4..0d78c58f3b37ef294c89fe07587ef44a8606a764 100644 --- a/src/main/java/com/pro/sys/service/ShiroService.java +++ b/src/main/java/com/pro/sys/service/ShiroService.java @@ -28,4 +28,10 @@ public interface ShiroService { * @return */ List getMenuList(User user); + + /** + * 获得所有权限 + * @return + */ + List getAllSubModules(); } diff --git a/src/main/java/com/pro/sys/service/impl/ShiroServiceImpl.java b/src/main/java/com/pro/sys/service/impl/ShiroServiceImpl.java index 8cd82971eb8cf1c207f905853e9eac3f1929335c..effb5e9caba56ea0367a6f70e999221c5f1e86e5 100644 --- a/src/main/java/com/pro/sys/service/impl/ShiroServiceImpl.java +++ b/src/main/java/com/pro/sys/service/impl/ShiroServiceImpl.java @@ -66,4 +66,13 @@ public class ShiroServiceImpl implements ShiroService { return mainMenuList; } + /** + * 获得所有权限 + * @return + */ + @Override + public List getAllSubModules() { + return shiroMapper.getAllSubModules(); + } + } diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index 7d0b1d38ac8aa9223a264b864eaf7f6763522044..8a989a5dcd528319d14b3292f36e5eddc717beb0 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -2,7 +2,7 @@ ### SpringҪweb.xmlָļλãӼ ### #log4jĿĵأĿĵؿԶƣͺĶӦ #[ level ] , appenderName1 , appenderName2 -log4j.rootLogger=INFO, console +log4j.rootLogger=debug, console #-----------------------------------# #1 ־ĿĵΪ̨ @@ -35,7 +35,7 @@ log4j.logger.org.mybatis=DEBUG #log4j.logger.org.mybatis.common.jdbc.ScriptRunner=DEBUG# #log4j.logger.org.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG# #log4j.logger.java.sql.Connection=DEBUG -log4j.logger.java.sql=DEBUG -log4j.logger.java.sql.Statement=DEBUG -log4j.logger.java.sql.ResultSet=DEBUG -log4j.logger.java.sql.PreparedStatement=DEBUG +log4j.logger.java.sql=debug +log4j.logger.java.sql.Statement=debug +log4j.logger.java.sql.ResultSet=debug +log4j.logger.java.sql.PreparedStatement=debug diff --git a/src/main/resources/mapper/bus/CheckMapper.xml b/src/main/resources/mapper/bus/CheckMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a132c994f6c3a3f8796569ddb533f70f1900eea --- /dev/null +++ b/src/main/resources/mapper/bus/CheckMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + update + bus_process + set + process_status='30' + where + process_id=#{process_id} + + + + + + select ifnull(max(product_id),0)+1 from bus_product + + INSERT INTO + bus_product + VALUES + (#{product_id},#{process_id},(select process_cus from bus_process where process_id=#{process_id}), + (select process_std from bus_process where process_id=#{process_id}), + (select process_color from bus_process where process_id=#{process_id}), + #{level},0,'30') + + + + update bus_product + set + product_num=#{product_num} + where + process_id=#{process_id} and product_level=#{product_level} + + + + update bus_product + set + product_status='35' + where + process_id=#{process_id} + + + update bus_process + set + process_status='35' + where + process_id=#{process_id} + + \ No newline at end of file diff --git a/src/main/resources/mapper/sys/ShiroMapper.xml b/src/main/resources/mapper/sys/ShiroMapper.xml index 28460be75b17b6a35546a2369de9ab017e625b44..882f318df1cbbe0e0809b2048e475e8c8d0e87a0 100644 --- a/src/main/resources/mapper/sys/ShiroMapper.xml +++ b/src/main/resources/mapper/sys/ShiroMapper.xml @@ -37,4 +37,13 @@ ) c ON c.m_id=b.m_id WHERE b.m_status != '99' AND b.m_ismenu=1 GROUP BY b.m_id + \ No newline at end of file diff --git a/src/main/resources/spring-root-shiro.xml b/src/main/resources/spring-root-shiro.xml index 786afb58af6d541c43f4cb2bbd9d083c58362e9a..b5a0a9adff5708d9dbb20457ee07b183d0d67858 100644 --- a/src/main/resources/spring-root-shiro.xml +++ b/src/main/resources/spring-root-shiro.xml @@ -13,17 +13,26 @@ - + + + + + + - /static/** = anon - /sys/login = anon - /pro/readName = authc, perms[/readName] + /static/** = anon + /sys/login = anon /logout = logout - /** = authc + + + + + /** = authc + diff --git a/src/main/web/WEB-INF/views/bus/check.jsp b/src/main/web/WEB-INF/views/bus/check.jsp new file mode 100644 index 0000000000000000000000000000000000000000..945f1f06b12c170312caf204888d3eef08261729 --- /dev/null +++ b/src/main/web/WEB-INF/views/bus/check.jsp @@ -0,0 +1,308 @@ +<%-- + Created by IntelliJ IDEA. + User: lenovo + Date: 2018/8/21 + Time: 17:21 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + 质检 + + + + + +
+
+ +
+ +
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + +
组号客户生产数量质检产量(米)状态操作
合计一等品二等品三等品等外品
+<%--添加质检--%> + + + + + + + + + + + + + + + +