diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index 24eba018..41166b74 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -71,6 +71,9 @@ public class PageController { @Autowired private GroupService groupService; + @Autowired + private SplitUnitService splitUnitService; + @GetMapping("/") public ModelAndView Init(HttpServletRequest request) { @@ -374,7 +377,7 @@ public class PageController { return mv; } - @GetMapping("depository-out") + @GetMapping("/depository-out") public ModelAndView depository_out(HttpServletRequest request) { UserByPort userToken = (UserByPort) request.getAttribute("userToken"); ModelAndView mv = new ModelAndView(); @@ -396,8 +399,21 @@ public class PageController { return mv; } + @GetMapping("/split_edit") + public ModelAndView split_edit(Integer id){ + if(id == null){ + throw new MyException("缺少必要参数"); + } + ModelAndView mv = new ModelAndView(); + // 获取所进行查询的拆单详细信息 + SplitInfoP splitInfoPById = splitUnitService.findSplitInfoPById(id); + mv.addObject("record",splitInfoPById); + mv.setViewName("pages/split/split_edit"); + return mv; + } + - @GetMapping("split-out") + @GetMapping("/split_out") public ModelAndView split_out(HttpServletRequest request) { UserByPort userToken = (UserByPort) request.getAttribute("userToken"); ModelAndView mv = new ModelAndView(); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/SplitController.java b/src/main/java/com/dreamchaser/depository_manage/controller/SplitController.java index 79693f10..518b3181 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/SplitController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/SplitController.java @@ -1,14 +1,19 @@ package com.dreamchaser.depository_manage.controller; +import com.dreamchaser.depository_manage.entity.SplitInfo; import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.pojo.StatusInfo; import com.dreamchaser.depository_manage.service.SplitUnitService; import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; import java.util.Map; @RestController @@ -43,6 +48,63 @@ public class SplitController { */ @GetMapping("/split_out") public RestResponse splitOut(@RequestParam Map map,HttpServletRequest request){ - return null; + return new RestResponse(splitUnitService.findSplitInfoPByCondition(map),splitUnitService.findSplitInfoPCountByCondition(map),200); + } + + + /** + * 根据条件删除对应的拆单记录 + * @param map 待删除数据 + * @return + */ + @PostMapping("/split_del") + public RestResponse splitDel(@RequestBody Map map){ + if(map.containsKey("id")){ + Integer id = ObjectFormatUtil.toInteger(map.get("id")); + Integer integer = splitUnitService.delSplitInfoById(id); + if(Integer.compare(integer,-1) == 0){ + // 如果没有删除 + return new RestResponse("",666,new StatusInfo("删除失败","该拆单正在使用中,不允许进行删除操作")); + }else{ + return CrudUtil.deleteHandle(1,integer); + } + }else if(map.containsKey("ids")){ + List ids = (List) map.get("ids"); + List errInfo = new ArrayList<>(); + int result = 0; + for (Integer id : ids) { + Integer integer = splitUnitService.delSplitInfoById(id); + if (Integer.compare(integer, -1) == 0) { + // 如果没有删除 + errInfo.add(splitUnitService.findSplitInfoById(id)); + } else { + result += integer; + } + } + if(result == ids.size()){ + return CrudUtil.deleteHandle(result,ids.size()); + }else{ + return new RestResponse(errInfo,666,new StatusInfo("删除失败","有正在使用中的拆单,不允许进行删除")); + } + + }else{ + throw new MyException("缺少必要参数"); + } + } + + + /** + * 根据条件修改拆单信息 + * @param map 待修改数据 + * @return + */ + @PostMapping("/split_edit") + public RestResponse splitEdit(@RequestBody Map map){ + if(map.containsKey("id")){ + Integer integer = splitUnitService.updateSplitInfo(map); + return CrudUtil.putHandle(1,integer); + }else{ + throw new MyException("缺少必要参数"); + } } } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.java index d97416bb..ebcd571c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.java @@ -104,4 +104,35 @@ public interface SplitUnitMapper { */ List findSplitInfoPByCondition(Map map); + /** + * 根据条件查询对应拆单数量 + * @param map 查询条件 + * @return + */ + Integer findSplitInfoPCountByCondition(Map map); + + + /** + * 根据主键id获取拆单信息 + * @param id 待查询id + * @return + */ + SplitInfo findSplitInfoById(Integer id); + + + /** + * 根据拆单记录id获取对应的库存处理记录 + * @param sid 拆单记录id + * @return + */ + List findSplitInventoryBySid(Integer sid); + + + /** + * 根据主键id获取拆单详细信息 + * @param id 待查询主键 + * @return + */ + SplitInfoP findSplitInfoPById(Integer id); + } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml index 7ef60d3c..a20840e3 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml @@ -51,7 +51,7 @@ - si.id,si.iid,si.sid.si.outQuantity,si.inQuantity,si.saveQuantity + si.id,si.iid,si.sid,si.outQuantity,si.inQuantity,si.saveQuantity @@ -74,6 +74,13 @@ + + + + update `split` @@ -187,6 +201,14 @@ + + + - + diff --git a/src/main/java/com/dreamchaser/depository_manage/service/SplitUnitService.java b/src/main/java/com/dreamchaser/depository_manage/service/SplitUnitService.java index 56c704b1..e6aefb78 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/SplitUnitService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/SplitUnitService.java @@ -2,6 +2,7 @@ package com.dreamchaser.depository_manage.service; import com.dreamchaser.depository_manage.entity.SplitInfo; import com.dreamchaser.depository_manage.entity.SplitInventory; +import com.dreamchaser.depository_manage.pojo.SplitInfoP; import java.util.List; import java.util.Map; @@ -24,4 +25,55 @@ public interface SplitUnitService { * @return */ Integer addSplitInventory(Map map); + + + /** + * 根据条件查询对应拆单详细信息 + * @param map 查询条件 + * @return + */ + List findSplitInfoPByCondition(Map map); + + /** + * 根据条件查询对应拆单数量 + * @param map 查询条件 + * @return + */ + Integer findSplitInfoPCountByCondition(Map map); + + /** + * 根据主键删除拆单信息(软删除) + * @param id 待删除id + * @return + */ + Integer delSplitInfoById(Integer id); + + /** + * 根据主键删除拆单信息(硬删除) + * @param id 待删除id + * @return + */ + Integer realDelSplitInById(Integer id); + + /** + * 根据条件修改拆单信息 + * @param map 待修改数据 + * @return + */ + Integer updateSplitInfo(Map map); + + + /** + * 根据主键id获取拆单信息 + * @param id 待查询主键 + * @return + */ + SplitInfo findSplitInfoById(Integer id); + + /** + * 根据主键id获取拆单详细信息 + * @param id 待查询主键 + * @return + */ + SplitInfoP findSplitInfoPById(Integer id); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java index d2423127..cf2adb8e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java @@ -3,10 +3,12 @@ package com.dreamchaser.depository_manage.service.impl; import com.dreamchaser.depository_manage.entity.Inventory; import com.dreamchaser.depository_manage.entity.SplitInfo; import com.dreamchaser.depository_manage.entity.SplitInventory; +import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.mapper.DepositoryMapper; import com.dreamchaser.depository_manage.mapper.MaterialMapper; import com.dreamchaser.depository_manage.mapper.PlaceMapper; import com.dreamchaser.depository_manage.mapper.SplitUnitMapper; +import com.dreamchaser.depository_manage.pojo.SplitInfoP; import com.dreamchaser.depository_manage.service.DepositoryRecordService; import com.dreamchaser.depository_manage.service.MaterialService; import com.dreamchaser.depository_manage.service.SplitUnitService; @@ -16,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; +import java.util.List; import java.util.Map; @@ -134,4 +137,132 @@ public class SplitUnitServiceImpl implements SplitUnitService { } return result; } + + /** + * 根据条件查询对应拆单详细信息 + * @param map 查询条件 + * @return + */ + @Override + public List findSplitInfoPByCondition(Map map) { + Integer size = 10, page = 1; + if (map.containsKey("size")) { + size = ObjectFormatUtil.toInteger(map.get("size")); + map.put("size", size); + } + if (map.containsKey("page")) { + page = ObjectFormatUtil.toInteger(map.get("page")); + map.put("begin", (page - 1) * size); + } + Object state = 1; + if(map.containsKey("sstate")){ + state = map.get("sstate"); + } + map.put("sstate",state); + return splitUnitMapper.findSplitInfoPByCondition(map); + } + + /** + * 根据条件查询对应拆单数量 + * @param map 查询条件 + * @return + */ + @Override + public Integer findSplitInfoPCountByCondition(Map map) { + return splitUnitMapper.findSplitInfoPCountByCondition(map); + } + + /** + * 根据主键删除拆单信息(软删除) + * @param id 待删除id + * @return + */ + @Override + public Integer delSplitInfoById(Integer id) { + // 根据主键获取拆单信息 + SplitInfo splitInfo = splitUnitMapper.findSplitInfoById(id); + // 根据拆单信息获取对应的拆单库存处理记录 + List splitInventoryList = splitUnitMapper.findSplitInventoryBySid(id); + // 用于标志是否可以删除 + boolean flag = true; + for (SplitInventory splitInventory : + splitInventoryList) { + Integer saveQuantity = splitInventory.getSaveQuantity(); + if(Integer.compare(saveQuantity,0) != 0){ + // 如果当前记录的剩余库存不为0 + flag = false; + break; + } + } + if(flag){ + // 如果可以删除 + splitInfo.setState(3); + return splitUnitMapper.updateSplitInfo(splitInfo); + }else{ + // 如果不可以 + return -1; + } + } + + /** + * 根据主键删除拆单信息(硬删除) + * @param id 待删除id + * @return + */ + @Override + public Integer realDelSplitInById(Integer id) { + // 根据主键获取拆单信息 + SplitInfo splitInfo = splitUnitMapper.findSplitInfoById(id); + // 根据拆单信息获取对应的拆单库存处理记录 + List splitInventoryList = splitUnitMapper.findSplitInventoryBySid(id); + // 用于标志是否可以删除 + boolean flag = true; + for (SplitInventory splitInventory : + splitInventoryList) { + Integer saveQuantity = splitInventory.getSaveQuantity(); + if(Integer.compare(saveQuantity,0) != 0){ + // 如果当前记录的剩余库存不为0 + flag = false; + break; + } + } + if(flag){ + // 如果可以删除 + return splitUnitMapper.delSplitInfoById(splitInfo.getId()); + }else{ + // 如果不可以 + return -1; + } + } + + /** + * 根据条件修改拆单信息 + * @param map 待修改数据 + * @return + */ + @Override + public Integer updateSplitInfo(Map map) { + map.put("state", map.getOrDefault("state", 2)); + return splitUnitMapper.updateSplitInfo(map); + } + + /** + * 根据主键id获取拆单信息 + * @param id 待查询主键 + * @return + */ + @Override + public SplitInfo findSplitInfoById(Integer id) { + return splitUnitMapper.findSplitInfoById(id); + } + + /** + * 根据主键id获取拆单详细信息 + * @param id 待查询主键 + * @return + */ + @Override + public SplitInfoP findSplitInfoPById(Integer id) { + return splitUnitMapper.findSplitInfoPById(id); + } } diff --git a/src/main/resources/templates/pages/material/material-out.html b/src/main/resources/templates/pages/material/material-out.html index 09411d5d..e8f4b3b6 100644 --- a/src/main/resources/templates/pages/material/material-out.html +++ b/src/main/resources/templates/pages/material/material-out.html @@ -379,7 +379,7 @@ if (obj.event === 'detail') { var index = layer.open({ - title: '仓库信息详情', + title: '物料信息详情', type: 2, shade: 0.2, maxmin: true, @@ -467,17 +467,6 @@ where: {"parentId": parentId} }); }); - } else if (obj.event == 'manager') { - - layer.open({ - type: 2, - title: '仓管员信息', - shadeClose: true, - shade: false, - maxmin: true, //开启最大化最小化按钮 - area: ['893px', '600px'], - content: '/ManagerViewByMid?id=' + data.id - }); } }); diff --git a/src/main/resources/templates/pages/split/split-out.html b/src/main/resources/templates/pages/split/split-out.html index 62340bf1..e0a32445 100644 --- a/src/main/resources/templates/pages/split/split-out.html +++ b/src/main/resources/templates/pages/split/split-out.html @@ -19,11 +19,20 @@
- +
- +
+ +
+ +
+ +
+
+ +
@@ -47,19 +56,14 @@ @@ -75,11 +79,10 @@
+ + + + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml index 7ef60d3c..a20840e3 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml @@ -51,7 +51,7 @@ - si.id,si.iid,si.sid.si.outQuantity,si.inQuantity,si.saveQuantity + si.id,si.iid,si.sid,si.outQuantity,si.inQuantity,si.saveQuantity @@ -74,6 +74,13 @@ + + + + update `split` @@ -187,6 +201,14 @@ + + + - + diff --git a/target/classes/templates/pages/material/material-out.html b/target/classes/templates/pages/material/material-out.html index 09411d5d..e8f4b3b6 100644 --- a/target/classes/templates/pages/material/material-out.html +++ b/target/classes/templates/pages/material/material-out.html @@ -379,7 +379,7 @@ if (obj.event === 'detail') { var index = layer.open({ - title: '仓库信息详情', + title: '物料信息详情', type: 2, shade: 0.2, maxmin: true, @@ -467,17 +467,6 @@ where: {"parentId": parentId} }); }); - } else if (obj.event == 'manager') { - - layer.open({ - type: 2, - title: '仓管员信息', - shadeClose: true, - shade: false, - maxmin: true, //开启最大化最小化按钮 - area: ['893px', '600px'], - content: '/ManagerViewByMid?id=' + data.id - }); } });