Merge branch 'master' into branch_basic
This commit is contained in:
commit
2c3ee99151
|
|
@ -21,7 +21,7 @@ public class BonusMaterialApplication
|
||||||
public static void main(String[] args)
|
public static void main(String[] args)
|
||||||
{
|
{
|
||||||
SpringApplication.run(BonusMaterialApplication.class, args);
|
SpringApplication.run(BonusMaterialApplication.class, args);
|
||||||
System.out.println("(♥◠‿◠)ノ゙ 仓储模块启动成功 ლ(´ڡ`ლ)゙ \n" +
|
System.out.println("(♥◠‿◠)ノ゙ 2024机具大融合系统启动成功 ლ(´ڡ`ლ)゙ \n" +
|
||||||
" .-------. ____ __ \n" +
|
" .-------. ____ __ \n" +
|
||||||
" | _ _ \\ \\ \\ / / \n" +
|
" | _ _ \\ \\ \\ / / \n" +
|
||||||
" | ( ' ) | \\ _. / ' \n" +
|
" | ( ' ) | \\ _. / ' \n" +
|
||||||
|
|
|
||||||
|
|
@ -1,124 +1,124 @@
|
||||||
package com.bonus.material.ma.controller;
|
//package com.bonus.material.ma.controller;
|
||||||
|
//
|
||||||
import com.bonus.common.biz.domain.TreeSelect;
|
//import com.bonus.common.biz.domain.TreeSelect;
|
||||||
import com.bonus.common.core.web.controller.BaseController;
|
//import com.bonus.common.core.web.controller.BaseController;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
//import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.security.annotation.PreventRepeatSubmit;
|
//import com.bonus.common.security.annotation.PreventRepeatSubmit;
|
||||||
import com.bonus.common.security.annotation.RequiresPermissions;
|
//import com.bonus.common.security.annotation.RequiresPermissions;
|
||||||
import com.bonus.material.ma.MaTypeConfigDto;
|
//import com.bonus.material.ma.MaTypeConfigDto;
|
||||||
import com.bonus.material.ma.domain.Type;
|
//import com.bonus.material.ma.domain.Type;
|
||||||
import com.bonus.material.ma.domain.TypeKeeper;
|
//import com.bonus.material.ma.domain.TypeKeeper;
|
||||||
import com.bonus.material.ma.domain.TypeRepair;
|
//import com.bonus.material.ma.domain.TypeRepair;
|
||||||
import com.bonus.material.ma.service.ITypeKeeperService;
|
//import com.bonus.material.ma.service.ITypeKeeperService;
|
||||||
import com.bonus.material.ma.service.ITypeRepairService;
|
//import com.bonus.material.ma.service.ITypeRepairService;
|
||||||
import com.bonus.material.ma.service.ITypeService;
|
//import com.bonus.material.ma.service.ITypeService;
|
||||||
import com.bonus.material.ma.service.MaTypeConfigService;
|
//import com.bonus.material.ma.service.MaTypeConfigService;
|
||||||
import com.bonus.material.ma.vo.MaTypeConfigVo;
|
//import com.bonus.material.ma.vo.MaTypeConfigVo;
|
||||||
import com.google.common.collect.ImmutableList;
|
//import com.google.common.collect.ImmutableList;
|
||||||
import io.swagger.annotations.Api;
|
//import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
//import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.web.bind.annotation.*;
|
//import org.springframework.web.bind.annotation.*;
|
||||||
|
//
|
||||||
import javax.annotation.Resource;
|
//import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
//import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotNull;
|
//import javax.validation.constraints.NotNull;
|
||||||
import java.util.*;
|
//import java.util.*;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* @author : 阮世耀
|
// * @author : 阮世耀
|
||||||
* @version : 1.0
|
// * @version : 1.0
|
||||||
* @PackagePath: com.bonus.material.ma.controller
|
// * @PackagePath: com.bonus.material.ma.controller
|
||||||
* @CreateTime: 2024-10-16 10:52
|
// * @CreateTime: 2024-10-16 10:52
|
||||||
* @Description: 物资类型配置API
|
// * @Description: 物资类型配置API
|
||||||
*/
|
// */
|
||||||
@Api(tags = "物资类型配置API")
|
//@Api(tags = "物资类型配置API")
|
||||||
@RestController
|
//@RestController
|
||||||
@RequestMapping("/ma_type_config")
|
//@RequestMapping("/ma_type_config")
|
||||||
public class MaTypeConfigController extends BaseController {
|
//public class MaTypeConfigController extends BaseController {
|
||||||
|
//
|
||||||
@Resource
|
// @Resource
|
||||||
private MaTypeConfigService maTypeConfigService;
|
// private MaTypeConfigService maTypeConfigService;
|
||||||
|
//
|
||||||
@ApiOperation(value = "配置物资类型绑定信息")
|
// @ApiOperation(value = "配置物资类型绑定信息")
|
||||||
@PreventRepeatSubmit
|
// @PreventRepeatSubmit
|
||||||
@RequiresPermissions("ma:typeConfig:edit")
|
// @RequiresPermissions("ma:typeConfig:edit")
|
||||||
@PostMapping("/updateMaTypeBindInfo")
|
// @PostMapping("/updateMaTypeBindInfo")
|
||||||
public AjaxResult updateMaTypeBindInfo(@RequestBody @Valid @NotNull MaTypeConfigDto maTypeConfigDto) {
|
// public AjaxResult updateMaTypeBindInfo(@RequestBody @Valid @NotNull MaTypeConfigDto maTypeConfigDto) {
|
||||||
// -------------------- 数据校验开始 ---------------------
|
// // -------------------- 数据校验开始 ---------------------
|
||||||
|
//
|
||||||
// 1.判断绑定标识是否为空
|
// // 1.判断绑定标识是否为空
|
||||||
if (maTypeConfigDto.getBindFlag() == null) {
|
// if (maTypeConfigDto.getBindFlag() == null) {
|
||||||
return error("绑定标识不能为空");
|
// return error("绑定标识不能为空");
|
||||||
}
|
// }
|
||||||
// 2.判断绑定角色类型是否为空
|
// // 2.判断绑定角色类型是否为空
|
||||||
if (maTypeConfigDto.getBindRoleType() == null) {
|
// if (maTypeConfigDto.getBindRoleType() == null) {
|
||||||
return error("绑定角色类型不能为空");
|
// return error("绑定角色类型不能为空");
|
||||||
}
|
// }
|
||||||
// 3.判断用户id是否为空
|
// // 3.判断用户id是否为空
|
||||||
if (maTypeConfigDto.getUserId() == null) {
|
// if (maTypeConfigDto.getUserId() == null) {
|
||||||
return error("用户id不能为空");
|
// return error("用户id不能为空");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// ---------------- 数据校验结束 ---------------------
|
// // ---------------- 数据校验结束 ---------------------
|
||||||
|
//
|
||||||
// 执行业务逻辑
|
// // 执行业务逻辑
|
||||||
return maTypeConfigService.updateMaTypeBindInfo(maTypeConfigDto);
|
// return maTypeConfigService.updateMaTypeBindInfo(maTypeConfigDto);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 查询物资类型配置右侧列表
|
// * 查询物资类型配置右侧列表
|
||||||
*/
|
// */
|
||||||
@ApiOperation(value = "查询物资类型配置右侧列表")
|
// @ApiOperation(value = "查询物资类型配置右侧列表")
|
||||||
@RequiresPermissions("ma:typeConfig:list")
|
// @RequiresPermissions("ma:typeConfig:list")
|
||||||
@GetMapping("/getMaTypeConfigList")
|
// @GetMapping("/getMaTypeConfigList")
|
||||||
public AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto) {
|
// public AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto) {
|
||||||
// 调用service处理业务逻辑
|
// // 调用service处理业务逻辑
|
||||||
return maTypeConfigService.getMaTypeConfigList(maTypeConfigDto);
|
// return maTypeConfigService.getMaTypeConfigList(maTypeConfigDto);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 查询物资配置左侧组织人员树-tree
|
// * 查询物资配置左侧组织人员树-tree
|
||||||
*/
|
// */
|
||||||
@ApiOperation(value = "查询物资配置左侧组织人员树")
|
// @ApiOperation(value = "查询物资配置左侧组织人员树")
|
||||||
@RequiresPermissions("ma:typeConfig:list")
|
// @RequiresPermissions("ma:typeConfig:list")
|
||||||
@GetMapping("/getDeptUserTree")
|
// @GetMapping("/getDeptUserTree")
|
||||||
public AjaxResult getDeptUserTree() {
|
// public AjaxResult getDeptUserTree() {
|
||||||
|
//
|
||||||
// ---------- 模拟人员Tree数据 ---------------
|
// // ---------- 模拟人员Tree数据 ---------------
|
||||||
|
//
|
||||||
// 1.创建一个TreeSelect集合,用于外层放组织部门--公司级
|
// // 1.创建一个TreeSelect集合,用于外层放组织部门--公司级
|
||||||
List<TreeSelect> treeSelectList1 = new ArrayList<>();
|
// List<TreeSelect> treeSelectList1 = new ArrayList<>();
|
||||||
TreeSelect treeSelect1 = new TreeSelect(1L, "机具设备分公司", 1, null);
|
// TreeSelect treeSelect1 = new TreeSelect(1L, "机具设备分公司", 1, null);
|
||||||
TreeSelect treeSelect2 = new TreeSelect(2L, "输电分公司", 1, null);
|
// TreeSelect treeSelect2 = new TreeSelect(2L, "输电分公司", 1, null);
|
||||||
TreeSelect treeSelect3 = new TreeSelect(5L, "变电分公司", 1, null);
|
// TreeSelect treeSelect3 = new TreeSelect(5L, "变电分公司", 1, null);
|
||||||
|
//
|
||||||
// 2. 给公司级部门添加子部门 ,创建TreeSelect集合,存放组织部门--部门级
|
// // 2. 给公司级部门添加子部门 ,创建TreeSelect集合,存放组织部门--部门级
|
||||||
TreeSelect treeSelect01 = new TreeSelect(11L, "物流库管一班", 2, 1L);
|
// TreeSelect treeSelect01 = new TreeSelect(11L, "物流库管一班", 2, 1L);
|
||||||
TreeSelect treeSelect02 = new TreeSelect(12L, "物流库管二班", 2, 1L);
|
// TreeSelect treeSelect02 = new TreeSelect(12L, "物流库管二班", 2, 1L);
|
||||||
TreeSelect treeSelect03 = new TreeSelect(13L, "宏源库管一班", 2, 5L);
|
// TreeSelect treeSelect03 = new TreeSelect(13L, "宏源库管一班", 2, 5L);
|
||||||
|
//
|
||||||
// 3. 创建部门人员
|
// // 3. 创建部门人员
|
||||||
TreeSelect treeSelect001 = new TreeSelect(117L, "袁泷", 3, 11L);
|
// TreeSelect treeSelect001 = new TreeSelect(117L, "袁泷", 3, 11L);
|
||||||
TreeSelect treeSelect002 = new TreeSelect(133L, "喵喵喵", 3, 11L);
|
// TreeSelect treeSelect002 = new TreeSelect(133L, "喵喵喵", 3, 11L);
|
||||||
TreeSelect treeSelect003 = new TreeSelect(129L, "村上春树", 3, 12L);
|
// TreeSelect treeSelect003 = new TreeSelect(129L, "村上春树", 3, 12L);
|
||||||
|
//
|
||||||
// 4. 把子部门人员添加到子部门中
|
// // 4. 把子部门人员添加到子部门中
|
||||||
treeSelect01.setChildren(Arrays.asList(treeSelect001, treeSelect002));
|
// treeSelect01.setChildren(Arrays.asList(treeSelect001, treeSelect002));
|
||||||
treeSelect1.setChildren(Arrays.asList(treeSelect01, treeSelect02));
|
// treeSelect1.setChildren(Arrays.asList(treeSelect01, treeSelect02));
|
||||||
treeSelect03.setChildren(ImmutableList.of(treeSelect003));
|
// treeSelect03.setChildren(ImmutableList.of(treeSelect003));
|
||||||
treeSelect3.setChildren(Collections.singletonList(treeSelect03));
|
// treeSelect3.setChildren(Collections.singletonList(treeSelect03));
|
||||||
|
//
|
||||||
// 3.把根节点添加到集合中
|
// // 3.把根节点添加到集合中
|
||||||
treeSelectList1.add(treeSelect1);
|
// treeSelectList1.add(treeSelect1);
|
||||||
treeSelectList1.add(treeSelect2);
|
// treeSelectList1.add(treeSelect2);
|
||||||
treeSelectList1.add(treeSelect3);
|
// treeSelectList1.add(treeSelect3);
|
||||||
|
//
|
||||||
// -------------- 模拟人员Tree数据结束 ------------------
|
// // -------------- 模拟人员Tree数据结束 ------------------
|
||||||
|
//
|
||||||
return success(treeSelectList1);
|
// return success(treeSelectList1);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,17 @@ public class SupplierInfoController extends BaseController {
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询物资厂家--下拉框--不分页
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "查询物资厂家下拉框--不分页")
|
||||||
|
@RequiresPermissions("ma:info:list")
|
||||||
|
@GetMapping("/select")
|
||||||
|
public TableDataInfo select(SupplierInfo supplierInfo) {
|
||||||
|
List<SupplierInfo> list = supplierInfoService.selectSupplierInfoList(supplierInfo);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出物资厂家管理列表
|
* 导出物资厂家管理列表
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import javax.validation.constraints.NotNull;
|
||||||
import com.bonus.common.biz.domain.TreeSelect;
|
import com.bonus.common.biz.domain.TreeSelect;
|
||||||
import com.bonus.common.log.enums.OperaType;
|
import com.bonus.common.log.enums.OperaType;
|
||||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
|
import com.bonus.material.ma.MaTypeConfigDto;
|
||||||
import com.bonus.material.ma.vo.MaTypeListVo;
|
import com.bonus.material.ma.vo.MaTypeListVo;
|
||||||
import com.bonus.material.ma.vo.MaTypeSelectVo;
|
import com.bonus.material.ma.vo.MaTypeSelectVo;
|
||||||
import com.bonus.material.warehouse.domain.WhHouseSet;
|
import com.bonus.material.warehouse.domain.WhHouseSet;
|
||||||
|
|
@ -37,9 +38,6 @@ public class TypeController extends BaseController {
|
||||||
@Resource
|
@Resource
|
||||||
private ITypeService typeService;
|
private ITypeService typeService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IWhHouseSetService houseSetService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询物资类型管理列表
|
* 查询物资类型管理列表
|
||||||
*/
|
*/
|
||||||
|
|
@ -75,24 +73,18 @@ public class TypeController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据左列表类型id查询右表格 --- 暂未启用,代码有问题!!
|
* 查询物资类型4级规格型号--前端联动式下拉框
|
||||||
* TODO: 待完善
|
*
|
||||||
* @param typeId 左列表类型id
|
* @param typeId 规格型号
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "根据左列表类型id查询右表格")
|
@ApiOperation(value = "获取物资类型连动式下拉框")
|
||||||
@GetMapping("/getListByMaType")
|
@GetMapping("/equipmentType")
|
||||||
public AjaxResult getListByMaType(Long typeId, @RequestParam(required = false) String typeName, Integer level) {
|
public AjaxResult equipmentType(@RequestParam(required = false) Long typeId, @RequestParam(required = false) String typeName) {
|
||||||
List<Integer> parentIds = typeService.selectParentId(typeId, level);
|
List<Type> listByMaType = typeService.getEquipmentType(typeId, typeName);
|
||||||
List<Type> listByMaType = new ArrayList<>();
|
return success(listByMaType);
|
||||||
for (Integer parentId : parentIds) {
|
|
||||||
listByMaType.addAll(typeService.getListByParentId(parentId.longValue(), typeName));
|
|
||||||
}
|
|
||||||
// Integer pageIndex = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
|
|
||||||
// Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
|
|
||||||
// return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, listByMaType));
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO : 后续优化代码逻辑
|
* TODO : 后续优化代码逻辑
|
||||||
* 物资类型下拉树
|
* 物资类型下拉树
|
||||||
|
|
@ -100,32 +92,9 @@ public class TypeController extends BaseController {
|
||||||
@ApiOperation(value = "物资类型下拉树")
|
@ApiOperation(value = "物资类型下拉树")
|
||||||
@RequiresPermissions("ma:type:list")
|
@RequiresPermissions("ma:type:list")
|
||||||
@GetMapping("/getMaTypeTreeSelect")
|
@GetMapping("/getMaTypeTreeSelect")
|
||||||
public AjaxResult getMaTypeTreeSelect(@RequestParam(required = false, defaultValue = "", value = "typeName") String typeName, @RequestParam(required = false, defaultValue = "", value = "parentId") String parentId) {
|
public AjaxResult getMaTypeTreeSelect(@RequestParam(required = false, defaultValue = "", value = "typeName") String typeName,
|
||||||
// 1.顶级节点及子节点数据全部查询完毕
|
@RequestParam(required = false, defaultValue = "", value = "parentId") String parentId) {
|
||||||
List<TreeSelect> maTypeList = typeService.getMaTypeTree(typeName, parentId);
|
return typeService.getMaTypeTreeSelect(typeName, parentId);
|
||||||
// 2.查询所有的仓库配置
|
|
||||||
List<WhHouseSet> whHouseSets = houseSetService.selectListByMaType(null);
|
|
||||||
// 2.1 定义最终接口返回集合
|
|
||||||
List<TreeSelect> treeSelectResultList = new ArrayList<>();
|
|
||||||
// 3.遍历所有配置关联
|
|
||||||
for (WhHouseSet whHouseSet : whHouseSets) {
|
|
||||||
Long typeId = whHouseSet.getTypeId();
|
|
||||||
if (typeId == null) {continue;}
|
|
||||||
// 构造函数定义0级Tree对象
|
|
||||||
TreeSelect thisTree = new TreeSelect(whHouseSet.getId(),whHouseSet.getHouseName(),0,null);
|
|
||||||
// 定义1级列表,并循环push相应的1级节点
|
|
||||||
List<TreeSelect> oneLevelTreeList = new ArrayList<>();
|
|
||||||
for (TreeSelect treeSelect : maTypeList) {
|
|
||||||
if (treeSelect.getId().equals(typeId)) {
|
|
||||||
oneLevelTreeList.add(treeSelect);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 把处理后对应上的1级列表当作child存入0级Tree对象中
|
|
||||||
thisTree.setChildren(!oneLevelTreeList.isEmpty() ? oneLevelTreeList : null);
|
|
||||||
// 最后把0级Tree对象存入Result返回集合中,返回给前端
|
|
||||||
treeSelectResultList.add(thisTree);
|
|
||||||
}
|
|
||||||
return AjaxResult.success(treeSelectResultList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -187,4 +156,32 @@ public class TypeController extends BaseController {
|
||||||
public AjaxResult remove(@PathVariable Long[] typeIds) {
|
public AjaxResult remove(@PathVariable Long[] typeIds) {
|
||||||
return toAjax(typeService.deleteTypeByTypeIds(typeIds));
|
return toAjax(typeService.deleteTypeByTypeIds(typeIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询物资类型配置右侧列表
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "查询物资类型配置右侧列表")
|
||||||
|
@RequiresPermissions("ma:typeConfig:list")
|
||||||
|
@GetMapping("/getMaTypeConfigList")
|
||||||
|
public AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto) {
|
||||||
|
// 调用service处理业务逻辑
|
||||||
|
return typeService.getMaTypeConfigList(maTypeConfigDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据左列表类型id查询右表格 --- 暂未启用,代码有问题!!
|
||||||
|
* TODO: 待完善
|
||||||
|
* @param typeId 左列表类型id
|
||||||
|
|
||||||
|
@ApiOperation(value = "根据左列表类型id查询右表格")
|
||||||
|
@GetMapping("/getListByMaType")
|
||||||
|
public AjaxResult getListByMaType(Long typeId, @RequestParam(required = false) String typeName, Integer level) {
|
||||||
|
List<Integer> parentIds = typeService.selectParentId(typeId, level);
|
||||||
|
List<Type> listByMaType = new ArrayList<>();
|
||||||
|
for (Integer parentId : parentIds) {
|
||||||
|
listByMaType.addAll(typeService.getListByParentId(parentId.longValue(), typeName));
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,9 @@ import org.apache.ibatis.annotations.Param;
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface TypeMapper {
|
public interface TypeMapper {
|
||||||
|
|
||||||
|
List<Type> selectMaTypeList(String typeName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询物资类型
|
* 查询物资类型
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.bonus.material.ma.service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.bonus.common.biz.domain.TreeSelect;
|
import com.bonus.common.biz.domain.TreeSelect;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.material.ma.MaTypeConfigDto;
|
||||||
import com.bonus.material.ma.domain.Type;
|
import com.bonus.material.ma.domain.Type;
|
||||||
import com.bonus.material.ma.vo.MaTypeConfigVo;
|
import com.bonus.material.ma.vo.MaTypeConfigVo;
|
||||||
import com.bonus.material.ma.vo.MaTypeListVo;
|
import com.bonus.material.ma.vo.MaTypeListVo;
|
||||||
|
|
@ -23,6 +25,8 @@ public interface ITypeService {
|
||||||
|
|
||||||
List<Integer> selectParentId(Long typeId, Integer level);
|
List<Integer> selectParentId(Long typeId, Integer level);
|
||||||
|
|
||||||
|
List<Type> getEquipmentType(Long typeId, String typeName);
|
||||||
|
|
||||||
List<MaTypeSelectVo> selectMaTypeListByHouseId(Long houseId);
|
List<MaTypeSelectVo> selectMaTypeListByHouseId(Long houseId);
|
||||||
|
|
||||||
List<Type> getListByParentId(Long typeId, String typeName);
|
List<Type> getListByParentId(Long typeId, String typeName);
|
||||||
|
|
@ -84,6 +88,8 @@ public interface ITypeService {
|
||||||
|
|
||||||
List<TreeSelect> getMaTypeTree(String typeName, String parentId);
|
List<TreeSelect> getMaTypeTree(String typeName, String parentId);
|
||||||
|
|
||||||
|
AjaxResult getMaTypeTreeSelect(String typeName,String parentId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建前端所需要树结构
|
* 构建前端所需要树结构
|
||||||
*
|
*
|
||||||
|
|
@ -91,4 +97,6 @@ public interface ITypeService {
|
||||||
* @return 树结构列表
|
* @return 树结构列表
|
||||||
*/
|
*/
|
||||||
List<Type> buildMaTypeTree(List<Type> maTypeList);
|
List<Type> buildMaTypeTree(List<Type> maTypeList);
|
||||||
|
|
||||||
|
AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
package com.bonus.material.ma.service;
|
//package com.bonus.material.ma.service;
|
||||||
|
//
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
//import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.material.ma.MaTypeConfigDto;
|
//import com.bonus.material.ma.MaTypeConfigDto;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* @author : 阮世耀
|
// * @author : 阮世耀
|
||||||
* @version : 1.0
|
// * @version : 1.0
|
||||||
* @PackagePath: com.bonus.material.ma.service
|
// * @PackagePath: com.bonus.material.ma.service
|
||||||
* @CreateTime: 2024-10-16 18:50
|
// * @CreateTime: 2024-10-16 18:50
|
||||||
* @Description: 物资类型配置Service
|
// * @Description: 物资类型配置Service
|
||||||
*/
|
// */
|
||||||
public interface MaTypeConfigService{
|
//public interface MaTypeConfigService{
|
||||||
|
//
|
||||||
AjaxResult updateMaTypeBindInfo(MaTypeConfigDto maTypeConfigDto);
|
// AjaxResult updateMaTypeBindInfo(MaTypeConfigDto maTypeConfigDto);
|
||||||
|
//
|
||||||
AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto);
|
// AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto);
|
||||||
}
|
//}
|
||||||
|
|
|
||||||
|
|
@ -1,187 +1,187 @@
|
||||||
package com.bonus.material.ma.service.impl;
|
//package com.bonus.material.ma.service.impl;
|
||||||
|
//
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
//import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.material.ma.MaTypeConfigDto;
|
//import com.bonus.material.ma.MaTypeConfigDto;
|
||||||
import com.bonus.material.ma.domain.Type;
|
//import com.bonus.material.ma.domain.Type;
|
||||||
import com.bonus.material.ma.domain.TypeKeeper;
|
//import com.bonus.material.ma.domain.TypeKeeper;
|
||||||
import com.bonus.material.ma.domain.TypeRepair;
|
//import com.bonus.material.ma.domain.TypeRepair;
|
||||||
import com.bonus.material.ma.service.ITypeKeeperService;
|
//import com.bonus.material.ma.service.ITypeKeeperService;
|
||||||
import com.bonus.material.ma.service.ITypeRepairService;
|
//import com.bonus.material.ma.service.ITypeRepairService;
|
||||||
import com.bonus.material.ma.service.ITypeService;
|
//import com.bonus.material.ma.service.ITypeService;
|
||||||
import com.bonus.material.ma.service.MaTypeConfigService;
|
//import com.bonus.material.ma.service.MaTypeConfigService;
|
||||||
import com.bonus.material.ma.vo.MaTypeConfigVo;
|
//import com.bonus.material.ma.vo.MaTypeConfigVo;
|
||||||
import org.springframework.stereotype.Service;
|
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
import javax.annotation.Resource;
|
//import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
//import java.util.ArrayList;
|
||||||
import java.util.List;
|
//import java.util.List;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* @author : 阮世耀
|
// * @author : 阮世耀
|
||||||
* @version : 1.0
|
// * @version : 1.0
|
||||||
* @PackagePath: com.bonus.material.ma.service.impl
|
// * @PackagePath: com.bonus.material.ma.service.impl
|
||||||
* @CreateTime: 2024-10-16 18:50
|
// * @CreateTime: 2024-10-16 18:50
|
||||||
* @Description: 描述
|
// * @Description: 描述
|
||||||
*/
|
// */
|
||||||
@Service
|
//@Service
|
||||||
public class MaTypeConfigServiceImpl implements MaTypeConfigService {
|
//public class MaTypeConfigServiceImpl implements MaTypeConfigService {
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 物资类型库管员配置Service
|
// * 物资类型库管员配置Service
|
||||||
*/
|
// */
|
||||||
@Resource
|
// @Resource
|
||||||
private ITypeKeeperService typeKeeperService;
|
// private ITypeKeeperService typeKeeperService;
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 物资类型维修员配置Service
|
// * 物资类型维修员配置Service
|
||||||
*/
|
// */
|
||||||
@Resource
|
// @Resource
|
||||||
private ITypeRepairService typeRepairService;
|
// private ITypeRepairService typeRepairService;
|
||||||
|
//
|
||||||
// 物资类型Service
|
// // 物资类型Service
|
||||||
@Resource
|
// @Resource
|
||||||
private ITypeService typeService;
|
// private ITypeService typeService;
|
||||||
|
//
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public AjaxResult updateMaTypeBindInfo(MaTypeConfigDto maTypeConfigDto) {
|
// public AjaxResult updateMaTypeBindInfo(MaTypeConfigDto maTypeConfigDto) {
|
||||||
int result;
|
// int result;
|
||||||
switch (maTypeConfigDto.getBindFlag()) {
|
// switch (maTypeConfigDto.getBindFlag()) {
|
||||||
case 1:
|
// case 1:
|
||||||
result = handleBind(maTypeConfigDto.getBindRoleType(), maTypeConfigDto.getTypeId(), maTypeConfigDto.getUserId());
|
// result = handleBind(maTypeConfigDto.getBindRoleType(), maTypeConfigDto.getTypeId(), maTypeConfigDto.getUserId());
|
||||||
return result == 1 ? AjaxResult.success("绑定成功") : AjaxResult.error("绑定失败");
|
// return result == 1 ? AjaxResult.success("绑定成功") : AjaxResult.error("绑定失败");
|
||||||
case 2:
|
// case 2:
|
||||||
result = handleUnBind(maTypeConfigDto.getBindRoleType(), maTypeConfigDto.getTypeId(), maTypeConfigDto.getUserId());
|
// result = handleUnBind(maTypeConfigDto.getBindRoleType(), maTypeConfigDto.getTypeId(), maTypeConfigDto.getUserId());
|
||||||
return result == 1 ? AjaxResult.success("解绑成功") : AjaxResult.error("解绑失败");
|
// return result == 1 ? AjaxResult.success("解绑成功") : AjaxResult.error("解绑失败");
|
||||||
default:
|
// default:
|
||||||
// 处理其他情况或抛出异常
|
// // 处理其他情况或抛出异常
|
||||||
return AjaxResult.error("输入值不合法 bindFlag: " + maTypeConfigDto.getBindFlag());
|
// return AjaxResult.error("输入值不合法 bindFlag: " + maTypeConfigDto.getBindFlag());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto) {
|
// public AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto) {
|
||||||
// 1.把所有物资类型查出来
|
// // 1.把所有物资类型查出来
|
||||||
List<MaTypeConfigVo> list = typeService.selectThreeFourLevelTypeListAndParent(new Type());
|
// List<MaTypeConfigVo> list = typeService.selectThreeFourLevelTypeListAndParent(new Type());
|
||||||
// 2.把维修配置信息查出来
|
// // 2.把维修配置信息查出来
|
||||||
List<TypeRepair> typeRepairList = typeRepairService.selectTypeRepairListAndUserName(new TypeRepair());
|
// List<TypeRepair> typeRepairList = typeRepairService.selectTypeRepairListAndUserName(new TypeRepair());
|
||||||
// 3.把库管配置信息查出来
|
// // 3.把库管配置信息查出来
|
||||||
List<TypeKeeper> typeKeeperList = typeKeeperService.selectTypeKeeperListAndUserName(new TypeKeeper());
|
// List<TypeKeeper> typeKeeperList = typeKeeperService.selectTypeKeeperListAndUserName(new TypeKeeper());
|
||||||
|
//
|
||||||
// ------------------- 开启数据处理 ---------------------
|
// // ------------------- 开启数据处理 ---------------------
|
||||||
|
//
|
||||||
// 4.循环所有物资类型,重型数据集合保障只循环一次,减少性能损失
|
// // 4.循环所有物资类型,重型数据集合保障只循环一次,减少性能损失
|
||||||
for (MaTypeConfigVo typeConfigVo1 : list) {
|
// for (MaTypeConfigVo typeConfigVo1 : list) {
|
||||||
// 1.外层 先对比维修班组
|
// // 1.外层 先对比维修班组
|
||||||
for (TypeRepair typeRepair : typeRepairList) {
|
// for (TypeRepair typeRepair : typeRepairList) {
|
||||||
// 2.判断当前维修配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id
|
// // 2.判断当前维修配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id
|
||||||
if (typeRepair.getTypeId().equals(typeConfigVo1.getTypeId())) {
|
// if (typeRepair.getTypeId().equals(typeConfigVo1.getTypeId())) {
|
||||||
// 3.如果相等,把维修员信息设置到物资类型配置信息中
|
// // 3.如果相等,把维修员信息设置到物资类型配置信息中
|
||||||
typeConfigVo1.setRepairUserId(typeRepair.getUserId());
|
// typeConfigVo1.setRepairUserId(typeRepair.getUserId());
|
||||||
typeConfigVo1.setRepairUserName(typeRepair.getUserName());
|
// typeConfigVo1.setRepairUserName(typeRepair.getUserName());
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// 1.外层 再对比库管班组
|
// // 1.外层 再对比库管班组
|
||||||
for (TypeKeeper typeKeeper : typeKeeperList) {
|
// for (TypeKeeper typeKeeper : typeKeeperList) {
|
||||||
// 2.判断当前库管配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id
|
// // 2.判断当前库管配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id
|
||||||
if (typeKeeper.getTypeId().equals(typeConfigVo1.getTypeId())) {
|
// if (typeKeeper.getTypeId().equals(typeConfigVo1.getTypeId())) {
|
||||||
// 3.如果相等,把库管员信息设置到物资类型配置信息中
|
// // 3.如果相等,把库管员信息设置到物资类型配置信息中
|
||||||
typeConfigVo1.setKeeperUserId(typeKeeper.getUserId());
|
// typeConfigVo1.setKeeperUserId(typeKeeper.getUserId());
|
||||||
typeConfigVo1.setKeeperUserName(typeKeeper.getUserName());
|
// typeConfigVo1.setKeeperUserName(typeKeeper.getUserName());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 5.判断当前物资类型配置信息是否有子节点
|
// // 5.判断当前物资类型配置信息是否有子节点
|
||||||
if (typeConfigVo1.getChildren() != null) {
|
// if (typeConfigVo1.getChildren() != null) {
|
||||||
// 6.有子节点,继续循环子节点,判断子节点是否有维修配置信息
|
// // 6.有子节点,继续循环子节点,判断子节点是否有维修配置信息
|
||||||
for (MaTypeConfigVo typeConfigVo2 : typeConfigVo1.getChildren()) {
|
// for (MaTypeConfigVo typeConfigVo2 : typeConfigVo1.getChildren()) {
|
||||||
// 7.有维修配置信息,把维修员信息设置到子节点中
|
// // 7.有维修配置信息,把维修员信息设置到子节点中
|
||||||
for (TypeRepair typeRepair : typeRepairList) {
|
// for (TypeRepair typeRepair : typeRepairList) {
|
||||||
if (typeRepair.getTypeId().equals(typeConfigVo2.getTypeId())) {
|
// if (typeRepair.getTypeId().equals(typeConfigVo2.getTypeId())) {
|
||||||
typeConfigVo2.setRepairUserId(typeRepair.getUserId());
|
// typeConfigVo2.setRepairUserId(typeRepair.getUserId());
|
||||||
typeConfigVo2.setRepairUserName(typeRepair.getUserName());
|
// typeConfigVo2.setRepairUserName(typeRepair.getUserName());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 8.有子节点,继续循环子节点,
|
// // 8.有子节点,继续循环子节点,
|
||||||
for (MaTypeConfigVo typeConfigVo3 : typeConfigVo1.getChildren()) {
|
// for (MaTypeConfigVo typeConfigVo3 : typeConfigVo1.getChildren()) {
|
||||||
// 9.判断子节点是否有库管配置信息
|
// // 9.判断子节点是否有库管配置信息
|
||||||
for (TypeKeeper typeKeeper : typeKeeperList) {
|
// for (TypeKeeper typeKeeper : typeKeeperList) {
|
||||||
if (typeKeeper.getTypeId().equals(typeConfigVo3.getTypeId())) {
|
// if (typeKeeper.getTypeId().equals(typeConfigVo3.getTypeId())) {
|
||||||
typeConfigVo3.setKeeperUserId(typeKeeper.getUserId());
|
// typeConfigVo3.setKeeperUserId(typeKeeper.getUserId());
|
||||||
typeConfigVo3.setKeeperUserName(typeKeeper.getUserName());
|
// typeConfigVo3.setKeeperUserName(typeKeeper.getUserName());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// -------------------- 数据处理结束 ---------------------
|
// // -------------------- 数据处理结束 ---------------------
|
||||||
|
//
|
||||||
// TODO: 先暂时取消后续过滤流程
|
// // TODO: 先暂时取消后续过滤流程
|
||||||
if (true) {
|
// if (true) {
|
||||||
return AjaxResult.success(list);
|
// return AjaxResult.success(list);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
// ------------------- 数据过滤开始 ---------------------
|
// // ------------------- 数据过滤开始 ---------------------
|
||||||
if (maTypeConfigDto == null || maTypeConfigDto.getUserId() == null || maTypeConfigDto.getUserId() == 0L) {
|
// if (maTypeConfigDto == null || maTypeConfigDto.getUserId() == null || maTypeConfigDto.getUserId() == 0L) {
|
||||||
// 如果参数无效,则返回原始列表
|
// // 如果参数无效,则返回原始列表
|
||||||
return AjaxResult.success(list);
|
// return AjaxResult.success(list);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
List<MaTypeConfigVo> filteredList = new ArrayList<>();
|
// List<MaTypeConfigVo> filteredList = new ArrayList<>();
|
||||||
|
//
|
||||||
for (MaTypeConfigVo maTypeConfigVo : list) {
|
// for (MaTypeConfigVo maTypeConfigVo : list) {
|
||||||
if (
|
// if (
|
||||||
maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) ||
|
// maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) ||
|
||||||
maTypeConfigVo.getRepairUserId().equals(maTypeConfigDto.getUserId())
|
// maTypeConfigVo.getRepairUserId().equals(maTypeConfigDto.getUserId())
|
||||||
)
|
// )
|
||||||
{
|
// {
|
||||||
filteredList.add(maTypeConfigVo);
|
// filteredList.add(maTypeConfigVo);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// ------------------- 数据过滤结束 ---------------------
|
// // ------------------- 数据过滤结束 ---------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
// 返回前端
|
// // 返回前端
|
||||||
return AjaxResult.success(filteredList);
|
// return AjaxResult.success(filteredList);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
private int handleBind(int bindRoleType, Long typeId, Long userId) {
|
// private int handleBind(int bindRoleType, Long typeId, Long userId) {
|
||||||
switch (bindRoleType) {
|
// switch (bindRoleType) {
|
||||||
case 1:
|
// case 1:
|
||||||
// 处理 bindFlag 为 1:绑定 且 bindRoleType 为 1:库管员 的情况
|
// // 处理 bindFlag 为 1:绑定 且 bindRoleType 为 1:库管员 的情况
|
||||||
// TODO: 实现具体逻辑
|
// // TODO: 实现具体逻辑
|
||||||
return typeKeeperService.insertTypeKeeper(new TypeKeeper(typeId, userId));
|
// return typeKeeperService.insertTypeKeeper(new TypeKeeper(typeId, userId));
|
||||||
case 2:
|
// case 2:
|
||||||
// 处理 bindFlag 为 1:绑定 且 bindRoleType 为 2:维修员 的情况
|
// // 处理 bindFlag 为 1:绑定 且 bindRoleType 为 2:维修员 的情况
|
||||||
// TODO: 实现具体逻辑
|
// // TODO: 实现具体逻辑
|
||||||
return typeRepairService.insertTypeRepair(new TypeRepair(typeId, userId));
|
// return typeRepairService.insertTypeRepair(new TypeRepair(typeId, userId));
|
||||||
default:
|
// default:
|
||||||
// 处理其他情况或抛出异常
|
// // 处理其他情况或抛出异常
|
||||||
throw new IllegalArgumentException("Unsupported bindRoleType: " + bindRoleType);
|
// throw new IllegalArgumentException("Unsupported bindRoleType: " + bindRoleType);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private int handleUnBind(int bindRoleType, Long typeId, Long userId) {
|
// private int handleUnBind(int bindRoleType, Long typeId, Long userId) {
|
||||||
switch (bindRoleType) {
|
// switch (bindRoleType) {
|
||||||
case 1:
|
// case 1:
|
||||||
// 处理 bindFlag 为 2:解绑 且 bindRoleType 为 1:库管员 的情况
|
// // 处理 bindFlag 为 2:解绑 且 bindRoleType 为 1:库管员 的情况
|
||||||
// TODO: 实现具体逻辑
|
// // TODO: 实现具体逻辑
|
||||||
return typeKeeperService.deleteTypeKeeperByUserIdAndTypeId(new TypeKeeper(typeId, userId));
|
// return typeKeeperService.deleteTypeKeeperByUserIdAndTypeId(new TypeKeeper(typeId, userId));
|
||||||
case 2:
|
// case 2:
|
||||||
// 处理 bindFlag 为 2:解绑 且 bindRoleType 为 2:维修员 的情况
|
// // 处理 bindFlag 为 2:解绑 且 bindRoleType 为 2:维修员 的情况
|
||||||
// TODO: 实现具体逻辑
|
// // TODO: 实现具体逻辑
|
||||||
return typeRepairService.deleteTypeRepairByUserIdAndTypeId(new TypeRepair(typeId, userId));
|
// return typeRepairService.deleteTypeRepairByUserIdAndTypeId(new TypeRepair(typeId, userId));
|
||||||
default:
|
// default:
|
||||||
// 处理其他情况或抛出异常
|
// // 处理其他情况或抛出异常
|
||||||
throw new IllegalArgumentException("Unsupported bindRoleType: " + bindRoleType);
|
// throw new IllegalArgumentException("Unsupported bindRoleType: " + bindRoleType);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,17 @@ import com.bonus.common.biz.domain.TreeSelect;
|
||||||
import com.bonus.common.biz.enums.DataCodeEnum;
|
import com.bonus.common.biz.enums.DataCodeEnum;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.utils.StringUtils;
|
import com.bonus.common.core.utils.StringUtils;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.material.ma.MaTypeConfigDto;
|
||||||
|
import com.bonus.material.ma.domain.TypeKeeper;
|
||||||
|
import com.bonus.material.ma.domain.TypeRepair;
|
||||||
|
import com.bonus.material.ma.service.ITypeKeeperService;
|
||||||
|
import com.bonus.material.ma.service.ITypeRepairService;
|
||||||
import com.bonus.material.ma.vo.MaTypeConfigVo;
|
import com.bonus.material.ma.vo.MaTypeConfigVo;
|
||||||
import com.bonus.material.ma.vo.MaTypeListVo;
|
import com.bonus.material.ma.vo.MaTypeListVo;
|
||||||
import com.bonus.material.ma.vo.MaTypeSelectVo;
|
import com.bonus.material.ma.vo.MaTypeSelectVo;
|
||||||
|
import com.bonus.material.warehouse.domain.WhHouseSet;
|
||||||
|
import com.bonus.material.warehouse.service.IWhHouseSetService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.bonus.material.ma.mapper.TypeMapper;
|
import com.bonus.material.ma.mapper.TypeMapper;
|
||||||
import com.bonus.material.ma.domain.Type;
|
import com.bonus.material.ma.domain.Type;
|
||||||
|
|
@ -33,6 +41,15 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
@Resource
|
@Resource
|
||||||
private TypeMapper typeMapper;
|
private TypeMapper typeMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ITypeKeeperService typeKeeperService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ITypeRepairService typeRepairService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWhHouseSetService houseSetService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询物资类型 -- 根据id
|
* 查询物资类型 -- 根据id
|
||||||
*
|
*
|
||||||
|
|
@ -48,6 +65,29 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
return typeMapper.selectParentId(typeId, level);
|
return typeMapper.selectParentId(typeId, level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询物资类型四级树--前端联动式下拉框
|
||||||
|
* @param typeId 类型id
|
||||||
|
* @param typeName 类型名称
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Type> getEquipmentType(Long typeId, String typeName) {
|
||||||
|
List<Type> maTypes = typeMapper.selectMaTypeList("");
|
||||||
|
List<Type> list = new ArrayList<>();
|
||||||
|
for (Type maType : maTypes) {
|
||||||
|
if (maType.getParentId() == 0) {
|
||||||
|
list.add(maType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//根据父节点获取对应的儿子节点
|
||||||
|
for (Type maType : list) {
|
||||||
|
List<Type> child = getChild(maTypes, maType.getTypeId());
|
||||||
|
maType.setChildren(child);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MaTypeSelectVo> selectMaTypeListByHouseId(Long houseId) {
|
public List<MaTypeSelectVo> selectMaTypeListByHouseId(Long houseId) {
|
||||||
return typeMapper.selectMaTypeListByHouseId(houseId);
|
return typeMapper.selectMaTypeListByHouseId(houseId);
|
||||||
|
|
@ -78,7 +118,7 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
@Override
|
@Override
|
||||||
public List<Type> selectTypeList(Type type) {
|
public List<Type> selectTypeList(Type type) {
|
||||||
if (type != null ) {
|
if (type != null ) {
|
||||||
if (type.getDelFlag() == null || type.getDelFlag().isEmpty()) {
|
if (StringUtils.isEmpty(type.getDelFlag())) {
|
||||||
// 如果没赋值,则默认查询正常数据状态
|
// 如果没赋值,则默认查询正常数据状态
|
||||||
type.setDelFlag(String.valueOf(DataCodeEnum.NORMAL.getCode()));
|
type.setDelFlag(String.valueOf(DataCodeEnum.NORMAL.getCode()));
|
||||||
}
|
}
|
||||||
|
|
@ -249,15 +289,44 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
List<Type> maTypes = typeMapper.selectMaTypeTree(TYPE_MIN_LEVEL);
|
List<Type> maTypes = typeMapper.selectMaTypeTree(TYPE_MIN_LEVEL);
|
||||||
List<Type> builtMaTypeList = buildMaTypeTree(maTypes);
|
List<Type> builtMaTypeList = buildMaTypeTree(maTypes);
|
||||||
|
|
||||||
List<TreeSelect> treeSelectList = builtMaTypeList.stream()
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.map(this::convertToTreeSelect)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 查询顶级节点的仓库配置信息
|
// 查询顶级节点的仓库配置信息
|
||||||
|
|
||||||
// 如果没有查询到那么返回空
|
// 如果没有查询到那么返回空
|
||||||
return treeSelectList;
|
return builtMaTypeList.stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(this::convertToTreeSelect)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult getMaTypeTreeSelect(String typeName, String parentId) {
|
||||||
|
// 1.顶级节点及子节点数据全部查询完毕
|
||||||
|
List<TreeSelect> maTypeList = this.getMaTypeTree(typeName, parentId);
|
||||||
|
// 2.查询所有的仓库配置
|
||||||
|
List<WhHouseSet> whHouseSets = houseSetService.selectListByMaType(null);
|
||||||
|
// 2.1 定义最终接口返回集合
|
||||||
|
List<TreeSelect> treeSelectResultList = new ArrayList<>();
|
||||||
|
|
||||||
|
// 使用HashMap来存储maTypeList,以便快速查找
|
||||||
|
Map<Long, TreeSelect> maTypeMap = new HashMap<>();
|
||||||
|
for (TreeSelect treeSelect : maTypeList) {
|
||||||
|
maTypeMap.put(treeSelect.getId(), treeSelect);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3.遍历所有配置关联
|
||||||
|
for (WhHouseSet whHouseSet : whHouseSets) {
|
||||||
|
// --- 数据校验 ----
|
||||||
|
if (whHouseSet == null || whHouseSet.getTypeId() == null) { continue; }
|
||||||
|
// 构造函数定义0级Tree对象
|
||||||
|
TreeSelect thisTree = new TreeSelect(whHouseSet.getId(),whHouseSet.getHouseName(),0,null);
|
||||||
|
// 从Map中直接获取对应的1级节点
|
||||||
|
TreeSelect oneLevelTree = maTypeMap.get(whHouseSet.getTypeId());
|
||||||
|
// 转换为集合存入0级Tree对象中
|
||||||
|
thisTree.setChildren(oneLevelTree != null ? Collections.singletonList(oneLevelTree) : null);
|
||||||
|
// 最后把0级Tree对象存入Result结果集合,返回给前端
|
||||||
|
treeSelectResultList.add(thisTree);
|
||||||
|
}
|
||||||
|
return AjaxResult.success(treeSelectResultList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -272,6 +341,25 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
return new TreeSelect(type.getTypeId(), type.getTypeName(),Integer.valueOf(type.getLevel()),type.getParentId(), children);
|
return new TreeSelect(type.getTypeId(), type.getTypeName(),Integer.valueOf(type.getLevel()),type.getParentId(), children);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归调用获取子级
|
||||||
|
* @param list 集合
|
||||||
|
* @param parentId 父级id
|
||||||
|
*/
|
||||||
|
public List<Type> getChild(List<Type> list, Long parentId) {
|
||||||
|
List<Type> childList = new ArrayList<Type>();
|
||||||
|
for (Type maType : list) {
|
||||||
|
Long typeId = maType.getTypeId();
|
||||||
|
Long pid = maType.getParentId();
|
||||||
|
if (parentId.equals(pid)) {
|
||||||
|
List<Type> childLists = getChild(list, typeId);
|
||||||
|
maType.setChildren(childLists);
|
||||||
|
childList.add(maType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return childList;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建前端所需要树结构
|
* 构建前端所需要树结构
|
||||||
*
|
*
|
||||||
|
|
@ -329,4 +417,96 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
return !getChildList(list, t).isEmpty();
|
return !getChildList(list, t).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult getMaTypeConfigList(MaTypeConfigDto maTypeConfigDto) {
|
||||||
|
// 1.把所有物资类型查出来
|
||||||
|
List<MaTypeConfigVo> list = selectThreeFourLevelTypeListAndParent(new Type());
|
||||||
|
// 2.把维修配置信息查出来
|
||||||
|
List<TypeRepair> typeRepairList = typeRepairService.selectTypeRepairListAndUserName(new TypeRepair());
|
||||||
|
// 3.把库管配置信息查出来
|
||||||
|
List<TypeKeeper> typeKeeperList = typeKeeperService.selectTypeKeeperListAndUserName(new TypeKeeper());
|
||||||
|
|
||||||
|
// ------------------- 开启数据处理 ---------------------
|
||||||
|
|
||||||
|
// 4.循环所有物资类型,重型数据集合保障只循环一次,减少性能损失
|
||||||
|
for (MaTypeConfigVo typeConfigVo1 : list) {
|
||||||
|
// 1.外层 先对比维修班组
|
||||||
|
for (TypeRepair typeRepair : typeRepairList) {
|
||||||
|
// 2.判断当前维修配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id
|
||||||
|
if (typeRepair.getTypeId().equals(typeConfigVo1.getTypeId())) {
|
||||||
|
// 3.如果相等,把维修员信息设置到物资类型配置信息中
|
||||||
|
typeConfigVo1.setRepairUserId(typeRepair.getUserId());
|
||||||
|
typeConfigVo1.setRepairUserName(typeRepair.getUserName());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 1.外层 再对比库管班组
|
||||||
|
for (TypeKeeper typeKeeper : typeKeeperList) {
|
||||||
|
// 2.判断当前库管配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id
|
||||||
|
if (typeKeeper.getTypeId().equals(typeConfigVo1.getTypeId())) {
|
||||||
|
// 3.如果相等,把库管员信息设置到物资类型配置信息中
|
||||||
|
typeConfigVo1.setKeeperUserId(typeKeeper.getUserId());
|
||||||
|
typeConfigVo1.setKeeperUserName(typeKeeper.getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5.判断当前物资类型配置信息是否有子节点
|
||||||
|
if (typeConfigVo1.getChildren() != null) {
|
||||||
|
// 6.有子节点,继续循环子节点,判断子节点是否有维修配置信息
|
||||||
|
for (MaTypeConfigVo typeConfigVo2 : typeConfigVo1.getChildren()) {
|
||||||
|
// 7.有维修配置信息,把维修员信息设置到子节点中
|
||||||
|
for (TypeRepair typeRepair : typeRepairList) {
|
||||||
|
if (typeRepair.getTypeId().equals(typeConfigVo2.getTypeId())) {
|
||||||
|
typeConfigVo2.setRepairUserId(typeRepair.getUserId());
|
||||||
|
typeConfigVo2.setRepairUserName(typeRepair.getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 8.有子节点,继续循环子节点,
|
||||||
|
for (MaTypeConfigVo typeConfigVo3 : typeConfigVo1.getChildren()) {
|
||||||
|
// 9.判断子节点是否有库管配置信息
|
||||||
|
for (TypeKeeper typeKeeper : typeKeeperList) {
|
||||||
|
if (typeKeeper.getTypeId().equals(typeConfigVo3.getTypeId())) {
|
||||||
|
typeConfigVo3.setKeeperUserId(typeKeeper.getUserId());
|
||||||
|
typeConfigVo3.setKeeperUserName(typeKeeper.getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------- 数据处理结束 ---------------------
|
||||||
|
|
||||||
|
// TODO: 先暂时取消后续过滤流程
|
||||||
|
if (true) {
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------- 数据过滤开始 ---------------------
|
||||||
|
if (maTypeConfigDto == null || maTypeConfigDto.getUserId() == null || maTypeConfigDto.getUserId() == 0L) {
|
||||||
|
// 如果参数无效,则返回原始列表
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MaTypeConfigVo> filteredList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (MaTypeConfigVo maTypeConfigVo : list) {
|
||||||
|
if (
|
||||||
|
maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) ||
|
||||||
|
maTypeConfigVo.getRepairUserId().equals(maTypeConfigDto.getUserId())
|
||||||
|
)
|
||||||
|
{
|
||||||
|
filteredList.add(maTypeConfigVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------- 数据过滤结束 ---------------------
|
||||||
|
|
||||||
|
|
||||||
|
// 返回前端
|
||||||
|
return AjaxResult.success(filteredList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.bonus.material.purchase.config;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 阮世耀
|
||||||
|
* @version : 1.0
|
||||||
|
* @PackagePath: com.bonus.material.purchase.config
|
||||||
|
* @CreateTime: 2024-10-21 16:13
|
||||||
|
* @Description: 新购模块阶段枚举
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
public enum PurchaseModelEnum {
|
||||||
|
|
||||||
|
PURCHASE_MODEL_MANAGE("新购管理"),
|
||||||
|
PURCHASE_MODEL_CONFIRM("新购确认"),
|
||||||
|
PURCHASE_MODEL_CHECK("新购验收"),
|
||||||
|
PURCHASE_MODEL_BIND("新购绑定"),
|
||||||
|
PURCHASE_MODEL_STORE("新购入库");
|
||||||
|
|
||||||
|
private final String modelName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定义构造函数
|
||||||
|
* @param modelName 模块名称
|
||||||
|
*/
|
||||||
|
PurchaseModelEnum(String modelName) {
|
||||||
|
this.modelName = modelName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断传入的参数是否存在于枚举类中
|
||||||
|
* @return 如果存在返回 true,否则返回 false
|
||||||
|
*/
|
||||||
|
public static boolean containsModelName(String modelName) {
|
||||||
|
for (PurchaseModelEnum model : PurchaseModelEnum.values()) {
|
||||||
|
if (model.getModelName().equals(modelName)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
package com.bonus.material.purchase.controller;
|
package com.bonus.material.purchase.controller;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
import com.bonus.common.log.enums.OperaType;
|
import com.bonus.common.log.enums.OperaType;
|
||||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseCheckFileDto;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
|
@ -26,15 +30,14 @@ import com.bonus.common.core.web.page.TableDataInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购验收任务详细Controller
|
* 新购验收任务详细Controller
|
||||||
*
|
* @author syruan
|
||||||
* @author xsheng
|
|
||||||
* @date 2024-10-16
|
|
||||||
*/
|
*/
|
||||||
@Api(tags = "新购验收任务详细接口")
|
@Api(tags = "新购验收任务详细接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/purchase_check_details")
|
@RequestMapping("/purchase_check_details")
|
||||||
public class PurchaseCheckDetailsController extends BaseController {
|
public class PurchaseCheckDetailsController extends BaseController {
|
||||||
@Autowired
|
|
||||||
|
@Resource
|
||||||
private IPurchaseCheckDetailsService purchaseCheckDetailsService;
|
private IPurchaseCheckDetailsService purchaseCheckDetailsService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -55,7 +58,7 @@ public class PurchaseCheckDetailsController extends BaseController {
|
||||||
@ApiOperation(value = "导出新购验收任务详细列表")
|
@ApiOperation(value = "导出新购验收任务详细列表")
|
||||||
@PreventRepeatSubmit
|
@PreventRepeatSubmit
|
||||||
@RequiresPermissions("purchase:details:export")
|
@RequiresPermissions("purchase:details:export")
|
||||||
@SysLog(title = "新购验收任务详细", businessType = OperaType.EXPORT, logType = 1,module = "仓储管理->导出新购验收任务详细")
|
@SysLog(title = "新购验收任务详细", businessType = OperaType.EXPORT, logType = 1,module = "物资新购->导出新购验收任务详细")
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(HttpServletResponse response, PurchaseCheckDetails purchaseCheckDetails) {
|
public void export(HttpServletResponse response, PurchaseCheckDetails purchaseCheckDetails) {
|
||||||
List<PurchaseCheckDetails> list = purchaseCheckDetailsService.selectPurchaseCheckDetailsList(purchaseCheckDetails);
|
List<PurchaseCheckDetails> list = purchaseCheckDetailsService.selectPurchaseCheckDetailsList(purchaseCheckDetails);
|
||||||
|
|
@ -79,7 +82,7 @@ public class PurchaseCheckDetailsController extends BaseController {
|
||||||
@ApiOperation(value = "新增新购验收任务详细")
|
@ApiOperation(value = "新增新购验收任务详细")
|
||||||
@PreventRepeatSubmit
|
@PreventRepeatSubmit
|
||||||
@RequiresPermissions("purchase:details:add")
|
@RequiresPermissions("purchase:details:add")
|
||||||
@SysLog(title = "新购验收任务详细", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增新购验收任务详细")
|
@SysLog(title = "新购验收任务详细", businessType = OperaType.INSERT, logType = 1,module = "物资新购->新增新购验收任务详细")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public AjaxResult add(@RequestBody PurchaseCheckDetails purchaseCheckDetails) {
|
public AjaxResult add(@RequestBody PurchaseCheckDetails purchaseCheckDetails) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -95,7 +98,7 @@ public class PurchaseCheckDetailsController extends BaseController {
|
||||||
@ApiOperation(value = "修改新购验收任务详细")
|
@ApiOperation(value = "修改新购验收任务详细")
|
||||||
@PreventRepeatSubmit
|
@PreventRepeatSubmit
|
||||||
@RequiresPermissions("purchase:details:edit")
|
@RequiresPermissions("purchase:details:edit")
|
||||||
@SysLog(title = "新购验收任务详细", businessType = OperaType.UPDATE, module = "仓储管理->修改新购验收任务详细")
|
@SysLog(title = "新购验收任务详细", businessType = OperaType.UPDATE, module = "物资新购->修改新购验收任务详细")
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public AjaxResult edit(@RequestBody PurchaseCheckDetails purchaseCheckDetails) {
|
public AjaxResult edit(@RequestBody PurchaseCheckDetails purchaseCheckDetails) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -111,9 +114,32 @@ public class PurchaseCheckDetailsController extends BaseController {
|
||||||
@ApiOperation(value = "删除新购验收任务详细")
|
@ApiOperation(value = "删除新购验收任务详细")
|
||||||
@PreventRepeatSubmit
|
@PreventRepeatSubmit
|
||||||
@RequiresPermissions("purchase:details:remove")
|
@RequiresPermissions("purchase:details:remove")
|
||||||
@SysLog(title = "新购验收任务详细", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除新购验收任务详细")
|
@SysLog(title = "新购验收任务详细", businessType = OperaType.DELETE, logType = 1,module = "物资新购->删除新购验收任务详细")
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||||
return toAjax(purchaseCheckDetailsService.deletePurchaseCheckDetailsByIds(ids));
|
return toAjax(purchaseCheckDetailsService.deletePurchaseCheckDetailsByIds(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据任务id查询报告附件
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "根据任务id查询报告附件")
|
||||||
|
@RequiresPermissions("purchase:details:query")
|
||||||
|
@GetMapping("/fileList/{taskId}")
|
||||||
|
@SysLog(title = "新购验收任务明细报告查询", businessType = OperaType.QUERY, module = "物资新购->根据任务id查询物资报告附件")
|
||||||
|
public AjaxResult getFileList(@PathVariable("taskId") Long taskId) {
|
||||||
|
return success(purchaseCheckDetailsService.selectPurchaseCheckFileListByTaskId(taskId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "上传文件")
|
||||||
|
@PreventRepeatSubmit
|
||||||
|
@RequiresPermissions("purchase:details:add")
|
||||||
|
@SysLog(title = "上传文件", businessType = OperaType.INSERT, logType = 1,module = "物资新购->上传物资报告附件")
|
||||||
|
@PostMapping("/uploadFile")
|
||||||
|
public AjaxResult uploadFile(@RequestBody @NotNull @Valid PurchaseCheckFileDto purchaseCheckFileDto) {
|
||||||
|
return purchaseCheckDetailsService.insertPurchaseCheckFile(purchaseCheckFileDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,14 @@
|
||||||
package com.bonus.material.purchase.controller;
|
package com.bonus.material.purchase.controller;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
import com.bonus.common.log.enums.OperaType;
|
import com.bonus.common.log.enums.OperaType;
|
||||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseNoticePersonDto;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
@ -26,15 +31,15 @@ import com.bonus.common.core.web.page.TableDataInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购短信通知人员Controller
|
* 新购短信通知人员Controller
|
||||||
*
|
*
|
||||||
* @author xsheng
|
* @author syruan
|
||||||
* @date 2024-10-16
|
|
||||||
*/
|
*/
|
||||||
@Api(tags = "新购短信通知人员接口")
|
@Api(tags = "新购短信通知人员接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/purchase_notice_person")
|
@RequestMapping("/purchase_notice_person")
|
||||||
public class PurchaseNoticePersonController extends BaseController {
|
public class PurchaseNoticePersonController extends BaseController {
|
||||||
@Autowired
|
|
||||||
|
@Resource
|
||||||
private IPurchaseNoticePersonService purchaseNoticePersonService;
|
private IPurchaseNoticePersonService purchaseNoticePersonService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -44,7 +49,6 @@ public class PurchaseNoticePersonController extends BaseController {
|
||||||
@RequiresPermissions("purchase:person:list")
|
@RequiresPermissions("purchase:person:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(PurchaseNoticePerson purchaseNoticePerson) {
|
public TableDataInfo list(PurchaseNoticePerson purchaseNoticePerson) {
|
||||||
startPage();
|
|
||||||
List<PurchaseNoticePerson> list = purchaseNoticePersonService.selectPurchaseNoticePersonList(purchaseNoticePerson);
|
List<PurchaseNoticePerson> list = purchaseNoticePersonService.selectPurchaseNoticePersonList(purchaseNoticePerson);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
@ -89,13 +93,41 @@ public class PurchaseNoticePersonController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增--新购短信通知人员
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "批量新增新购短信通知人员")
|
||||||
|
@PreventRepeatSubmit
|
||||||
|
@RequiresPermissions("purchase:person:add")
|
||||||
|
@SysLog(title = "批量新增新购短信通知人员", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->批量新增新购短信通知人员")
|
||||||
|
@PostMapping("/batchAddNoticePerson")
|
||||||
|
public AjaxResult batchAddNoticePerson(@RequestBody List<PurchaseNoticePerson> purchaseNoticePersonList) {
|
||||||
|
try {
|
||||||
|
return toAjax(purchaseNoticePersonService.insertBatchPurchaseNoticePerson(purchaseNoticePersonList));
|
||||||
|
} catch (Exception e) {
|
||||||
|
return error("系统错误, " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量发送短信
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "批量发送短信")
|
||||||
|
@PreventRepeatSubmit
|
||||||
|
@RequiresPermissions("purchase:person:edit")
|
||||||
|
@SysLog(title = "批量发送短信", businessType = OperaType.UPDATE, module = "仓储管理->批量发送短信")
|
||||||
|
@PutMapping("/batchSendSms")
|
||||||
|
public AjaxResult batchSendSms(@NotNull @Valid @RequestBody PurchaseNoticePersonDto purchaseNoticePersonDto) {
|
||||||
|
return purchaseNoticePersonService.batchSendSms(purchaseNoticePersonDto);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改新购短信通知人员
|
* 修改新购短信通知人员
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "修改新购短信通知人员")
|
@ApiOperation(value = "修改新购短信通知人员")
|
||||||
@PreventRepeatSubmit
|
@PreventRepeatSubmit
|
||||||
@RequiresPermissions("purchase:person:edit")
|
@RequiresPermissions("purchase:person:edit")
|
||||||
@SysLog(title = "新购短信通知人员", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改新购短信通知人员")
|
@SysLog(title = "新购短信通知人员", businessType = OperaType.UPDATE, module = "仓储管理->修改新购短信通知人员")
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public AjaxResult edit(@RequestBody PurchaseNoticePerson purchaseNoticePerson) {
|
public AjaxResult edit(@RequestBody PurchaseNoticePerson purchaseNoticePerson) {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ public class PurchaseCheckDetails extends BaseEntity {
|
||||||
@ApiModelProperty(value = "规格名称")
|
@ApiModelProperty(value = "规格名称")
|
||||||
private String typeName;
|
private String typeName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物资单位名称")
|
||||||
|
private String unitName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "物资名称--规格parent类型")
|
@ApiModelProperty(value = "物资名称--规格parent类型")
|
||||||
private String maTypeName;
|
private String maTypeName;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package com.bonus.material.purchase.domain;
|
package com.bonus.material.purchase.domain;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.bonus.common.core.annotation.Excel;
|
import com.bonus.common.core.annotation.Excel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
@ -9,6 +11,8 @@ import lombok.EqualsAndHashCode;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import com.bonus.common.core.web.domain.BaseEntity;
|
import com.bonus.common.core.web.domain.BaseEntity;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购验收任务对象 purchase_check_info
|
* 新购验收任务对象 purchase_check_info
|
||||||
* @author syruan
|
* @author syruan
|
||||||
|
|
@ -17,7 +21,8 @@ import com.bonus.common.core.web.domain.BaseEntity;
|
||||||
@Data
|
@Data
|
||||||
@ToString
|
@ToString
|
||||||
public class PurchaseCheckInfo extends BaseEntity {
|
public class PurchaseCheckInfo extends BaseEntity {
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
private static final long serialVersionUID = 1335730477657434485L;
|
||||||
|
|
||||||
/** 主键id */
|
/** 主键id */
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
@ -30,6 +35,9 @@ public class PurchaseCheckInfo extends BaseEntity {
|
||||||
@ApiModelProperty(value = "任务状态")
|
@ApiModelProperty(value = "任务状态")
|
||||||
private String taskStatus;
|
private String taskStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "采购单号")
|
||||||
|
private String code;
|
||||||
|
|
||||||
/** 采购日期 */
|
/** 采购日期 */
|
||||||
@ApiModelProperty(value = "采购日期")
|
@ApiModelProperty(value = "采购日期")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
|
@ -62,6 +70,31 @@ public class PurchaseCheckInfo extends BaseEntity {
|
||||||
* 采购数量
|
* 采购数量
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "采购数量--外层Table字段")
|
@ApiModelProperty(value = "采购数量--外层Table字段")
|
||||||
private String purchaseMaNumber;
|
private Long purchaseMaNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购含税价格
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "采购含税价格--外层Table字段")
|
||||||
|
private BigDecimal purchaseTaxPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购不含税价格
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "采购不含税价格--外层Table字段")
|
||||||
|
private BigDecimal purchaseNoTaxPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "税率--Int整形 0~100")
|
||||||
|
@Size(max = 100, message = "税率长度必须介于 0 和 100 之间")
|
||||||
|
private Integer taxRate;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "操作人名称")
|
||||||
|
private String createUserName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "新购模块阶段名称")
|
||||||
|
private String modelName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,10 +32,17 @@ public class PurchaseNoticePerson extends BaseEntity {
|
||||||
@ApiModelProperty(value = "用户名")
|
@ApiModelProperty(value = "用户名")
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
|
/** 用户角色名 */
|
||||||
|
@ApiModelProperty(value = "用户角色名")
|
||||||
|
private String userRoleName;
|
||||||
|
|
||||||
/** 联系电话 */
|
/** 联系电话 */
|
||||||
@Excel(name = "联系电话")
|
@Excel(name = "联系电话")
|
||||||
@ApiModelProperty(value = "联系电话")
|
@ApiModelProperty(value = "联系电话")
|
||||||
private String telphone;
|
private String telphone;
|
||||||
|
|
||||||
|
/** 任务id */
|
||||||
|
@ApiModelProperty("任务id")
|
||||||
|
private String taskId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
package com.bonus.material.purchase.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 阮世耀
|
||||||
|
* @version : 1.0
|
||||||
|
* @CreateTime: 2024-10-22 10:36
|
||||||
|
* @Description: 新购验收报告附件DTO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PurchaseCheckFileDto {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "附件名称")
|
||||||
|
@NotBlank(message = "附件名称不能为空")
|
||||||
|
private String fileName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "附件地址url")
|
||||||
|
@NotBlank(message = "附件地址url不能为空")
|
||||||
|
private String fileUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "任务ID")
|
||||||
|
@NotBlank(message = "任务ID不能为空")
|
||||||
|
private String taskId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "字典编码")
|
||||||
|
@NotEmpty(message = "字典编码不能为空")
|
||||||
|
private Integer dictCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "字典标签")
|
||||||
|
private String dictLabel;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "新购模块ID,无需传值,后台定义")
|
||||||
|
private Integer modelId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建人,无需传值,后台通过TOKEN获取")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.bonus.material.purchase.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 阮世耀
|
||||||
|
* @version : 1.0
|
||||||
|
* @PackagePath: com.bonus.material.purchase.dto
|
||||||
|
* @CreateTime: 2024-10-21 14:37
|
||||||
|
* @Description: 新购验收任务通知人员Dto
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ToString
|
||||||
|
public class PurchaseNoticePersonDto {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电话号码
|
||||||
|
*/
|
||||||
|
@NotEmpty(message = "电话号码不能为空")
|
||||||
|
@ApiModelProperty(value = "电话号码")
|
||||||
|
private List<String> phoneNumbers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信内容
|
||||||
|
*/
|
||||||
|
@NotNull(message = "短信内容不能为空")
|
||||||
|
@ApiModelProperty(value = "短信内容")
|
||||||
|
private String content;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.bonus.material.purchase.mapper;
|
||||||
|
|
||||||
|
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseCheckFileDto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新购验收任务报告附件Mapper接口
|
||||||
|
*
|
||||||
|
* @author syruan
|
||||||
|
*/
|
||||||
|
public interface PurchaseCheckFileMapper {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据任务id查询新购验收任务详细报告列表--Join查询
|
||||||
|
* @param taskId 任务id
|
||||||
|
*/
|
||||||
|
List<PurchaseCheckFileDto> selectPurchaseCheckFileListByTaskId(Long taskId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增新购验收任务详细报告附件
|
||||||
|
*
|
||||||
|
* @param purchaseCheckFileDto 新购验收任务详细
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int insertPurchaseCheckFiles(PurchaseCheckFileDto purchaseCheckFileDto);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -34,6 +34,14 @@ public interface PurchaseNoticePersonMapper {
|
||||||
*/
|
*/
|
||||||
public int insertPurchaseNoticePerson(PurchaseNoticePerson purchaseNoticePerson);
|
public int insertPurchaseNoticePerson(PurchaseNoticePerson purchaseNoticePerson);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新购短信通知人员
|
||||||
|
*
|
||||||
|
* @param purchaseNoticePersonList 新购短信通知人员集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int insertBatchPurchaseNoticePerson(List<PurchaseNoticePerson> purchaseNoticePersonList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改新购短信通知人员
|
* 修改新购短信通知人员
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package com.bonus.material.purchase.service;
|
package com.bonus.material.purchase.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseCheckFileDto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购验收任务详细Service接口
|
* 新购验收任务详细Service接口
|
||||||
|
|
@ -16,7 +19,7 @@ public interface IPurchaseCheckDetailsService {
|
||||||
* @param id 新购验收任务详细主键
|
* @param id 新购验收任务详细主键
|
||||||
* @return 新购验收任务详细
|
* @return 新购验收任务详细
|
||||||
*/
|
*/
|
||||||
public PurchaseCheckDetails selectPurchaseCheckDetailsById(Long id);
|
PurchaseCheckDetails selectPurchaseCheckDetailsById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询新购验收任务详细列表
|
* 查询新购验收任务详细列表
|
||||||
|
|
@ -24,7 +27,19 @@ public interface IPurchaseCheckDetailsService {
|
||||||
* @param purchaseCheckDetails 新购验收任务详细
|
* @param purchaseCheckDetails 新购验收任务详细
|
||||||
* @return 新购验收任务详细集合
|
* @return 新购验收任务详细集合
|
||||||
*/
|
*/
|
||||||
public List<PurchaseCheckDetails> selectPurchaseCheckDetailsList(PurchaseCheckDetails purchaseCheckDetails);
|
List<PurchaseCheckDetails> selectPurchaseCheckDetailsList(PurchaseCheckDetails purchaseCheckDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据任务ID查询报告附件列表
|
||||||
|
* @param taskId 任务id
|
||||||
|
*/
|
||||||
|
List<PurchaseCheckFileDto> selectPurchaseCheckFileListByTaskId(Long taskId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增报告附件
|
||||||
|
* @param purchaseCheckFileDto 附件信息
|
||||||
|
*/
|
||||||
|
AjaxResult insertPurchaseCheckFile(PurchaseCheckFileDto purchaseCheckFileDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增新购验收任务详细
|
* 新增新购验收任务详细
|
||||||
|
|
@ -32,7 +47,7 @@ public interface IPurchaseCheckDetailsService {
|
||||||
* @param purchaseCheckDetails 新购验收任务详细
|
* @param purchaseCheckDetails 新购验收任务详细
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int insertPurchaseCheckDetails(PurchaseCheckDetails purchaseCheckDetails);
|
int insertPurchaseCheckDetails(PurchaseCheckDetails purchaseCheckDetails);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改新购验收任务详细
|
* 修改新购验收任务详细
|
||||||
|
|
@ -40,7 +55,7 @@ public interface IPurchaseCheckDetailsService {
|
||||||
* @param purchaseCheckDetails 新购验收任务详细
|
* @param purchaseCheckDetails 新购验收任务详细
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int updatePurchaseCheckDetails(PurchaseCheckDetails purchaseCheckDetails);
|
int updatePurchaseCheckDetails(PurchaseCheckDetails purchaseCheckDetails);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除新购验收任务详细
|
* 批量删除新购验收任务详细
|
||||||
|
|
@ -48,7 +63,7 @@ public interface IPurchaseCheckDetailsService {
|
||||||
* @param ids 需要删除的新购验收任务详细主键集合
|
* @param ids 需要删除的新购验收任务详细主键集合
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deletePurchaseCheckDetailsByIds(Long[] ids);
|
int deletePurchaseCheckDetailsByIds(Long[] ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除新购验收任务详细信息
|
* 删除新购验收任务详细信息
|
||||||
|
|
@ -56,5 +71,5 @@ public interface IPurchaseCheckDetailsService {
|
||||||
* @param id 新购验收任务详细主键
|
* @param id 新购验收任务详细主键
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deletePurchaseCheckDetailsById(Long id);
|
int deletePurchaseCheckDetailsById(Long id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package com.bonus.material.purchase.service;
|
package com.bonus.material.purchase.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.material.purchase.domain.PurchaseNoticePerson;
|
import com.bonus.material.purchase.domain.PurchaseNoticePerson;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseNoticePersonDto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购短信通知人员Service接口
|
* 新购短信通知人员Service接口
|
||||||
|
|
@ -26,6 +29,12 @@ public interface IPurchaseNoticePersonService {
|
||||||
*/
|
*/
|
||||||
public List<PurchaseNoticePerson> selectPurchaseNoticePersonList(PurchaseNoticePerson purchaseNoticePerson);
|
public List<PurchaseNoticePerson> selectPurchaseNoticePersonList(PurchaseNoticePerson purchaseNoticePerson);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量发送短信
|
||||||
|
* @param purchaseNoticePersonDto 短信发送信息dto
|
||||||
|
*/
|
||||||
|
AjaxResult batchSendSms(PurchaseNoticePersonDto purchaseNoticePersonDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增新购短信通知人员
|
* 新增新购短信通知人员
|
||||||
*
|
*
|
||||||
|
|
@ -34,6 +43,14 @@ public interface IPurchaseNoticePersonService {
|
||||||
*/
|
*/
|
||||||
public int insertPurchaseNoticePerson(PurchaseNoticePerson purchaseNoticePerson);
|
public int insertPurchaseNoticePerson(PurchaseNoticePerson purchaseNoticePerson);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增新购短信通知人员
|
||||||
|
*
|
||||||
|
* @param purchaseNoticePersonList 新购短信通知人员集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int insertBatchPurchaseNoticePerson(List<PurchaseNoticePerson> purchaseNoticePersonList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改新购短信通知人员
|
* 修改新购短信通知人员
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,19 @@ package com.bonus.material.purchase.service.impl;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseCheckFileDto;
|
||||||
|
import com.bonus.material.purchase.mapper.PurchaseCheckFileMapper;
|
||||||
|
import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
|
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
|
||||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||||
import com.bonus.material.purchase.service.IPurchaseCheckDetailsService;
|
import com.bonus.material.purchase.service.IPurchaseCheckDetailsService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购验收任务详细Service业务层处理
|
* 新购验收任务详细Service业务层处理
|
||||||
*
|
*
|
||||||
|
|
@ -17,9 +24,13 @@ import com.bonus.material.purchase.service.IPurchaseCheckDetailsService;
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class PurchaseCheckDetailsServiceImpl implements IPurchaseCheckDetailsService {
|
public class PurchaseCheckDetailsServiceImpl implements IPurchaseCheckDetailsService {
|
||||||
@Autowired
|
|
||||||
|
@Resource
|
||||||
private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper;
|
private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PurchaseCheckFileMapper purchaseCheckFileMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询新购验收任务详细
|
* 查询新购验收任务详细
|
||||||
*
|
*
|
||||||
|
|
@ -42,6 +53,39 @@ public class PurchaseCheckDetailsServiceImpl implements IPurchaseCheckDetailsSer
|
||||||
return purchaseCheckDetailsMapper.selectPurchaseCheckDetailsList(purchaseCheckDetails);
|
return purchaseCheckDetailsMapper.selectPurchaseCheckDetailsList(purchaseCheckDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据任务ID查询报告附件列表
|
||||||
|
*
|
||||||
|
* @param taskId 任务id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<PurchaseCheckFileDto> selectPurchaseCheckFileListByTaskId(Long taskId) {
|
||||||
|
try {
|
||||||
|
return purchaseCheckFileMapper.selectPurchaseCheckFileListByTaskId(taskId);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("SQL执行错误:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增报告附件
|
||||||
|
*
|
||||||
|
* @param purchaseCheckFileDto 附件信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AjaxResult insertPurchaseCheckFile(PurchaseCheckFileDto purchaseCheckFileDto) {
|
||||||
|
try {
|
||||||
|
if (purchaseCheckFileDto != null) {
|
||||||
|
// TODO: 暂定魔法值,字典表为26,后续抽出定义为常量
|
||||||
|
purchaseCheckFileDto.setModelId(26);
|
||||||
|
purchaseCheckFileDto.setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
|
}
|
||||||
|
return purchaseCheckFileMapper.insertPurchaseCheckFiles(purchaseCheckFileDto) > 0 ? AjaxResult.success() : AjaxResult.error("SQL插入0条");
|
||||||
|
} catch (Exception e) {
|
||||||
|
return AjaxResult.error("SQL执行错误:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增新购验收任务详细
|
* 新增新购验收任务详细
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,16 @@
|
||||||
package com.bonus.material.purchase.service.impl;
|
package com.bonus.material.purchase.service.impl;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
|
@ -9,6 +19,7 @@ import com.bonus.material.purchase.dto.PurchaseCheckDto;
|
||||||
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
|
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
|
||||||
import com.bonus.material.task.domain.TmTask;
|
import com.bonus.material.task.domain.TmTask;
|
||||||
import com.bonus.material.task.mapper.TmTaskMapper;
|
import com.bonus.material.task.mapper.TmTaskMapper;
|
||||||
|
import org.apache.ibatis.reflection.ArrayUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper;
|
import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper;
|
||||||
|
|
@ -63,19 +74,74 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseCheckInfo purchaseCheckInfoDto) {
|
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseCheckInfo purchaseCheckInfoDto) {
|
||||||
// 查询新购info列表
|
// 查询新购info列表,并用stream流过滤掉info列表中空的对象 或 taskId为空的对象
|
||||||
List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoList(purchaseCheckInfoDto);
|
List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseCheckInfoDto)
|
||||||
// 过滤info列表中空的对象
|
.stream()
|
||||||
purchaseCheckInfos.removeIf(purchaseCheckInfo -> purchaseCheckInfo.getTaskId() == null);
|
.filter(Objects::nonNull)
|
||||||
|
.filter(purchaseCheckInfo -> purchaseCheckInfo.getTaskId() != null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 查询details表,获取详细的采购物资名称
|
// ----------- for循环开始 -------------
|
||||||
for (PurchaseCheckInfo purchaseCheckInfo : purchaseCheckInfos) {
|
for (PurchaseCheckInfo purchaseCheckInfo : purchaseCheckInfos) {
|
||||||
|
// 查询details表,获取详细的采购物资名称
|
||||||
String purchaseMaName = purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseCheckInfo.getTaskId(), null);
|
String purchaseMaName = purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseCheckInfo.getTaskId(), null);
|
||||||
purchaseCheckInfo.setPurchaseMaTypeName(purchaseMaName != null ? purchaseMaName : "");
|
purchaseCheckInfo.setPurchaseMaTypeName(purchaseMaName != null ? purchaseMaName : "");
|
||||||
|
|
||||||
|
// 查询details表,获取详细的采购物资数量、价格
|
||||||
|
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseCheckInfo.getTaskId())
|
||||||
|
.stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 定义初始化统计变量,使用 AtomicLong 和 AtomicBigDecimal 来替代同步块,提高性能。
|
||||||
|
// 采购物资数量
|
||||||
|
AtomicLong purchaseMaTotalNumber = new AtomicLong(0L);
|
||||||
|
// 采购物资不含税价格
|
||||||
|
AtomicReference<BigDecimal> purchaseMaTotalNoTaxPrice = new AtomicReference<>(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
// 执行for循环统计采购物资数量、价格
|
||||||
|
for (PurchaseCheckDetails detail : purchaseCheckDetails) {
|
||||||
|
if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (detail.getPurchaseNum() < 0 || detail.getPurchasePrice().compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
throw new IllegalArgumentException("采购数量和价格必须为非负数");
|
||||||
|
}
|
||||||
|
// 原代码块使用sync确保线程安全,现更改为AtomicLong来替代同步块
|
||||||
|
// 统计采购数量
|
||||||
|
purchaseMaTotalNumber.addAndGet(detail.getPurchaseNum());
|
||||||
|
// 采购物资数量乘以采购不含税价格
|
||||||
|
purchaseMaTotalNoTaxPrice.updateAndGet(v -> v.add(new BigDecimal(detail.getPurchaseNum()).multiply(detail.getPurchasePrice())));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 赋值统计出来的采购物资数量、不含税价格
|
||||||
|
purchaseCheckInfo.setPurchaseMaNumber(purchaseMaTotalNumber.get());
|
||||||
|
purchaseCheckInfo.setPurchaseNoTaxPrice(purchaseMaTotalNoTaxPrice.get());
|
||||||
|
|
||||||
|
// 通过不含税价格及税率,计算出含税价格并赋值
|
||||||
|
if (purchaseCheckInfo.getTaxRate() != null && purchaseCheckInfo.getPurchaseNoTaxPrice() != null) {
|
||||||
|
purchaseCheckInfo.setPurchaseTaxPrice(
|
||||||
|
calculateTaxPrice(purchaseMaTotalNoTaxPrice.get(), new BigDecimal(purchaseCheckInfo.getTaxRate()))
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// ------------- for循环结束 -------------
|
||||||
|
|
||||||
return purchaseCheckInfos;
|
return purchaseCheckInfos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 含税价格计算
|
||||||
|
* @param purchaseNoTaxPrice 不含税价格
|
||||||
|
* @param taxRate 税率:0~100 例如13%税率 值应该是整形:13
|
||||||
|
* @return 不含税价格100 税率为13%,结果为 113.00
|
||||||
|
*/
|
||||||
|
public static BigDecimal calculateTaxPrice(BigDecimal purchaseNoTaxPrice, BigDecimal taxRate) {
|
||||||
|
BigDecimal one = BigDecimal.ONE;
|
||||||
|
return purchaseNoTaxPrice.multiply(one.add(taxRate)).setScale(2, RoundingMode.HALF_UP);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增新购验收任务
|
* 新增新购验收任务
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,17 @@ package com.bonus.material.purchase.service.impl;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import com.bonus.common.core.utils.sms.SmsUtils;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.material.purchase.dto.PurchaseNoticePersonDto;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.bonus.material.purchase.mapper.PurchaseNoticePersonMapper;
|
import com.bonus.material.purchase.mapper.PurchaseNoticePersonMapper;
|
||||||
import com.bonus.material.purchase.domain.PurchaseNoticePerson;
|
import com.bonus.material.purchase.domain.PurchaseNoticePerson;
|
||||||
import com.bonus.material.purchase.service.IPurchaseNoticePersonService;
|
import com.bonus.material.purchase.service.IPurchaseNoticePersonService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新购短信通知人员Service业务层处理
|
* 新购短信通知人员Service业务层处理
|
||||||
*
|
*
|
||||||
|
|
@ -17,7 +22,8 @@ import com.bonus.material.purchase.service.IPurchaseNoticePersonService;
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonService {
|
public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonService {
|
||||||
@Autowired
|
|
||||||
|
@Resource
|
||||||
private PurchaseNoticePersonMapper purchaseNoticePersonMapper;
|
private PurchaseNoticePersonMapper purchaseNoticePersonMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -42,6 +48,17 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
||||||
return purchaseNoticePersonMapper.selectPurchaseNoticePersonList(purchaseNoticePerson);
|
return purchaseNoticePersonMapper.selectPurchaseNoticePersonList(purchaseNoticePerson);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult batchSendSms(PurchaseNoticePersonDto purchaseNoticePersonDto) {
|
||||||
|
String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers());
|
||||||
|
try {
|
||||||
|
String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(), null);
|
||||||
|
return AjaxResult.success(sendResult);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("短信发送异常:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增新购短信通知人员
|
* 新增新购短信通知人员
|
||||||
*
|
*
|
||||||
|
|
@ -58,6 +75,21 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增新购短信通知人员
|
||||||
|
*
|
||||||
|
* @param purchaseNoticePersonList 新购短信通知人员集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertBatchPurchaseNoticePerson(List<PurchaseNoticePerson> purchaseNoticePersonList) {
|
||||||
|
try {
|
||||||
|
return purchaseNoticePersonMapper.insertBatchPurchaseNoticePerson(purchaseNoticePersonList);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("批量新增执行SQL错误:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改新购短信通知人员
|
* 修改新购短信通知人员
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -408,4 +408,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
WHERE
|
WHERE
|
||||||
a.del_flag = 0 AND a.`level` = '3'
|
a.del_flag = 0 AND a.`level` = '3'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMaTypeList" resultMap="TypeResult">
|
||||||
|
select DISTINCT m.type_id, m.type_name, m.parent_id, m.unit_id, m.unit_name, m.manage_type,
|
||||||
|
m.lease_price,m.eff_time, m.rent_price, m.buy_price, m.pay_price, m.level, m.rated_load, m.test_load,
|
||||||
|
m.holding_time, m.warn_num,
|
||||||
|
mtk.user_id keeperUserId,
|
||||||
|
su.nick_name keeperUserName, mpi.prop_name, m.del_flag, m.create_by, m.create_time,
|
||||||
|
m.remark,m.type_id id , m.type_name label
|
||||||
|
from ma_type m
|
||||||
|
left join ma_prop_set mps on m.type_id = mps.type_id and mps.`status`='0' and mps.del_flag='0'
|
||||||
|
left join ma_prop_info mpi on mps.prop_id = mpi.prop_id and mpi.`status`='0' and mpi.del_flag='0'
|
||||||
|
left join ma_type_keeper mtk on m.type_id = mtk.type_id
|
||||||
|
left join sys_user su on mtk.user_id = su.user_id
|
||||||
|
<where>
|
||||||
|
m.del_flag = '0'
|
||||||
|
<if test="typeName != null and typeName !=''">
|
||||||
|
AND m.type_name like concat('%',#{typeName},'%')
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="taskId" column="task_id" />
|
<result property="taskId" column="task_id" />
|
||||||
<result property="typeId" column="type_id" />
|
<result property="typeId" column="type_id" />
|
||||||
<result property="typeName" column="type_name" />
|
<result property="typeName" column="type_name" />
|
||||||
|
<result property="unitName" column="unit_name" />
|
||||||
<result property="maTypeName" column="ma_type_name" />
|
<result property="maTypeName" column="ma_type_name" />
|
||||||
<result property="purchasePrice" column="purchase_price" />
|
<result property="purchasePrice" column="purchase_price" />
|
||||||
<result property="purchaseNum" column="purchase_num" />
|
<result property="purchaseNum" column="purchase_num" />
|
||||||
|
|
@ -40,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
select pcd.id, pcd.task_id, pcd.type_id, pcd.purchase_price, pcd.purchase_num, pcd.check_num, pcd.bind_num, pcd.check_result,
|
select pcd.id, pcd.task_id, pcd.type_id, pcd.purchase_price, pcd.purchase_num, pcd.check_num, pcd.bind_num, pcd.check_result,
|
||||||
pcd.supplier_id, pcd.status, pcd.create_by, pcd.production_time, pcd.create_time, pcd.update_by, pcd.update_time,
|
pcd.supplier_id, pcd.status, pcd.create_by, pcd.production_time, pcd.create_time, pcd.update_by, pcd.update_time,
|
||||||
pcd.remark, pcd.check_url_name, pcd.check_url, pcd.input_num, pcd.input_status, pcd.input_time, pcd.file_name,
|
pcd.remark, pcd.check_url_name, pcd.check_url, pcd.input_num, pcd.input_status, pcd.input_time, pcd.file_name,
|
||||||
pcd.file_url, pcd.company_id, mt.type_name, mtp.type_name as ma_type_name
|
pcd.file_url, pcd.company_id, mt.type_name, mt.unit_name, mtp.type_name as ma_type_name
|
||||||
from purchase_check_details pcd
|
from purchase_check_details pcd
|
||||||
left join ma_type mt on pcd.type_id = mt.type_id
|
left join ma_type mt on pcd.type_id = mt.type_id
|
||||||
left join ma_type mtp on mt.parent_id = mtp.type_id
|
left join ma_type mtp on mt.parent_id = mtp.type_id
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.bonus.material.purchase.mapper.PurchaseCheckFileMapper">
|
||||||
|
<resultMap type="com.bonus.material.purchase.dto.PurchaseCheckFileDto" id="PurchaseCheckFileResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="fileName" column="file_name" />
|
||||||
|
<result property="fileUrl" column="file_url" />
|
||||||
|
<result property="taskId" column="task_id" />
|
||||||
|
<result property="dictCode" column="dict_code" />
|
||||||
|
<result property="dictLabel" column="dict_label" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectPurchaseCheckFileJoinVo">
|
||||||
|
SELECT
|
||||||
|
sdd.dict_code,sdd.dict_label,
|
||||||
|
bfi.id,bfi.file_name,bfi.file_url
|
||||||
|
FROM
|
||||||
|
sys_dict_data sdd
|
||||||
|
LEFT JOIN
|
||||||
|
bm_file_info bfi ON bfi.dic_id = sdd.dict_code
|
||||||
|
WHERE
|
||||||
|
sdd.dict_type = 'purchase_check_report_type'
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPurchaseCheckFileListByTaskId" parameterType="Long" resultMap="PurchaseCheckFileResult">
|
||||||
|
<include refid="selectPurchaseCheckFileJoinVo"/>
|
||||||
|
and bfi.task_id = #{taskId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertPurchaseCheckFiles" parameterType="com.bonus.material.purchase.dto.PurchaseCheckFileDto" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into bm_file_info
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="modelId != null">model_id,</if>
|
||||||
|
<if test="fileName != null">file_name,</if>
|
||||||
|
<if test="fileUrl != null">file_url,</if>
|
||||||
|
<if test="dictCode != null">dic_id,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
create_time,
|
||||||
|
<if test="taskId != null">task_id</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="modelId != null">#{modelId,jdbcType=INTEGER},</if>
|
||||||
|
<if test="fileName != null">#{fileName,jdbcType=VARCHAR},</if>
|
||||||
|
<if test="fileUrl != null">#{fileUrl,jdbcType=VARCHAR},</if>
|
||||||
|
<if test="dictCode != null">#{dictCode},</if>
|
||||||
|
<if test="createBy != null">#{createBy,jdbcType=VARCHAR},</if>
|
||||||
|
now(),
|
||||||
|
<if test="taskId != null">#{taskId}</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -6,10 +6,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<resultMap type="com.bonus.material.purchase.domain.PurchaseCheckInfo" id="PurchaseCheckInfoResult">
|
<resultMap type="com.bonus.material.purchase.domain.PurchaseCheckInfo" id="PurchaseCheckInfoResult">
|
||||||
<result property="id" column="id" />
|
<result property="id" column="id" />
|
||||||
<result property="taskId" column="task_id" />
|
<result property="taskId" column="task_id" />
|
||||||
|
<result property="code" column="code" />
|
||||||
<result property="purchaseTime" column="purchase_time" />
|
<result property="purchaseTime" column="purchase_time" />
|
||||||
<result property="arrivalTime" column="arrival_time" />
|
<result property="arrivalTime" column="arrival_time" />
|
||||||
<result property="purchaser" column="purchaser" />
|
<result property="purchaser" column="purchaser" />
|
||||||
<result property="createBy" column="create_by" />
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="createUserName" column="purchaser_name" />
|
||||||
<result property="createTime" column="create_time" />
|
<result property="createTime" column="create_time" />
|
||||||
<result property="updateBy" column="update_by" />
|
<result property="updateBy" column="update_by" />
|
||||||
<result property="updateTime" column="update_time" />
|
<result property="updateTime" column="update_time" />
|
||||||
|
|
@ -30,10 +32,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
select
|
select
|
||||||
pci.id, pci.task_id, pci.purchase_time, pci.arrival_time, pci.purchaser, pci.create_by,
|
pci.id, pci.task_id, pci.purchase_time, pci.arrival_time, pci.purchaser, pci.create_by,
|
||||||
pci.create_time, pci.update_by, pci.update_time, pci.remark, pci.company_id,
|
pci.create_time, pci.update_by, pci.update_time, pci.remark, pci.company_id,
|
||||||
t.task_status, t.task_type
|
t.task_status, t.task_type, t.code, su.user_name as create_user_name
|
||||||
from
|
from
|
||||||
purchase_check_info pci
|
purchase_check_info pci
|
||||||
left join tm_task t on t.task_id = pci.task_id
|
left join tm_task t on t.task_id = pci.task_id
|
||||||
|
left join sys_user su ON pci.create_by = su.user_id
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectPurchaseCheckInfoList" parameterType="com.bonus.material.purchase.domain.PurchaseCheckInfo" resultMap="PurchaseCheckInfoResult">
|
<select id="selectPurchaseCheckInfoList" parameterType="com.bonus.material.purchase.domain.PurchaseCheckInfo" resultMap="PurchaseCheckInfoResult">
|
||||||
|
|
|
||||||
|
|
@ -70,4 +70,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<insert id="insertBatchPurchaseNoticePerson">
|
||||||
|
insert into purchase_notice_person(user_id,user_name,telphone,create_time) values
|
||||||
|
<foreach collection="list" item="item" separator=",">
|
||||||
|
(#{item.userId},#{item.userName},#{item.telphone},now())
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue