Fixiaobai
2023-11-14 b529d99aed6a1e1dc4223057813d221d988987bd
Changes12
已修改10个文件
已添加4个文件
1351 ■■■■ 文件已修改
mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/entity/Customer.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/CustomerOrderMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/service/CustomerOrderService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/service/CustomerService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java 476 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerServiceImpl.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO1.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerVO.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-web/src/main/resources/bootstrap.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerController.java
@@ -19,9 +19,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
import com.chinaztt.mes.plan.dto.CustomerDTO;
import com.chinaztt.mes.plan.entity.Customer;
import com.chinaztt.mes.plan.service.CustomerService;
import com.chinaztt.mes.plan.vo.CustomerVO;
import com.chinaztt.ztt.common.core.util.R;
import com.chinaztt.ztt.common.log.annotation.SysLog;
import io.swagger.annotations.Api;
@@ -73,14 +73,14 @@
    /**
     * æ–°å¢žå®¢æˆ·è®¢å•主表
     *
     * @param customerDTO å®¢æˆ·è®¢å•主表
     * @param @RequestBody CustomerVO customerVO å®¢æˆ·è®¢å•主表
     * @return R
     */
    @ApiOperation(value = "新增客户订单主表", notes = "新增客户订单主表")
    @SysLog("新增客户订单主表")
    @PostMapping
    public R save(@RequestBody CustomerDTO customerDTO) {
        return R.ok(customerService.saveDto(customerDTO));
    public R save(@RequestBody CustomerVO customerVO) {
        return R.ok(customerService.saveDto(customerVO));
    }
    /**
mes-plan/src/main/java/com/chinaztt/mes/plan/entity/Customer.java
@@ -17,6 +17,8 @@
package com.chinaztt.mes.plan.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
@@ -38,94 +40,94 @@
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "客户订单主表")
public class Customer extends Model<Customer> {
private static final long serialVersionUID = 1L;
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId
    @ApiModelProperty(value="id")
    private Long id;
    /**
     * åˆåŒå·
     */
    @ApiModelProperty(value="合同号")
    private String contractNo;
    /**
     * å®¢æˆ·åˆåŒå·
     */
    @ApiModelProperty(value="客户合同号")
    private String customerContractNo;
    /**
     * å®¢æˆ·åç§°
     */
    @ApiModelProperty(value="客户名称")
    private String customerName;
    /**
     * å·¥ç¨‹åç§°
     */
    @ApiModelProperty(value="工程名称")
    private String entityName;
    /**
     * äº¤è´§æ—¥æœŸ
     */
    @ApiModelProperty(value="交货日期")
    private LocalDateTime deliveryDate;
    /**
     * äº‹ä¸šéƒ¨
     */
    @ApiModelProperty(value="事业部")
    private String salesDepartment;
    /**
     * çœä»½
     */
    @ApiModelProperty(value="省份")
    private String province;
    /**
     * ä¸šåŠ¡å‘˜
     */
    @ApiModelProperty(value="业务员")
    private String salesMan;
    /**
     * ä¸šåŠ¡å‘˜ç¼–å·
     */
    @ApiModelProperty(value="业务员编号")
    private String salerWorkCode;
    /**
     * æ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="正本状态")
    private String originalContractStatus;
    /**
     * é¡¹ç›®æ€§è´¨
     */
    @ApiModelProperty(value="项目性质")
    private String isCp;
    /**
     * å®¢æˆ·ç¼–码
     */
    @ApiModelProperty(value="客户编码")
    private String customerNo;
    /**
     * åˆåŒæ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="合同正本状态")
    private String returnStatus;
    /**
     * ä¸‹å•日期
     */
    @ApiModelProperty(value="下单日期")
    private LocalDateTime placeOrderDate;
    /**
     * å®¡æ ¸æ—¥æœŸ
     */
    @ApiModelProperty(value="审核日期")
    private LocalDateTime verifyDate;
    /**
     * å·¥åŽ‚ä¸‹å•æ—¥æœŸ
     */
    @ApiModelProperty(value="工厂下单日期")
    private LocalDateTime factoryPlaceOrderDate;
    /**
     * id
     */
    @TableId
    @ApiModelProperty(value="id")
    private Long id;
    /**
     * åˆåŒå·
     */
    @ApiModelProperty(value="合同号")
    private String contractNo;
    /**
     * å®¢æˆ·åˆåŒå·
     */
    @ApiModelProperty(value="客户合同号")
    private String customerContractNo;
    /**
     * å®¢æˆ·åç§°
     */
    @ApiModelProperty(value="客户名称")
    private String customerName;
    /**
     * å·¥ç¨‹åç§°
     */
    @ApiModelProperty(value="工程名称")
    private String entityName;
    /**
     * äº¤è´§æ—¥æœŸ
     */
    @ApiModelProperty(value="交货日期")
    private LocalDateTime deliveryDate;
    /**
     * äº‹ä¸šéƒ¨
     */
    @ApiModelProperty(value="事业部")
    private String salesDepartment;
    /**
     * çœä»½
     */
    @ApiModelProperty(value="省份")
    private String province;
    /**
     * ä¸šåŠ¡å‘˜
     */
    @ApiModelProperty(value="业务员")
    private String salesMan;
    /**
     * ä¸šåŠ¡å‘˜ç¼–å·
     */
    @ApiModelProperty(value="业务员编号")
    private String salerWorkCode;
    /**
     * æ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="正本状态")
    private String originalContractStatus;
    /**
     * é¡¹ç›®æ€§è´¨
     */
    @ApiModelProperty(value="项目性质")
    private String isCp;
    /**
     * å®¢æˆ·ç¼–码
     */
    @ApiModelProperty(value="客户编码")
    private String customerNo;
    /**
     * åˆåŒæ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="合同正本状态")
    private String returnStatus;
    /**
     * ä¸‹å•日期
     */
    @ApiModelProperty(value="下单日期")
    private LocalDateTime placeOrderDate;
    /**
     * å®¡æ ¸æ—¥æœŸ
     */
    @ApiModelProperty(value="审核日期")
    private LocalDateTime verifyDate;
    /**
     * å·¥åŽ‚ä¸‹å•æ—¥æœŸ
     */
    @ApiModelProperty(value="工厂下单日期")
    private LocalDateTime factoryPlaceOrderDate;
    /**
     * å¤‡æ³¨
@@ -133,6 +135,30 @@
    @ApiModelProperty(value="备注")
    private String comment;
    @ApiModelProperty(value="otcId")
    private Long otcPullId;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;
    /**
     * åˆ›å»ºäºº
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人")
    private String createUser;
    /**
     * æ›´æ–°äºº
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新人")
    private String updateUser;
}
mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java
@@ -17,9 +17,11 @@
package com.chinaztt.mes.plan.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.sun.org.apache.xpath.internal.operations.Bool;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -107,9 +109,9 @@
    @ApiModelProperty(value = "零件号:用于生产的零件号")
    private String partNo;
    /**
     * åº“存数量
     * æ•°é‡
     */
    @ApiModelProperty(value = "库存数量")
    @ApiModelProperty(value = "数量")
    private BigDecimal buyQtyDue;
    /**
     * OTC销售数量
@@ -363,9 +365,9 @@
    @ApiModelProperty(value = "零件是否推送")
    private Boolean otcPartSync;
    /**
     * äº§å“åˆ†ç±»
     * äº§å“ç±»åž‹
     */
    @ApiModelProperty(value = "产品分类")
    @ApiModelProperty(value = "产品类型")
    private String productType;
    /**
     * äº§å“åˆ†ç»„
@@ -407,5 +409,11 @@
     */
    @ApiModelProperty(value = "退回原因")
    private String returnReason;
    /**
     * é¡¹ç›®åç§°
     */
    @ApiModelProperty(value="项目名称")
    private String entityName;
}
mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/CustomerOrderMapper.java
@@ -31,10 +31,9 @@
     *
     * @param page
     * @param planCustomerOrder
     * @param type
     * @return
     */
    IPage<List<CustomerOrderDTO>> getCustomerOrderPage(Page page, @Param("ew") QueryWrapper<CustomerOrder> planCustomerOrder, @Param("type") String type);
    IPage<List<CustomerOrderDTO>> getCustomerOrderPage(Page page, @Param("ew") QueryWrapper<CustomerOrder> planCustomerOrder);
    /**
     * èŽ·å–å®¢æˆ·è®¢å•å’Œç»‘å®šçš„è®¢å•å‚æ•°
mes-plan/src/main/java/com/chinaztt/mes/plan/service/CustomerOrderService.java
@@ -26,6 +26,7 @@
import com.chinaztt.mes.plan.entity.CustomerOrderForJointStockCompany;
import com.chinaztt.mes.plan.entity.MasterProductionSchedule;
import com.chinaztt.mes.plan.entity.ProcessConfigFileOrderMapping;
import com.chinaztt.mes.plan.vo.CustomerOrderVO1;
import com.chinaztt.mes.quality.dto.CustomOrderSyncDTO;
import com.chinaztt.mes.technology.entity.Document;
import com.chinaztt.mes.warehouse.dto.PackagingDTO;
@@ -141,7 +142,7 @@
     * @param id
     * @return
     */
    CustomerOrderDTO getCustomerOrderById(Long id);
    CustomerOrderVO1 getCustomerOrderById(Long id);
    /**
     * è®¢å•行关联工艺文件
mes-plan/src/main/java/com/chinaztt/mes/plan/service/CustomerService.java
@@ -18,10 +18,8 @@
package com.chinaztt.mes.plan.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chinaztt.mes.plan.dto.CustomerDTO;
import com.chinaztt.mes.plan.dto.CustomerOrderDTO;
import com.chinaztt.mes.plan.entity.Customer;
import com.chinaztt.mes.plan.entity.CustomerOrder;
import com.chinaztt.mes.plan.vo.CustomerVO;
/**
 * å®¢æˆ·è®¢å•主表
@@ -31,7 +29,7 @@
 */
public interface CustomerService extends IService<Customer> {
    boolean saveDto(CustomerDTO customerDTO);
    boolean saveDto(CustomerVO customerVO);
    String contractNoMake();
}
mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java
@@ -28,6 +28,7 @@
import com.chinaztt.mes.basic.entity.Part;
import com.chinaztt.mes.basic.mapper.PartMapper;
import com.chinaztt.mes.basic.mapper.StaffMapper;
import com.chinaztt.mes.basic.mapper.UserServiceMapper;
import com.chinaztt.mes.basic.util.RedisUtils;
import com.chinaztt.mes.common.handler.StateMachineHandler;
import com.chinaztt.mes.common.numgen.NumberGenerator;
@@ -50,6 +51,7 @@
import com.chinaztt.mes.plan.util.CustomerOrderClientConfigure;
import com.chinaztt.mes.plan.util.CustomerOrderUnitWhiteListConfig;
import com.chinaztt.mes.plan.util.CustomerOrderUtil;
import com.chinaztt.mes.plan.vo.CustomerOrderVO1;
import com.chinaztt.mes.quality.dto.CustomOrderSyncDTO;
import com.chinaztt.mes.technology.entity.*;
import com.chinaztt.mes.technology.mapper.*;
@@ -176,6 +178,7 @@
    private WechatProperty wechatProperty;
    private UserServiceMapper userServiceMapper;
    private final OssProperties ossProperties;
    private final OssTemplate minioTemplate;
