Commit 5d08aa73f37a40c3e2197faec7c7d010a02ec4a8
1 parent
573715a9
订单跟单结果记录
Showing
7 changed files
with
210 additions
and
11 deletions
src/main/java/com/order/erp/controller/OrderOpinionLonController.java
0 → 100644
1 | +package com.order.erp.controller; | |
2 | + | |
3 | +import com.order.erp.common.annotation.AnonymousAccess; | |
4 | +import com.order.erp.common.constant.ServerResult; | |
5 | +import com.order.erp.domain.dto.order.OrderOpinionLogDO; | |
6 | +import com.order.erp.service.order.OrderOpinionLogService; | |
7 | +import io.swagger.annotations.Api; | |
8 | +import io.swagger.annotations.ApiOperation; | |
9 | +import org.springframework.web.bind.annotation.PostMapping; | |
10 | +import org.springframework.web.bind.annotation.RequestMapping; | |
11 | +import org.springframework.web.bind.annotation.RestController; | |
12 | + | |
13 | +import javax.annotation.Resource; | |
14 | + | |
15 | +/** | |
16 | + * | |
17 | + * 订单跟单结果记录日志表(OrderOpinionLogDO)表控制层 | |
18 | + * @Author:ch | |
19 | + * @createTime:2024-08-05 | |
20 | + */ | |
21 | +@Api(tags = "订单跟单结果记录") | |
22 | +@RestController | |
23 | +@RequestMapping("/order/erp/opinion/log") | |
24 | +public class OrderOpinionLonController { | |
25 | + | |
26 | + @Resource | |
27 | + private OrderOpinionLogService orderOpinionLogService; | |
28 | + | |
29 | + @PostMapping("/query_by_id") | |
30 | + @ApiOperation("查询订单的跟单结果记录") | |
31 | + @AnonymousAccess | |
32 | + public ServerResult queryById(OrderOpinionLogDO orderOpinionLogDO){ | |
33 | + return orderOpinionLogService.queryById(orderOpinionLogDO); | |
34 | + } | |
35 | + | |
36 | +} | ... | ... |
src/main/java/com/order/erp/domain/OrderOpinionLogEnum.java
0 → 100644
1 | +package com.order.erp.domain; | |
2 | + | |
3 | +import lombok.AllArgsConstructor; | |
4 | +import lombok.Getter; | |
5 | + | |
6 | +/** | |
7 | + * @Author:ch | |
8 | + * @createTime:2024-08-05 | |
9 | + */ | |
10 | + | |
11 | +@Getter | |
12 | +@AllArgsConstructor | |
13 | +public enum OrderOpinionLogEnum { | |
14 | + ORDER_PRODUCTION_COMMENT("productionComment","产品意见"), | |
15 | + ORDER_PP_CONFIRRM_RESULT("ppConfirmResult","pp样品确认意见"), | |
16 | + ORDER_SHIPMENT_SAMPLE_CONFIRM_RESULT("shippmentSampleConfirmResult","shipment sample确认意见"), | |
17 | + ORDER_AITEX_TEST_FINISH_RESULT("aitexTestResult","Altex测试结果"), | |
18 | + ORDER_SGS_TEST_FINISH_RESULT("sgsTestFinishResult","SGS测试结果"), | |
19 | + ; | |
20 | + private String type; | |
21 | + | |
22 | + private String desc; | |
23 | +} | ... | ... |
src/main/java/com/order/erp/domain/dto/order/OrderOpinionLogDO.java
0 → 100644
1 | +package com.order.erp.domain.dto.order; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.annotation.TableName; | |
4 | +import com.order.erp.domain.dto.BaseDO; | |
5 | +import lombok.*; | |
6 | +import lombok.experimental.SuperBuilder; | |
7 | + | |
8 | +import java.io.Serializable; | |
9 | + | |
10 | +/** | |
11 | + * @Author:ch | |
12 | + * @createTime:2024-08-05 | |
13 | + * @Description:订单跟单结果记录日志表。 | |
14 | + */ | |
15 | + | |
16 | +@TableName("order_opinion_log") | |
17 | +@Data | |
18 | +@AllArgsConstructor | |
19 | +@ToString | |
20 | +@NoArgsConstructor | |
21 | +@EqualsAndHashCode(callSuper = false) | |
22 | +@SuperBuilder | |
23 | +public class OrderOpinionLogDO extends BaseDO implements Serializable { | |
24 | + private Long id; | |
25 | + | |
26 | + /** | |
27 | + * 订单id | |
28 | + */ | |
29 | + private long orderId; | |
30 | + /** | |
31 | + * 意见类型(SGS/Aitex/SHIPPMENT/PP/产品意见) | |
32 | + */ | |
33 | + private String opinionType; | |
34 | + | |
35 | + /** | |
36 | + * 更新字段 | |
37 | + */ | |
38 | + private String field; | |
39 | +} | ... | ... |
src/main/java/com/order/erp/mapper/order/OrderOpinionLogMapper.java
0 → 100644
src/main/java/com/order/erp/service/order/OrderOpinionLogService.java
0 → 100644
1 | +package com.order.erp.service.order; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.extension.service.IService; | |
4 | +import com.order.erp.common.constant.ServerResult; | |
5 | +import com.order.erp.domain.dto.order.OrderOpinionLogDO; | |
6 | + | |
7 | +public interface OrderOpinionLogService extends IService<OrderOpinionLogDO> { | |
8 | + | |
9 | + ServerResult queryById(OrderOpinionLogDO orderOpinionLogDO); | |
10 | +} | ... | ... |
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
... | ... | @@ -19,10 +19,7 @@ import com.order.erp.common.constant.ServerResult; |
19 | 19 | import com.order.erp.common.constant.ServerResultCode; |
20 | 20 | import com.order.erp.common.excel4j.exceptions.Excel4JException; |
21 | 21 | import com.order.erp.common.exception.BusinessException; |
22 | -import com.order.erp.common.utils.DateUtils; | |
23 | -import com.order.erp.common.utils.FileUtil; | |
24 | -import com.order.erp.common.utils.OrderFieldUtils; | |
25 | -import com.order.erp.common.utils.ProfitUtils; | |
22 | +import com.order.erp.common.utils.*; | |
26 | 23 | import com.order.erp.config.DataScope; |
27 | 24 | import com.order.erp.domain.*; |
28 | 25 | import com.order.erp.domain.dto.BaseDO; |
... | ... | @@ -34,6 +31,7 @@ import com.order.erp.mapper.order.OrderBaseInfoMapper; |
34 | 31 | import com.order.erp.service.SystemSettingService; |
35 | 32 | import com.order.erp.service.admin.AdminUserService; |
36 | 33 | import com.order.erp.service.order.*; |
34 | +import freemarker.template.TemplateException; | |
37 | 35 | import lombok.extern.slf4j.Slf4j; |
38 | 36 | import org.joda.time.DateTime; |
39 | 37 | import org.springframework.beans.BeanUtils; |
... | ... | @@ -42,6 +40,7 @@ import org.springframework.stereotype.Service; |
42 | 40 | import org.springframework.transaction.annotation.Transactional; |
43 | 41 | |
44 | 42 | import javax.annotation.Resource; |
43 | +import javax.mail.MessagingException; | |
45 | 44 | import javax.servlet.http.HttpServletResponse; |
46 | 45 | import java.io.IOException; |
47 | 46 | import java.io.InputStream; |
... | ... | @@ -68,7 +67,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
68 | 67 | |
69 | 68 | @Value("${file.host}") |
70 | 69 | private String host; |
71 | - | |
70 | + @Resource | |
71 | + private OrderBaseInfoService baseInfoService; | |
72 | 72 | @Resource |
73 | 73 | private OrderProfitAnalysisService profitAnalysisService; |
74 | 74 | |
... | ... | @@ -111,6 +111,12 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
111 | 111 | @Resource |
112 | 112 | private SystemSettingService systemSettingService; |
113 | 113 | |
114 | + @Resource | |
115 | + private EmailSendUtils emailSendUtils; | |
116 | + | |
117 | + @Resource | |
118 | + private OrderOpinionLogService orderOpinionLogService; | |
119 | + | |
114 | 120 | /** |
115 | 121 | * 通过ID查询单条数据 |
116 | 122 | * <p> |
... | ... | @@ -1465,7 +1471,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1465 | 1471 | } |
1466 | 1472 | |
1467 | 1473 | orderOptLogService.save(buildOrderOptLogDo(baseInfoDO.getId(), userId, OrderOptTypeEnum.ORDER_CREATE.getDesc(), null)); |
1468 | - | |
1474 | + orderOpinionLogService.save(buildOrderOpinionLogDo(baseInfoDO.getId(), | |
1475 | + OrderOpinionLogEnum.ORDER_PRODUCTION_COMMENT.getDesc(), | |
1476 | + orderAddVO.getBaseInfo().getProductionComment())); | |
1469 | 1477 | return ServerResult.success(); |
1470 | 1478 | } |
1471 | 1479 | |
... | ... | @@ -1480,6 +1488,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1480 | 1488 | return OrderOptLogDO.builder().orderId(orderId).userId(userId).fields(jsonString).optType(optType).build(); |
1481 | 1489 | } |
1482 | 1490 | |
1491 | + private OrderOpinionLogDO buildOrderOpinionLogDo(Long orderId, String type, String field) { | |
1492 | + return OrderOpinionLogDO.builder().orderId(orderId).opinionType(type).field(field).build(); | |
1493 | + } | |
1494 | + | |
1483 | 1495 | /** |
1484 | 1496 | * @param updateVO |
1485 | 1497 | */ |
... | ... | @@ -1570,11 +1582,17 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1570 | 1582 | throw new BusinessException(ServerResultCode.ORDER_BASE_INFO_EMPTY); |
1571 | 1583 | } |
1572 | 1584 | OrderOptLogDO optLogDO = new OrderOptLogDO(); |
1585 | + List<OrderOpinionLogDO> orderOpinionLogDOList = new ArrayList<>(); | |
1573 | 1586 | if (Objects.nonNull(updateVO.getBaseInfo())) { |
1574 | 1587 | buildUpdateVO(updateVO.getBaseInfo(), orderBaseInfoDo); |
1575 | 1588 | orderBaseInfoDo.setId(updateVO.getOrderId()); |
1576 | 1589 | optLogDO = buildOrderOptLogDo(updateVO.getOrderId(), userId, OrderOptTypeEnum.ORDER_EDIT.getDesc(), JSONObject.toJSONString(updateVO)); |
1577 | 1590 | clearLockedField(updateVO.getOrderId(), userId, LockedFieldTypeEnum.ORDER_BASE); |
1591 | + if(!(updateVO.getBaseInfo().getProductionComment().equals(orderBaseInfoDo.getProductionComment()))){ | |
1592 | + OrderOpinionLogDO orderOpinionLogDO = buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_PRODUCTION_COMMENT.getDesc(),updateVO.getBaseInfo().getProductionComment()); | |
1593 | + orderOpinionLogDOList.add(orderOpinionLogDO); | |
1594 | + } | |
1595 | + | |
1578 | 1596 | } |
1579 | 1597 | if (Objects.nonNull(updateVO.getProfitAnalysisInfo())) { |
1580 | 1598 | checkApply(updateVO.getOrderId(), userId, ApplyTypeEnum.ORDER_PROFIT_APPLY); |
... | ... | @@ -1607,6 +1625,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1607 | 1625 | } |
1608 | 1626 | if (StringUtils.isNotBlank(trackStageInfo.getPpConfirmResult())) { |
1609 | 1627 | trackStageDO.setPpConfirmResult(trackStageInfo.getPpConfirmResult()); |
1628 | + if(!(trackStageInfo.getPpConfirmResult().equals(trackStageDO.getPpConfirmResult()))){ | |
1629 | + OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_PP_CONFIRRM_RESULT.getDesc(),trackStageInfo.getPpConfirmResult()); | |
1630 | + orderOpinionLogDOList.add(orderOpinionLogDO); | |
1631 | + } | |
1610 | 1632 | } |
1611 | 1633 | if (StringUtils.isNotBlank(trackStageInfo.getEsoSampleSendTime())) { |
1612 | 1634 | trackStageDO.setEsoSampleSendTime(trackStageInfo.getEsoSampleSendTime()); |
... | ... | @@ -1616,6 +1638,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1616 | 1638 | } |
1617 | 1639 | if (StringUtils.isNotBlank(trackStageInfo.getShippmentSampleConfirmResult())) { |
1618 | 1640 | trackStageDO.setShippmentSampleConfirmResult(trackStageInfo.getShippmentSampleConfirmResult()); |
1641 | + if(!(trackStageInfo.getShippmentSampleConfirmResult().equals(trackStageDO.getShippmentSampleConfirmResult()))){ | |
1642 | + OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_SHIPMENT_SAMPLE_CONFIRM_RESULT.getDesc(),trackStageInfo.getShippmentSampleConfirmResult()); | |
1643 | + orderOpinionLogDOList.add(orderOpinionLogDO); | |
1644 | + } | |
1619 | 1645 | } |
1620 | 1646 | if (StringUtils.isNotBlank(trackStageInfo.getSelfTestPassTime())) { |
1621 | 1647 | trackStageDO.setSelfTestPassTime(trackStageInfo.getSelfTestPassTime()); |
... | ... | @@ -1625,12 +1651,20 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1625 | 1651 | } |
1626 | 1652 | if (StringUtils.isNotBlank(trackStageInfo.getAitexTestFinishResult())) { |
1627 | 1653 | trackStageDO.setAitexTestFinishResult(trackStageInfo.getAitexTestFinishResult()); |
1654 | + if(!(trackStageInfo.getAitexTestFinishResult().equals(trackStageDO.getAitexTestFinishResult()))){ | |
1655 | + OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_AITEX_TEST_FINISH_RESULT.getDesc(),trackStageInfo.getAitexTestFinishResult()); | |
1656 | + orderOpinionLogDOList.add(orderOpinionLogDO); | |
1657 | + } | |
1628 | 1658 | } |
1629 | 1659 | if (StringUtils.isNotBlank(trackStageInfo.getSgsTestSendTime())) { |
1630 | 1660 | trackStageDO.setSgsTestSendTime(trackStageInfo.getSgsTestSendTime()); |
1631 | 1661 | } |
1632 | 1662 | if (StringUtils.isNotBlank(trackStageInfo.getSgsTestFinishResult())) { |
1633 | 1663 | trackStageDO.setSgsTestFinishResult(trackStageInfo.getSgsTestFinishResult()); |
1664 | + if(!(trackStageInfo.getSgsTestFinishResult().equals(trackStageDO.getSgsTestFinishResult()))){ | |
1665 | + OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_SGS_TEST_FINISH_RESULT.getDesc(),trackStageInfo.getSgsTestFinishResult()); | |
1666 | + orderOpinionLogDOList.add(orderOpinionLogDO); | |
1667 | + } | |
1634 | 1668 | } |
1635 | 1669 | if (StringUtils.isNotBlank(trackStageInfo.getBarcodeStickerArrivalTime())) { |
1636 | 1670 | trackStageDO.setBarcodeStickerArrivalTime(trackStageInfo.getBarcodeStickerArrivalTime()); |
... | ... | @@ -1641,16 +1675,16 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1641 | 1675 | if (StringUtils.isNotBlank(trackStageInfo.getLatestBkTime())) { |
1642 | 1676 | trackStageDO.setLatestBkTime(trackStageInfo.getLatestBkTime()); |
1643 | 1677 | } |
1644 | - if((StringUtils.isNotBlank(trackStageInfo.getPpConfirmTime()))){ | |
1678 | + if ((StringUtils.isNotBlank(trackStageInfo.getPpConfirmTime()))) { | |
1645 | 1679 | trackStageDO.setPpConfirmTime(trackStageInfo.getPpConfirmTime()); |
1646 | 1680 | } |
1647 | - if((StringUtils.isNotBlank(trackStageInfo.getShippmentSampleConfirmTime()))){ | |
1681 | + if ((StringUtils.isNotBlank(trackStageInfo.getShippmentSampleConfirmTime()))) { | |
1648 | 1682 | trackStageDO.setShippmentSampleConfirmTime(trackStageInfo.getShippmentSampleConfirmTime()); |
1649 | 1683 | } |
1650 | - if((StringUtils.isNotBlank(trackStageInfo.getAitexTestFinishTime()))){ | |
1684 | + if ((StringUtils.isNotBlank(trackStageInfo.getAitexTestFinishTime()))) { | |
1651 | 1685 | trackStageDO.setAitexTestFinishTime(trackStageInfo.getAitexTestFinishTime()); |
1652 | 1686 | } |
1653 | - if((StringUtils.isNotBlank(trackStageInfo.getSgsTestFinishTime()))){ | |
1687 | + if ((StringUtils.isNotBlank(trackStageInfo.getSgsTestFinishTime()))) { | |
1654 | 1688 | trackStageDO.setSgsTestFinishTime(trackStageInfo.getSgsTestFinishTime()); |
1655 | 1689 | } |
1656 | 1690 | trackStageDO.setOrderId(updateVO.getOrderId()); |
... | ... | @@ -1713,6 +1747,19 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1713 | 1747 | inspectionStageDO.setOrderId(updateVO.getOrderId()); |
1714 | 1748 | inspectionStageDO.setOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus()); |
1715 | 1749 | inspectionStageService.updateById(inspectionStageDO); |
1750 | + OrderBaseInfoDO orderBaseInfoDO = baseInfoService.getById(updateVO.getOrderId()); | |
1751 | + AdminUserDO ProductionDepartmentUserDO = userService.getOne(new LambdaQueryWrapper<AdminUserDO>() | |
1752 | + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | |
1753 | + .eq(AdminUserDO::getUserName, orderBaseInfoDO.getProductionDepartment())); | |
1754 | + OrderEventJobVO orderEventJobVO = new OrderEventJobVO(); | |
1755 | + orderEventJobVO.setInspectionStageInfo(inspectionStageInfo); | |
1756 | + //一旦修改完质检信息就自动发送邮件对应的生产科。多次编辑保存多次发送。 | |
1757 | + if (StringUtils.isNotBlank(inspectionStageInfo.getEndCheckApplyTime())) { | |
1758 | + //尾期验货报告。 | |
1759 | + emailSendUtils.sendEmail(EmailTemplateEnum.END_CHECK_REPORT_TEMPLATE, ProductionDepartmentUserDO.getEmail(), orderEventJobVO); | |
1760 | + } | |
1761 | + //中期验货报告。 | |
1762 | + emailSendUtils.sendEmail(EmailTemplateEnum.MID_CHECK_REPORT_TEMPLATE, ProductionDepartmentUserDO.getEmail(), orderEventJobVO); | |
1716 | 1763 | } else { |
1717 | 1764 | inspectionStageDO = new OrderInspectionStageDO(); |
1718 | 1765 | BeanUtils.copyProperties(updateVO.getInspectionStageInfo(), inspectionStageDO); |
... | ... | @@ -1726,6 +1773,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1726 | 1773 | } |
1727 | 1774 | updateById(orderBaseInfoDo); |
1728 | 1775 | orderOptLogService.save(optLogDO); |
1776 | + orderOpinionLogService.saveBatch(orderOpinionLogDOList); | |
1729 | 1777 | return ServerResult.success(); |
1730 | 1778 | } |
1731 | 1779 | |
... | ... | @@ -1986,7 +2034,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1986 | 2034 | |
1987 | 2035 | @Override |
1988 | 2036 | public List<OrderBaseInfoDO> getEventList() { |
1989 | - List<OrderBaseInfoDO> orderBaseInfoDOList= baseMapper.getEventList(); | |
2037 | + List<OrderBaseInfoDO> orderBaseInfoDOList = baseMapper.getEventList(); | |
1990 | 2038 | return orderBaseInfoDOList; |
1991 | 2039 | } |
1992 | 2040 | } | ... | ... |
src/main/java/com/order/erp/service/order/impl/OrderOpinionLogServiceImpl.java
0 → 100644
1 | +package com.order.erp.service.order.impl; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
4 | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |
5 | +import com.order.erp.common.constant.Constant; | |
6 | +import com.order.erp.common.constant.ServerResult; | |
7 | +import com.order.erp.domain.dto.BaseDO; | |
8 | +import com.order.erp.domain.dto.order.OrderOpinionLogDO; | |
9 | +import com.order.erp.mapper.order.OrderOpinionLogMapper; | |
10 | +import com.order.erp.service.order.OrderOpinionLogService; | |
11 | +import lombok.extern.slf4j.Slf4j; | |
12 | +import org.springframework.stereotype.Service; | |
13 | + | |
14 | +import java.util.List; | |
15 | +import java.util.Objects; | |
16 | + | |
17 | + | |
18 | +/** | |
19 | + * @Author:ch | |
20 | + * @createTime:2024-08-05 | |
21 | + */ | |
22 | +@Slf4j | |
23 | +@Service | |
24 | +public class OrderOpinionLogServiceImpl extends ServiceImpl<OrderOpinionLogMapper, OrderOpinionLogDO> implements OrderOpinionLogService { | |
25 | + @Override | |
26 | + public ServerResult queryById(OrderOpinionLogDO orderOpinionLogDO) { | |
27 | + if (Objects.isNull(orderOpinionLogDO.getId())) { | |
28 | + return ServerResult.fail("id 不能为空"); | |
29 | + } | |
30 | + List<OrderOpinionLogDO> orderOpinionLogDOList = list(new LambdaQueryWrapper<OrderOpinionLogDO>() | |
31 | + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | |
32 | + .eq(OrderOpinionLogDO::getOrderId, orderOpinionLogDO.getOrderId()) | |
33 | + .orderByDesc(OrderOpinionLogDO::getId)); | |
34 | + return ServerResult.success(orderOpinionLogDOList); | |
35 | + } | |
36 | +} | ... | ... |