From 816b8c7e59043e5b4c17876fdde35256decdfacc Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Sun, 4 Jan 2026 15:35:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=A4=E7=90=86?= =?UTF-8?q?=E5=8D=95=E5=85=83=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8F=8A=E5=91=98=E5=B7=A5=E5=AF=B9=E5=BA=94=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NuAppPermissionController.java | 280 +++++++++++ .../appConfig/entity/AppPermissionTree.java | 439 ++++++++++++++++++ .../appConfig/entity/DefIndexConst.java | 25 + .../appConfig/entity/NuAppPermission.java | 196 ++++++++ .../modules/appConfig/entity/TreeModel.java | 183 ++++++++ .../mapper/NuAppPermissionMapper.java | 22 + .../mapper/xml/NuAppPermissionMapper.xml | 9 + .../service/INuAppPermissionService.java | 19 + .../impl/NuAppPermissionServiceImpl.java | 88 ++++ .../utils/AppPermissionDataUtil.java | 136 ++++++ nursing-unit-api/pom.xml | 6 + .../nu/modules/employess/EmployessApi.java | 44 ++ .../org/jeecg/config/shiro/ShiroConfig.java | 1 + .../java/com/nu/entity/NuBaseInfoEntity.java | 2 + .../com/nu/entity/NuidPermissionEntity.java | 71 +++ .../com/nu/modules/IEmployeesInfoApi.java | 8 + nursing-unit-employee/nu-employee-biz/pom.xml | 12 + .../impl/BizEmployeesInfoServiceImpl.java | 29 +- .../NuAppEmployessPermissionController.java | 288 ++++++++++++ .../entity/NuAppEmployessPermission.java | 72 +++ .../NuAppEmployessPermissionMapper.java | 19 + .../xml/NuAppEmployessPermissionMapper.xml | 13 + .../INuAppEmployessPermissionService.java | 20 + .../NuAppEmployessPermissionServiceImpl.java | 93 ++++ nursing-unit-nu/nu-nu-biz/pom.xml | 14 +- .../modules/nubaseinfo/entity/NuBaseInfo.java | 9 +- .../service/impl/NuBaseInfoServiceImpl.java | 20 + .../NuAppNuidPermissionController.java | 291 ++++++++++++ .../entity/NuAppNuidPermission.java | 73 +++ .../mapper/NuAppNuidPermissionMapper.java | 18 + .../mapper/xml/NuAppNuidPermissionMapper.xml | 14 + .../service/INuAppNuidPermissionService.java | 19 + .../impl/NuAppNuidPermissionServiceImpl.java | 92 ++++ 33 files changed, 2622 insertions(+), 3 deletions(-) create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/controller/NuAppPermissionController.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/AppPermissionTree.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/DefIndexConst.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/NuAppPermission.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/TreeModel.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/NuAppPermissionMapper.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/xml/NuAppPermissionMapper.xml create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/INuAppPermissionService.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/impl/NuAppPermissionServiceImpl.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/utils/AppPermissionDataUtil.java create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/employess/EmployessApi.java create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/NuidPermissionEntity.java create mode 100644 nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesInfoApi.java create mode 100644 nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/controller/NuAppEmployessPermissionController.java create mode 100644 nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/entity/NuAppEmployessPermission.java create mode 100644 nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/NuAppEmployessPermissionMapper.java create mode 100644 nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/xml/NuAppEmployessPermissionMapper.xml create mode 100644 nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/INuAppEmployessPermissionService.java create mode 100644 nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/impl/NuAppEmployessPermissionServiceImpl.java create mode 100644 nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/controller/NuAppNuidPermissionController.java create mode 100644 nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/entity/NuAppNuidPermission.java create mode 100644 nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/NuAppNuidPermissionMapper.java create mode 100644 nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/xml/NuAppNuidPermissionMapper.xml create mode 100644 nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/INuAppNuidPermissionService.java create mode 100644 nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/impl/NuAppNuidPermissionServiceImpl.java diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/controller/NuAppPermissionController.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/controller/NuAppPermissionController.java new file mode 100644 index 00000000..e6c848cb --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/controller/NuAppPermissionController.java @@ -0,0 +1,280 @@ +package com.nu.modules.appConfig.controller; + +import java.util.*; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.nu.modules.appConfig.entity.AppPermissionTree; +import com.nu.modules.appConfig.utils.AppPermissionDataUtil; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.jeecg.common.util.oConvertUtils; +import com.nu.modules.appConfig.entity.NuAppPermission; +import com.nu.modules.appConfig.service.INuAppPermissionService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: 菜单表 + * @Author: jeecg-boot + * @Date: 2025-12-31 + * @Version: V1.0 + */ +@Api(tags="菜单表") +@RestController +@RequestMapping("/appConfig/nuAppPermission") +@Slf4j +public class NuAppPermissionController extends JeecgController { + @Autowired + private INuAppPermissionService nuAppPermissionService; + + /** + * 分页列表查询 + * + * @param nuAppPermission + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "菜单表-分页列表查询") + @ApiOperation(value="菜单表-分页列表查询", notes="菜单表-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(NuAppPermission nuAppPermission, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + long start = System.currentTimeMillis(); + Result> result = new Result<>(); + try { + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(NuAppPermission::getDelFlag, CommonConstant.DEL_FLAG_0); + query.orderByAsc(NuAppPermission::getSortNo); + + //支持通过菜单名字,模糊查询 + if(oConvertUtils.isNotEmpty(nuAppPermission.getName())){ + query.like(NuAppPermission::getName, nuAppPermission.getName()); + } + List list = nuAppPermissionService.list(query); + List treeList = new ArrayList<>(); + + //如果有菜单名查询条件,则平铺数据 不做上下级 + if(oConvertUtils.isNotEmpty(nuAppPermission.getName())){ + if(list!=null && list.size()>0){ + treeList = list.stream().map(e -> { + e.setLeaf(true); + return new AppPermissionTree(e); + }).collect(Collectors.toList()); + } + }else{ + getTreeList(treeList, list, null); + } + result.setResult(treeList); + result.setSuccess(true); + log.info("======获取全部菜单数据=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + /** + * 添加 + * @param permission + * @return + */ + @AutoLog(value = "菜单表-添加") + @ApiOperation(value="菜单表-添加", notes="菜单表-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody NuAppPermission permission) { + Result result = new Result(); + try { + permission = AppPermissionDataUtil.intelligentProcessData(permission); + nuAppPermissionService.addPermission(permission); + result.success("添加成功!"); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("操作失败"); + } + return result; + } + + /** + * 编辑 + * + * @param permission + * @return + */ + @AutoLog(value = "菜单表-编辑") + @ApiOperation(value="菜单表-编辑", notes="菜单表-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody NuAppPermission permission) { + Result result = new Result<>(); + try { + permission = AppPermissionDataUtil.intelligentProcessData(permission); + nuAppPermissionService.editPermission(permission); + result.success("修改成功!"); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("操作失败"); + } + return result; + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "菜单表-通过id删除") + @ApiOperation(value="菜单表-通过id删除", notes="菜单表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + nuAppPermissionService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "菜单表-批量删除") + @ApiOperation(value="菜单表-批量删除", notes="菜单表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.nuAppPermissionService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "菜单表-通过id查询") + @ApiOperation(value="菜单表-通过id查询", notes="菜单表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + NuAppPermission nuAppPermission = nuAppPermissionService.getById(id); + if(nuAppPermission==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(nuAppPermission); + } + + /** + * 导出excel + * + * @param request + * @param nuAppPermission + */ + @RequiresPermissions("appConfig:nu_app_permission:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, NuAppPermission nuAppPermission) { + return super.exportXls(request, nuAppPermission, NuAppPermission.class, "菜单表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("appConfig:nu_app_permission:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, NuAppPermission.class); + } + + /** + * 校验角色编码唯一 + */ + @RequestMapping(value = "/checkRoleCode", method = RequestMethod.GET) + public Result checkUsername(String id,String roleCode) { + Result result = new Result<>(); + //如果此参数为false则程序发生异常 + result.setResult(true); + log.info("--验证角色编码是否唯一---id:"+id+"--roleCode:"+roleCode); + try { + NuAppPermission role = null; + if(oConvertUtils.isNotEmpty(id)) { + role = nuAppPermissionService.getById(id); + } + //SysRole newRole = sysRoleService.getOne(new QueryWrapper().lambda().eq(SysRole::getRoleCode, roleCode)); + NuAppPermission newRole = nuAppPermissionService.getRoleNoTenant(roleCode); + if(newRole!=null) { + //如果根据传入的roleCode查询到信息了,那么就需要做校验了。 + if(role==null) { + //role为空=>新增模式=>只要roleCode存在则返回false + result.setSuccess(false); + result.setMessage("角色编码已存在"); + return result; + }else if(!id.equals(newRole.getId())) { + //否则=>编辑模式=>判断两者ID是否一致- + result.setSuccess(false); + result.setMessage("角色编码已存在"); + return result; + } + } + } catch (Exception e) { + result.setSuccess(false); + result.setResult(false); + result.setMessage(e.getMessage()); + return result; + } + result.setSuccess(true); + return result; + } + + + private void getTreeList(List treeList, List metaList, AppPermissionTree temp) { + for (NuAppPermission permission : metaList) { + String tempPid = permission.getParentId(); + AppPermissionTree tree = new AppPermissionTree(permission); + if (temp == null && oConvertUtils.isEmpty(tempPid)) { + treeList.add(tree); + if (!tree.getIsLeaf()) { + getTreeList(treeList, metaList, tree); + } + } else if (temp != null && tempPid != null && tempPid.equals(temp.getId())) { + temp.getChildren().add(tree); + if (!tree.getIsLeaf()) { + getTreeList(treeList, metaList, tree); + } + } + + } + } +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/AppPermissionTree.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/AppPermissionTree.java new file mode 100644 index 00000000..000314b1 --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/AppPermissionTree.java @@ -0,0 +1,439 @@ +package com.nu.modules.appConfig.entity; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @Description: 菜单树,封装树结构 + * @author: jeecg-boot + */ +public class AppPermissionTree implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + private String key; + private String title; + + /** + * 父id + */ + private String parentId; + + /** + * 菜单名称 + */ + private String name; + + /** + * 菜单权限编码 + */ + private String perms; + /** + * 权限策略1显示2禁用 + */ + private String permsType; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 组件 + */ + private String component; + + /** + * 组件名字 + */ + private String componentName; + + /** + * 跳转网页链接 + */ + private String url; + + /** + * 一级菜单跳转地址 + */ + private String redirect; + + /** + * 菜单排序 + */ + private Double sortNo; + + /** + * 类型(0:一级菜单;1:子菜单 ;2:按钮权限) + */ + private Integer menuType; + + /** + * 是否叶子节点: 1:是 0:不是 + */ + private boolean isLeaf; + + /** + * 是否路由菜单: 0:不是 1:是(默认值1) + */ + private boolean route; + + + /** + * 是否路缓存页面: 0:不是 1:是(默认值1) + */ + private boolean keepAlive; + + + /** + * 描述 + */ + private String description; + + /** + * 删除状态 0正常 1已删除 + */ + private Integer delFlag; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /**alwaysShow*/ + private boolean alwaysShow; + /**是否隐藏路由菜单: 0否,1是(默认值0)*/ + private boolean hidden; + + /**按钮权限状态(0无效1有效)*/ + private String status; + + /*update_begin author:wuxianquan date:20190908 for:model增加字段 */ + /** 外链菜单打开方式 0/内部打开 1/外部打开 */ + private boolean internalOrExternal; + /*update_end author:wuxianquan date:20190908 for:model增加字段 */ + + /*update_begin author:liusq date:20230601 for:【issues/4986】model增加hideTab字段 */ + /** + * 是否隐藏Tab: 0否,1是(默认值0) + */ + private boolean hideTab; + /*update_end author:liusq date:20230601 for:【issues/4986】model增加hideTab字段 */ + + private String menuCode; + + public AppPermissionTree() { + } + + public AppPermissionTree(NuAppPermission permission) { + this.key = permission.getId(); + this.id = permission.getId(); + this.perms = permission.getPerms(); + this.permsType = permission.getPermsType(); + this.component = permission.getComponent(); + this.componentName = permission.getComponentName(); + this.createBy = permission.getCreateBy(); + this.createTime = permission.getCreateTime(); + this.delFlag = permission.getDelFlag(); + this.description = permission.getDescription(); + this.icon = permission.getIcon(); + this.isLeaf = permission.isLeaf(); + this.menuType = permission.getMenuType(); + this.name = permission.getName(); + this.parentId = permission.getParentId(); + this.sortNo = permission.getSortNo(); + this.updateBy = permission.getUpdateBy(); + this.updateTime = permission.getUpdateTime(); + this.redirect = permission.getRedirect(); + this.url = permission.getUrl(); + this.hidden = permission.isHidden(); + this.route = permission.isRoute(); + this.keepAlive = permission.isKeepAlive(); + this.alwaysShow= permission.isAlwaysShow(); + /*update_begin author:wuxianquan date:20190908 for:赋值 */ + this.internalOrExternal = permission.isInternalOrExternal(); + /*update_end author:wuxianquan date:20190908 for:赋值 */ + this.title=permission.getName(); + /*update_end author:liusq date:20230601 for:【issues/4986】model增加hideTab字段 */ + this.hideTab = permission.isHideTab(); + /*update_end author:liusq date:20230601 for:【issues/4986】model增加hideTab字段 */ + if (!permission.isLeaf()) { + this.children = new ArrayList(); + } + this.status = permission.getStatus(); + this.menuCode = permission.getMenuCode(); + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + private List children; + + public boolean isLeaf() { + return isLeaf; + } + + public void setLeaf(boolean leaf) { + isLeaf = leaf; + } + + public boolean isKeepAlive() { + return keepAlive; + } + + public void setKeepAlive(boolean keepAlive) { + this.keepAlive = keepAlive; + } + + public boolean isAlwaysShow() { + return alwaysShow; + } + + public void setAlwaysShow(boolean alwaysShow) { + this.alwaysShow = alwaysShow; + } + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public String getRedirect() { + return redirect; + } + + public void setRedirect(String redirect) { + this.redirect = redirect; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public boolean isHidden() { + return hidden; + } + + public void setHidden(boolean hidden) { + this.hidden = hidden; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getComponentName() { + return componentName; + } + + public void setComponentName(String componentName) { + this.componentName = componentName; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Double getSortNo() { + return sortNo; + } + + public void setSortNo(Double sortNo) { + this.sortNo = sortNo; + } + + public Integer getMenuType() { + return menuType; + } + + public void setMenuType(Integer menuType) { + this.menuType = menuType; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public boolean isRoute() { + return route; + } + + public void setRoute(boolean route) { + this.route = route; + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getPerms() { + return perms; + } + + public void setPerms(String perms) { + this.perms = perms; + } + + public boolean getIsLeaf() { + return isLeaf; + } + + public void setIsLeaf(boolean isLeaf) { + this.isLeaf = isLeaf; + } + + public String getPermsType() { + return permsType; + } + + public void setPermsType(String permsType) { + this.permsType = permsType; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + /*update_begin author:wuxianquan date:20190908 for:get set方法 */ + public boolean isInternalOrExternal() { + return internalOrExternal; + } + + public void setInternalOrExternal(boolean internalOrExternal) { + this.internalOrExternal = internalOrExternal; + } + /*update_end author:wuxianquan date:20190908 for:get set 方法 */ + + public boolean isHideTab() { + return hideTab; + } + + public void setHideTab(boolean hideTab) { + this.hideTab = hideTab; + } + + public String getMenuCode() { + return menuCode; + } + + public void setMenuCode(String menuCode) { + this.menuCode = menuCode; + } +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/DefIndexConst.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/DefIndexConst.java new file mode 100644 index 00000000..8f70a5cc --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/DefIndexConst.java @@ -0,0 +1,25 @@ +package com.nu.modules.appConfig.entity; + +/** + * 默认首页常量 + */ +public interface DefIndexConst { + + /** + * 默认首页的roleCode + */ + String DEF_INDEX_ALL = "DEF_INDEX_ALL"; + + /** + * 默认首页的缓存key + */ + String CACHE_KEY = "sys:cache:def_index"; + + /** + * 默认首页的初始值 + */ + String DEF_INDEX_NAME = "首页"; + String DEF_INDEX_URL = "/dashboard/analysis"; + String DEF_INDEX_COMPONENT = "dashboard/Analysis"; + +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/NuAppPermission.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/NuAppPermission.java new file mode 100644 index 00000000..c8dff4e5 --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/NuAppPermission.java @@ -0,0 +1,196 @@ +package com.nu.modules.appConfig.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 菜单表 + * @Author: jeecg-boot + * @Date: 2025-12-31 + * @Version: V1.0 + */ +@Data +@TableName("nu_app_permission") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_app_permission对象", description="菜单表") +public class NuAppPermission implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** + * 父id + */ + private String parentId; + + /** + * 菜单名称 + */ + private String name; + + /** + * 菜单权限编码,例如:“sys:schedule:list,sys:schedule:info”,多个逗号隔开 + */ + private String perms; + /** + * 权限策略1显示2禁用 + */ + private String permsType; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 组件 + */ + private String component; + + /** + * 组件名字 + */ + private String componentName; + + /** + * 路径 + */ + private String url; + /** + * 一级菜单跳转地址 + */ + private String redirect; + + /** + * 菜单排序 + */ + private Double sortNo; + + /** + * 类型(0:一级菜单;1:子菜单 ;2:按钮权限) + */ + @Dict(dicCode = "menu_type") + private Integer menuType; + + /** + * 是否叶子节点: 1:是 0:不是 + */ + @TableField(value="is_leaf") + private boolean leaf; + + /** + * 是否路由菜单: 0:不是 1:是(默认值1) + */ + @TableField(value="is_route") + private boolean route; + + + /** + * 是否缓存页面: 0:不是 1:是(默认值1) + */ + @TableField(value="keep_alive") + private boolean keepAlive; + + /** + * 描述 + */ + private String description; + + /** + * 创建人 + */ + private String createBy; + + /** + * 删除状态 0正常 1已删除 + */ + private Integer delFlag; + + /** + * 是否配置菜单的数据权限 1是0否 默认0 + */ + private Integer ruleFlag; + + /** + * 是否隐藏路由菜单: 0否,1是(默认值0) + */ + private boolean hidden; + + /** + * 是否隐藏Tab: 0否,1是(默认值0) + */ + private boolean hideTab; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /**按钮权限状态(0无效1有效)*/ + private java.lang.String status; + + /**alwaysShow*/ + private boolean alwaysShow; + + private String menuCode; + + /*update_begin author:wuxianquan date:20190908 for:实体增加字段 */ + /** 外链菜单打开方式 0/内部打开 1/外部打开 */ + private boolean internalOrExternal; + /*update_end author:wuxianquan date:20190908 for:实体增加字段 */ + + public NuAppPermission() { + + } + public NuAppPermission(boolean index) { + if(index) { + this.id = "9502685863ab87f0ad1134142788a385"; + this.name = DefIndexConst.DEF_INDEX_NAME; + this.component = DefIndexConst.DEF_INDEX_COMPONENT; + this.componentName = "dashboard-analysis"; + this.url = DefIndexConst.DEF_INDEX_URL; + this.icon="home"; + this.menuType=0; + this.sortNo=0.0; + this.ruleFlag=0; + this.delFlag=0; + this.alwaysShow=false; + this.route=true; + this.keepAlive=true; + this.leaf=true; + this.hidden=false; + } + + } +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/TreeModel.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/TreeModel.java new file mode 100644 index 00000000..981b1085 --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/entity/TreeModel.java @@ -0,0 +1,183 @@ +package com.nu.modules.appConfig.entity; + + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 树形列表用到 + * @author: jeecg-boot + */ +public class TreeModel implements Serializable { + + private static final long serialVersionUID = 4013193970046502756L; + + private String key; + + private String title; + + private String slotTitle; + + private boolean isLeaf; + + private String icon; + + private Integer ruleFlag; + + private Map scopedSlots; + + public Map getScopedSlots() { + return scopedSlots; + } + + public void setScopedSlots(Map scopedSlots) { + this.scopedSlots = scopedSlots; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public boolean getIsLeaf() { + return isLeaf; + } + + public void setIsLeaf(boolean isLeaf) { + this.isLeaf = isLeaf; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + private List children; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public TreeModel() { + + } + + public TreeModel(NuAppPermission permission) { + this.key = permission.getId(); + this.icon = permission.getIcon(); + this.parentId = permission.getParentId(); + this.title = permission.getName(); + this.slotTitle = permission.getName(); + this.value = permission.getId(); + this.isLeaf = permission.isLeaf(); + this.label = permission.getName(); + if(!permission.isLeaf()) { + this.children = new ArrayList(); + } + } + + public TreeModel(String key, String parentId, String slotTitle, Integer ruleFlag, boolean isLeaf,String code) { + this.key = key; + this.parentId = parentId; + this.ruleFlag=ruleFlag; + this.slotTitle = slotTitle; + Map map = new HashMap(5); + map.put("title", "hasDatarule"); + this.scopedSlots = map; + this.isLeaf = isLeaf; + this.value = key; + this.code = code; + if(!isLeaf) { + this.children = new ArrayList(); + } + } + + private String parentId; + + private String label; + + private String value; + private String code; + + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + /** + * @return the label + */ + public String getLabel() { + return label; + } + + /** + * @param label the label to set + */ + public void setLabel(String label) { + this.label = label; + } + + /** + * @return the value + */ + public String getValue() { + return value; + } + + /** + * @param value the value to set + */ + public void setValue(String value) { + this.value = value; + } + + public String getSlotTitle() { + return slotTitle; + } + + public void setSlotTitle(String slotTitle) { + this.slotTitle = slotTitle; + } + + public Integer getRuleFlag() { + return ruleFlag; + } + + public void setRuleFlag(Integer ruleFlag) { + this.ruleFlag = ruleFlag; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/NuAppPermissionMapper.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/NuAppPermissionMapper.java new file mode 100644 index 00000000..ee61b582 --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/NuAppPermissionMapper.java @@ -0,0 +1,22 @@ +package com.nu.modules.appConfig.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.nu.modules.appConfig.entity.NuAppPermission; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Update; + +/** + * @Description: 菜单表 + * @Author: jeecg-boot + * @Date: 2025-12-31 + * @Version: V1.0 + */ +public interface NuAppPermissionMapper extends BaseMapper { + + NuAppPermission getRoleNoTenant(@Param("roleCode") String roleCode); + + @Update("update nu_app_permission set is_leaf=#{leaf} where id = #{id}") + public int setMenuLeaf(@Param("id") String id,@Param("leaf") int leaf); +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/xml/NuAppPermissionMapper.xml b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/xml/NuAppPermissionMapper.xml new file mode 100644 index 00000000..e0ed9ebb --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/mapper/xml/NuAppPermissionMapper.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/INuAppPermissionService.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/INuAppPermissionService.java new file mode 100644 index 00000000..306f16ed --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/INuAppPermissionService.java @@ -0,0 +1,19 @@ +package com.nu.modules.appConfig.service; + +import com.nu.modules.appConfig.entity.NuAppPermission; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 菜单表 + * @Author: jeecg-boot + * @Date: 2025-12-31 + * @Version: V1.0 + */ +public interface INuAppPermissionService extends IService { + + NuAppPermission getRoleNoTenant(String roleCode); + + void addPermission(NuAppPermission permission); + + void editPermission(NuAppPermission permission); +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/impl/NuAppPermissionServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/impl/NuAppPermissionServiceImpl.java new file mode 100644 index 00000000..8f9c9bce --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/service/impl/NuAppPermissionServiceImpl.java @@ -0,0 +1,88 @@ +package com.nu.modules.appConfig.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.modules.appConfig.entity.NuAppPermission; +import com.nu.modules.appConfig.mapper.NuAppPermissionMapper; +import com.nu.modules.appConfig.service.INuAppPermissionService; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.Date; + +/** + * @Description: 菜单表 + * @Author: jeecg-boot + * @Date: 2025-12-31 + * @Version: V1.0 + */ +@Service +public class NuAppPermissionServiceImpl extends ServiceImpl implements INuAppPermissionService { + + @Override + public NuAppPermission getRoleNoTenant(String roleCode) { + return baseMapper.getRoleNoTenant(roleCode); + } + + @Override + public void addPermission(NuAppPermission sysPermission) { + //---------------------------------------------------------------------- + //判断是否是一级菜单,是的话清空父菜单 + if(CommonConstant.MENU_TYPE_0.equals(sysPermission.getMenuType())) { + sysPermission.setParentId(null); + } + //---------------------------------------------------------------------- + String pid = sysPermission.getParentId(); + if(oConvertUtils.isNotEmpty(pid)) { + //设置父节点不为叶子节点 + this.baseMapper.setMenuLeaf(pid, 0); + } + sysPermission.setCreateTime(new Date()); + sysPermission.setDelFlag(0); + sysPermission.setLeaf(true); + this.save(sysPermission); + } + + @Override + public void editPermission(NuAppPermission sysPermission) { + NuAppPermission p = this.getById(sysPermission.getId()); + //TODO 该节点判断是否还有子节点 + if(p==null) { + throw new JeecgBootException("未找到菜单信息"); + }else { + sysPermission.setUpdateTime(new Date()); + //---------------------------------------------------------------------- + //Step1.判断是否是一级菜单,是的话清空父菜单ID + if(CommonConstant.MENU_TYPE_0.equals(sysPermission.getMenuType())) { + sysPermission.setParentId(""); + } + //Step2.判断菜单下级是否有菜单,无则设置为叶子节点 + Long count = this.count(new QueryWrapper().lambda().eq(NuAppPermission::getParentId, sysPermission.getId())); + if(count==0) { + sysPermission.setLeaf(true); + } + //---------------------------------------------------------------------- + this.updateById(sysPermission); + + //如果当前菜单的父菜单变了,则需要修改新父菜单和老父菜单的,叶子节点状态 + String pid = sysPermission.getParentId(); + boolean flag = (oConvertUtils.isNotEmpty(pid) && !pid.equals(p.getParentId())) || oConvertUtils.isEmpty(pid)&&oConvertUtils.isNotEmpty(p.getParentId()); + if (flag) { + //a.设置新的父菜单不为叶子节点 + this.baseMapper.setMenuLeaf(pid, 0); + //b.判断老的菜单下是否还有其他子菜单,没有的话则设置为叶子节点 + Long cc = this.count(new QueryWrapper().lambda().eq(NuAppPermission::getParentId, p.getParentId())); + if(cc==0) { + if(oConvertUtils.isNotEmpty(p.getParentId())) { + this.baseMapper.setMenuLeaf(p.getParentId(), 1); + } + } + + } + + } + } +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/utils/AppPermissionDataUtil.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/utils/AppPermissionDataUtil.java new file mode 100644 index 00000000..4206e04b --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appConfig/utils/AppPermissionDataUtil.java @@ -0,0 +1,136 @@ +package com.nu.modules.appConfig.utils; + +import com.nu.modules.appConfig.entity.NuAppPermission; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.SymbolConstant; +import org.jeecg.common.util.oConvertUtils; + +import java.util.List; + +/** + * @Author: scott + * @Date: 2019-04-03 + */ +public class AppPermissionDataUtil { + + /** + * 路径:views/ + */ + private static final String PATH_VIEWS = "views/"; + + /** + * 路径:src/views/ + */ + private static final String PATH_SRC_VIEWS = "src/views/"; + + /** + * .vue后缀 + */ + private static final String VUE_SUFFIX = ".vue"; + + /** + * 智能处理错误数据,简化用户失误操作 + * + * @param permission + */ + public static NuAppPermission intelligentProcessData(NuAppPermission permission) { + if (permission == null) { + return null; + } + + // 组件 + if (oConvertUtils.isNotEmpty(permission.getComponent())) { + String component = permission.getComponent(); + if (component.startsWith(SymbolConstant.SINGLE_SLASH)) { + component = component.substring(1); + } + if (component.startsWith(PATH_VIEWS)) { + component = component.replaceFirst(PATH_VIEWS, ""); + } + if (component.startsWith(PATH_SRC_VIEWS)) { + component = component.replaceFirst(PATH_SRC_VIEWS, ""); + } + if (component.endsWith(VUE_SUFFIX)) { + component = component.replace(VUE_SUFFIX, ""); + } + permission.setComponent(component); + } + + // 请求URL + if (oConvertUtils.isNotEmpty(permission.getUrl())) { + String url = permission.getUrl(); + if (url.endsWith(VUE_SUFFIX)) { + url = url.replace(VUE_SUFFIX, ""); + } + if (!url.startsWith(CommonConstant.STR_HTTP) && !url.startsWith(SymbolConstant.SINGLE_SLASH)&&!url.trim().startsWith(SymbolConstant.DOUBLE_LEFT_CURLY_BRACKET)) { + url = SymbolConstant.SINGLE_SLASH + url; + } + permission.setUrl(url); + } + + // 一级菜单默认组件 + if (0 == permission.getMenuType() && oConvertUtils.isEmpty(permission.getComponent())) { + // 一级菜单默认组件 + permission.setComponent("layouts/RouteView"); + } + return permission; + } + + /** + * 如果没有index页面 需要new 一个放到list中 + * @param metaList + */ +// public static void addIndexPage(List metaList) { +// boolean hasIndexMenu = false; +// SysRoleIndex defIndexCfg = PermissionDataUtil.getDefIndexConfig(); +// for (SysPermission sysPermission : metaList) { +// if(defIndexCfg.getUrl().equals(sysPermission.getUrl())) { +// hasIndexMenu = true; +// break; +// } +// } +// if(!hasIndexMenu) { +// metaList.add(0,new SysPermission(true)); +// } +// } + + /** + * 判断是否授权首页 + * @param metaList + * @return + */ +// public static boolean hasIndexPage(List metaList, SysRoleIndex defIndexCfg){ +// boolean hasIndexMenu = false; +// for (NuAppPermission sysPermission : metaList) { +// if(defIndexCfg.getUrl().equals(sysPermission.getUrl())) { +// hasIndexMenu = true; +// break; +// } +// } +// return hasIndexMenu; +// } + + /** + * 通过id判断是否授权某个页面 + * + * @param metaList + * @return + */ + public static boolean hasMenuById(List metaList, String id) { + for (NuAppPermission sysPermission : metaList) { + if (id.equals(sysPermission.getId())) { + return true; + } + } + return false; + } + + /** + * 获取默认首页配置 + */ +// public static SysRoleIndex getDefIndexConfig() { +// ISysRoleIndexService sysRoleIndexService = SpringContextUtils.getBean(ISysRoleIndexService.class); +// return sysRoleIndexService.queryDefaultIndex(); +// } + +} diff --git a/nursing-unit-api/pom.xml b/nursing-unit-api/pom.xml index 4d76aca5..b1505717 100644 --- a/nursing-unit-api/pom.xml +++ b/nursing-unit-api/pom.xml @@ -69,5 +69,11 @@ 2.0.0 compile + + com.nursingunit.boot + nu-employee-local-api + 2.0.0 + compile + diff --git a/nursing-unit-api/src/main/java/com/nu/modules/employess/EmployessApi.java b/nursing-unit-api/src/main/java/com/nu/modules/employess/EmployessApi.java new file mode 100644 index 00000000..75570c18 --- /dev/null +++ b/nursing-unit-api/src/main/java/com/nu/modules/employess/EmployessApi.java @@ -0,0 +1,44 @@ +package com.nu.modules.employess; + +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Maps; +import com.nu.modules.IEmployeesInfoApi; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.api.ISysBaseAPI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +/** + * 获取常用信息(不涉及安全信息) + * @author zmy + * @date 2025-5-22 08:43:05 + */ +@RestController +@RequestMapping("/api/employessInfo") +public class EmployessApi { + + @Lazy + @Autowired + private IEmployeesInfoApi employeesInfoApi; + + /** + * 返回机构信息配置的"协议域名" + * @return + */ + @GetMapping("/getPermissionList") + public Result getPermissionList(String employessId){ + if (StringUtils.isBlank(employessId)){ + return Result.error("参数错误"); + } + List> result = employeesInfoApi.getPermissionList(employessId); + return Result.ok(result); + } + +} diff --git a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index 21fedca1..c98d4386 100644 --- a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -93,6 +93,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/api/tplink/videoStorage/**", "anon"); //视频缓存存储接口 filterChainDefinitionMap.put("/api/pad/invoicing/getShareInfoByCgdId", "anon"); //查询采购单信息(分享接口使用) // filterChainDefinitionMap.put("/api/pad/invoicing/pdd/**", "anon"); //查询盘点单 + filterChainDefinitionMap.put("/api/employessInfo/**", "anon"); //测试员工接口 // filterChainDefinitionMap.put("/api/pad/invoicing/**", "anon"); //测试进销存对应的接口 // filterChainDefinitionMap.put("/api/pad/qingling/**", "anon"); //测试请领对应的接口 // filterChainDefinitionMap.put("/api/pad/care/**", "anon"); //服务指令 diff --git a/nursing-unit-common/src/main/java/com/nu/entity/NuBaseInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/NuBaseInfoEntity.java index 79de8f0f..52ea0677 100644 --- a/nursing-unit-common/src/main/java/com/nu/entity/NuBaseInfoEntity.java +++ b/nursing-unit-common/src/main/java/com/nu/entity/NuBaseInfoEntity.java @@ -85,6 +85,8 @@ public class NuBaseInfoEntity implements Serializable { private List humidDeviceList; //长者信息 private ElderInfoEntity elderInfo; + + private List permissionList; private java.lang.String fzr; diff --git a/nursing-unit-common/src/main/java/com/nu/entity/NuidPermissionEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/NuidPermissionEntity.java new file mode 100644 index 00000000..9b8c821f --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/NuidPermissionEntity.java @@ -0,0 +1,71 @@ +package com.nu.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: nu_app_nuid_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Data +@TableName("nu_app_nuid_permission") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_app_nuid_permission对象", description="nu_app_nuid_permission") +public class NuidPermissionEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private String id; + /**角色id*/ + @Excel(name = "角色id", width = 15) + @ApiModelProperty(value = "角色id") + private String roleId; + /**权限id*/ + @Excel(name = "权限id", width = 15) + @ApiModelProperty(value = "权限id") + private String permissionId; + /**数据权限ids*/ + @Excel(name = "数据权限ids", width = 15) + @ApiModelProperty(value = "数据权限ids") + private String dataRuleIds; + /**操作时间*/ + @Excel(name = "操作时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "操作时间") + private Date operateDate; + /**操作ip*/ + @Excel(name = "操作ip", width = 15) + @ApiModelProperty(value = "操作ip") + private String operateIp; + + @TableField(exist = false) + private String menuName; + @TableField(exist = false) + private String menuCode; + + + + public NuidPermissionEntity(String roleId, String permissionId) { + this.roleId = roleId; + this.permissionId = permissionId; + } +} diff --git a/nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesInfoApi.java b/nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesInfoApi.java new file mode 100644 index 00000000..3b38248e --- /dev/null +++ b/nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesInfoApi.java @@ -0,0 +1,8 @@ +package com.nu.modules; + +import java.util.List; +import java.util.Map; + +public interface IEmployeesInfoApi { + List> getPermissionList(String employessId); +} diff --git a/nursing-unit-employee/nu-employee-biz/pom.xml b/nursing-unit-employee/nu-employee-biz/pom.xml index 6efb0f76..60e664dd 100644 --- a/nursing-unit-employee/nu-employee-biz/pom.xml +++ b/nursing-unit-employee/nu-employee-biz/pom.xml @@ -45,6 +45,18 @@ 2.0.0 compile + + com.nursingunit.boot + nu-admin-biz + 2.0.0 + compile + + + com.nursingunit.boot + nu-nu-biz + 2.0.0 + compile + diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employeesInfo/service/impl/BizEmployeesInfoServiceImpl.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employeesInfo/service/impl/BizEmployeesInfoServiceImpl.java index 989c3dca..dbfb698b 100644 --- a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employeesInfo/service/impl/BizEmployeesInfoServiceImpl.java +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employeesInfo/service/impl/BizEmployeesInfoServiceImpl.java @@ -1,12 +1,24 @@ package com.nu.modules.employeesInfo.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.modules.IEmployeesInfoApi; import com.nu.modules.employeesInfo.entity.BizEmployeesInfo; import com.nu.modules.employeesInfo.mapper.BizEmployeesInfoMapper; import com.nu.modules.employeesInfo.service.IBizEmployeesInfoService; +import com.nu.modules.employessPermission.entity.NuAppEmployessPermission; +import com.nu.modules.employessPermission.service.INuAppEmployessPermissionService; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import com.nu.modules.nuidPermission.service.INuAppNuidPermissionService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * @Description: 员工信息 * @Author: jeecg-boot @@ -14,6 +26,21 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; * @Version: V1.0 */ @Service -public class BizEmployeesInfoServiceImpl extends ServiceImpl implements IBizEmployeesInfoService { +public class BizEmployeesInfoServiceImpl extends ServiceImpl implements IBizEmployeesInfoService, IEmployeesInfoApi { + @Autowired + private INuAppEmployessPermissionService nuAppEmployessPermissionService; + + @Override + public List> getPermissionList(String employessId) { + List> mapList = new ArrayList<>(); + List permissionList = nuAppEmployessPermissionService.listByEmployessId(employessId); + for(NuAppEmployessPermission par:permissionList){ + Map map = new HashMap<>(); + map.put("menuName", par.getMenuName()); + map.put("menuCode", par.getMenuCode()); + mapList.add(map); + } + return mapList; + } } diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/controller/NuAppEmployessPermissionController.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/controller/NuAppEmployessPermissionController.java new file mode 100644 index 00000000..6a8bc6a7 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/controller/NuAppEmployessPermissionController.java @@ -0,0 +1,288 @@ +package com.nu.modules.employessPermission.controller; + +import java.util.*; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.nu.modules.appConfig.entity.NuAppPermission; +import com.nu.modules.appConfig.entity.TreeModel; +import com.nu.modules.appConfig.service.INuAppPermissionService; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import com.nu.modules.employessPermission.entity.NuAppEmployessPermission; +import com.nu.modules.employessPermission.service.INuAppEmployessPermissionService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecg.modules.base.service.BaseCommonService; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: nu_app_employess_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Api(tags="nu_app_employess_permission") +@RestController +@RequestMapping("/employessPermission/nuAppEmployessPermission") +@Slf4j +public class NuAppEmployessPermissionController extends JeecgController { + @Autowired + private INuAppEmployessPermissionService nuAppEmployessPermissionService; + + @Autowired + private INuAppPermissionService nuAppPermissionService; + @Autowired + private BaseCommonService baseCommonService; + /** + * 分页列表查询 + * + * @param nuAppEmployessPermission + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "nu_app_employess_permission-分页列表查询") + @ApiOperation(value="nu_app_employess_permission-分页列表查询", notes="nu_app_employess_permission-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(NuAppEmployessPermission nuAppEmployessPermission, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuAppEmployessPermission, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = nuAppEmployessPermissionService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param nuAppEmployessPermission + * @return + */ + @AutoLog(value = "nu_app_employess_permission-添加") + @ApiOperation(value="nu_app_employess_permission-添加", notes="nu_app_employess_permission-添加") + @RequiresPermissions("employessPermission:nu_app_employess_permission:add") + @PostMapping(value = "/add") + public Result add(@RequestBody NuAppEmployessPermission nuAppEmployessPermission) { + nuAppEmployessPermissionService.save(nuAppEmployessPermission); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param nuAppEmployessPermission + * @return + */ + @AutoLog(value = "nu_app_employess_permission-编辑") + @ApiOperation(value="nu_app_employess_permission-编辑", notes="nu_app_employess_permission-编辑") + @RequiresPermissions("employessPermission:nu_app_employess_permission:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody NuAppEmployessPermission nuAppEmployessPermission) { + nuAppEmployessPermissionService.updateById(nuAppEmployessPermission); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "nu_app_employess_permission-通过id删除") + @ApiOperation(value="nu_app_employess_permission-通过id删除", notes="nu_app_employess_permission-通过id删除") + @RequiresPermissions("employessPermission:nu_app_employess_permission:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + nuAppEmployessPermissionService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "nu_app_employess_permission-批量删除") + @ApiOperation(value="nu_app_employess_permission-批量删除", notes="nu_app_employess_permission-批量删除") + @RequiresPermissions("employessPermission:nu_app_employess_permission:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.nuAppEmployessPermissionService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "nu_app_employess_permission-通过id查询") + @ApiOperation(value="nu_app_employess_permission-通过id查询", notes="nu_app_employess_permission-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + NuAppEmployessPermission nuAppEmployessPermission = nuAppEmployessPermissionService.getById(id); + if(nuAppEmployessPermission==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(nuAppEmployessPermission); + } + + /** + * 导出excel + * + * @param request + * @param nuAppEmployessPermission + */ + @RequiresPermissions("employessPermission:nu_app_employess_permission:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, NuAppEmployessPermission nuAppEmployessPermission) { + return super.exportXls(request, nuAppEmployessPermission, NuAppEmployessPermission.class, "nu_app_employess_permission"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("employessPermission:nu_app_employess_permission:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, NuAppEmployessPermission.class); + } + /** + * 用户角色授权功能,查询菜单权限树 + * @param request + * @return + */ + @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET) + public Result> queryTreeList(HttpServletRequest request) { + Result> result = new Result<>(); + //全部权限ids + List ids = new ArrayList<>(); + try { + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(NuAppPermission::getDelFlag, CommonConstant.DEL_FLAG_0); + query.orderByAsc(NuAppPermission::getSortNo); + List list = nuAppPermissionService.list(query); + for(NuAppPermission sysPer : list) { + ids.add(sysPer.getId()); + } + List treeList = new ArrayList<>(); + getTreeModelList(treeList, list, null); + Map resMap = new HashMap(5); + //全部树节点数据 + resMap.put("treeList", treeList); + //全部树ids + resMap.put("ids", ids); + result.setResult(resMap); + result.setSuccess(true); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + private void getTreeModelList(List treeList, List metaList, TreeModel temp) { + for (NuAppPermission permission : metaList) { + String tempPid = permission.getParentId(); + TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(),permission.getRuleFlag(), permission.isLeaf(),permission.getMenuCode()); + if(temp==null && oConvertUtils.isEmpty(tempPid)) { + treeList.add(tree); + if(!tree.getIsLeaf()) { + getTreeModelList(treeList, metaList, tree); + } + }else if(temp!=null && tempPid!=null && tempPid.equals(temp.getKey())){ + temp.getChildren().add(tree); + if(!tree.getIsLeaf()) { + getTreeModelList(treeList, metaList, tree); + } + } + + } + } + + /** + * 查询角色授权 + * + * @return + */ + @RequestMapping(value = "/queryEmployessPermission", method = RequestMethod.GET) + public Result> queryEmployessPermission(@RequestParam(name = "employessId", required = true) String employessId) { + Result> result = new Result<>(); + try { + List list = nuAppEmployessPermissionService.list(new QueryWrapper().lambda().eq(NuAppEmployessPermission::getRoleId, employessId)); + result.setResult(list.stream().map(sysRolePermission -> String.valueOf(sysRolePermission.getPermissionId())).collect(Collectors.toList())); + result.setSuccess(true); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + /** + * 保存角色授权 + * + * @return + */ + @RequestMapping(value = "/saveRolePermission", method = RequestMethod.POST) +// @RequiresPermissions("system:permission:saveRole") + public Result saveRolePermission(@RequestBody JSONObject json) { + long start = System.currentTimeMillis(); + Result result = new Result<>(); + try { + String roleId = json.getString("roleId"); + String permissionIds = json.getString("permissionIds"); + String lastPermissionIds = json.getString("lastpermissionIds"); + this.nuAppEmployessPermissionService.saveRolePermission(roleId, permissionIds, lastPermissionIds); + //update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]用户管理角色授权添加敏感日志------------ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + baseCommonService.addLog("修改角色ID: "+roleId+" 的权限配置,操作人: " +loginUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2); + //update-end---author:wangshuai ---date:20220316 for:[VUEN-234]用户管理角色授权添加敏感日志------------ + result.success("保存成功!"); + log.info("======角色授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); + + } catch (Exception e) { + result.error500("授权失败!"); + log.error(e.getMessage(), e); + } + return result; + } +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/entity/NuAppEmployessPermission.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/entity/NuAppEmployessPermission.java new file mode 100644 index 00000000..c34abd80 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/entity/NuAppEmployessPermission.java @@ -0,0 +1,72 @@ +package com.nu.modules.employessPermission.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: nu_app_employess_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Data +@TableName("nu_app_employess_permission") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_app_employess_permission对象", description="nu_app_employess_permission") +public class NuAppEmployessPermission implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**角色id*/ + @Excel(name = "角色id", width = 15) + @ApiModelProperty(value = "角色id") + private java.lang.String roleId; + /**权限id*/ + @Excel(name = "权限id", width = 15) + @ApiModelProperty(value = "权限id") + private java.lang.String permissionId; + /**数据权限ids*/ + @Excel(name = "数据权限ids", width = 15) + @ApiModelProperty(value = "数据权限ids") + private java.lang.String dataRuleIds; + /**操作时间*/ + @Excel(name = "操作时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "操作时间") + private java.util.Date operateDate; + /**操作ip*/ + @Excel(name = "操作ip", width = 15) + @ApiModelProperty(value = "操作ip") + private java.lang.String operateIp; + + @TableField(exist = false) + private String menuName; + @TableField(exist = false) + private String menuCode; + + + public NuAppEmployessPermission(String roleId, String permissionId) { + this.roleId = roleId; + this.permissionId = permissionId; + } +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/NuAppEmployessPermissionMapper.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/NuAppEmployessPermissionMapper.java new file mode 100644 index 00000000..8e4d49a2 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/NuAppEmployessPermissionMapper.java @@ -0,0 +1,19 @@ +package com.nu.modules.employessPermission.mapper; + +import java.util.List; + +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import org.apache.ibatis.annotations.Param; +import com.nu.modules.employessPermission.entity.NuAppEmployessPermission; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: nu_app_employess_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +public interface NuAppEmployessPermissionMapper extends BaseMapper { + + List listByEmployessId(@Param("roleId") String employessId); +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/xml/NuAppEmployessPermissionMapper.xml b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/xml/NuAppEmployessPermissionMapper.xml new file mode 100644 index 00000000..75a91042 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/mapper/xml/NuAppEmployessPermissionMapper.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/INuAppEmployessPermissionService.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/INuAppEmployessPermissionService.java new file mode 100644 index 00000000..7e6a45ff --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/INuAppEmployessPermissionService.java @@ -0,0 +1,20 @@ +package com.nu.modules.employessPermission.service; + +import com.nu.modules.employessPermission.entity.NuAppEmployessPermission; +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; + +import java.util.List; + +/** + * @Description: nu_app_employess_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +public interface INuAppEmployessPermissionService extends IService { + + void saveRolePermission(String roleId, String permissionIds, String lastPermissionIds); + + List listByEmployessId(String employessId); +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/impl/NuAppEmployessPermissionServiceImpl.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/impl/NuAppEmployessPermissionServiceImpl.java new file mode 100644 index 00000000..ccd7290d --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/employessPermission/service/impl/NuAppEmployessPermissionServiceImpl.java @@ -0,0 +1,93 @@ +package com.nu.modules.employessPermission.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.modules.employessPermission.entity.NuAppEmployessPermission; +import com.nu.modules.employessPermission.mapper.NuAppEmployessPermissionMapper; +import com.nu.modules.employessPermission.service.INuAppEmployessPermissionService; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import org.jeecg.common.util.IpUtils; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +/** + * @Description: nu_app_employess_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Service +public class NuAppEmployessPermissionServiceImpl extends ServiceImpl implements INuAppEmployessPermissionService { + + @Override + public void saveRolePermission(String roleId, String permissionIds, String lastPermissionIds) { + String ip = ""; + try { + //获取request + HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); + //获取IP地址 + ip = IpUtils.getIpAddr(request); + } catch (Exception e) { + ip = "127.0.0.1"; + } + List add = getDiff(lastPermissionIds,permissionIds); + if(add!=null && add.size()>0) { + List list = new ArrayList(); + for (String p : add) { + if(oConvertUtils.isNotEmpty(p)) { + NuAppEmployessPermission rolepms = new NuAppEmployessPermission(roleId, p); + rolepms.setOperateDate(new Date()); + rolepms.setOperateIp(ip); + list.add(rolepms); + } + } + this.saveBatch(list); + } + + List delete = getDiff(permissionIds,lastPermissionIds); + if(delete!=null && delete.size()>0) { + for (String permissionId : delete) { + this.remove(new QueryWrapper().lambda().eq(NuAppEmployessPermission::getRoleId, roleId).eq(NuAppEmployessPermission::getPermissionId, permissionId)); + } + } + } + + @Override + public List listByEmployessId(String employessId) { + return baseMapper.listByEmployessId(employessId); + } + + /** + * 从diff中找出main中没有的元素 + * @param main + * @param diff + * @return + */ + private List getDiff(String main,String diff){ + if(oConvertUtils.isEmpty(diff)) { + return null; + } + if(oConvertUtils.isEmpty(main)) { + return Arrays.asList(diff.split(",")); + } + + String[] mainArr = main.split(","); + String[] diffArr = diff.split(","); + Map map = new HashMap(5); + for (String string : mainArr) { + map.put(string, 1); + } + List res = new ArrayList(); + for (String key : diffArr) { + if(oConvertUtils.isNotEmpty(key) && !map.containsKey(key)) { + res.add(key); + } + } + return res; + } +} diff --git a/nursing-unit-nu/nu-nu-biz/pom.xml b/nursing-unit-nu/nu-nu-biz/pom.xml index 90d99d6a..18aad2bc 100644 --- a/nursing-unit-nu/nu-nu-biz/pom.xml +++ b/nursing-unit-nu/nu-nu-biz/pom.xml @@ -47,7 +47,19 @@ 2.0.0 compile + + com.nursingunit.boot + nu-admin-biz + 2.0.0 + compile + + + com.nursingunit.boot + nu-admin-biz + 2.0.0 + compile + - + diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/entity/NuBaseInfo.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/entity/NuBaseInfo.java index b30e188f..355b49ee 100644 --- a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/entity/NuBaseInfo.java +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/entity/NuBaseInfo.java @@ -2,7 +2,11 @@ package com.nu.modules.nubaseinfo.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; -import com.nu.entity.*; +import com.nu.entity.CameraInfoEntity; +import com.nu.entity.ElderInfoEntity; +import com.nu.entity.ElderServerEntity; +import com.nu.entity.HumidDeviceEntity; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -172,5 +176,8 @@ public class NuBaseInfo implements Serializable { //温湿度计 @TableField(exist = false) private List humidDeviceList; + //单元对应外挂 + @TableField(exist = false) + private List permissionList; } diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/service/impl/NuBaseInfoServiceImpl.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/service/impl/NuBaseInfoServiceImpl.java index da54c2ab..52dc1990 100644 --- a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/service/impl/NuBaseInfoServiceImpl.java +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nubaseinfo/service/impl/NuBaseInfoServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nu.entity.*; +import com.nu.modules.appConfig.entity.NuAppPermission; import com.nu.modules.camerainfo.api.CameraInfoApi; import com.nu.modules.elder.api.IElderInfoApi; import com.nu.modules.humiddevice.api.IHumidAlarmApi; @@ -17,6 +18,8 @@ import com.nu.modules.nubaseinfo.entity.NuBaseInfo; import com.nu.modules.nubaseinfo.mapper.NuBaseInfoMapper; import com.nu.modules.nubaseinfo.service.INuBaseInfoService; import com.nu.modules.nubaseinfo.api.INuBaseInfoApi; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import com.nu.modules.nuidPermission.service.INuAppNuidPermissionService; import org.apache.commons.lang.StringUtils; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.query.QueryGenerator; @@ -54,6 +57,8 @@ public class NuBaseInfoServiceImpl extends ServiceImpl humidDeviceList = humidDeviceApi.listAll(); + //查询护理单元对应菜单权限 + List permissionList = nuAppNuidPermissionService.listByNuId(null); + + //查找list集合里的nuid等于cameraList集合中nuid的就给list集合赋值 list.getRecords().forEach(ni -> { //赋值摄像头信息 @@ -179,6 +188,17 @@ public class NuBaseInfoServiceImpl extends ServiceImpl { + if (StringUtils.equals(ni.getNuId(), humidDto.getRoleId())) { + List permissionDtoList = ni.getPermissionList(); + if (permissionDtoList == null) { + permissionDtoList = new ArrayList<>(); + } + permissionDtoList.add(humidDto); + ni.setPermissionList(permissionDtoList); + } + }); }); IPage entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/controller/NuAppNuidPermissionController.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/controller/NuAppNuidPermissionController.java new file mode 100644 index 00000000..43113a30 --- /dev/null +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/controller/NuAppNuidPermissionController.java @@ -0,0 +1,291 @@ +package com.nu.modules.nuidPermission.controller; + +import java.util.*; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.nu.modules.appConfig.entity.NuAppPermission; +import com.nu.modules.appConfig.entity.TreeModel; +import com.nu.modules.appConfig.service.INuAppPermissionService; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import com.nu.modules.nuidPermission.service.INuAppNuidPermissionService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecg.modules.base.service.BaseCommonService; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: nu_app_nuid_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Api(tags="nu_app_nuid_permission") +@RestController +@RequestMapping("/nuidPermission/nuAppNuidPermission") +@Slf4j +public class NuAppNuidPermissionController extends JeecgController { + @Autowired + private INuAppNuidPermissionService nuAppNuidPermissionService; + @Autowired + private INuAppPermissionService nuAppPermissionService; + @Autowired + private BaseCommonService baseCommonService; + /** + * 分页列表查询 + * + * @param nuAppNuidPermission + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "nu_app_nuid_permission-分页列表查询") + @ApiOperation(value="nu_app_nuid_permission-分页列表查询", notes="nu_app_nuid_permission-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(NuAppNuidPermission nuAppNuidPermission, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuAppNuidPermission, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = nuAppNuidPermissionService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param nuAppNuidPermission + * @return + */ + @AutoLog(value = "nu_app_nuid_permission-添加") + @ApiOperation(value="nu_app_nuid_permission-添加", notes="nu_app_nuid_permission-添加") + @RequiresPermissions("nuidPermission:nu_app_nuid_permission:add") + @PostMapping(value = "/add") + public Result add(@RequestBody NuAppNuidPermission nuAppNuidPermission) { + nuAppNuidPermissionService.save(nuAppNuidPermission); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param nuAppNuidPermission + * @return + */ + @AutoLog(value = "nu_app_nuid_permission-编辑") + @ApiOperation(value="nu_app_nuid_permission-编辑", notes="nu_app_nuid_permission-编辑") + @RequiresPermissions("nuidPermission:nu_app_nuid_permission:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody NuAppNuidPermission nuAppNuidPermission) { + nuAppNuidPermissionService.updateById(nuAppNuidPermission); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "nu_app_nuid_permission-通过id删除") + @ApiOperation(value="nu_app_nuid_permission-通过id删除", notes="nu_app_nuid_permission-通过id删除") + @RequiresPermissions("nuidPermission:nu_app_nuid_permission:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + nuAppNuidPermissionService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "nu_app_nuid_permission-批量删除") + @ApiOperation(value="nu_app_nuid_permission-批量删除", notes="nu_app_nuid_permission-批量删除") + @RequiresPermissions("nuidPermission:nu_app_nuid_permission:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.nuAppNuidPermissionService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "nu_app_nuid_permission-通过id查询") + @ApiOperation(value="nu_app_nuid_permission-通过id查询", notes="nu_app_nuid_permission-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + NuAppNuidPermission nuAppNuidPermission = nuAppNuidPermissionService.getById(id); + if(nuAppNuidPermission==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(nuAppNuidPermission); + } + + /** + * 导出excel + * + * @param request + * @param nuAppNuidPermission + */ + @RequiresPermissions("nuidPermission:nu_app_nuid_permission:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, NuAppNuidPermission nuAppNuidPermission) { + return super.exportXls(request, nuAppNuidPermission, NuAppNuidPermission.class, "nu_app_nuid_permission"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("nuidPermission:nu_app_nuid_permission:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, NuAppNuidPermission.class); + } + + /** + * 用户角色授权功能,查询菜单权限树 + * @param request + * @return + */ + @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET) + public Result> queryTreeList(HttpServletRequest request) { + Result> result = new Result<>(); + //全部权限ids + List ids = new ArrayList<>(); + try { + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(NuAppPermission::getDelFlag, CommonConstant.DEL_FLAG_0); + query.orderByAsc(NuAppPermission::getSortNo); + List list = nuAppPermissionService.list(query); + for(NuAppPermission sysPer : list) { + ids.add(sysPer.getId()); + } + List treeList = new ArrayList<>(); + getTreeModelList(treeList, list, null); + Map resMap = new HashMap(5); + //全部树节点数据 + resMap.put("treeList", treeList); + //全部树ids + resMap.put("ids", ids); + result.setResult(resMap); + result.setSuccess(true); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + private void getTreeModelList(List treeList, List metaList, TreeModel temp) { + for (NuAppPermission permission : metaList) { + String tempPid = permission.getParentId(); + TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(),permission.getRuleFlag(), permission.isLeaf(),permission.getMenuCode()); + if(temp==null && oConvertUtils.isEmpty(tempPid)) { + treeList.add(tree); + if(!tree.getIsLeaf()) { + getTreeModelList(treeList, metaList, tree); + } + }else if(temp!=null && tempPid!=null && tempPid.equals(temp.getKey())){ + temp.getChildren().add(tree); + if(!tree.getIsLeaf()) { + getTreeModelList(treeList, metaList, tree); + } + } + + } + } + + + /** + * 查询角色授权 + * + * @return + */ + @RequestMapping(value = "/queryNuidPermission", method = RequestMethod.GET) + public Result> queryNuidPermission(@RequestParam(name = "nuId", required = true) String nuId) { + Result> result = new Result<>(); + try { + List list = nuAppNuidPermissionService.list(new QueryWrapper().lambda().eq(NuAppNuidPermission::getRoleId, nuId)); + result.setResult(list.stream().map(sysRolePermission -> String.valueOf(sysRolePermission.getPermissionId())).collect(Collectors.toList())); + result.setSuccess(true); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + + /** + * 保存角色授权 + * + * @return + */ + @RequestMapping(value = "/saveRolePermission", method = RequestMethod.POST) +// @RequiresPermissions("system:permission:saveRole") + public Result saveRolePermission(@RequestBody JSONObject json) { + long start = System.currentTimeMillis(); + Result result = new Result<>(); + try { + String roleId = json.getString("roleId"); + String permissionIds = json.getString("permissionIds"); + String lastPermissionIds = json.getString("lastpermissionIds"); + this.nuAppNuidPermissionService.saveRolePermission(roleId, permissionIds, lastPermissionIds); + //update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]用户管理角色授权添加敏感日志------------ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + baseCommonService.addLog("修改角色ID: "+roleId+" 的权限配置,操作人: " +loginUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2); + //update-end---author:wangshuai ---date:20220316 for:[VUEN-234]用户管理角色授权添加敏感日志------------ + result.success("保存成功!"); + log.info("======角色授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); + + } catch (Exception e) { + result.error500("授权失败!"); + log.error(e.getMessage(), e); + } + return result; + } +} diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/entity/NuAppNuidPermission.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/entity/NuAppNuidPermission.java new file mode 100644 index 00000000..56f7726b --- /dev/null +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/entity/NuAppNuidPermission.java @@ -0,0 +1,73 @@ +package com.nu.modules.nuidPermission.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: nu_app_nuid_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Data +@TableName("nu_app_nuid_permission") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_app_nuid_permission对象", description="nu_app_nuid_permission") +public class NuAppNuidPermission implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**角色id*/ + @Excel(name = "角色id", width = 15) + @ApiModelProperty(value = "角色id") + private java.lang.String roleId; + /**权限id*/ + @Excel(name = "权限id", width = 15) + @ApiModelProperty(value = "权限id") + private java.lang.String permissionId; + /**数据权限ids*/ + @Excel(name = "数据权限ids", width = 15) + @ApiModelProperty(value = "数据权限ids") + private java.lang.String dataRuleIds; + /**操作时间*/ + @Excel(name = "操作时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "操作时间") + private java.util.Date operateDate; + /**操作ip*/ + @Excel(name = "操作ip", width = 15) + @ApiModelProperty(value = "操作ip") + private java.lang.String operateIp; + + @TableField(exist = false) + private String menuName; + @TableField(exist = false) + private String menuCode; + + + + public NuAppNuidPermission(String roleId, String permissionId) { + this.roleId = roleId; + this.permissionId = permissionId; + } +} diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/NuAppNuidPermissionMapper.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/NuAppNuidPermissionMapper.java new file mode 100644 index 00000000..195968ef --- /dev/null +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/NuAppNuidPermissionMapper.java @@ -0,0 +1,18 @@ +package com.nu.modules.nuidPermission.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: nu_app_nuid_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +public interface NuAppNuidPermissionMapper extends BaseMapper { + + List listByNuId(@Param("roleId") String nuId); +} diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/xml/NuAppNuidPermissionMapper.xml b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/xml/NuAppNuidPermissionMapper.xml new file mode 100644 index 00000000..5ce7cd22 --- /dev/null +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/mapper/xml/NuAppNuidPermissionMapper.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/INuAppNuidPermissionService.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/INuAppNuidPermissionService.java new file mode 100644 index 00000000..1a917802 --- /dev/null +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/INuAppNuidPermissionService.java @@ -0,0 +1,19 @@ +package com.nu.modules.nuidPermission.service; + +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * @Description: nu_app_nuid_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +public interface INuAppNuidPermissionService extends IService { + + void saveRolePermission(String roleId, String permissionIds, String lastPermissionIds); + + List listByNuId(String nuId); +} diff --git a/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/impl/NuAppNuidPermissionServiceImpl.java b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/impl/NuAppNuidPermissionServiceImpl.java new file mode 100644 index 00000000..43334ed8 --- /dev/null +++ b/nursing-unit-nu/nu-nu-biz/src/main/java/com/nu/modules/nuidPermission/service/impl/NuAppNuidPermissionServiceImpl.java @@ -0,0 +1,92 @@ +package com.nu.modules.nuidPermission.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.modules.nuidPermission.entity.NuAppNuidPermission; +import com.nu.modules.nuidPermission.mapper.NuAppNuidPermissionMapper; +import com.nu.modules.nuidPermission.service.INuAppNuidPermissionService; +import org.jeecg.common.util.IpUtils; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +/** + * @Description: nu_app_nuid_permission + * @Author: jeecg-boot + * @Date: 2026-01-04 + * @Version: V1.0 + */ +@Service +public class NuAppNuidPermissionServiceImpl extends ServiceImpl implements INuAppNuidPermissionService { + + @Override + public void saveRolePermission(String roleId, String permissionIds, String lastPermissionIds) { + String ip = ""; + try { + //获取request + HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); + //获取IP地址 + ip = IpUtils.getIpAddr(request); + } catch (Exception e) { + ip = "127.0.0.1"; + } + List add = getDiff(lastPermissionIds,permissionIds); + if(add!=null && add.size()>0) { + List list = new ArrayList(); + for (String p : add) { + if(oConvertUtils.isNotEmpty(p)) { + NuAppNuidPermission rolepms = new NuAppNuidPermission(roleId, p); + rolepms.setOperateDate(new Date()); + rolepms.setOperateIp(ip); + list.add(rolepms); + } + } + this.saveBatch(list); + } + + List delete = getDiff(permissionIds,lastPermissionIds); + if(delete!=null && delete.size()>0) { + for (String permissionId : delete) { + this.remove(new QueryWrapper().lambda().eq(NuAppNuidPermission::getRoleId, roleId).eq(NuAppNuidPermission::getPermissionId, permissionId)); + } + } + } + + @Override + public List listByNuId(String nuId) { + return baseMapper.listByNuId(nuId); + } + + /** + * 从diff中找出main中没有的元素 + * @param main + * @param diff + * @return + */ + private List getDiff(String main,String diff){ + if(oConvertUtils.isEmpty(diff)) { + return null; + } + if(oConvertUtils.isEmpty(main)) { + return Arrays.asList(diff.split(",")); + } + + String[] mainArr = main.split(","); + String[] diffArr = diff.split(","); + Map map = new HashMap(5); + for (String string : mainArr) { + map.put(string, 1); + } + List res = new ArrayList(); + for (String key : diffArr) { + if(oConvertUtils.isNotEmpty(key) && !map.containsKey(key)) { + res.add(key); + } + } + return res; + } +} From d204b0a739e129c14fb9ac7492b326eee9c2d67f Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Sun, 4 Jan 2026 16:19:08 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/config/shiro/ShiroConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index c98d4386..5517f2d7 100644 --- a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -93,7 +93,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/api/tplink/videoStorage/**", "anon"); //视频缓存存储接口 filterChainDefinitionMap.put("/api/pad/invoicing/getShareInfoByCgdId", "anon"); //查询采购单信息(分享接口使用) // filterChainDefinitionMap.put("/api/pad/invoicing/pdd/**", "anon"); //查询盘点单 - filterChainDefinitionMap.put("/api/employessInfo/**", "anon"); //测试员工接口 +// filterChainDefinitionMap.put("/api/employessInfo/**", "anon"); //测试员工接口 // filterChainDefinitionMap.put("/api/pad/invoicing/**", "anon"); //测试进销存对应的接口 // filterChainDefinitionMap.put("/api/pad/qingling/**", "anon"); //测试请领对应的接口 // filterChainDefinitionMap.put("/api/pad/care/**", "anon"); //服务指令 From 228cd54e294f26a863ce5b4b78fc481adfdeb45c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Mon, 5 Jan 2026 16:53:22 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8C=87=E4=BB=A4-?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9Emap?= =?UTF-8?q?=EF=BC=8C=E6=B3=A8=E9=87=8A=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=90=88=E5=B9=B6=E5=B7=A5=E5=8D=95=EF=BC=8C=E6=9A=82?= =?UTF-8?q?=E5=8F=AA=E5=90=88=E5=B9=B6=E4=BA=86=E6=8A=A4=E7=90=86=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E5=BA=93=E6=88=BF=E8=BF=98=E6=B2=A1=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pad/invoicing/api/InvoicingPddApi.java | 24 +- .../pad/invoicing/api/InvoicingQldApi.java | 82 +- .../pad/invoicing/api/InvoicingThdApi.java | 60 +- .../com/nu/modules/invoicing/api/IPddApi.java | 4 +- .../modules/invoicing/api/IQinglingApi.java | 10 +- .../nu/modules/invoicing/api/ITuiHuoApi.java | 12 +- .../impl/NuInvoicingPddMainServiceImpl.java | 28 +- .../qld/service/impl/QingLingServiceImpl.java | 193 +-- .../service/impl/QingLingServiceImpl_BK.java | 1421 ----------------- .../thd/service/impl/ThdServiceImpl.java | 156 +- .../invoicing/api/IInvoicingOrdersApi.java | 14 +- .../invoicing/api/IInvoicingPdOrdersApi.java | 38 +- .../invoicing/api/IInvoicingQlOrdersApi.java | 120 +- .../invoicing/api/IInvoicingThOrdersApi.java | 50 +- .../biz/care/order/entity/CareOrders.java | 6 +- .../biz/care/order/entity/CareOrdersSub.java | 8 +- .../order/mapper/xml/CareOrdersMapper.xml | 10 +- .../service/impl/CareOrdersServiceImpl.java | 46 +- .../order/entity/InvoicingOrders.java | 2 + .../order/mapper/InvoicingOrdersMapper.java | 1 - .../mapper/xml/InvoicingOrdersMapper.xml | 26 +- .../impl/InvoicingOrdersServiceImpl.java | 79 +- .../service/impl/PdOrdersServiceImpl.java | 136 +- .../service/impl/QlOrdersServiceImpl.java | 1062 ++++++------ .../service/impl/ThOrdersServiceImpl.java | 494 +++--- 25 files changed, 1348 insertions(+), 2734 deletions(-) delete mode 100644 nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl_BK.java diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java index ac348be8..f4723e9a 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java @@ -43,7 +43,7 @@ public class InvoicingPddApi { return Result.error("参数错误,请选择库房"); } Map result = pddApi.addPddMain(invoicingPddMainEntity); - if (StringUtils.equals("true",result.get("success").toString())){ + if ((boolean)result.get("success")){ return Result.OK(result.get("message")); }else{ return Result.error(result.get("message").toString()); @@ -74,7 +74,7 @@ public class InvoicingPddApi { return Result.error("参数错误,请填写盘点数量"); } Map result = pddApi.editPddInfo(invoicingPddInfoEntity); - if (StringUtils.equals("true",result.get("success").toString())){ + if ((boolean)result.get("success")){ // Map map = new HashMap<>(); // map.put("message","操作成功"); // map.put("data",result.get("message")); @@ -92,7 +92,7 @@ public class InvoicingPddApi { return Result.error("参数错误,请选择盘点单"); } Map result = pddApi.submitPddMain(invoicingPddMainEntity); - if (StringUtils.equals("true",result.get("success").toString())){ + if ((boolean)result.get("success")){ return Result.OK(result.get("message")); }else{ return Result.error(result.get("message").toString()); @@ -119,7 +119,7 @@ public class InvoicingPddApi { return Result.error("参数错误,请选择盘点单"); } Map result = pddApi.voidedPddMain(invoicingPddMainEntity); - if (StringUtils.equals("true",result.get("success").toString())){ + if ((boolean)result.get("success")){ return Result.OK(result.get("message")); }else{ return Result.error(result.get("message").toString()); @@ -146,11 +146,11 @@ public class InvoicingPddApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = pddApi.startDirectiveServe(dto); - if ("0".equals(result.get("error_code"))) { - return Result.OK(result.get("msg")); + Map result = pddApi.startDirectiveServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } @@ -167,11 +167,11 @@ public class InvoicingPddApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = pddApi.finishDirectiveServe(dto); - if ("0".equals(result.get("error_code"))) { - return Result.OK(result.get("msg")); + Map result = pddApi.finishDirectiveServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java index 885d0a03..bc3c0fcb 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingQldApi.java @@ -226,11 +226,11 @@ public class InvoicingQldApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = qinglingApi.startDirectiveServe(dto); - if ("0".equals(result.get("error_code"))) { - return Result.OK(result.get("msg")); + Map result = qinglingApi.startDirectiveServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } @@ -247,11 +247,11 @@ public class InvoicingQldApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = qinglingApi.finishDirectiveServe(dto); - if ("0".equals(result.get("error_code"))) { - return Result.OK(result.get("msg")); + Map result = qinglingApi.finishDirectiveServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } @@ -265,17 +265,20 @@ public class InvoicingQldApi { @AutoLog(value = "请领单-提交请领单", clientType = "app") @PostMapping(value = "/submitQld") public Result submitQld(@RequestBody InvoicingQldGwcEntity dto) { - //判断库房是否正在盘点中 - Map izPd = pddApi.queryPddStartInfo(null); - if (izPd.get("success") != null && !(Boolean) izPd.get("success")) { - return Result.error((String) izPd.get("message")); - } - if (StringUtils.isBlank(dto.getNuId()) || StringUtils.isBlank(dto.getElderId())) { return Result.error("缺少参数"); } - return Result.ok(qinglingApi.submitQld(dto)); - + //判断库房是否正在盘点中 + Map pdResult = pddApi.queryPddStartInfo(null); + if (!(boolean)pdResult.get("success")) { + return Result.error(pdResult.get("message").toString()); + } + Map result = qinglingApi.submitQld(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); + } else { + return Result.error(result.get("message").toString()); + } } /** @@ -321,14 +324,14 @@ public class InvoicingQldApi { if (StringUtils.isBlank(dto.getQldNo())) { return Result.error("缺少参数"); } - Map result = qinglingApi.cancellation(dto); - if ("success".equals(result.get("status"))) { + Map result = qinglingApi.cancellation(dto); + if ((boolean)result.get("success")) { Map r_ = Maps.newHashMap(); r_.put("result", qinglingApi.queryQldByQldNo(dto.getQldNo())); r_.put("message", "作废成功"); return Result.OK(r_); } else { - return Result.error(result.get("message")); + return Result.error(result.get("message").toString()); } } @@ -363,23 +366,22 @@ public class InvoicingQldApi { @AutoLog(value = "请领单-确认收货", clientType = "app") @PostMapping(value = "/confirmReceipt") public Result confirmReceipt(@RequestBody InvoicingQldMainEntity dto) { - //库房是否正在盘点中 - Map izPd = pddApi.queryPddStartInfo(null); - if (izPd.get("success") != null && !(Boolean) izPd.get("success")) { - return Result.error((String) izPd.get("message")); - } - if (StringUtils.isBlank(dto.getQldNo()) || StringUtils.isBlank(dto.getNuId()) || StringUtils.isBlank(dto.getElderId())) { return Result.error("缺少参数"); } - Map result = qinglingApi.confirmReceipt(dto); - if ("success".equals(result.get("status"))) { + //库房是否正在盘点中 + Map pdResult = pddApi.queryPddStartInfo(null); + if (!(boolean) pdResult.get("success")) { + return Result.error(pdResult.get("message").toString()); + } + Map result = qinglingApi.confirmReceipt(dto); + if ((boolean)result.get("success")) { Map r_ = Maps.newHashMap(); r_.put("result", qinglingApi.queryQldByQldNo(dto.getQldNo())); r_.put("message", "收货成功"); return Result.OK(r_); } else { - return Result.error(result.get("message")); + return Result.error(result.get("message").toString()); } } @@ -396,14 +398,14 @@ public class InvoicingQldApi { if (StringUtils.isBlank(dto.getQldNo())) { return Result.error("缺少参数"); } - Map result = qinglingApi.orderReturn(dto); - if ("success".equals(result.get("status"))) { + Map result = qinglingApi.orderReturn(dto); + if ((boolean)result.get("success")) { Map r_ = Maps.newHashMap(); r_.put("result", qinglingApi.queryQldByQldNo(dto.getQldNo())); r_.put("message", "回退成功"); return Result.OK(r_); } else { - return Result.error(result.get("message")); + return Result.error(result.get("message").toString()); } } @@ -417,12 +419,6 @@ public class InvoicingQldApi { @AutoLog(value = "请领单-出库(单个/批量)", clientType = "app") @PostMapping(value = "/outbound") public Result> outbound(@RequestBody InvoicingQldMainEntity dto) { - //判断库房是否正在盘点中 - Map izPd = pddApi.queryPddStartInfo(null); - if (izPd.get("success") != null && !(Boolean) izPd.get("success")) { - return Result.error((String) izPd.get("message")); - } - if (StringUtils.isBlank(dto.getQldNo())) { return Result.error("缺少参数"); } @@ -430,7 +426,17 @@ public class InvoicingQldApi { if (dto.getQldNo().indexOf(",") > 0) { return Result.error("出库失败"); } - return Result.ok(qinglingApi.outbound(dto)); + //判断库房是否正在盘点中 + Map pdResult = pddApi.queryPddStartInfo(null); + if (!(boolean)pdResult.get("success")) { + return Result.error(pdResult.get("message").toString()); + } + Map result = qinglingApi.outbound(dto); + if ((boolean)result.get("success")) { + return Result.ok(result); + } else { + return Result.error(result.get("message").toString()); + } } /** diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingThdApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingThdApi.java index ef62c099..7024b73f 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingThdApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingThdApi.java @@ -74,11 +74,11 @@ public class InvoicingThdApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = tuiHuoApi.startDirectiveServe(dto); - if ("0".equals(result.get("error_code"))) { - return Result.OK(result.get("msg")); + Map result = tuiHuoApi.startDirectiveServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } @@ -95,11 +95,11 @@ public class InvoicingThdApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - boolean result = tuiHuoApi.startServe(dto); - if (result) { - return Result.OK("操作成功"); + Map result = tuiHuoApi.startServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error("操作失败"); + return Result.error(result.get("message").toString()); } } @@ -120,7 +120,12 @@ public class InvoicingThdApi { if (dto.getThNum() == null || dto.getThNum() == 0) { return Result.error("未填写退货数量"); } - return Result.ok(tuiHuoApi.addThc(dto)); + Map result = tuiHuoApi.addThc(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); + } else { + return Result.error(result.get("message").toString()); + } } /** @@ -193,18 +198,17 @@ public class InvoicingThdApi { public Result submitThd(@RequestBody InvoicingThdMainEntity dto) { //库房是否正在盘点中 Map izPd = pddApi.queryPddStartInfo(null); - if (izPd.get("success") != null && !(Boolean) izPd.get("success")) { - return Result.error((String) izPd.get("message")); + if (!(boolean) izPd.get("success")) { + return Result.error(izPd.get("message").toString()); } - if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = tuiHuoApi.submitThd(dto); - if ("success".equals(result.get("status"))) { - return Result.OK("入库成功"); + Map result = tuiHuoApi.submitThd(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("message")); + return Result.error(result.get("message").toString()); } } @@ -221,11 +225,11 @@ public class InvoicingThdApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - Map result = tuiHuoApi.finishDirectiveServe(dto); - if ("0".equals(result.get("error_code"))) { - return Result.OK(result.get("msg")); + Map result = tuiHuoApi.finishDirectiveServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } @@ -242,11 +246,11 @@ public class InvoicingThdApi { if (StringUtils.isBlank(dto.getId())) { return Result.error("缺少参数"); } - boolean result = tuiHuoApi.finishServe(dto); - if (result) { - return Result.OK("操作成功"); + Map result = tuiHuoApi.finishServe(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error("操作失败"); + return Result.error(result.get("message").toString()); } } @@ -284,11 +288,11 @@ public class InvoicingThdApi { if (StringUtils.isBlank(dto.getNuId()) || StringUtils.isBlank(dto.getElderId())) { return Result.error("缺少参数"); } - Map result = tuiHuoApi.requireTH(dto); - if (result.get("error_code").equals("0")) { - return Result.OK("操作成功"); + Map result = tuiHuoApi.requireTH(dto); + if ((boolean)result.get("success")) { + return Result.OK(result.get("message")); } else { - return Result.error(result.get("msg")); + return Result.error(result.get("message").toString()); } } diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java index 38d8870b..f0d0317f 100644 --- a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java +++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java @@ -25,7 +25,7 @@ public interface IPddApi { Map queryPddStartInfo(InvoicingPddInfoEntity invoicingPddInfoEntity); - Map startDirectiveServe(InvoicingPddInfoEntity invoicingPddInfoEntity); + Map startDirectiveServe(InvoicingPddInfoEntity invoicingPddInfoEntity); - Map finishDirectiveServe(InvoicingPddInfoEntity invoicingPddInfoEntity); + Map finishDirectiveServe(InvoicingPddInfoEntity invoicingPddInfoEntity); } diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java index 5bd79df9..e112c32a 100644 --- a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java +++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IQinglingApi.java @@ -37,11 +37,11 @@ public interface IQinglingApi { boolean transRead(InvoicingQldMainEntity dto); - Map cancellation(InvoicingQldMainEntity dto); + Map cancellation(InvoicingQldMainEntity dto); - Map confirmReceipt(InvoicingQldMainEntity dto); + Map confirmReceipt(InvoicingQldMainEntity dto); - Map orderReturn(InvoicingQldMainEntity dto); + Map orderReturn(InvoicingQldMainEntity dto); Map outbound(InvoicingQldMainEntity dto); @@ -51,7 +51,7 @@ public interface IQinglingApi { InvoicingQldMainEntity queryQldByQldNo(String qldNo); - Map startDirectiveServe(InvoicingQldQueryEntity dto); + Map startDirectiveServe(InvoicingQldQueryEntity dto); - Map finishDirectiveServe(InvoicingQldQueryEntity dto); + Map finishDirectiveServe(InvoicingQldQueryEntity dto); } diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/ITuiHuoApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/ITuiHuoApi.java index 0ec1bc2d..15bda616 100644 --- a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/ITuiHuoApi.java +++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/ITuiHuoApi.java @@ -16,9 +16,9 @@ public interface ITuiHuoApi { List thdNuMaterialList(InvoicingThdMainEntity dto); - Map startDirectiveServe(InvoicingThdMainEntity dto); + Map startDirectiveServe(InvoicingThdMainEntity dto); - boolean startServe(InvoicingThdMainEntity dto); + Map startServe(InvoicingThdMainEntity dto); Map addThc(InvoicingThdGwcEntity dto); @@ -28,15 +28,15 @@ public interface ITuiHuoApi { boolean removeAll(InvoicingThdGwcEntity dto); - Map submitThd(InvoicingThdMainEntity dto); + Map submitThd(InvoicingThdMainEntity dto); - Map finishDirectiveServe(InvoicingThdMainEntity dto); + Map finishDirectiveServe(InvoicingThdMainEntity dto); - boolean finishServe(InvoicingThdMainEntity dto); + Map finishServe(InvoicingThdMainEntity dto); boolean transRead(InvoicingThdMainEntity dto); - Map requireTH(InvoicingThdMainEntity dto); + Map requireTH(InvoicingThdMainEntity dto); List thdMaterialList(InvoicingThdMainEntity dto); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java index 52d49406..63ff3f84 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java @@ -65,8 +65,8 @@ public class NuInvoicingPddMainServiceImpl extends ServiceImpl queryPddList(Integer pageNo, Integer pageSize, InvoicingPddMainEntity invoicingPddMainEntity, HttpServletRequest req) { @@ -102,7 +102,7 @@ public class NuInvoicingPddMainServiceImpl extends ServiceImpl list = baseMapper.selectList(new QueryWrapper().eq("nu_id",invoicingPddMainEntity.getNuId()).eq("pdd_type","1")); if(list.size() > 0){ - map.put("success","false"); + map.put("success",false); map.put("message","盘点单已存在,不可重复创建"); return map; } @@ -138,7 +138,7 @@ public class NuInvoicingPddMainServiceImpl extends ServiceImpl startDirectiveServe(InvoicingPddInfoEntity dto) { + public Map startDirectiveServe(InvoicingPddInfoEntity dto) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); orderEntity.setId(dto.getId());//指令id orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id - Map result = invoicingOrdersApi.beginOrder(orderEntity); + Map result = invoicingOrdersApi.beginOrder(orderEntity); return result; } @@ -376,7 +376,7 @@ public class NuInvoicingPddMainServiceImpl extends ServiceImpl finishDirectiveServe(InvoicingPddInfoEntity dto){ + public Map finishDirectiveServe(InvoicingPddInfoEntity dto){ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); p_.setId(dto.getId()); diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java index 760ba845..dff532f6 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java @@ -106,8 +106,8 @@ public class QingLingServiceImpl implements IQinglingApi { private QingLingServiceImpl ownService; @Autowired private IInvoicingOrdersApi invoicingOrdersApi; - @Autowired - private IInvoicingQlOrdersApi invoicingQlOrdersApi; +// @Autowired +// private IInvoicingQlOrdersApi invoicingQlOrdersApi; @Override public List> getMaterialTreeData(MaterialCategoryEntity materialCategoryEntity) { @@ -287,8 +287,8 @@ public class QingLingServiceImpl implements IQinglingApi { //检测是否可以正常提交 if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "3")) { - result.put("status", "faild"); - result.put("message", "提交失败,请重新提交"); + result.put("success", false); + result.put("message", "提交失败"); return result; } @@ -297,8 +297,8 @@ public class QingLingServiceImpl implements IQinglingApi { infoQW.eq("qld_no", dto.getQldNo()); List infoList = invoicingQldInfoMapper.selectList(infoQW); if (CollectionUtils.isEmpty(infoList)) { - result.put("status", "faild"); - result.put("message", "不存在物料,无法提交"); + result.put("success", false); + result.put("message", "物料不存在"); return result; } @@ -330,7 +330,7 @@ public class QingLingServiceImpl implements IQinglingApi { one.setTjTime(new Date());//作废时间 invoicingQldMainService.updateById(one); - result.put("status", "success"); + result.put("success", true); result.put("message", "提交成功"); result.put("result", ownService.queryQldByQldNo(dto.getQldNo())); return result; @@ -371,7 +371,7 @@ public class QingLingServiceImpl implements IQinglingApi { //请购车未添加物料 if (CollectionUtils.isEmpty(gwcList)) { - result.put("status", "empty"); + result.put("success", false); result.put("message", "请选择请领物料"); return result; } @@ -393,14 +393,15 @@ public class QingLingServiceImpl implements IQinglingApi { .collect(Collectors.toList()); if (!CollectionUtils.isEmpty(disabledWlList)) { - result.put("status", "exist"); - result.put("existList", disabledWlList); +// result.put("status", "exist"); +// result.put("existList", disabledWlList); // 将materialName用顿号拼接 String materialNames = disabledWlList.stream() .map(InvoicingQldInfoEntity::getMaterialName) .collect(Collectors.joining("、")); result.put("message", "以下物料请领中,请勿重复请领:" + materialNames); + result.put("success", false); return result; } } @@ -502,7 +503,7 @@ public class QingLingServiceImpl implements IQinglingApi { logData.setElderId(dto.getElderId());//长者id invoicingQldLogMapper.insert(logData); - result.put("status", "success"); + result.put("success", true); result.put("message", "提交成功"); // InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); @@ -616,12 +617,12 @@ public class QingLingServiceImpl implements IQinglingApi { */ @Override @Transactional(rollbackFor = Exception.class) - public Map cancellation(InvoicingQldMainEntity dto) { - Map result = Maps.newHashMap(); + public Map cancellation(InvoicingQldMainEntity dto) { + Map result = Maps.newHashMap(); //检测是否可以正常作废 if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,3")) { - result.put("status", "faild"); - result.put("message", "请先开始指令"); + result.put("success", false); + result.put("message", "作废失败"); return result; } @@ -691,7 +692,7 @@ public class QingLingServiceImpl implements IQinglingApi { // invoicingQlOrdersApi.flowQlzf(orderEntity); // } invoicingQldMainService.updateById(one); - result.put("status", "success"); + result.put("success", true); result.put("message", "作废成功"); return result; } @@ -729,8 +730,8 @@ public class QingLingServiceImpl implements IQinglingApi { */ @Override @Transactional(rollbackFor = Exception.class) - public Map confirmReceipt(InvoicingQldMainEntity dto) { - Map result = Maps.newHashMap(); + public Map confirmReceipt(InvoicingQldMainEntity dto) { + Map result = Maps.newHashMap(); //检测是否已经开始服务 // { @@ -747,7 +748,7 @@ public class QingLingServiceImpl implements IQinglingApi { //检测是否可以正常收货 if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "4")) { - result.put("status", "faild"); + result.put("success", false); result.put("message", "收货失败"); return result; } @@ -914,7 +915,7 @@ public class QingLingServiceImpl implements IQinglingApi { } }); warehouseMaterialInfoService.updateBatchById(kfUpdateList); - result.put("status", "success"); + result.put("success", true); result.put("message", "收货完成"); return result; } @@ -927,8 +928,8 @@ public class QingLingServiceImpl implements IQinglingApi { */ @Override @Transactional(rollbackFor = Exception.class) - public Map orderReturn(InvoicingQldMainEntity dto) { - Map result = Maps.newHashMap(); + public Map orderReturn(InvoicingQldMainEntity dto) { + Map result = Maps.newHashMap(); //检测是否已经开始服务 // { // InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); @@ -944,7 +945,7 @@ public class QingLingServiceImpl implements IQinglingApi { //检测是否可以正常回退 if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,4")) { - result.put("status", "faild"); + result.put("success", false); result.put("message", "回退失败"); return result; } @@ -974,7 +975,7 @@ public class QingLingServiceImpl implements IQinglingApi { one.setHtTime(new Date());//回退时间 boolean r_ = invoicingQldMainService.updateById(one); - result.put("status", "success"); + result.put("success", true); result.put("message", "回退成功"); return result; } @@ -1005,7 +1006,7 @@ public class QingLingServiceImpl implements IQinglingApi { //检测单子状态是否正确 if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1")) { - map.put("status", "faild"); + map.put("success", false); map.put("message", "出库失败"); return map; } @@ -1031,7 +1032,7 @@ public class QingLingServiceImpl implements IQinglingApi { } } if (!errorWl.isEmpty()) { - map.put("status", "faild"); + map.put("success", false); map.put("message", "以下物料库存不足,无法出库:" + errorWl); return map; } @@ -1060,7 +1061,7 @@ public class QingLingServiceImpl implements IQinglingApi { qldData.setCkBy(sysUser.getId());//出库人 qldData.setCkTime(new Date());//出库时间 invoicingQldMainService.update(qldData, qw); - map.put("status", "success"); + map.put("success", true); map.put("message", "出库成功"); return map; } @@ -1227,7 +1228,7 @@ public class QingLingServiceImpl implements IQinglingApi { * @return */ @Override - public Map startDirectiveServe(InvoicingQldQueryEntity dto) { + public Map startDirectiveServe(InvoicingQldQueryEntity dto) { //delete by caolei 2025-12-25 // Map result = Maps.newHashMap(); //检测上一操作节点是否已完成(指动作完成,非点击了结束服务) @@ -1299,7 +1300,7 @@ public class QingLingServiceImpl implements IQinglingApi { */ @Override @Transactional(rollbackFor = Exception.class) - public Map finishDirectiveServe(InvoicingQldQueryEntity dto) { + public Map finishDirectiveServe(InvoicingQldQueryEntity dto) { // Map map = new HashMap(); // map.put("error_code","0"); // map.put("msg","可以提交"); @@ -1354,72 +1355,72 @@ public class QingLingServiceImpl implements IQinglingApi { return invoicingOrdersApi.finishOrder(p_); } - /** - * 判断是否可结束工单 - * - * @return - */ - private Map izCanFinish(String flowCode, String status) { - Map map = new HashMap(); - map.put("error_code", "0"); - map.put("msg", "可以结束"); - //完成结束判断算法: - //一、申请可完成 flowCode=ql_sq,完成时只有2种判断,1、业务单号qldNo不为空 ;2、已提交status=1 - //二、出库可完成 flowCode=ql_ck,完成时只有2种判断,1、已出库status=4 ;2、已回退status=3 - //三、收货可完成 flowCode=ql_sh,完成时只有1种判断,1、已收货status=5 - //不考虑作废情况,作废时会将ql_sq的工单状态恢复成最原始状态,判断算法使用根据一、申请可完成 - //一、申请可完成判断 - if (flowCode.equals("ql_sq")) { - if (!status.equals("1")) { - map.put("error_code", "1"); - map.put("msg", "请先提交请领单"); - } - } - //二、出库可完成判断 - if (flowCode.equals("ql_ck")) { - if (status.equals("3") || status.equals("4")) { - } else { - map.put("error_code", "1"); - map.put("msg", "请先出库或回退"); - } - } - //三、收货可完成判断 - if (flowCode.equals("ql_sh")) { - if (!status.equals("5")) { - map.put("error_code", "1"); - map.put("msg", "请先收货"); - } - } - return map; - } - - /** - * 生成下一服务指令工单 - */ - private void createNextOrder(InvoicingOrdersEntity entity, NuInvoicingQldMain main) { - String flowCode = entity.getFlowCode(); - String status = main.getStatus(); - InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); - orderEntity.setFlowCode(flowCode);//ql_sq - orderEntity.setBizId(main.getQldNo());//请领单号 - orderEntity.setNuId(main.getNuId());//护理单元id - orderEntity.setElderId(main.getElderId());//长者id - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - orderEntity.setInitiatorId(sysUser.getEmployessId());//提交人id - //生成请领下一步服务指令 - if (flowCode.equals("ql_sq")) { - invoicingQlOrdersApi.flowQlsq(orderEntity); - } - if (flowCode.equals("ql_ck")) { - //生成出库下一步服务指令 - if (status.equals("4")) { - invoicingQlOrdersApi.flowQlck(orderEntity); - } - //生成回退下一步服务指令 - if (status.equals("3")) { - invoicingQlOrdersApi.flowQlht(orderEntity); - } - } - } +// /** +// * 判断是否可结束工单 +// * +// * @return +// */ +// private Map izCanFinish(String flowCode, String status) { +// Map map = new HashMap(); +// map.put("error_code", "0"); +// map.put("msg", "可以结束"); +// //完成结束判断算法: +// //一、申请可完成 flowCode=ql_sq,完成时只有2种判断,1、业务单号qldNo不为空 ;2、已提交status=1 +// //二、出库可完成 flowCode=ql_ck,完成时只有2种判断,1、已出库status=4 ;2、已回退status=3 +// //三、收货可完成 flowCode=ql_sh,完成时只有1种判断,1、已收货status=5 +// //不考虑作废情况,作废时会将ql_sq的工单状态恢复成最原始状态,判断算法使用根据一、申请可完成 +// //一、申请可完成判断 +// if (flowCode.equals("ql_sq")) { +// if (!status.equals("1")) { +// map.put("error_code", "1"); +// map.put("msg", "请先提交请领单"); +// } +// } +// //二、出库可完成判断 +// if (flowCode.equals("ql_ck")) { +// if (status.equals("3") || status.equals("4")) { +// } else { +// map.put("error_code", "1"); +// map.put("msg", "请先出库或回退"); +// } +// } +// //三、收货可完成判断 +// if (flowCode.equals("ql_sh")) { +// if (!status.equals("5")) { +// map.put("error_code", "1"); +// map.put("msg", "请先收货"); +// } +// } +// return map; +// } +// +// /** +// * 生成下一服务指令工单 +// */ +// private void createNextOrder(InvoicingOrdersEntity entity, NuInvoicingQldMain main) { +// String flowCode = entity.getFlowCode(); +// String status = main.getStatus(); +// InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); +// orderEntity.setFlowCode(flowCode);//ql_sq +// orderEntity.setBizId(main.getQldNo());//请领单号 +// orderEntity.setNuId(main.getNuId());//护理单元id +// orderEntity.setElderId(main.getElderId());//长者id +// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// orderEntity.setInitiatorId(sysUser.getEmployessId());//提交人id +// //生成请领下一步服务指令 +// if (flowCode.equals("ql_sq")) { +// invoicingQlOrdersApi.flowQlsq(orderEntity); +// } +// if (flowCode.equals("ql_ck")) { +// //生成出库下一步服务指令 +// if (status.equals("4")) { +// invoicingQlOrdersApi.flowQlck(orderEntity); +// } +// //生成回退下一步服务指令 +// if (status.equals("3")) { +// invoicingQlOrdersApi.flowQlht(orderEntity); +// } +// } +// } } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl_BK.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl_BK.java deleted file mode 100644 index 854207db..00000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl_BK.java +++ /dev/null @@ -1,1421 +0,0 @@ -package com.nu.modules.qld.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.text.StrBuilder; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.google.common.collect.Maps; -import com.nu.entity.*; -import com.nu.modules.ConfigMaterial.entity.ConfigMaterialCategory; -import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo; -import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialInfoMapper; -import com.nu.modules.ConfigMaterial.service.IConfigMaterialCategoryService; -import com.nu.modules.cgd.entity.NuWarehouseMaterialCrkInfo; -import com.nu.modules.cgd.service.INuWarehouseMaterialCrkInfoService; -import com.nu.modules.elder.api.IElderInfoApi; -import com.nu.modules.invoicing.api.IInvoicingOrdersApi; -import com.nu.modules.invoicing.api.IInvoicingQlOrdersApi; -import com.nu.modules.invoicing.api.IQinglingApi; -import com.nu.modules.nu.entity.NuInvoicingNuCrkLog; -import com.nu.modules.nu.entity.NuInvoicingNuKcsl; -import com.nu.modules.nu.service.INuInvoicingNuCrkLogService; -import com.nu.modules.nu.service.INuInvoicingNuKcslService; -import com.nu.modules.qld.entity.*; -import com.nu.modules.qld.mapper.NuInvoicingQldGwcMapper; -import com.nu.modules.qld.mapper.NuInvoicingQldInfoMapper; -import com.nu.modules.qld.mapper.NuInvoicingQldLogMapper; -import com.nu.modules.qld.mapper.NuInvoicingQldMainMapper; -import com.nu.modules.qld.service.INuInvoicingQldGwcService; -import com.nu.modules.qld.service.INuInvoicingQldLogService; -import com.nu.modules.qld.service.INuInvoicingQldMainService; -import com.nu.modules.qld.service.INuInvoicingQldWlzdService; -import com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo; -import com.nu.modules.warehouseMaterialInfo.mapper.BlWarehouseMaterialInfoMapper; -import com.nu.modules.warehouseMaterialInfo.service.IBlWarehouseMaterialInfoService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.compress.utils.Lists; -import org.apache.commons.lang.StringUtils; -import org.apache.shiro.SecurityUtils; -import org.jeecg.common.system.api.ISysBaseAPI; -import org.jeecg.common.system.vo.LoginUser; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import javax.servlet.http.HttpServletRequest; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.stream.Collectors; -//>>>>>>>>>>>>请领单跟工单相互关联版本 -/** - * @Description: 进销存-请领单-通用处理 - * @Author: jeecg-boot - * @Date: 2025-11-26 - * @Version: V1.0 - */ -//@Service -//@Slf4j -//public class QingLingServiceImpl_BK implements IQinglingApi { -public class QingLingServiceImpl_BK { - - @Autowired - private IConfigMaterialCategoryService configMaterialCategoryService; - @Autowired - private ConfigMaterialInfoMapper configMaterialInfoMapper; - @Autowired - private BlWarehouseMaterialInfoMapper mterialInfoMapper; - //请领单购物车 - @Autowired - private INuInvoicingQldGwcService invoicingQldGwcService; - @Autowired - private INuInvoicingQldWlzdService invoicingQldWlzdService; - @Autowired - private NuInvoicingQldMainMapper invoicingQldMainMapper; - @Autowired - private NuInvoicingQldLogMapper invoicingQldLogMapper; - @Autowired - private INuInvoicingQldLogService invoicingQldLogService; - @Autowired - private IElderInfoApi elderInfoApi; - @Autowired - private NuInvoicingQldGwcMapper invoicingQldGwcMapper; - @Autowired - private INuInvoicingQldMainService invoicingQldMainService; - @Autowired - private ISysBaseAPI sysBaseAPI; - @Autowired - private NuInvoicingQldInfoServiceImpl invoicingQldInfoService; - @Autowired - private NuInvoicingQldInfoMapper invoicingQldInfoMapper; - @Autowired - private INuInvoicingNuCrkLogService invoicingNuCrkLogService; - @Autowired - private INuInvoicingNuKcslService invoicingNuKcslService; - @Autowired - private IBlWarehouseMaterialInfoService warehouseMaterialInfoService; - @Autowired - private INuWarehouseMaterialCrkInfoService warehouseMaterialCrkInfoService; - @Lazy - @Autowired - private QingLingServiceImpl_BK ownService; - @Autowired - private IInvoicingOrdersApi invoicingOrdersApi; - @Autowired - private IInvoicingQlOrdersApi invoicingQlOrdersApi; - - //@Override - public List> getMaterialTreeData(MaterialCategoryEntity materialCategoryEntity) { - ConfigMaterialCategory configMaterialCategory = new ConfigMaterialCategory(); - BeanUtils.copyProperties(materialCategoryEntity, configMaterialCategory); - List> pageList = configMaterialCategoryService.getAllMaterialTreeData(configMaterialCategory); - return pageList; - } - - //@Override - public Map getTreeDataWlnum(MaterialCategoryEntity configMaterialCategory) { - Map map = new HashMap<>(); - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("a.del_flag", "0"); - queryWrapper.eq("a.iz_enabled", "Y"); - queryWrapper.eq(StringUtils.isNotEmpty(configMaterialCategory.getCategoryId()), "b.category_id", configMaterialCategory.getCategoryId()); - queryWrapper.eq(StringUtils.isNotEmpty(configMaterialCategory.getTypeId()), "b.type_id", configMaterialCategory.getTypeId()); - queryWrapper.eq(StringUtils.isNotEmpty(configMaterialCategory.getMedicationId()), "b.medication_id", configMaterialCategory.getMedicationId()); - queryWrapper.in(StringUtils.isNotBlank(configMaterialCategory.getSuppliers()), "b.suppliers", configMaterialCategory.getSuppliers()); - List list = configMaterialInfoMapper.getTreeDataWlnum(queryWrapper); - map.put("success", true); - map.put("message", "物料数量"); - map.put("totalSize", list.size()); - return map; - } - - //@Override - public IPage queryInvoicingList(Integer pageNo, Integer pageSize, MaterialInfoEntity materialInfoEntityDto, HttpServletRequest req) { - if (StringUtils.isEmpty(materialInfoEntityDto.getNuId()) || StringUtils.isEmpty(materialInfoEntityDto.getElderId())) { - return new Page<>(); - } - BlWarehouseMaterialInfo warehouseMaterialInfo = new BlWarehouseMaterialInfo(); - BeanUtils.copyProperties(materialInfoEntityDto, warehouseMaterialInfo); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.apply(StringUtils.isNotBlank(warehouseMaterialInfo.getWlParamInfo()), "( material_name like '%" + warehouseMaterialInfo.getWlParamInfo() + "%' or material_no like '%" + warehouseMaterialInfo.getWlParamInfo() + "%' or pinyin like '%" + warehouseMaterialInfo.getWlParamInfo() + "%' or specification_model like '%" + warehouseMaterialInfo.getWlParamInfo() + "%' ) "); - queryWrapper.eq(StringUtils.isNotBlank(warehouseMaterialInfo.getCategoryId()), "category_id", warehouseMaterialInfo.getCategoryId()); - queryWrapper.eq(StringUtils.isNotBlank(warehouseMaterialInfo.getTypeId()), "type_id", warehouseMaterialInfo.getTypeId()); - queryWrapper.eq(StringUtils.isNotBlank(warehouseMaterialInfo.getMedicationId()), "medication_id", warehouseMaterialInfo.getMedicationId()); - queryWrapper.in(StringUtils.isNotBlank(warehouseMaterialInfo.getSuppliers()), "suppliers", warehouseMaterialInfo.getSuppliers()); - if (StringUtils.isNotBlank(materialInfoEntityDto.getIsWaring()) && "1".equals(materialInfoEntityDto.getIsWaring())) { - queryWrapper.apply("kcsl <= lower_limit"); - } - queryWrapper.eq("del_flag", "0"); - queryWrapper.eq("iz_enabled", "Y"); - Page page = new Page<>(pageNo, pageSize); - List list = mterialInfoMapper.selectListByZd(page, queryWrapper, materialInfoEntityDto); - IPage entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); - entityPage.setRecords(BeanUtil.copyToList(list, MaterialInfoEntity.class)); - return entityPage; - } - - //@Override - public List queryGwcInfo(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getNuId()) || StringUtils.isBlank(queryDto.getElderId())) { - return List.of(); - } - return invoicingQldGwcMapper.queryGwcInfo(queryDto); - } - - //@Override - public boolean addGwc(InvoicingQldGwcEntity dto) { - if (StringUtils.isBlank(dto.getNuId()) || StringUtils.isBlank(dto.getElderId()) || dto.getQlNum() == null || dto.getQlNum() == 0) { - return false; - } - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("nu_id", dto.getNuId()); - qw.eq("elder_id", dto.getElderId()); - qw.eq("wl_id", dto.getWlId()); - NuInvoicingQldGwc one = invoicingQldGwcService.getOne(qw); - if (one != null) { -// dto.setQlNum(dto.getQlNum());//前端传过来的就是最终的数量 -// NuInvoicingQldGwc gwcData = new NuInvoicingQldGwc(); -// BeanUtils.copyProperties(dto, gwcData); -// return invoicingQldGwcService.update(gwcData, qw); - return false; - } else { - NuInvoicingQldGwc gwcData = new NuInvoicingQldGwc(); - BeanUtils.copyProperties(dto, gwcData); - return invoicingQldGwcService.save(gwcData); - } - } - - //@Override - public boolean deleteGwcWl(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getNuId()) || StringUtils.isBlank(queryDto.getElderId()) || StringUtils.isBlank(queryDto.getWlId())) { - return false; - } - NuInvoicingQldGwc dto = new NuInvoicingQldGwc(); - dto.setNuId(queryDto.getNuId()); - dto.setElderId(queryDto.getElderId()); - dto.setWlId(queryDto.getWlId()); - return invoicingQldGwcMapper.deletePhysics(dto) > 0 ? true : false; - } - - //@Override - public boolean deleteQldWl(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getQldNo()) || StringUtils.isBlank(queryDto.getWlId())) { - return false; - } - return invoicingQldInfoMapper.deleteQldWl(queryDto) > 0 ? true : false; - } - - //@Override - public boolean removeAllGwc(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getNuId()) || StringUtils.isBlank(queryDto.getElderId())) { - return false; - } - return invoicingQldGwcService.removeAllGwc(queryDto) > 0 ? true : false; - } - - //@Override - public boolean wlzd(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getNuId()) || StringUtils.isBlank(queryDto.getElderId()) || StringUtils.isBlank(queryDto.getWlId())) { - return false; - } - QueryWrapper qw = new QueryWrapper(); - qw.eq("nu_id", queryDto.getNuId()); - qw.eq("elder_id", queryDto.getElderId()); - qw.eq("wl_id", queryDto.getWlId()); - NuInvoicingQldWlzd one = invoicingQldWlzdService.getOne(qw); - if (!queryDto.getIzZd()) { - //取消置顶 - return invoicingQldWlzdService.wlzd(queryDto); - } - //置顶如果已存在就更新create_time - if (one == null) { - return invoicingQldWlzdService.wlzd(queryDto); - } else { - one.setCreateTime(new Date()); - return invoicingQldWlzdService.updateById(one); - } - } - - //@Override - public MaterialInfoEntity queryMaterialInfo(InvoicingQldQueryEntity queryDto) { - ConfigMaterialInfo configMaterialInfo = configMaterialInfoMapper.queryMaterialInfo(queryDto); - MaterialInfoEntity result = new MaterialInfoEntity(); - BeanUtils.copyProperties(configMaterialInfo, result); - return result; - } - - //@Override - public IPage queryQlwcLog(InvoicingQldQueryEntity queryDto, Integer pageNo, Integer pageSize) { - //长者信息 -// List elderList = elderInfoApi.queryByElderIds(new String[]{queryDto.getElderId()}); -// ElderInfoEntity elder = elderList.get(0); -// result.setElderRzsj(elder.getCreateTime()); - Page page = new Page<>(pageNo, pageSize); - return invoicingQldLogMapper.queryQlwcLog(page, queryDto); - } - - /** - * 提取nuid+elderid下购物车 数据 - * 生成请领单号 - * 将购物车信息变为info信息 - * - * @param dto - * @return - */ - //@Override - @Transactional(rollbackFor = Exception.class) - public Map submitQld(InvoicingQldGwcEntity dto) { - Map result = Maps.newHashMap(); - if (StringUtils.isNotBlank(dto.getQldNo())) { - //检测是否已经开始服务 - { - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_sq"); - p_.setBizId(dto.getQldNo()); - Map j = invoicingQlOrdersApi.izCanReSubmit(p_); - if (!j.get("error_code").equals("0")) { - result.put("status", "faild"); - result.put("message", j.get("msg")); - return result; - } - } - - //检测是否可以正常提交 - if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "3")) { - result.put("status", "faild"); - result.put("message", "提交失败,请重新提交"); - return result; - } - - //检测是否有物料 - QueryWrapper infoQW = new QueryWrapper<>(); - infoQW.eq("qld_no", dto.getQldNo()); - List infoList = invoicingQldInfoMapper.selectList(infoQW); - if (CollectionUtils.isEmpty(infoList)) { - result.put("status", "faild"); - result.put("message", "不存在物料,无法提交"); - return result; - } - - //回退单-提交 - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - dto.setNuId(one.getNuId()); - dto.setElderId(one.getElderId()); - String status = "1"; - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - - //日志表插记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(dto.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(dto.getNuId());//护理单元id - logData.setElderId(dto.getElderId());//长者id - invoicingQldLogMapper.insert(logData); - - //更新单子为待收货 - one.setStatus(status); - one.setIzYgRead("N");//员工改为未读 - one.setIzKgRead("N");//库管改为未读 - one.setTjBy(sysUser.getId());//作废人 - one.setTjTime(new Date());//作废时间 - invoicingQldMainService.updateById(one); - - result.put("status", "success"); - result.put("message", "提交成功"); - result.put("result", ownService.queryQldByQldNo(dto.getQldNo())); - return result; - } else { - //检测 必须有新的指令 并且已经点击开始 - { - //指令工单处判断是否允许提交 - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_sq"); - p_.setNuId(dto.getNuId()); - p_.setElderId(dto.getElderId()); - Map j = invoicingQlOrdersApi.izCanSubmit(p_); - if (!j.get("error_code").equals("0")) { - result.put("status", "faild"); - result.put("message", j.get("msg")); - return result; - } - - //检测通过了 继续检测对应护理单元是否有未完结请领单 - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("nu_id", dto.getNuId()); - qw.eq("elder_id", dto.getElderId()); - qw.in("status", "1", "3", "4"); - List list = invoicingQldMainMapper.selectList(qw); - if (!CollectionUtils.isEmpty(list)) { - result.put("status", "faild"); - result.put("message", "有未完结请领单,暂时无法提交"); - return result; - } - } - - //购物车-提交 - //当前购物车信息 - QueryWrapper gwcQW = new QueryWrapper<>(); - gwcQW.eq("nu_id", dto.getNuId()); - gwcQW.eq("elder_id", dto.getElderId()); - List gwcList = invoicingQldGwcService.list(gwcQW); - - //请购车未添加物料 - if (CollectionUtils.isEmpty(gwcList)) { - result.put("status", "empty"); - result.put("message", "请选择请领物料"); - return result; - } - - //检测哪些物料有未完成请领流程的 - { - //请领流程未完成物料id - List disabledWlList = invoicingQldMainMapper.queryUnFinishWlid(dto); - if (!CollectionUtils.isEmpty(disabledWlList)) { - // 提取gwcList中的所有wlId - Set gwcWlIds = gwcList.stream() - .map(NuInvoicingQldGwc::getWlId) - .collect(Collectors.toSet()); - - // 过滤disabledWlList,只保留在gwcList中也存在的wlId - disabledWlList = disabledWlList.stream() - .filter(item -> item != null && item.getWlId() != null) - .filter(item -> gwcWlIds.contains(item.getWlId())) - .collect(Collectors.toList()); - - if (!CollectionUtils.isEmpty(disabledWlList)) { - result.put("status", "exist"); - result.put("existList", disabledWlList); - - // 将materialName用顿号拼接 - String materialNames = disabledWlList.stream() - .map(InvoicingQldInfoEntity::getMaterialName) - .collect(Collectors.joining("、")); - result.put("message", "以下物料请领中,请勿重复请领:" + materialNames); - return result; - } - } - } - - //可以正常提交 - String status = "1";//待出库(已提交) - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //查出对应物料信息存储到info表和日志表中 - List gwcWlStrs = gwcList.stream().map(NuInvoicingQldGwc::getWlId).collect(Collectors.toList()); - List maList = configMaterialInfoMapper.queryByWlids(gwcWlStrs); - Map maMap = maList.stream().collect(Collectors.toMap(ConfigMaterialInfo::getId, item -> item)); - - - //存储主表数据 - NuInvoicingQldMain saveData = new NuInvoicingQldMain(); - //处理请领单编号 - { - // 查询机构编码 - JSONObject deptInfo = sysBaseAPI.getDeptInfo(); - String deptCode = deptInfo.getString("code"); - String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); - - // 构建今天的前缀模式 - String todayPrefix = "Q" + deptCode + today; - - // 查询今天所有的编号 - QueryWrapper qw = new QueryWrapper<>(); - qw.likeRight("qld_no", todayPrefix); - qw.select("qld_no"); - - List list = invoicingQldMainService.list(qw); - int maxOrderNo = 0; - - if (list != null && !list.isEmpty()) { - // 从qldNo中提取序号,找到最大值 - for (NuInvoicingQldMain item : list) { - if (item.getQldNo() != null && item.getQldNo().startsWith(todayPrefix)) { - // 提取序号部分(最后几位) - String orderStr = item.getQldNo().substring(todayPrefix.length()); - try { - int order = Integer.parseInt(orderStr); - if (order > maxOrderNo) { - maxOrderNo = order; - } - } catch (NumberFormatException e) { - // 如果解析失败,跳过 - } - } - } - } - - int nextOrderNo = maxOrderNo + 1; - String qldOrder = String.format("%03d", nextOrderNo); - saveData.setQldNo(todayPrefix + qldOrder); - } - saveData.setStatus(status); - saveData.setIzYgRead("N");//员工有新消息 - saveData.setIzKgRead("N");//库管有新消息 - saveData.setTjBy(sysUser.getId());//提交人 - saveData.setTjTime(new Date());//提交时间 - saveData.setNuId(dto.getNuId()); - saveData.setElderId(dto.getElderId()); - invoicingQldMainService.save(saveData); - - //子表存储 - List infoList = BeanUtil.copyToList(gwcList, NuInvoicingQldInfo.class); - infoList.stream().forEach(item -> { - item.setQldNo(saveData.getQldNo());//请领单单号 - item.setCreateBy(null); - item.setCreateTime(null); - item.setUpdateBy(null); - item.setUpdateTime(null); - item.setMaterialCategoryName(maMap.get(item.getWlId()).getCategoryName());//物料类别名称 - item.setMaterialTypeName(maMap.get(item.getWlId()).getTypeName());//物料类型名称 - item.setMaterialMedicationName(maMap.get(item.getWlId()).getMedicationName());//物料类型名称 - item.setMaterialName(maMap.get(item.getWlId()).getMaterialName());//物料名称 - item.setMaterialUnits(maMap.get(item.getWlId()).getMaterialUnits());//物料单位 - item.setMaterialNo(maMap.get(item.getWlId()).getMaterialNo());//物料编码 - item.setSpecificationModel(maMap.get(item.getWlId()).getSpecificationModel());//规格型号 - item.setMaterialImg(maMap.get(item.getWlId()).getMaterialImg());//物料图片 - item.setSalesUnitPrice(maMap.get(item.getWlId()).getSalesUnitPrice());//物料销售单价 - }); - invoicingQldInfoService.saveBatch(infoList); - - //清空购物车信息 - InvoicingQldQueryEntity gwcDeleteParam = new InvoicingQldQueryEntity(); - gwcDeleteParam.setNuId(dto.getNuId()); - gwcDeleteParam.setElderId(dto.getElderId()); - invoicingQldGwcService.removeAllGwc(gwcDeleteParam); - - //日志表插记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(saveData.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(dto.getNuId());//护理单元id - logData.setElderId(dto.getElderId());//长者id - invoicingQldLogMapper.insert(logData); - - result.put("status", "success"); - result.put("message", "提交成功"); - - InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); - orderEntity.setFlowCode("ql_sq");//指令流程flow_code 看接口有标明 - orderEntity.setBizId(saveData.getQldNo());//请领单号 - orderEntity.setNuId(saveData.getNuId()); - orderEntity.setElderId(saveData.getElderId());//长者id - orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id - //修改指令工单中的业务单号 - invoicingQlOrdersApi.updateOrderBizId(orderEntity); - return result; - } - } - - /** - * 查询请领单信息 - * - * @param queryDto - * @return - */ - //@Override - public IPage queryQld(InvoicingQldQueryEntity queryDto, Integer pageNo, Integer pageSize) { - Page page = new Page<>(pageNo, pageSize); - - // 查询主表数据 - IPage mainPage = invoicingQldMainMapper.page(page, queryDto); - - // 转换为目标实体类型 - IPage resultPage = new Page<>(pageNo, pageSize, mainPage.getTotal()); - - if (mainPage != null && !mainPage.getRecords().isEmpty()) { - // 获取所有请领单号 - List qldNos = mainPage.getRecords().stream() - .map(NuInvoicingQldMain::getQldNo) - .distinct() - .collect(Collectors.toList()); - - // 批量查询操作日志 - List allLogs = new ArrayList<>(); - if (!qldNos.isEmpty()) { - allLogs = invoicingQldMainMapper.selectLogsByQldNos(qldNos); - } - - // 按请领单号分组日志 - Map> logMap = allLogs.stream() - .collect(Collectors.groupingBy(NuInvoicingQldLog::getQldNo)); - - // 转换主记录 - List entityList = new ArrayList<>(); - for (NuInvoicingQldMain main : mainPage.getRecords()) { - InvoicingQldMainEntity entity = new InvoicingQldMainEntity(); - BeanUtils.copyProperties(main, entity); - - // 处理日志列表 - List logs = logMap.get(main.getQldNo()); - if (logs != null && !logs.isEmpty()) { - List logEntities = new ArrayList<>(); - - // 处理日志过滤规则 - if (logs.size() <= 3) { - // 小于等于3条,全部保留 - for (NuInvoicingQldLog log : logs) { - InvoicingQldLogEntity logEntity = new InvoicingQldLogEntity(); - BeanUtils.copyProperties(log, logEntity); - logEntities.add(logEntity); - } - } else { - // 大于3条,只保留前三条 - int startIndex = logs.size() - 3; // 从倒数第三条开始 - for (int i = startIndex; i < logs.size(); i++) { - InvoicingQldLogEntity logEntity = new InvoicingQldLogEntity(); - BeanUtils.copyProperties(logs.get(i), logEntity); - logEntities.add(logEntity); - } - } - entity.setLogList(logEntities); - } else { - entity.setLogList(new ArrayList<>()); - } - - entityList.add(entity); - } - - resultPage.setRecords(entityList); - } else { - resultPage.setRecords(new ArrayList<>()); - } - - return resultPage; - } - - /** - * 请领单-请领单物料信息查询 - * - * @param queryDto - * @return - */ - //@Override - public List queryQldWlInfo(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getQldNo())) { - return List.of(); - } - return invoicingQldInfoMapper.queryWlInfo(queryDto); - } - - /** - * 请领单-作废 - * - * @param dto - * @return - */ - //@Override - @Transactional(rollbackFor = Exception.class) - public Map cancellation(InvoicingQldMainEntity dto) { - Map result = Maps.newHashMap(); - //检测是否可以正常作废 - if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,3")) { - result.put("status", "faild"); - result.put("message", "请先开始指令"); - return result; - } - - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - dto.setNuId(one.getNuId()); - dto.setElderId(one.getElderId()); - String status = "2"; - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String nowStatus = one.getStatus(); - - //检测是否已经开始服务 - if ("3".equals(nowStatus)) { - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_sq"); - p_.setIzRollback("Y"); - p_.setBizId(dto.getQldNo()); - Map j = invoicingQlOrdersApi.izCanGoOn(p_); - if (!j.get("error_code").equals("0")) { - result.put("status", "faild"); - result.put("message", j.get("msg")); - return result; - } - } - //检测是否可作废 - if ("1".equals(nowStatus)) { - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_ck"); - p_.setBizId(dto.getQldNo()); - Map j = invoicingQlOrdersApi.izCanCancel(p_); - if (!j.get("error_code").equals("0")) { - result.put("status", "faild"); - result.put("message", j.get("msg")); - return result; - } - } - - //日志表插记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(dto.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(dto.getNuId());//护理单元id - logData.setElderId(dto.getElderId());//长者id - invoicingQldLogMapper.insert(logData); - - //更新单子为作废 - one.setStatus(status); - one.setIzKgRead("N");//库管改为未读 - one.setZfBy(sysUser.getId());//作废人 - one.setZfTime(new Date());//作废时间 - - //服务指令流程-作废 - InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); - orderEntity.setBizId(dto.getQldNo());//请领单号 - orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id - if ("1".equals(nowStatus)) { - //已提交直接作废 - orderEntity.setFlowCode("ql_zf");//指令流程flow_code 看接口有标明 - invoicingQlOrdersApi.flowQlzf(orderEntity); - } - if ("3".equals(nowStatus)) { - //回退单作废 - orderEntity.setFlowCode("ql_htzf");//指令流程flow_code 看接口有标明 - invoicingQlOrdersApi.flowQlzf(orderEntity); - } - invoicingQldMainService.updateById(one); - result.put("status", "success"); - result.put("message", "作废成功"); - return result; - } - - /** - * 请领单-单子改为已读 - * - * @param dto - * @return - */ - //@Override - public boolean transRead(InvoicingQldMainEntity dto) { - UpdateWrapper uw = new UpdateWrapper<>(); - uw.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain data = new NuInvoicingQldMain(); - if ("yg".equals(dto.getStatus())) { - data.setIzYgRead("Y"); - } else { - data.setIzKgRead("Y"); - } - return invoicingQldMainService.update(data, uw); - } - - /** - * 确认收货 - * 1、主表改为确认收货状态 - * 2、请领单操作日志表增加操作记录 - * 3、护理单元出入库日志 - * 4、护理单元货品修改对应现有数量 - * 5、添加仓库出库记录 先找出对应物料的仓库库存即为操作前库存量 请领单对应物料数即为出入库数量 两个相减即为当前库存量 crk_type 2 crk_status 3 - * 6、修改仓库库存数量 当前的值 - 操作数量 - * - * @param dto - * @return。 - */ - //@Override - @Transactional(rollbackFor = Exception.class) - public Map confirmReceipt(InvoicingQldMainEntity dto) { - Map result = Maps.newHashMap(); - - //检测是否已经开始服务 - { - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_sh"); - p_.setBizId(dto.getQldNo()); - Map j = invoicingQlOrdersApi.izCanGoOn(p_); - if (!j.get("error_code").equals("0")) { - result.put("status", "faild"); - result.put("message", j.get("msg")); - return result; - } - } - - //检测是否可以正常收货 - if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "4")) { - result.put("status", "faild"); - result.put("message", "收货失败"); - return result; - } - - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - String status = "5";//确认收货 - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - //主表改为已收货 - UpdateWrapper mainUW = new UpdateWrapper<>(); - mainUW.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain mainData = new NuInvoicingQldMain(); - mainData.setStatus(status); - mainData.setShBy(sysUser.getId()); - mainData.setShTime(new Date()); - invoicingQldMainService.update(mainData, mainUW); - - //请领单操作日志表增加操作记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(dto.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(dto.getNuId());//护理单元id - logData.setElderId(dto.getElderId());//长者id - invoicingQldLogMapper.insert(logData); - - //护理单元出入库日志 - QueryWrapper qldInfoQW = new QueryWrapper<>(); - qldInfoQW.eq("qld_no", dto.getQldNo()); - List qldInfoList = invoicingQldInfoService.list(qldInfoQW); - List nuCrkLogList = Lists.newArrayList(); - qldInfoList.stream().forEach(item -> { - NuInvoicingNuCrkLog nuInvoicingNuCrkLog = new NuInvoicingNuCrkLog(); - BeanUtils.copyProperties(item, nuInvoicingNuCrkLog); - nuInvoicingNuCrkLog.setCreateBy(null); - nuInvoicingNuCrkLog.setCreateTime(null); - nuInvoicingNuCrkLog.setWlNum(item.getQlNum()); - nuInvoicingNuCrkLog.setType("1");//类型 1请领 - nuInvoicingNuCrkLog.setOrderNumber(item.getQldNo());//单号 - nuInvoicingNuCrkLog.setOrderType("qld");//单子类型: qld请领单 - nuInvoicingNuCrkLog.setContent("请领单:" + item.getQldNo());//备注 - - nuInvoicingNuCrkLog.setMaterialCategoryName(item.getMaterialCategoryName());//物料类别名称 - nuInvoicingNuCrkLog.setMaterialTypeName(item.getMaterialTypeName());//物料类型名称 - nuInvoicingNuCrkLog.setMaterialMedicationName(item.getMaterialMedicationName());//物料类型名称 - nuInvoicingNuCrkLog.setMaterialName(item.getMaterialName());//物料名称 - nuInvoicingNuCrkLog.setMaterialUnits(item.getMaterialUnits());//物料单位 - nuInvoicingNuCrkLog.setMaterialNo(item.getMaterialNo());//物料编码 - nuInvoicingNuCrkLog.setSpecificationModel(item.getSpecificationModel());//规格型号 - nuInvoicingNuCrkLog.setMaterialImg(item.getMaterialImg());//物料图片 - nuInvoicingNuCrkLog.setSalesUnitPrice(item.getSalesUnitPrice());//物料销售单价 - nuCrkLogList.add(nuInvoicingNuCrkLog); - }); - invoicingNuCrkLogService.saveBatch(nuCrkLogList); - - //护理单元货品修改对应现有数量 没有对应物料插入数据 有的话增加 - QueryWrapper nuKcslQW = new QueryWrapper<>(); - nuKcslQW.eq("nu_id", dto.getNuId()); - nuKcslQW.eq("elder_id", dto.getElderId()); - List nuKcslList = invoicingNuKcslService.list(nuKcslQW); - //nu库存-待新增 - List needAddList = Lists.newArrayList(); - //nu库存-待修改 - List needUpdateList = Lists.newArrayList(); - if (!CollectionUtils.isEmpty(nuKcslList)) { - Map nuKcslMap = nuKcslList.stream() - .collect(Collectors.toMap(NuInvoicingNuKcsl::getWlId, kcsl -> kcsl)); - qldInfoList.stream().forEach(item -> { - NuInvoicingNuKcsl nuInvoicingNuKcsl = new NuInvoicingNuKcsl(); - nuInvoicingNuKcsl.setNuId(item.getNuId()); - nuInvoicingNuKcsl.setElderId(item.getElderId()); - nuInvoicingNuKcsl.setWlId(item.getWlId()); - nuInvoicingNuKcsl.setKfId((item.getKfId())); - - if (nuKcslMap.containsKey(item.getWlId())) { - // 如果已有对应物料 - NuInvoicingNuKcsl existingKcsl = nuKcslMap.get(item.getWlId()); - nuInvoicingNuKcsl.setWlNum(item.getQlNum() + existingKcsl.getWlNum()); - needUpdateList.add(nuInvoicingNuKcsl); - } else { - // 如果没有对应物料 - nuInvoicingNuKcsl.setWlNum(item.getQlNum()); - needAddList.add(nuInvoicingNuKcsl); - } - }); - } else { - qldInfoList.stream().forEach(item -> { - NuInvoicingNuKcsl nuInvoicingNuKcsl = new NuInvoicingNuKcsl(); - nuInvoicingNuKcsl.setNuId(item.getNuId()); - nuInvoicingNuKcsl.setElderId(item.getElderId()); - nuInvoicingNuKcsl.setWlId(item.getWlId()); - nuInvoicingNuKcsl.setKfId((item.getKfId())); - nuInvoicingNuKcsl.setWlNum(item.getQlNum()); - needAddList.add(nuInvoicingNuKcsl); - }); - } - if (!CollectionUtils.isEmpty(needAddList)) { - invoicingNuKcslService.saveBatch(needAddList); - } - if (!CollectionUtils.isEmpty(needUpdateList)) { - needUpdateList.stream().forEach(item -> { - UpdateWrapper nuKcslUW = new UpdateWrapper<>(); - nuKcslUW.eq("nu_id", item.getNuId()); - nuKcslUW.eq("elder_id", item.getElderId()); - nuKcslUW.eq("wl_id", item.getWlId()); - invoicingNuKcslService.update(item, nuKcslUW); - }); - } - - //添加仓库出库记录 先找出对应物料的仓库库存即为操作前库存量 请领单对应物料数即为出入库数量 两个相减即为当前库存量 crk_type 2 crk_status 3 - //库房物料数量 - List kfnumList = warehouseMaterialInfoService.list(); - Map> kfWlSlMap = kfnumList.stream() - .collect(Collectors.groupingBy( - BlWarehouseMaterialInfo::getNuId, - Collectors.toMap( - BlWarehouseMaterialInfo::getWlId, - BlWarehouseMaterialInfo::getKcsl - ) - )); - List kfCrkLogList = Lists.newArrayList(); - qldInfoList.stream().forEach(item -> { - NuWarehouseMaterialCrkInfo kfCrkLog = new NuWarehouseMaterialCrkInfo(); - BeanUtils.copyProperties(item, kfCrkLog); - kfCrkLog.setId(null); - kfCrkLog.setCreateBy(null); - kfCrkLog.setCreateTime(null); - kfCrkLog.setUpdateBy(null); - kfCrkLog.setUpdateTime(null); - kfCrkLog.setCgdId(dto.getQldNo());//请领单号 - kfCrkLog.setNuId(item.getKfId());//库房id 不是nuid - kfCrkLog.setWlId(item.getWlId());//物料id - kfCrkLog.setCrkNum(item.getQlNum());//出入库数量 - kfCrkLog.setCrkType("2");//出入库类型 2请领 - kfCrkLog.setCzqkcl(kfWlSlMap.get(item.getKfId()).get(item.getWlId()));//操作前库存量 - kfCrkLog.setDqkcl((Integer.parseInt(kfWlSlMap.get(item.getKfId()).get(item.getWlId())) - item.getQlNum()) + "");//当前库存量 - kfCrkLog.setCrkStatus("3");//出入库状态 3出库 - kfCrkLog.setContent("请领单:" + dto.getQldNo());//备注 - - kfCrkLog.setMaterialCategoryName(item.getMaterialCategoryName());//物料类别名称 - kfCrkLog.setMaterialTypeName(item.getMaterialTypeName());//物料类型名称 - kfCrkLog.setMaterialMedicationName(item.getMaterialMedicationName());//物料类型名称 - kfCrkLog.setMaterialName(item.getMaterialName());//物料名称 - kfCrkLog.setMaterialUnits(item.getMaterialUnits());//物料单位 - kfCrkLog.setMaterialNo(item.getMaterialNo());//物料编码 - kfCrkLog.setSpecificationModel(item.getSpecificationModel());//规格型号 - kfCrkLog.setMaterialImg(item.getMaterialImg());//物料图片 - kfCrkLog.setSalesUnitPrice(item.getSalesUnitPrice());//物料销售单价 - kfCrkLogList.add(kfCrkLog); - }); - warehouseMaterialCrkInfoService.saveBatch(kfCrkLogList); - - //修改仓库库存数量 当前的值 - 操作数量 - Map qldWlNumMap = qldInfoList.stream() - .collect(Collectors.toMap(NuInvoicingQldInfo::getWlId, NuInvoicingQldInfo::getQlNum)); - List kfUpdateList = Lists.newArrayList(); - kfnumList.stream().forEach(item -> { - if (qldWlNumMap.get(item.getWlId()) != null) { - item.setKcsl((Integer.parseInt(item.getKcsl()) - qldWlNumMap.get(item.getWlId())) + ""); - kfUpdateList.add(item); - } - }); - warehouseMaterialInfoService.updateBatchById(kfUpdateList); - result.put("status", "success"); - result.put("message", "收货完成"); - return result; - } - - /** - * 请领单-回退 - * - * @param dto - * @return - */ - //@Override - @Transactional(rollbackFor = Exception.class) - public Map orderReturn(InvoicingQldMainEntity dto) { - Map result = Maps.newHashMap(); - //检测是否已经开始服务 - { - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_ck"); - p_.setBizId(dto.getQldNo()); - Map j = invoicingQlOrdersApi.izCanGoOn(p_); - if (!j.get("error_code").equals("0")) { - result.put("status", "faild"); - result.put("message", j.get("msg")); - return result; - } - } - - //检测是否可以正常回退 - if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1,4")) { - result.put("status", "faild"); - result.put("message", "回退失败"); - return result; - } - - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - dto.setNuId(one.getNuId()); - dto.setElderId(one.getElderId()); - String status = "3"; - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - //日志表插记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(dto.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(dto.getNuId());//护理单元id - logData.setElderId(dto.getElderId());//长者id - invoicingQldLogMapper.insert(logData); - - //更新单子为作废 - one.setStatus(status); - one.setIzYgRead("N");//员工改为未读 - one.setHtBy(sysUser.getId());//回退人 - one.setHtTime(new Date());//回退时间 - boolean r_ = invoicingQldMainService.updateById(one); - - result.put("status", "success"); - result.put("message", "回退成功"); - return result; - } - - /** - * 请领单-出库(单个/批量) - * - * @param dto - * @return - */ - //@Override - @Transactional(rollbackFor = Exception.class) - public Map outbound(InvoicingQldMainEntity dto) { - //出库一次只会有一个出库单了 - Map map = new HashMap<>(); - //检测是否已经开始服务 - { - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setFlowCode("ql_ck"); - p_.setBizId(dto.getQldNo()); - Map j = invoicingQlOrdersApi.izCanGoOn(p_); - if (!j.get("error_code").equals("0")) { - map.put("status", "faild"); - map.put("message", j.get("msg")); - return map; - } - } - - //检测单子状态是否正确 - if (!invoicingQldLogService.opeNodeJudgeCanStatus(dto.getQldNo(), "1")) { - map.put("status", "faild"); - map.put("message", "出库失败"); - return map; - } - //检测库房物料数量是否满足请领需求 - { - //出库物料汇总 - InvoicingQldQueryEntity q_ = new InvoicingQldQueryEntity(); - q_.setQldNo(dto.getQldNo()); - List qldInfoList = invoicingQldInfoMapper.queryWlInfo(q_); - //库房物料存量 - List kfnumList = warehouseMaterialInfoService.list(); - Map qldWlNumMap = kfnumList.stream() - .collect(Collectors.toMap(BlWarehouseMaterialInfo::getWlId, BlWarehouseMaterialInfo::getKcsl)); - StrBuilder errorWl = new StrBuilder(); - for (int i = 0; i < qldInfoList.size(); i++) { - InvoicingQldInfoEntity item = qldInfoList.get(i); - if (qldWlNumMap.get(item.getWlId()) == null || item.getQlNum() > Integer.parseInt(qldWlNumMap.get(item.getWlId()))) { - //请领数量大于库房存量的 - if (errorWl.length() > 0) { - errorWl.append("、"); - } - errorWl.append(item.getMaterialInfo().getMaterialName()); - } - } - if (!errorWl.isEmpty()) { - map.put("status", "faild"); - map.put("message", "以下物料库存不足,无法出库:" + errorWl); - return map; - } - } - - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("qld_no", dto.getQldNo()); - NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); - String status = "4"; - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - //日志表插记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(dto.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(one.getNuId());//护理单元id - logData.setElderId(one.getElderId());//长者id - invoicingQldLogService.save(logData); - - //更新单子为出库 - NuInvoicingQldMain qldData = new NuInvoicingQldMain(); - qldData.setStatus(status); - qldData.setIzYgRead("N");//员工改为未读 - qldData.setCkBy(sysUser.getId());//出库人 - qldData.setCkTime(new Date());//出库时间 - invoicingQldMainService.update(qldData, qw); - map.put("status", "success"); - map.put("message", "出库成功"); - return map; - } - //一次出库多个 -// public Map outbound(InvoicingQldMainEntity dto) { -// Map map = new HashMap<>(); -// -// //检测是否可以正常出库 -// String[] qldNosArr = dto.getQldNo().split(","); -// //本次处理单号中 - 不可出库单号 -// String cannotHandleQldNos = Arrays.stream(qldNosArr) -// .filter(qldNo -> !invoicingQldLogService.opeNodeJudgeCanStatus(qldNo, "1")) -// .collect(Collectors.joining(",")); -// //检测库房物料数量是否满足请领需求 -// { -// //出库物料汇总 -// InvoicingQldQueryEntity q_ = new InvoicingQldQueryEntity(); -// q_.setQldNo(dto.getQldNo()); -// List qldInfoList = invoicingQldInfoMapper.queryWlInfo(q_); -// //库房物料存量 -// List kfnumList = warehouseMaterialInfoService.list(); -// Map qldWlNumMap = kfnumList.stream() -// .collect(Collectors.toMap(BlWarehouseMaterialInfo::getWlId, BlWarehouseMaterialInfo::getKcsl)); -// StrBuilder errorWl = new StrBuilder(); -// for (int i = 0; i < qldInfoList.size(); i++) { -// InvoicingQldInfoEntity item = qldInfoList.get(i); -// if (qldWlNumMap.get(item.getWlId()) == null || item.getQlNum() > Integer.parseInt(qldWlNumMap.get(item.getWlId()))) { -// //请领数量大于库房存量的 -// if (errorWl.length() > 0) { -// errorWl.append("、"); -// } -// errorWl.append(item.getMaterialInfo().getMaterialName()); -// } -// } -// if (!errorWl.isEmpty()) { -// map.put("status", "faild"); -// map.put("message", "以下物料库存不足,无法出库:" + errorWl); -// return map; -// } -// } -// -// //本次处理单号中 - 可正常出库单号 -// String normalQldNos = Arrays.stream(qldNosArr) -// .filter(qldNo -> !cannotHandleQldNos.contains(qldNo)) -// .collect(Collectors.joining(",")); -// if (StringUtils.isBlank(normalQldNos)) { -// map.put("status", "faild"); -// map.put("message", "单据错误,请刷新页面"); -//// map.put("faildQldNos", cannotHandleQldNos); -// return map; -// } -// -// dto.setQldNo(normalQldNos); -// QueryWrapper qw = new QueryWrapper<>(); -// qw.in("qld_no", dto.getQldNo().split(",")); -// List list = invoicingQldMainService.list(qw); -// Map qldMap = list.stream() -// .collect(Collectors.toMap( -// NuInvoicingQldMain::getQldNo, -// qld -> qld -// )); -// String status = "4"; -// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); -// -// //日志表插记录 -// String[] qldNoArr = dto.getQldNo().split(","); -// int length = dto.getQldNo().split(",").length; -// List logList = Lists.newArrayList(); -// for (int i = 0; i < length; i++) { -// NuInvoicingQldLog logData = new NuInvoicingQldLog(); -// logData.setQldNo(qldNoArr[i]);//请领单号 -// logData.setStatus(status);//单子操作状态 -// logData.setOpeBy(sysUser.getId());//操作人 -// logData.setOpeTime(new Date());//操作时间 -// logData.setNuId(qldMap.get(qldNoArr[i]).getNuId());//护理单元id -// logData.setElderId(qldMap.get(qldNoArr[i]).getElderId());//长者id -// logList.add(logData); -// } -// invoicingQldLogService.saveBatch(logList); -// -// //更新单子为出库 -// NuInvoicingQldMain qldData = new NuInvoicingQldMain(); -// qldData.setStatus(status); -// qldData.setIzYgRead("N");//员工改为未读 -// qldData.setCkBy(sysUser.getId());//出库人 -// qldData.setCkTime(new Date());//出库时间 -// invoicingQldMainService.update(qldData, qw); -// map.put("status", "success"); -// map.put("message", "出库成功"); -// -// //出库-服务指令流程 -// for (int i = 0; i < length; i++) { -// InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); -// orderEntity.setFlowCode("ql_ck");//指令流程flow_code 看接口有标明 -// orderEntity.setBizId(qldNoArr[i]);//请领单号 -// orderEntity.setNuId(qldMap.get(qldNoArr[i]).getNuId()); -//// orderEntity.setNuName(dto.getNuName()); -// orderEntity.setElderId(qldMap.get(qldNoArr[i]).getElderId());//长者id -//// orderEntity.setElderName(dto.getElderName());//长者姓名 -// orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id -// orderEntity.setInitiatorName(sysUser.getRealname());//员工姓名 -// invoicingQlOrdersApi.flowQlck(orderEntity); -// } -// -// return map; -// } - - /** - * 请领单-调整物料数量 - * 传请领单号+物料id+物料数量 - * - * @param queryDto - * @return - */ - //@Override - public boolean updateQldWlSl(InvoicingQldQueryEntity queryDto) { - if (StringUtils.isBlank(queryDto.getQldNo()) || StringUtils.isBlank(queryDto.getWlId()) || queryDto.getQlNum() == null) { - return false; - } - return invoicingQldInfoMapper.updateQldWlSl(queryDto) > 0 ? true : false; - } - - //@Override - public InvoicingQldMainEntity queryQldByQldNo(String qldNo) { - InvoicingQldMainEntity result = invoicingQldMainMapper.queryQldByQldNo(qldNo); - // 批量查询操作日志 - List queryList = Lists.newArrayList(); - queryList.add(qldNo); - List logs = invoicingQldMainMapper.selectLogsByQldNos(queryList); - - // 处理日志列表 - if (logs != null && !logs.isEmpty()) { - List logEntities = new ArrayList<>(); - - // 处理日志过滤规则 - if (logs.size() <= 3) { - // 小于等于3条,全部保留 - for (NuInvoicingQldLog log : logs) { - InvoicingQldLogEntity logEntity = new InvoicingQldLogEntity(); - BeanUtils.copyProperties(log, logEntity); - logEntities.add(logEntity); - } - } else { - // 大于3条,只保留前三条 - int startIndex = logs.size() - 3; // 从倒数第三条开始 - for (int i = startIndex; i < logs.size(); i++) { - InvoicingQldLogEntity logEntity = new InvoicingQldLogEntity(); - BeanUtils.copyProperties(logs.get(i), logEntity); - logEntities.add(logEntity); - } - } - result.setLogList(logEntities); - } else { - result.setLogList(new ArrayList<>()); - } - - return result; - } - - /** - * 请领单-服务指令-开始服务 - * - * @param dto - * @return - */ - //@Override - public Map startDirectiveServe(InvoicingQldQueryEntity dto) { - //delete by caolei 2025-12-25 -// Map result = Maps.newHashMap(); - //检测上一操作节点是否已完成(指动作完成,非点击了结束服务) -// if (StringUtils.isNotBlank(dto.getQldNo())) { -// //提交请领车时不做检测,beginOrder方法自带检测 -// QueryWrapper mainQW = new QueryWrapper<>(); -// mainQW.eq("qld_no", dto.getQldNo()); -// NuInvoicingQldMain main = invoicingQldMainMapper.selectOne(mainQW); -// -// QueryWrapper logQW = new QueryWrapper<>(); -// logQW.eq("qld_no", dto.getQldNo()); -// logQW.orderByDesc("create_time"); -// List logList = invoicingQldLogMapper.selectList(logQW); -// -// //提交(回退后) -// if ("1".equals(dto.getStatus())) { -// if(!"3".equals(logList.get(0).getStatus())){ -// result.put("status", "faild"); -// result.put("message", "服务指令暂时无法开始"); -// return result; -// } -// } -// //作废 -// if ("2".equals(dto.getStatus())) { -// if(!"1".equals(logList.get(0).getStatus()) && !"3".equals(logList.get(0).getStatus())){ -// result.put("status", "faild"); -// result.put("message", "服务指令暂时无法开始"); -// return result; -// } -// } -// //回退 -// if ("3".equals(dto.getStatus())) { -// if(!"1".equals(logList.get(0).getStatus())){ -// result.put("status", "faild"); -// result.put("message", "服务指令暂时无法开始"); -// return result; -// } -// } -// //出库 -// if ("4".equals(dto.getStatus())) { -// if(!"1".equals(logList.get(0).getStatus())){ -// result.put("status", "faild"); -// result.put("message", "服务指令暂时无法开始"); -// return result; -// } -// } -// //确认收货 -// if ("5".equals(dto.getStatus())) { -// if(!"4".equals(logList.get(0).getStatus())){ -// result.put("status", "faild"); -// result.put("message", "服务指令暂时无法开始"); -// return result; -// } -// } -// } - - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setId(dto.getId());//执行指令id - p_.setInitiatorId(sysUser.getEmployessId()); - return invoicingOrdersApi.beginOrder(p_); - } - - /** - * 请领单-服务指令-结束服务 - * - * @param dto - * @return - */ - //@Override - @Transactional(rollbackFor = Exception.class) - public Map finishDirectiveServe(InvoicingQldQueryEntity dto) { - Map map = new HashMap(); - map.put("error_code", "0"); - map.put("msg", "可以提交"); - //获取工单,请领单,判断是否可完成 - InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); - ioe.setId(dto.getId()); - InvoicingOrdersEntity entity = invoicingOrdersApi.getOrderInfo(ioe); - if (entity != null) { - String qldNo = entity.getBizId();//业务单号 - if (qldNo != null && !qldNo.equals("")) { - //获取请领单 - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("qld_no", qldNo); - NuInvoicingQldMain main = invoicingQldMainService.getOne(qw); - if (main != null) { - map = this.izCanFinish(entity.getFlowCode(), main.getStatus()); - if (!map.get("error_code").equals("0")) { - return map; - } - //满足完成条件 - //完成 - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setId(dto.getId()); - p_.setInitiatorId(sysUser.getEmployessId()); - map = invoicingOrdersApi.finishOrder(p_); - if (!map.get("error_code").equals("0")) { - return map; - } - //生成新单据 - createNextOrder(entity, main); - } else { - map.put("error_code", "1"); - map.put("msg", "请领单不存在"); - return map; - } - } else { - map.put("error_code", "1"); - map.put("msg", "请先提交请领单"); - return map; - } - } else { - map.put("error_code", "1"); - map.put("msg", "工单不存在"); - return map; - } - return map; - } - - /** - * 判断是否可结束工单 - * - * @return - */ - private Map izCanFinish(String flowCode, String status) { - Map map = new HashMap(); - map.put("error_code", "0"); - map.put("msg", "可以结束"); - //完成结束判断算法: - //一、申请可完成 flowCode=ql_sq,完成时只有2种判断,1、业务单号qldNo不为空 ;2、已提交status=1 - //二、出库可完成 flowCode=ql_ck,完成时只有2种判断,1、已出库status=4 ;2、已回退status=3 - //三、收货可完成 flowCode=ql_sh,完成时只有1种判断,1、已收货status=5 - //不考虑作废情况,作废时会将ql_sq的工单状态恢复成最原始状态,判断算法使用根据一、申请可完成 - //一、申请可完成判断 - if (flowCode.equals("ql_sq")) { - if (!status.equals("1")) { - map.put("error_code", "1"); - map.put("msg", "请先提交请领单"); - } - } - //二、出库可完成判断 - if (flowCode.equals("ql_ck")) { - if (status.equals("3") || status.equals("4")) { - } else { - map.put("error_code", "1"); - map.put("msg", "请先出库或回退"); - } - } - //三、收货可完成判断 - if (flowCode.equals("ql_sh")) { - if (!status.equals("5")) { - map.put("error_code", "1"); - map.put("msg", "请先收货"); - } - } - return map; - } - - /** - * 生成下一服务指令工单 - */ - private void createNextOrder(InvoicingOrdersEntity entity, NuInvoicingQldMain main) { - String flowCode = entity.getFlowCode(); - String status = main.getStatus(); - InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); - orderEntity.setFlowCode(flowCode);//ql_sq - orderEntity.setBizId(main.getQldNo());//请领单号 - orderEntity.setNuId(main.getNuId());//护理单元id - orderEntity.setElderId(main.getElderId());//长者id - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - orderEntity.setInitiatorId(sysUser.getEmployessId());//提交人id - //生成请领下一步服务指令 - if (flowCode.equals("ql_sq")) { - invoicingQlOrdersApi.flowQlsq(orderEntity); - } - if (flowCode.equals("ql_ck")) { - //生成出库下一步服务指令 - if (status.equals("4")) { - invoicingQlOrdersApi.flowQlck(orderEntity); - } - //生成回退下一步服务指令 - if (status.equals("3")) { - invoicingQlOrdersApi.flowQlht(orderEntity); - } - } - } - -} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/thd/service/impl/ThdServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/thd/service/impl/ThdServiceImpl.java index f886e735..a4c3a419 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/thd/service/impl/ThdServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/thd/service/impl/ThdServiceImpl.java @@ -81,8 +81,8 @@ public class ThdServiceImpl implements ITuiHuoApi { private ConfigMaterialInfoMapper configMaterialInfoMapper; @Autowired private IInvoicingOrdersApi invoicingOrdersApi; - @Autowired - private IInvoicingThOrdersApi invoicingThOrdersApi; +// @Autowired +// private IInvoicingThOrdersApi invoicingThOrdersApi; @Override public IPage thdList(Integer pageNo, Integer pageSize, InvoicingThdMainEntity dto) { @@ -138,13 +138,13 @@ public class ThdServiceImpl implements ITuiHuoApi { @Override @Transactional(rollbackFor = Exception.class) - public Map startDirectiveServe(InvoicingThdMainEntity dto) { + public Map startDirectiveServe(InvoicingThdMainEntity dto) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); // orderEntity.setFlowCode("dyth_cksh");//指令流程flow_code 看接口有标明 orderEntity.setId(dto.getId());//退货指令id orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id - Map result = invoicingOrdersApi.beginOrder(orderEntity); + Map result = invoicingOrdersApi.beginOrder(orderEntity); //delete by caolei 2025-12-25 // if ("0".equals(result.get("error_code"))) { // InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); @@ -165,14 +165,18 @@ public class ThdServiceImpl implements ITuiHuoApi { @Override @Transactional(rollbackFor = Exception.class) - public boolean startServe(InvoicingThdMainEntity dto) { + public Map startServe(InvoicingThdMainEntity dto) { + Map map = new HashMap(); + map.put("success", true); + map.put("message", "操作成功"); //查询当前状态 QueryWrapper qw = new QueryWrapper<>(); qw.eq("id", dto.getId()); NuInvoicingThdMain main = thdMainMapper.selectOne(qw); if (main == null || !"0".equals(main.getStatus())) { - return false; + map.put("success", false); + map.put("message", "操作失败"); } else { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String status = "1"; @@ -192,15 +196,15 @@ public class ThdServiceImpl implements ITuiHuoApi { logData.setNuId(main.getNuId());//护理单元id logData.setElderId(main.getElderId());//长者id thdLogMapper.insert(logData); - - return true; } + return map; } @Override public Map addThc(InvoicingThdGwcEntity dto) { Map result = Maps.newHashMap(); - + result.put("success", true); + result.put("message", "添加成功"); //检测退货数量是否小于等于护理单元库存数量 无需检查 // QueryWrapper kcslQW = new QueryWrapper<>(); // kcslQW.eq("nu_id", dto.getNuId()); @@ -221,8 +225,8 @@ public class ThdServiceImpl implements ITuiHuoApi { List thcList = thdGwcMapper.selectList(thcQW); if (!CollectionUtils.isEmpty(thcList)) { //已存在该物料 - result.put("status", "existed"); - result.put("message", "已添加该物料,请勿重复添加"); + result.put("success", false); + result.put("message", "已添加该物料"); return result; } @@ -235,8 +239,6 @@ public class ThdServiceImpl implements ITuiHuoApi { thc.setWlId(dto.getWlId());//物料id thc.setThNum(dto.getThNum());//退货数量 thdGwcMapper.insert(thc);//新增 - - result.put("status", "success"); return result; } @@ -271,17 +273,19 @@ public class ThdServiceImpl implements ITuiHuoApi { */ @Override @Transactional(rollbackFor = Exception.class) - public Map submitThd(InvoicingThdMainEntity dto) { - Map result = Maps.newHashMap(); - //指令工单处判断是否允许提交 - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setPoolId(dto.getId()); - Map j = invoicingThOrdersApi.izCanSubmit(p_); - if(!j.get("error_code").equals("0")){ - result.put("status", "nodeError"); - result.put("message", j.get("msg")); - return result; - } + public Map submitThd(InvoicingThdMainEntity dto) { + Map result = Maps.newHashMap(); + result.put("success", true); + result.put("message", "入库成功"); +// //指令工单处判断是否允许提交 +// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); +// p_.setPoolId(dto.getId()); +// Map j = invoicingThOrdersApi.izCanSubmit(p_); +// if(!j.get("error_code").equals("0")){ +// result.put("status", "nodeError"); +// result.put("message", j.get("msg")); +// return result; +// } //查询主表信息 QueryWrapper qw = new QueryWrapper<>(); @@ -297,7 +301,7 @@ public class ThdServiceImpl implements ITuiHuoApi { { //检测单子状态是否正确 if (main == null || !"0".equals(main.getStatus())) { - result.put("status", "nodeError"); + result.put("success", false); result.put("message", "入库失败"); return result; } @@ -311,7 +315,7 @@ public class ThdServiceImpl implements ITuiHuoApi { // } //未添加退货物料检测 if (CollectionUtils.isEmpty(gwcList)) { - result.put("status", "faild"); + result.put("success", false); result.put("message", "未添加物料"); return result; } @@ -539,44 +543,43 @@ public class ThdServiceImpl implements ITuiHuoApi { } } - InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); - orderEntity.setPoolId(dto.getId());//退货主表id 入库时会根据更新为对应退货单号(入库时才生成的退货单号) - orderEntity.setBizId(main.getThdNo()); - orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id +// InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); +// orderEntity.setPoolId(dto.getId());//退货主表id 入库时会根据更新为对应退货单号(入库时才生成的退货单号) +// orderEntity.setBizId(main.getThdNo()); +// orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id //delete by caolei 2025-12-25 // orderEntity.setNuId(main.getNuId());//护理单元id // orderEntity.setElderId(main.getElderId());//长者id // orderEntity.setFlowCode("dyth_cksh");//指令流程flow_code 看接口有标明 - invoicingThOrdersApi.updateOrderBizId(orderEntity); +// invoicingThOrdersApi.updateOrderBizId(orderEntity); - result.put("status", "success"); return result; } @Override @Transactional(rollbackFor = Exception.class) - public Map finishDirectiveServe(InvoicingThdMainEntity dto) { - Map r_ = Maps.newHashMap(); - InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); - p_.setId(dto.getId()); - InvoicingOrdersEntity v_ = invoicingThOrdersApi.getOrderInfo(p_); - if (v_ == null || StringUtils.isBlank(v_.getPoolId())) { - r_.put("error_code", "1"); - r_.put("msg", "工单不存在"); - return r_; - } - String mainId = v_.getPoolId();//退货单id - //查询当前状态 - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("id", mainId); - NuInvoicingThdMain main = thdMainMapper.selectOne(qw); - - //检测是否已入库 - if (main == null || !"1".equals(main.getStatus())) { - r_.put("error_code", "1"); - r_.put("msg", "退货单未入库"); - return r_; - } + public Map finishDirectiveServe(InvoicingThdMainEntity dto) { +// Map r_ = Maps.newHashMap(); +// InvoicingOrdersEntity p_ = new InvoicingOrdersEntity(); +// p_.setId(dto.getId()); +// InvoicingOrdersEntity v_ = invoicingThOrdersApi.getOrderInfo(p_); +// if (v_ == null || StringUtils.isBlank(v_.getPoolId())) { +// r_.put("success", false); +// r_.put("message", "工单不存在"); +// return r_; +// } +// String mainId = v_.getPoolId();//退货单id +// //查询当前状态 +// QueryWrapper qw = new QueryWrapper<>(); +// qw.eq("id", mainId); +// NuInvoicingThdMain main = thdMainMapper.selectOne(qw); +// +// //检测是否已入库 +// if (main == null || !"1".equals(main.getStatus())) { +// r_.put("success", false); +// r_.put("message", "退货单未入库"); +// return r_; +// } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); @@ -584,7 +587,7 @@ public class ThdServiceImpl implements ITuiHuoApi { orderEntity.setId(dto.getId());//退货指令的id // orderEntity.setBizId(main.getThdNo()); orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id - Map result = invoicingOrdersApi.finishOrder(orderEntity); + Map result = invoicingOrdersApi.finishOrder(orderEntity); // if ("0".equals(result.get("error_code"))) { // //将状态改为已开始 // UpdateWrapper thUW = new UpdateWrapper<>(); @@ -599,14 +602,18 @@ public class ThdServiceImpl implements ITuiHuoApi { @Override @Transactional(rollbackFor = Exception.class) - public boolean finishServe(InvoicingThdMainEntity dto) { + public Map finishServe(InvoicingThdMainEntity dto) { + Map map = new HashMap(); + map.put("success", true); + map.put("message", "操作成功"); //查询当前状态 QueryWrapper qw = new QueryWrapper<>(); qw.eq("id", dto.getId()); NuInvoicingThdMain main = thdMainMapper.selectOne(qw); if (main == null || !"2".equals(main.getStatus())) { - return false; + map.put("success", false); + map.put("message", "操作失败"); } else { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String status = "3";//已结束服务 @@ -627,9 +634,8 @@ public class ThdServiceImpl implements ITuiHuoApi { logData.setNuId(main.getNuId());//护理单元id logData.setElderId(main.getElderId());//长者id thdLogMapper.insert(logData); - - return true; } + return map; } @Override @@ -642,10 +648,10 @@ public class ThdServiceImpl implements ITuiHuoApi { @Override @Transactional(rollbackFor = Exception.class) - public Map requireTH(InvoicingThdMainEntity dto) { - Map map = new HashMap(); - map.put("error_code","0"); - map.put("msg","操作成功"); + public Map requireTH(InvoicingThdMainEntity dto) { + Map map = new HashMap(); + map.put("success", true); + map.put("message", "操作成功"); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String status = "0";//发起待执行 @@ -655,8 +661,8 @@ public class ThdServiceImpl implements ITuiHuoApi { qw.eq("status", status); NuInvoicingThdMain qwMain = thdMainMapper.selectOne(qw); if(qwMain!=null){ - map.put("error_code","1"); - map.put("msg","退货单已存在"); + map.put("success", false); + map.put("message", "退货单已存在"); } NuInvoicingThdMain main = new NuInvoicingThdMain(); @@ -677,16 +683,16 @@ public class ThdServiceImpl implements ITuiHuoApi { logData.setElderId(main.getElderId());//长者id thdLogMapper.insert(logData); - InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); - orderEntity.setFlowCode("dyth_cksh");//指令流程flow_code 看接口有标明 - orderEntity.setPoolId(main.getId());//退货主表id 入库时会根据更新为对应退货单号(入库时才生成的退货单号) - orderEntity.setNuId(dto.getNuId()); -// orderEntity.setNuName(dto.getNuName()); - orderEntity.setElderId(dto.getElderId());//长者id -// orderEntity.setElderName(dto.getElderName());//长者姓名 - orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id - orderEntity.setInitiatorName(sysUser.getRealname());//员工姓名 - invoicingThOrdersApi.flowDythCksh(orderEntity); +// InvoicingOrdersEntity orderEntity = new InvoicingOrdersEntity(); +// orderEntity.setFlowCode("dyth_cksh");//指令流程flow_code 看接口有标明 +// orderEntity.setPoolId(main.getId());//退货主表id 入库时会根据更新为对应退货单号(入库时才生成的退货单号) +// orderEntity.setNuId(dto.getNuId()); +//// orderEntity.setNuName(dto.getNuName()); +// orderEntity.setElderId(dto.getElderId());//长者id +//// orderEntity.setElderName(dto.getElderName());//长者姓名 +// orderEntity.setInitiatorId(sysUser.getEmployessId());//员工id +// orderEntity.setInitiatorName(sysUser.getRealname());//员工姓名 +// invoicingThOrdersApi.flowDythCksh(orderEntity); return map; } diff --git a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingOrdersApi.java b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingOrdersApi.java index 16ea14d6..7eecd467 100644 --- a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingOrdersApi.java +++ b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingOrdersApi.java @@ -14,23 +14,23 @@ import java.util.Map; */ public interface IInvoicingOrdersApi { - /** - * 获取指令工单信息 - * @param invoicingOrdersEntity - */ - InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); +// /** +// * 获取指令工单信息 +// * @param invoicingOrdersEntity +// */ +// InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); /** * 点击开始 * @param invoicingOrdersEntity */ - Map beginOrder(InvoicingOrdersEntity invoicingOrdersEntity); + Map beginOrder(InvoicingOrdersEntity invoicingOrdersEntity); /** * 点击完成 * @param invoicingOrdersEntity */ - Map finishOrder(InvoicingOrdersEntity invoicingOrdersEntity); + Map finishOrder(InvoicingOrdersEntity invoicingOrdersEntity); /** * 根据工单id查询工单信息+对应服务指令信息 diff --git a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingPdOrdersApi.java b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingPdOrdersApi.java index 85cf42a1..eade83d9 100644 --- a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingPdOrdersApi.java +++ b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingPdOrdersApi.java @@ -6,30 +6,30 @@ import org.jeecg.common.api.vo.Result; import java.util.Map; /** - * @Description: 仓库类服务指令盘点工单 + * @Description: 仓库类服务指令盘点工单 作废 * @Author: caolei * @Date: 2025-12-29 * @Version: V1.0 */ public interface IInvoicingPdOrdersApi { - /** - * 获取工单信息 - * @param invoicingOrdersEntity - * @return - */ - InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 是否可提交 - * @param invoicingOrdersEntity - */ - Result izCanAdd(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 单元退货-提交时修改业务单号 - * @param invoicingOrdersEntity - */ - void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity); +// /** +// * 获取工单信息 +// * @param invoicingOrdersEntity +// * @return +// */ +// InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 是否可提交 +// * @param invoicingOrdersEntity +// */ +// Result izCanAdd(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 单元退货-提交时修改业务单号 +// * @param invoicingOrdersEntity +// */ +// void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity); } diff --git a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingQlOrdersApi.java b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingQlOrdersApi.java index dbd87442..5c8355de 100644 --- a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingQlOrdersApi.java +++ b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingQlOrdersApi.java @@ -5,72 +5,72 @@ import com.nu.entity.InvoicingOrdersEntity; import java.util.Map; /** - * @Description: 仓库类服务指令请领工单 + * @Description: 仓库类服务指令请领工单 作废 * @Author: caolei * @Date: 2025-12-25 * @Version: V1.0 */ public interface IInvoicingQlOrdersApi { - /** - * 请领是否可提交 - * @param invoicingOrdersEntity - */ - Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领是否可重新提交 - * @param invoicingOrdersEntity - */ - Map izCanReSubmit(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领是否可继续 - * @param invoicingOrdersEntity - */ - Map izCanGoOn(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领是否可作废 - * @param invoicingOrdersEntity - */ - Map izCanCancel(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 流程中提交时修改业务单号 - * @param invoicingOrdersEntity - */ - void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领流程-获取指令工单信息 - * @param invoicingOrdersEntity - */ - InvoicingOrdersEntity getQlOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领流程-请领申请 ql_sq - * @param invoicingOrdersEntity - */ - void flowQlsq(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领流程-出库 ql_ck - * @param invoicingOrdersEntity - */ - void flowQlck(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领流程-回退 ql_ht - * @param invoicingOrdersEntity - */ - void flowQlht(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 请领流程-作废 ql_zf - * @param invoicingOrdersEntity - */ - void flowQlzf(InvoicingOrdersEntity invoicingOrdersEntity); +// /** +// * 请领是否可提交 +// * @param invoicingOrdersEntity +// */ +// Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领是否可重新提交 +// * @param invoicingOrdersEntity +// */ +// Map izCanReSubmit(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领是否可继续 +// * @param invoicingOrdersEntity +// */ +// Map izCanGoOn(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领是否可作废 +// * @param invoicingOrdersEntity +// */ +// Map izCanCancel(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 流程中提交时修改业务单号 +// * @param invoicingOrdersEntity +// */ +// void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领流程-获取指令工单信息 +// * @param invoicingOrdersEntity +// */ +// InvoicingOrdersEntity getQlOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领流程-请领申请 ql_sq +// * @param invoicingOrdersEntity +// */ +// void flowQlsq(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领流程-出库 ql_ck +// * @param invoicingOrdersEntity +// */ +// void flowQlck(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领流程-回退 ql_ht +// * @param invoicingOrdersEntity +// */ +// void flowQlht(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 请领流程-作废 ql_zf +// * @param invoicingOrdersEntity +// */ +// void flowQlzf(InvoicingOrdersEntity invoicingOrdersEntity); } diff --git a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingThOrdersApi.java b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingThOrdersApi.java index 2a5d766d..5320638b 100644 --- a/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingThOrdersApi.java +++ b/nursing-unit-services/nu-services-api/nu-services-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingThOrdersApi.java @@ -5,36 +5,36 @@ import com.nu.entity.InvoicingOrdersEntity; import java.util.Map; /** - * @Description: 仓库类服务指令退货工单 + * @Description: 仓库类服务指令退货工单 作废 * @Author: caolei * @Date: 2025-12-25 * @Version: V1.0 */ public interface IInvoicingThOrdersApi { - /** - * 获取工单信息 - * @param invoicingOrdersEntity - * @return - */ - InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 单元退货-仓库收货 dyth_cksh - * @param invoicingOrdersEntity - */ - void flowDythCksh(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 是否可提交 - * @param invoicingOrdersEntity - */ - Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity); - - /** - * 单元退货-提交时修改业务单号 - * @param invoicingOrdersEntity - */ - void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity); +// /** +// * 获取工单信息 +// * @param invoicingOrdersEntity +// * @return +// */ +// InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 单元退货-仓库收货 dyth_cksh +// * @param invoicingOrdersEntity +// */ +// void flowDythCksh(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 是否可提交 +// * @param invoicingOrdersEntity +// */ +// Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity); +// +// /** +// * 单元退货-提交时修改业务单号 +// * @param invoicingOrdersEntity +// */ +// void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrders.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrders.java index 210a1a35..96d8f921 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrders.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrders.java @@ -23,10 +23,10 @@ import java.util.Date; * @Version: V1.0 */ @Data -@TableName("nu_biz_nu_care_directive_order") +@TableName("nu_biz_nu_directive_order") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@ApiModel(value="nu_biz_nu_care_directive_order对象", description="服务指令工单主表") +@ApiModel(value="nu_biz_nu_directive_order对象", description="服务指令工单主表") public class CareOrders implements Serializable { private static final long serialVersionUID = 1L; /**id*/ @@ -34,6 +34,8 @@ public class CareOrders implements Serializable { private String id; /**单号*/ private String orderNo; + /**工单类型*/ + private String orderType; /**数据池子表ID*/ private String poolId; /**主表id*/ diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrdersSub.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrdersSub.java index 20b1e680..359ef11c 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrdersSub.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/entity/CareOrdersSub.java @@ -21,15 +21,19 @@ import java.util.Date; * @Version: V1.0 */ @Data -@TableName("nu_biz_nu_care_directive_order_sub") +@TableName("nu_biz_nu_directive_order_sub") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@ApiModel(value="nu_biz_nu_care_directive_order_sub对象", description="服务指令工单子表") +@ApiModel(value="nu_biz_nu_directive_order_sub对象", description="服务指令工单子表") public class CareOrdersSub implements Serializable { private static final long serialVersionUID = 1L; /**id*/ @TableId(type = IdType.ASSIGN_ID) private String id; + /**单号*/ + private String orderNo; + /**工单类型*/ + private String orderType; /**主表id*/ private String mainId; /**数据池子表ID*/ diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/mapper/xml/CareOrdersMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/mapper/xml/CareOrdersMapper.xml index 57956be1..d9f98c4d 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/mapper/xml/CareOrdersMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/mapper/xml/CareOrdersMapper.xml @@ -60,15 +60,17 @@ round(sum(ifnull(com_price,0)),4) as totalComPrice, max(start_time) as maxTime, sum(case when iz_finish='N' then 1 else 0 end) as ownCn - from nu_biz_nu_care_directive_order_sub - where start_time >=DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') + from nu_biz_nu_directive_order_sub + where order_type = '1' + and start_time >=DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') and start_time <=DATE_FORMAT(NOW(), '%Y-%m-%d 23:59:59') group by employee_id ) e on a.id = e.employee_id left join ( select employee_id,sum(case when iz_finish='N' then 1 else 0 end) as orderNum - from nu_biz_nu_care_directive_order_sub - where start_time = #{startTime} + from nu_biz_nu_directive_order_sub + where order_type = '1' + and start_time = #{startTime} or (start_time < #{startTime} and end_time > #{startTime}) group by employee_id ) f on a.id = f.employee_id diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/service/impl/CareOrdersServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/service/impl/CareOrdersServiceImpl.java index 656a20aa..aa8251ed 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/service/impl/CareOrdersServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/care/order/service/impl/CareOrdersServiceImpl.java @@ -121,19 +121,23 @@ public class CareOrdersServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); + qw.likeRight("order_no", mainOrderNo); + qw.select("order_no"); + qw.orderByDesc("order_no"); + qw.last("limit 1"); + CareOrdersSub entity = ordersSubService.getOne(qw); + int todayNo = 0; + if(entity!=null){ + String orderNo = entity.getOrderNo(); + if(orderNo!=null&&!orderNo.equals("")){ + String todayNoStr = orderNo.substring(mainOrderNo.length()); + todayNo = Integer.parseInt(todayNoStr); + } + } + todayNo = todayNo +1; + String frontNo = String.format("%03d", todayNo); + return mainOrderNo+frontNo; } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/entity/InvoicingOrders.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/entity/InvoicingOrders.java index 00bd9e3a..bdac43a8 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/entity/InvoicingOrders.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/entity/InvoicingOrders.java @@ -33,6 +33,8 @@ public class InvoicingOrders implements Serializable { private String id; /**单号*/ private String orderNo; + /**工单类型*/ + private String orderType; /**数据池子表ID*/ private String poolId; /**业务主表id,或者主表单号*/ diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/InvoicingOrdersMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/InvoicingOrdersMapper.java index a1ea72bf..a7dc921d 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/InvoicingOrdersMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/InvoicingOrdersMapper.java @@ -27,7 +27,6 @@ public interface InvoicingOrdersMapper extends BaseMapper { List getPermissionEmps(@Param("directiveIds") String directiveIds); List getFlowList(InvoicingOrdersEntity invoicingOrdersEntity); InvoicingOrders getFlowOne(InvoicingOrders invoicingOrders); - void cancelOrder(InvoicingOrders invoicingOrders); InvoicingOrders getOrderOne(InvoicingOrders invoicingOrders); InvoicingDirectiveEntity selectInfoById(@Param("id") String id); diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/xml/InvoicingOrdersMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/xml/InvoicingOrdersMapper.xml index c43b2f9a..fc6c67bb 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/xml/InvoicingOrdersMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/mapper/xml/InvoicingOrdersMapper.xml @@ -94,16 +94,18 @@ round(sum(ifnull(com_price,0)),4) as totalComPrice, max(start_time) as maxTime, sum(case when iz_finish='N' then 1 else 0 end) as ownCn - from nu_biz_nu_invoicing_directive_order - where start_time >=DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') + from nu_biz_nu_directive_order + where order_type = '3' + and start_time >=DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00') and start_time <=DATE_FORMAT(NOW(), '%Y-%m-%d 23:59:59') and del_flag = '0' group by employee_id ) e on a.id = e.employee_id left join ( select employee_id,sum(case when iz_finish='N' then 1 else 0 end) as orderNum - from nu_biz_nu_invoicing_directive_order - where start_time = #{startTime} + from nu_biz_nu_directive_order + where order_type = '3' + and start_time = #{startTime} or (start_time < #{startTime} and end_time > #{startTime}) and del_flag = '0' group by employee_id @@ -201,15 +203,6 @@ - - update nu_biz_nu_invoicing_directive_order - set iz_cancel = 'Y', - cancel_time = #{cancelTime}, - cancel_emp = #{cancelEmp}, - remarks = #{remarks} - where biz_id = #{bizId} - - select a.*, mainStatus.item_text AS optTypeName - from nu_biz_nu_invoicing_directive_order a + from nu_biz_nu_directive_order a LEFT JOIN sys_dict dict ON dict.dict_code = 'directive_order_opt_type' LEFT JOIN sys_dict_item mainStatus ON mainStatus.dict_id = dict.id AND mainStatus.item_value = a.opt_type diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/InvoicingOrdersServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/InvoicingOrdersServiceImpl.java index 33a998b9..2b0657b6 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/InvoicingOrdersServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/InvoicingOrdersServiceImpl.java @@ -69,31 +69,28 @@ public class InvoicingOrdersServiceImpl extends ServiceImpl beginOrder(InvoicingOrdersEntity invoicingOrdersEntity) { - log.info("Id:" + invoicingOrdersEntity.getId()); - log.info("UpdateBy:" + invoicingOrdersEntity.getInitiatorId()); - Map map = new HashMap(); - map.put("error_code", "0"); - map.put("msg", "开始成功"); + public Map beginOrder(InvoicingOrdersEntity invoicingOrdersEntity) { + Map map = new HashMap(); + map.put("success", true); + map.put("message", "开始成功"); InvoicingOrders io = new InvoicingOrders(); BeanUtils.copyProperties(invoicingOrdersEntity, io); InvoicingOrders invoicingOrders = baseMapper.getOrderOne(io); @@ -120,12 +115,12 @@ public class InvoicingOrdersServiceImpl extends ServiceImpl finishOrder(InvoicingOrdersEntity invoicingOrdersEntity) { - log.info("Id:" + invoicingOrdersEntity.getId()); - log.info("UpdateBy:" + invoicingOrdersEntity.getInitiatorId()); - Map map = new HashMap(); - map.put("error_code", "0"); - map.put("msg", "结束成功"); + public Map finishOrder(InvoicingOrdersEntity invoicingOrdersEntity) { + Map map = new HashMap(); + map.put("success",true); + map.put("message","结束成功"); InvoicingOrders io = new InvoicingOrders(); BeanUtils.copyProperties(invoicingOrdersEntity, io); InvoicingOrders invoicingOrders = baseMapper.getOrderOne(io); @@ -162,16 +155,16 @@ public class InvoicingOrdersServiceImpl extends ServiceImpl implements IPdOrdersService, IInvoicingPdOrdersApi { - @Autowired - IEmpOrdersService empOrdersService; +// @Autowired +// IEmpOrdersService empOrdersService; - /** - * 获取工单信息 - * @param invoicingOrdersEntity - * @return - */ - @Override - public InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:getOrderInfo"); - log.info("id:"+invoicingOrdersEntity.getId()); - InvoicingOrders io = new InvoicingOrders(); - BeanUtils.copyProperties(invoicingOrdersEntity, io); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); - BeanUtils.copyProperties(entity, ioe); - return ioe; - } - return null; - } +// /** +// * 获取工单信息 +// * @param invoicingOrdersEntity +// * @return +// */ +// @Override +// public InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:getOrderInfo"); +// log.info("id:"+invoicingOrdersEntity.getId()); +// InvoicingOrders io = new InvoicingOrders(); +// BeanUtils.copyProperties(invoicingOrdersEntity, io); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); +// BeanUtils.copyProperties(entity, ioe); +// return ioe; +// } +// return null; +// } - /** - * 是否可提交 - * @param invoicingOrdersEntity - */ - @Override - public Result izCanAdd(InvoicingOrdersEntity invoicingOrdersEntity){ - InvoicingOrders io = new InvoicingOrders(); - BeanUtils.copyProperties(invoicingOrdersEntity, io); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - if(!"Y".equals(entity.getIzStart())) { - return Result.error("工单未开始"); - } - if(!"".equals(entity.getBizId())) { - return Result.error("工单未开始"); - } - }else{ - return Result.error("工单不存在"); - } - return Result.OK("可以新增"); - } +// /** +// * 是否可提交 +// * @param invoicingOrdersEntity +// */ +// @Override +// public Result izCanAdd(InvoicingOrdersEntity invoicingOrdersEntity){ +// InvoicingOrders io = new InvoicingOrders(); +// BeanUtils.copyProperties(invoicingOrdersEntity, io); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// if(!"Y".equals(entity.getIzStart())) { +// return Result.error("工单未开始"); +// } +// if(!"".equals(entity.getBizId())) { +// return Result.error("工单未开始"); +// } +// }else{ +// return Result.error("工单不存在"); +// } +// return Result.OK("可以新增"); +// } - /** - * 单元退货流程中提交时修改业务单号 - * @param invoicingOrdersEntity - */ - @Override - public void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:updateOrderBizId"); - log.info("PoolId:"+invoicingOrdersEntity.getPoolId()); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - empOrdersService.getNames(invoicingOrdersEntity); - QueryWrapper ioQw = new QueryWrapper<>(); - ioQw.eq("pool_id", invoicingOrdersEntity.getPoolId()); - InvoicingOrders order = this.getOne(ioQw); - log.info("order:"+order); - if(order!=null){ - log.info("OrderId:"+order.getId()); - //修改请领单的bizId - InvoicingOrders entity = new InvoicingOrders(); - entity.setId(order.getId()); - entity.setBizId(invoicingOrdersEntity.getBizId()); - entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); - entity.setUpdateTime(new Date()); - baseMapper.updateById(entity); - } - } +// /** +// * 单元退货流程中提交时修改业务单号 +// * @param invoicingOrdersEntity +// */ +// @Override +// public void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:updateOrderBizId"); +// log.info("PoolId:"+invoicingOrdersEntity.getPoolId()); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// empOrdersService.getNames(invoicingOrdersEntity); +// QueryWrapper ioQw = new QueryWrapper<>(); +// ioQw.eq("pool_id", invoicingOrdersEntity.getPoolId()); +// InvoicingOrders order = this.getOne(ioQw); +// log.info("order:"+order); +// if(order!=null){ +// log.info("OrderId:"+order.getId()); +// //修改请领单的bizId +// InvoicingOrders entity = new InvoicingOrders(); +// entity.setId(order.getId()); +// entity.setBizId(invoicingOrdersEntity.getBizId()); +// entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); +// entity.setUpdateTime(new Date()); +// baseMapper.updateById(entity); +// } +// } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/QlOrdersServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/QlOrdersServiceImpl.java index 04d5a22d..076392de 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/QlOrdersServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/QlOrdersServiceImpl.java @@ -38,537 +38,537 @@ import java.util.stream.Collectors; @Slf4j public class QlOrdersServiceImpl extends ServiceImpl implements IQlOrdersService, IInvoicingQlOrdersApi { - @Autowired - IEmpOrdersService empOrdersService; - @Autowired - private ISysConfigApi sysConfigApi; - @Autowired - private ISysBaseAPI sysBaseAPI; - private String serverNetUrl; +// @Autowired +// IEmpOrdersService empOrdersService; +// @Autowired +// private ISysConfigApi sysConfigApi; +// @Autowired +// private ISysBaseAPI sysBaseAPI; +// private String serverNetUrl; - /** - * 请领流程-获取指令工单信息 - * @param invoicingOrdersEntity - */ - @Override - public InvoicingOrdersEntity getQlOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:getQlOrderInfo"); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null){ - InvoicingOrders flow = flowList.get(0); - log.info("DirectiveId:"+flow.getDirectiveId()); - log.info("NuId:"+invoicingOrdersEntity.getNuId()); - log.info("ElderId:"+invoicingOrdersEntity.getElderId()); - InvoicingOrders io = new InvoicingOrders(); - io.setDirectiveId(flow.getDirectiveId()); - io.setNuId(invoicingOrdersEntity.getNuId()); - io.setElderId(invoicingOrdersEntity.getElderId()); - io.setIzFinish("N"); - io.setDelFlag("0"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - if(invoicingOrdersEntity.getBizId()!=null&&!invoicingOrdersEntity.getBizId().equals("")){ - io.setBizId(invoicingOrdersEntity.getBizId()); - } - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); - BeanUtils.copyProperties(entity, ioe); - return ioe; - } - } - return null; - } - - /** - * 请领是否可提交 - * @param invoicingOrdersEntity - */ - @Override - public Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:izCanSubmit"); - log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); - log.info("NuId:"+invoicingOrdersEntity.getNuId()); - log.info("ElderId:"+invoicingOrdersEntity.getElderId()); - Map map = new HashMap(); - map.put("error_code","0"); - map.put("msg","可以提交"); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null) { - InvoicingOrders flow = flowList.get(0); - log.info("DirectiveId:"+flow.getDirectiveId()); - InvoicingOrders io = new InvoicingOrders(); - io.setDirectiveId(flow.getDirectiveId()); - io.setNuId(invoicingOrdersEntity.getNuId()); - io.setElderId(invoicingOrdersEntity.getElderId()); - io.setIzFinish("N"); - io.setDelFlag("0"); - io.setIzRollback("N"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setIzEmptyNo("Y"); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - if(!"Y".equals(entity.getIzStart())) { - map.put("error_code", "1"); - map.put("msg", "工单未开始"); - } - }else{ - map.put("error_code","1"); - map.put("msg","工单不存在"); - } - }else{ - map.put("error_code","1"); - map.put("msg","工单不存在"); - } - return map; - } - - /** - * 请领是否可重新提交 - * @param invoicingOrdersEntity - */ - @Override - public Map izCanReSubmit(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:izCanReSubmit"); - log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - Map map = new HashMap(); - map.put("error_code","0"); - map.put("msg","可以提交"); - InvoicingOrders io = new InvoicingOrders(); - io.setIzFinish("N"); - io.setDelFlag("0"); - io.setIzRollback("Y"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setBizId(invoicingOrdersEntity.getBizId()); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - if(!"Y".equals(entity.getIzStart())) { - map.put("error_code", "1"); - map.put("msg", "工单未开始"); - } - }else{ - map.put("error_code","1"); - map.put("msg","工单不存在"); - } - return map; - } - - /** - * 请领是否可继续 - * @param invoicingOrdersEntity - */ - @Override - public Map izCanGoOn(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:izCanGoOn"); - log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - Map map = new HashMap(); - map.put("error_code","0"); - map.put("msg","可以继续"); - InvoicingOrders io = new InvoicingOrders(); - io.setIzFinish("N"); - io.setDelFlag("0"); - if(invoicingOrdersEntity.getIzRollback()!=null&&!invoicingOrdersEntity.getIzRollback().equals("")){ - io.setIzRollback(invoicingOrdersEntity.getIzRollback()); - }else{ - io.setIzRollback("N"); - } - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setBizId(invoicingOrdersEntity.getBizId()); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - if(!"Y".equals(entity.getIzStart())) { - map.put("error_code", "1"); - map.put("msg", "工单未开始"); - } - }else{ - map.put("error_code","1"); - map.put("msg","工单不存在"); - } - return map; - } - - /** - * 请领是否可作废 - * @param invoicingOrdersEntity - */ - @Override - public Map izCanCancel(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:izCanCancel"); - log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - Map map = new HashMap(); - map.put("error_code","0"); - map.put("msg","可以作废"); - InvoicingOrders io = new InvoicingOrders(); - io.setDelFlag("0"); - io.setIzRollback("N"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setBizId(invoicingOrdersEntity.getBizId()); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - if("Y".equals(entity.getIzStart())) { - map.put("error_code", "1"); - map.put("msg", "工单已开始"); - } - if("Y".equals(entity.getIzFinish())) { - map.put("error_code", "1"); - map.put("msg", "工单已结束"); - } - } - return map; - } - - @Override - public void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:updateOrderBizId"); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - empOrdersService.getNames(invoicingOrdersEntity); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null){ - InvoicingOrders flow = flowList.get(0); - log.info("DirectiveId:"+flow.getDirectiveId()); - log.info("NuId:"+invoicingOrdersEntity.getNuId()); - log.info("ElderId:"+invoicingOrdersEntity.getElderId()); - InvoicingOrders io = new InvoicingOrders(); - io.setDirectiveId(flow.getDirectiveId()); - io.setNuId(invoicingOrdersEntity.getNuId()); - io.setElderId(invoicingOrdersEntity.getElderId()); - io.setIzFinish("N"); - io.setDelFlag("0"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setIzEmptyNo("Y"); - InvoicingOrders order = baseMapper.getOrderOne(io); - log.info("order:"+order); - if(order!=null){ - log.info("OrderId:"+order.getId()); - //修改请领单的bizId - InvoicingOrders entity = new InvoicingOrders(); - entity.setId(order.getId()); - entity.setBizId(invoicingOrdersEntity.getBizId()); - entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); - entity.setUpdateTime(new Date()); - baseMapper.updateById(entity); - } - } - } - - /** - * 请领申请 - * 护理员点击提交按钮,修改请领指令工单bizId - * 获取下一节点,派单规则获取库管,生成一条未开始出库指令工单 - * - * @param invoicingOrdersEntity - */ - @Override - public void flowQlsq(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:flowQlsq"); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - log.info("NuId:"+invoicingOrdersEntity.getNuId()); - log.info("ElderId:"+invoicingOrdersEntity.getElderId()); - empOrdersService.getNames(invoicingOrdersEntity); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null){ - InvoicingOrders flow = flowList.get(0); - String subId = flow.getSubId(); - InvoicingOrders io = new InvoicingOrders(); - io.setIzFinish("Y"); - io.setDelFlag("0"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setBizId(invoicingOrdersEntity.getBizId()); - InvoicingOrders order = baseMapper.getOrderOne(io); - log.info("order:"+order); - if(order!=null){ - log.info("OrderId:"+order.getId()); - //修改请领单的bizId - InvoicingOrders entity = new InvoicingOrders(); - entity.setId(order.getId()); - entity.setInitiatorId(invoicingOrdersEntity.getInitiatorId()); - entity.setInitiatorName(invoicingOrdersEntity.getInitiatorName()); - baseMapper.updateById(entity); - } - if(subId!=null&&!subId.equals("")){ - InvoicingOrders invoicingOrders = new InvoicingOrders(); - invoicingOrders.setFlowId(subId); - InvoicingOrders flowSub = baseMapper.getFlowOne(invoicingOrders); - InvoicingOrders employee = empOrdersService.employeeScreening(flowSub.getDirectiveId(), invoicingOrdersEntity.getElderId(), new Date()); - insertNextOrder(flowSub,invoicingOrdersEntity,employee.getEmployeeId(),employee.getEmployeeName(),invoicingOrdersEntity.getInitiatorId(),invoicingOrdersEntity.getInitiatorName(),flowSub.getFlowCode(),"N"); - } - } - } - - /** - * 请领出库 - * 库管点击出库按钮,获取下一节点 - * 派单申请人是否在线,在线获取此护理员,不在线则派单规则获取护理员,生成一条未开始收货指令工单 - * - * @param invoicingOrdersEntity - */ - @Override - public void flowQlck(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:flowQlck"); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - log.info("NuId:"+invoicingOrdersEntity.getNuId()); - log.info("ElderId:"+invoicingOrdersEntity.getElderId()); - empOrdersService.getNames(invoicingOrdersEntity); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null){ - InvoicingOrders flow = flowList.get(0); - String subId = flow.getSubId(); - InvoicingOrders io = new InvoicingOrders(); - io.setIzFinish("Y"); - io.setDelFlag("0"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setBizId(invoicingOrdersEntity.getBizId()); - InvoicingOrders order = baseMapper.getOrderOne(io); - log.info("order:"+order); - String initiatorId = ""; - String initiatorName = ""; - if(order!=null){ - log.info("OrderId:"+order.getId()); - initiatorId = order.getInitiatorId(); - initiatorName = order.getInitiatorName(); - InvoicingOrders employee = empOrdersService.getOnLineEmployeeById(initiatorId); //获取是否在线 - if(subId!=null&&!subId.equals("")){ - InvoicingOrders invoicingOrders = new InvoicingOrders(); - invoicingOrders.setFlowId(subId); - InvoicingOrders flowSub = baseMapper.getFlowOne(invoicingOrders); - if(employee==null){ - employee = empOrdersService.employeeScreening(flowSub.getDirectiveId(), invoicingOrdersEntity.getElderId(), new Date()); - } - insertNextOrder(flowSub,invoicingOrdersEntity,employee.getEmployeeId(),employee.getEmployeeName(),initiatorId,initiatorName,flowSub.getFlowCode(),"N"); - } - } - } - } - - /** - * 请领回退 - * 库管点击回退按钮,获取未完成未作废的(发给库管)的出库指令工单,获取申请人,并将此工单标记成回退 - * 获取下一节点,生成一条未开始(发给护理员请领申请)的工单 - * - * @param invoicingOrdersEntity - */ - @Override - public void flowQlht(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:flowQlht"); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - log.info("NuId:"+invoicingOrdersEntity.getNuId()); - log.info("ElderId:"+invoicingOrdersEntity.getElderId()); - empOrdersService.getNames(invoicingOrdersEntity); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null){ - InvoicingOrders io = new InvoicingOrders(); - io.setIzFinish("Y"); - io.setDelFlag("0"); - io.setBizType(invoicingOrdersEntity.getFlowCode()); - io.setBizId(invoicingOrdersEntity.getBizId()); - InvoicingOrders order = baseMapper.getOrderOne(io); - log.info("order:"+order); - if(order!=null){ - log.info("OrderId:"+order.getId()); - String employeeId = order.getInitiatorId(); - String employeeName = order.getInitiatorName(); - InvoicingOrders entity = new InvoicingOrders(); - entity.setId(order.getId()); - entity.setIzRollback("Y"); - entity.setRemarks("请领回退"); - entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); - entity.setUpdateTime(new Date()); - baseMapper.updateById(entity); - //回退指令 - InvoicingOrdersEntity flowCode = new InvoicingOrdersEntity(); - flowCode.setFlowCode("ql_ht"); - List htFlowList = baseMapper.getFlowList(flowCode); - if(htFlowList!=null){ - InvoicingOrders htFlow = htFlowList.get(0); - String subId = htFlow.getSubId(); - if(subId!=null&&!subId.equals("")){ - InvoicingOrders invoicingOrders = new InvoicingOrders(); - invoicingOrders.setFlowId(subId); - InvoicingOrders flowSub = baseMapper.getFlowOne(invoicingOrders); - insertNextOrder(flowSub,invoicingOrdersEntity,employeeId,employeeName,employeeId,employeeName,flowSub.getFlowCode(),"Y"); - } - } - } - } - } - - /** - * 请领作废,包括回退作废。 - * @param invoicingOrdersEntity - */ - @Override - public void flowQlzf(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:flowQlzf"); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - InvoicingOrders entity = new InvoicingOrders(); - entity.setBizId(invoicingOrdersEntity.getBizId()); - entity.setCancelEmp(invoicingOrdersEntity.getInitiatorId()); - entity.setCancelTime(new Date()); - entity.setRemarks("请领工单作废"); - baseMapper.cancelOrder(entity); - - if(invoicingOrdersEntity.getFlowCode().equals("ql_zf")){ - //todo ws推送库管通知 - } - //todo ws推送护理员 - } - - /** - * 增加下一步的工单 - * @param invoicingOrdersEntity - * @param flowSub 下一节点 - * @param invoicingOrdersEntity 业务数据 - * @param employeeId 员工ID - * @param employeeName 员工名称 - * @param bizType 操作指令编码 - */ - private void insertNextOrder(InvoicingOrders flowSub,InvoicingOrdersEntity invoicingOrdersEntity,String employeeId,String employeeName,String initiatorId,String initiatorName,String bizType,String izRollback){ - Calendar c = Calendar.getInstance(); - getNetImages(flowSub); - InvoicingOrders nextEntity = new InvoicingOrders(); - nextEntity.setBizId(invoicingOrdersEntity.getBizId()); - nextEntity.setBizType(bizType); - nextEntity.setNuId(invoicingOrdersEntity.getNuId()); - nextEntity.setNuName(invoicingOrdersEntity.getNuName()); - nextEntity.setElderId(invoicingOrdersEntity.getElderId()); - nextEntity.setElderName(invoicingOrdersEntity.getElderName()); - nextEntity.setDirectiveId(flowSub.getDirectiveId()); - nextEntity.setDirectiveName(flowSub.getDirectiveName()); - nextEntity.setCycleTypeId(flowSub.getCycleTypeId()); - nextEntity.setCycleType(flowSub.getCycleType()); - nextEntity.setPreviewFile(flowSub.getPreviewFile()); - nextEntity.setNetPreviewFile(flowSub.getNetPreviewFile()); - nextEntity.setPreviewFileSmall(flowSub.getPreviewFileSmall()); - nextEntity.setNetPreviewFileSmall(flowSub.getNetPreviewFileSmall()); - nextEntity.setMp3File(flowSub.getMp3File()); - nextEntity.setNetMp3File(flowSub.getNetMp3File()); - nextEntity.setMp4File(flowSub.getMp4File()); - nextEntity.setNetMp4File(flowSub.getNetMp4File()); - nextEntity.setServiceDuration(flowSub.getServiceDuration()); - nextEntity.setServiceContent(flowSub.getServiceContent()); - nextEntity.setIzStart("N"); - nextEntity.setIzFinish("N"); - nextEntity.setIzRollback(izRollback); - nextEntity.setCreateEmp(invoicingOrdersEntity.getInitiatorId()); - nextEntity.setCreateTime(c.getTime()); - nextEntity.setDelFlag("0"); - nextEntity.setInitiatorId(initiatorId); - nextEntity.setInitiatorName(initiatorName); - nextEntity.setStartTime(c.getTime()); - c.add(Calendar.MINUTE,Integer.valueOf(flowSub.getServiceDuration())); - nextEntity.setEndTime(c.getTime()); - nextEntity.setEmployeeId(employeeId); - nextEntity.setEmployeeName(employeeName); - nextEntity.setPadPath(flowSub.getPadPath()); - getOrderNo(nextEntity); - baseMapper.insert(nextEntity); - - //todo ws推送 employeeId - } - - /** - * 获取单号 - * @return - */ - private void getOrderNo(InvoicingOrders orders){ - String flowCode = orders.getBizType().toUpperCase(); - String[] parts = flowCode.split("_"); - String prefix = ""; - if(parts.length>0){ - prefix = parts[0]; - } - - JSONObject deptInfo = sysBaseAPI.getDeptInfo(); - String deptCode = deptInfo.getString("code"); - String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); - // 构建今天的前缀模式 - String todayPrefix = "CK" + prefix + deptCode + today; - QueryWrapper qw = new QueryWrapper<>(); - qw.likeRight("order_no", todayPrefix); - qw.select("order_no"); - qw.orderByDesc("order_no"); - qw.last("limit 1"); - InvoicingOrders entity = this.getOne(qw); - int todayNo = 0; - int totalNo = 0; - if(entity!=null){ - String orderNo = entity.getOrderNo(); - if(orderNo!=null&&!orderNo.equals("")){ - String no = orderNo.substring(todayPrefix.length()); - String todayNoStr = no.substring(0,4); - String totalNoStr = no.substring(5); - todayNo = Integer.parseInt(todayNoStr); - totalNo = Integer.parseInt(totalNoStr); - } - } - todayNo = todayNo +1; - totalNo = totalNo +1; - String frontNo = String.format("%04d", todayNo); - String backNo = String.format("%07d", totalNo); - orders.setOrderNo(todayPrefix+frontNo+backNo); - } - - /** - * 获取管理平台静态资源路径 - * - * @return - */ - private void getOpeMediaAddress() { - if (serverNetUrl == null || serverNetUrl.equals("")) { - JSONObject json = sysConfigApi.getByKey("ope_media_address"); - if (json != null) { - String configValue = json.getString("configValue"); - if (!configValue.endsWith("/")) { - configValue += "/"; - } - serverNetUrl = configValue; - } - } - } - - private String getImageNetUrl(String imageUrl) { - getOpeMediaAddress(); - return serverNetUrl + imageUrl; - } - - private InvoicingOrders getNetImages(InvoicingOrders invoicingOrders) { - if (invoicingOrders.getPreviewFile() != null && !invoicingOrders.getPreviewFile().equals("")) { - String netPreviewFile = getImageNetUrl(invoicingOrders.getPreviewFile()); - invoicingOrders.setNetPreviewFile(netPreviewFile); - } else { - invoicingOrders.setPreviewFile(""); - invoicingOrders.setNetPreviewFile(""); - } - if (invoicingOrders.getPreviewFileSmall() != null && !invoicingOrders.getPreviewFileSmall().equals("")) { - String netPreviewFileSmall = getImageNetUrl(invoicingOrders.getPreviewFileSmall()); - invoicingOrders.setNetPreviewFileSmall(netPreviewFileSmall); - } else { - invoicingOrders.setPreviewFileSmall(""); - invoicingOrders.setNetPreviewFileSmall(""); - } - if (invoicingOrders.getMp3File() != null && !invoicingOrders.getMp3File().equals("")) { - String netMp3File = getImageNetUrl(invoicingOrders.getMp3File()); - invoicingOrders.setNetMp3File(netMp3File); - } else { - invoicingOrders.setMp3File(""); - invoicingOrders.setNetMp3File(""); - } - if (invoicingOrders.getMp4File() != null && !invoicingOrders.getMp4File().equals("")) { - String netMp4File = getImageNetUrl(invoicingOrders.getMp4File()); - invoicingOrders.setNetMp4File(netMp4File); - } else { - invoicingOrders.setMp4File(""); - invoicingOrders.setNetMp4File(""); - } - return invoicingOrders; - } +// /** +// * 请领流程-获取指令工单信息 +// * @param invoicingOrdersEntity +// */ +// @Override +// public InvoicingOrdersEntity getQlOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:getQlOrderInfo"); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null){ +// InvoicingOrders flow = flowList.get(0); +// log.info("DirectiveId:"+flow.getDirectiveId()); +// log.info("NuId:"+invoicingOrdersEntity.getNuId()); +// log.info("ElderId:"+invoicingOrdersEntity.getElderId()); +// InvoicingOrders io = new InvoicingOrders(); +// io.setDirectiveId(flow.getDirectiveId()); +// io.setNuId(invoicingOrdersEntity.getNuId()); +// io.setElderId(invoicingOrdersEntity.getElderId()); +// io.setIzFinish("N"); +// io.setDelFlag("0"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// if(invoicingOrdersEntity.getBizId()!=null&&!invoicingOrdersEntity.getBizId().equals("")){ +// io.setBizId(invoicingOrdersEntity.getBizId()); +// } +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); +// BeanUtils.copyProperties(entity, ioe); +// return ioe; +// } +// } +// return null; +// } +// +// /** +// * 请领是否可提交 +// * @param invoicingOrdersEntity +// */ +// @Override +// public Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:izCanSubmit"); +// log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); +// log.info("NuId:"+invoicingOrdersEntity.getNuId()); +// log.info("ElderId:"+invoicingOrdersEntity.getElderId()); +// Map map = new HashMap(); +// map.put("error_code","0"); +// map.put("msg","可以提交"); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null) { +// InvoicingOrders flow = flowList.get(0); +// log.info("DirectiveId:"+flow.getDirectiveId()); +// InvoicingOrders io = new InvoicingOrders(); +// io.setDirectiveId(flow.getDirectiveId()); +// io.setNuId(invoicingOrdersEntity.getNuId()); +// io.setElderId(invoicingOrdersEntity.getElderId()); +// io.setIzFinish("N"); +// io.setDelFlag("0"); +// io.setIzRollback("N"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setIzEmptyNo("Y"); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// if(!"Y".equals(entity.getIzStart())) { +// map.put("error_code", "1"); +// map.put("msg", "工单未开始"); +// } +// }else{ +// map.put("error_code","1"); +// map.put("msg","工单不存在"); +// } +// }else{ +// map.put("error_code","1"); +// map.put("msg","工单不存在"); +// } +// return map; +// } +// +// /** +// * 请领是否可重新提交 +// * @param invoicingOrdersEntity +// */ +// @Override +// public Map izCanReSubmit(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:izCanReSubmit"); +// log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// Map map = new HashMap(); +// map.put("error_code","0"); +// map.put("msg","可以提交"); +// InvoicingOrders io = new InvoicingOrders(); +// io.setIzFinish("N"); +// io.setDelFlag("0"); +// io.setIzRollback("Y"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setBizId(invoicingOrdersEntity.getBizId()); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// if(!"Y".equals(entity.getIzStart())) { +// map.put("error_code", "1"); +// map.put("msg", "工单未开始"); +// } +// }else{ +// map.put("error_code","1"); +// map.put("msg","工单不存在"); +// } +// return map; +// } +// +// /** +// * 请领是否可继续 +// * @param invoicingOrdersEntity +// */ +// @Override +// public Map izCanGoOn(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:izCanGoOn"); +// log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// Map map = new HashMap(); +// map.put("error_code","0"); +// map.put("msg","可以继续"); +// InvoicingOrders io = new InvoicingOrders(); +// io.setIzFinish("N"); +// io.setDelFlag("0"); +// if(invoicingOrdersEntity.getIzRollback()!=null&&!invoicingOrdersEntity.getIzRollback().equals("")){ +// io.setIzRollback(invoicingOrdersEntity.getIzRollback()); +// }else{ +// io.setIzRollback("N"); +// } +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setBizId(invoicingOrdersEntity.getBizId()); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// if(!"Y".equals(entity.getIzStart())) { +// map.put("error_code", "1"); +// map.put("msg", "工单未开始"); +// } +// }else{ +// map.put("error_code","1"); +// map.put("msg","工单不存在"); +// } +// return map; +// } +// +// /** +// * 请领是否可作废 +// * @param invoicingOrdersEntity +// */ +// @Override +// public Map izCanCancel(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:izCanCancel"); +// log.info("FlowCode:"+invoicingOrdersEntity.getFlowCode()); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// Map map = new HashMap(); +// map.put("error_code","0"); +// map.put("msg","可以作废"); +// InvoicingOrders io = new InvoicingOrders(); +// io.setDelFlag("0"); +// io.setIzRollback("N"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setBizId(invoicingOrdersEntity.getBizId()); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// if("Y".equals(entity.getIzStart())) { +// map.put("error_code", "1"); +// map.put("msg", "工单已开始"); +// } +// if("Y".equals(entity.getIzFinish())) { +// map.put("error_code", "1"); +// map.put("msg", "工单已结束"); +// } +// } +// return map; +// } +// +// @Override +// public void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:updateOrderBizId"); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// empOrdersService.getNames(invoicingOrdersEntity); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null){ +// InvoicingOrders flow = flowList.get(0); +// log.info("DirectiveId:"+flow.getDirectiveId()); +// log.info("NuId:"+invoicingOrdersEntity.getNuId()); +// log.info("ElderId:"+invoicingOrdersEntity.getElderId()); +// InvoicingOrders io = new InvoicingOrders(); +// io.setDirectiveId(flow.getDirectiveId()); +// io.setNuId(invoicingOrdersEntity.getNuId()); +// io.setElderId(invoicingOrdersEntity.getElderId()); +// io.setIzFinish("N"); +// io.setDelFlag("0"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setIzEmptyNo("Y"); +// InvoicingOrders order = baseMapper.getOrderOne(io); +// log.info("order:"+order); +// if(order!=null){ +// log.info("OrderId:"+order.getId()); +// //修改请领单的bizId +// InvoicingOrders entity = new InvoicingOrders(); +// entity.setId(order.getId()); +// entity.setBizId(invoicingOrdersEntity.getBizId()); +// entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); +// entity.setUpdateTime(new Date()); +// baseMapper.updateById(entity); +// } +// } +// } +// +// /** +// * 请领申请 +// * 护理员点击提交按钮,修改请领指令工单bizId +// * 获取下一节点,派单规则获取库管,生成一条未开始出库指令工单 +// * +// * @param invoicingOrdersEntity +// */ +// @Override +// public void flowQlsq(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:flowQlsq"); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// log.info("NuId:"+invoicingOrdersEntity.getNuId()); +// log.info("ElderId:"+invoicingOrdersEntity.getElderId()); +// empOrdersService.getNames(invoicingOrdersEntity); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null){ +// InvoicingOrders flow = flowList.get(0); +// String subId = flow.getSubId(); +// InvoicingOrders io = new InvoicingOrders(); +// io.setIzFinish("Y"); +// io.setDelFlag("0"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setBizId(invoicingOrdersEntity.getBizId()); +// InvoicingOrders order = baseMapper.getOrderOne(io); +// log.info("order:"+order); +// if(order!=null){ +// log.info("OrderId:"+order.getId()); +// //修改请领单的bizId +// InvoicingOrders entity = new InvoicingOrders(); +// entity.setId(order.getId()); +// entity.setInitiatorId(invoicingOrdersEntity.getInitiatorId()); +// entity.setInitiatorName(invoicingOrdersEntity.getInitiatorName()); +// baseMapper.updateById(entity); +// } +// if(subId!=null&&!subId.equals("")){ +// InvoicingOrders invoicingOrders = new InvoicingOrders(); +// invoicingOrders.setFlowId(subId); +// InvoicingOrders flowSub = baseMapper.getFlowOne(invoicingOrders); +// InvoicingOrders employee = empOrdersService.employeeScreening(flowSub.getDirectiveId(), invoicingOrdersEntity.getElderId(), new Date()); +// insertNextOrder(flowSub,invoicingOrdersEntity,employee.getEmployeeId(),employee.getEmployeeName(),invoicingOrdersEntity.getInitiatorId(),invoicingOrdersEntity.getInitiatorName(),flowSub.getFlowCode(),"N"); +// } +// } +// } +// +// /** +// * 请领出库 +// * 库管点击出库按钮,获取下一节点 +// * 派单申请人是否在线,在线获取此护理员,不在线则派单规则获取护理员,生成一条未开始收货指令工单 +// * +// * @param invoicingOrdersEntity +// */ +// @Override +// public void flowQlck(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:flowQlck"); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// log.info("NuId:"+invoicingOrdersEntity.getNuId()); +// log.info("ElderId:"+invoicingOrdersEntity.getElderId()); +// empOrdersService.getNames(invoicingOrdersEntity); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null){ +// InvoicingOrders flow = flowList.get(0); +// String subId = flow.getSubId(); +// InvoicingOrders io = new InvoicingOrders(); +// io.setIzFinish("Y"); +// io.setDelFlag("0"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setBizId(invoicingOrdersEntity.getBizId()); +// InvoicingOrders order = baseMapper.getOrderOne(io); +// log.info("order:"+order); +// String initiatorId = ""; +// String initiatorName = ""; +// if(order!=null){ +// log.info("OrderId:"+order.getId()); +// initiatorId = order.getInitiatorId(); +// initiatorName = order.getInitiatorName(); +// InvoicingOrders employee = empOrdersService.getOnLineEmployeeById(initiatorId); //获取是否在线 +// if(subId!=null&&!subId.equals("")){ +// InvoicingOrders invoicingOrders = new InvoicingOrders(); +// invoicingOrders.setFlowId(subId); +// InvoicingOrders flowSub = baseMapper.getFlowOne(invoicingOrders); +// if(employee==null){ +// employee = empOrdersService.employeeScreening(flowSub.getDirectiveId(), invoicingOrdersEntity.getElderId(), new Date()); +// } +// insertNextOrder(flowSub,invoicingOrdersEntity,employee.getEmployeeId(),employee.getEmployeeName(),initiatorId,initiatorName,flowSub.getFlowCode(),"N"); +// } +// } +// } +// } +// +// /** +// * 请领回退 +// * 库管点击回退按钮,获取未完成未作废的(发给库管)的出库指令工单,获取申请人,并将此工单标记成回退 +// * 获取下一节点,生成一条未开始(发给护理员请领申请)的工单 +// * +// * @param invoicingOrdersEntity +// */ +// @Override +// public void flowQlht(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:flowQlht"); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// log.info("NuId:"+invoicingOrdersEntity.getNuId()); +// log.info("ElderId:"+invoicingOrdersEntity.getElderId()); +// empOrdersService.getNames(invoicingOrdersEntity); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null){ +// InvoicingOrders io = new InvoicingOrders(); +// io.setIzFinish("Y"); +// io.setDelFlag("0"); +// io.setBizType(invoicingOrdersEntity.getFlowCode()); +// io.setBizId(invoicingOrdersEntity.getBizId()); +// InvoicingOrders order = baseMapper.getOrderOne(io); +// log.info("order:"+order); +// if(order!=null){ +// log.info("OrderId:"+order.getId()); +// String employeeId = order.getInitiatorId(); +// String employeeName = order.getInitiatorName(); +// InvoicingOrders entity = new InvoicingOrders(); +// entity.setId(order.getId()); +// entity.setIzRollback("Y"); +// entity.setRemarks("请领回退"); +// entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); +// entity.setUpdateTime(new Date()); +// baseMapper.updateById(entity); +// //回退指令 +// InvoicingOrdersEntity flowCode = new InvoicingOrdersEntity(); +// flowCode.setFlowCode("ql_ht"); +// List htFlowList = baseMapper.getFlowList(flowCode); +// if(htFlowList!=null){ +// InvoicingOrders htFlow = htFlowList.get(0); +// String subId = htFlow.getSubId(); +// if(subId!=null&&!subId.equals("")){ +// InvoicingOrders invoicingOrders = new InvoicingOrders(); +// invoicingOrders.setFlowId(subId); +// InvoicingOrders flowSub = baseMapper.getFlowOne(invoicingOrders); +// insertNextOrder(flowSub,invoicingOrdersEntity,employeeId,employeeName,employeeId,employeeName,flowSub.getFlowCode(),"Y"); +// } +// } +// } +// } +// } +// +// /** +// * 请领作废,包括回退作废。 +// * @param invoicingOrdersEntity +// */ +// @Override +// public void flowQlzf(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:flowQlzf"); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// InvoicingOrders entity = new InvoicingOrders(); +// entity.setBizId(invoicingOrdersEntity.getBizId()); +// entity.setCancelEmp(invoicingOrdersEntity.getInitiatorId()); +// entity.setCancelTime(new Date()); +// entity.setRemarks("请领工单作废"); +//// baseMapper.cancelOrder(entity); +// +// if(invoicingOrdersEntity.getFlowCode().equals("ql_zf")){ +// //todo ws推送库管通知 +// } +// //todo ws推送护理员 +// } +// +// /** +// * 增加下一步的工单 +// * @param invoicingOrdersEntity +// * @param flowSub 下一节点 +// * @param invoicingOrdersEntity 业务数据 +// * @param employeeId 员工ID +// * @param employeeName 员工名称 +// * @param bizType 操作指令编码 +// */ +// private void insertNextOrder(InvoicingOrders flowSub,InvoicingOrdersEntity invoicingOrdersEntity,String employeeId,String employeeName,String initiatorId,String initiatorName,String bizType,String izRollback){ +// Calendar c = Calendar.getInstance(); +// getNetImages(flowSub); +// InvoicingOrders nextEntity = new InvoicingOrders(); +// nextEntity.setBizId(invoicingOrdersEntity.getBizId()); +// nextEntity.setBizType(bizType); +// nextEntity.setNuId(invoicingOrdersEntity.getNuId()); +// nextEntity.setNuName(invoicingOrdersEntity.getNuName()); +// nextEntity.setElderId(invoicingOrdersEntity.getElderId()); +// nextEntity.setElderName(invoicingOrdersEntity.getElderName()); +// nextEntity.setDirectiveId(flowSub.getDirectiveId()); +// nextEntity.setDirectiveName(flowSub.getDirectiveName()); +// nextEntity.setCycleTypeId(flowSub.getCycleTypeId()); +// nextEntity.setCycleType(flowSub.getCycleType()); +// nextEntity.setPreviewFile(flowSub.getPreviewFile()); +// nextEntity.setNetPreviewFile(flowSub.getNetPreviewFile()); +// nextEntity.setPreviewFileSmall(flowSub.getPreviewFileSmall()); +// nextEntity.setNetPreviewFileSmall(flowSub.getNetPreviewFileSmall()); +// nextEntity.setMp3File(flowSub.getMp3File()); +// nextEntity.setNetMp3File(flowSub.getNetMp3File()); +// nextEntity.setMp4File(flowSub.getMp4File()); +// nextEntity.setNetMp4File(flowSub.getNetMp4File()); +// nextEntity.setServiceDuration(flowSub.getServiceDuration()); +// nextEntity.setServiceContent(flowSub.getServiceContent()); +// nextEntity.setIzStart("N"); +// nextEntity.setIzFinish("N"); +// nextEntity.setIzRollback(izRollback); +// nextEntity.setCreateEmp(invoicingOrdersEntity.getInitiatorId()); +// nextEntity.setCreateTime(c.getTime()); +// nextEntity.setDelFlag("0"); +// nextEntity.setInitiatorId(initiatorId); +// nextEntity.setInitiatorName(initiatorName); +// nextEntity.setStartTime(c.getTime()); +// c.add(Calendar.MINUTE,Integer.valueOf(flowSub.getServiceDuration())); +// nextEntity.setEndTime(c.getTime()); +// nextEntity.setEmployeeId(employeeId); +// nextEntity.setEmployeeName(employeeName); +// nextEntity.setPadPath(flowSub.getPadPath()); +// getOrderNo(nextEntity); +// baseMapper.insert(nextEntity); +// +// //todo ws推送 employeeId +// } +// +// /** +// * 获取单号 +// * @return +// */ +// private void getOrderNo(InvoicingOrders orders){ +// String flowCode = orders.getBizType().toUpperCase(); +// String[] parts = flowCode.split("_"); +// String prefix = ""; +// if(parts.length>0){ +// prefix = parts[0]; +// } +// +// JSONObject deptInfo = sysBaseAPI.getDeptInfo(); +// String deptCode = deptInfo.getString("code"); +// String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); +// // 构建今天的前缀模式 +// String todayPrefix = "CK" + prefix + deptCode + today; +// QueryWrapper qw = new QueryWrapper<>(); +// qw.likeRight("order_no", todayPrefix); +// qw.select("order_no"); +// qw.orderByDesc("order_no"); +// qw.last("limit 1"); +// InvoicingOrders entity = this.getOne(qw); +// int todayNo = 0; +// int totalNo = 0; +// if(entity!=null){ +// String orderNo = entity.getOrderNo(); +// if(orderNo!=null&&!orderNo.equals("")){ +// String no = orderNo.substring(todayPrefix.length()); +// String todayNoStr = no.substring(0,4); +// String totalNoStr = no.substring(5); +// todayNo = Integer.parseInt(todayNoStr); +// totalNo = Integer.parseInt(totalNoStr); +// } +// } +// todayNo = todayNo +1; +// totalNo = totalNo +1; +// String frontNo = String.format("%04d", todayNo); +// String backNo = String.format("%07d", totalNo); +// orders.setOrderNo(todayPrefix+frontNo+backNo); +// } +// +// /** +// * 获取管理平台静态资源路径 +// * +// * @return +// */ +// private void getOpeMediaAddress() { +// if (serverNetUrl == null || serverNetUrl.equals("")) { +// JSONObject json = sysConfigApi.getByKey("ope_media_address"); +// if (json != null) { +// String configValue = json.getString("configValue"); +// if (!configValue.endsWith("/")) { +// configValue += "/"; +// } +// serverNetUrl = configValue; +// } +// } +// } +// +// private String getImageNetUrl(String imageUrl) { +// getOpeMediaAddress(); +// return serverNetUrl + imageUrl; +// } +// +// private InvoicingOrders getNetImages(InvoicingOrders invoicingOrders) { +// if (invoicingOrders.getPreviewFile() != null && !invoicingOrders.getPreviewFile().equals("")) { +// String netPreviewFile = getImageNetUrl(invoicingOrders.getPreviewFile()); +// invoicingOrders.setNetPreviewFile(netPreviewFile); +// } else { +// invoicingOrders.setPreviewFile(""); +// invoicingOrders.setNetPreviewFile(""); +// } +// if (invoicingOrders.getPreviewFileSmall() != null && !invoicingOrders.getPreviewFileSmall().equals("")) { +// String netPreviewFileSmall = getImageNetUrl(invoicingOrders.getPreviewFileSmall()); +// invoicingOrders.setNetPreviewFileSmall(netPreviewFileSmall); +// } else { +// invoicingOrders.setPreviewFileSmall(""); +// invoicingOrders.setNetPreviewFileSmall(""); +// } +// if (invoicingOrders.getMp3File() != null && !invoicingOrders.getMp3File().equals("")) { +// String netMp3File = getImageNetUrl(invoicingOrders.getMp3File()); +// invoicingOrders.setNetMp3File(netMp3File); +// } else { +// invoicingOrders.setMp3File(""); +// invoicingOrders.setNetMp3File(""); +// } +// if (invoicingOrders.getMp4File() != null && !invoicingOrders.getMp4File().equals("")) { +// String netMp4File = getImageNetUrl(invoicingOrders.getMp4File()); +// invoicingOrders.setNetMp4File(netMp4File); +// } else { +// invoicingOrders.setMp4File(""); +// invoicingOrders.setNetMp4File(""); +// } +// return invoicingOrders; +// } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/ThOrdersServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/ThOrdersServiceImpl.java index 9a08a4d5..6d29fd5e 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/ThOrdersServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/invoicing/order/service/impl/ThOrdersServiceImpl.java @@ -32,252 +32,252 @@ import java.util.*; @Slf4j public class ThOrdersServiceImpl extends ServiceImpl implements IThOrdersService, IInvoicingThOrdersApi { - @Autowired - IEmpOrdersService empOrdersService; - @Autowired - private ISysConfigApi sysConfigApi; - @Autowired - private ISysBaseAPI sysBaseAPI; - private String serverNetUrl; - - /** - * 获取工单信息 - * @param invoicingOrdersEntity - * @return - */ - @Override - public InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:getOrderInfo"); - log.info("id:"+invoicingOrdersEntity.getId()); - InvoicingOrders io = new InvoicingOrders(); - BeanUtils.copyProperties(invoicingOrdersEntity, io); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); - BeanUtils.copyProperties(entity, ioe); - return ioe; - } - return null; - } - - /** - * 单元退货-仓库收货 - * @param invoicingOrdersEntity - */ - @Override - public void flowDythCksh(InvoicingOrdersEntity invoicingOrdersEntity){ - empOrdersService.getNames(invoicingOrdersEntity); - List flowList = baseMapper.getFlowList(invoicingOrdersEntity); - if(flowList!=null){ - Calendar c = Calendar.getInstance(); - InvoicingOrders flow = flowList.get(0); - if(flow!=null){ - InvoicingOrders employee = empOrdersService.employeeScreening(flow.getDirectiveId(), invoicingOrdersEntity.getElderId(), c.getTime()); - insertNextOrder(flow,invoicingOrdersEntity,employee.getEmployeeId(),employee.getEmployeeName(),invoicingOrdersEntity.getInitiatorId(),invoicingOrdersEntity.getInitiatorName(),flow.getFlowCode(),"N"); - } - } - } - - /** - * 是否可提交 - * @param invoicingOrdersEntity - */ - @Override - public Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:izCanSubmit"); - log.info("PoolId:"+invoicingOrdersEntity.getPoolId()); - Map map = new HashMap(); - map.put("error_code","0"); - map.put("msg","可以提交"); - InvoicingOrders io = new InvoicingOrders(); - BeanUtils.copyProperties(invoicingOrdersEntity, io); - InvoicingOrders entity = baseMapper.getOrderOne(io); - if(entity!=null){ - if(!"Y".equals(entity.getIzStart())) { - map.put("error_code", "1"); - map.put("msg", "工单未开始"); - } - }else{ - map.put("error_code","1"); - map.put("msg","工单不存在"); - } - return map; - } - - /** - * 单元退货流程中提交时修改业务单号 - * @param invoicingOrdersEntity - */ - @Override - public void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity){ - log.info("function:updateOrderBizId"); - log.info("PoolId:"+invoicingOrdersEntity.getPoolId()); - log.info("BizId:"+invoicingOrdersEntity.getBizId()); - log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); - empOrdersService.getNames(invoicingOrdersEntity); - QueryWrapper ioQw = new QueryWrapper<>(); - ioQw.eq("pool_id", invoicingOrdersEntity.getPoolId()); - InvoicingOrders order = this.getOne(ioQw); - log.info("order:"+order); - if(order!=null){ - log.info("OrderId:"+order.getId()); - //修改请领单的bizId - InvoicingOrders entity = new InvoicingOrders(); - entity.setId(order.getId()); - entity.setBizId(invoicingOrdersEntity.getBizId()); - entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); - entity.setUpdateTime(new Date()); - baseMapper.updateById(entity); - } - } - - /** - * 增加下一步的工单 - * @param invoicingOrdersEntity - * @param flowSub 下一节点 - * @param invoicingOrdersEntity 业务数据 - * @param employeeId 员工ID - * @param employeeName 员工名称 - * @param bizType 操作指令编码 - */ - private void insertNextOrder(InvoicingOrders flowSub,InvoicingOrdersEntity invoicingOrdersEntity,String employeeId,String employeeName,String initiatorId,String initiatorName,String bizType,String izRollback){ - Calendar c = Calendar.getInstance(); - getNetImages(flowSub); - InvoicingOrders nextEntity = new InvoicingOrders(); - nextEntity.setPoolId(invoicingOrdersEntity.getPoolId()); - nextEntity.setBizType(bizType); - nextEntity.setNuId(invoicingOrdersEntity.getNuId()); - nextEntity.setNuName(invoicingOrdersEntity.getNuName()); - nextEntity.setElderId(invoicingOrdersEntity.getElderId()); - nextEntity.setElderName(invoicingOrdersEntity.getElderName()); - nextEntity.setDirectiveId(flowSub.getDirectiveId()); - nextEntity.setDirectiveName(flowSub.getDirectiveName()); - nextEntity.setCycleTypeId(flowSub.getCycleTypeId()); - nextEntity.setCycleType(flowSub.getCycleType()); - nextEntity.setPreviewFile(flowSub.getPreviewFile()); - nextEntity.setNetPreviewFile(flowSub.getNetPreviewFile()); - nextEntity.setPreviewFileSmall(flowSub.getPreviewFileSmall()); - nextEntity.setNetPreviewFileSmall(flowSub.getNetPreviewFileSmall()); - nextEntity.setMp3File(flowSub.getMp3File()); - nextEntity.setNetMp3File(flowSub.getNetMp3File()); - nextEntity.setMp4File(flowSub.getMp4File()); - nextEntity.setNetMp4File(flowSub.getNetMp4File()); - nextEntity.setServiceDuration(flowSub.getServiceDuration()); - nextEntity.setServiceContent(flowSub.getServiceContent()); - nextEntity.setIzStart("N"); - nextEntity.setIzFinish("N"); - nextEntity.setIzRollback(izRollback); - nextEntity.setCreateEmp(invoicingOrdersEntity.getInitiatorId()); - nextEntity.setCreateTime(c.getTime()); - nextEntity.setDelFlag("0"); - nextEntity.setInitiatorId(initiatorId); - nextEntity.setInitiatorName(initiatorName); - nextEntity.setStartTime(c.getTime()); - c.add(Calendar.MINUTE,Integer.valueOf(flowSub.getServiceDuration())); - nextEntity.setEndTime(c.getTime()); - nextEntity.setEmployeeId(employeeId); - nextEntity.setEmployeeName(employeeName); - nextEntity.setPadPath(flowSub.getPadPath()); - getOrderNo(nextEntity); - baseMapper.insert(nextEntity); - - //ws推送 employeeId - } - - /** - * 获取单号 - * @return - */ - private void getOrderNo(InvoicingOrders orders){ - String flowCode = orders.getBizType().toUpperCase(); - String[] parts = flowCode.split("_"); - String prefix = ""; - if(parts.length>0){ - prefix = parts[0]; - } - JSONObject deptInfo = sysBaseAPI.getDeptInfo(); - String deptCode = deptInfo.getString("code"); - String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); - // 构建今天的前缀模式 - String todayPrefix = "CK" + prefix + deptCode + today; - QueryWrapper qw = new QueryWrapper<>(); - qw.likeRight("order_no", todayPrefix); - qw.select("order_no"); - qw.orderByDesc("order_no"); - qw.last("limit 1"); - InvoicingOrders entity = this.getOne(qw); - int todayNo = 0; - int totalNo = 0; - if(entity!=null){ - String orderNo = entity.getOrderNo(); - if(orderNo!=null&&!orderNo.equals("")){ - String no = orderNo.substring(todayPrefix.length()); - String todayNoStr = no.substring(0,4); - String totalNoStr = no.substring(5); - todayNo = Integer.parseInt(todayNoStr); - totalNo = Integer.parseInt(totalNoStr); - } - } - todayNo = todayNo +1; - totalNo = totalNo +1; - String frontNo = String.format("%04d", todayNo); - String backNo = String.format("%07d", totalNo); - orders.setOrderNo(todayPrefix+frontNo+backNo); - } - - /** - * 获取管理平台静态资源路径 - * - * @return - */ - private void getOpeMediaAddress() { - if (serverNetUrl == null || serverNetUrl.equals("")) { - JSONObject json = sysConfigApi.getByKey("ope_media_address"); - if (json != null) { - String configValue = json.getString("configValue"); - if (!configValue.endsWith("/")) { - configValue += "/"; - } - serverNetUrl = configValue; - } - } - } - - private String getImageNetUrl(String imageUrl) { - getOpeMediaAddress(); - return serverNetUrl + imageUrl; - } - - private InvoicingOrders getNetImages(InvoicingOrders invoicingOrders) { - if (invoicingOrders.getPreviewFile() != null && !invoicingOrders.getPreviewFile().equals("")) { - String netPreviewFile = getImageNetUrl(invoicingOrders.getPreviewFile()); - invoicingOrders.setNetPreviewFile(netPreviewFile); - } else { - invoicingOrders.setPreviewFile(""); - invoicingOrders.setNetPreviewFile(""); - } - if (invoicingOrders.getPreviewFileSmall() != null && !invoicingOrders.getPreviewFileSmall().equals("")) { - String netPreviewFileSmall = getImageNetUrl(invoicingOrders.getPreviewFileSmall()); - invoicingOrders.setNetPreviewFileSmall(netPreviewFileSmall); - } else { - invoicingOrders.setPreviewFileSmall(""); - invoicingOrders.setNetPreviewFileSmall(""); - } - if (invoicingOrders.getMp3File() != null && !invoicingOrders.getMp3File().equals("")) { - String netMp3File = getImageNetUrl(invoicingOrders.getMp3File()); - invoicingOrders.setNetMp3File(netMp3File); - } else { - invoicingOrders.setMp3File(""); - invoicingOrders.setNetMp3File(""); - } - if (invoicingOrders.getMp4File() != null && !invoicingOrders.getMp4File().equals("")) { - String netMp4File = getImageNetUrl(invoicingOrders.getMp4File()); - invoicingOrders.setNetMp4File(netMp4File); - } else { - invoicingOrders.setMp4File(""); - invoicingOrders.setNetMp4File(""); - } - return invoicingOrders; - } +// @Autowired +// IEmpOrdersService empOrdersService; +// @Autowired +// private ISysConfigApi sysConfigApi; +// @Autowired +// private ISysBaseAPI sysBaseAPI; +// private String serverNetUrl; +// +// /** +// * 获取工单信息 +// * @param invoicingOrdersEntity +// * @return +// */ +// @Override +// public InvoicingOrdersEntity getOrderInfo(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:getOrderInfo"); +// log.info("id:"+invoicingOrdersEntity.getId()); +// InvoicingOrders io = new InvoicingOrders(); +// BeanUtils.copyProperties(invoicingOrdersEntity, io); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// InvoicingOrdersEntity ioe = new InvoicingOrdersEntity(); +// BeanUtils.copyProperties(entity, ioe); +// return ioe; +// } +// return null; +// } +// +// /** +// * 单元退货-仓库收货 +// * @param invoicingOrdersEntity +// */ +// @Override +// public void flowDythCksh(InvoicingOrdersEntity invoicingOrdersEntity){ +// empOrdersService.getNames(invoicingOrdersEntity); +// List flowList = baseMapper.getFlowList(invoicingOrdersEntity); +// if(flowList!=null){ +// Calendar c = Calendar.getInstance(); +// InvoicingOrders flow = flowList.get(0); +// if(flow!=null){ +// InvoicingOrders employee = empOrdersService.employeeScreening(flow.getDirectiveId(), invoicingOrdersEntity.getElderId(), c.getTime()); +// insertNextOrder(flow,invoicingOrdersEntity,employee.getEmployeeId(),employee.getEmployeeName(),invoicingOrdersEntity.getInitiatorId(),invoicingOrdersEntity.getInitiatorName(),flow.getFlowCode(),"N"); +// } +// } +// } +// +// /** +// * 是否可提交 +// * @param invoicingOrdersEntity +// */ +// @Override +// public Map izCanSubmit(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:izCanSubmit"); +// log.info("PoolId:"+invoicingOrdersEntity.getPoolId()); +// Map map = new HashMap(); +// map.put("error_code","0"); +// map.put("msg","可以提交"); +// InvoicingOrders io = new InvoicingOrders(); +// BeanUtils.copyProperties(invoicingOrdersEntity, io); +// InvoicingOrders entity = baseMapper.getOrderOne(io); +// if(entity!=null){ +// if(!"Y".equals(entity.getIzStart())) { +// map.put("error_code", "1"); +// map.put("msg", "工单未开始"); +// } +// }else{ +// map.put("error_code","1"); +// map.put("msg","工单不存在"); +// } +// return map; +// } +// +// /** +// * 单元退货流程中提交时修改业务单号 +// * @param invoicingOrdersEntity +// */ +// @Override +// public void updateOrderBizId(InvoicingOrdersEntity invoicingOrdersEntity){ +// log.info("function:updateOrderBizId"); +// log.info("PoolId:"+invoicingOrdersEntity.getPoolId()); +// log.info("BizId:"+invoicingOrdersEntity.getBizId()); +// log.info("UpdateBy:"+invoicingOrdersEntity.getInitiatorId()); +// empOrdersService.getNames(invoicingOrdersEntity); +// QueryWrapper ioQw = new QueryWrapper<>(); +// ioQw.eq("pool_id", invoicingOrdersEntity.getPoolId()); +// InvoicingOrders order = this.getOne(ioQw); +// log.info("order:"+order); +// if(order!=null){ +// log.info("OrderId:"+order.getId()); +// //修改请领单的bizId +// InvoicingOrders entity = new InvoicingOrders(); +// entity.setId(order.getId()); +// entity.setBizId(invoicingOrdersEntity.getBizId()); +// entity.setUpdateEmp(invoicingOrdersEntity.getInitiatorId()); +// entity.setUpdateTime(new Date()); +// baseMapper.updateById(entity); +// } +// } +// +// /** +// * 增加下一步的工单 +// * @param invoicingOrdersEntity +// * @param flowSub 下一节点 +// * @param invoicingOrdersEntity 业务数据 +// * @param employeeId 员工ID +// * @param employeeName 员工名称 +// * @param bizType 操作指令编码 +// */ +// private void insertNextOrder(InvoicingOrders flowSub,InvoicingOrdersEntity invoicingOrdersEntity,String employeeId,String employeeName,String initiatorId,String initiatorName,String bizType,String izRollback){ +// Calendar c = Calendar.getInstance(); +// getNetImages(flowSub); +// InvoicingOrders nextEntity = new InvoicingOrders(); +// nextEntity.setPoolId(invoicingOrdersEntity.getPoolId()); +// nextEntity.setBizType(bizType); +// nextEntity.setNuId(invoicingOrdersEntity.getNuId()); +// nextEntity.setNuName(invoicingOrdersEntity.getNuName()); +// nextEntity.setElderId(invoicingOrdersEntity.getElderId()); +// nextEntity.setElderName(invoicingOrdersEntity.getElderName()); +// nextEntity.setDirectiveId(flowSub.getDirectiveId()); +// nextEntity.setDirectiveName(flowSub.getDirectiveName()); +// nextEntity.setCycleTypeId(flowSub.getCycleTypeId()); +// nextEntity.setCycleType(flowSub.getCycleType()); +// nextEntity.setPreviewFile(flowSub.getPreviewFile()); +// nextEntity.setNetPreviewFile(flowSub.getNetPreviewFile()); +// nextEntity.setPreviewFileSmall(flowSub.getPreviewFileSmall()); +// nextEntity.setNetPreviewFileSmall(flowSub.getNetPreviewFileSmall()); +// nextEntity.setMp3File(flowSub.getMp3File()); +// nextEntity.setNetMp3File(flowSub.getNetMp3File()); +// nextEntity.setMp4File(flowSub.getMp4File()); +// nextEntity.setNetMp4File(flowSub.getNetMp4File()); +// nextEntity.setServiceDuration(flowSub.getServiceDuration()); +// nextEntity.setServiceContent(flowSub.getServiceContent()); +// nextEntity.setIzStart("N"); +// nextEntity.setIzFinish("N"); +// nextEntity.setIzRollback(izRollback); +// nextEntity.setCreateEmp(invoicingOrdersEntity.getInitiatorId()); +// nextEntity.setCreateTime(c.getTime()); +// nextEntity.setDelFlag("0"); +// nextEntity.setInitiatorId(initiatorId); +// nextEntity.setInitiatorName(initiatorName); +// nextEntity.setStartTime(c.getTime()); +// c.add(Calendar.MINUTE,Integer.valueOf(flowSub.getServiceDuration())); +// nextEntity.setEndTime(c.getTime()); +// nextEntity.setEmployeeId(employeeId); +// nextEntity.setEmployeeName(employeeName); +// nextEntity.setPadPath(flowSub.getPadPath()); +// getOrderNo(nextEntity); +// baseMapper.insert(nextEntity); +// +// //ws推送 employeeId +// } +// +// /** +// * 获取单号 +// * @return +// */ +// private void getOrderNo(InvoicingOrders orders){ +// String flowCode = orders.getBizType().toUpperCase(); +// String[] parts = flowCode.split("_"); +// String prefix = ""; +// if(parts.length>0){ +// prefix = parts[0]; +// } +// JSONObject deptInfo = sysBaseAPI.getDeptInfo(); +// String deptCode = deptInfo.getString("code"); +// String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); +// // 构建今天的前缀模式 +// String todayPrefix = "CK" + prefix + deptCode + today; +// QueryWrapper qw = new QueryWrapper<>(); +// qw.likeRight("order_no", todayPrefix); +// qw.select("order_no"); +// qw.orderByDesc("order_no"); +// qw.last("limit 1"); +// InvoicingOrders entity = this.getOne(qw); +// int todayNo = 0; +// int totalNo = 0; +// if(entity!=null){ +// String orderNo = entity.getOrderNo(); +// if(orderNo!=null&&!orderNo.equals("")){ +// String no = orderNo.substring(todayPrefix.length()); +// String todayNoStr = no.substring(0,4); +// String totalNoStr = no.substring(5); +// todayNo = Integer.parseInt(todayNoStr); +// totalNo = Integer.parseInt(totalNoStr); +// } +// } +// todayNo = todayNo +1; +// totalNo = totalNo +1; +// String frontNo = String.format("%04d", todayNo); +// String backNo = String.format("%07d", totalNo); +// orders.setOrderNo(todayPrefix+frontNo+backNo); +// } +// +// /** +// * 获取管理平台静态资源路径 +// * +// * @return +// */ +// private void getOpeMediaAddress() { +// if (serverNetUrl == null || serverNetUrl.equals("")) { +// JSONObject json = sysConfigApi.getByKey("ope_media_address"); +// if (json != null) { +// String configValue = json.getString("configValue"); +// if (!configValue.endsWith("/")) { +// configValue += "/"; +// } +// serverNetUrl = configValue; +// } +// } +// } +// +// private String getImageNetUrl(String imageUrl) { +// getOpeMediaAddress(); +// return serverNetUrl + imageUrl; +// } +// +// private InvoicingOrders getNetImages(InvoicingOrders invoicingOrders) { +// if (invoicingOrders.getPreviewFile() != null && !invoicingOrders.getPreviewFile().equals("")) { +// String netPreviewFile = getImageNetUrl(invoicingOrders.getPreviewFile()); +// invoicingOrders.setNetPreviewFile(netPreviewFile); +// } else { +// invoicingOrders.setPreviewFile(""); +// invoicingOrders.setNetPreviewFile(""); +// } +// if (invoicingOrders.getPreviewFileSmall() != null && !invoicingOrders.getPreviewFileSmall().equals("")) { +// String netPreviewFileSmall = getImageNetUrl(invoicingOrders.getPreviewFileSmall()); +// invoicingOrders.setNetPreviewFileSmall(netPreviewFileSmall); +// } else { +// invoicingOrders.setPreviewFileSmall(""); +// invoicingOrders.setNetPreviewFileSmall(""); +// } +// if (invoicingOrders.getMp3File() != null && !invoicingOrders.getMp3File().equals("")) { +// String netMp3File = getImageNetUrl(invoicingOrders.getMp3File()); +// invoicingOrders.setNetMp3File(netMp3File); +// } else { +// invoicingOrders.setMp3File(""); +// invoicingOrders.setNetMp3File(""); +// } +// if (invoicingOrders.getMp4File() != null && !invoicingOrders.getMp4File().equals("")) { +// String netMp4File = getImageNetUrl(invoicingOrders.getMp4File()); +// invoicingOrders.setNetMp4File(netMp4File); +// } else { +// invoicingOrders.setMp4File(""); +// invoicingOrders.setNetMp4File(""); +// } +// return invoicingOrders; +// } }