diff --git a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailCalculationController.java b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailCalculationController.java new file mode 100644 index 00000000..1ace9060 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailCalculationController.java @@ -0,0 +1,31 @@ +package com.xujie.sys.modules.quote.controller; + +import com.xujie.sys.common.utils.R; +import com.xujie.sys.modules.quote.entity.QuoteDetailCalculation; +import com.xujie.sys.modules.quote.service.QuoteDetailCalculationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/quote/detail/calculation") +public class QuoteDetailCalculationController { + + @Autowired + private QuoteDetailCalculationService quoteDetailCalculationService; + + + @PostMapping + public R queryQuoteDetailCalculation(@RequestBody QuoteDetailCalculation quoteDetailCalculation) { + QuoteDetailCalculation calculation = quoteDetailCalculationService.queryQuoteDetailCalculation(quoteDetailCalculation); + return R.ok().put("row",calculation); + } + + @PostMapping("/update") + public R updateQuoteDetailCalculation(@RequestBody QuoteDetailCalculation quoteDetailCalculation) { + quoteDetailCalculationService.updateQuoteDetailCalculation(quoteDetailCalculation); + return R.ok("操作成功"); + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteBaseCalculation.java b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteBaseCalculation.java new file mode 100644 index 00000000..819f2fd5 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteBaseCalculation.java @@ -0,0 +1,42 @@ +package com.xujie.sys.modules.quote.entity; + + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +@TableName("plm_quote_base_calculation") +@Data +public class QuoteBaseCalculation { + + private Integer id; + + private BigDecimal laborBackendRate; + + private BigDecimal machBackendRate; + + private BigDecimal manuBackendRate; + + private BigDecimal laborParisRate; + + private BigDecimal machParisRate; + + private BigDecimal manuParisRate; + + private BigDecimal laborPrintRate; + + private BigDecimal machPrintRate; + + private BigDecimal manuPrintRate; + + private BigDecimal laborFrontRate; + + private BigDecimal machFrontRate; + + private BigDecimal manuFrontRate; + + private BigDecimal convertingRate; + + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailCalculation.java b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailCalculation.java new file mode 100644 index 00000000..4b95d4a1 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailCalculation.java @@ -0,0 +1,78 @@ +package com.xujie.sys.modules.quote.entity; + +import java.math.BigDecimal; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * (PlmQuoteDetailCalculation)实体类 + * + * @author makejava + * @since 2025-01-06 13:07:20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("plm_quote_detail_calculation") +public class QuoteDetailCalculation implements Serializable { + private static final long serialVersionUID = -23820257744465822L; + + @TableId + private Long id; + + private Long quoteId; + + private Long quoteDetailId; + + private Integer quoteDetailItemNo; + + private String site; + + private String buNo; + + private String quoteNo; + + private String versionNo; + + + /** + * 人工后道费率 + */ + private BigDecimal laborBackendRate; + + + /** + * 机器后道费率 + */ + private BigDecimal machBackendRate; + + + /** + * 制造后道费率 + */ + private BigDecimal manuBackendRate; + + private BigDecimal laborParisRate; + + private BigDecimal machParisRate; + + private BigDecimal manuParisRate; + + private BigDecimal laborPrintRate; + + private BigDecimal machPrintRate; + + private BigDecimal manuPrintRate; + + private BigDecimal laborFrontRate; + + private BigDecimal machFrontRate; + + private BigDecimal manuFrontRate; + + private BigDecimal convertingRate; + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteBaseCalculationMapper.java b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteBaseCalculationMapper.java new file mode 100644 index 00000000..f2e64956 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteBaseCalculationMapper.java @@ -0,0 +1,9 @@ +package com.xujie.sys.modules.quote.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xujie.sys.modules.quote.entity.QuoteBaseCalculation; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface QuoteBaseCalculationMapper extends BaseMapper { +} diff --git a/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailCalculationMapper.java b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailCalculationMapper.java new file mode 100644 index 00000000..1f795d0a --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailCalculationMapper.java @@ -0,0 +1,11 @@ +package com.xujie.sys.modules.quote.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xujie.sys.modules.quote.entity.QuoteDetailCalculation; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface QuoteDetailCalculationMapper extends BaseMapper { + + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/QuoteBaseCalculationService.java b/src/main/java/com/xujie/sys/modules/quote/service/QuoteBaseCalculationService.java new file mode 100644 index 00000000..73d6c4f6 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/service/QuoteBaseCalculationService.java @@ -0,0 +1,7 @@ +package com.xujie.sys.modules.quote.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xujie.sys.modules.quote.entity.QuoteBaseCalculation; + +public interface QuoteBaseCalculationService extends IService { +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailCalculationService.java b/src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailCalculationService.java new file mode 100644 index 00000000..1514eaa2 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailCalculationService.java @@ -0,0 +1,17 @@ +package com.xujie.sys.modules.quote.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xujie.sys.modules.quote.entity.QuoteDetail; +import com.xujie.sys.modules.quote.entity.QuoteDetailCalculation; + +public interface QuoteDetailCalculationService extends IService { + + void initQuoteDetailCalculation(QuoteDetail quoteDetail); + + void againQuoteDetailCalculation(QuoteDetail quoteDetail, Long detailId); + + void updateQuoteDetailCalculation(QuoteDetailCalculation calculation); + + QuoteDetailCalculation queryQuoteDetailCalculation(QuoteDetailCalculation quoteDetailCalculation); + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteBaseCalculationServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteBaseCalculationServiceImpl.java new file mode 100644 index 00000000..49efcec0 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteBaseCalculationServiceImpl.java @@ -0,0 +1,12 @@ +package com.xujie.sys.modules.quote.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.quote.entity.QuoteBaseCalculation; +import com.xujie.sys.modules.quote.mapper.QuoteBaseCalculationMapper; +import com.xujie.sys.modules.quote.service.QuoteBaseCalculationService; +import org.springframework.stereotype.Service; + +@Service +public class QuoteBaseCalculationServiceImpl extends ServiceImpl implements QuoteBaseCalculationService { + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailCalculationServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailCalculationServiceImpl.java new file mode 100644 index 00000000..ab7de9de --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailCalculationServiceImpl.java @@ -0,0 +1,76 @@ +package com.xujie.sys.modules.quote.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.quote.entity.QuoteBaseCalculation; +import com.xujie.sys.modules.quote.entity.QuoteDetail; +import com.xujie.sys.modules.quote.entity.QuoteDetailCalculation; +import com.xujie.sys.modules.quote.entity.QuoteDetailTool; +import com.xujie.sys.modules.quote.mapper.QuoteDetailCalculationMapper; +import com.xujie.sys.modules.quote.service.QuoteBaseCalculationService; +import com.xujie.sys.modules.quote.service.QuoteDetailCalculationService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class QuoteDetailCalculationServiceImpl extends ServiceImpl implements QuoteDetailCalculationService { + + @Autowired + private QuoteBaseCalculationService quoteBaseCalculationService; + + @Override + public void initQuoteDetailCalculation(QuoteDetail quoteDetail) { + QuoteBaseCalculation baseCalculation = quoteBaseCalculationService.getById(1); + QuoteDetailCalculation calculation = new QuoteDetailCalculation(); + // 复制属性 + BeanUtils.copyProperties(baseCalculation,calculation); + // 将ID设置为Null + calculation.setId(null); + // 外键信息 + calculation.setQuoteId(quoteDetail.getQuoteId()); + calculation.setQuoteDetailId(quoteDetail.getId()); + calculation.setQuoteDetailItemNo(quoteDetail.getItemNo()); + calculation.setSite(quoteDetail.getSite()); + calculation.setBuNo(quoteDetail.getBuNo()); + calculation.setQuoteNo(quoteDetail.getQuoteNo()); + calculation.setVersionNo(quoteDetail.getVersionNo()); + // 新增操作 + save(calculation); + } + + @Override + public void againQuoteDetailCalculation(QuoteDetail quoteDetail, Long detailId) { + List list = lambdaQuery().eq(QuoteDetailCalculation::getQuoteDetailId, detailId).list(); + for (QuoteDetailCalculation calculation : list) { + calculation.setQuoteId(quoteDetail.getQuoteId()); + calculation.setQuoteDetailId(quoteDetail.getId()); + calculation.setQuoteNo(quoteDetail.getQuoteNo()); + calculation.setVersionNo(quoteDetail.getVersionNo()); + calculation.setQuoteDetailItemNo(quoteDetail.getItemNo()); + calculation.setId(null); + save(calculation); + } + } + + @Override + public void updateQuoteDetailCalculation(QuoteDetailCalculation calculation) { + + QuoteBaseCalculation baseCalculation = new QuoteBaseCalculation(); + BeanUtils.copyProperties(calculation,baseCalculation); + + updateById(calculation); + + baseCalculation.setId(1); + + quoteBaseCalculationService.updateById(baseCalculation); + } + + @Override + public QuoteDetailCalculation queryQuoteDetailCalculation(QuoteDetailCalculation quoteDetailCalculation) { + return lambdaQuery() + .eq(QuoteDetailCalculation::getQuoteDetailId,quoteDetailCalculation.getQuoteDetailId()) + .one(); + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java index f91fbc37..ae5a66e8 100644 --- a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java @@ -31,6 +31,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl queryQuoteDetailByPage(int no, int size, QuoteDetail quoteDetail) { @@ -72,6 +74,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl