新购验收
This commit is contained in:
parent
7405c26534
commit
d59a67e5f3
|
|
@ -1,8 +1,66 @@
|
|||
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.PurchaseDto;
|
||||
import com.bonus.purchase.service.PurchaseAcceptService;
|
||||
import com.bonus.purchase.vo.PurchaseVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 新购到货验收控制层
|
||||
* @Author ma_sh
|
||||
* @create 2024/8/19 16:13
|
||||
*/
|
||||
public class PurchaseAcceptController {
|
||||
@RestController
|
||||
@RequestMapping("/purchase/arrival")
|
||||
public class PurchaseAcceptController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private PurchaseAcceptService purchaseAcceptService;
|
||||
|
||||
/**
|
||||
* 分页查询数据
|
||||
*/
|
||||
@GetMapping(value = "/list")
|
||||
@RequiresPermissions("purchase:purchaseDto:query")
|
||||
public TableDataInfo getList(PurchaseDto purchaseDto) {
|
||||
startPage();
|
||||
List<PurchaseVo> list = purchaseAcceptService.selectAll(purchaseDto);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看验收单详情
|
||||
*
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/details")
|
||||
@RequiresPermissions("purchase:purchaseDto:query")
|
||||
public TableDataInfo getDetails(PurchaseDto purchaseDto) {
|
||||
startPage();
|
||||
List<PurchaseVo> list = purchaseAcceptService.getDetails(purchaseDto);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出新购验证列表
|
||||
*/
|
||||
@ApiOperation(value = "导出新购验证列表")
|
||||
@RequiresPermissions("purchase:purchaseDto:export")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, PurchaseDto purchaseDto)
|
||||
{
|
||||
List<PurchaseVo> list = purchaseAcceptService.selectAll(purchaseDto);
|
||||
ExcelUtil<PurchaseVo> util = new ExcelUtil<>(PurchaseVo.class);
|
||||
util.exportExcel(response, list, "新购验证列表");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package com.bonus.purchase.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/8/19 17:50
|
||||
*/
|
||||
@Data
|
||||
public class PurchaseDto {
|
||||
|
||||
@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;
|
||||
}
|
||||
|
|
@ -1,8 +1,27 @@
|
|||
package com.bonus.purchase.mapper;
|
||||
|
||||
import com.bonus.purchase.domain.PurchaseDto;
|
||||
import com.bonus.purchase.vo.PurchaseVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/8/19 16:13
|
||||
*/
|
||||
public interface PurchaseAcceptMapper {
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
List<PurchaseVo> selectAll(PurchaseDto purchaseDto);
|
||||
|
||||
/**
|
||||
* 查询详情
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
List<PurchaseVo> getDetails(PurchaseDto purchaseDto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,27 @@
|
|||
package com.bonus.purchase.service;
|
||||
|
||||
import com.bonus.purchase.domain.PurchaseDto;
|
||||
import com.bonus.purchase.vo.PurchaseVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/8/19 16:13
|
||||
*/
|
||||
public interface PurchaseAcceptService {
|
||||
|
||||
/**
|
||||
* 查询所有
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
List<PurchaseVo> selectAll(PurchaseDto purchaseDto);
|
||||
|
||||
/**
|
||||
* 查询详情
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
List<PurchaseVo> getDetails(PurchaseDto purchaseDto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,41 @@
|
|||
package com.bonus.purchase.service.impl;
|
||||
|
||||
import com.bonus.purchase.domain.PurchaseDto;
|
||||
import com.bonus.purchase.mapper.PurchaseAcceptMapper;
|
||||
import com.bonus.purchase.service.PurchaseAcceptService;
|
||||
import com.bonus.purchase.vo.PurchaseVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @create 2024/8/19 16:48
|
||||
*/
|
||||
@Service
|
||||
public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
|
||||
|
||||
@Resource
|
||||
private PurchaseAcceptMapper mapper;
|
||||
|
||||
/**
|
||||
* 查询采购单
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<PurchaseVo> selectAll(PurchaseDto purchaseDto) {
|
||||
return mapper.selectAll(purchaseDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询采购单详情
|
||||
* @param purchaseDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<PurchaseVo> getDetails(PurchaseDto purchaseDto) {
|
||||
return mapper.getDetails(purchaseDto);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
package com.bonus.purchase.vo;
|
||||
|
||||
import com.bonus.common.core.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 新购验收一级列表返回vo
|
||||
* @Author ma_sh
|
||||
* @create 2024/8/19 17:36
|
||||
*/
|
||||
@Data
|
||||
public class PurchaseVo {
|
||||
|
||||
@ApiModelProperty(value="任务id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("物资名称")
|
||||
private String materialName;
|
||||
|
||||
@ApiModelProperty("规格型号")
|
||||
private String specificationCode;
|
||||
|
||||
@ApiModelProperty(value="单位")
|
||||
private String unitName;
|
||||
|
||||
@ApiModelProperty(value="供应商名称")
|
||||
private String supplierName;
|
||||
|
||||
@ApiModelProperty(value="出厂日期")
|
||||
private String productDate;
|
||||
|
||||
@ApiModelProperty(value="到货时间")
|
||||
@Excel(name = "到货时间")
|
||||
private String arrivalTime;
|
||||
|
||||
@ApiModelProperty(value="采购单号")
|
||||
@Excel(name = "采购单号")
|
||||
private String purchaseCode;
|
||||
|
||||
@ApiModelProperty(value="采购物资")
|
||||
@Excel(name = "采购物资")
|
||||
private String purchaseMaterial;
|
||||
|
||||
@ApiModelProperty(value="采购数量")
|
||||
@Excel(name = "采购数量")
|
||||
private Integer purchaseNum;
|
||||
|
||||
@ApiModelProperty(value="采购价格(元含税)")
|
||||
@Excel(name = "采购价格(元含税)")
|
||||
private Integer purchasePrice;
|
||||
|
||||
@ApiModelProperty(value="采购价格(元不含税)")
|
||||
@Excel(name = "采购价格(元不含税)")
|
||||
private Integer notaxPrice;
|
||||
|
||||
@ApiModelProperty(value="税率")
|
||||
@Excel(name = "税率")
|
||||
private Integer taxRate;
|
||||
|
||||
@ApiModelProperty(value="操作人")
|
||||
@Excel(name = "操作人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value="操作时间")
|
||||
@Excel(name = "操作时间")
|
||||
private String createTime;
|
||||
|
||||
@ApiModelProperty(value="状态")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value="状态名称")
|
||||
@Excel(name = "状态")
|
||||
private String statusName;
|
||||
|
||||
@ApiModelProperty(value="备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -1,86 +1,74 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<configuration>
|
||||
<springProperty name="logFile" source="log.file"/>
|
||||
<springProperty name="rootlevel" source="log.level.root"/>
|
||||
<springProperty name="mylevel" source="log.level.my"/>
|
||||
<springProperty name="maxFileSize" source="log.maxsize"/>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="logs/bonus-purchase" />
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d [%thread] %-5level %logger{50} -[%file:%line]- %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="adminLog"
|
||||
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${logFile}</file>
|
||||
<encoder>
|
||||
<pattern>%d [%thread] %-5level -[%file:%line]- %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${logFile}.%d{yyyy-MM-dd}.%i</fileNamePattern>
|
||||
<maxFileSize>30MB</maxFileSize>
|
||||
<!-- 每产生一个日志文件,该日志文件的保存期限为15天 -->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!-- 系统日志输出 -->
|
||||
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="errorLog"
|
||||
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${logFile}.error</file>
|
||||
<encoder>
|
||||
<pattern>%d [%thread] %-5level %logger{36} -[%file:%line]- %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${logFile}.error.%d{yyyy-MM-dd}.%i</fileNamePattern>
|
||||
<maxFileSize>30MB</maxFileSize>
|
||||
<!-- 每产生一个日志文件,该日志文件的保存期限为15天 -->
|
||||
<maxHistory>15</maxHistory>
|
||||
</rollingPolicy>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>error</level>
|
||||
<!-- 过滤的级别 -->
|
||||
<level>INFO</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="sqlLog"
|
||||
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${logFile}.sql</file>
|
||||
<encoder>
|
||||
<pattern>%d [%thread] %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${logFile}.sql.%d{yyyy-MM-dd}.%i</fileNamePattern>
|
||||
<maxFileSize>30MB</maxFileSize>
|
||||
<!-- 每产生一个日志文件,该日志文件的保存期限为15天 -->
|
||||
<maxHistory>15</maxHistory>
|
||||
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>ERROR</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<logger name="adminLogger" level="${mylevel}" additivity="true">
|
||||
<appender-ref ref="adminLog"/>
|
||||
</logger>
|
||||
<!-- 系统模块日志级别控制 -->
|
||||
<logger name="com.bonus" level="info" />
|
||||
<!-- Spring日志级别控制 -->
|
||||
<logger name="org.springframework" level="warn" />
|
||||
|
||||
<logger name="com.bonus.system" level="info" additivity="true">
|
||||
<appender-ref ref="sqlLog"/>
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework.scheduling.quartz" level="error" additivity="true">
|
||||
<appender-ref ref="adminLog"/>
|
||||
</logger>
|
||||
|
||||
<root level="${rootlevel}">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="errorLog"/>
|
||||
<root level="info">
|
||||
<appender-ref ref="console" />
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
<!--系统操作日志-->
|
||||
<root level="info">
|
||||
<appender-ref ref="file_info" />
|
||||
<appender-ref ref="file_error" />
|
||||
</root>
|
||||
</configuration>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<?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.PurchaseAcceptMapper">
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -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.PurchaseAcceptMapper">
|
||||
|
||||
<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">
|
||||
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>
|
||||
Loading…
Reference in New Issue