Commit 5d08aa73f37a40c3e2197faec7c7d010a02ec4a8

Authored by chenhang4442024
1 parent 573715a9

订单跟单结果记录

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
  1 +package com.order.erp.mapper.order;
  2 +
  3 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.order.erp.domain.dto.order.OrderOpinionLogDO;
  5 +
  6 +public interface OrderOpinionLogMapper extends BaseMapper<OrderOpinionLogDO> {
  7 +}
... ...
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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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 +}
... ...