更新代码

This commit is contained in:
xiao-fajia 2024-09-21 20:43:21 +08:00
parent 890433fc34
commit 2174faa20a
22 changed files with 626 additions and 159 deletions

View File

@ -0,0 +1,77 @@
package cn.iocoder.yudao.module.other.controller.admin;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
import cn.iocoder.yudao.module.other.service.DlRepairOtherService;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherReqVO;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherRespVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
* 维修附加内容表(DlRepairOther)表控制层
*
* @author 小李
* @date 14:29 2024/9/21
**/
@RestController
@RequestMapping("/repair/other")
public class DlRepairOtherController {
/**
* 服务对象
*/
@Resource
private DlRepairOtherService dlRepairOtherService;
/**
* 新增修改维修附加内容表
*
* @author 小李
* @date 15:16 2024/9/21
* @param repairOtherRespVO 请求对象
**/
@PostMapping("/update")
@Operation(summary = "新增、修改维修附加内容表")
public CommonResult<?> updateOther(@RequestBody DlRepairOtherRespVO repairOtherRespVO){
dlRepairOtherService.updateOther(repairOtherRespVO);
return CommonResult.ok();
}
/**
* 维修附加内容表 分页
*
* @author 小李
* @date 15:20 2024/9/21
* @param repairOtherReqVO 请求对象
* @param pageNo 页码
* @param pageSize 条数
**/
@GetMapping("/page")
@Operation(summary = "维修附加内容表 分页")
public CommonResult<?> getOtherPage(DlRepairOtherReqVO repairOtherReqVO,
@RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "1")Integer pageSize){
Page<DlRepairOther> page = new Page<>(pageNo, pageSize);
return success(dlRepairOtherService.getOtherPage(repairOtherReqVO, page));
}
/**
* 维修附加内容表 删除
*
* @author 小李
* @date 15:24 2024/9/21
* @param id 删除记录ID
**/
@DeleteMapping("/delete")
@Operation(summary = "维修附加内容表 删除")
public CommonResult<?> deleteOther(@RequestParam("id") String id){
dlRepairOtherService.deleteOther(id);
return CommonResult.ok();
}
}

View File

@ -0,0 +1,51 @@
package cn.iocoder.yudao.module.other.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 维修附加内容表
*
* @author 小李
* @date 14:22 2024/9/21
**/
@TableName(value ="dl_repair_other")
@Data
@EqualsAndHashCode(callSuper = true)
public class DlRepairOther extends TenantBaseDO {
/**
* 主键标识
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**
* 名称
*/
private String name;
/**
* 价格
*/
private BigDecimal price;
/**
* 关联供应商
*/
private String corpId;
/**
* 部门ID(system_dept表的ID)
*/
private Long deptId;
}

View File

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.other.mapper;
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherReqVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 针对表dl_repair_other(维修附加内容表)的数据库操作Mapper
*
* @author 小李
* @date 14:23 2024/9/21
**/
@Mapper
public interface DlRepairOtherMapper extends BaseMapper<DlRepairOther> {
/**
* 维修附加内容表 分页
*
* @author 小李
* @date 15:20 2024/9/21
* @param repairOtherReqVO 请求对象
**/
IPage<DlRepairOther> getOtherPage(@Param("map") DlRepairOtherReqVO repairOtherReqVO, Page<DlRepairOther> page);
}

View File

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.other.service;
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherReqVO;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherRespVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 针对表dl_repair_other(维修附加内容表)的数据库操作Service
*
* @author 小李
* @date 14:27 2024/9/21
**/
public interface DlRepairOtherService extends IService<DlRepairOther> {
/**
* 新增修改维修附加内容表
*
* @author 小李
* @date 15:16 2024/9/21
* @param repairOtherRespVO 请求对象
**/
void updateOther(DlRepairOtherRespVO repairOtherRespVO);
/**
* 维修附加内容表 分页
*
* @author 小李
* @date 15:20 2024/9/21
* @param repairOtherReqVO 请求对象
**/
IPage<DlRepairOther> getOtherPage(DlRepairOtherReqVO repairOtherReqVO, Page<DlRepairOther> page);
/**
* 维修附加内容表 删除
*
* @author 小李
* @date 15:24 2024/9/21
* @param id 删除记录ID
**/
void deleteOther(String id);
}

