新购验收入库

This commit is contained in:
wcy 2024-08-21 15:34:38 +08:00
parent 8cb0ac9b09
commit 7588a16f16
6 changed files with 260 additions and 0 deletions

View File

@ -0,0 +1,68 @@
package com.bonus.purchase.controller;
import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.purchase.domain.PurchaseStorageDto;
import com.bonus.purchase.service.BpmPurchaseStorageService;
import com.bonus.purchase.vo.PurchaseVo;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 新购验收入库
* @author wcy
*/
@RestController
@RequestMapping("/purchase/store")
public class BpmPurchaseStorageController extends BaseController {
@Autowired
private BpmPurchaseStorageService purchaseStorageService;
/**
* 一级分页查询
*/
@GetMapping(value = "/list")
public TableDataInfo getList(PurchaseStorageDto purchaseStorageDto) {
startPage();
List<PurchaseVo> list = purchaseStorageService.selectAll(purchaseStorageDto);
return getDataTable(list);
}
/**
* 查看验收单详情
*
* @param
* @return
*/
@GetMapping("/details")
@RequiresPermissions("purchase:purchaseDto:query")
public TableDataInfo getDetails(PurchaseStorageDto purchaseStorageDto) {
startPage();
List<PurchaseVo> list = purchaseStorageService.getDetails(purchaseStorageDto);
return getDataTable(list);
}
/**
* 导出新购验收列表
*/
@ApiOperation(value = "导出新购验证列表")
@PostMapping("/export")
public void export(HttpServletResponse response, PurchaseStorageDto purchaseStorageDto)
{
List<PurchaseVo> list = purchaseStorageService.selectAll(purchaseStorageDto);
ExcelUtil<PurchaseVo> util = new ExcelUtil<>(PurchaseVo.class);
util.exportExcel(response, list, "新购验证列表");
}
}

View File

@ -0,0 +1,36 @@
package com.bonus.purchase.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author wcy
* @create 2024/8/20 17:50
*/
@Data
public class PurchaseStorageDto {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "类型id")
private Integer typeId;
@ApiModelProperty(value="供应商id")
private Integer supplierId;
@ApiModelProperty(value = "开始时间")
private String startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "关键字")
private String keyWord;
@ApiModelProperty(value = "状态")
private String status;
@ApiModelProperty(value = "出厂日期")
private String productDate;
}

View File

@ -0,0 +1,14 @@
package com.bonus.purchase.mapper;
import com.bonus.purchase.domain.PurchaseStorageDto;
import com.bonus.purchase.vo.PurchaseVo;
import java.util.List;
public interface BpmPurchaseStorageMapper {
List<PurchaseVo> selectAll(PurchaseStorageDto purchaseStorageDto);
List<PurchaseVo> getDetails(PurchaseStorageDto purchaseStorageDto);
}

View File

@ -0,0 +1,30 @@
package com.bonus.purchase.service;
import com.bonus.purchase.domain.PurchaseStorageDto;
import com.bonus.purchase.vo.PurchaseVo;
import java.util.List;
/**
* @Author wcy
* @create 2024/8/19 16:13
*/
public interface BpmPurchaseStorageService {
/**
* 查询所有
* @param
* @return
*/
List<PurchaseVo> selectAll(PurchaseStorageDto purchaseStorageDto);
/**
* 查询详情
* @param
* @return
*/
List<PurchaseVo> getDetails(PurchaseStorageDto purchaseStorageDto);
}

View File

@ -0,0 +1,27 @@
package com.bonus.purchase.service.impl;
import com.bonus.purchase.domain.PurchaseStorageDto;
import com.bonus.purchase.mapper.BpmPurchaseStorageMapper;
import com.bonus.purchase.service.BpmPurchaseStorageService;
import com.bonus.purchase.vo.PurchaseVo;
import javax.annotation.Resource;
import java.util.List;
public class BpmPurchaseStorageServiceImpl implements BpmPurchaseStorageService {
@Resource
private BpmPurchaseStorageMapper bpmPurchaseStorageMapper;
@Override
public List<PurchaseVo> selectAll(PurchaseStorageDto purchaseStorageDto) {
return bpmPurchaseStorageMapper.selectAll(purchaseStorageDto);
}
@Override
public List<PurchaseVo> getDetails(PurchaseStorageDto purchaseStorageDto) {
return bpmPurchaseStorageMapper.getDetails(purchaseStorageDto);
}
}

View File

@ -0,0 +1,85 @@
<?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.purchase.mapper.BpmPurchaseStorageMapper">
<select id="selectAll" resultType="com.bonus.purchase.vo.PurchaseVo">
SELECT
bt.id AS id,
bt.arrival_time AS arrivalTime,
bt.`code` AS purchaseCode,
GROUP_CONCAT( mt.`name` ) AS purchaseMaterial,
SUM( bp.purchase_num ) AS purchaseNum,
SUM( bp.purchase_price ) AS purchasePrice,
SUM( bp.notax_price ) AS notaxPrice,
bp.tax_rate AS taxRate,
bt.creator AS createBy,
bt.create_time AS createTime,
bt.`status` AS STATUS,
sda.dict_label AS statusName,
bt.remark AS remark
FROM
bpm_purchase_info bp
LEFT JOIN bpm_task bt ON bp.task_id = bt.id
LEFT JOIN ma_type mt ON bp.type_id = mt.id
LEFT JOIN sys_dict_data sda ON sda.dict_code = bt.`status`
WHERE
bp.is_acvtive = '1'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND bt.arrival_time BETWEEN #{startTime} AND #{endTime}
</if>
<if test="keyWord != null and keyWord != ''">
AND (
bt.`code` LIKE CONCAT('%',#{keyWord},'%')
OR mt1.`name` LIKE CONCAT('%',#{keyWord},'%')
OR bp.tax_rate = #{keyWord}
OR bt.creator LIKE CONCAT('%',#{keyWord},'%')
OR bt.remark LIKE CONCAT('%',#{keyWord},'%')
)
</if>
<if test="status != null and status != ''">
AND bt.`status` = #{status}
</if>
GROUP BY
bp.task_id
ORDER BY
bt.arrival_time DESC
</select>
<select id="getDetails" resultType="com.bonus.purchase.vo.PurchaseVo"
parameterType="com.bonus.purchase.domain.PurchaseStorageDto">
SELECT
bp.id AS id,
mt1.`name` AS materialName,
mt.`name` AS specificationCode,
sda.dict_label AS unitName,
bp.purchase_price AS purchasePrice,
bp.notax_price AS notaxPrice,
bp.purchase_num AS purchaseNum,
bs.`name` AS supplierName,
bp.product_date AS productDate,
bp.`status` AS STATUS,
sda1.dict_label AS statusName
FROM
bpm_purchase_info bp
LEFT JOIN bpm_task bt ON bp.task_id = bt.id
LEFT JOIN ma_type mt ON bp.type_id = mt.id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.id
LEFT JOIN sys_dict_data sda ON mt.unit_id = sda.dict_code
LEFT JOIN bm_supplier bs ON bp.supplier_id = bs.id
LEFT JOIN sys_dict_data sda1 ON sda1.dict_code = bp.`status`
WHERE
bp.is_acvtive = '1'
<if test="typeId != null and typeId != ''">
AND (
mt1.id = #{typeId}
OR mt.id = #{typeId}
)
</if>
<if test="supplierId != null and supplierId != ''">
AND bs.id = #{supplierId}
</if>
<if test="productDate != null and productDate != ''">
AND bp.product_date = #{productDate}
</if>
</select>
</mapper>