PurchaseContractServiceImpl.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package vip.xiaonuo.purchase.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import vip.xiaonuo.purchase.entity.PurchaseContract;
  8. import vip.xiaonuo.purchase.entity.PurchaseOrder;
  9. import vip.xiaonuo.purchase.entity.vo.PurchaseContractVo;
  10. import vip.xiaonuo.purchase.entity.vo.PurchaseOrderMoneyVo;
  11. import vip.xiaonuo.purchase.mapper.PurchaseContractMapper;
  12. import vip.xiaonuo.purchase.param.PurchaseOrderParam;
  13. import vip.xiaonuo.purchase.service.IPurchaseContractService;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import org.springframework.stereotype.Service;
  16. import java.math.BigDecimal;
  17. import java.math.RoundingMode;
  18. import java.text.DecimalFormat;
  19. import java.text.SimpleDateFormat;
  20. import java.util.ArrayList;
  21. import java.util.Date;
  22. import java.util.List;
  23. /**
  24. * <p>
  25. * 采购合同 服务实现类
  26. * </p>
  27. *
  28. * @author author
  29. * @since 2024-11-27
  30. */
  31. @Service
  32. public class PurchaseContractServiceImpl extends ServiceImpl<PurchaseContractMapper, PurchaseContract> implements IPurchaseContractService {
  33. @Autowired
  34. private PurchaseContractMapper contractMapper;
  35. @Override
  36. public List<PurchaseContractVo> getList(PurchaseOrderParam orderParam) {
  37. String orgId = orderParam.getOrgId();
  38. QueryWrapper<PurchaseContract> queryWrapper = new QueryWrapper<>();
  39. queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("create_time");
  40. queryWrapper.select(" IFNULL(sum(contract_money),'0') contractMoney,create_time createTime,IFNULL(count(*),'0') materialNumber");
  41. BigDecimal math = new BigDecimal("10000");
  42. List<PurchaseContractVo> list = new ArrayList<>();
  43. if (null == orderParam.getTimeType()||0==orderParam.getTimeType()) {
  44. if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
  45. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
  46. } else {
  47. // queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" + "," + orderParam.getOrderType());
  48. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" );
  49. }
  50. List<PurchaseContract> contracts = contractMapper.selectList(queryWrapper);
  51. if (contracts.size() != 0) {
  52. SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
  53. for (PurchaseContract contract : contracts) {
  54. PurchaseContractVo vo = new PurchaseContractVo();
  55. BigDecimal bd = new BigDecimal(contract.getContractMoney());
  56. bd = bd.divide(math, 2, RoundingMode.HALF_UP);
  57. vo.setContractMoney(bd.toString());
  58. vo.setMaterialNumber(contract.getMaterialNumber());
  59. vo.setTime(sdf.format(contract.getCreateTime()));
  60. list.add(vo);
  61. }
  62. }
  63. } else {
  64. // queryWrapper.ge("create_time", DateUtil.beginOfYear(new Date()));
  65. if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
  66. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
  67. } else {
  68. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
  69. // queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')" + "," + orderParam.getOrderType());
  70. }
  71. List<PurchaseContract> contracts = contractMapper.selectList(queryWrapper);
  72. if (contracts.size() != 0) {
  73. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
  74. for (PurchaseContract contract : contracts) {
  75. PurchaseContractVo vo = new PurchaseContractVo();
  76. BigDecimal bd = new BigDecimal(contract.getContractMoney());
  77. bd = bd.divide(math, 2, RoundingMode.HALF_UP);
  78. vo.setContractMoney(bd.toString());
  79. vo.setMaterialNumber(contract.getMaterialNumber());
  80. vo.setTime(sdf.format(contract.getCreateTime()));
  81. list.add(vo);
  82. }
  83. }
  84. }
  85. return list;
  86. }
  87. }