View File

@ -0,0 +1,62 @@
package cn.iocoder.yudao.module.other.service.impl;
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
import cn.iocoder.yudao.module.other.mapper.DlRepairOtherMapper;
import cn.iocoder.yudao.module.other.service.DlRepairOtherService;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherReqVO;
import cn.iocoder.yudao.module.other.vo.DlRepairOtherRespVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* 针对表dl_repair_other(维修附加内容表)的数据库操作Service实现
*
* @author 小李
* @date 14:28 2024/9/21
**/
@Service
public class DlRepairOtherServiceImpl extends ServiceImpl<DlRepairOtherMapper, DlRepairOther>
implements DlRepairOtherService {
/**
* 新增修改维修附加内容表
*
* @param repairOtherRespVO 请求对象
* @author 小李
* @date 15:16 2024/9/21
**/
@Override
public void updateOther(DlRepairOtherRespVO repairOtherRespVO) {
baseMapper.insertOrUpdate(repairOtherRespVO);
}
/**
* 维修附加内容表 分页
*
* @author 小李
* @date 15:20 2024/9/21
* @param repairOtherReqVO 请求对象
**/
@Override
public IPage<DlRepairOther> getOtherPage(DlRepairOtherReqVO repairOtherReqVO, Page<DlRepairOther> page){
return baseMapper.getOtherPage(repairOtherReqVO, page);
}
/**
* 维修附加内容表 删除
*
* @author 小李
* @date 15:24 2024/9/21
* @param id 删除记录ID
**/
@Override
public void deleteOther(String id){
baseMapper.deleteById(id);
}
}

View File

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.other.vo;
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
import lombok.Data;
/**
* 维修附加内容表 请求VO
*
* @author 小李
* @date 14:26 2024/9/21
**/
@Data
public class DlRepairOtherReqVO extends DlRepairOther {
}

View File

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.other.vo;
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
import lombok.Data;
/**
* 维修附加内容表 响应VO
*
* @author 小李
* @date 14:26 2024/9/21
**/
@Data
public class DlRepairOtherRespVO extends DlRepairOther {
}

View File

@ -59,5 +59,18 @@ public class DlRepairTicketsController {
Page<DlRepairTickets> page = new Page<>(pageNo, pageSize); Page<DlRepairTickets> page = new Page<>(pageNo, pageSize);
return success(dlRepairTicketsService.getTicketsPage(repairTicketsReqVO, page)); return success(dlRepairTicketsService.getTicketsPage(repairTicketsReqVO, page));
} }
/**
* 获得一个工单的详细信息
*
* @author 小李
* @date 16:05 2024/9/21
* @param id 工单ID
**/
@GetMapping("/get")
@Operation(summary = "查看一个工单的详细信息")
public CommonResult<?> getTicketsById(@RequestParam("id") String id){
return success(dlRepairTicketsService.getTicketsById(id));
}
} }

View File

@ -1,12 +1,21 @@
package cn.iocoder.yudao.module.tickets.controller.admin; package cn.iocoder.yudao.module.tickets.controller.admin;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService; import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/** /**
* 维修工单子表(DlRepairTitem)表控制层 * 维修工单子表(DlRepairTitem)表控制层
* *
@ -22,60 +31,22 @@ public class DlRepairTitemController {
@Resource @Resource
private DlRepairTitemService dlRepairTitemService; private DlRepairTitemService dlRepairTitemService;
// /** /**
// * 分页查询所有数据 * 维修工单子表 分页
// * *
// * @param page 分页对象 * @author 小李
// * @param dlRepairTitem 查询实体 * @date 10:34 2024/9/21
// * @return 所有数据 * @param repairTitemRespVO 查询对象
// */ * @param pageNo 页码
// @GetMapping * @param pageSize 条数
// public R selectAll(Page<DlRepairTitem> page, DlRepairTitem dlRepairTitem) { **/
// return success(this.dlRepairTitemService.page(page, new QueryWrapper<>(dlRepairTitem))); @GetMapping("/page")
// } @Operation(summary = "维修工单子表 分页")
// public CommonResult<?> getTItemPage(DlRepairTitemRespVO repairTitemRespVO,
// /** @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
// * 通过主键查询单条数据 @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){
// * Page<DlRepairTitemRespVO> page = new Page<>(pageNo, pageSize);
// * @param id 主键 return success(dlRepairTitemService.getTItemPage(repairTitemRespVO, page));
// * @return 单条数据 }
// */
// @GetMapping("{id}")
// public R selectOne(@PathVariable Serializable id) {
// return success(this.dlRepairTitemService.getById(id));
// }
//
// /**
// * 新增数据
// *
// * @param dlRepairTitem 实体对象
// * @return 新增结果
// */
// @PostMapping
// public R insert(@RequestBody DlRepairTitem dlRepairTitem) {
// return success(this.dlRepairTitemService.save(dlRepairTitem));
// }
//
// /**
// * 修改数据
// *
// * @param dlRepairTitem 实体对象
// * @return 修改结果
// */
// @PutMapping
// public R update(@RequestBody DlRepairTitem dlRepairTitem) {
// return success(this.dlRepairTitemService.updateById(dlRepairTitem));
// }
//
// /**
// * 删除数据
// *
// * @param idList 主键结合
// * @return 删除结果
// */
// @DeleteMapping
// public R delete(@RequestParam("idList") List<Long> idList) {
// return success(this.dlRepairTitemService.removeByIds(idList));
// }
} }

View File

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* 维修工单表 * 维修工单表
@ -37,7 +38,7 @@ public class DlRepairTickets extends TenantBaseDO {
/** /**
* 用户ID(system_users表的ID) * 用户ID(system_users表的ID)
*/ */
private Long userId; private String userId;
/** /**
* 用户名(base_customer_main表的cus_name) * 用户名(base_customer_main表的cus_name)
@ -156,4 +157,22 @@ public class DlRepairTickets extends TenantBaseDO {
/** 是否已结算 */ /** 是否已结算 */
private String ticketsStatus; private String ticketsStatus;
/** 进厂时间 */
private Date inTime;
/** 预计完工时间 */
private Date outTime;
/** 参考成本 */
private BigDecimal cost;
/** 参考毛利 */
private BigDecimal profit;
/** 领料状态 */
private String partStatus;
/** 工单进行状态 */
private String ticketsWorkStatus;
} }

View File

@ -2,18 +2,20 @@ package cn.iocoder.yudao.module.tickets.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* 维修工单子表 * 维修工单子表
* @author 小李 * @author 小李
* @date 17:30 2024/9/13 * @date 17:30 2024/9/13
**/ **/
@TableName(value ="dl_repair_titem") @TableName(value ="dl_repair_titem")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -27,7 +29,7 @@ public class DlRepairTitem extends TenantBaseDO {
/** /**
* 工单ID(dl_repair_tickets表的ID) * 工单ID(dl_repair_tickets表的ID)
*/ */
private String tichetId; private String ticketId;
/** /**
* 名称;计划前端写的时候可以监听一下动态查一下历史的记录推荐给使用者选 * 名称;计划前端写的时候可以监听一下动态查一下历史的记录推荐给使用者选
@ -95,19 +97,14 @@ public class DlRepairTitem extends TenantBaseDO {
private String partId; private String partId;
/** /**
* 项目类型(dl_repair_project表的ID);正常是自动回显 * 其他ID(dl_base_type表的ID)
*/ */
private String projectTypeId; private String otherId;
/** /**
* 配件类型(dl_base_type表的ID);正常是自动回显 * 子项类型ID(dl_base_type表的ID)
*/ */
private String partTypeId; private String itemTypeId;
/**
* 其他类型(dl_base_type表的ID)
*/
private String otherTypeId;
/** /**
* 状态(字典repair_item_status) * 状态(字典repair_item_status)

View File

@ -1,8 +1,12 @@
package cn.iocoder.yudao.module.tickets.mapper; package cn.iocoder.yudao.module.tickets.mapper;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* 针对表dl_repair_titem(维修工单子表)的数据库操作Mapper * 针对表dl_repair_titem(维修工单子表)的数据库操作Mapper
@ -13,6 +17,14 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface DlRepairTitemMapper extends BaseMapper<DlRepairTitem> { public interface DlRepairTitemMapper extends BaseMapper<DlRepairTitem> {
/**
* 维修工单子表 分页
*
* @author 小李
* @date 10:34 2024/9/21
* @param repairTitemRespVO 查询对象
**/
IPage<DlRepairTitemRespVO> getTItemPage(@Param("map") DlRepairTitemRespVO repairTitemRespVO, Page<DlRepairTitemRespVO> page);
} }

