1
This commit is contained in:
parent
977fb20920
commit
8138a6f536
@ -88,6 +88,19 @@ public class DlRepairSoController {
|
|||||||
return success(dlRepairSoService.getRepairSoById(id));
|
return success(dlRepairSoService.getRepairSoById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料单、退料单APP查看
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 11:10 2024/11/21
|
||||||
|
* @param id 单据id
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
**/
|
||||||
|
@GetMapping("/getApp")
|
||||||
|
@Operation(summary = "采购单/领料单 查看")
|
||||||
|
public CommonResult<?> getApp(@RequestParam("id") String id) {
|
||||||
|
return success(dlRepairSoService.getApp(id));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 员工确认领料
|
* 员工确认领料
|
||||||
*
|
*
|
||||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.stockOperate.mapper;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSo;
|
import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSo;
|
||||||
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO;
|
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO;
|
||||||
|
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO;
|
||||||
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -30,6 +31,15 @@ public interface DlRepairSoMapper extends BaseMapper<DlRepairSo> {
|
|||||||
* @return java.lang.Integer
|
* @return java.lang.Integer
|
||||||
**/
|
**/
|
||||||
Integer selectCountNum(@Param("type") String type,@Param("userId") Long userId,@Param("status") String status);
|
Integer selectCountNum(@Param("type") String type,@Param("userId") Long userId,@Param("status") String status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查单据配件明细
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 11:13 2024/11/21
|
||||||
|
* @param id 单据id
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.tickets.vo.AppWaresGroupVO>
|
||||||
|
**/
|
||||||
|
List<DlRepairSoiRespVO> selectByIdGroup(@Param("id")String id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,9 +7,6 @@ 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.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 针对表【dl_repair_so(采购单领料单)】的数据库操作Service
|
* 针对表【dl_repair_so(采购单领料单)】的数据库操作Service
|
||||||
*
|
*
|
||||||
@ -80,4 +77,12 @@ public interface DlRepairSoService extends IService<DlRepairSo> {
|
|||||||
* @date 14:32 2024/10/24
|
* @date 14:32 2024/10/24
|
||||||
**/
|
**/
|
||||||
void inWare(DlRepairSoRespVO repairSoRespVO);
|
void inWare(DlRepairSoRespVO repairSoRespVO);
|
||||||
|
/**
|
||||||
|
* 领料单、退料单APP查看
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 11:10 2024/11/21
|
||||||
|
* @param id 单据id
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
**/
|
||||||
|
Object getApp(String id);
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoService;
|
|||||||
import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoiService;
|
import cn.iocoder.yudao.module.stockOperate.service.DlRepairSoiService;
|
||||||
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO;
|
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO;
|
||||||
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoRespVO;
|
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoRespVO;
|
||||||
|
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO;
|
||||||
import cn.iocoder.yudao.module.supplier.service.BaseSupplierService;
|
import cn.iocoder.yudao.module.supplier.service.BaseSupplierService;
|
||||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
||||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
||||||
@ -31,6 +32,7 @@ import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService;
|
|||||||
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
|
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
|
||||||
import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService;
|
import cn.iocoder.yudao.module.tickets.service.DlTicketWaresService;
|
||||||
import cn.iocoder.yudao.module.tickets.service.DlTwItemService;
|
import cn.iocoder.yudao.module.tickets.service.DlTwItemService;
|
||||||
|
import cn.iocoder.yudao.module.tickets.vo.AppWaresGroupVO;
|
||||||
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.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@ -48,7 +50,6 @@ import java.util.function.Function;
|
|||||||
import java.util.stream.Collectors;
|
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;
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 针对表【dl_repair_so(采购单领料单)】的数据库操作Service实现
|
* 针对表【dl_repair_so(采购单领料单)】的数据库操作Service实现
|
||||||
@ -60,6 +61,8 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
|
|||||||
public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepairSo>
|
public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepairSo>
|
||||||
implements DlRepairSoService {
|
implements DlRepairSoService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DlRepairSoMapper dlRepairSoMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private DlRepairSoiService repairSoiService;
|
private DlRepairSoiService repairSoiService;
|
||||||
|
|
||||||
@ -508,6 +511,42 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
|||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
waresService.updateBatchById(newWares);
|
waresService.updateBatchById(newWares);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料单、退料单APP查看
|
||||||
|
*
|
||||||
|
* @param id 单据id
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 11:10 2024/11/21
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public Object getApp(String id) {
|
||||||
|
List<DlRepairSoiRespVO> dlRepairSoiRespVOList = dlRepairSoMapper.selectByIdGroup(id);
|
||||||
|
List<AppWaresGroupVO> waresGroupList = new ArrayList<>();
|
||||||
|
if (CollectionUtil.isNotEmpty(dlRepairSoiRespVOList)) {
|
||||||
|
//先过滤出itenTypeId为null或空,或者itemTypeName为null或空的,为单独一个组
|
||||||
|
List<DlRepairSoiRespVO> nullList = dlRepairSoiRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isNotEmpty(nullList)) {
|
||||||
|
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||||
|
waresGroupVO.setSoiRespVOList(nullList);
|
||||||
|
waresGroupVO.setGroupName("未知分组");
|
||||||
|
waresGroupVO.setNums(nullList.size());
|
||||||
|
waresGroupList.add(waresGroupVO);
|
||||||
|
}
|
||||||
|
//过滤出有分类的进行分组
|
||||||
|
Map<String,List<DlRepairSoiRespVO>> groupListMap = dlRepairSoiRespVOList.stream().filter(item->StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlRepairSoiRespVO::getTypeId));
|
||||||
|
for (String key:groupListMap.keySet()){
|
||||||
|
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||||
|
waresGroupVO.setSoiRespVOList(groupListMap.get(key));
|
||||||
|
waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName());
|
||||||
|
waresGroupVO.setGroupId(key);
|
||||||
|
waresGroupVO.setNums(groupListMap.get(key).size());
|
||||||
|
waresGroupList.add(waresGroupVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return waresGroupList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ import cn.iocoder.yudao.module.project.entity.RepairWares;
|
|||||||
import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi;
|
import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSoi;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购单/领料单子表 响应VO
|
* 采购单/领料单子表 响应VO
|
||||||
* @author 小李
|
* @author 小李
|
||||||
@ -14,4 +16,16 @@ public class DlRepairSoiRespVO extends DlRepairSoi {
|
|||||||
|
|
||||||
/** 对应的配件信息 */
|
/** 对应的配件信息 */
|
||||||
private RepairWares wares;
|
private RepairWares wares;
|
||||||
|
/** 配件分类id */
|
||||||
|
private String typeId;
|
||||||
|
/** 配件分类名称 */
|
||||||
|
private String typeName;
|
||||||
|
/** 配件名称 */
|
||||||
|
private String goodsName;
|
||||||
|
/** 配件计量单位名称 */
|
||||||
|
private String unitText;
|
||||||
|
/** 售价 */
|
||||||
|
private BigDecimal salePrice;
|
||||||
|
/** 库存 */
|
||||||
|
private Integer stock;
|
||||||
}
|
}
|
||||||
|
@ -137,31 +137,59 @@ public class DlTwItemServiceImpl extends ServiceImpl<DlTwItemMapper, DlTwItem>
|
|||||||
List<DlTwItemRespVO> nullList = dlTwItemRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList());
|
List<DlTwItemRespVO> nullList = dlTwItemRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList());
|
||||||
if (CollectionUtil.isNotEmpty(nullList)) {
|
if (CollectionUtil.isNotEmpty(nullList)) {
|
||||||
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||||
|
//审核通过数量、不通过数量、待审核数量
|
||||||
|
final int[] numArray= {0,0,0};
|
||||||
waresGroupVO.setTwItemList(nullList.stream().peek(item->{
|
waresGroupVO.setTwItemList(nullList.stream().peek(item->{
|
||||||
if(StringUtils.isEmpty(item.getWaresStatus())){
|
if(StringUtils.isEmpty(item.getWaresStatus())){
|
||||||
|
//待审核
|
||||||
|
numArray[2]++;
|
||||||
item.setSelected(false);
|
item.setSelected(false);
|
||||||
}else{
|
}else{
|
||||||
|
if("1".equals(item.getWaresStatus())){
|
||||||
|
//通过
|
||||||
|
numArray[0]++;
|
||||||
|
}else{
|
||||||
|
//不通过
|
||||||
|
numArray[1]++;
|
||||||
|
}
|
||||||
item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||||
}
|
}
|
||||||
}).collect(Collectors.toList()));
|
}).collect(Collectors.toList()));
|
||||||
waresGroupVO.setGroupName("未知分组");
|
waresGroupVO.setGroupName("未知分组");
|
||||||
waresGroupVO.setNums(nullList.size());
|
waresGroupVO.setNums(nullList.size());
|
||||||
|
waresGroupVO.setAllowNum(numArray[0]);
|
||||||
|
waresGroupVO.setNoNum(numArray[1]);
|
||||||
|
waresGroupVO.setWaitingNum(numArray[2]);
|
||||||
waresGroupList.add(waresGroupVO);
|
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));
|
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()){
|
for (String key:groupListMap.keySet()){
|
||||||
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||||
|
//审核通过数量、不通过数量、待审核数量
|
||||||
|
final int[] numArray= {0,0,0};
|
||||||
waresGroupVO.setTwItemList(groupListMap.get(key).stream().peek(item->{
|
waresGroupVO.setTwItemList(groupListMap.get(key).stream().peek(item->{
|
||||||
if(StringUtils.isEmpty(item.getWaresStatus())){
|
if(StringUtils.isEmpty(item.getWaresStatus())){
|
||||||
|
//待审核
|
||||||
|
numArray[2]++;
|
||||||
item.setSelected(false);
|
item.setSelected(false);
|
||||||
}else{
|
}else{
|
||||||
|
if("1".equals(item.getWaresStatus())){
|
||||||
|
//通过
|
||||||
|
numArray[0]++;
|
||||||
|
}else{
|
||||||
|
//不通过
|
||||||
|
numArray[1]++;
|
||||||
|
}
|
||||||
item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
item.setApprovalTime(item.getUpdateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||||
}
|
}
|
||||||
}).collect(Collectors.toList()));
|
}).collect(Collectors.toList()));
|
||||||
waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName());
|
waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName());
|
||||||
waresGroupVO.setGroupId(key);
|
waresGroupVO.setGroupId(key);
|
||||||
waresGroupVO.setNums(groupListMap.get(key).size());
|
waresGroupVO.setNums(groupListMap.get(key).size());
|
||||||
|
waresGroupVO.setAllowNum(numArray[0]);
|
||||||
|
waresGroupVO.setNoNum(numArray[1]);
|
||||||
|
waresGroupVO.setWaitingNum(numArray[2]);
|
||||||
waresGroupList.add(waresGroupVO);
|
waresGroupList.add(waresGroupVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.tickets.vo;
|
package cn.iocoder.yudao.module.tickets.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -16,13 +17,21 @@ public class AppWaresGroupVO {
|
|||||||
private String groupId;
|
private String groupId;
|
||||||
/** 分组名称(分类名称) */
|
/** 分组名称(分类名称) */
|
||||||
private String groupName;
|
private String groupName;
|
||||||
/** 数量--兼容待审核的配件数量 */
|
/** 配件总数量 */
|
||||||
private Integer nums;
|
private Integer nums;
|
||||||
/** 总价 */
|
/** 总价 */
|
||||||
private BigDecimal totalAmount;
|
private BigDecimal totalAmount;
|
||||||
/** 配件明细 */
|
/** 配件明细 */
|
||||||
private List<DlRepairTitemReqVO> wares;
|
private List<DlRepairTitemReqVO> wares;
|
||||||
|
|
||||||
/** 配件申请单配件明细 */
|
/** 配件申请单配件明细 */
|
||||||
private List<DlTwItemRespVO> twItemList;
|
private List<DlTwItemRespVO> twItemList;
|
||||||
|
/** 领料、退料单配件明细 */
|
||||||
|
private List<DlRepairSoiRespVO> soiRespVOList;
|
||||||
|
|
||||||
|
/** 审核通过数量-- */
|
||||||
|
private Integer allowNum;
|
||||||
|
/** 待审核数量-- */
|
||||||
|
private Integer waitingNum;
|
||||||
|
/** 审核不通过数量-- */
|
||||||
|
private Integer noNum;
|
||||||
}
|
}
|
||||||
|
@ -101,4 +101,33 @@
|
|||||||
AND so_status = #{status}
|
AND so_status = #{status}
|
||||||
AND deleted = 0
|
AND deleted = 0
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectByIdGroup" resultType="cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoiRespVO">
|
||||||
|
SELECT
|
||||||
|
drs.id,
|
||||||
|
drs.so_id,
|
||||||
|
drs.raw_id,
|
||||||
|
drs.soi_type,
|
||||||
|
drs.goods_id,
|
||||||
|
drs.goods_type,
|
||||||
|
drs.ware_id,
|
||||||
|
drs.goods_count,
|
||||||
|
drs.in_count,
|
||||||
|
drs.goods_price,
|
||||||
|
drs.remark,
|
||||||
|
drw.type AS type_id,
|
||||||
|
drw.name AS goods_name,
|
||||||
|
dbt.`name` AS type_name,
|
||||||
|
drw.price AS sale_price,
|
||||||
|
drw.stock AS stock,
|
||||||
|
sdd.label AS unit_text
|
||||||
|
FROM
|
||||||
|
dl_repair_soi drs
|
||||||
|
LEFT JOIN dl_repair_wares drw ON drs.goods_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
|
||||||
|
drs.deleted = '0'
|
||||||
|
AND drs.so_id=#{id}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -69,10 +69,7 @@
|
|||||||
dl_tw_item dti
|
dl_tw_item dti
|
||||||
LEFT JOIN dl_repair_wares drw ON dti.wares_id = drw.id
|
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 dl_base_type dbt ON drw.type = dbt.id
|
||||||
LEFT JOIN system_dict_data sdd ON drw.unit = sdd.
|
LEFT JOIN system_dict_data sdd ON drw.unit = sdd.`value` AND sdd.dict_type = 'repair_unit'
|
||||||
VALUE
|
|
||||||
|
|
||||||
AND sdd.dict_type = 'repair_unit'
|
|
||||||
WHERE
|
WHERE
|
||||||
dti.deleted = '0'
|
dti.deleted = '0'
|
||||||
<if test="map.twId != null and map.twId != ''">
|
<if test="map.twId != null and map.twId != ''">
|
||||||
|
Loading…
Reference in New Issue
Block a user