配件申请单样式优化
This commit is contained in:
parent
1af4c1ab53
commit
545cf7eea9
@ -1,7 +1,6 @@
|
||||
package cn.iocoder.yudao.module.tickets.controller.admin;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.module.tickets.entity.DlTwItem;
|
||||
import cn.iocoder.yudao.module.tickets.service.DlTwItemService;
|
||||
import cn.iocoder.yudao.module.tickets.vo.AddTwiVO;
|
||||
import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO;
|
||||
@ -40,6 +39,19 @@ public class DlTwItemController {
|
||||
return success(dlTwItemService.listTwItem(reqVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* APP查询配件申请单列表-按配件分类进行分组
|
||||
* @author vinjor-M
|
||||
* @date 14:01 2024/11/20
|
||||
* @param reqVO TODO
|
||||
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||
**/
|
||||
@GetMapping("/listApp")
|
||||
@Operation(summary = "APP查询配件申请单列表-按配件分类进行分组")
|
||||
public CommonResult<?> listApp(DlTwItemReqVO reqVO){
|
||||
return success(dlTwItemService.listApp(reqVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 给配件申请表子表添加数据
|
||||
*
|
||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.tickets.mapper;
|
||||
|
||||
import cn.iocoder.yudao.module.tickets.entity.DlTwItem;
|
||||
import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO;
|
||||
import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -25,6 +26,15 @@ public interface DlTwItemMapper extends BaseMapper<DlTwItem> {
|
||||
* @param reqVO 请求对象
|
||||
**/
|
||||
List<DlTwItem> listTwItem(@Param("map") DlTwItemReqVO reqVO);
|
||||
|
||||
/**
|
||||
* APP查询配件申请单列表-按配件分类进行分组
|
||||
* @author vinjor-M
|
||||
* @date 14:04 2024/11/20
|
||||
* @param reqVO
|
||||
* @return java.util.List<cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO>
|
||||
**/
|
||||
List<DlTwItemRespVO> listTwItemApp(@Param("map") DlTwItemReqVO reqVO);
|
||||
}
|
||||
|
||||
|
||||
|
@ -33,4 +33,13 @@ public interface DlTwItemService extends IService<DlTwItem> {
|
||||
* @param addTwiVO 对象
|
||||
**/
|
||||
void addTwi(AddTwiVO addTwiVO);
|
||||
|
||||
/**
|
||||
* APP查询配件申请单列表-按配件分类进行分组
|
||||
* @author vinjor-M
|
||||
* @date 14:03 2024/11/20
|
||||
* @param reqVO
|
||||
* @return java.lang.Object
|
||||
**/
|
||||
Object listApp(DlTwItemReqVO reqVO);
|
||||
}
|
||||
|
@ -6,19 +6,22 @@ import cn.iocoder.yudao.module.project.entity.RepairWares;
|
||||
import cn.iocoder.yudao.module.project.service.RepairWaresService;
|
||||
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
|
||||
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
|
||||
import cn.iocoder.yudao.module.tickets.entity.DlTicketWares;
|
||||
import cn.iocoder.yudao.module.tickets.entity.DlTwItem;
|
||||
import cn.iocoder.yudao.module.tickets.mapper.DlTwItemMapper;
|
||||
import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService;
|
||||
import cn.iocoder.yudao.module.tickets.service.DlTwItemService;
|
||||
import cn.iocoder.yudao.module.tickets.vo.AddTwiVO;
|
||||
import cn.iocoder.yudao.module.tickets.vo.AppWaresGroupVO;
|
||||
import cn.iocoder.yudao.module.tickets.vo.DlTwItemReqVO;
|
||||
import cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -37,6 +40,8 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
|
||||
public class DlTwItemServiceImpl extends ServiceImpl<DlTwItemMapper, DlTwItem>
|
||||
implements DlTwItemService {
|
||||
|
||||
@Resource
|
||||
private DlTwItemMapper dlTwItemMapper;
|
||||
@Resource
|
||||
private RepairWaresService repairWaresService;
|
||||
@Resource
|
||||
@ -113,6 +118,55 @@ public class DlTwItemServiceImpl extends ServiceImpl<DlTwItemMapper, DlTwItem>
|
||||
// 新增
|
||||
baseMapper.insert(twItems);
|
||||
}
|
||||
|
||||
/**
|
||||
* APP查询配件申请单列表-按配件分类进行分组
|
||||
*
|
||||
* @param reqVO
|
||||
* @return java.lang.Object
|
||||
* @author vinjor-M
|
||||
* @date 14:03 2024/11/20
|
||||
**/
|
||||
@Override
|
||||
public Object listApp(DlTwItemReqVO reqVO) {
|
||||
// 查记录
|
||||
List<DlTwItemRespVO> dlTwItemRespVOList = dlTwItemMapper.listTwItemApp(reqVO);
|
||||
List<AppWaresGroupVO> waresGroupList = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(dlTwItemRespVOList)) {
|
||||
//先过滤出itenTypeId为null或空,或者itemTypeName为null或空的,为单独一个组
|
||||
List<DlTwItemRespVO> nullList = dlTwItemRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(nullList)) {
|
||||
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||
waresGroupVO.setTwItemList(nullList.stream().peek(item->{
|
||||
if(StringUtils.isEmpty(item.getWaresStatus())){
|
||||
item.setSelected(false);
|
||||
}else{
|
||||
item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
}
|
||||
}).collect(Collectors.toList()));
|
||||
waresGroupVO.setGroupName("未知分组");
|
||||
waresGroupVO.setNums(nullList.size());
|
||||
waresGroupList.add(waresGroupVO);
|
||||
}
|
||||
//过滤出有分类的进行分组
|
||||
Map<String,List<DlTwItemRespVO>> groupListMap = dlTwItemRespVOList.stream().filter(item->StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlTwItemRespVO::getTypeId));
|
||||
for (String key:groupListMap.keySet()){
|
||||
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||
waresGroupVO.setTwItemList(groupListMap.get(key).stream().peek(item->{
|
||||
if(StringUtils.isEmpty(item.getWaresStatus())){
|
||||
item.setSelected(false);
|
||||
}else{
|
||||
item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
}
|
||||
}).collect(Collectors.toList()));
|
||||
waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName());
|
||||
waresGroupVO.setGroupId(key);
|
||||
waresGroupVO.setNums(groupListMap.get(key).size());
|
||||
waresGroupList.add(waresGroupVO);
|
||||
}
|
||||
}
|
||||
return waresGroupList;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,10 +16,13 @@ public class AppWaresGroupVO {
|
||||
private String groupId;
|
||||
/** 分组名称(分类名称) */
|
||||
private String groupName;
|
||||
/** 数量 */
|
||||
/** 数量--兼容待审核的配件数量 */
|
||||
private Integer nums;
|
||||
/** 总价 */
|
||||
private BigDecimal totalAmount;
|
||||
/** 配件明细 */
|
||||
private List<DlRepairTitemReqVO> wares;
|
||||
|
||||
/** 配件申请单配件明细 */
|
||||
private List<DlTwItemRespVO> twItemList;
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ import cn.iocoder.yudao.module.project.entity.RepairWares;
|
||||
import cn.iocoder.yudao.module.tickets.entity.DlTwItem;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 工单配件申请/退回子表响应VO
|
||||
*
|
||||
@ -15,6 +17,18 @@ public class DlTwItemRespVO extends DlTwItem {
|
||||
|
||||
/** 配件详情 */
|
||||
private RepairWares wares;
|
||||
/** 配件分类id */
|
||||
private String typeId;
|
||||
/** 配件分类名称 */
|
||||
private String typeName;
|
||||
/** 配件计量单位名称 */
|
||||
private String unitText;
|
||||
/** 是否选中 */
|
||||
private Boolean selected;
|
||||
/** 售价 */
|
||||
private BigDecimal salePrice;
|
||||
/** 库存 */
|
||||
private Integer stock;
|
||||
/** 审核时间 */
|
||||
private String approvalTime;
|
||||
}
|
||||
|
@ -47,4 +47,47 @@
|
||||
and dti.wares_status = #{map.waresStatus}
|
||||
</if>
|
||||
</select>
|
||||
<select id="listTwItemApp" resultType="cn.iocoder.yudao.module.tickets.vo.DlTwItemRespVO">
|
||||
SELECT
|
||||
dti.id,
|
||||
dti.tw_id,
|
||||
dti.wares_id,
|
||||
dti.wares_name,
|
||||
dti.wares_count,
|
||||
dti.wares_already_count,
|
||||
dti.wares_status,
|
||||
dti.handle_id,
|
||||
dti.handle_name,
|
||||
dti.update_time,
|
||||
dti.remark,
|
||||
drw.type AS type_id,
|
||||
dbt.`name` AS type_name,
|
||||
drw.price AS sale_price,
|
||||
drw.stock AS stock,
|
||||
sdd.label AS unit_text
|
||||
FROM
|
||||
dl_tw_item dti
|
||||
LEFT JOIN dl_repair_wares drw ON dti.wares_id = drw.id
|
||||
LEFT JOIN dl_base_type dbt ON drw.type = dbt.id
|
||||
LEFT JOIN system_dict_data sdd ON drw.unit = sdd.
|
||||
VALUE
|
||||
|
||||
AND sdd.dict_type = 'repair_unit'
|
||||
WHERE
|
||||
dti.deleted = '0'
|
||||
<if test="map.twId != null and map.twId != ''">
|
||||
and dti.tw_id = #{map.twId}
|
||||
</if>
|
||||
<if test="map.query != null and map.query != ''">
|
||||
and (
|
||||
dti.wares_name like concat('%', #{map.query}, '%')
|
||||
)
|
||||
</if>
|
||||
<if test="map.waresStatus != null and map.waresStatus != ''">
|
||||
and dti.wares_status = #{map.waresStatus}
|
||||
</if>
|
||||
ORDER BY
|
||||
drw.type,
|
||||
dti.create_time
|
||||
</select>
|
||||
</mapper>
|
||||
|
Loading…
Reference in New Issue
Block a user