From e04281d8b93d0cd249751d06ba0f20c91d3f77fb Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 16 Oct 2024 17:54:16 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=80=97=E6=9D=90=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/cons/domain/TbConsInfo.java | 3 + .../cons/repository/TbConsInfoRepository.java | 14 ++ .../cons/rest/TbConsInfoController.java | 7 + .../cons/rest/ViewConInfoFlowController.java | 126 +++++++++--------- .../cons/service/TbConsInfoService.java | 2 + .../cons/service/dto/TbConsInfoDto.java | 2 + .../service/dto/TbConsInfoQueryCriteria.java | 10 ++ .../service/impl/TbConsInfoServiceImpl.java | 82 +++++++----- 8 files changed, 148 insertions(+), 98 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java index 1363f6a1..cd0affbd 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java @@ -107,6 +107,9 @@ public class TbConsInfo implements Serializable { @ApiModelProperty(value = "是否检测库存") private String isCheck; + @Transient + private String product; + public void copy(TbConsInfo source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java index 09eff539..c58ea621 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java @@ -1,8 +1,12 @@ package cn.ysk.cashier.cons.repository; import cn.ysk.cashier.cons.domain.TbConsInfo; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; import java.util.List; @@ -19,4 +23,14 @@ public interface TbConsInfoRepository extends JpaRepository List findByConTypeId(Integer typeId); TbConsInfo findByConCode(String conCode); + + + @Query(value = + "SELECT CONCAT(pro.id, '_', pro.NAME) AS product" + + " FROM" + + " tb_prosku_con conPro" + + " LEFT JOIN tb_product pro ON conPro.product_id = pro.id AND pro.shop_id = :shopId AND conPro.shop_id = :shopId" + + " where conPro.con_info_id = :conInfoId " + + " group by conPro.product_id ",nativeQuery = true) + List queryAllAndPro(@Param("shopId") Integer shopId,@Param("conInfoId")Integer conInfoId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java index e9928425..d6218693 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java @@ -47,6 +47,13 @@ public class TbConsInfoController { return new ResponseEntity<>(tbConsInfoService.queryAll(criteria,pageable),HttpStatus.OK); } + + @PostMapping("/allAndPro") + @ApiOperation("耗材列表(携带商品信息)") + public ResponseEntity queryAllAndPro(TbConsInfoQueryCriteria criteria){ + return new ResponseEntity<>(tbConsInfoService.queryAllAndPro(criteria),HttpStatus.OK); + } + @PostMapping @Log("新增耗材信息") @ApiOperation("新增耗材信息") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java index ec79da5d..25094747 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java @@ -1,63 +1,63 @@ -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 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); - } - - @PostMapping("get") - @ApiOperation("查询获取耗材流水信息") - public ResponseEntity queryViewConInfoFlow(@RequestBody ViewConInfoFlowQueryCriteria criteria){ - return new ResponseEntity<>(viewConInfoFlowService.queryAllPage(criteria),HttpStatus.OK); - } - - @PostMapping - @Log("新增获取耗材流水信息") - @ApiOperation("新增获取耗材流水信息") - public ResponseEntity createViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){ - return new ResponseEntity<>(viewConInfoFlowService.create(resources),HttpStatus.CREATED); - } - - @PutMapping - @Log("修改获取耗材流水信息") - @ApiOperation("修改获取耗材流水信息") - public ResponseEntity updateViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){ - viewConInfoFlowService.update(resources); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @DeleteMapping - @Log("删除获取耗材流水信息") - @ApiOperation("删除获取耗材流水信息") - public ResponseEntity deleteViewConInfoFlow(@RequestBody Integer[] ids) { - viewConInfoFlowService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } -} \ No newline at end of file +//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 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); +// } +// +// @PostMapping("get") +// @ApiOperation("查询获取耗材流水信息") +// public ResponseEntity queryViewConInfoFlow(@RequestBody ViewConInfoFlowQueryCriteria criteria){ +// return new ResponseEntity<>(viewConInfoFlowService.queryAllPage(criteria),HttpStatus.OK); +// } +// +// @PostMapping +// @Log("新增获取耗材流水信息") +// @ApiOperation("新增获取耗材流水信息") +// public ResponseEntity createViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){ +// return new ResponseEntity<>(viewConInfoFlowService.create(resources),HttpStatus.CREATED); +// } +// +// @PutMapping +// @Log("修改获取耗材流水信息") +// @ApiOperation("修改获取耗材流水信息") +// public ResponseEntity updateViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){ +// viewConInfoFlowService.update(resources); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +// +// @DeleteMapping +// @Log("删除获取耗材流水信息") +// @ApiOperation("删除获取耗材流水信息") +// public ResponseEntity deleteViewConInfoFlow(@RequestBody Integer[] ids) { +// viewConInfoFlowService.deleteAll(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +//} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java index 144bd73f..5504fa0d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java @@ -28,6 +28,8 @@ public interface TbConsInfoService { */ Map queryAll(TbConsInfoQueryCriteria criteria, Pageable pageable); + Map queryAllAndPro(TbConsInfoQueryCriteria criteria); + /** * 查询所有数据不分页 * @param criteria 条件参数 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java index bc505d8b..3742409b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java @@ -80,4 +80,6 @@ public class TbConsInfoDto implements Serializable { private String isCheck; + + private String product; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoQueryCriteria.java index 3be0dd7e..810cf447 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoQueryCriteria.java @@ -1,6 +1,8 @@ package cn.ysk.cashier.cons.service.dto; import lombok.Data; + +import java.sql.Timestamp; import java.util.List; import cn.ysk.cashier.annotation.Query; @@ -33,4 +35,12 @@ public class TbConsInfoQueryCriteria{ @Query private String status; + + @Query(type = Query.Type.IN) + private List createTimes; + + + private Integer page=0; + private Integer size=10; + private String sort; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index 99303f2c..a581624a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -1,5 +1,19 @@ package cn.ysk.cashier.cons.service.impl; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import javax.persistence.criteria.Subquery; +import java.util.ArrayList; +import java.util.List; + +import cn.ysk.cashier.pojo.product.TbProduct; +import org.springframework.data.domain.*; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.data.jpa.repository.JpaRepository; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.cons.domain.*; import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository; @@ -25,16 +39,20 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; +import javax.persistence.criteria.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; @@ -72,10 +90,29 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { } @Override - public List queryAll(TbConsInfoQueryCriteria criteria) { + public Map queryAllAndPro(TbConsInfoQueryCriteria criteria) { + Sort sort = Sort.by(Sort.Direction.DESC, "consId"); + if(StringUtils.isNotBlank(criteria.getSort())){ + String[] sortParams = criteria.getSort().split(","); + String sortField = sortParams[0]; + Sort.Direction sortDirection = Sort.Direction.fromString(sortParams[1]); + sort = Sort.by(sortDirection, sortField); + } + Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort); + Page page = tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); + Page result = page.map(tbConsInfoMapper::toDto); + result.getContent().forEach(it -> { + List list = tbConsInfoRepository.queryAllAndPro(criteria.getShopId(), it.getId()); + it.setProduct(String.join(",", list)); + }); + return PageUtil.toPage(result); + } + + @Override + public List queryAll(TbConsInfoQueryCriteria criteria) { List list = tbConsInfoMapper.toDto(tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); - if (Objects.nonNull(list) && !list.isEmpty()) { + if (!CollectionUtils.isEmpty(list)) { list.parallelStream().forEach(it -> it.setContypeCode(tbConsTypeRepository.findById(it.getConTypeId()).orElseGet(TbConsType::new).getConTypeCode())); } return list; @@ -104,35 +141,20 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { // if (count > 0) { // throw new Exception("耗材代码不允许重复"); // } - - + if(StringUtils.isBlank(resource.getConUnit())){ + throw new Exception(resource.getConName()+ "的单位不允许为空"); + } resource.setConCode(StringCodeUtil.getRandom(8, LETTER_CAPITAL_NUMBER)); resource.setConTypeName(tbConsType.getConTypeName()); resource.setLasterInStock(BigDecimal.ZERO); resource.setStockNumber(BigDecimal.ZERO); + resource.setIsCheck("0"); resource.setStatus("1"); resource.setStockConsume(BigDecimal.ZERO); resource.setCreateTime(new Timestamp(System.currentTimeMillis())); - resource = tbConsInfoRepository.save(resource); - - - TbConsInfoFlow flow = new TbConsInfoFlow(); - - flow.setBizCode("stockIn"); - flow.setBizName("初始化入库"); - flow.setBizType("+"); - flow.setConsId(resource.getId()); - flow.setShopId(resource.getShopId()); - flow.setConName(resource.getConName()); - flow.setAmount(BigDecimal.ZERO); - flow.setBalance(BigDecimal.ZERO); - flow.setOperator(SecurityUtils.getCurrentUsername()); - flow.setCreateTime(new Timestamp(System.currentTimeMillis())); - tbConsInfoFlowRepository.save(flow); - - + tbConsInfoRepository.save(resource); } - return tbConsInfoMapper.toDto(new TbConsInfo()); + return null; } @Override @@ -144,13 +166,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { if (Objects.isNull(tbConsInfo)) { throw new Exception("耗材信息不存在"); } - - tbConsInfo.setConName(ObjectUtil.isEmpty(resource.getConName())||ObjectUtil.isNull(resource.getConName())?tbConsInfo.getConName():resource.getConName()); - tbConsInfo.setPrice(ObjectUtil.isEmpty(resource.getPrice())||ObjectUtil.isNull(resource.getPrice())?tbConsInfo.getPrice():resource.getPrice()); - tbConsInfo.setConUnit(ObjectUtil.isEmpty(resource.getConUnit())||ObjectUtil.isNull(resource.getConUnit())?tbConsInfo.getConUnit(): resource.getConUnit()); - tbConsInfo.setConWarning(ObjectUtil.isEmpty(resource.getConWarning())||ObjectUtil.isNull(resource.getConWarning())?tbConsInfo.getConWarning():resource.getConWarning()); - tbConsInfo.setStatus(ObjectUtil.isEmpty(resource.getStatus())||ObjectUtil.isNull(resource.getStatus())?tbConsInfo.getStatus():resource.getStatus()); - tbConsInfo.setIsCheck(ObjectUtil.isEmpty(resource.getIsCheck())||ObjectUtil.isNull(resource.getIsCheck())?tbConsInfo.getIsCheck():resource.getIsCheck()); + BeanUtil.copyProperties(resource,tbConsInfo, CopyOptions.create().setIgnoreNullValue(true)); tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoRepository.save(tbConsInfo); @@ -274,7 +290,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { else if ("out".equals(resources.getType())) { stockOperate.setSubType(-1); - if (conInfos.getStockNumber().compareTo(info.getStockNumber()) > 0) { + if (conInfos.getStockNumber().compareTo(info.getStockNumber().subtract(info.getStockConsume())) > 0) { throw new BadRequestException("出库数量大于现有的库存数量"); } @@ -512,8 +528,4 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { } - public static void main(String[] args) { - System.out.println(UUID.randomUUID().toString()); - } - } From 30f21e1dd330034ab9826f39950679e327e717d9 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 17 Oct 2024 09:56:38 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index a581624a..9d17a471 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -91,7 +91,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { @Override public Map queryAllAndPro(TbConsInfoQueryCriteria criteria) { - Sort sort = Sort.by(Sort.Direction.DESC, "consId"); + Sort sort = Sort.by(Sort.Direction.DESC, "id"); if(StringUtils.isNotBlank(criteria.getSort())){ String[] sortParams = criteria.getSort().split(","); String sortField = sortParams[0]; From 0f7502df06182ed5387607992e79cd3c20d86856 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 17 Oct 2024 10:17:06 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E8=80=97=E6=9D=90=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/ysk/cashier/cons/rest/TbConsInfoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java index d6218693..e88b73ed 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java @@ -50,7 +50,7 @@ public class TbConsInfoController { @PostMapping("/allAndPro") @ApiOperation("耗材列表(携带商品信息)") - public ResponseEntity queryAllAndPro(TbConsInfoQueryCriteria criteria){ + public ResponseEntity queryAllAndPro(@RequestBody TbConsInfoQueryCriteria criteria){ return new ResponseEntity<>(tbConsInfoService.queryAllAndPro(criteria),HttpStatus.OK); } From 312c9cc1beddeac022d3f06d8908993a369426d4 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 17 Oct 2024 10:42:12 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E8=80=97=E6=9D=90=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E5=85=B3=E8=81=94=20=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java | 4 +++- .../cn/ysk/cashier/cons/repository/TbConsInfoRepository.java | 5 +++-- .../java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java | 4 +++- .../ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java index cd0affbd..9d06b59d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java @@ -25,6 +25,8 @@ import javax.validation.constraints.*; import java.sql.Timestamp; import java.math.BigDecimal; import java.io.Serializable; +import java.util.List; +import java.util.Map; /** * @author admin @@ -108,7 +110,7 @@ public class TbConsInfo implements Serializable { private String isCheck; @Transient - private String product; + private List> product; public void copy(TbConsInfo source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java index c58ea621..5b7c1a93 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoRepository.java @@ -9,6 +9,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; import java.util.List; +import java.util.Map; /** * @website https://eladmin.vip @@ -26,11 +27,11 @@ public interface TbConsInfoRepository extends JpaRepository @Query(value = - "SELECT CONCAT(pro.id, '_', pro.NAME) AS product" + + "SELECT pro.id, pro.name" + " FROM" + " tb_prosku_con conPro" + " LEFT JOIN tb_product pro ON conPro.product_id = pro.id AND pro.shop_id = :shopId AND conPro.shop_id = :shopId" + " where conPro.con_info_id = :conInfoId " + " group by conPro.product_id ",nativeQuery = true) - List queryAllAndPro(@Param("shopId") Integer shopId,@Param("conInfoId")Integer conInfoId); + List> queryAllAndPro(@Param("shopId") Integer shopId, @Param("conInfoId")Integer conInfoId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java index 3742409b..5821dd6d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/TbConsInfoDto.java @@ -22,6 +22,8 @@ import javax.persistence.Column; import java.sql.Timestamp; import java.math.BigDecimal; import java.io.Serializable; +import java.util.List; +import java.util.Map; /** * @author admin @@ -81,5 +83,5 @@ public class TbConsInfoDto implements Serializable { private String isCheck; - private String product; + private List> product; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index 9d17a471..2c52b442 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -102,8 +102,8 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { Page page = tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); Page result = page.map(tbConsInfoMapper::toDto); result.getContent().forEach(it -> { - List list = tbConsInfoRepository.queryAllAndPro(criteria.getShopId(), it.getId()); - it.setProduct(String.join(",", list)); + List> list = tbConsInfoRepository.queryAllAndPro(criteria.getShopId(), it.getId()); + it.setProduct(list); }); return PageUtil.toPage(result); } From 31e21e4705d075072f2ae0c4e37ce2eaf28fab65 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 18 Oct 2024 13:31:17 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=80=97=E6=9D=90=20=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/cons/domain/ViewConInfoFlow.java | 140 ------------------ .../repository/ViewConInfoFlowRepository.java | 13 -- .../cons/rest/TbConsInfoController.java | 2 +- .../cons/rest/ViewConInfoFlowController.java | 63 -------- .../cons/service/TbConsInfoService.java | 2 +- .../cons/service/ViewConInfoFlowService.java | 64 -------- .../cons/service/dto/ViewConInfoFlowDto.java | 73 --------- .../dto/ViewConInfoFlowQueryCriteria.java | 39 ----- .../service/impl/TbConsInfoServiceImpl.java | 6 +- .../impl/ViewConInfoFlowServiceImpl.java | 99 ------------- .../mapstruct/ViewConInfoFlowMapper.java | 16 -- .../cashier/pojo/shop/TbPlussShopStaff.java | 7 +- 12 files changed, 11 insertions(+), 513 deletions(-) delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/ViewConInfoFlowRepository.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/service/ViewConInfoFlowService.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowQueryCriteria.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/ViewConInfoFlowServiceImpl.java delete mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/cons/service/mapstruct/ViewConInfoFlowMapper.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java deleted file mode 100644 index a5848254..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java +++ /dev/null @@ -1,140 +0,0 @@ -/* -* 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; -import java.util.Date; - -/** -* @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 = "`shop_id`") - @ApiModelProperty(value = "店铺id") - private Integer shopId; - - @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; - - - @Column(name = "`status`") - @ApiModelProperty(value = "status") - private String status; - - - - @Column(name = "`product_id`") - @ApiModelProperty(value = "商品id") - private String productId; - - - @Column(name = "`product_name`") - @ApiModelProperty(value = "商品名称") - private String productName; - - @Column(name = "`con_code`") - @ApiModelProperty(value = "耗材代码") - private String conCode; - - @Column(name = "`con_type_code`") - @ApiModelProperty(value = "耗材类型代码") - private String conTypeCode; - - @Column(name = "`con_type_name`") - @ApiModelProperty(value = "耗材类型名称") - private String conTypeName; - - @Column(name = "`con_unit`") - @ApiModelProperty(value = "耗材单位") - private String conUnit; - - @Column(name = "`con_warning`") - @ApiModelProperty(value = "预警值") - private String conWarning; - - @Column(name = "`con_type_id`") - @ApiModelProperty(value = "耗材类型名称") - private Integer conTypeId; - - - - @Column(name = "`is_check`") - @ApiModelProperty(value = "是否检测库存") - private String isCheck; - - @Column(name = "`create_time`") - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @Column(name = "`update_time`") - @ApiModelProperty(value = "更新时间") - private Date updateTime; - - @Column(name = "price") - @ApiModelProperty(value = "单价") - private BigDecimal price; - - - - public void copy(ViewConInfoFlow source){ - BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); - } -} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/ViewConInfoFlowRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/ViewConInfoFlowRepository.java deleted file mode 100644 index 37fd00c6..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/ViewConInfoFlowRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -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, JpaSpecificationExecutor { -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java index e88b73ed..d9e583e8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbConsInfoController.java @@ -57,7 +57,7 @@ public class TbConsInfoController { @PostMapping @Log("新增耗材信息") @ApiOperation("新增耗材信息") - public ResponseEntity createTbConsInfo(@Validated @RequestBody List resources) throws Exception { + public ResponseEntity createTbConsInfo(@Validated @RequestBody List resources) { return new ResponseEntity<>(tbConsInfoService.create(resources),HttpStatus.CREATED); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java deleted file mode 100644 index 25094747..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/ViewConInfoFlowController.java +++ /dev/null @@ -1,63 +0,0 @@ -//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 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); -// } -// -// @PostMapping("get") -// @ApiOperation("查询获取耗材流水信息") -// public ResponseEntity queryViewConInfoFlow(@RequestBody ViewConInfoFlowQueryCriteria criteria){ -// return new ResponseEntity<>(viewConInfoFlowService.queryAllPage(criteria),HttpStatus.OK); -// } -// -// @PostMapping -// @Log("新增获取耗材流水信息") -// @ApiOperation("新增获取耗材流水信息") -// public ResponseEntity createViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){ -// return new ResponseEntity<>(viewConInfoFlowService.create(resources),HttpStatus.CREATED); -// } -// -// @PutMapping -// @Log("修改获取耗材流水信息") -// @ApiOperation("修改获取耗材流水信息") -// public ResponseEntity updateViewConInfoFlow(@Validated @RequestBody ViewConInfoFlow resources){ -// viewConInfoFlowService.update(resources); -// return new ResponseEntity<>(HttpStatus.NO_CONTENT); -// } -// -// @DeleteMapping -// @Log("删除获取耗材流水信息") -// @ApiOperation("删除获取耗材流水信息") -// public ResponseEntity deleteViewConInfoFlow(@RequestBody Integer[] ids) { -// viewConInfoFlowService.deleteAll(ids); -// return new ResponseEntity<>(HttpStatus.OK); -// } -//} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java index 5504fa0d..324271c9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbConsInfoService.java @@ -49,7 +49,7 @@ public interface TbConsInfoService { * @param resources / * @return TbConsInfoDto */ - TbConsInfoDto create(List resources) throws Exception; + TbConsInfoDto create(List resources); /** * 编辑 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/ViewConInfoFlowService.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/ViewConInfoFlowService.java deleted file mode 100644 index e16f6c45..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/ViewConInfoFlowService.java +++ /dev/null @@ -1,64 +0,0 @@ -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 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 条件 - * @return Map - */ - Map queryAllPage(ViewConInfoFlowQueryCriteria criteria); - - /** - * 查询所有数据不分页 - * @param criteria 条件参数 - * @return List - */ - List 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 all, HttpServletResponse response) throws IOException; -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java deleted file mode 100644 index 6e5e19ed..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java +++ /dev/null @@ -1,73 +0,0 @@ -/* -* 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 io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Column; -import java.math.BigDecimal; -import java.io.Serializable; -import java.util.Date; - -/** -* @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; - - - private String productId; - - private String productName; - private String status; - - private String conCode; - - private String conTypeCode; - - private String conTypeName; - - private String conUnit; - - private String conWarning; - - private Integer conTypeId; - - - private String isCheck; - private Date createTime; - private Date updateTime; - - private BigDecimal price; -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowQueryCriteria.java deleted file mode 100644 index b5151a1e..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowQueryCriteria.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.ysk.cashier.cons.service.dto; - -import lombok.Data; - -import java.util.Date; -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; - - @Query(type = Query.Type.INNER_LIKE) - private String productName; - - - @Query - private String shopId; - - @Query - private Integer conTypeId; - - @Query(type = Query.Type.BETWEEN) - private List createTime; - - private Integer page; - private Integer size; - private String sort; -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index 2c52b442..19d0dcd5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -128,13 +128,13 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { @Override @Transactional(rollbackFor = Exception.class) - public TbConsInfoDto create(List resources) throws Exception { + public TbConsInfoDto create(List resources){ for (TbConsInfo resource : resources) { TbConsType tbConsType = tbConsTypeRepository.getById(resource.getConTypeId()); if (Objects.isNull(tbConsType)) { - throw new Exception("不存在的耗材类型"); + throw new BadRequestException("不存在的耗材类型"); } // int count = tbConsInfoRepository.countByConCode(resources.getConCode()); @@ -142,7 +142,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { // throw new Exception("耗材代码不允许重复"); // } if(StringUtils.isBlank(resource.getConUnit())){ - throw new Exception(resource.getConName()+ "的单位不允许为空"); + throw new BadRequestException(resource.getConName()+ "的单位不允许为空"); } resource.setConCode(StringCodeUtil.getRandom(8, LETTER_CAPITAL_NUMBER)); resource.setConTypeName(tbConsType.getConTypeName()); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/ViewConInfoFlowServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/ViewConInfoFlowServiceImpl.java deleted file mode 100644 index d005609d..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/ViewConInfoFlowServiceImpl.java +++ /dev/null @@ -1,99 +0,0 @@ -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.apache.commons.lang3.StringUtils; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -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; - -@Service -@RequiredArgsConstructor -public class ViewConInfoFlowServiceImpl implements ViewConInfoFlowService { - - private final ViewConInfoFlowRepository viewConInfoFlowRepository; - private final ViewConInfoFlowMapper viewConInfoFlowMapper; - - @Override - public Map queryAllPage(ViewConInfoFlowQueryCriteria criteria){ - Sort sort = Sort.by(Sort.Direction.DESC, "consId"); - if(StringUtils.isNotBlank(criteria.getSort())){ - String[] sortParams = criteria.getSort().split(","); - String sortField = sortParams[0]; - Sort.Direction sortDirection = Sort.Direction.fromString(sortParams[1]); - sort = Sort.by(sortDirection, sortField); - } - Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort); - Page page = viewConInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); - return PageUtil.toPage(page.map(viewConInfoFlowMapper::toDto)); - } - - @Override - public List 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 all, HttpServletResponse response) throws IOException { - List> list = new ArrayList<>(); - for (ViewConInfoFlowDto viewConInfoFlow : all) { - Map 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); - } -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/mapstruct/ViewConInfoFlowMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/mapstruct/ViewConInfoFlowMapper.java deleted file mode 100644 index 92c1dc35..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/mapstruct/ViewConInfoFlowMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -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 { - -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java index 5eb0a5d8..8d9c9462 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java @@ -15,6 +15,7 @@ */ package cn.ysk.cashier.pojo.shop; +import cn.ysk.cashier.dto.shop.TbShopPermissionDto; import cn.ysk.cashier.system.service.dto.RoleSmallDto; import lombok.Data; import cn.hutool.core.bean.BeanUtil; @@ -23,6 +24,7 @@ import cn.hutool.core.bean.copier.CopyOptions; import javax.persistence.*; import java.math.BigDecimal; import java.io.Serializable; +import java.util.List; /** * @website https://eladmin.vip @@ -63,7 +65,7 @@ public class TbPlussShopStaff implements Serializable { @Column(name = "`max_discount_amount`") @ApiModelProperty(value = "最大优惠金额") - private BigDecimal maxDiscountAmount; + private BigDecimal maxDiscountAmount = BigDecimal.ZERO; @Column(name = "`status`") @ApiModelProperty(value = "1启用0不启用") @@ -102,6 +104,9 @@ public class TbPlussShopStaff implements Serializable { @Transient private String phone; + @Transient + List permissions; + public void copy(TbPlussShopStaff source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } From 8b49d179823761dfff50089f352375656bfe836a Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 18 Oct 2024 15:29:00 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=91=98=E5=B7=A5=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=20=E8=80=97=E6=9D=90=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=20=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TbConCheckServiceImpl.java | 2 +- .../impl/TbConsInfoFlowServiceImpl.java | 2 +- .../service/impl/TbConsInfoServiceImpl.java | 26 +++++-------------- .../TbProductStockDetailServiceImpl.java | 2 +- .../shopimpl/TbPlussShopStaffServiceImpl.java | 7 +++-- 5 files changed, 15 insertions(+), 24 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConCheckServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConCheckServiceImpl.java index 8c3dd9c6..e32e43c6 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConCheckServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConCheckServiceImpl.java @@ -99,7 +99,7 @@ public class TbConCheckServiceImpl implements TbConCheckService { flow.setConName(consInfo.getConName()); flow.setAmount(resources.getLpNum()); flow.setBalance(resources.getStockNumber()); - flow.setOperator(SecurityUtils.getCurrentUsername()); + flow.setOperator(SecurityUtils.getCurrentUserNickName()); flow.setCreateTime(new Timestamp(System.currentTimeMillis())); flow.setRemark(resources.getRemark()); tbConsInfoFlowRepository.save(flow); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java index 56c45ecf..b8be6ec8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java @@ -169,7 +169,7 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService { tbConsInfoFlow.setBizName("报损"); tbConsInfoFlow.setBizType("-"); tbConsInfoFlow.setCreateTime(new Timestamp(System.currentTimeMillis())); - tbConsInfoFlow.setOperator(SecurityUtils.getCurrentUsername()); + tbConsInfoFlow.setOperator(SecurityUtils.getCurrentUserNickName()); tbConsInfoFlowRepository.save(tbConsInfoFlow); tbConsInfo.setStockNumber(balance); consInfoRepository.save(tbConsInfo); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index 19d0dcd5..7cce301f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -1,17 +1,5 @@ package cn.ysk.cashier.cons.service.impl; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import javax.persistence.criteria.Subquery; -import java.util.ArrayList; -import java.util.List; - -import cn.ysk.cashier.pojo.product.TbProduct; -import org.springframework.data.domain.*; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.data.jpa.repository.JpaRepository; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.util.ObjectUtil; @@ -45,14 +33,13 @@ import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.domain.Specification; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; - -import javax.persistence.criteria.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; @@ -351,8 +338,9 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { flow.setShopId(info.getShopId()); flow.setConName(info.getConName()); flow.setAmount(conInfos.getStockNumber()); + flow.setRemark(resources.getRemark()); flow.setBalance(info.getStockNumber().subtract(info.getStockConsume())); - flow.setOperator(SecurityUtils.getCurrentUsername()); + flow.setOperator(SecurityUtils.getCurrentUserNickName()); flow.setCreateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoFlowRepository.save(flow); } @@ -461,7 +449,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { flow.setConName(consInfo.getConName()); flow.setAmount(consInfo.getStockNumber()); flow.setBalance(consInfo.getStockNumber()); - flow.setOperator(SecurityUtils.getCurrentUsername()); + flow.setOperator(SecurityUtils.getCurrentUserNickName()); flow.setCreateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoFlowRepository.save(flow); @@ -486,7 +474,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { flow.setConName(consInfo.getConName()); flow.setAmount(consInfo.getStockNumber()); flow.setBalance(consInfo.getStockNumber()); - flow.setOperator(SecurityUtils.getCurrentUsername()); + flow.setOperator(SecurityUtils.getCurrentUserNickName()); flow.setCreateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoFlowRepository.save(flow); } @@ -517,7 +505,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { flow.setConName(consInfo.getConName()); flow.setAmount(consInfo.getStockNumber()); flow.setBalance(consInfo.getStockNumber()); - flow.setOperator(SecurityUtils.getCurrentUsername()); + flow.setOperator(SecurityUtils.getCurrentUserNickName()); flow.setCreateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoFlowRepository.save(flow); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java index af4bcd08..1fdd85ee 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java @@ -177,7 +177,7 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ stockDetail.setUnitName(tbShopUnit==null?"":tbShopUnit.getName()); stockDetail.setCreatedAt(System.currentTimeMillis()); stockDetail.setUpdatedAt(System.currentTimeMillis()); - stockDetail.setOperator(SecurityUtils.getCurrentUsername()); + stockDetail.setOperator(SecurityUtils.getCurrentUserNickName()); tbProductStockDetailRepository.save(stockDetail); product.setStockNumber(product.getStockNumber()-resources.getStockNumber().intValue()); tbProductRepository.save(product); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java index 5a91a088..28ba5f26 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java @@ -97,12 +97,15 @@ public class TbPlussShopStaffServiceImpl implements TbPlussShopStaffService { @Override @Transactional(rollbackFor = Exception.class) public TbPlussShopStaffDto create(TbPlussShopStaff resources) { - if (!PhoneUtil.validator(resources.getPhone())){ - throw new BadRequestException("手机号格式有误"); + if (org.apache.commons.lang3.StringUtils.isBlank(resources.getAccount())) { + throw new BadRequestException("员工账号为空"); } if (userRepository.findByUsername(resources.getShopId()+"@"+resources.getAccount()) != null) { throw new BadRequestException("员工账号已存在"); } + if (!PhoneUtil.validator(resources.getPhone())){ + throw new BadRequestException("手机号格式有误"); + } if (pattern.matcher(resources.getCode()).find()) { throw new BadRequestException("员工编号不能包含中文");