@@ -208,9 +211,12 @@
    @Override
    public IPage getCustomerOrderPage(Page page, QueryWrapper<CustomerOrder> planCustomerOrder, String type) {
        IPage iPage = baseMapper.getCustomerOrderPage(page, planCustomerOrder, type);
        return iPage;
        //ZttUser currentUser = SecurityUtils.getUser();
        ////获取员工id
        //Long staffId = userServiceMapper.selectById(currentUser.getId()).getStaffId();
        return customerOrderMapper.getCustomerOrderPage(page, planCustomerOrder);
    }
    @Override
    public boolean changeMarkPlanned(List<Long> ids, String coState) {
@@ -322,39 +328,25 @@
    @Override
    public CustomerOrderDTO getCustomerOrderById(Long id) {
        CustomerOrder newCustomerOrder = baseMapper.selectById(id);
        Customer customer = customerMapper.selectById(newCustomerOrder.getCustomerId());
        CustomerOrderDTO customerOrderDTO = new CustomerOrderDTO();
        BeanUtils.copyProperties(newCustomerOrder, customerOrderDTO);
        customerOrderDTO.setComment(customer.getComment());
        //获取字段和列名
        List<OrderParamDTO> orderParamList = orderParamMapper.getAllOrder();
        customerOrderDTO.setOrderParamList(orderParamList);
        //拼接crosstab所需要的验证数据
        //        OrderParam orderParam = orderParamMapper.getParam();
        //获取客户订单和绑定的订单参数
        JSONObject customerOrderList = baseMapper.getCustomerOrderByIdnew(id);
        customerOrderDTO.setCustomerOrderList(customerOrderList);
        List<JSONObject> list = new ArrayList<>();
        customerOrderDTO.setCustomerOrderAttachmentList(list);
        // èŽ·å–å·¥å•æ‰€éœ€ç‰©æ–™
        List<OperationTaskProduce> operationTaskProduceList = operationTaskProduceMapper.selectList(Wrappers.<OperationTaskProduce>lambdaQuery()
                .eq(OperationTaskProduce::getCustomerOrderId, id).orderByAsc(OperationTaskProduce::getSort));
        customerOrderDTO.setOutPutBatchList(operationTaskProduceList);
        if (newCustomerOrder.getTechnologyDocumentId() != null) {
            Document document = documentMapper.selectById(newCustomerOrder.getTechnologyDocumentId());
    public CustomerOrderVO1 getCustomerOrderById(Long id) {
        CustomerOrderVO1 customerOrderVO1 = new CustomerOrderVO1();
        //销售产品单(客户行表)
        CustomerOrder customerOrder = baseMapper.selectById(id);
        BeanUtils.copyProperties(customerOrder, customerOrderVO1);
        //客户主表
        Customer customer = customerMapper.selectById(customerOrder.getCustomerId());
        BeanUtils.copyProperties(customer,customerOrderVO1);
        if (customerOrder.getTechnologyDocumentId() != null) {
            Document document = documentMapper.selectById(customerOrder.getTechnologyDocumentId());
            if (document != null) {
                customerOrderDTO.setDocNumber(document.getNumber());
                //工艺文件编号
                customerOrderVO1.setDocNumber(document.getNumber());
                //工艺文件名称
                customerOrderVO1.setDocName(document.getName());
            }
        }
        List<OrderProcessConfigFileDTO> configFiles =
                orderProcessConfigFileMapper.getProcessConfigFiles(newCustomerOrder.getCustomerOrderNo(),
                        newCustomerOrder.getOtcLineNo());
        customerOrderDTO.setConfigFiles(configFiles);
        ProcessConfigDTO processConfigdto = processConfigService.getProcessConfig(id);
        customerOrderDTO.setProcessConfigDTO(processConfigdto);
        return customerOrderDTO;
        customerOrderVO1.setId(id);
        return customerOrderVO1;
    }
    @Override
@@ -668,21 +660,7 @@
            if (StringUtils.isBlank(selectTime)) {
                return R.failed("缺少查询时间");
            }
            //DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            //LocalDateTime startDate = LocalDateTime.parse(selectTime, formatter);
            //Long days = LocalDate.now().toEpochDay() - startDate.toLocalDate().toEpochDay();
            //if (days > 30) {
            //    return R.failed("超出查询时间范围");
            //}
            String token = customerOrderUtil.getToken();
            //if (pathCode.equals("0")) {
            //    return addCustomerFromOtc(selectTime, token);
            //} else if (pathCode.equals("1")) {
            //    return addCustomerFromOtcForJointStockCompany(selectTime, token);
            //} else {
            //    throw new RuntimeException("路径请求码 = ã€" + pathCode + "】非法");
            //}
            return addCustomerFromOtc(selectTime, token);
        } catch (Exception e) {
            return R.failed(e.getMessage());
@@ -804,6 +782,146 @@
        }
    }
    /**
     * æ·»åŠ å­è¡¨ä¿¡æ¯
     *
     * @param customer
     * @param otcMainStatus
     * @throws Exception
     */
    private int addCustomerOrderFromOtc(JSONObject customerJSONObject, Customer customer, String token, List<OrderParam> orderParamList, String otcMainStatus) {
        Map<String, String> productTypeGroupMap = customerOrderUnitWhiteListConfig.getProductTypeGroupMap();
        int num = 0;
        try {
            Map<String, Object> map = new HashMap<>();
            map.put("orderNo", customer.getContractNo());
            map.put("selectTime", "1899-12-31 23:59:59");
            JSONObject result = JSONObject.parseObject(HttpRequest.get(customerOrderClientConfigure.getOtcHost() + customerOrderClientConfigure.getOtcCustomerOrderUrl())
                    .contentType("application/json")
                    .header("Authorization", "Bearer " + token).form(map).execute().body());
            if (result.getInteger("code") == 0) {
                JSONArray jsonArray = result.getJSONArray("data");
                for (Object obj : jsonArray) {
                    JSONObject customerOrderJSONObject = JSONObject.parseObject(obj.toString());
                    String otcLoneId = customerOrderJSONObject.getLong("id").toString();
                    //OTC的订单状态
                    String otcOrderStatus = customerOrderJSONObject.getString("lineStatus").toString();
                    CustomerOrder customerOrder = baseMapper.selectOne(Wrappers.<CustomerOrder>lambdaQuery()
                            .eq(CustomerOrder::getOtcLineNo, otcLoneId));
                    if (customerOrder == null) {
                        customerOrder = new CustomerOrder();
                    }
                    //如果这个单子在OTC中取消状态 é‚£å°±åˆ é™¤
                    if (otcOrderStatus.equals("已取消")) {
                        if (customerOrder.getId() != null) {
                            baseMapper.deleteById(customerOrder.getId());
                        }
                        continue;
                    }
                    //OTC合同号主表id
                    customerOrder.setOtcOrderId(customerOrderJSONObject.getLong("orderId"));
                    //otc行号
                    customerOrder.setOtcLineNo(otcLoneId);
                    //零件号
                    customerOrder.setPartNo(customerOrderJSONObject.getString("partNo"));
                    //来源 0:自动
                    customerOrder.setSourceId("0");
                    //合同号
                    customerOrder.setCustomerOrderNo(customer.getContractNo());
                    //客户号
                    customerOrder.setCustomerNo(customer.getCustomerNo());
                    //客户名称
                    customerOrder.setCustomerName(customer.getCustomerName());
                    //工程名称
                    customerOrder.setEntityName(customer.getEntityName());
                    //数量
                    customerOrder.setBuyQtyDue(customerOrderJSONObject.getBigDecimal("quantity"));
                    //OTC单位
                    customerOrder.setOtcUnit(customerOrderJSONObject.getString("unit"));
                    //期望交货日期
                    customerOrder.setWantedDeliveryDate(customer.getDeliveryDate());
                    //主表id
                    customerOrder.setCustomerId(customer.getId());
                    //电压等级
                    customerOrder.setVoltAgeClass(customerOrderJSONObject.getString("voltageLevel"));
                    //外呼颜色
                    customerOrder.setOuterColor(customerOrderJSONObject.getString("outerSheathColor"));
                    //客户零件名称
                    customerOrder.setProductName(customerOrderJSONObject.getString("productName"));
                    //客户零件规格
                    customerOrder.setCustomerPartSpec(customerOrderJSONObject.getString("specificationModel"));
                    //订单版本
                    customerOrder.setVersion(customerOrderJSONObject.getInteger("version"));
                    //事业部
                    customerOrder.setDivision(customerOrderJSONObject.getString("division"));
                    //印字类型
                    customerOrder.setPrintType(customerOrderJSONObject.getString("printType"));
                    //印字内容
                    customerOrder.setPrintContent(customerOrderJSONObject.getString("printContent"));
                    //印字要求
                    customerOrder.setPrintingRequirements(customerOrderJSONObject.getString("printingRequirements"));
                    //包装要求
                    customerOrder.setPackageRequire(customerOrderJSONObject.getString("packageRequire"));
                    //质量要求
                    customerOrder.setQualityRequire(customerOrderJSONObject.getString("qualityRequire"));
                    //生产需求说明
                    customerOrder.setOtherProductRequire(customerOrderJSONObject.getString("otherProductRequire"));
                    //系统
                    customerOrder.setDivisionSystem(customerOrderJSONObject.getString("divisionSystem"));
                    //收货地址
                    customerOrder.setShippingAddress(customerOrderJSONObject.getString("shippingAddress"));
                    //业务员
                    customerOrder.setSalesmanName(customer.getSalesMan());
                    //盘长要求
                    customerOrder.setLengthRequirement(customerOrderJSONObject.getString("lengthRequirement"));
                    //产品备注Ï
                    customerOrder.setRemark(customerOrderJSONObject.getString("orderComment"));
                    //产品类型
                    customerOrder.setProductType(customerOrderJSONObject.getString("productType"));
                    //产品分组
                    customerOrder.setProductGroup(productTypeGroupMap.get(customerOrderJSONObject.getString("productType")));
                    //采集性质
                    customerOrder.setCentralizedMiningProperty(customerJSONObject.getString("centralizedMiningProperty"));
                    //最终客户名称
                    customerOrder.setFinalCustomerName(customerJSONObject.getString("finalCustomerName"));
                    //销售件描述
                    customerOrder.setSalesPartName(customerOrderJSONObject.getString("partDesc"));
                    if (customerOrder.getId() == null) {
                        // é›¶ä»¶æ˜¯å¦æŽ¨é€
                        customerOrder.setOtcPartSync(false);
                        // é»˜è®¤ä¸ºN æ•°æ®å­—典为:N:普通,S:样品,D:研发
                        customerOrder.setManufactureAttr("N");
                        //是否关联工艺文件为否
                        customerOrder.setIsDocument(false);
                        //状态为 å¦‚果采集性质 éžé‡‡é›†å’Œ çœé‡‡é›†  çŠ¶æ€ä½ç¼–è¾‘  å¦åˆ™ä¸º é›¶ä»¶å¾…选
                        if (customerOrder.getCentralizedMiningProperty().equals("非集采") || customerOrder.getCentralizedMiningProperty().equals("省集采")) {
                            customerOrder.setCoState(CustomerOrderStateStringValues.UNIEDIT);
                        } else {
                            customerOrder.setCoState(CustomerOrderStateStringValues.PARTUNCHECKED);
                        }
                        if (org.apache.commons.lang3.StringUtils.equals("已下达", otcMainStatus)) {
                            customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
                            customerOrder.setOtcPartSync(Boolean.TRUE);
                        }
                        // å¦‚果状态为零件待选,且零件号不为空,更新状态
                        if (StrUtil.isNotBlank(customerOrder.getPartNo()) && CustomerOrderStateStringValues.PARTUNCHECKED.equals(customerOrder.getCoState())) {
                            customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
                            customerOrder.setOtcPartSync(Boolean.TRUE);
                        }
                        //审核状态为 01draft è‰ç¨¿
                        customerOrder.setIsAudit(AuditStateStringValues.DRAFT);
                        baseMapper.insert(customerOrder);
                    }
                    addCustomerPara(customerJSONObject, customerOrderJSONObject, customerOrder, orderParamList);
                    num += 1;
                }
            }
        } catch (Exception e) {
            throw new RuntimeException("订单行数据获取失败,原因:" + e.getMessage());
        }
        return num;
    }
    ///**
    // * æ·»åŠ ä¸»è¡¨ä¿¡æ¯
@@ -918,139 +1036,139 @@
     * @param otcMainStatus
     * @throws Exception
     */
    private int addCustomerOrderFromOtc(JSONObject customerJSONObject, Customer customer, String token, List<OrderParam> orderParamList, String otcMainStatus) {
        Map<String, String> productTypeGroupMap = customerOrderUnitWhiteListConfig.getProductTypeGroupMap();
        int num = 0;
        try {
            Map<String, Object> map = new HashMap<>();
            map.put("orderNo", customer.getContractNo());
            map.put("selectTime", "1899-12-31 23:59:59");
            JSONObject result = JSONObject.parseObject(HttpRequest.get(customerOrderClientConfigure.getOtcHost() + customerOrderClientConfigure.getOtcCustomerOrderUrl())
                    .contentType("application/json")
                    .header("Authorization", "Bearer " + token).form(map).execute().body());
            if (result.getInteger("code") == 0) {
                JSONArray jsonArray = result.getJSONArray("data");
                for (Object obj : jsonArray) {
                    JSONObject customerOrderJSONObject = JSONObject.parseObject(obj.toString());
                    String otcLoneId = customerOrderJSONObject.getLong("id").toString();
                    //OTC的订单状态
                    String otcOrderStatus = customerOrderJSONObject.getString("lineStatus").toString();
                    CustomerOrder customerOrder = baseMapper.selectOne(Wrappers.<CustomerOrder>lambdaQuery()
                            .eq(CustomerOrder::getOtcLineNo, otcLoneId));
                    if (customerOrder == null) {
                        customerOrder = new CustomerOrder();
                    }
                    //如果这个单子在OTC中取消状态 é‚£å°±åˆ é™¤
                    if (otcOrderStatus.equals("已取消")) {
                        if (customerOrder.getId() != null) {
                            baseMapper.deleteById(customerOrder.getId());
                        }
                        continue;
                    }
                    //OTC合同号主表id
                    customerOrder.setOtcOrderId(customerOrderJSONObject.getLong("orderId"));
                    //otc行号
                    customerOrder.setOtcLineNo(otcLoneId);
                    //零件号
                    customerOrder.setSalesPartNo(customerOrderJSONObject.getString("partNo"));
                    //来源
                    customerOrder.setSourceId("OTC");
                    //合同号
                    customerOrder.setCustomerOrderNo(customer.getContractNo());
                    //客户号
                    customerOrder.setCustomerNo(customer.getCustomerNo());
                    //客户名称
                    customerOrder.setCustomerName(customer.getCustomerName());
                    //销售数量原先OTC的单位
                    customerOrder.setOtcQuantity(customerOrderJSONObject.getBigDecimal("quantity"));
                    //OTC单位
                    customerOrder.setOtcUnit(customerOrderJSONObject.getString("unit"));
                    //期望交货日期
                    customerOrder.setWantedDeliveryDate(customer.getDeliveryDate());
                    //主表id
                    customerOrder.setCustomerId(customer.getId());
                    //电压等级
                    customerOrder.setVoltAgeClass(customerOrderJSONObject.getString("voltageLevel"));
                    //外呼颜色
                    customerOrder.setOuterColor(customerOrderJSONObject.getString("outerSheathColor"));
                    //客户零件名称
                    customerOrder.setProductName(customerOrderJSONObject.getString("productName"));
                    //客户零件规格
                    customerOrder.setCustomerPartSpec(customerOrderJSONObject.getString("specificationModel"));
                    //订单版本
                    customerOrder.setVersion(customerOrderJSONObject.getInteger("version"));
                    //事业部
                    customerOrder.setDivision(customerOrderJSONObject.getString("division"));
                    //印字类型
                    customerOrder.setPrintType(customerOrderJSONObject.getString("printType"));
                    //印字内容
                    customerOrder.setPrintContent(customerOrderJSONObject.getString("printContent"));
                    //印字要求
                    customerOrder.setPrintingRequirements(customerOrderJSONObject.getString("printingRequirements"));
                    //包装要求
                    customerOrder.setPackageRequire(customerOrderJSONObject.getString("packageRequire"));
                    //质量要求
                    customerOrder.setQualityRequire(customerOrderJSONObject.getString("qualityRequire"));
                    //生产需求说明
                    customerOrder.setOtherProductRequire(customerOrderJSONObject.getString("otherProductRequire"));
                    //系统
                    customerOrder.setDivisionSystem(customerOrderJSONObject.getString("divisionSystem"));
                    //收货地址
                    customerOrder.setShippingAddress(customerOrderJSONObject.getString("shippingAddress"));
                    //业务员
                    customerOrder.setSalesmanName(customer.getSalesMan());
                    //盘长要求
                    customerOrder.setLengthRequirement(customerOrderJSONObject.getString("lengthRequirement"));
                    //备注Ï
                    customerOrder.setRemark(customerOrderJSONObject.getString("comment"));
                    //产品类型
                    customerOrder.setProductType(customerOrderJSONObject.getString("productType"));
                    //产品分组
                    customerOrder.setProductGroup(productTypeGroupMap.get(customerOrderJSONObject.getString("productType")));
                    //采集性质
                    customerOrder.setCentralizedMiningProperty(customerJSONObject.getString("centralizedMiningProperty"));
                    //最终客户名称
                    customerOrder.setFinalCustomerName(customerJSONObject.getString("finalCustomerName"));
                    //销售件描述
                    customerOrder.setSalesPartName(customerOrderJSONObject.getString("partDesc"));
                    if (customerOrder.getId() == null) {
                        // é›¶ä»¶æ˜¯å¦æŽ¨é€
                        customerOrder.setOtcPartSync(false);
                        // é»˜è®¤ä¸ºN æ•°æ®å­—典为:N:普通,S:样品,D:研发
                        customerOrder.setManufactureAttr("N");
                        //是否关联工艺文件为否
                        customerOrder.setIsDocument(false);
                        //状态为 å¦‚果采集性质 éžé‡‡é›†å’Œ çœé‡‡é›†  çŠ¶æ€ä½ç¼–è¾‘  å¦åˆ™ä¸º é›¶ä»¶å¾…选
                        if (customerOrder.getCentralizedMiningProperty().equals("非集采") || customerOrder.getCentralizedMiningProperty().equals("省集采")) {
                            customerOrder.setCoState(CustomerOrderStateStringValues.UNIEDIT);
                        } else {
                            customerOrder.setCoState(CustomerOrderStateStringValues.PARTUNCHECKED);
                        }
                        if (org.apache.commons.lang3.StringUtils.equals("已下达", otcMainStatus)) {
                            customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
                            customerOrder.setOtcPartSync(Boolean.TRUE);
                        }
                        //审核状态为 01draft è‰ç¨¿
                        customerOrder.setIsAudit(AuditStateStringValues.DRAFT);
                        baseMapper.insert(customerOrder);
                    } else {
                        // å¦‚果状态为零件待选,且销售件号不为空,更新状态
                        if (StrUtil.isNotBlank(customerOrder.getSalesPartNo()) && CustomerOrderStateStringValues.PARTUNCHECKED.equals(customerOrder.getCoState())) {
                            customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
                            customerOrder.setOtcPartSync(Boolean.TRUE);
                        }
                        baseMapper.updateById(customerOrder);
                    }
                    addCustomerPara(customerJSONObject, customerOrderJSONObject, customerOrder, orderParamList);
                    num += 1;
                }
            }
        } catch (Exception e) {
            throw new RuntimeException("订单行数据获取失败,原因:" + e.getMessage());
        }
        return num;
    }
    //private int addCustomerOrderFromOtc(JSONObject customerJSONObject, Customer customer, String token, List<OrderParam> orderParamList, String otcMainStatus) {
    //    Map<String, String> productTypeGroupMap = customerOrderUnitWhiteListConfig.getProductTypeGroupMap();
    //    int num = 0;
    //    try {
    //        Map<String, Object> map = new HashMap<>();
    //        map.put("orderNo", customer.getContractNo());
    //        map.put("selectTime", "1899-12-31 23:59:59");
    //        JSONObject result = JSONObject.parseObject(HttpRequest.get(customerOrderClientConfigure.getOtcHost() + customerOrderClientConfigure.getOtcCustomerOrderUrl())
    //                .contentType("application/json")
    //                .header("Authorization", "Bearer " + token).form(map).execute().body());
    //        if (result.getInteger("code") == 0) {
    //            JSONArray jsonArray = result.getJSONArray("data");
    //            for (Object obj : jsonArray) {
    //                JSONObject customerOrderJSONObject = JSONObject.parseObject(obj.toString());
    //                String otcLoneId = customerOrderJSONObject.getLong("id").toString();
    //                //OTC的订单状态
    //                String otcOrderStatus = customerOrderJSONObject.getString("lineStatus").toString();
    //                CustomerOrder customerOrder = baseMapper.selectOne(Wrappers.<CustomerOrder>lambdaQuery()
    //                        .eq(CustomerOrder::getOtcLineNo, otcLoneId));
    //                if (customerOrder == null) {
    //                    customerOrder = new CustomerOrder();
    //                }
    //                //如果这个单子在OTC中取消状态 é‚£å°±åˆ é™¤
    //                if (otcOrderStatus.equals("已取消")) {
    //                    if (customerOrder.getId() != null) {
    //                        baseMapper.deleteById(customerOrder.getId());
    //                    }
    //                    continue;
    //                }
    //                //OTC合同号主表id
    //                customerOrder.setOtcOrderId(customerOrderJSONObject.getLong("orderId"));
    //                //otc行号
    //                customerOrder.setOtcLineNo(otcLoneId);
    //                //零件号
    //                customerOrder.setSalesPartNo(customerOrderJSONObject.getString("partNo"));
    //                //来源
    //                customerOrder.setSourceId("OTC");
    //                //合同号
    //                customerOrder.setCustomerOrderNo(customer.getContractNo());
    //                //客户号
    //                customerOrder.setCustomerNo(customer.getCustomerNo());
    //                //客户名称
    //                customerOrder.setCustomerName(customer.getCustomerName());
    //                //销售数量原先OTC的单位
    //                customerOrder.setOtcQuantity(customerOrderJSONObject.getBigDecimal("quantity"));
    //                //OTC单位
    //                customerOrder.setOtcUnit(customerOrderJSONObject.getString("unit"));
    //                //期望交货日期
    //                customerOrder.setWantedDeliveryDate(customer.getDeliveryDate());
    //                //主表id
    //                customerOrder.setCustomerId(customer.getId());
    //                //电压等级
    //                customerOrder.setVoltAgeClass(customerOrderJSONObject.getString("voltageLevel"));
    //                //外呼颜色
    //                customerOrder.setOuterColor(customerOrderJSONObject.getString("outerSheathColor"));
    //                //客户零件名称
    //                customerOrder.setProductName(customerOrderJSONObject.getString("productName"));
    //                //客户零件规格
    //                customerOrder.setCustomerPartSpec(customerOrderJSONObject.getString("specificationModel"));
    //                //订单版本
    //                customerOrder.setVersion(customerOrderJSONObject.getInteger("version"));
    //                //事业部
    //                customerOrder.setDivision(customerOrderJSONObject.getString("division"));
    //                //印字类型
    //                customerOrder.setPrintType(customerOrderJSONObject.getString("printType"));
    //                //印字内容
    //                customerOrder.setPrintContent(customerOrderJSONObject.getString("printContent"));
    //                //印字要求
    //                customerOrder.setPrintingRequirements(customerOrderJSONObject.getString("printingRequirements"));
    //                //包装要求
    //                customerOrder.setPackageRequire(customerOrderJSONObject.getString("packageRequire"));
    //                //质量要求
    //                customerOrder.setQualityRequire(customerOrderJSONObject.getString("qualityRequire"));
    //                //生产需求说明
    //                customerOrder.setOtherProductRequire(customerOrderJSONObject.getString("otherProductRequire"));
    //                //系统
    //                customerOrder.setDivisionSystem(customerOrderJSONObject.getString("divisionSystem"));
    //                //收货地址
    //                customerOrder.setShippingAddress(customerOrderJSONObject.getString("shippingAddress"));
    //                //业务员
    //                customerOrder.setSalesmanName(customer.getSalesMan());
    //                //盘长要求
    //                customerOrder.setLengthRequirement(customerOrderJSONObject.getString("lengthRequirement"));
    //                //备注Ï
    //                customerOrder.setRemark(customerOrderJSONObject.getString("comment"));
    //                //产品类型
    //                customerOrder.setProductType(customerOrderJSONObject.getString("productType"));
    //                //产品分组
    //                customerOrder.setProductGroup(productTypeGroupMap.get(customerOrderJSONObject.getString("productType")));
    //                //采集性质
    //                customerOrder.setCentralizedMiningProperty(customerJSONObject.getString("centralizedMiningProperty"));
    //                //最终客户名称
    //                customerOrder.setFinalCustomerName(customerJSONObject.getString("finalCustomerName"));
    //                //销售件描述
    //                customerOrder.setSalesPartName(customerOrderJSONObject.getString("partDesc"));
    //
    //                if (customerOrder.getId() == null) {
    //                    // é›¶ä»¶æ˜¯å¦æŽ¨é€
    //                    customerOrder.setOtcPartSync(false);
    //                    // é»˜è®¤ä¸ºN æ•°æ®å­—典为:N:普通,S:样品,D:研发
    //                    customerOrder.setManufactureAttr("N");
    //                    //是否关联工艺文件为否
    //                    customerOrder.setIsDocument(false);
    //                    //状态为 å¦‚果采集性质 éžé‡‡é›†å’Œ çœé‡‡é›†  çŠ¶æ€ä½ç¼–è¾‘  å¦åˆ™ä¸º é›¶ä»¶å¾…选
    //                    if (customerOrder.getCentralizedMiningProperty().equals("非集采") || customerOrder.getCentralizedMiningProperty().equals("省集采")) {
    //                        customerOrder.setCoState(CustomerOrderStateStringValues.UNIEDIT);
    //                    } else {
    //                        customerOrder.setCoState(CustomerOrderStateStringValues.PARTUNCHECKED);
    //                    }
    //                    if (org.apache.commons.lang3.StringUtils.equals("已下达", otcMainStatus)) {
    //                        customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
    //                        customerOrder.setOtcPartSync(Boolean.TRUE);
    //                    }
    //                    //审核状态为 01draft è‰ç¨¿
    //                    customerOrder.setIsAudit(AuditStateStringValues.DRAFT);
    //                    baseMapper.insert(customerOrder);
    //                } else {
    //                    // å¦‚果状态为零件待选,且销售件号不为空,更新状态
    //                    if (StrUtil.isNotBlank(customerOrder.getSalesPartNo()) && CustomerOrderStateStringValues.PARTUNCHECKED.equals(customerOrder.getCoState())) {
    //                        customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
    //                        customerOrder.setOtcPartSync(Boolean.TRUE);
    //                    }
    //                    baseMapper.updateById(customerOrder);
    //                }
    //                addCustomerPara(customerJSONObject, customerOrderJSONObject, customerOrder, orderParamList);
    //                num += 1;
    //            }
    //        }
    //    } catch (Exception e) {
    //        throw new RuntimeException("订单行数据获取失败,原因:" + e.getMessage());
    //    }
    //    return num;
    //}
    /**
     * @param jsonObjMain    ä¸»è¡¨çš„jsonObj
mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerServiceImpl.java
@@ -18,20 +18,24 @@
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chinaztt.mes.plan.dto.CustomerDTO;
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;
/**
 * å®¢æˆ·è®¢å•主表
@@ -45,24 +49,44 @@
    private CustomerOrderMapper customerOrderMapper;
    private CustomerOrderService customerOrderService;
    @Override
    public boolean saveDto(CustomerDTO customerDTO) {
        //客户订单号 ZTTIC20220001
    public boolean saveDto(CustomerVO customerVO) {
        /*新增客户订单主表*/
        //客户订单号 ZTMSLS2023101801
        Customer customer = new Customer();
        BeanUtils.copyProperties(customerVO,customer);
        String contractNo = contractNoMake();
        customerDTO.setContractNo(contractNo);
        baseMapper.insert(customerDTO);
        CustomerOrder customerOrder = customerDTO.getCustomerOrder();
        customerOrder.setCustomerId(customerDTO.getId());
        customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
        customerOrder.setIsAudit(AuditStateStringValues.DRAFT);
        customerOrder.setSalesmanName(customerDTO.getSalesMan());
        customerOrder.setDivision(customerDTO.getSalesDepartment());
        customerOrder.setCustomerName(customerDTO.getCustomerName());
        customerOrder.setOtcPartSync(true);
        customerOrder.setCustomerOrderNo(contractNo);
        customerOrder.setOtcPartSync(false);
        customerOrder.setSalesPartNo(customerDTO.getCustomerOrder().getPartNo());
        customerOrderMapper.insert(customerOrder);
        customer.setContractNo(contractNo); //合同号
        baseMapper.insert(customer);
        /*批量新增客户订单产品表*/
        List<CustomerOrderVO> customerOrderVOList = customerVO.getCustomerOrderVOList();
        List<CustomerOrder> 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;
    }
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.chinaztt.mes.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
//新增销售(产品)单参数
public class CustomerOrderVO {
    /**
     * é›¶ä»¶å·ï¼šç”¨äºŽç”Ÿäº§çš„零件号
     */
    @ApiModelProperty(value = "零件号:用于生产的零件号")
    private String partNo;
    /**
     * æ•°é‡
     */
    @ApiModelProperty(value = "数量")
    private BigDecimal buyQtyDue;
    /**
     * äº§å“åç§°
     */
    @ApiModelProperty(value = "产品名称")
    private String productName;
    /**
     * é”€å”®å•位
     */
    @ApiModelProperty(value = "销售单位")
    private String otcUnit;
    /**
     * å®¢æˆ·é›¶ä»¶è§„æ ¼
     */
    @ApiModelProperty(value = "客户零件规格")
    private String customerPartSpec;
    /**
     * æ”¶è´§åœ°å€
     */
    @ApiModelProperty(value = "收货地址")
    private String shippingAddress;
    /**
     * äº§å“ç±»åž‹
     */
    @ApiModelProperty(value = "产品类型")
    private String productType;
    /**
     * äº§å“å¤‡æ³¨
     */
    @ApiModelProperty(value = "产品备注")
    private String remark;
    /**
     * åˆ¶é€ å±žæ€§
     */
    @ApiModelProperty(value = "制造属性")
    private String manufactureAttr;
}
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO1.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,180 @@
package com.chinaztt.mes.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
//查看详情
public class CustomerOrderVO1 {
    /**
     * è®¢å•产品id
     */
    private Long id;
    /**
     * åˆåŒå·
     */
    @ApiModelProperty(value="合同号")
    private String contractNo;
    /**
     * å®¢æˆ·åç§°
     */
    @ApiModelProperty(value="客户名称")
    private String customerName;
    /**
     * å·¥ç¨‹åç§°
     */
    @ApiModelProperty(value="工程名称")
    private String entityName;
    /**
     * é”€å”®è®¢å•状态
     */
    private String coState;
    /**
     * äº¤è´§æ—¥æœŸ
     */
    @ApiModelProperty(value="交货日期")
    private LocalDateTime deliveryDate;
    /**
     * çœä»½
     */
    @ApiModelProperty(value="省份")
    private String province;
    /**
     * ä¸šåŠ¡å‘˜
     */
    @ApiModelProperty(value="业务员")
    private String salesMan;
    /**
     * ä¸šåŠ¡å‘˜ç¼–å·
     */
    @ApiModelProperty(value="业务员编号")
    private String salerWorkCode;
    /**
     * æ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="正本状态")
    private String originalContractStatus;
    /**
     * é¡¹ç›®æ€§è´¨
     */
    @ApiModelProperty(value="项目性质")
    private String isCp;
    /**
     * å®¢æˆ·ç¼–码
     */
    @ApiModelProperty(value="客户编码")
    private String customerNo;
    /**
     * åˆåŒæ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="合同正本状态")
    private String returnStatus;
    /**
     * ä¸‹å•日期
     */
    @ApiModelProperty(value="下单日期")
    private LocalDateTime placeOrderDate;
    /**
     * å·¥åŽ‚ä¸‹å•æ—¥æœŸ
     */
    @ApiModelProperty(value="工厂下单日期")
    private LocalDateTime factoryPlaceOrderDate;
    /**
     * è®¢å•备注
     */
    @ApiModelProperty(value="订单备注")
    private String comment;
    /*产品详情*/
    /**
     * æ¥æºid:用于同步数据
     */
    @ApiModelProperty(value = "来源id:用于同步数据")
    private String sourceId;
    /**
     * é›¶ä»¶å·ï¼šç”¨äºŽç”Ÿäº§çš„零件号
     */
    @ApiModelProperty(value = "零件号:用于生产的零件号")
    private String partNo;
    /**
     * æ•°é‡
     */
    @ApiModelProperty(value = "数量")
    private BigDecimal buyQtyDue;
    /**
     * äº§å“åç§°
     */
    @ApiModelProperty(value = "产品名称")
    private String productName;
    /**
     * é”€å”®å•位
     */
    @ApiModelProperty(value = "销售单位")
    private String otcUnit;
    /**
     * å®¢æˆ·é›¶ä»¶è§„æ ¼
     */
    @ApiModelProperty(value = "客户零件规格")
    private String customerPartSpec;
    /**
     * æ”¶è´§åœ°å€
     */
    @ApiModelProperty(value = "收货地址")
    private String shippingAddress;
    /**
     * äº§å“ç±»åž‹
     */
    @ApiModelProperty(value = "产品类型")
    private String productType;
    /**
     * äº§å“å¤‡æ³¨
     */
    @ApiModelProperty(value = "产品备注")
    private String remark;
    /**
     * å·¥è‰ºæ–‡ä»¶id
     */
    @ApiModelProperty(value = "工艺文件id")
    private Long technologyDocumentId;
    /**
     * å·¥è‰ºæ–‡ä»¶ç¼–号
     */
    @ApiModelProperty(value = "工艺文件编号")
    private String docNumber;
    /**
     * å·¥è‰ºæ–‡ä»¶å
     */
    @ApiModelProperty(value = "工艺文件名")
    private String docName;
    /**
     * åˆ¶é€ å±žæ€§
     */
    @ApiModelProperty(value = "制造属性")
    private String manufactureAttr;
}
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.chinaztt.mes.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
//销售订单分页查询
public class CustomerOrderVO2 {
    //销售订单产品单id
    private Long id;
    //合同编号
    private String contractNo;
    //工程名称
    private String entityName;
    //添加人
    private String createUser;
    //添加日期
    private LocalDateTime createTime;
    //下单日期
    private LocalDateTime placeOrderDate;
    //交货时间
    private LocalDateTime deliveryDate;
    //客户名称
    private String customerName;
    //销售订单状态
    private String coState;
    //审核状态
    private String isAudit;
    //订单来源
    private String sourceId;
    //产品类型
    private String productType;
    //产品编号
    private String partNo;
    //产品名称
    private String productName;
    //规格型号
    private String customerPartSpec;
    //单位
    private String otcUnit;
    //数量
    private BigDecimal buyQtyDue;
    //工艺文件号
    private String docNumber;
    //工艺文件id
    private String technologyDocumentId;
    //合同正本状态
    private String returnStatus;
    //正本状态
    private String originalContractStatus;
    //业务员
    private String salesMan;
    /**
     * åˆ¶é€ å±žæ€§
     */
    @ApiModelProperty(value = "制造属性")
    private String manufactureAttr;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String remark;
}
mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
package com.chinaztt.mes.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
//新增销售单参数
public class CustomerVO {
    /**
     * åˆåŒå·
     */
    @ApiModelProperty(value="合同号")
    private String contractNo;
    /**
     * å®¢æˆ·åç§°
     */
    @ApiModelProperty(value="客户名称")
    private String customerName;
    /**
     * å·¥ç¨‹åç§°
     */
    @ApiModelProperty(value="工程名称")
    private String entityName;
    /**
     * äº¤è´§æ—¥æœŸ
     */
    @ApiModelProperty(value="交货日期")
    private LocalDateTime deliveryDate;
    /**
     * çœä»½
     */
    @ApiModelProperty(value="省份")
    private String province;
    /**
     * ä¸šåŠ¡å‘˜
     */
    @ApiModelProperty(value="业务员")
    private String salesMan;
    /**
     * ä¸šåŠ¡å‘˜ç¼–å·
     */
    @ApiModelProperty(value="业务员编号")
    private String salerWorkCode;
    /**
     * æ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="正本状态")
    private String originalContractStatus;
    /**
     * é¡¹ç›®æ€§è´¨
     */
    @ApiModelProperty(value="项目性质")
    private String isCp;
    /**
     * å®¢æˆ·ç¼–码
     */
    @ApiModelProperty(value="客户编码")
    private String customerNo;
    /**
     * åˆåŒæ­£æœ¬çŠ¶æ€
     */
    @ApiModelProperty(value="合同正本状态")
    private String returnStatus;
    /**
     * ä¸‹å•日期
     */
    @ApiModelProperty(value="下单日期")
    private LocalDateTime placeOrderDate;
    /**
     * å·¥åŽ‚ä¸‹å•æ—¥æœŸ
     */
    @ApiModelProperty(value="工厂下单日期")
    private LocalDateTime factoryPlaceOrderDate;
    /**
     * è®¢å•备注
     */
    @ApiModelProperty(value="订单备注")
    private String comment;
    //产品单合集
    private List<CustomerOrderVO> customerOrderVOList;
}
mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml
@@ -242,52 +242,112 @@
        pco.centralized_mining_property
    </sql>
    <resultMap id="resultMap" type="com.chinaztt.mes.plan.vo.CustomerOrderVO2">
        <id property="id" column="id"/>
        <result property="contractNo" column="contract_no"/>
        <result property="entityName" column="entity_name"/>
        <result property="createUser" column="create_user"/>
        <result property="createTime" column="create_time"/>
        <result property="placeOrderDate" column="place_order_date"/>
        <result property="customerName" column="customer_name"/>
        <result property="coState" column="co_state"/>
        <result property="isAudit" column="is_audit"/>
        <result property="sourceId" column="source_id"/>
        <result property="productType" column="product_type"/>
        <result property="partNo" column="part_no"/>
        <result property="productName" column="product_name"/>
        <result property="customerPartSpec" column="customer_part_spec"/>
        <result property="otcUnit" column="otc_unit"/>
        <result property="buyQtyDue" column="buy_qty_due"/>
        <result property="docNumber" column="number"/>
        <result property="technologyDocumentId" column="technology_document_id"/>
        <result property="returnStatus" column="return_status"/>
        <result property="originalContractStatus" column="original_contract_status"/>
        <result property="salesMan" column="sales_man"/>
        <result property="deliveryDate" column="delivery_date"/>
        <result property="manufactureAttr" column="manufacture_attr"/>
        <result property="remark" column="remark"/>
    </resultMap>
    <!-- éœ€è¦å¤„理 -->
    <select id="getCustomerOrderPage" resultMap="dtoResultMap">
    <select id="getCustomerOrderPage" resultMap="resultMap">
        SELECT
            *
        pco.id ,
        contract_no ,
        pc.entity_name ,
        pc.create_user ,
        pc.create_time ,
        place_order_date ,
        pc.customer_name ,
        co_state ,
        is_audit ,
        source_id ,
        product_type ,
        pco.part_no ,
        product_name ,
        customer_part_spec ,
        otc_unit ,
        buy_qty_due ,
        technology_document_id,
        td.number ,
        return_status ,
        original_contract_status ,
        sales_man ,
        delivery_date,
        manufacture_attr,
        pco.remark
        FROM
            (SELECT
                 <include refid="customerOrder_property"/>,
                 (SELECT COALESCE(SUM(pmps.qty_required),0)
                    FROM plan_master_production_schedule pmps
                    LEFT JOIN plan_join_model_customer pjmc on pjmc.model_id=pmps."id" AND pjmc.model = 'plan_master_production_schedule'
                    WHERE pjmc.customer_order_id=pco."id")
                    require_number,
                 (SELECT COALESCE(SUM(wjso.reserved_quantity),0)
                    FROM warehouse_join_stock_order wjso
                    WHERE wjso.customer_order_id = pco."id" AND wjso.type ='客户订单预留' AND status ='02confirmed' )
                    reserved_quantity_realtime,
                 bp."id" part_id,
                 bp.part_name,
                 bp.unit,
                 pc.entity_name,
                 pc.verify_date,
                 pc.customer_contract_no,
                 pc.comment,
                 pc.return_status,
                 pc.place_order_date,
                 pc.factory_place_order_date,
                 pc.original_contract_status,
                 pc.end_time,
                 cop.value outerColor,
                 td.name doc_name,
                 td.number doc_number,
                 td.insulation_color,
                 td.sheath_color
             FROM
                 plan_customer_order pco
                     LEFT JOIN plan_customer pc ON pc."id" = pco.customer_id
                     LEFT JOIN basic_part bp ON bp.part_no = pco.part_no
                     LEFT JOIN technology_document td ON td.id = pco.technology_document_id
                     LEFT JOIN plan_customer_order_param cop ON cop.order_id = pco.ID
                     AND field = 'OuterColor'
            ) tempA
        <where>
        plan_customer_order pco
        LEFT JOIN plan_customer pc ON pc."id" = pco.customer_id
        LEFT JOIN technology_document td ON td.id = pco.technology_document_id
        where 1=1
            <if test="ew.emptyOfWhere == false">
                and ${ew.SqlSegment}
            </if>
        </where>
