Commit dca6c5d4 authored by tangwei's avatar tangwei

发货管理功能开发

parent d67c2bba
...@@ -169,12 +169,12 @@ ...@@ -169,12 +169,12 @@
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.7.22</version> <version>5.7.22</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>com.yeejoin</groupId> <!-- <groupId>com.yeejoin</groupId>-->
<artifactId>amos-component-influxdb</artifactId> <!-- <artifactId>amos-component-influxdb</artifactId>-->
<version>1.8.5-SNAPSHOT</version> <!-- <version>1.8.5-SNAPSHOT</version>-->
<scope>compile</scope> <!-- <scope>compile</scope>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>com.taosdata.jdbc</groupId> <groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId> <artifactId>taos-jdbcdriver</artifactId>
......
...@@ -9,7 +9,6 @@ import com.yeejoin.amos.api.householdapi.face.model.HouseholdPvApiDto; ...@@ -9,7 +9,6 @@ import com.yeejoin.amos.api.householdapi.face.model.HouseholdPvApiDto;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.houseapi.HouseholdPvProducerInfo; import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.houseapi.HouseholdPvProducerInfo;
import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvApiServiceImpl; import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvApiServiceImpl;
import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvProducerInfoServiceImpl; import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvProducerInfoServiceImpl;
import com.yeejoin.amos.component.influxdb.InfluxDbConnection;
import com.yeejoin.amos.openapi.enums.PVProducerInfoEnum; import com.yeejoin.amos.openapi.enums.PVProducerInfoEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -23,8 +22,8 @@ import java.util.*; ...@@ -23,8 +22,8 @@ import java.util.*;
@Slf4j @Slf4j
public class HouseholdPvUtils { public class HouseholdPvUtils {
private final static String API_REDIS_PREFIX = "HOUSEHOLD_API_CACHE_"; private final static String API_REDIS_PREFIX = "HOUSEHOLD_API_CACHE_";
@Autowired // @Autowired
InfluxDbConnection influxDbConnection; // InfluxDbConnection influxDbConnection;
@Autowired @Autowired
private HouseholdPvProducerInfoServiceImpl householdPvProducerInfoServiceImpl; private HouseholdPvProducerInfoServiceImpl householdPvProducerInfoServiceImpl;
@Autowired @Autowired
......
...@@ -11,7 +11,7 @@ spring.db1.datasource.password=Yeejoin@2020 ...@@ -11,7 +11,7 @@ spring.db1.datasource.password=Yeejoin@2020
spring.db1.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.db1.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
## db2-sync_data ## db2-sync_data
spring.db2.datasource.type: com.alibaba.druid.pool.DruidDataSource spring.db2.datasource.type: com.alibaba.druid.pool.DruidDataSource
spring.db2.datasource.url=jdbc:mysql://172.16.10.220:3306/amos_project?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8 spring.db2.datasource.url=jdbc:mysql://47.92.234.253:3306/amos_project_2023?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.db2.datasource.username=root spring.db2.datasource.username=root
spring.db2.datasource.password=Yeejoin@2020 spring.db2.datasource.password=Yeejoin@2020
spring.db2.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.db2.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
...@@ -58,14 +58,14 @@ biz.lxyd.lift.url=http://39.106.181.149:8088/elevatorapi ...@@ -58,14 +58,14 @@ biz.lxyd.lift.url=http://39.106.181.149:8088/elevatorapi
# influxDB # influxDB
spring.influx.url=http://139.9.173.44:8086 #spring.influx.url=http://139.9.173.44:8086
spring.influx.password=Yeejoin@2020 #spring.influx.password=Yeejoin@2020
spring.influx.user=root #spring.influx.user=root
spring.influx.database=station_platform #spring.influx.database=station_platform
spring.influx.retention_policy=default #spring.influx.retention_policy=default
spring.influx.retention_policy_time=30d #spring.influx.retention_policy_time=30d
spring.influx.actions=10000 #spring.influx.actions=10000
spring.influx.bufferLimit=20000 #spring.influx.bufferLimit=20000
# ?????????? # ??????????
......
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:
* @author: tw
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public enum ArrivalStateeEnum {
待收货("待收货", "待收货"),
已收货("已收货", "已收货"),
已作废("已作废", "已作废");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
public static ContractStatusEnum getNodeByCode(String code) {
ContractStatusEnum dealerReviewEnum = null;
for(ContractStatusEnum type: ContractStatusEnum.values()) {
if (type.getCode().equals(code)) {
dealerReviewEnum = type;
break;
}
}
return dealerReviewEnum;
}
}
...@@ -21,6 +21,8 @@ public enum CodeEnum { ...@@ -21,6 +21,8 @@ public enum CodeEnum {
勘察("KC", "KC"), 勘察("KC", "KC"),
货单("HD", "HD"),
档案("DA", "DA"); 档案("DA", "DA");
/** /**
......
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:
* @author: tw
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public enum DeliveryStateeEnum {
待发货("待发货", "待发货"),
已发货("已发货", "已发货"),
已作废("已作废", "已作废");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
public static ContractStatusEnum getNodeByCode(String code) {
ContractStatusEnum dealerReviewEnum = null;
for(ContractStatusEnum type: ContractStatusEnum.values()) {
if (type.getCode().equals(code)) {
dealerReviewEnum = type;
break;
}
}
return dealerReviewEnum;
}
}
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:
* @author: tw
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public enum PreparationEnum {
创建发货单("创建发货单", "创建发货单"),
确认发货("确认发货", "确认发货"),
确认收货("确认收货", "确认收货"),
作废发货单("作废发货单", "作废发货单");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
public static ContractStatusEnum getNodeByCode(String code) {
ContractStatusEnum dealerReviewEnum = null;
for(ContractStatusEnum type: ContractStatusEnum.values()) {
if (type.getCode().equals(code)) {
dealerReviewEnum = type;
break;
}
}
return dealerReviewEnum;
}
}
...@@ -28,101 +28,98 @@ public class PreparationMoneyDto extends BaseDto { ...@@ -28,101 +28,98 @@ public class PreparationMoneyDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
@ApiModelProperty(value = " 单号") * 发货单号
*/
private String oddNumbers; private String oddNumbers;
@ApiModelProperty(value = " 收货地址")
private String deliveryAddress;
@ApiModelProperty(value = "详细地址")
private String detailAddress;
@ApiModelProperty(value = " 下单人") /**
* 下单人
*/
private String orderUser; private String orderUser;
@ApiModelProperty(value = "下单时间") /**
@JsonFormat (pattern="yyyy-MM-dd") * 下单时间
*/
private Date orderTime; private Date orderTime;
@ApiModelProperty(value = "经销商id")
private String dealerId;
@ApiModelProperty(value = "经销商名称")
private String dealerName;
@ApiModelProperty(value = " 发货地址")
@TableField (typeHandler = FastjsonTypeHandler.class)
private List<String> sendAddress;
@ApiModelProperty(value = " 业主类型")
private String ownerType;
@ApiModelProperty(value = "业务员")
private String salesman;
@ApiModelProperty(value = "预估重量") /**
private Double estimatedWeight; * 经销商单位名称
*/
@ApiModelProperty(value = "备注") private String amosUnitName;
private String notes;
@ApiModelProperty(value = "收货人")
private String consignee;
@ApiModelProperty(value = "收货人手机号")
private String consigneePhone;
@ApiModelProperty(value = "收货人地址") /**
@TableField (typeHandler = FastjsonTypeHandler.class) * 经销商单位id
private List<String> consigneeAddress; */
private Long amosUnitId;
/**
* 经销商orgcode
*/
private String amosUnitOrgCode;
@ApiModelProperty(value = "收货人详细地址")
private String consigneeDetailAddress;
@ApiModelProperty(value = "发货单") /**
@TableField(typeHandler = FastjsonTypeHandler.class) * 所属区域公司id
private List<Object> invoice; */
private Long regionalCompaniesSeq;
@ApiModelProperty(value = "收货单") /**
@TableField(typeHandler = FastjsonTypeHandler.class) * 所属区域公司名称
private List<Object> receipt; */
private String regionalCompaniesName;
@ApiModelProperty(value = "订单状态0未完成1已完成2作废") /**
private String documentState; * 所属区域公司code
*/
private String regionalCompaniesCode;
@ApiModelProperty(value = "发货状态 0 未发货1已发货") /**
private String shipmentStatus; * 发货人
*/
private String shipper;
@ApiModelProperty(value = "到货状态0未到货1已到货") /**
private String receivingStatus; * 预估重量
*/
private Double estimatedWeight;
@ApiModelProperty(value = "清单价格") /**
private Double inventoryPrice; * 备注
*/
private String notes;
@ApiModelProperty(value = "折扣") /**
private Double discount; * 发货状态0待发货1已发货成2已作废
*/
private String deliveryState;
@ApiModelProperty(value = "促销") /**
private Double promotion; * 到货货状态0待发货1已发货成2已作废
*/
private String arrivalState;
/**
* 发货时间
*/
private Date deliveryTime;
/**
* 到货时间
*/
private Date arrivalTime;
@ApiModelProperty(value = "合同价格") private String consignee; //收货人
private Double contractPrice;
@ApiModelProperty(value = "总价") private String phone; //收货人电话
private Double totalPrice;
@ApiModelProperty(value = "到货时间") private String consigneeRegion; //收货区域
@JsonFormat (pattern="yyyy-MM-dd")
private Date deliveryTime;
@ApiModelProperty(value = "发货电站列表") private List<Integer> consigneeRegionCode; //收货区域code
@NotEmpty(message = "请选择发货电站")
private List<PeasantHouseholdDto> powerStations;
@ApiModelProperty(value = "BOM清单") private String address; //收货详细地址
private List<DocumentBomDto> documentBoms; //发货单
private List<Object> deliveryFile; //发货单
@ApiModelProperty(value = "单据追踪") private List<Object> arrivalFile; //收货单
private List<PreparationMoneyLogDto> preparationMoneyLogs;
} }
package com.yeejoin.amos.boot.module.hygf.api.dto; package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -21,9 +22,14 @@ public class PreparationMoneyLogDto extends BaseDto { ...@@ -21,9 +22,14 @@ public class PreparationMoneyLogDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "货单id") private Long preparationMoneyId;//发货单id
private Long preparationMoneyId;
@ApiModelProperty(value = "货单id")
private String operationContent; private String operationContent;//执行节点
private String executor;//执行人
private String executionTime;//执行时间
private String executionRole;//执行角色
} }
...@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney; import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List;
/** /**
* @description: * @description:
* @author: tw * @author: tw
...@@ -13,17 +16,16 @@ import lombok.Data; ...@@ -13,17 +16,16 @@ import lombok.Data;
public class PreparationPageDto extends Page<PreparationMoney> { public class PreparationPageDto extends Page<PreparationMoney> {
String orderBy; String orderBy;
Boolean isASC; Boolean isASC;
//时间开始
String startDate;
//时间结束
String endDate;
String consigneeAddress;//订单区域
String dealerId;//经销商 String consigneeRegion;//订单区域
String amosUnitId;//经销商
String amosUnitName;//经销商
String oddNumbers;//发货单号 String oddNumbers;//发货单号
String salesman;//业主类型 String regionalCompaniesCode;
String documentState;//订单状态未完成已完成作废
String shipmentStatus;//发货状态 未发货已发货 String arrivalState;//收货
String receivingStatus;//到货状态未到货已到货 String deliveryState;//发货状态 未发货已发货
Boolean isdocumentStatezf; List<String> deliveryTime;
} }
...@@ -26,22 +26,12 @@ public class PreparationMoney extends BaseEntity { ...@@ -26,22 +26,12 @@ public class PreparationMoney extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 单号 * 发货单号
*/ */
@TableField("odd_numbers") @TableField("odd_numbers")
private String oddNumbers; private String oddNumbers;
/**
* 收货地址
*/
@TableField("delivery_address")
private String deliveryAddress;
/**
* 详细地址
*/
@TableField("detail_address")
private String detailAddress;
/** /**
* 下单人 * 下单人
...@@ -55,35 +45,48 @@ public class PreparationMoney extends BaseEntity { ...@@ -55,35 +45,48 @@ public class PreparationMoney extends BaseEntity {
@TableField("order_time") @TableField("order_time")
private Date orderTime; private Date orderTime;
/**
* 经销商单位名称
*/
@TableField("amos_unit_name")
private String amosUnitName;
/**
* 经销商单位id
*/
@TableField("amos_unit_id")
private Long amosUnitId;
/** /**
* 经销商id * 经销商orgcode
*/ */
@TableField("dealer_id") @TableField("amos_unit_org_code")
private String dealerId; private String amosUnitOrgCode;
/** /**
* 经销商名称 * 所属区域公司id
*/ */
@TableField("dealer_name") @TableField("regional_companies_seq")
private String dealerName; private Long regionalCompaniesSeq;
/** /**
* 发货地址 * 所属区域公司名称
*/ */
@TableField(value = "send_address",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED) @TableField("regional_companies_name")
private List<Object> sendAddress; private String regionalCompaniesName;
/** /**
* 业主类型 * 所属区域公司code
*/ */
@TableField("owner_type") @TableField("regional_companies_code")
private String ownerType; private String regionalCompaniesCode;
/** /**
* 业务员 * 发货人
*/ */
@TableField("salesman") @TableField("shipper")
private String salesman; private String shipper;
/** /**
* 预估重量 * 预估重量
...@@ -98,100 +101,52 @@ public class PreparationMoney extends BaseEntity { ...@@ -98,100 +101,52 @@ public class PreparationMoney extends BaseEntity {
private String notes; private String notes;
/** /**
* 收货人 * 发货状态0待发货1已发货成2已作废
*/ */
@TableField("consignee") @TableField("delivery_state")
private String consignee; private String deliveryState;
/** /**
* 收货人手机号 * 到货货状态 待收货1已收货成2已作废
*/ */
@TableField("consignee_phone") @TableField("arrival_state")
private String consigneePhone; private String arrivalState;
/** /**
* 收货人地址 * 发货时间
*/ */
@TableField(value = "consignee_address",typeHandler = FastjsonTypeHandler.class) @TableField("delivery_time")
private List<Object> consigneeAddress; private Date deliveryTime;
/** /**
* 收货人详细地址 * 到货时间
*/ */
@TableField("consignee_detail_address") @TableField("arrival_time")
private String consigneeDetailAddress; private Date arrivalTime;
/** @TableField("consignee")
* 发货单 private String consignee; //收货人
*/
@TableField(value = "invoice",typeHandler = FastjsonTypeHandler.class) @TableField("phone")
private List<Object> invoice; private String phone; //收货人电话
/** @TableField("consignee_region")
* 收货单 private String consigneeRegion; //收货区域
*/
@TableField(value = "receipt",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
private List<Object> receipt;
/** @TableField(value = "consignee_region_code",typeHandler = FastjsonTypeHandler.class)
* 订单状态0未完成1已完成2已作废 private List<Integer> consigneeRegionCode; //收货区域code
*/
@TableField("document_state")
private String documentState;
/** @TableField("address")
* 发货状态 0 未发货1已发货 private String address; //收货详细地址
*/
@TableField("shipment_status")
private String shipmentStatus;
/** @TableField(value = "delivery_file", typeHandler = FastjsonTypeHandler.class)
* 到货状态0未到货1已到货 private List<Object> deliveryFile; //发货单
*/
@TableField("receiving_status")
private String receivingStatus;
/** @TableField(value = "arrival_file", typeHandler = FastjsonTypeHandler.class)
* 清单价格 private List<Object> arrivalFile; //收货单
*/
@TableField("inventory_price")
private Double inventoryPrice;
/** @TableField(value = "peasant_household_id", typeHandler = FastjsonTypeHandler.class)
* 折扣 private List<Long> peasantHouseholdId; //发货单
*/
@TableField("discount")
private Double discount;
/**
* 促销
*/
@TableField("promotion")
private Double promotion;
/**
* 合同价格
*/
@TableField("contract_price")
private Double contractPrice;
/**
* 总价
*/
@TableField("total_price")
private Double totalPrice;
/**
*
* 验证 状态
* */
@TableField("validating")
private String validating;
/**
* 到货时间
*/
@TableField("delivery_time")
private Date deliveryTime;
} }
...@@ -7,6 +7,8 @@ import lombok.Data; ...@@ -7,6 +7,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date;
/** /**
* 发货单日志记录 * 发货单日志记录
* *
...@@ -22,8 +24,20 @@ public class PreparationMoneyLog extends BaseEntity { ...@@ -22,8 +24,20 @@ public class PreparationMoneyLog extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableField ("preparation_money_id") @TableField ("preparation_money_id")
private Long preparationMoneyId; private Long preparationMoneyId;//发货单id
@TableField ("operation_content") @TableField ("operation_content")
private String operationContent; private String operationContent;//执行节点
@TableField ("executor")
private String executor;//执行人
@TableField ("execution_time")
private Date executionTime;//执行时间
@TableField ("execution_role")
private String executionRole;//执行角色
} }
...@@ -72,8 +72,8 @@ public class RegionalCompanies extends BaseEntity { ...@@ -72,8 +72,8 @@ public class RegionalCompanies extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String companyCode; private String companyCode;
@TableField(exist = false)
private List<Object> children;
......
...@@ -2,6 +2,9 @@ package com.yeejoin.amos.boot.module.hygf.api.mapper; ...@@ -2,6 +2,9 @@ package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold; import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 农户信息 Mapper 接口 * 农户信息 Mapper 接口
...@@ -10,5 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -10,5 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @date 2023-07-07 * @date 2023-07-07
*/ */
public interface PeasantHouseholdMapper extends BaseMapper<PeasantHousehold> { public interface PeasantHouseholdMapper extends BaseMapper<PeasantHousehold> {
List<PeasantHousehold> selectPeasantHouseholdList(@Param("developerId") Long developerId,
@Param("regionalCompaniesSeq")Long regionalCompaniesSeq
);
} }
...@@ -2,7 +2,11 @@ package com.yeejoin.amos.boot.module.hygf.api.mapper; ...@@ -2,7 +2,11 @@ package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney; import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 发货单 Mapper 接口 * 发货单 Mapper 接口
...@@ -12,4 +16,7 @@ import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney; ...@@ -12,4 +16,7 @@ import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
*/ */
public interface PreparationMoneyMapper extends BaseMapper<PreparationMoney> { public interface PreparationMoneyMapper extends BaseMapper<PreparationMoney> {
List<PeasantHousehold> getPeasantHouseholdData(@Param("sequenceNbr") Long sequenceNbr,@Param("ownersName") String ownersName);
} }
...@@ -2,6 +2,8 @@ package com.yeejoin.amos.boot.module.hygf.api.service; ...@@ -2,6 +2,8 @@ package com.yeejoin.amos.boot.module.hygf.api.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
/** /**
* 发货单接口类 * 发货单接口类
...@@ -20,7 +22,7 @@ public interface IPreparationMoneyService { ...@@ -20,7 +22,7 @@ public interface IPreparationMoneyService {
* @author Provence * @author Provence
* @throws * @throws
*/ */
PreparationMoneyDto saveOrUpdateObject(PreparationMoneyDto model); PreparationMoney saveOrUpdateObject(PreparationMoney model, AgencyUserModel agencyUserModel);
/** /**
* 更新发货单状态 * 更新发货单状态
......
...@@ -53,11 +53,11 @@ public class NumberUtil { ...@@ -53,11 +53,11 @@ public class NumberUtil {
code= code+ address.replace("省","") code= code+ getChineseStr(address.replace("省","")
.replace("市","") .replace("市","")
.replace("区","") .replace("区","")
.replace("县","") .replace("县","")
.replace(",",""); .replace(",",""));
code= type+code+dateFormat()+getnum(); code= type+code+dateFormat()+getnum();
return code; return code;
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.hygf.api.mapper.PeasantHouseholdMapper"> <mapper namespace="com.yeejoin.amos.boot.module.hygf.api.mapper.PeasantHouseholdMapper">
<select id="selectPeasantHouseholdList" resultType="com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold">
SELECT * FROM hygf_peasant_household LEFT JOIN hygf_household_contract ON hygf_household_contract.peasant_household_id=hygf_peasant_household.sequence_nbr where
hygf_household_contract.`status`='双方已签署'
and hygf_peasant_household.developer_id=#{developerId}
and hygf_peasant_household.regional_companies_seq=#{regionalCompaniesSeq}
and hygf_peasant_household.review=2
</select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyMapper"> <mapper namespace="com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyMapper">
<select id="getPeasantHouseholdData" resultType="com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold">
SELECT hygf_peasant_household.* FROM hygf_peasant_household
LEFT JOIN hygf_document_station on hygf_document_station.station_id=hygf_peasant_household.sequence_nbr
where hygf_document_station.preparation_money_id=#{sequenceNbr}
<if test="ownersName!=null and ownersName!=''">
and hygf_peasant_household.owners_name like concat(concat("%",#{ownersName}),"%")
</if>
</select>
</mapper> </mapper>
...@@ -67,6 +67,8 @@ ...@@ -67,6 +67,8 @@
<select id="selectRegionName" resultType="com.yeejoin.amos.boot.module.hygf.api.entity.RegionalCompanies"> <select id="selectRegionName" resultType="com.yeejoin.amos.boot.module.hygf.api.entity.RegionalCompanies">
select select
privilege_company.COMPANY_CODE companyCode, privilege_company.COMPANY_CODE companyCode,
privilege_company.COMPANY_NAME regionalCompaniesName,
privilege_company.ORG_CODE regionalCompaniesCode,
(SELECT GROUP_CONCAT(REGION_NAME) from (SELECT GROUP_CONCAT(REGION_NAME) from
(SELECT T2.REGION_NAME (SELECT T2.REGION_NAME
FROM ( FROM (
......
package com.yeejoin.amos.boot.module.hygf.biz.controller; package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo;
import com.yeejoin.amos.boot.module.hygf.api.Enum.DeliveryStateeEnum;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PreparationEnum;
import com.yeejoin.amos.boot.module.hygf.api.dto.JpStationDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationPageDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationPageDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney; import com.yeejoin.amos.boot.module.hygf.api.entity.*;
import com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyMapper;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.DesignInformationServiceImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -11,8 +22,7 @@ import io.swagger.annotations.Api; ...@@ -11,8 +22,7 @@ import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PreparationMoneyServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PreparationMoneyServiceImpl;
...@@ -40,7 +50,10 @@ public class PreparationMoneyController extends BaseController { ...@@ -40,7 +50,10 @@ public class PreparationMoneyController extends BaseController {
@Autowired @Autowired
PreparationMoneyServiceImpl preparationMoneyServiceImpl; PreparationMoneyServiceImpl preparationMoneyServiceImpl;
@Autowired
PreparationMoneyMapper preparationMoneyMapper;
@Autowired
DesignInformationServiceImpl designInformationService;
/** /**
* 新增发货单 * 新增发货单
* *
...@@ -49,8 +62,9 @@ public class PreparationMoneyController extends BaseController { ...@@ -49,8 +62,9 @@ public class PreparationMoneyController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增发货单", notes = "新增发货单") @ApiOperation(httpMethod = "POST", value = "新增发货单", notes = "新增发货单")
public ResponseModel<PreparationMoneyDto> save(@Validated @RequestBody PreparationMoneyDto model) { public ResponseModel<PreparationMoney> save( @RequestBody PreparationMoney model) {
model = preparationMoneyServiceImpl.saveOrUpdateObject(model); AgencyUserModel agencyUserModel= getUserInfo();
model = preparationMoneyServiceImpl.saveOrUpdateObject(model,agencyUserModel);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
...@@ -64,8 +78,9 @@ public class PreparationMoneyController extends BaseController { ...@@ -64,8 +78,9 @@ public class PreparationMoneyController extends BaseController {
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单")
public ResponseModel<PreparationMoneyDto> updateBySequenceNbrPreparationMoney(@RequestBody PreparationMoneyDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<PreparationMoneyDto> updateBySequenceNbrPreparationMoney(@RequestBody PreparationMoneyDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr); // model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.saveOrUpdateObject(model)); // return ResponseHelper.buildResponse(preparationMoneyServiceImpl.saveOrUpdateObject(model));
return null;
} }
/** /**
...@@ -90,8 +105,11 @@ public class PreparationMoneyController extends BaseController { ...@@ -90,8 +105,11 @@ public class PreparationMoneyController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个发货单", notes = "根据sequenceNbr查询单个发货单") @ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个发货单", notes = "根据sequenceNbr查询单个发货单")
public ResponseModel<PreparationMoneyDto> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<PreparationMoney> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.queryBySeq(sequenceNbr)); LambdaUpdateWrapper<PreparationMoney> qu=new LambdaUpdateWrapper<>();
qu.eq(PreparationMoney::getSequenceNbr,sequenceNbr);
PreparationMoney preparationMoney= preparationMoneyMapper.selectOne(qu);
return ResponseHelper.buildResponse(preparationMoney);
} }
/** /**
...@@ -102,18 +120,30 @@ public class PreparationMoneyController extends BaseController { ...@@ -102,18 +120,30 @@ public class PreparationMoneyController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page") @PostMapping (value = "/page")
@ApiOperation(httpMethod = "GET",value = "发货单分页查询", notes = "发货单分页查询") @ApiOperation(httpMethod = "post",value = "发货单分页查询", notes = "发货单分页查询")
public ResponseModel<IPage<PreparationMoney>> queryForPage(PreparationPageDto preparationPageDto public ResponseModel<IPage<PreparationMoney>> queryForPage(@RequestBody PreparationPageDto preparationPageDto
) { ) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.queryForPreparationMoneyPage(preparationPageDto)); return ResponseHelper.buildResponse(preparationMoneyServiceImpl.queryForPreparationMoneyPage(preparationPageDto));
} }
/** /**
* 作废
* */
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/zfPreparationMoney")
@ApiOperation(httpMethod = "GET",value = "作废发货单", notes = "作废发货单")
public ResponseModel<Boolean> zfPreparationMoney(Long sequenceNbr
) {
AgencyUserModel agencyUserModel= getUserInfo();
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.zfPreparationMoney(sequenceNbr,agencyUserModel));
}
/**
* 列表全部数据查询 * 列表全部数据查询
* *
* @return * @return
...@@ -149,7 +179,8 @@ public class PreparationMoneyController extends BaseController { ...@@ -149,7 +179,8 @@ public class PreparationMoneyController extends BaseController {
@GetMapping(value = "/detail") @GetMapping(value = "/detail")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个发货单详情", notes = "根据sequenceNbr查询单个发货单详情") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个发货单详情", notes = "根据sequenceNbr查询单个发货单详情")
public ResponseModel<PreparationMoneyDto> getObject(@RequestParam Long sequenceNbr) { public ResponseModel<PreparationMoneyDto> getObject(@RequestParam Long sequenceNbr) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.getObjectBySequenceNbr(sequenceNbr)); //return ResponseHelper.buildResponse(preparationMoneyServiceImpl.getObjectBySequenceNbr(sequenceNbr));
return null;
} }
...@@ -166,5 +197,38 @@ public class PreparationMoneyController extends BaseController { ...@@ -166,5 +197,38 @@ public class PreparationMoneyController extends BaseController {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.updatePreparationMoneyStatus(sequenceNbr, operationType)); return ResponseHelper.buildResponse(preparationMoneyServiceImpl.updatePreparationMoneyStatus(sequenceNbr, operationType));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/getPeasantHouseholdData")
public ResponseModel< Page<PeasantHousehold> > getPeasantHouseholdData(
@RequestParam(required=false) Long sequenceNbr,
@RequestParam(required=false) String ownersName
) {
List<PeasantHousehold> list=preparationMoneyMapper.getPeasantHouseholdData(sequenceNbr,ownersName);
Page<PeasantHousehold> pagenew = new Page<PeasantHousehold>();
pagenew.setRecords(list);
return ResponseHelper.buildResponse(pagenew);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "bom", notes = "bom")
@GetMapping(value = "/getDesignInformationData")
public ResponseModel< DesignInformation > getDesignInformationData(
@RequestParam(required=false) Long sequenceNbr
) {
QueryWrapper<DesignInformation> designInformationQueryWrapper = new QueryWrapper<>();
designInformationQueryWrapper.eq("peasant_household_id", sequenceNbr);
DesignInformation designInformation = designInformationService.getBaseMapper().selectOne(designInformationQueryWrapper);
return ResponseHelper.buildResponse(designInformation);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/selectOnePreparationMoney")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个发货单", notes = "根据sequenceNbr查询单个发货单")
public ResponseModel<Map<String,Object>> selectOnePreparationMoney( String sequenceNbr) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.selectOnePreparationMoney(sequenceNbr));
}
} }
...@@ -4,15 +4,13 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -4,15 +4,13 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.hygf.api.dto.*; import com.yeejoin.amos.boot.module.hygf.api.dto.*;
import com.yeejoin.amos.boot.module.hygf.api.entity.*; import com.yeejoin.amos.boot.module.hygf.api.entity.*;
import com.yeejoin.amos.boot.module.hygf.api.hwsms.SendSmsCode; import com.yeejoin.amos.boot.module.hygf.api.hwsms.SendSmsCode;
import com.yeejoin.amos.boot.module.hygf.api.mapper.CommerceInfoMapper; import com.yeejoin.amos.boot.module.hygf.api.mapper.*;
import com.yeejoin.amos.boot.module.hygf.api.mapper.PersonnelBusinessMapper;
import com.yeejoin.amos.boot.module.hygf.api.mapper.RegionalCompaniesMapper;
import com.yeejoin.amos.boot.module.hygf.api.mapper.UnitInfoMapper;
import com.yeejoin.amos.boot.module.hygf.api.util.CommonResponseNewUtil; import com.yeejoin.amos.boot.module.hygf.api.util.CommonResponseNewUtil;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.DealerReviewServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.DealerReviewServiceImpl;
import com.yeejoin.amos.boot.module.standard.api.entity.PublicAgencyUser; import com.yeejoin.amos.boot.module.standard.api.entity.PublicAgencyUser;
...@@ -103,6 +101,8 @@ public class UnitInfoController extends BaseController { ...@@ -103,6 +101,8 @@ public class UnitInfoController extends BaseController {
PublicAgencyUserMapper publicAgencyUserMapper; PublicAgencyUserMapper publicAgencyUserMapper;
@Autowired @Autowired
PersonnelBusinessMapper personnelBusinessMapper; PersonnelBusinessMapper personnelBusinessMapper;
@Autowired
PeasantHouseholdMapper peasantHouseholdMapper;
/** /**
* 验证码过期时间 * 验证码过期时间
...@@ -282,12 +282,6 @@ public class UnitInfoController extends BaseController { ...@@ -282,12 +282,6 @@ public class UnitInfoController extends BaseController {
} }
//判断公司统一信息用代码重复 //判断公司统一信息用代码重复
// LambdaQueryWrapper<CommerceInfo> queryWrapper1 = new LambdaQueryWrapper<CommerceInfo>();
// queryWrapper1.eq(CommerceInfo::getCreditCode, model.getCommerceInfoDto().getCreditCode());
// queryWrapper1.eq(CommerceInfo::getIsDelete,0);
// List<CommerceInfo> commerceInfo= commerceInfoMapper.selectList(queryWrapper1);
List<CommerceInfo> commerceInfo= commerceInfoMapper.selectListby( model.getCommerceInfoDto().getCreditCode()); List<CommerceInfo> commerceInfo= commerceInfoMapper.selectListby( model.getCommerceInfoDto().getCreditCode());
if(commerceInfo!=null&&!commerceInfo.isEmpty()){ if(commerceInfo!=null&&!commerceInfo.isEmpty()){
...@@ -675,11 +669,94 @@ public class UnitInfoController extends BaseController { ...@@ -675,11 +669,94 @@ public class UnitInfoController extends BaseController {
} }
//根据登陆人角色获取电站列表
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "获取审核通过的经销商", notes = "获取审核通过的经销商")
@GetMapping(value = "/getlistUnitInfo")
public ResponseModel<List<UnitInfo>> getlistUnitInfo() {
LambdaQueryWrapper<UnitInfo> qu=new LambdaQueryWrapper();
qu.eq(UnitInfo::getIsDelete,false);
qu.eq(UnitInfo::getAuditStatus,2);
List<UnitInfo> list=unitInfoMapper.selectList(qu);
return ResponseHelper.buildResponse(list);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/getRegionalCompanie")
public ResponseModel< List<RegionalCompanies> > getRegionalCompanie(
@RequestParam(required=false) Long sequenceNbr
) {
LambdaQueryWrapper<RegionalCompanies> qu=new LambdaQueryWrapper();
qu.eq(RegionalCompanies::getUnitInfoId,sequenceNbr);
qu.eq(RegionalCompanies::getIsDelete,false);
List<RegionalCompanies> list=regionalCompaniesMapper.selectList(qu);
return ResponseHelper.buildResponse(list);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/getRegionalCompanieById")
public ResponseModel< RegionalCompanies > getRegionalCompanieById(
@RequestParam(required=false) Long regionalCompaniesSeq,
@RequestParam(required=false) Long unitInfoId
) {
LambdaQueryWrapper<RegionalCompanies> qu=new LambdaQueryWrapper();
qu.eq(RegionalCompanies::getRegionalCompaniesSeq,regionalCompaniesSeq);
qu.eq(RegionalCompanies::getUnitInfoId,unitInfoId);
qu.eq(RegionalCompanies::getIsDelete,false);
RegionalCompanies list=regionalCompaniesMapper.selectOne(qu);
return ResponseHelper.buildResponse(list);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/getRegionalCompanieUnitInfo")
public ResponseModel< List<RegionalCompanies> > getRegionalCompanieUnitInfo(
@RequestParam(required=false) Long unitInfoId,
@RequestParam(required=false) Long regionalCompaniesSeq
) {
LambdaQueryWrapper<RegionalCompanies> qu=new LambdaQueryWrapper();
qu.eq(RegionalCompanies::getRegionalCompaniesSeq,regionalCompaniesSeq);
qu.eq(RegionalCompanies::getUnitInfoId,unitInfoId);
RegionalCompanies list=regionalCompaniesMapper.selectOne(qu);
UnitInfo unitInfo=unitInfoMapper.selectById(unitInfoId);
List<RegionalCompanies> date=null;
if(list!=null&&unitInfo!=null){
list.setRegionalCompaniesName(unitInfo.getName()+"-"+list.getRegionalCompaniesName());
date=new ArrayList();
date.add(list);
}
return ResponseHelper.buildResponse(date);
}
//获取电站列表
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/getUnitInfoListData")
public ResponseModel< List<Map<String,Object>> > getUnitInfoListData(
@RequestParam(required=false) Long unitInfoId,
@RequestParam(required=false) Long regionalCompaniesSeq
) {
UnitInfo unitInfo=unitInfoMapper.selectById(unitInfoId);
List<PeasantHousehold> list=peasantHouseholdMapper.selectPeasantHouseholdList(unitInfo.getAmosCompanySeq(),regionalCompaniesSeq);
List<Map<String,Object>> date=new ArrayList<>();
if(list!=null){
for (PeasantHousehold peasantHousehold : list) {
Map<String,Object> map=new HashMap<>();
map.put("children",new ArrayList<>());
map.put("title",peasantHousehold.getPeasantHouseholdNo()+"-"+peasantHousehold.getOwnersName());
map.put("value",peasantHousehold.getSequenceNbr());
map.put("key",peasantHousehold.getSequenceNbr());
date.add(map);
}
}
return ResponseHelper.buildResponse(date);
}
} }
package com.yeejoin.amos.boot.module.hygf.biz.service.impl; package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PreparationMoneyEnum; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.hygf.api.Enum.*;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyLogDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyLogDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationPageDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationPageDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentBom; import com.yeejoin.amos.boot.module.hygf.api.entity.*;
import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentStation; import com.yeejoin.amos.boot.module.hygf.api.mapper.DesignInformationMapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold; import com.yeejoin.amos.boot.module.hygf.api.mapper.DocumentStationMapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
import com.yeejoin.amos.boot.module.hygf.api.entity.UnitInfo;
import com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyMapper; import com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyMapper;
import com.yeejoin.amos.boot.module.hygf.api.mapper.RegionalCompaniesMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IPreparationMoneyService; import com.yeejoin.amos.boot.module.hygf.api.service.IPreparationMoneyService;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
import com.yeejoin.amos.boot.module.hygf.api.util.NumberUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.robot.AmosRequestContext; import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -30,11 +40,8 @@ import org.typroject.tyboot.core.rdbms.service.BaseService; ...@@ -30,11 +40,8 @@ import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -63,31 +70,36 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -63,31 +70,36 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
private UnitInfoServiceImpl unitInfoService; private UnitInfoServiceImpl unitInfoService;
@Autowired @Autowired
private PreparationMoneyLogServiceImpl preparationMoneyLogService; private PreparationMoneyLogServiceImpl preparationMoneyLogService;
@Autowired
RegionalCompaniesMapper regionalCompaniesMapper;
@Autowired
DocumentStationMapper documentStationMapper;
@Autowired
RedisUtils redisUtil;
@Autowired
DesignInformationMapper designInformationMapper;
private static final String regionRedis="app_region_redis";
/** /**
* 分页查询 * 分页查询
*/ */
public IPage<PreparationMoney> queryForPreparationMoneyPage(PreparationPageDto dto) { public IPage<PreparationMoney> queryForPreparationMoneyPage(PreparationPageDto dto) {
//列表数据组装 //列表数据组装
QueryWrapper<PreparationMoney> qw = new QueryWrapper<>(); LambdaQueryWrapper<PreparationMoney> qw = new LambdaQueryWrapper<>();
qw.ge(StringUtils.isNotEmpty(dto.getStartDate()), "order_time", dto.getStartDate()); DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
qw.le(StringUtils.isNotEmpty(dto.getEndDate()), "order_time", dto.getEndDate());
qw.eq(StringUtils.isNotEmpty(dto.getConsigneeAddress()), "consignee_address", dto.getConsigneeAddress()); qw.like(StringUtils.isNotEmpty(dto.getConsigneeRegion()), PreparationMoney::getConsigneeRegion, dto.getConsigneeRegion());
qw.eq(StringUtils.isNotEmpty(dto.getDealerId()), "dealer_id", dto.getDealerId()); qw.like(StringUtils.isNotEmpty(dto.getAmosUnitName()), PreparationMoney::getAmosUnitName, dto.getAmosUnitName());
qw.like(StringUtils.isNotEmpty(dto.getOddNumbers()), "odd_numbers", dto.getOddNumbers()); qw.like(StringUtils.isNotEmpty(dto.getOddNumbers()), PreparationMoney::getOddNumbers, dto.getOddNumbers());
qw.like(StringUtils.isNotEmpty(dto.getSalesman()), "salesman", dto.getSalesman()); qw.eq(StringUtils.isNotEmpty(dto.getDeliveryState()), PreparationMoney::getDeliveryState, dto.getDeliveryState());
qw.eq(StringUtils.isNotEmpty(dto.getDocumentState()), "document_state", dto.getDocumentState()); if(dto.getDeliveryTime()!=null&&!dto.getDeliveryTime().get(0).equals("")){
qw.eq(StringUtils.isNotEmpty(dto.getShipmentStatus()), "shipment_status", dto.getShipmentStatus()); qw.between(dto.getDeliveryTime()!=null, PreparationMoney::getDeliveryTime, dto.getDeliveryTime().get(0), dto.getDeliveryTime().get(1));
qw.eq(StringUtils.isNotEmpty(dto.getReceivingStatus()), "receiving_status", dto.getReceivingStatus());
if(dto.getIsdocumentStatezf()!=null&&dto.getIsdocumentStatezf()){
qw.ne( "document_state", "已作废");
}
if (StringUtils.isNotEmpty(dto.getOrderBy())) {
qw.orderBy(Boolean.TRUE, dto.getIsASC(), dto.getOrderBy());
}else{
qw.orderBy(Boolean.TRUE, Boolean.FALSE, "order_time");
} }
qw.orderBy(Boolean.TRUE, Boolean.FALSE, PreparationMoney::getOrderTime);
IPage<PreparationMoney> warningQuestionInfoIPage = preparationMoneyMapper.selectPage(dto, qw); IPage<PreparationMoney> warningQuestionInfoIPage = preparationMoneyMapper.selectPage(dto, qw);
return warningQuestionInfoIPage; return warningQuestionInfoIPage;
...@@ -109,22 +121,22 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -109,22 +121,22 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
* @author Provence * @author Provence
* @throws * @throws
*/ */
public PreparationMoneyDto getObjectBySequenceNbr(Long sequenceNbr) { // public PreparationMoneyDto getObjectBySequenceNbr(Long sequenceNbr) {
PreparationMoneyDto preparationMoneyDto = this.queryBySeq(sequenceNbr); // PreparationMoneyDto preparationMoneyDto = this.queryBySeq(sequenceNbr);
// 加载BOM清单数据 // // 加载BOM清单数据
preparationMoneyDto.setDocumentBoms(documentBomService.listByPreparationMoneyId(sequenceNbr)); // preparationMoneyDto.setDocumentBoms(documentBomService.listByPreparationMoneyId(sequenceNbr));
// 加载发货电站数据 // // 加载发货电站数据
List<Long> peasantHouseholdIds = documentStationService.list(new LambdaQueryWrapper<DocumentStation>() // List<Long> peasantHouseholdIds = documentStationService.list(new LambdaQueryWrapper<DocumentStation>()
.select(DocumentStation::getStationId) // .select(DocumentStation::getStationId)
.eq(DocumentStation::getPreparationMoneyId, sequenceNbr)) // .eq(DocumentStation::getPreparationMoneyId, sequenceNbr))
.stream().map(DocumentStation::getStationId).collect(Collectors.toList()); // .stream().map(DocumentStation::getStationId).collect(Collectors.toList());
List<PeasantHousehold> peasantHouseholds = (List<PeasantHousehold>) peasantHouseholdService.listByIds(peasantHouseholdIds); // List<PeasantHousehold> peasantHouseholds = (List<PeasantHousehold>) peasantHouseholdService.listByIds(peasantHouseholdIds);
preparationMoneyDto.setPowerStations(peasantHouseholds.stream().map(o -> entityToDto(o)).collect(Collectors.toList())); // preparationMoneyDto.setPowerStations(peasantHouseholds.stream().map(o -> entityToDto(o)).collect(Collectors.toList()));
// 加载单据追踪数据 // // 加载单据追踪数据
List<PreparationMoneyLog> preparationMoneyLogDtos = preparationMoneyLogService.list(new LambdaQueryWrapper<PreparationMoneyLog>().eq(PreparationMoneyLog::getPreparationMoneyId, sequenceNbr)); // List<PreparationMoneyLog> preparationMoneyLogDtos = preparationMoneyLogService.list(new LambdaQueryWrapper<PreparationMoneyLog>().eq(PreparationMoneyLog::getPreparationMoneyId, sequenceNbr));
preparationMoneyDto.setPreparationMoneyLogs(preparationMoneyLogDtos.stream().map(o -> entityToDto(o)).collect(Collectors.toList())); // preparationMoneyDto.setPreparationMoneyLogs(preparationMoneyLogDtos.stream().map(o -> entityToDto(o)).collect(Collectors.toList()));
return preparationMoneyDto; // return preparationMoneyDto;
} // }
private PeasantHouseholdDto entityToDto(PeasantHousehold o) { private PeasantHouseholdDto entityToDto(PeasantHousehold o) {
PeasantHouseholdDto dto = new PeasantHouseholdDto(); PeasantHouseholdDto dto = new PeasantHouseholdDto();
...@@ -138,6 +150,69 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -138,6 +150,69 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
return dto; return dto;
} }
@Transactional
public boolean zfPreparationMoney(Long sequenceNbr, AgencyUserModel agencyUserModel) {
// 记录操作日志
PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog();
preparationMoneyLog.setPreparationMoneyId(sequenceNbr);
preparationMoneyLog.setOperationContent(PreparationEnum.创建发货单.getCode());
preparationMoneyLog.setExecutionTime(new Date());
preparationMoneyLog.setExecutor(agencyUserModel.getRealName());
preparationMoneyLogService.save(preparationMoneyLog);
LambdaUpdateWrapper<PreparationMoney> qu=new LambdaUpdateWrapper();
qu.set(PreparationMoney::getDeliveryState, DeliveryStateeEnum.已作废.getCode());
qu.eq(PreparationMoney::getSequenceNbr,sequenceNbr);
return this.update(qu);
}
public Map<String,Object> selectOnePreparationMoney(String sequenceNbr){
Map<String,Object> map =new HashMap<>();
LambdaUpdateWrapper<PreparationMoney> qu=new LambdaUpdateWrapper<>();
qu.eq(PreparationMoney::getSequenceNbr,sequenceNbr);
PreparationMoney preparationMoney= preparationMoneyMapper.selectOne(qu);
//获取所有电站Bom,分组合并,暂时不相加
QueryWrapper<DesignInformation> designInformationQueryWrapper = new QueryWrapper<>();
designInformationQueryWrapper.in("peasant_household_id", preparationMoney.getPeasantHouseholdId());
List<DesignInformation> li = designInformationMapper.selectList(designInformationQueryWrapper);
DesignInformation designInformation=new DesignInformation();
//组件
List<Object> assembly=new ArrayList<>();
//逆变器
List<Object> inverter=new ArrayList<>();
//电表箱
List<Object> electricityMeter=new ArrayList<>();
//电缆
List<Object> cable=new ArrayList<>();
for (DesignInformation des : li) {
if(des.getAssembly()!=null&&!des.getAssembly().isEmpty()){
assembly.addAll(des.getAssembly());
}
if(des.getInverter()!=null&&!des.getInverter().isEmpty()){
inverter.addAll(des.getInverter());
}
if(des.getElectricityMeter()!=null&&!des.getElectricityMeter().isEmpty()){
electricityMeter.addAll(des.getElectricityMeter());
}
if(des.getCable()!=null&&!des.getCable().isEmpty()){
cable.addAll(des.getCable());
}
}
designInformation.setAssembly(assembly);
designInformation.setInverter(inverter);
designInformation.setElectricityMeter(electricityMeter);
designInformation.setCable(cable);
map.put("preparationMoney",preparationMoney);
map.put("designInformation",designInformation);
return map;
}
/** /**
* 保存或更新发货单 * 保存或更新发货单
* *
...@@ -149,58 +224,147 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -149,58 +224,147 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
*/ */
@Transactional @Transactional
@Override @Override
public PreparationMoneyDto saveOrUpdateObject(PreparationMoneyDto model) { public PreparationMoney saveOrUpdateObject(PreparationMoney model, AgencyUserModel agencyUserModel) {
boolean isUpdate = false;
if (model.getSequenceNbr() != null) { if(model.getSequenceNbr()==null){
// update //获取经销商单位信息
PreparationMoney entity = this.getById(model); UnitInfo unitInfo= unitInfoService.getById(model.getAmosUnitId());
if (entity == null) { model.setAmosUnitName(unitInfo!=null?unitInfo.getName():null);
throw new BadRequest("发货单不存在"); model.setAmosUnitOrgCode(unitInfo!=null?unitInfo.getAmosCompanyCode():null);
} RegionalCompanies regionalCompanies= regionalCompaniesMapper.selectRegionName(model.getRegionalCompaniesSeq());
isUpdate = true; model.setRegionalCompaniesCode(regionalCompanies!=null?regionalCompanies.getRegionalCompaniesCode():null);
} model.setRegionalCompaniesName(regionalCompanies!=null?regionalCompanies.getRegionalCompaniesName():null);
// BOM 清单 后台查询数据库整合数据 //收货区域信息
List<PeasantHouseholdDto> powerStations = model.getPowerStations(); JSONArray regionName = getRegionName();
List<Long> powerHouseholdIds = powerStations.stream().map(PeasantHouseholdDto::getSequenceNbr).collect(Collectors.toList()); List<RegionModel> list = JSONArray.parseArray(regionName.toJSONString(), RegionModel.class);
// 后台组装BOM清单 String ConsigneeRegion="";
List<DocumentBom> documentBoms = documentBomService.assembleDocumentBom(powerHouseholdIds); List<Integer> da=model.getConsigneeRegionCode();
if (CollectionUtils.isEmpty(documentBoms)) { if(da!=null&&!da.isEmpty()){
// throw new BaseException("BOM清单为空", "400", "BOM清单为空");// 这里阻塞前端接口 for (int i = 0; i < da.size(); i++) {
// 根据发货电站信息无法组装成BOM清单 for (RegionModel re : list) {
throw new BadRequest("BOM清单为空"); if (re.getRegionCode().equals(Integer.valueOf(da.get(i)))) {
} if(da.size()-1==i){
// 根据BOM清单计算当前发货单的价格 ConsigneeRegion = ConsigneeRegion + re.getRegionName();
PreparationMoneyDto pmd = caculateShippingPrice(documentBoms); }else{
model.setInventoryPrice(pmd.getInventoryPrice());//清单价格 ConsigneeRegion = ConsigneeRegion + re.getRegionName() + "-";
model.setDiscount(pmd.getDiscount());//折扣 }
model.setPromotion(pmd.getPromotion());//促销 break;
model.setTotalPrice(pmd.getTotalPrice());//总价 }
// 前端传值改动太大, 从数据库获取dealerName }
String dealerName = Optional.ofNullable(unitInfoService.query().eq("amos_company_seq", model.getDealerId()).one()).map(UnitInfo::getName).orElse(null); }
model.setDealerName(dealerName);
// model.setContractPrice(pmd.getContractPrice());//合同价格 model.setConsigneeRegion(ConsigneeRegion);
if (!isUpdate) { }
// 初始化状态 //发货单号
model.setReceivingStatus(PreparationMoneyEnum.RECEIVING_STATUS.未到货.getName());
model.setShipmentStatus(PreparationMoneyEnum.SHIPMENT_STATUS.未发货.getName()); String code= NumberUtil.getCode(CodeEnum.货单.getCode(),regionalCompanies.getCompanyCode(),regionalCompanies.getRegionalAddress());
model.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.未完成.getName()); model.setOddNumbers(code);
}
PreparationMoney entity = new PreparationMoney(); if(model.getDeliveryFile()!=null&&!model.getDeliveryFile().isEmpty()){
BeanUtils.copyProperties(model, entity); model.setDeliveryState(DeliveryStateeEnum.已发货.getCode());
this.saveOrUpdate(entity); model.setArrivalState(ArrivalStateeEnum.待收货.getCode());
documentBoms.stream().forEach(d -> d.setPreparationMoneyId(entity.getSequenceNbr())); model.setDeliveryTime(new Date());
List<DocumentStation> documentStations = powerStations.stream().map(o -> buildDocumentStations(entity.getSequenceNbr(), o)).collect(Collectors.toList()); }else{
if (isUpdate) { model.setDeliveryState(DeliveryStateeEnum.待发货.getCode());
documentBomService.remove(new LambdaQueryWrapper<DocumentBom>().select(DocumentBom::getSequenceNbr).eq(DocumentBom::getPreparationMoneyId, entity.getSequenceNbr())); model.setArrivalState(DeliveryStateeEnum.待发货.getCode());
documentStationService.remove(new LambdaQueryWrapper<DocumentStation>().select(DocumentStation::getSequenceNbr).eq(DocumentStation::getPreparationMoneyId, entity.getSequenceNbr())); }
}
documentBomService.saveOrUpdateBatch(documentBoms); preparationMoneyMapper.insert(model);
documentStationService.saveOrUpdateBatch(documentStations); //电站信息存储
List<Long> ids= model.getPeasantHouseholdId();
List<DocumentStation> listDocumentStation= new ArrayList<>();
for (Long id : ids) {
DocumentStation documentStation =new DocumentStation();
documentStation.setPreparationMoneyId(model.getSequenceNbr());
documentStation.setStationId(id);
listDocumentStation.add(documentStation);
}
documentStationService.saveBatch(listDocumentStation);
// 记录操作日志 // 记录操作日志
PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog(); PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog();
preparationMoneyLog.setPreparationMoneyId(entity.getSequenceNbr()); preparationMoneyLog.setPreparationMoneyId(model.getSequenceNbr());
preparationMoneyLog.setOperationContent(String.format("备货单保存【备货单号:%s】", entity.getOddNumbers())); preparationMoneyLog.setOperationContent(PreparationEnum.创建发货单.getCode());
preparationMoneyLog.setExecutionTime(new Date());
preparationMoneyLog.setExecutor(agencyUserModel.getRealName());
preparationMoneyLogService.save(preparationMoneyLog); preparationMoneyLogService.save(preparationMoneyLog);
if(model.getArrivalFile()!=null&&!model.getArrivalFile().isEmpty()){
PreparationMoneyLog preparationMoneyLog1 = new PreparationMoneyLog();
preparationMoneyLog1.setPreparationMoneyId(model.getSequenceNbr());
preparationMoneyLog1.setOperationContent(PreparationEnum.确认发货.getCode());
preparationMoneyLog1.setExecutionTime(new Date());
preparationMoneyLog1.setExecutor(agencyUserModel.getRealName());
preparationMoneyLogService.save(preparationMoneyLog1);
}
}else{
//获取经销商单位信息
UnitInfo unitInfo= unitInfoService.getById(model.getAmosUnitId());
model.setAmosUnitName(unitInfo!=null?unitInfo.getName():null);
model.setAmosUnitOrgCode(unitInfo!=null?unitInfo.getAmosCompanyCode():null);
RegionalCompanies regionalCompanies= regionalCompaniesMapper.selectRegionName(model.getRegionalCompaniesSeq());
model.setRegionalCompaniesCode(regionalCompanies!=null?regionalCompanies.getRegionalCompaniesCode():null);
model.setRegionalCompaniesName(regionalCompanies!=null?regionalCompanies.getRegionalCompaniesName():null);
//收货区域信息
JSONArray regionName = getRegionName();
List<RegionModel> list = JSONArray.parseArray(regionName.toJSONString(), RegionModel.class);
String ConsigneeRegion="";
List<Integer> da=model.getConsigneeRegionCode();
if(da!=null&&!da.isEmpty()){
for (int i = 0; i < da.size(); i++) {
for (RegionModel re : list) {
if (re.getRegionCode().equals(Integer.valueOf(da.get(i)))) {
if(da.size()-1==i){
ConsigneeRegion = ConsigneeRegion + re.getRegionName();
}else{
ConsigneeRegion = ConsigneeRegion + re.getRegionName() + "-";
}
break;
}
}
}
model.setConsigneeRegion(ConsigneeRegion);
}
if(model.getDeliveryFile()!=null&&!model.getDeliveryFile().isEmpty()){
model.setDeliveryState(DeliveryStateeEnum.已发货.getCode());
model.setArrivalState(ArrivalStateeEnum.待收货.getCode());
model.setDeliveryTime(new Date());
}else{
model.setDeliveryState(DeliveryStateeEnum.待发货.getCode());
model.setArrivalState(DeliveryStateeEnum.待发货.getCode());
}
preparationMoneyMapper.updateById(model);
//电站信息存储
LambdaUpdateWrapper<DocumentStation> up=new LambdaUpdateWrapper();
up.eq(DocumentStation::getPreparationMoneyId,model.getSequenceNbr());
documentStationMapper.delete(up);
List<Long> ids= model.getPeasantHouseholdId();
List<DocumentStation> listDocumentStation= new ArrayList<>();
for (Long id : ids) {
DocumentStation documentStation =new DocumentStation();
documentStation.setPreparationMoneyId(model.getSequenceNbr());
documentStation.setStationId(id);
listDocumentStation.add(documentStation);
}
documentStationService.saveBatch(listDocumentStation);
// 记录操作日志
if(model.getArrivalFile()!=null&&!model.getArrivalFile().isEmpty()){
PreparationMoneyLog preparationMoneyLog1 = new PreparationMoneyLog();
preparationMoneyLog1.setPreparationMoneyId(model.getSequenceNbr());
preparationMoneyLog1.setOperationContent(PreparationEnum.确认发货.getCode());
preparationMoneyLog1.setExecutionTime(new Date());
preparationMoneyLog1.setExecutor(agencyUserModel.getRealName());
preparationMoneyLogService.save(preparationMoneyLog1);
}
}
return model; return model;
} }
...@@ -214,7 +378,36 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -214,7 +378,36 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
documentStation.setRecUserName(recUserName); documentStation.setRecUserName(recUserName);
return documentStation; return documentStation;
} }
public JSONArray getRegionName() {
JSONArray jsonArray = new JSONArray();
if (redisUtil.hasKey(regionRedis)) {
jsonArray = JSONArray.parseArray(redisUtil.get(regionRedis).toString());
} else {
Collection<RegionModel> regionChild = new ArrayList<>();
RegionModel regionModel1 = new RegionModel();
regionChild.add(regionModel1);
FeignClientResult<Collection<RegionModel>> collectionFeignClientResult = Systemctl.regionClient.queryForTreeParent(610000L);
Collection<RegionModel> result = collectionFeignClientResult.getResult();
for (RegionModel regionModel : result) {
if (null != regionModel && null != regionModel.getChildren()) {
for (RegionModel child : regionModel.getChildren()) {
if (null != child && null != child.getChildren()) {
for (RegionModel childChild : child.getChildren()) {
jsonArray.add(childChild);
}
child.setChildren(regionChild);
jsonArray.add(child);
}
}
regionModel.setChildren(regionChild);
jsonArray.add(regionModel);
}
}
redisUtil.set(regionRedis, jsonArray);
}
return jsonArray;
}
/** /**
* 更新发货单状态 * 更新发货单状态
* *
...@@ -227,42 +420,43 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -227,42 +420,43 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
*/ */
@Override @Override
public Boolean updatePreparationMoneyStatus(Long sequenceNbr, String operationType) { public Boolean updatePreparationMoneyStatus(Long sequenceNbr, String operationType) {
PreparationMoney preparationMoney = preparationMoneyMapper.selectById(sequenceNbr); // PreparationMoney preparationMoney = preparationMoneyMapper.selectById(sequenceNbr);
if (preparationMoney == null) { // if (preparationMoney == null) {
throw new BadRequest("订单不存在"); // throw new BadRequest("订单不存在");
} // }
PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog(); // PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog();
preparationMoneyLog.setPreparationMoneyId(preparationMoney.getSequenceNbr()); // preparationMoneyLog.setPreparationMoneyId(preparationMoney.getSequenceNbr());
switch (operationType) { // switch (operationType) {
case "RECEIPT": // case "RECEIPT":
// 确认收货 -> 到货状态 -> 已到货 -> 订单状态改为 已完成 // // 确认收货 -> 到货状态 -> 已到货 -> 订单状态改为 已完成
if (!PreparationMoneyEnum.SHIPMENT_STATUS.已发货.getName().equals(preparationMoney.getShipmentStatus())) { // if (!PreparationMoneyEnum.SHIPMENT_STATUS.已发货.getName().equals(preparationMoney.getShipmentStatus())) {
throw new BadRequest("订单未发货, 无法确认收货"); // throw new BadRequest("订单未发货, 无法确认收货");
} // }
preparationMoney.setReceivingStatus(PreparationMoneyEnum.RECEIVING_STATUS.已到货.getName()); // preparationMoney.setReceivingStatus(PreparationMoneyEnum.RECEIVING_STATUS.已到货.getName());
preparationMoney.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.已完成.getName()); // preparationMoney.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.已完成.getName());
preparationMoney.setDeliveryTime(new Date()); // preparationMoney.setDeliveryTime(new Date());
preparationMoneyLog.setOperationContent(String.format("备货单确认收货【备货单号:%s】", preparationMoney.getOddNumbers())); // preparationMoneyLog.setOperationContent(String.format("备货单确认收货【备货单号:%s】", preparationMoney.getOddNumbers()));
break; // break;
case "DELIVERY": // case "DELIVERY":
// 发货 -> 发货状态 -> 已发货 // // 发货 -> 发货状态 -> 已发货
preparationMoney.setShipmentStatus(PreparationMoneyEnum.SHIPMENT_STATUS.已发货.getName()); // preparationMoney.setShipmentStatus(PreparationMoneyEnum.SHIPMENT_STATUS.已发货.getName());
preparationMoneyLog.setOperationContent(String.format("备货单发货【备货单号:%s】", preparationMoney.getOddNumbers())); // preparationMoneyLog.setOperationContent(String.format("备货单发货【备货单号:%s】", preparationMoney.getOddNumbers()));
break; // break;
case "DISCARD": // case "DISCARD":
// 作废 // // 作废
// 订单状态 -> 已废弃 // // 订单状态 -> 已废弃
if (PreparationMoneyEnum.RECEIVING_STATUS.已到货.getName().equals(preparationMoney.getReceivingStatus())) { // if (PreparationMoneyEnum.RECEIVING_STATUS.已到货.getName().equals(preparationMoney.getReceivingStatus())) {
throw new BadRequest("订单已到货, 无法作废"); // throw new BadRequest("订单已到货, 无法作废");
} // }
preparationMoney.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.作废.getName()); // preparationMoney.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.作废.getName());
preparationMoneyLog.setOperationContent(String.format("备货单作废【备货单号:%s】", preparationMoney.getOddNumbers())); // preparationMoneyLog.setOperationContent(String.format("备货单作废【备货单号:%s】", preparationMoney.getOddNumbers()));
break; // break;
default: // default:
break; // break;
} // }
preparationMoneyLogService.save(preparationMoneyLog); // preparationMoneyLogService.save(preparationMoneyLog);
return preparationMoneyMapper.updateById(preparationMoney) > 0; // return preparationMoneyMapper.updateById(preparationMoney) > 0;
return false;
} }
/** /**
...@@ -290,21 +484,22 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -290,21 +484,22 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
*/ */
public PreparationMoneyDto caculateShippingPrice(List<DocumentBom> documentBoms) { public PreparationMoneyDto caculateShippingPrice(List<DocumentBom> documentBoms) {
// 获取BOM清单数据 // 获取BOM清单数据
// 单价 * 经销商折扣 * 促销 * 需求数量 // // 单价 * 经销商折扣 * 促销 * 需求数量
BigDecimal totalPrice = new BigDecimal(0); // BigDecimal totalPrice = new BigDecimal(0);
BigDecimal totaldemandNumber = new BigDecimal(0); // BigDecimal totaldemandNumber = new BigDecimal(0);
for (DocumentBom documentBom : documentBoms) { // for (DocumentBom documentBom : documentBoms) {
BigDecimal unitPrice = new BigDecimal(documentBom.getUnitPrice() == null?0:documentBom.getUnitPrice());//单价 // BigDecimal unitPrice = new BigDecimal(documentBom.getUnitPrice() == null?0:documentBom.getUnitPrice());//单价
BigDecimal demandNumber = new BigDecimal(documentBom.getDemandNumber());//需求数量 // BigDecimal demandNumber = new BigDecimal(documentBom.getDemandNumber());//需求数量
totalPrice = totalPrice.add(unitPrice.multiply(demandNumber)); // totalPrice = totalPrice.add(unitPrice.multiply(demandNumber));
totaldemandNumber = totaldemandNumber.add(demandNumber); // totaldemandNumber = totaldemandNumber.add(demandNumber);
} // }
PreparationMoneyDto preparationMoneyDto = new PreparationMoneyDto(); // PreparationMoneyDto preparationMoneyDto = new PreparationMoneyDto();
preparationMoneyDto.setInventoryPrice(totalPrice.divide(totaldemandNumber).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());//清单价格 // preparationMoneyDto.setInventoryPrice(totalPrice.divide(totaldemandNumber).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());//清单价格
preparationMoneyDto.setDiscount(0D);//折扣 // preparationMoneyDto.setDiscount(0D);//折扣
preparationMoneyDto.setPromotion(0D);//促销 // preparationMoneyDto.setPromotion(0D);//促销
preparationMoneyDto.setContractPrice(0D);//合同价格 == 确认 // preparationMoneyDto.setContractPrice(0D);//合同价格 == 确认
preparationMoneyDto.setTotalPrice(totalPrice.doubleValue()); // preparationMoneyDto.setTotalPrice(totalPrice.doubleValue());
return preparationMoneyDto; // return preparationMoneyDto;
return null;
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment