/* * Copyright (c) 2018-2025, ztt All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the pig4cloud.com developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: ztt */ package com.chinaztt.mes.plan.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chinaztt.mes.plan.entity.Customer; import com.chinaztt.mes.plan.entity.CustomerOrder; import com.chinaztt.mes.plan.mapper.CustomerMapper; import com.chinaztt.mes.plan.mapper.CustomerOrderMapper; import com.chinaztt.mes.plan.service.CustomerOrderService; import com.chinaztt.mes.plan.service.CustomerService; import com.chinaztt.mes.plan.state.auditstate.constant.AuditStateStringValues; import com.chinaztt.mes.plan.state.orderstate.constant.CustomerOrderStateStringValues; import com.chinaztt.mes.plan.vo.CustomerOrderVO; import com.chinaztt.mes.plan.vo.CustomerVO; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors; /** * 客户订单主表 * * @author sunxl * @date 2021-08-16 10:55:28 */ @Service @AllArgsConstructor public class CustomerServiceImpl extends ServiceImpl implements CustomerService { private CustomerOrderMapper customerOrderMapper; private CustomerOrderService customerOrderService; @Override public boolean saveDto(CustomerVO customerVO) { /*新增客户订单主表*/ //客户订单号 ZTMSLS2023101801 Customer customer = new Customer(); BeanUtils.copyProperties(customerVO,customer); String contractNo = contractNoMake(); customer.setContractNo(contractNo); //合同号 baseMapper.insert(customer); /*批量新增客户订单产品表*/ List customerOrderVOList = customerVO.getCustomerOrderVOList(); List customerOrders = customerOrderVOList.stream().map(customerOrderVO -> { CustomerOrder customerOrder = new CustomerOrder(); BeanUtils.copyProperties(customerOrderVO, customerOrder); //合同号 customerOrder.setCustomerOrderNo(customer.getContractNo()); //客户号 customerOrder.setCustomerNo(customer.getCustomerNo()); //客户名称 customerOrder.setCustomerName(customer.getCustomerName()); //工程名称 customerOrder.setEntityName(customer.getEntityName()); //期望交货时间 customerOrder.setWantedDeliveryDate(customerVO.getDeliveryDate()); //业务员 customerOrder.setSalesmanName(customer.getSalesMan()); //状态:工艺文件待选 customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK); //审核状态为 01draft 草稿 customerOrder.setIsAudit(AuditStateStringValues.DRAFT); //来源 1:手动 customerOrder.setSourceId("1"); //关联主表id customerOrder.setCustomerId(customer.getId()); return customerOrder; }).collect(Collectors.toList()); customerOrderService.saveBatch(customerOrders); return true; } @Override public String contractNoMake() { // 固定字符串 ZTTIC + (四位)年 + 四位流水 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy"); String yrar = formatter.format(LocalDateTime.now()); String code = "ZTTIC" + yrar; List customerOrderNos = baseMapper.getNos(code + "%"); if (CollectionUtil.isEmpty(customerOrderNos)) { code = code + "0001"; } else { String no = customerOrderNos.get(0); Integer a = Integer.parseInt(no.substring(no.length() - 8, no.length())); code = "ZTTIC" + (a + 1); } return code; } }