添加耗材单位
This commit is contained in:
@@ -87,6 +87,17 @@ public class TbConsInfoFlow implements Serializable {
|
|||||||
@ApiModelProperty(value = "店铺id")
|
@ApiModelProperty(value = "店铺id")
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Column(name = "`order_id`")
|
||||||
|
@ApiModelProperty(value = "订单id")
|
||||||
|
private Integer orderId;
|
||||||
|
|
||||||
|
|
||||||
|
@Column(name = "`order_no`")
|
||||||
|
@ApiModelProperty(value = "订单编号")
|
||||||
|
private String orderNo;
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String productName;
|
private String productName;
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2020 Zheng Jie
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package cn.ysk.cashier.cons.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
@Entity
|
||||||
|
@Data
|
||||||
|
@Table(name="view_con_info_flow")
|
||||||
|
public class ViewConInfoFlow implements Serializable {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "`cons_id`")
|
||||||
|
@ApiModelProperty(value = "耗材id")
|
||||||
|
private Integer consId;
|
||||||
|
|
||||||
|
@Column(name = "`con_name`")
|
||||||
|
@ApiModelProperty(value = "耗材名称")
|
||||||
|
private String conName;
|
||||||
|
|
||||||
|
@Column(name = "`con_return`",nullable = false)
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "con_return")
|
||||||
|
private BigDecimal conReturn;
|
||||||
|
|
||||||
|
@Column(name = "`con_in`",nullable = false)
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "con_in")
|
||||||
|
private BigDecimal conIn;
|
||||||
|
|
||||||
|
@Column(name = "`con_consume`",nullable = false)
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "con_consume")
|
||||||
|
private BigDecimal conConsume;
|
||||||
|
|
||||||
|
@Column(name = "`con_out`",nullable = false)
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "con_out")
|
||||||
|
private BigDecimal conOut;
|
||||||
|
|
||||||
|
@Column(name = "`balance`",nullable = false)
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "balance")
|
||||||
|
private BigDecimal balance;
|
||||||
|
|
||||||
|
public void copy(ViewConInfoFlow source){
|
||||||
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package cn.ysk.cashier.cons.repository;
|
package cn.ysk.cashier.cons.repository;
|
||||||
|
|
||||||
import cn.ysk.cashier.cons.domain.TbConsInfoFlow;
|
import cn.ysk.cashier.cons.domain.TbConsInfoFlow;
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
@@ -22,4 +21,5 @@ public interface TbConsInfoFlowRepository extends JpaRepository<TbConsInfoFlow,
|
|||||||
"\tLEFT JOIN tb_product p ON s.product_id = p.id\n" +
|
"\tLEFT JOIN tb_product p ON s.product_id = p.id\n" +
|
||||||
"\twhere i.pro_sku_id=?1 limit 1",nativeQuery = true)
|
"\twhere i.pro_sku_id=?1 limit 1",nativeQuery = true)
|
||||||
String selectByPskId(Integer skuId);
|
String selectByPskId(Integer skuId);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package cn.ysk.cashier.cons.repository;
|
||||||
|
|
||||||
|
import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @website https://eladmin.vip
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
public interface ViewConInfoFlowRepository extends JpaRepository<ViewConInfoFlow, Integer>, JpaSpecificationExecutor<ViewConInfoFlow> {
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ import io.swagger.annotations.*;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,14 +48,14 @@ public class TbConsInfoController {
|
|||||||
@PostMapping
|
@PostMapping
|
||||||
@Log("新增耗材信息")
|
@Log("新增耗材信息")
|
||||||
@ApiOperation("新增耗材信息")
|
@ApiOperation("新增耗材信息")
|
||||||
public ResponseEntity<Object> createTbConsInfo(@Validated @RequestBody TbConsInfo resources) throws Exception {
|
public ResponseEntity<Object> createTbConsInfo(@Validated @RequestBody List<TbConsInfo> resources) throws Exception {
|
||||||
return new ResponseEntity<>(tbConsInfoService.create(resources),HttpStatus.CREATED);
|
return new ResponseEntity<>(tbConsInfoService.create(resources),HttpStatus.CREATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping
|
@PutMapping
|
||||||
@Log("修改耗材信息")
|
@Log("修改耗材信息")
|
||||||
@ApiOperation("修改耗材信息")
|
@ApiOperation("修改耗材信息")
|
||||||
public ResponseEntity<Object> updateTbConsInfo(@Validated @RequestBody TbConsInfo resources) throws Exception {
|
public ResponseEntity<Object> updateTbConsInfo(@Validated @RequestBody List<TbConsInfo> resources) throws Exception {
|
||||||
tbConsInfoService.update(resources);
|
tbConsInfoService.update(resources);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package cn.ysk.cashier.cons.rest;
|
||||||
|
|
||||||
|
import cn.ysk.cashier.annotation.Log;
|
||||||
|
import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
|
||||||
|
import cn.ysk.cashier.cons.service.ViewConInfoFlowService;
|
||||||
|
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "获取耗材流水信息管理")
|
||||||
|
@RequestMapping("/api/viewConInfoFlow")
|
||||||
|
public class ViewConInfoFlowController {
|
||||||
|
|
||||||
|
private final ViewConInfoFlowService viewConInfoFlowService;
|
||||||
|
|
||||||
|
@Log("导出数据")
|
||||||
|
@ApiOperation("导出数据")
|
||||||
|
@GetMapping(value = "/download")
|
||||||
|
public void exportViewConInfoFlow(HttpServletResponse response, ViewConInfoFlowQueryCriteria criteria) throws IOException {
|
||||||
|
viewConInfoFlowService.download(viewConInfoFlowService.queryAll(criteria), response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询获取耗材流水信息")
|
||||||
|
@ApiOperation("查询获取耗材流水信息")
|
||||||
|
public ResponseEntity<Object> queryViewConInfoFlow(ViewConInfoFlowQueryCriteria criteria, Pageable pageable){
|
||||||
|
return new ResponseEntity<>(viewConInfoFlowService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("新增获取耗材流水信息")
|
||||||
|
@ApiOperation("新增获取耗材流水信息")
|
||||||
|
public ResponseEntity<Object> createViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){
|
||||||
|
return new ResponseEntity<>(viewConInfoFlowService.create(resources),HttpStatus.CREATED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
@Log("修改获取耗材流水信息")
|
||||||
|
@ApiOperation("修改获取耗材流水信息")
|
||||||
|
public ResponseEntity<Object> updateViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){
|
||||||
|
viewConInfoFlowService.update(resources);
|
||||||
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping
|
||||||
|
@Log("删除获取耗材流水信息")
|
||||||
|
@ApiOperation("删除获取耗材流水信息")
|
||||||
|
public ResponseEntity<Object> deleteViewConInfoFlow(@RequestBody Integer[] ids) {
|
||||||
|
viewConInfoFlowService.deleteAll(ids);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -47,13 +47,13 @@ public interface TbConsInfoService {
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
* @return TbConsInfoDto
|
* @return TbConsInfoDto
|
||||||
*/
|
*/
|
||||||
TbConsInfoDto create(TbConsInfo resources) throws Exception;
|
TbConsInfoDto create(List<TbConsInfo> resources) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑
|
* 编辑
|
||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
void update(TbConsInfo resources) throws Exception;
|
void update(List<TbConsInfo> resources) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多选删除
|
* 多选删除
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
package cn.ysk.cashier.cons.service;
|
||||||
|
|
||||||
|
import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
|
||||||
|
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto;
|
||||||
|
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.List;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
public interface ViewConInfoFlowService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
* @param criteria 条件
|
||||||
|
* @param pageable 分页参数
|
||||||
|
* @return Map<String,Object>
|
||||||
|
*/
|
||||||
|
Map<String,Object> queryAll(ViewConInfoFlowQueryCriteria criteria, Pageable pageable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有数据不分页
|
||||||
|
* @param criteria 条件参数
|
||||||
|
* @return List<ViewConInfoFlowDto>
|
||||||
|
*/
|
||||||
|
List<ViewConInfoFlowDto> queryAll(ViewConInfoFlowQueryCriteria criteria);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ID查询
|
||||||
|
* @param consId ID
|
||||||
|
* @return ViewConInfoFlowDto
|
||||||
|
*/
|
||||||
|
ViewConInfoFlowDto findById(Integer consId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建
|
||||||
|
* @param resources /
|
||||||
|
* @return ViewConInfoFlowDto
|
||||||
|
*/
|
||||||
|
ViewConInfoFlowDto create(ViewConInfoFlow resources);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
* @param resources /
|
||||||
|
*/
|
||||||
|
void update(ViewConInfoFlow resources);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 多选删除
|
||||||
|
* @param ids /
|
||||||
|
*/
|
||||||
|
void deleteAll(Integer[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出数据
|
||||||
|
* @param all 待导出的数据
|
||||||
|
* @param response /
|
||||||
|
* @throws IOException /
|
||||||
|
*/
|
||||||
|
void download(List<ViewConInfoFlowDto> all, HttpServletResponse response) throws IOException;
|
||||||
|
}
|
||||||
@@ -15,7 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package cn.ysk.cashier.cons.service.dto;
|
package cn.ysk.cashier.cons.service.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -60,4 +63,9 @@ public class TbConsInfoFlowDto implements Serializable {
|
|||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
|
|
||||||
private String productName;
|
private String productName;
|
||||||
|
|
||||||
|
|
||||||
|
private Integer orderId;
|
||||||
|
|
||||||
|
private String orderNo;
|
||||||
}
|
}
|
||||||
@@ -22,4 +22,8 @@ public class TbConsInfoFlowQueryCriteria{
|
|||||||
/** 精确 */
|
/** 精确 */
|
||||||
@Query
|
@Query
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
|
|
||||||
|
|
||||||
|
@Query
|
||||||
|
private String orderNo;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2020 Zheng Jie
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package cn.ysk.cashier.cons.service.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class ViewConInfoFlowDto implements Serializable {
|
||||||
|
|
||||||
|
/** 耗材id */
|
||||||
|
private Integer consId;
|
||||||
|
|
||||||
|
/** 耗材名称 */
|
||||||
|
private String conName;
|
||||||
|
|
||||||
|
private BigDecimal conReturn;
|
||||||
|
|
||||||
|
private BigDecimal conIn;
|
||||||
|
|
||||||
|
private BigDecimal conConsume;
|
||||||
|
|
||||||
|
private BigDecimal conOut;
|
||||||
|
|
||||||
|
private BigDecimal balance;
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package cn.ysk.cashier.cons.service.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.util.List;
|
||||||
|
import cn.ysk.cashier.annotation.Query;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class ViewConInfoFlowQueryCriteria{
|
||||||
|
|
||||||
|
/** 模糊 */
|
||||||
|
@Query(type = Query.Type.INNER_LIKE)
|
||||||
|
private String conName;
|
||||||
|
}
|
||||||
@@ -99,14 +99,14 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public TbConsInfoDto create(TbConsInfo resources) throws Exception {
|
public TbConsInfoDto create(List<TbConsInfo> resources) throws Exception {
|
||||||
|
|
||||||
|
|
||||||
TbConsType tbConsType = tbConsTypeRepository.getById(resources.getConTypeId());
|
for (TbConsInfo resource : resources) {
|
||||||
if (Objects.isNull(tbConsType)) {
|
TbConsType tbConsType = tbConsTypeRepository.getById(resource.getConTypeId());
|
||||||
throw new Exception("不存在的耗材类型");
|
if (Objects.isNull(tbConsType)) {
|
||||||
}
|
throw new Exception("不存在的耗材类型");
|
||||||
|
}
|
||||||
|
|
||||||
// int count = tbConsInfoRepository.countByConCode(resources.getConCode());
|
// int count = tbConsInfoRepository.countByConCode(resources.getConCode());
|
||||||
// if (count > 0) {
|
// if (count > 0) {
|
||||||
@@ -114,33 +114,37 @@ public class TbConsInfoServiceImpl implements TbConsInfoService {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
resources.setConCode(StringCodeUtil.getRandom(8,LETTER_CAPITAL_NUMBER));
|
resource.setConCode(StringCodeUtil.getRandom(8,LETTER_CAPITAL_NUMBER));
|
||||||
resources.setConTypeName(tbConsType.getConTypeName());
|
resource.setConTypeName(tbConsType.getConTypeName());
|
||||||
resources.setLasterInStock(BigDecimal.ZERO);
|
resource.setLasterInStock(BigDecimal.ZERO);
|
||||||
resources.setStockNumber(BigDecimal.ZERO);
|
resource.setStockNumber(BigDecimal.ZERO);
|
||||||
resources.setStatus("1");
|
resource.setStatus("1");
|
||||||
resources.setStockConsume(BigDecimal.ZERO);
|
resource.setStockConsume(BigDecimal.ZERO);
|
||||||
resources.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
resource.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
||||||
return tbConsInfoMapper.toDto(tbConsInfoRepository.save(resources));
|
tbConsInfoRepository.save(resource);
|
||||||
|
}
|
||||||
|
return tbConsInfoMapper.toDto(new TbConsInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void update(TbConsInfo resources) throws Exception {
|
public void update(List<TbConsInfo> resources) throws Exception {
|
||||||
TbConsInfo tbConsInfo = tbConsInfoRepository.findById(resources.getId()).orElseGet(TbConsInfo::new);
|
for (TbConsInfo resource : resources) {
|
||||||
|
TbConsInfo tbConsInfo = tbConsInfoRepository.findById(resource.getId()).orElseGet(TbConsInfo::new);
|
||||||
|
|
||||||
if (Objects.isNull(tbConsInfo)) {
|
if (Objects.isNull(tbConsInfo)) {
|
||||||
throw new Exception("耗材信息不存在");
|
throw new Exception("耗材信息不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
tbConsInfo.setConName(resource.getConName());
|
||||||
|
tbConsInfo.setPrice(resource.getPrice());
|
||||||
|
tbConsInfo.setConUnit(resource.getConUnit());
|
||||||
|
tbConsInfo.setConWarning(resource.getConWarning());
|
||||||
|
tbConsInfo.setStatus(resource.getStatus());
|
||||||
|
tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis()));
|
||||||
|
tbConsInfoRepository.save(tbConsInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
tbConsInfo.setConName(resources.getConName());
|
|
||||||
tbConsInfo.setPrice(resources.getPrice());
|
|
||||||
tbConsInfo.setConUnit(resources.getConUnit());
|
|
||||||
tbConsInfo.setConWarning(resources.getConWarning());
|
|
||||||
tbConsInfo.setStatus(resources.getStatus());
|
|
||||||
tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis()));
|
|
||||||
tbConsInfoRepository.save(tbConsInfo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,94 @@
|
|||||||
|
package cn.ysk.cashier.cons.service.impl;
|
||||||
|
|
||||||
|
import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
|
||||||
|
import cn.ysk.cashier.utils.FileUtil;
|
||||||
|
import cn.ysk.cashier.utils.PageUtil;
|
||||||
|
import cn.ysk.cashier.utils.QueryHelp;
|
||||||
|
import cn.ysk.cashier.utils.ValidationUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import cn.ysk.cashier.cons.repository.ViewConInfoFlowRepository;
|
||||||
|
import cn.ysk.cashier.cons.service.ViewConInfoFlowService;
|
||||||
|
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto;
|
||||||
|
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria;
|
||||||
|
import cn.ysk.cashier.cons.service.mapstruct.ViewConInfoFlowMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @website https://eladmin.vip
|
||||||
|
* @description 服务实现
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ViewConInfoFlowServiceImpl implements ViewConInfoFlowService {
|
||||||
|
|
||||||
|
private final ViewConInfoFlowRepository viewConInfoFlowRepository;
|
||||||
|
private final ViewConInfoFlowMapper viewConInfoFlowMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String,Object> queryAll(ViewConInfoFlowQueryCriteria criteria, Pageable pageable){
|
||||||
|
Page<ViewConInfoFlow> page = viewConInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||||
|
return PageUtil.toPage(page.map(viewConInfoFlowMapper::toDto));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ViewConInfoFlowDto> queryAll(ViewConInfoFlowQueryCriteria criteria){
|
||||||
|
return viewConInfoFlowMapper.toDto(viewConInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public ViewConInfoFlowDto findById(Integer consId) {
|
||||||
|
ViewConInfoFlow viewConInfoFlow = viewConInfoFlowRepository.findById(consId).orElseGet(ViewConInfoFlow::new);
|
||||||
|
ValidationUtil.isNull(viewConInfoFlow.getConsId(),"ViewConInfoFlow","consId",consId);
|
||||||
|
return viewConInfoFlowMapper.toDto(viewConInfoFlow);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public ViewConInfoFlowDto create(ViewConInfoFlow resources) {
|
||||||
|
return viewConInfoFlowMapper.toDto(viewConInfoFlowRepository.save(resources));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void update(ViewConInfoFlow resources) {
|
||||||
|
ViewConInfoFlow viewConInfoFlow = viewConInfoFlowRepository.findById(resources.getConsId()).orElseGet(ViewConInfoFlow::new);
|
||||||
|
ValidationUtil.isNull( viewConInfoFlow.getConsId(),"ViewConInfoFlow","id",resources.getConsId());
|
||||||
|
viewConInfoFlow.copy(resources);
|
||||||
|
viewConInfoFlowRepository.save(viewConInfoFlow);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteAll(Integer[] ids) {
|
||||||
|
for (Integer consId : ids) {
|
||||||
|
viewConInfoFlowRepository.deleteById(consId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void download(List<ViewConInfoFlowDto> all, HttpServletResponse response) throws IOException {
|
||||||
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
|
for (ViewConInfoFlowDto viewConInfoFlow : all) {
|
||||||
|
Map<String,Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("耗材名称", viewConInfoFlow.getConName());
|
||||||
|
map.put(" conreturn", viewConInfoFlow.getConReturn());
|
||||||
|
map.put(" conin", viewConInfoFlow.getConIn());
|
||||||
|
map.put(" conconsume", viewConInfoFlow.getConConsume());
|
||||||
|
map.put(" conout", viewConInfoFlow.getConOut());
|
||||||
|
map.put(" balance", viewConInfoFlow.getBalance());
|
||||||
|
list.add(map);
|
||||||
|
}
|
||||||
|
FileUtil.downloadExcel(list, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package cn.ysk.cashier.cons.service.mapstruct;
|
||||||
|
|
||||||
|
import cn.ysk.cashier.base.BaseMapper;
|
||||||
|
import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
|
||||||
|
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.ReportingPolicy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
* @date 2024-07-17
|
||||||
|
**/
|
||||||
|
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||||
|
public interface ViewConInfoFlowMapper extends BaseMapper<ViewConInfoFlowDto, ViewConInfoFlow> {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user