View File

@ -32,4 +32,13 @@ public interface DlRepairTicketsService extends IService<DlRepairTickets> {
* @param repairTicketsReqVO 查询对象 * @param repairTicketsReqVO 查询对象
**/ **/
IPage<DlRepairTickets> getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page); IPage<DlRepairTickets> getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);
/**
* 获得一个工单的详细信息
*
* @author 小李
* @date 16:05 2024/9/21
* @param id 工单ID
**/
DlRepairTicketsRespVO getTicketsById(String id);
} }

View File

@ -1,6 +1,9 @@
package cn.iocoder.yudao.module.tickets.service; package cn.iocoder.yudao.module.tickets.service;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** /**
@ -11,4 +14,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
**/ **/
public interface DlRepairTitemService extends IService<DlRepairTitem> { public interface DlRepairTitemService extends IService<DlRepairTitem> {
/**
* 维修工单子表 分页
*
* @author 小李
* @date 10:34 2024/9/21
* @param repairTitemRespVO 查询对象
**/
IPage<DlRepairTitemRespVO> getTItemPage(DlRepairTitemRespVO repairTitemRespVO, Page<DlRepairTitemRespVO> page);
} }

View File

@ -1,7 +1,12 @@
package cn.iocoder.yudao.module.tickets.service.impl; package cn.iocoder.yudao.module.tickets.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.common.RepairErrorCodeConstants; import cn.iocoder.yudao.common.RepairErrorCodeConstants;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets; import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper; import cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper;
@ -10,6 +15,7 @@ import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -17,7 +23,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -34,26 +42,49 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
@Resource @Resource
private DlRepairTitemService titemService; private DlRepairTitemService titemService;
@Resource
private DeptApi deptApi;
/** /**
* 维修工单表 新增 * 维修工单表 新增
* *
* @param ticketsRespVO 新增对象
* @author 小李 * @author 小李
* @date 11:33 2024/9/20 * @date 11:33 2024/9/20
* @param ticketsRespVO 新增对象
**/ **/
@Override @Override
@DSTransactional @DSTransactional
public void createTickets(DlRepairTicketsRespVO ticketsRespVO){ public void createTickets(DlRepairTicketsRespVO ticketsRespVO) {
// 门店信息
Long deptId = SecurityFrameworkUtils.getLoginUserDeptId();
DeptRespDTO dept = deptApi.getDept(deptId);
if (ObjectUtil.isNotEmpty(dept)) {
ticketsRespVO.setCorpId(dept.getCorpId());
}
// 计算参考成本参考毛利领料状态工单进行状态
// TODO 参考成本 暂时为0
ticketsRespVO.setCost(new BigDecimal("0"));
// TODO 参考毛利 暂时为总金额
ticketsRespVO.setProfit(ticketsRespVO.getTotalPrice());
// 领料状态
// 如果有配件就是未领料 没有配件就是无配件
if (CollectionUtil.isEmpty(ticketsRespVO.getItemList())) {
throw exception(RepairErrorCodeConstants.ITEM_IS_EMPTY);
}
List<DlRepairTitem> itemList = ticketsRespVO.getItemList();
List<DlRepairTitem> collect = itemList.stream().filter(item -> item.getItemType().equals("02")).collect(Collectors.toList());
ticketsRespVO.setPartStatus(CollectionUtil.isEmpty(collect) ? "01" : "02");
// 工单进行状态 默认是未派工
ticketsRespVO.setTicketsWorkStatus("04");
// 新增主表 // 新增主表
baseMapper.insert(ticketsRespVO); baseMapper.insert(ticketsRespVO);
// 新增子表 // 新增子表
if (CollectionUtil.isEmpty(ticketsRespVO.getItemList())){
throw exception(RepairErrorCodeConstants.ITEM_IS_EMPTY);
}
List<DlRepairTitem> itemList = ticketsRespVO.getItemList();
itemList.forEach(item -> { itemList.forEach(item -> {
item.setTichetId(ticketsRespVO.getId()); item.setTicketId(ticketsRespVO.getId());
}); });
titemService.saveBatch(itemList); titemService.saveBatch(itemList);
} }
@ -61,14 +92,32 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/** /**
* 维修工单表 分页 * 维修工单表 分页
* *
* @param repairTicketsReqVO 查询对象
* @author 小李 * @author 小李
* @date 20:51 2024/9/20 * @date 20:51 2024/9/20
* @param repairTicketsReqVO 查询对象
**/ **/
@Override @Override
public IPage<DlRepairTickets> getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page){ public IPage<DlRepairTickets> getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page) {
return baseMapper.getTicketsPage(repairTicketsReqVO, page); return baseMapper.getTicketsPage(repairTicketsReqVO, page);
} }
/**
* 获得一个工单的详细信息
*
* @author 小李
* @date 16:05 2024/9/21
* @param id 工单ID
**/
@Override
public DlRepairTicketsRespVO getTicketsById(String id){
// 查工单主表
DlRepairTickets dlRepairTickets = baseMapper.selectById(id);
DlRepairTicketsRespVO result = BeanUtil.toBean(dlRepairTickets, DlRepairTicketsRespVO.class);
// 工单子表
List<DlRepairTitem> itemList = titemService.list(new LambdaQueryWrapper<DlRepairTitem>().eq(DlRepairTitem::getTicketId, id));
result.setItemList(itemList);
return result;
}
} }

