diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeNode.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeNode.java index 1bf8218a..d5a4b747 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeNode.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeNode.java @@ -49,4 +49,7 @@ public class TreeNode { @JsonInclude(JsonInclude.Include.NON_EMPTY) private List children = new ArrayList<>(); + + @ApiModelProperty("机具类型(1机具,2安全工器具)") + private int jiJuType; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java index ada88817..30057912 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java @@ -86,6 +86,22 @@ public class SelectController { } } + /** + * 领用工程下拉选 + * @param bmProject + * @return + */ + @ApiOperation(value = "领用工程下拉选") + @PostMapping("getLeaseProjectList") + public AjaxResult getLeaseProjectList(@RequestBody BmProject bmProject) { + try { + return service.getLeaseProjectList(bmProject); + } catch (Exception e) { + log.error("获取数据失败"); + return AjaxResult.error("获取数据失败"); + } + } + @ApiOperation(value = "机具类型下拉选") @PostMapping("getMaTypeData") public AjaxResult getMaTypeData(@RequestBody SelectDto dto){ @@ -157,6 +173,11 @@ public class SelectController { return service.getDeviceTypeTreeTwo(dto); } + @ApiOperation(value = "设备类型树--编码设备") + @PostMapping("getDeviceTypeTreeThree") + public AjaxResult getDeviceTypeTreeThree(@RequestBody SelectDto dto){ + return service.getDeviceTypeTreeThree(dto); + } @ApiOperation(value = "退料设备类型树") @PostMapping("getBackDeviceTypeTree") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java index 748d9e8c..088fa79a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java @@ -301,4 +301,18 @@ public interface SelectMapper { List getBzUseTypeTreeL4(BackApplyInfo bean); List getDeviceTypeTreeTwo(SelectDto dto); + + /** + * 获取工程下拉选 + * @param bmProject + * @return + */ + List getLeaseProjectList(BmProject bmProject); + + /** + * 获取设备类型树3级 + * @param dto + * @return + */ + List getDeviceTypeTreeThree(SelectDto dto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java index acd8f3ed..2ecbec1b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java @@ -259,4 +259,18 @@ public interface SelectService { * @return */ AjaxResult getBzUseTypeTree(BackApplyInfo bean); + + /** + * 领用工程下拉选 + * @param bmProject + * @return + */ + AjaxResult getLeaseProjectList(BmProject bmProject); + + /** + * 设备类型树 + * @param dto + * @return + */ + AjaxResult getDeviceTypeTreeThree(SelectDto dto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java index f69f555f..199a944e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java @@ -415,6 +415,54 @@ public class SelectServiceImpl implements SelectService { return AjaxResult.success(groupList); } + /** + * 领用工程下拉选 + * @param bmProject + * @return + */ + @Override + public AjaxResult getLeaseProjectList(BmProject bmProject) { + // 获取登陆用户的组织ID + Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + // 判断是否开启过滤 + if (Objects.nonNull(bmProject) && Objects.nonNull(bmProject.getEnableFilter()) && bmProject.getEnableFilter()) { + bmProject.setDeptId(thisLoginUserDeptId); + } + + List groupList = new ArrayList<>(); + List list = new ArrayList<>(); + try { + list = mapper.getLeaseProjectList(bmProject); + if (CollectionUtils.isNotEmpty(list)) { + // 创建树形结构(数据集合作为参数) + ProjectTreeBuild treeBuild = new ProjectTreeBuild(list); + // 原查询结果转换树形结构 + groupList = treeBuild.buildTree(); + } + } catch (Exception e) { + log.error("工程类型树-查询失败", e); + } + return AjaxResult.success(groupList); + } + + @Override + public AjaxResult getDeviceTypeTreeThree(SelectDto dto) { + List groupList = new ArrayList<>(); + List list = new ArrayList<>(); + try { + list = mapper.getDeviceTypeTreeThree(dto); + if (CollectionUtils.isNotEmpty(list)) { + // 创建树形结构(数据集合作为参数) + TreeBuild treeBuild = new TreeBuild(list); + // 原查询结果转换树形结构 + groupList = treeBuild.buildTree(); + } + } catch (Exception e) { + log.error("单位树/归属部门/所属上级-查询失败", e); + } + return AjaxResult.success(groupList); + } + @Override public AjaxResult getDeviceTypeTree(SelectDto dto) { List groupList = new ArrayList<>(); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MachineController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MachineController.java index 4651164b..58f079f5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MachineController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MachineController.java @@ -134,6 +134,17 @@ public class MachineController extends BaseController { return toAjax(machineService.insertMachine(machine)); } + /** + * 新增机具设备管理 + */ + @ApiOperation(value = "新增机具设备管理") + @PreventRepeatSubmit + @SysLog(title = "机具设备管理", businessType = OperaType.INSERT, logType = 1, module = "仓储管理->新增机具设备管理") + @PostMapping(value = "/addMaMachine") + public AjaxResult addMaMachine(@RequestBody Machine machine) { + return machineService.addMaMachine(machine); + } + /** * 修改机具设备管理 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java index 655f28a1..0332068d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java @@ -249,4 +249,6 @@ public class Type extends BaseEntity { @ApiModelProperty("机具类型(1机具,2安全工器具)") private int jiJuType; + @ApiModelProperty(value = "待出库数量") + private BigDecimal pendingOutNum; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java index 201576db..7b3f28a7 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java @@ -229,4 +229,11 @@ public interface MachineMapper List getNewByMaCode(Machine machine); List findMaMsgById(Machine machine); + + /** + * 根据编码查询机具信息 + * @param machine + * @return + */ + int getCountByMaCode(Machine machine); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IMachineService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IMachineService.java index ba541bfa..fff2e549 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IMachineService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IMachineService.java @@ -146,4 +146,12 @@ public interface IMachineService List getNewByMaCode(Machine machine); List findMaMsgById(Machine machine); + + /** + * 新增机具设备管理 + * + * @param machine 机具设备管理 + * @return 结果 + */ + AjaxResult addMaMachine(Machine machine); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java index b1b87dfe..35d99f54 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/MachineServiceImpl.java @@ -593,6 +593,26 @@ public class MachineServiceImpl implements IMachineService return machineMapper.findMaMsgById(machine); } + @Override + public AjaxResult addMaMachine(Machine machine) { + try { + //查询类型下编码是否存在 + int count = machineMapper.getCountByMaCode(machine); + if (count > 0) { + return AjaxResult.error("该规格类型下此编码已存在"); + } + machine.setMaStatus("1"); + machine.setMaVender(machine.getSupplierId()); + int result = machineMapper.insertMachine(machine); + if (result > 0) { + return AjaxResult.success("入库成功"); + } + return AjaxResult.error("添加盘点入库失败"); + } catch (Exception e) { + return AjaxResult.error("添加盘点入库失败"); + } + } + /** * 编码铭牌信息 * @param machine diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java index 1b4ce462..3508723b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java @@ -13,6 +13,8 @@ import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.lease.domain.LeaseApplyDetails; +import com.bonus.material.lease.mapper.LeaseTaskMapper; import com.bonus.material.ma.domain.MaTypeHistory; import com.bonus.material.ma.domain.TypeKeeper; import com.bonus.material.ma.domain.TypeRepair; @@ -49,6 +51,9 @@ public class TypeServiceImpl implements ITypeService { @Resource private TypeMapper typeMapper; + @Resource + private LeaseTaskMapper leaseTaskMapper; + @Resource private ITypeKeeperService typeKeeperService; diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml index 324d33fa..dea9c9eb 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml @@ -345,7 +345,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" UNION SELECT DISTINCT concat( 'gs', sd.dept_id ) AS id, - sd.dept_name AS proName, + sd.dept_name AS name, '0' AS parentId, 1 AS level FROM @@ -925,4 +925,81 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml index 73ba2e0f..95011654 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml @@ -875,6 +875,7 @@ select workflow_status from sys_workflow_record where task_id = #{taskId} + Limit 1 @@ -1164,39 +1165,63 @@ + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml index 96dbcb40..702f880c 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml @@ -525,7 +525,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ELSE IFNULL(m.storage_num, 0) END as storage_num, - m.company_id as companyId + m.company_id as companyId, + IFNULL(subquery1.pendingOutNum,0) as pendingOutNum from ma_type m left join (SELECT mt.type_id, mt2.type_name AS typeName, @@ -536,6 +537,46 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id WHERE mm.ma_code is not null and mm.ma_status in (1) GROUP BY mt.type_id) AS subquery0 ON subquery0.type_id = m.type_id + LEFT JOIN ( + SELECT + combined.typeId AS typeId, + COALESCE ( SUM( combined.pendingOutNum ), 0 ) AS pendingOutNum + FROM + (-- 第一个查询 + SELECT + lad.type_id AS typeId, + SUM( pre_num ) - SUM( al_num ) AS pendingOutNum + FROM + lease_apply_info lai + LEFT JOIN lease_apply_details lad ON lad.parent_id = lai.id + LEFT JOIN tm_task tt ON lai.task_id = tt.task_id + WHERE + tt.task_status = '3' + AND tt.task_type = '2' + GROUP BY + lad.type_id UNION ALL-- 第二个查询 + SELECT + lpd.new_type AS typeId, + SUM( lpd.num ) - IFNULL( lod.alNum, 0 ) AS pendingOutNum + FROM + lease_publish_details lpd + LEFT JOIN ( + SELECT + lod.type_id AS typeId, + SUM( lod.out_num ) AS alNum + FROM + lease_out_details lod + WHERE + publish_task IS NOT NULL + GROUP BY + lod.type_id + ) lod ON lpd.new_type = lod.typeId + GROUP BY + lpd.new_type + ) combined + GROUP BY + combined.typeId + ) subquery1 on subquery1.typeId=m.type_id m.del_flag = '0'