From 0478e9b5924a0a1476bb34006e2024dc350ae083 Mon Sep 17 00:00:00 2001 From: erdanergou Date: Fri, 9 Jun 2023 13:35:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=9A=E5=8A=A1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9B=B8=E5=85=B3=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BusinessTypeController.java | 149 ++++++++ .../controller/PageController.java | 62 ++- .../entity/BusinessType.java | 50 +++ .../mapper/BusinessTypeMapper.java | 101 +++++ .../mapper/BusinessTypeMapper.xml | 181 +++++++++ .../mapper/DepositoryRecordMapper.xml | 8 +- .../pojo/ApplicationOutRecordP.java | 2 +- .../service/BusinessTypeService.java | 97 +++++ .../service/impl/BusinessTypeServiceImpl.java | 155 ++++++++ .../impl/DepositoryRecordServiceImpl.java | 218 +++++++++-- .../pages/BusinessType/businesstype_add.html | 126 +++++++ .../pages/BusinessType/businesstype_edit.html | 125 +++++++ .../pages/BusinessType/businesstype_out.html | 354 ++++++++++++++++++ .../pages/application/application-review.html | 141 +++++-- .../templates/pages/application/my-task.html | 50 +-- .../pages/stockTaking/stockTaking.html | 2 +- .../depository_manage/SomeTest.java | 12 +- .../mapper/DepositoryRecordMapper.xml | 8 +- .../pages/application/application-review.html | 141 +++++-- .../templates/pages/application/my-task.html | 50 +-- .../pages/stockTaking/stockTaking.html | 2 +- 21 files changed, 1818 insertions(+), 216 deletions(-) create mode 100644 src/main/java/com/dreamchaser/depository_manage/controller/BusinessTypeController.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/BusinessType.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.xml create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/BusinessTypeService.java create mode 100644 src/main/java/com/dreamchaser/depository_manage/service/impl/BusinessTypeServiceImpl.java create mode 100644 src/main/resources/templates/pages/BusinessType/businesstype_add.html create mode 100644 src/main/resources/templates/pages/BusinessType/businesstype_edit.html create mode 100644 src/main/resources/templates/pages/BusinessType/businesstype_out.html diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/BusinessTypeController.java b/src/main/java/com/dreamchaser/depository_manage/controller/BusinessTypeController.java new file mode 100644 index 00000000..ed7fba3f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/BusinessTypeController.java @@ -0,0 +1,149 @@ +package com.dreamchaser.depository_manage.controller; + +import com.dreamchaser.depository_manage.entity.BusinessType; +import com.dreamchaser.depository_manage.entity.UserByPort; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; +import com.dreamchaser.depository_manage.service.BusinessTypeService; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@RequestMapping("/businessType") +public class BusinessTypeController { + @Autowired + private BusinessTypeService businessTypeService; + + /** + * 添加一条新的业务类型数据 + * + * @param map 带插入数据 + * @param request + * @return + */ + @PostMapping("/addBusinessType") + public RestResponse addBusinessType(@RequestBody Map map, HttpServletRequest request) { + String usertoken = request.getHeader("user-token"); + String userkey = request.getHeader("user-key"); + if (usertoken == null) { + usertoken = (String) request.getSession().getAttribute("userToken"); + userkey = (String) request.getSession().getAttribute("userKey"); + } + // 获取当前登录用户 + UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken); + map.put("createUid", userToken.getId()); + return CrudUtil.insertHandle(businessTypeService.addBusinessType(map), 1); + } + + /** + * 修改一条业务类型数据 + * + * @param map 待修改数据 + * @param request + * @return + */ + @PostMapping("/updateBusinessType") + public RestResponse updateBusinessType(@RequestBody Map map, HttpServletRequest request) { + String usertoken = request.getHeader("user-token"); + String userkey = request.getHeader("user-key"); + if (usertoken == null) { + usertoken = (String) request.getSession().getAttribute("userToken"); + userkey = (String) request.getSession().getAttribute("userKey"); + } + // 获取当前登录用户 + UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken); + map.put("updateUid", userToken.getId()); + return CrudUtil.updateHandle(businessTypeService.updateBusinessType(map), 1); + } + + + /** + * 删除业务类型数据(软删除) + * + * @param map 待删除数据 + * @param request + * @return + */ + @PostMapping("/deleteBusinessType") + public RestResponse deleteBusinessType(@RequestBody Map map, HttpServletRequest request) { + String usertoken = request.getHeader("user-token"); + String userkey = request.getHeader("user-key"); + if (usertoken == null) { + usertoken = (String) request.getSession().getAttribute("userToken"); + userkey = (String) request.getSession().getAttribute("userKey"); + } + // 获取当前登录用户 + UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken); + map.put("state", 3); + map.put("updateUid", userToken.getId()); + if (map.containsKey("id")) { + return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateById(map), 1); + + } else if (map.containsKey("ids")) { + Integer count = ObjectFormatUtil.toInteger(map.get("count")); + return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateByIds(map), count); + } else { + throw new MyException("所需请求参数缺失!"); + } + } + + + /** + * 修改业务类型数据状态(启用禁用) + * + * @param map 待修改数据 + * @param request + * @return + */ + @PostMapping("/forbiddenBusinessType") + public RestResponse forbiddenBusinessType(@RequestBody Map map, HttpServletRequest request) { + String usertoken = request.getHeader("user-token"); + String userkey = request.getHeader("user-key"); + if (usertoken == null) { + usertoken = (String) request.getSession().getAttribute("userToken"); + userkey = (String) request.getSession().getAttribute("userKey"); + } + // 获取当前登录用户 + UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken); + if (map.containsKey("state")) { + map.put("state", 1); + } else { + map.put("state", 2); + } + map.put("updateUid", userToken.getId()); + if (map.containsKey("id")) { + return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateById(map), 1); + + } else if (map.containsKey("ids")) { + Integer count = ObjectFormatUtil.toInteger(map.get("count")); + return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateByIds(map), count); + } else { + throw new MyException("所需请求参数缺失!"); + } + } + + /** + * 根据条件查询业务类型数据 + * @param map 带查询数据 + * @param request + * @return + */ + @GetMapping("/findBusinessType") + public RestResponse findBusinessType(@RequestParam Map map, HttpServletRequest request) { + List businessTypeByCondition = businessTypeService.findBusinessTypeByCondition(map); + Integer businessTypeCountByCondition = businessTypeService.findBusinessTypeCountByCondition(map); + return new RestResponse(businessTypeByCondition, businessTypeCountByCondition, 200); + } + + +} 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 fffe7fc3..9b9a5a41 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -69,6 +69,8 @@ public class PageController { @Autowired private ConstructionUnitService constructionUnitService; + @Autowired + private BusinessTypeService businessTypeService; /** * 初始化路由跳转 @@ -2020,6 +2022,7 @@ public class PageController { depositoryManagerId = manager.split(","); } List depositoryManager = new ArrayList<>(); + // 仓储中心负责人名称 StringBuilder depositoryManagerNames = new StringBuilder(); for (String s : depositoryManagerId) { if ("".equals(s)) { @@ -2030,12 +2033,27 @@ public class PageController { depositoryManager.add(user); depositoryManagerNames.append(user.getName()).append(","); } + // 平衡岗人员 + String balancePoster = recordP.getBalancePoster(); + StringBuilder balancePosterName = new StringBuilder(); + if(balancePoster != null && !"".equals(balancePoster)){ + String[] strings = balancePoster.split(","); + for (String string : strings) { + if(!"".equals(string)){ + UserByPort user = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(string), userKey, token); + balancePosterName.append(user.getName()).append(","); + } + } + recordP.setBalancePosterTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getBalancePosterTime()))); + } + + // 获取出库的所有仓库 List depositoryByIds = depositoryService.findDepositoryByIds(depositoryIdList); for (Depository depository : depositoryByIds ) { depositoryName.append(depository.getDname()).append(","); } - + // 获取出库的所有库位 List placeByIdS = placeService.findPlaceByIdS(placeIdList); for (Place placeById : placeByIdS) { // 获取出库库位 @@ -2051,6 +2069,7 @@ public class PageController { recordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime()))); recordP.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getDepartmentheadTime()))); recordP.setDepositoryManagerName(depositoryManagerNames.toString()); + recordP.setBalancePosterName(balancePosterName.toString()); recordP.setApplicantName(userByPort.getMaindeparmentname() + "_" + userByPort.getName()); recordP.setDepartmentheadName(departmentHeadName.toString()); recordP.setDepositoryName(depositoryName.toString()); @@ -2364,6 +2383,7 @@ public class PageController { balancePosterName.append(userByPort.getName()).append(","); } } + applicationOutRecordPById.setBalancePosterTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getBalancePosterTime()))); }else{ applicationOutRecordPById.setBalancePosterTime(""); } @@ -3559,6 +3579,46 @@ public class PageController { return mv; } + + /** + * 添加施工单位页 + * + * @return + */ + @GetMapping("/businessTypeAdd") + public String businessTypeAdd() { + return "pages/BusinessType/businesstype_add"; + } + + + /** + * 施工单位查询 + * + * @return + */ + @GetMapping("/businessTypeOut") + public String businessTypeOut() { + return "pages/BusinessType/businesstype_out"; + } + + /** + * 施工单位编辑 + * + * @param id 施工单位id + * @return + */ + @GetMapping("/businessTypeEdit") + public ModelAndView businessTypeEdit(Integer id) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("pages/BusinessType/businesstype_edit"); + BusinessType businessTypeById = businessTypeService.findBusinessTypeById(id); + mv.addObject("record", businessTypeById); + return mv; + } + + + + // 用于展示库存数据 @GetMapping("/toShowInventory") public ModelAndView toShowInventory(@RequestParam Map param) { diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/BusinessType.java b/src/main/java/com/dreamchaser/depository_manage/entity/BusinessType.java new file mode 100644 index 00000000..753868d5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/BusinessType.java @@ -0,0 +1,50 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +/** + * 业务类型类 + */ +@Data +public class BusinessType { + /** + * 自增id主键 + */ + private Integer id; + /** + * 业务类型名称 + */ + private String typeName; + /** + * 业务类型描述 + */ + private String typeDescription; + /** + * 单据类型名称 + */ + private String recordTypeName; + /** + * 单据类型描述 + */ + private String recordTypeDescription; + /** + * 1启用2禁用3删除 + */ + private Integer state; + /** + * 创建人id + */ + private Integer createUid; + /** + * 创建时间 + */ + private Long createTime; + /** + * 修改人id + */ + private Integer updateUid; + /** + * 修改人时间 + */ + private Long updateTime; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.java new file mode 100644 index 00000000..ce89377f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.java @@ -0,0 +1,101 @@ +package com.dreamchaser.depository_manage.mapper; + +import com.dreamchaser.depository_manage.entity.BusinessType; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +@Mapper +@Repository +public interface BusinessTypeMapper { + /** + * 插入一条业务类型数据 + * @param map 待插入数据 + * @return + */ + Integer addBusinessType(Map map); + + /** + * 插入一条业务类型数据 + * @param businessType 待插入数据 + * @return + */ + Integer addBusinessType(BusinessType businessType); + + /** + * 修改业务类型数据 + * @param map 待修改数据 + * @return + */ + Integer updateBusinessType(Map map); + + /** + * 修改业务类型数据 + * @param businessType 待修改数据 + * @return + */ + Integer updateBusinessType(BusinessType businessType); + + /** + * 修改业务类型数据状态 + * @param map 待修改数据 + * @return + */ + Integer updateBusinessTypeStateById(Map map); + /** + * 批量修改业务类型数据状态 + * @param map 待修改数据 + * @return + */ + Integer updateBusinessTypeStateByIds(Map map); + + /** + * 根据id删除一条业务类型数据(硬删除) + * @param id 待删除id + * @return + */ + Integer deleteBusinessTypeById(Integer id); + + /** + * 根据id批量删除一条业务类型数据(硬删除) + * @param ids 待删除id列表 + * @return + */ + Integer deleteBusinessTypeByIds(List ids); + + /** + * 根据条件获取业务类型数据 + * @param map 待查询数据 + * @return + */ + List findBusinessTypeByCondition(Map map); + + /** + * 根据条件获取业务类型数据数量 + * @param map 待查询数据 + * @return + */ + Integer findBusinessTypeCountByCondition(Map map); + + /** + * 获取所有业务类型数据 + * @return + */ + List findBusinessTypeAll(); + + /** + * 根据id获取业务类型数据 + * @param id 待查询id + * @return + */ + BusinessType findBusinessTypeById(Integer id); + + /** + * 根据id批量获取业务类型数据 + * @param ids 待查询id列表 + * @return + */ + List findBusinessTypeByIds(List ids); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.xml new file mode 100644 index 00000000..295a4a85 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + insert into businesstype(id, typeName, typeDescription, recordTypeName, recordTypeDescription, state, createUid, + createTime) + values (#{id}, #{typeName}, #{typeDescription}, #{recordTypeName}, #{recordTypeDescription}, #{state}, + #{createUid}, #{createTime}) + + + + update businesstype + + + typeName = #{typeName}, + + + typeDescription = #{typeDescription}, + + + recordTypeName = #{recordTypeName}, + + + recordTypeDescription = #{recordTypeDescription}, + + + state = #{state}, + + + updateUid = #{updateUid}, + + + updateTime = #{updateTime} + + + where id = #{id} + + + + + update businesstype + + + state = #{state}, + + + updateUid = #{updateUid}, + + + updateTime = #{updateTime} + + + where id = #{id} + + + + update businesstype + + + state = #{state}, + + + updateUid = #{updateUid}, + + + updateTime = #{updateTime} + + + where id in + + #{id} + + + + + delete + from businesstype + where id = #{id} + + + + delete + from businesstype + where id in + + #{id} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml index e032a1ab..7880e94e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml @@ -323,13 +323,13 @@ FROM applicationOutRecordInfo WHERE 1=1 and (departmentHeadTime = 0 and FIND_IN_SET(#{userId},departmenthead) != 0 and DepartmentheadPass = 3) - or (depositoryManagerTime = 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass = - 3) + or (depositoryManagerTime = 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass =3) + OR ( balancePosterTime = 0 AND FIND_IN_SET( #{userId}, balancePoster ) != 0 AND balancePosterPass = 3 ) and (departmentHeadTime != 0 and FIND_IN_SET(#{userId},departmenthead) != 0 and DepartmentheadPass != 3) - or (depositoryManagerTime != 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass - != 3) + or (depositoryManagerTime != 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass != 3) + OR ( balancePosterTime != 0 AND FIND_IN_SET( #{userId}, balancePoster ) != 0 AND balancePosterPass != 3 ) group by aorid ORDER BY applicantTime desc diff --git a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java index f3a39738..be8d3bb8 100644 --- a/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java +++ b/src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java @@ -289,7 +289,7 @@ public class ApplicationOutRecordP { this.createUid = aor.getCreateUid(); this.balancePoster = aor.getBalancePoster(); this.balancePosterName = aor.getBalancePosterName(); - this.balancePosterTime = aor.getBalancePosterTime() == null ? "" : DateUtil.TimeStampToDateTime(Long.valueOf(aor.getBalancePosterTime())); + this.balancePosterTime = aor.getBalancePosterTime() == null ? "" : aor.getBalancePosterTime(); this.balancePosterPass = aor.getBalancePosterPass(); this.balancePosterMessage = aor.getBalancePosterMessage(); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/BusinessTypeService.java b/src/main/java/com/dreamchaser/depository_manage/service/BusinessTypeService.java new file mode 100644 index 00000000..e7ebd395 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/BusinessTypeService.java @@ -0,0 +1,97 @@ +package com.dreamchaser.depository_manage.service; + +import com.dreamchaser.depository_manage.entity.BusinessType; + +import java.util.List; +import java.util.Map; + +public interface BusinessTypeService { + /** + * 插入一条业务类型数据 + * @param map 待插入数据 + * @return + */ + Integer addBusinessType(Map map); + + /** + * 插入一条业务类型数据 + * @param businessType 待插入数据 + * @return + */ + Integer addBusinessType(BusinessType businessType); + + /** + * 修改业务类型数据 + * @param map 待修改数据 + * @return + */ + Integer updateBusinessType(Map map); + + /** + * 修改业务类型数据状态 + * @param map 待修改数据 + * @return + */ + Integer updateBusinessTypeStateById(Map map); + /** + * 批量修改业务类型数据状态 + * @param map 待修改数据 + * @return + */ + Integer updateBusinessTypeStateByIds(Map map); + + /** + * 修改业务类型数据 + * @param businessType 待修改数据 + * @return + */ + Integer updateBusinessType(BusinessType businessType); + + /** + * 根据id删除一条业务类型数据(硬删除) + * @param id 待删除id + * @return + */ + Integer deleteBusinessTypeById(Integer id); + + /** + * 根据id批量删除一条业务类型数据(硬删除) + * @param ids 待删除id列表 + * @return + */ + Integer deleteBusinessTypeByIds(List ids); + + /** + * 根据条件获取业务类型数据 + * @param map 待查询数据 + * @return + */ + List findBusinessTypeByCondition(Map map); + + /** + * 根据条件获取业务类型数据数量 + * @param map 待查询数据 + * @return + */ + Integer findBusinessTypeCountByCondition(Map map); + + /** + * 获取所有业务类型数据 + * @return + */ + List findBusinessTypeAll(); + + /** + * 根据id获取业务类型数据 + * @param id 待查询id + * @return + */ + BusinessType findBusinessTypeById(Integer id); + + /** + * 根据id批量获取业务类型数据 + * @param ids 待查询id列表 + * @return + */ + List findBusinessTypeByIds(List ids); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/BusinessTypeServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/BusinessTypeServiceImpl.java new file mode 100644 index 00000000..0c97cdfd --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/BusinessTypeServiceImpl.java @@ -0,0 +1,155 @@ +package com.dreamchaser.depository_manage.service.impl; + +import com.dreamchaser.depository_manage.entity.BusinessType; +import com.dreamchaser.depository_manage.mapper.BusinessTypeMapper; +import com.dreamchaser.depository_manage.service.BusinessTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class BusinessTypeServiceImpl implements BusinessTypeService { + + @Autowired + private BusinessTypeMapper businessTypeMapper; + + /** + * 插入一条业务类型数据 + * @param map 待插入数据 + * @return + */ + @Override + public Integer addBusinessType(Map map) { + map.put("createTime",System.currentTimeMillis()); + map.put("state",1); + return businessTypeMapper.addBusinessType(map); + } + + /** + * 插入一条业务类型数据 + * @param businessType 待插入数据 + * @return + */ + @Override + public Integer addBusinessType(BusinessType businessType) { + businessType.setCreateTime(System.currentTimeMillis()); + return businessTypeMapper.addBusinessType(businessType); + } + + /** + * 修改业务类型数据 + * @param map 待修改数据 + * @return + */ + @Override + public Integer updateBusinessType(Map map) { + map.put("updateTime",System.currentTimeMillis()); + return businessTypeMapper.updateBusinessType(map); + } + + + /** + * 修改业务类型数据状态 + * @param map 待修改数据 + * @return + */ + @Override + public Integer updateBusinessTypeStateById(Map map){ + map.put("updateTime",System.currentTimeMillis()); + return businessTypeMapper.updateBusinessTypeStateById(map); + } + /** + * 批量修改业务类型数据状态 + * @param map 待修改数据 + * @return + */ + @Override + public Integer updateBusinessTypeStateByIds(Map map){ + map.put("updateTime",System.currentTimeMillis()); + return businessTypeMapper.updateBusinessTypeStateByIds(map); + } + + /** + * 修改业务类型数据 + * @param businessType 待修改数据 + * @return + */ + @Override + public Integer updateBusinessType(BusinessType businessType) { + businessType.setUpdateTime(System.currentTimeMillis()); + return businessTypeMapper.updateBusinessType(businessType); + } + + + /** + * 根据id删除一条业务类型数据(硬删除) + * @param id 待删除id + * @return + */ + @Override + public Integer deleteBusinessTypeById(Integer id) { + return businessTypeMapper.deleteBusinessTypeById(id); + } + + + /** + * 根据id删除一条业务类型数据(硬删除) + * @param ids 待删除id列表 + * @return + */ + @Override + public Integer deleteBusinessTypeByIds(List ids) { + return businessTypeMapper.deleteBusinessTypeByIds(ids); + } + + /** + * 根据条件获取业务类型数据 + * @param map 待查询数据 + * @return + */ + @Override + public List findBusinessTypeByCondition(Map map) { + return businessTypeMapper.findBusinessTypeByCondition(map); + } + + /** + * 根据条件获取业务类型数据数量 + * @param map 待查询数据 + * @return + */ + @Override + public Integer findBusinessTypeCountByCondition(Map map) { + return businessTypeMapper.findBusinessTypeCountByCondition(map); + } + + /** + * 获取所有业务类型数据 + * @return + */ + @Override + public List findBusinessTypeAll() { + return businessTypeMapper.findBusinessTypeAll(); + } + + /** + * 根据id获取业务类型数据 + * @param id 待查询id + * @return + */ + @Override + public BusinessType findBusinessTypeById(Integer id) { + return businessTypeMapper.findBusinessTypeById(id); + } + + /** + * 根据id批量获取业务类型数据 + * @param ids 待查询id列表 + * @return + */ + @Override + public List findBusinessTypeByIds(List ids) { + return businessTypeMapper.findBusinessTypeByIds(ids); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 315c4cb4..ad67d6fd 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -2532,7 +2532,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 将当前redis中存储的spno删除 redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo); } - } else { + } + else { // 如果是前两个审批节点 //定义处理时间 @@ -2630,6 +2631,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if (recordP.getBalancePoster() == null) { map.put("balancePoster", balancePoster.toString()); map.put("balancePosterTime", "0"); + map.put("balancePosterPass", "3"); } } else if (flagForDepository == 12) { @@ -3016,12 +3018,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { flagForHasOtherDepository = false; } else { if (flagForOpenDepository != 1) { - // 如果是开放仓库 flagForHasOtherDepository = false; - - } else { // 如果不是 for (ApplicationOutRecordMin min : minByParent @@ -3057,40 +3056,202 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { StringBuilder depositoryManager = new StringBuilder(); // 用于存储下节点审批人的企业微信id StringBuilder QyWxUid = new StringBuilder(); - if (flagForOpenDepository == 2) { - // 如果是开放仓库 - map.put("state", "待负责人审核"); - // 获取当前选中的仓库 - Depository depositoryById = depositoryMapper.findDepositoryById(record.getDepositoryId()); - // 获取当前仓库所属的部门 - String adminorg = depositoryById.getAdminorg(); + // 定义获取当前申请出库的仓库id + List depositoryIdList = new ArrayList<>(); + for (ApplicationOutRecordMin outRecordMin : minByParent) { + Integer depositoryId = outRecordMin.getDepositoryId(); + if (!depositoryIdList.contains(depositoryId)) { + depositoryIdList.add(depositoryId); + } + } + + // 定义是否为中心仓下的办公用品库 + boolean flagForZXCWorkWarehouse = false; - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), null, null); - for (UserByPort departmentHead : departmentHeadByUser - ) { - depositoryManager.append(departmentHead.getId()).append(","); - String workwechat = departmentHead.getWorkwechat(); - if (workwechat == null || "".equals(workwechat)) { - workwechat = departmentHead.getWechat(); + // 获取当前列表中的仓库 + List depositoryByIds = depositoryMapper.findDepositoryByIds(depositoryIdList); + // 获取所有仓库 + List depositoryAll = depositoryMapper.findDepositoryAll(); + for (Depository depositoryById : depositoryByIds) { + // 获取当前仓库的顶级仓库 + Depository parentDepository = findParentDepository(depositoryById, depositoryAll); + if (parentDepository.getDname().contains("办公")) { + // 设置为true + flagForZXCWorkWarehouse = true; + } + } + if (!flagForZXCWorkWarehouse) { + // 如果不是中心仓下的办公用品库 + if (flagForOpenDepository == 2) { + // 如果是开放仓库 + map.put("state", "待负责人审核"); + + // 获取当前选中的仓库 + Depository depositoryById = depositoryMapper.findDepositoryById(record.getDepositoryId()); + // 获取当前仓库所属的部门 + String adminorg = depositoryById.getAdminorg(); + + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), null, null); + for (UserByPort departmentHead : departmentHeadByUser + ) { + depositoryManager.append(departmentHead.getId()).append(","); + String workwechat = departmentHead.getWorkwechat(); + if (workwechat == null || "".equals(workwechat)) { + workwechat = departmentHead.getWechat(); + } +// QyWxUid.append(workwechat).append(","); + } + } else { + // 如果是正常仓库 + + + // 获取仓储中心负责人 + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361, userKey, token); + + for (UserByPort userByPort : departmentHeadByUser) { + depositoryManager.append(userByPort.getId()).append(","); + String workwechat = userByPort.getWorkwechat(); + if (workwechat == null || "".equals(workwechat)) { + workwechat = userByPort.getWechat(); + } +// QyWxUid.append(workwechat).append(","); } - QyWxUid.append(workwechat).append(","); } } else { - // 如果是正常仓库 + // 如果是 + + // 定义平衡岗人员 + StringBuilder balancePoster = new StringBuilder(); + // 如果是第一个节点 + List qyWxLabelUserList = QyWxConfig.getQyWxLabelUserListForLabelName(userAgent, "平衡岗"); + for (String s : qyWxLabelUserList) { + Map userByQyWxUserId = PublicConfig.findUserByQyWxUserId(s); + UserByPort user = (UserByPort) userByQyWxUserId.get("user"); + String workwechat = user.getWorkwechat(); + if (workwechat == null || "".equals(workwechat)) { + workwechat = user.getWechat(); + } +// QyWxUid.append(workwechat).append(","); + balancePoster.append(user.getId()).append(","); + } + map.put("departmentheadPass", 1); + map.put("departmentheadTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("departmenthead", userToken.getId()); + if (record.getBalancePoster() == null) { + map.put("balancePoster", balancePoster.toString()); + map.put("balancePosterTime", "0"); + map.put("balancePosterPass", "3"); + } + } - // 获取仓储中心负责人 - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361, userKey, token); - for (UserByPort userByPort : departmentHeadByUser) { - depositoryManager.append(userByPort.getId()).append(","); - String workwechat = userByPort.getWorkwechat(); - if (workwechat == null || "".equals(workwechat)) { - workwechat = userByPort.getWechat(); + QyWxUid.append("PangFuZhen,"); + if (record.getDepositoryManager() == null) { + map.put("depositoryManager", depositoryManager.toString()); + } else { + String[] depositoryManagerS = record.getDepositoryManager().split(","); + for (String depositorymanager : depositoryManagerS + ) { + if ("".equals(depositorymanager)) { + continue; } + UserByPort depositoryManage = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(depositorymanager), userKey, token); + String departmentHeadWorkwechat = depositoryManage.getWorkwechat(); + if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) { + departmentHeadWorkwechat = depositoryManage.getWechat(); + } + QyWxUid.append(departmentHeadWorkwechat).append(","); + } + } + // 向仓储中心负责人发送新的消息 + + + SendQyWxMessageThreadPool.execute(() -> { + JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(id), false, userAgent, userKey, token); + // 将当前返回结果保存到redis中 + Map QyWxMessageMap = new HashMap<>(); + QyWxMessageMap.put("MsgId", jsonObject.getString("msgid")); + QyWxMessageMap.put("responseCode", jsonObject.getString("response_code")); + // key user:300450:QyWxOut:1 + // 部门负责人number + + redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + userToken.getNumber() + ":QyWxOutId:" + id, QyWxMessageMap); + // 设置过期时间为三天 + redisPool.getRedisTemplateByDb(15).expire("user:" + userToken.getNumber() + ":QyWxOutId:" + id, 72, TimeUnit.HOURS); + }); + + + } else { + // 如果没有通过 + updateInventoryForOutRefused(record); + result = "驳回"; + map.put("pass", 2); + map.put("state", userToken.getName() + "审核未通过"); + } + + // 开启线程更改其他用户卡片模板样式 + String finalResult = result; + SendQyWxMessageThreadPool.execute(() -> { + // 获取responseCode(key为申请人number) + //获取申请人信息 + String key = "user:" + applicantUser.getNumber() + ":QyWxOutId:" + id; + String responseCode = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "responseCode"); + qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); + redisPool.getRedisTemplateByDb(15).delete(key); + }); + + // 开启流程通知其他人忽略审批流程 + SendQyWxMessageThreadPool.execute(() -> { + String departmenthead = record.getDepartmenthead(); + String[] split = departmenthead.split(","); + StringBuilder QyWxUid = new StringBuilder(); + for (String s : split) { + if ("".equals(s)) { + continue; + } + UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token); + String workwechat = userByPort.getWorkwechat(); + if (workwechat == null || "".equals(workwechat)) { + workwechat = userByPort.getWechat(); + } // QyWxUid.append(workwechat).append(","); + } + String s = QyWxUid.toString(); + s = "PangFuZhen,"; + qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1, userKey, token); + }); + } + else if (map.containsKey("balancePosterPass") && !flagForHasOtherDepository) { + // 如果是平衡岗人员审批且进入该流程 + + String result = ""; + String simpleTime = DateUtil.getSimpleTime(new Date()); + map.put("balancePosterTime", DateUtil.DateTimeToTimeStamp(simpleTime)); + map.put("balancePoster", userid); + Integer balancePosterPass = (Integer) map.get("balancePosterPass"); + if (balancePosterPass == 1) { + result = "通过"; + map.put("state", "待负责人审核"); + + + // 用于存储下节点审批人id + StringBuilder depositoryManager = new StringBuilder(); + // 用于存储下节点审批人的企业微信id + StringBuilder QyWxUid = new StringBuilder(); + + + // 获取综合办负责人 + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(268, userKey, token); + + for (UserByPort userByPort : departmentHeadByUser) { + depositoryManager.append(userByPort.getId()).append(","); + String workwechat = userByPort.getWorkwechat(); + if (workwechat == null || "".equals(workwechat)) { + workwechat = userByPort.getWechat(); } +// QyWxUid.append(workwechat).append(","); } QyWxUid.append("PangFuZhen,"); @@ -3168,7 +3329,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { s = "PangFuZhen,"; qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1, userKey, token); }); - } else { + } + else { String result = ""; // 开启线程更改其他用户卡片模板样式 String simpleTime = DateUtil.getSimpleTime(new Date()); diff --git a/src/main/resources/templates/pages/BusinessType/businesstype_add.html b/src/main/resources/templates/pages/BusinessType/businesstype_add.html new file mode 100644 index 00000000..e59754c2 --- /dev/null +++ b/src/main/resources/templates/pages/BusinessType/businesstype_add.html @@ -0,0 +1,126 @@ + + + + + layui + + + + + + + + +
+
+ + +
+ 出库业务类型创建 +
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/BusinessType/businesstype_edit.html b/src/main/resources/templates/pages/BusinessType/businesstype_edit.html new file mode 100644 index 00000000..1303f43e --- /dev/null +++ b/src/main/resources/templates/pages/BusinessType/businesstype_edit.html @@ -0,0 +1,125 @@ + + + + + layui + + + + + + + + +
+
+ + +
+ 业务类型编辑 +
+
+
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/BusinessType/businesstype_out.html b/src/main/resources/templates/pages/BusinessType/businesstype_out.html new file mode 100644 index 00000000..7c20ab7b --- /dev/null +++ b/src/main/resources/templates/pages/BusinessType/businesstype_out.html @@ -0,0 +1,354 @@ + + + + + layui + + + + + + + + +
+
+ + +
+ 搜索信息 +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ + + + + + + + + +
+ + + +
+
+ + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/application/application-review.html b/src/main/resources/templates/pages/application/application-review.html index eeafb6ea..a395c3d8 100644 --- a/src/main/resources/templates/pages/application/application-review.html +++ b/src/main/resources/templates/pages/application/application-review.html @@ -38,8 +38,9 @@ 物料名称 - + @@ -58,7 +59,7 @@ 计量单位 单位 - + 金额 金额 @@ -98,6 +99,25 @@ 1970-01-01 08:00:00 + + + 负责人 + 部门负责人 + + + 审核意见 + 审核意见 + + + + 审核时间 + + 1970-01-01 08:00:00 + + + + @@ -137,6 +157,34 @@ +