View File

@ -3,6 +3,9 @@ package cn.iocoder.yudao.module.tickets.service.impl;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.mapper.DlRepairTitemMapper; import cn.iocoder.yudao.module.tickets.mapper.DlRepairTitemMapper;
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService; import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,6 +19,17 @@ import org.springframework.stereotype.Service;
public class DlRepairTitemServiceImpl extends ServiceImpl<DlRepairTitemMapper, DlRepairTitem> public class DlRepairTitemServiceImpl extends ServiceImpl<DlRepairTitemMapper, DlRepairTitem>
implements DlRepairTitemService { implements DlRepairTitemService {
/**
* 维修工单子表 分页
*
* @author 小李
* @date 10:34 2024/9/21
* @param repairTitemRespVO 查询对象
**/
@Override
public IPage<DlRepairTitemRespVO> getTItemPage(DlRepairTitemRespVO repairTitemRespVO, Page<DlRepairTitemRespVO> page){
return baseMapper.getTItemPage(repairTitemRespVO, page);
}
} }

View File

@ -1,7 +1,13 @@
package cn.iocoder.yudao.module.tickets.vo; package cn.iocoder.yudao.module.tickets.vo;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets; import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/** /**
* 维修工单表 请求VO * 维修工单表 请求VO
@ -10,4 +16,9 @@ import lombok.Data;
**/ **/
@Data @Data
public class DlRepairTicketsReqVO extends DlRepairTickets { public class DlRepairTicketsReqVO extends DlRepairTickets {
/** 时间区间 */
@Schema(pattern = "时间区间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date[] searchTimeArray;
} }

View File

@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.tickets.vo;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* 维修工单子表 响应VO * 维修工单子表 响应VO
* @author 小李 * @author 小李
@ -10,4 +12,16 @@ import lombok.Data;
**/ **/
@Data @Data
public class DlRepairTitemRespVO extends DlRepairTitem { public class DlRepairTitemRespVO extends DlRepairTitem {
private String carNo;
private String userName;
private String userMobile;
private Date[] searchTimeArray;
private String corpId;
private String ticketNo;
} }

View File

@ -0,0 +1,32 @@
<?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="cn.iocoder.yudao.module.other.mapper.DlRepairOtherMapper">
<resultMap id="BaseResultMap" type="cn.iocoder.yudao.module.other.entity.DlRepairOther">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="price" column="price" jdbcType="DECIMAL"/>
<result property="corpId" column="corp_id" jdbcType="VARCHAR"/>
<result property="deptId" column="dept_id" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_SQL">
select id,
name,
price,
corp_id,
dept_id
from dl_repair_other dro
where dro.deleted = '0'
</sql>
<select id="getOtherPage" resultMap="BaseResultMap">
<include refid="Base_SQL"/>
<if test="map.name != null and map.name != ''">
and dro.name like concat('%', #{map.name}, '%')
</if>
order by dro.create_time desc
</select>
</mapper>

View File

@ -5,36 +5,43 @@
<mapper namespace="cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper"> <mapper namespace="cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper">
<resultMap id="BaseResultMap" type="cn.iocoder.yudao.module.tickets.entity.DlRepairTickets"> <resultMap id="BaseResultMap" type="cn.iocoder.yudao.module.tickets.entity.DlRepairTickets">
<id property="id" column="id" jdbcType="VARCHAR"/> <id property="id" column="id" jdbcType="VARCHAR"/>
<result property="ticketNo" column="ticket_no" jdbcType="VARCHAR"/> <result property="ticketNo" column="ticket_no" jdbcType="VARCHAR"/>
<result property="repairType" column="repair_type" jdbcType="VARCHAR"/> <result property="repairType" column="repair_type" jdbcType="VARCHAR"/>
<result property="userId" column="user_id" jdbcType="BIGINT"/> <result property="userId" column="user_id" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/> <result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="userMobile" column="user_mobile" jdbcType="VARCHAR"/> <result property="userMobile" column="user_mobile" jdbcType="VARCHAR"/>
<result property="carId" column="car_id" jdbcType="VARCHAR"/> <result property="carId" column="car_id" jdbcType="VARCHAR"/>
<result property="carNo" column="car_no" jdbcType="VARCHAR"/> <result property="carNo" column="car_no" jdbcType="VARCHAR"/>
<result property="carVin" column="car_vin" jdbcType="VARCHAR"/> <result property="carVin" column="car_vin" jdbcType="VARCHAR"/>
<result property="carBrandId" column="car_brand_id" jdbcType="VARCHAR"/> <result property="carBrandId" column="car_brand_id" jdbcType="VARCHAR"/>
<result property="carBrandName" column="car_brand_name" jdbcType="VARCHAR"/> <result property="carBrandName" column="car_brand_name" jdbcType="VARCHAR"/>
<result property="carBrandType" column="car_brand_type" jdbcType="VARCHAR"/> <result property="carBrandType" column="car_brand_type" jdbcType="VARCHAR"/>
<result property="adviserId" column="adviser_id" jdbcType="VARCHAR"/> <result property="adviserId" column="adviser_id" jdbcType="VARCHAR"/>
<result property="adviserName" column="adviser_name" jdbcType="VARCHAR"/> <result property="adviserName" column="adviser_name" jdbcType="VARCHAR"/>
<result property="payType" column="pay_type" jdbcType="VARCHAR"/> <result property="payType" column="pay_type" jdbcType="VARCHAR"/>
<result property="repairAdvice" column="repair_advice" jdbcType="VARCHAR"/> <result property="repairAdvice" column="repair_advice" jdbcType="VARCHAR"/>
<result property="qualityMileage" column="quality_mileage" jdbcType="VARCHAR"/> <result property="qualityMileage" column="quality_mileage" jdbcType="VARCHAR"/>
<result property="qualityDay" column="quality_day" jdbcType="VARCHAR"/> <result property="qualityDay" column="quality_day" jdbcType="VARCHAR"/>
<result property="endCheck" column="end_check" jdbcType="VARCHAR"/> <result property="endCheck" column="end_check" jdbcType="VARCHAR"/>
<result property="partDisposal" column="part_disposal" jdbcType="VARCHAR"/> <result property="partDisposal" column="part_disposal" jdbcType="VARCHAR"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/> <result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="ticketType" column="ticket_type" jdbcType="VARCHAR"/> <result property="ticketType" column="ticket_type" jdbcType="VARCHAR"/>
<result property="corpId" column="corp_id" jdbcType="VARCHAR"/> <result property="corpId" column="corp_id" jdbcType="VARCHAR"/>
<result property="deptId" column="dept_id" jdbcType="BIGINT"/> <result property="deptId" column="dept_id" jdbcType="BIGINT"/>
<result property="count" column="count" /> <result property="count" column="count"/>
<result property="projectPrice" column="project_price" /> <result property="projectPrice" column="project_price"/>
<result property="partPrice" column="part_price" /> <result property="partPrice" column="part_price"/>
<result property="otherPrice" column="other_price" /> <result property="otherPrice" column="other_price"/>
<result property="totalPrice" column="total_price" /> <result property="totalPrice" column="total_price"/>
<result property="ticketStatus" column="ticket_status" /> <result property="ticketsStatus" column="ticket_status"/>
<result property="createTime" column="create_time"/>
<result property="inTime" column="in_time" />
<result property="outTime" column="out_time" />
<result property="cost" column="cost" />
<result property="profit" column="profit" />
<result property="partStatus" column="part_status" />
<result property="ticketsWorkStatus" column="tickets_work_status" />
</resultMap> </resultMap>
<sql id="Base_SQL"> <sql id="Base_SQL">
@ -67,15 +74,45 @@
part_price, part_price,
other_price, other_price,
total_price, total_price,
tickets_status tickets_status,
create_time,
in_time,
out_time,
cost,
profit,
part_status,
tickets_work_status
from dl_repair_tickets drt from dl_repair_tickets drt
where drt.deleted = '0' where drt.deleted = '0'
</sql> </sql>
<select id="getTicketsPage" resultMap="BaseResultMap"> <select id="getTicketsPage" resultMap="BaseResultMap">
<include refid="Base_SQL" /> <include refid="Base_SQL"/>
<if test="map.ticketsStatus != null and map.ticketsStatus != ''"> <if test="map.ticketsStatus != null and map.ticketsStatus != ''">
and drt.tickets_status = #{map.ticketsStatus} and drt.tickets_status = #{map.ticketsStatus}
</if> </if>
<if test="map.ticketNo != null and map.ticketNo != ''">
and (
drt.ticket_no like concat('%', #{map.ticketNo}, '%')
or
drt.car_no like concat('%', #{map.ticketNo}, '%')
or
drt.user_name like concat('%', #{map.ticketNo}, '%')
or
drt.user_mobile like concat('%', #{map.ticketNo}, '%')
or
drt.remark like concat('%', #{map.ticketNo}, '%')
)
</if>
<if test="map.searchTimeArray != null and map.searchTimeArray.length > 0">
and drt.create_time between #{map.searchTimeArray[0]} and #{map.searchTimeArray[1]}
</if>
<if test="map.repairType != null and map.repairType != ''">
and drt.repair_type = #{map.repairType}
</if>
<if test="map.corpId != null and map.corpId != ''">
and drt.corp_id = #{map.corpId}
</if>
order by drt.create_time desc
</select> </select>
</mapper> </mapper>

View File

@ -3,52 +3,37 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.tickets.mapper.DlRepairTitemMapper"> <mapper namespace="cn.iocoder.yudao.module.tickets.mapper.DlRepairTitemMapper">
<select id="getTItemPage" resultType="cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO">
<resultMap id="BaseResultMap" type="cn.iocoder.yudao.module.tickets.entity.DlRepairTitem"> SELECT drti.id,
<id property="id" column="id" jdbcType="VARCHAR"/> drti.ticket_id,
<result property="tichetId" column="tichet_id" jdbcType="VARCHAR"/> drti.item_name,
<result property="itemName" column="item_name" jdbcType="VARCHAR"/> drti.item_count,
<result property="itemCount" column="item_count" jdbcType="INTEGER"/> drti.item_unit,
<result property="itemUnit" column="item_unit" jdbcType="VARCHAR"/> drti.item_price,
<result property="itemPrice" column="item_price" jdbcType="DECIMAL"/> drti.item_discount,
<result property="itemDiscount" column="item_discount" jdbcType="DECIMAL"/> drti.item_money,
<result property="itemMoney" column="item_money" jdbcType="DECIMAL"/> drti.repair_id,
<result property="repairId" column="repair_id" jdbcType="BIGINT"/> drti.repair_name,
<result property="repairName" column="repair_name" jdbcType="VARCHAR"/> drti.sale_id,
<result property="saleId" column="sale_id" jdbcType="BIGINT"/> drti.sale_name,
<result property="saleName" column="sale_name" jdbcType="VARCHAR"/> drti.item_type,
<result property="itemType" column="item_type" jdbcType="VARCHAR"/> drti.project_id,
<result property="projectId" column="project_id" jdbcType="VARCHAR"/> drti.part_id,
<result property="partId" column="part_id" jdbcType="VARCHAR"/> drti.other_id,
<result property="projectTypeId" column="project_type_id" jdbcType="VARCHAR"/> drti.item_type_id,
<result property="partTypeId" column="part_type_id" jdbcType="VARCHAR"/> drti.item_status,
<result property="otherTypeId" column="other_type_id" jdbcType="VARCHAR"/> drti.remark,
<result property="itemStatus" column="item_status" jdbcType="VARCHAR"/> drti.tenant_id,
<result property="remark" column="remark" jdbcType="VARCHAR"/> drti.deleted,
</resultMap> drti.creator,
drti.create_time,
<sql id="Base_SQL"> drti.updater,
select id, drti.update_time,
tichet_id, drt.car_no,
item_name, drt.user_name,
item_count, drt.user_mobile,
item_unit, drt.ticket_no
item_price, FROM dl_repair_titem drti
item_discount, LEFT JOIN dl_repair_tickets drt ON drti.ticket_id = drt.id
item_money, </select>
repair_id,
repair_name,
sale_id,
sale_name,
item_type,
project_id,
part_id,
project_type_id,
part_type_id,
other_type_id,
item_status,
remark
from dl_repair_titem drti
where drti.deleted = '0'
</sql>
</mapper> </mapper>

View File

@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPage
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataRespVO; import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataRespVO;
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSimpleRespVO; import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSimpleRespVO;
import cn.iocoder.yudao.module.system.controller.app.dict.vo.AppDictDataRespVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
import cn.iocoder.yudao.module.system.service.dict.DictDataService; import cn.iocoder.yudao.module.system.service.dict.DictDataService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -100,5 +101,4 @@ public class DictDataController {
ExcelUtils.write(response, "字典数据.xls", "数据", DictDataRespVO.class, ExcelUtils.write(response, "字典数据.xls", "数据", DictDataRespVO.class,
BeanUtils.toBean(list, DictDataRespVO.class)); BeanUtils.toBean(list, DictDataRespVO.class));
} }
} }