<!--        SELECT-->
<!--            *-->
<!--        FROM-->
<!--            (SELECT-->
<!--                 <include refid="customerOrder_property"/>,-->
<!--                 (SELECT COALESCE(SUM(pmps.qty_required),0)-->
<!--                    FROM plan_master_production_schedule pmps-->
<!--                    LEFT JOIN plan_join_model_customer pjmc on pjmc.model_id=pmps."id" AND pjmc.model = 'plan_master_production_schedule'-->
<!--                    WHERE pjmc.customer_order_id=pco."id")-->
<!--                    require_number,-->
<!--                 (SELECT COALESCE(SUM(wjso.reserved_quantity),0)-->
<!--                    FROM warehouse_join_stock_order wjso-->
<!--                    WHERE wjso.customer_order_id = pco."id" AND wjso.type ='客户订单预留' AND status ='02confirmed' )-->
<!--                    reserved_quantity_realtime,-->
<!--                 bp."id" part_id,-->
<!--                 bp.part_name,-->
<!--                 bp.unit,-->
<!--                 pc.entity_name,-->
<!--                 pc.verify_date,-->
<!--                 pc.customer_contract_no,-->
<!--                 pc.comment,-->
<!--                 pc.return_status,-->
<!--                 pc.place_order_date,-->
<!--                 pc.factory_place_order_date,-->
<!--                 pc.original_contract_status,-->
<!--                 pc.end_time,-->
<!--                 cop.value outerColor,-->
<!--                 td.name doc_name,-->
<!--                 td.number doc_number,-->
<!--                 td.insulation_color,-->
<!--                 td.sheath_color-->
<!--             FROM-->
<!--                 plan_customer_order pco-->
<!--                     LEFT JOIN plan_customer pc ON pc."id" = pco.customer_id-->
<!--                     LEFT JOIN basic_part bp ON bp.part_no = pco.part_no-->
<!--                     LEFT JOIN technology_document td ON td.id = pco.technology_document_id-->
<!--                     LEFT JOIN plan_customer_order_param cop ON cop.order_id = pco.ID-->
<!--                     AND field = 'OuterColor'-->
<!--            ) tempA-->
<!--        <where>-->
<!--            <if test="ew.emptyOfWhere == false">-->
<!--                and ${ew.SqlSegment}-->
<!--            </if>-->
<!--        </where>-->
    </select>
    <select id="getCustomerOrderById" resultType="com.alibaba.fastjson.JSONObject">
mes-web/src/main/resources/bootstrap.yml
@@ -6,7 +6,7 @@
    druid:
      username: postgres
      #      password: postgres123
      password: zsAdmin123!
      password: root2022
      #      å°„频开发数据库
      url: jdbc:postgresql://127.0.0.1:5432/postgres
  application:
@@ -17,7 +17,7 @@
      #      password: nacos
      password: zttZTT123!
      discovery:
        server-addr: 127.0.0.1:8848
        server-addr: 106.13.194.57:8848
        metadata:
          #          VERSION: 10.88.15.224
          VERSION: 127.0.0.1