Commit e4861c4a authored by chenzhao's avatar chenzhao

Merge branch 'developer' of http://39.98.45.134:8090/moa/amos-boot-biz into developer

# Conflicts: # amos-boot-system-jxiop/amos-boot-module-jxiop-analyse-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/CommonServiceImpl.java
parents 5114b97e 6d0ff861
......@@ -99,6 +99,10 @@ public class ControllerAop {
urls.add("/tzs/reg-unit-info/save");
urls.add("/hygf/unit-info/region/tree");
urls.add("/hygf/unit-info/management-unit/tree");
urls.add("/hygf/unit-info/hasExistPhone/.*");
urls.add("/hygf/unit-info/sendTelCode/.*");
urls.add("/hygf/unit-info/verifyTelCode/.*/.*");
urls.add("/hygf/peasant-household/mobile/login");
// 获取请求路径
for (String uri : urls) {
......
package com.yeejoin.amos.boot.module.hygf.api.Enum;
/**
* @author DELL
* 手机登录类型: 2020年底 驻场开发
*/
public enum PhoneRegisterTypeEum {
WX("微信授权快捷登录",1),
PHONE_VERIFY("手机验证登录",2);
private String name;
private int code;
PhoneRegisterTypeEum(String name,int code){
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 发货单枚举
*
* @author Provence
* @version v1.0
* @date 2023/8/18 16:49
*/
public class PreparationMoneyEnum {
/**
* 订单状态
*
*/
@Getter
@AllArgsConstructor
public enum DOCUMENT_STATE {
未完成("未完成", "0", "未完成"),// 订单状态0未完成1已完成2作废
已完成("已完成", "1", "0"),//发货状态 0 未发货1已发货
作废("已作废", "2", "1");//到货状态0未到货1已到货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
public static String getName(String code) {
for(DOCUMENT_STATE type: DOCUMENT_STATE.values()) {
if (type.getCode().equals(code)) {
return type.getName();
}
}
return null;
}
}
/**
* 发货状态
*
*/
@Getter
@AllArgsConstructor
public enum SHIPMENT_STATUS {
未发货("未发货", "0", "未发货"),// 订单状态0未完成1已完成2作废
已发货("已发货", "1", "已发货");//发货状态 0 未发货1已发货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
public static String getName(String code) {
for(SHIPMENT_STATUS type: SHIPMENT_STATUS.values()) {
if (type.getCode().equals(code)) {
return type.getName();
}
}
return null;
}
}
/**
* 到货状态
*
*/
@Getter
@AllArgsConstructor
public enum RECEIVING_STATUS {
未到货("未到货", "0", "未到货"),// 订单状态0未完成1已完成2作废
已到货("已到货", "1", "已到货");//发货状态 0 未发货1已发货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
public static String getName(String code) {
for(RECEIVING_STATUS type: RECEIVING_STATUS.values()) {
if (type.getCode().equals(code)) {
return type.getName();
}
}
return null;
}
}
/**
* 业主类型
*
*/
@Getter
@AllArgsConstructor
enum OWNER_TYPE {
非居民("非居民", "0", "非居民"),
居民("居民", "1", "居民");//到货状态0未到货1已到货
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 编码
*/
private String describe;
}
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import lombok.Data;
/**
* TODO(一句话描述该类的功能)
*
* @author Provence
* @version v1.0
* @date 2023/8/22 12:58
*/
@Data
public class AccessTokenDto {
private String access_token;
private Integer expires_in;
private Integer errcode;
private String errmsg;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: tw
......@@ -20,6 +23,7 @@ public class ContractDataDto {
String companyTenantName;
String companyUsername;
String companyContact;
Integer companyKeywordIndex;
Long emplateId;
String companykeyword;
Integer companyPage;
......@@ -29,4 +33,6 @@ public class ContractDataDto {
Integer personalPage;
Double personalOffsetX;
Double personalOffsetY;
Integer personalKeywordIndex;
private List<Long> sealId;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2023-08-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="ContractTemplateDto", description="")
public class ContractTemplateDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = " 模板名称")
private String templateName;
@ApiModelProperty(value = "模板id")
private Long templateId;
@ApiModelProperty(value = "公司签字位置")
private String companyKeyword;
@ApiModelProperty(value = "公司签字页码")
private Integer companyPage;
@ApiModelProperty(value = "公司签字位置x偏移量")
private Double companyOffsetx;
@ApiModelProperty(value = "公司签字位置y偏移量")
private Double companyOffsety;
@ApiModelProperty(value = "个人签字位置")
private String personalKeyword;
@ApiModelProperty(value = "个人签字页码")
private Integer personalPage;
@ApiModelProperty(value = "个人签字位置x偏移量")
private Double personalOffsetx;
@ApiModelProperty(value = "个人签字位置y偏移量")
private Double personalOffsety;
@ApiModelProperty(value = "序号")
private Integer num;
private Integer personalKeywordIndex;
private Integer companyKeywordIndex;
}
......@@ -98,7 +98,7 @@ public class HouseholdContractDto extends BaseDto {
private String projectAddressName;
@ApiModelProperty(value = "免租期免租期")
private String rentFree;
private Date rentFree;
@ApiModelProperty(value = "租金计算日期")
private Date rentCalculationDate;
......@@ -121,9 +121,9 @@ public class HouseholdContractDto extends BaseDto {
@ApiModelProperty(value = "电站功率")
private Double stationPower;
@ApiModelProperty(value = "合同契约锁id")
private Double contractLockId;
private Long contractLockId;
@ApiModelProperty(value = "印章id")
private Double sealId;
private Long sealId;
/**
* 发起状态
......@@ -134,6 +134,6 @@ public class HouseholdContractDto extends BaseDto {
* */
private Date signingTime;
private String userId;
}
......@@ -38,4 +38,8 @@ public class HouseholdContractPageDto extends Page<HouseholdContract> {
* 签字状态
*/
private String signStatus;
private String userId;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
* @author Provence
* @version v1.0
* @date 2023/8/21 15:15
*/
@Data
public class MobileLoginParamDto {
@ApiModelProperty("用户userid")
private String userId;
@ApiModelProperty("二维码类型:region, personal")
private String qrCodeType;
/**
* 注册类型:1-微信授权快捷登录;2-手机验证登录
*/
@ApiModelProperty("注册类型:1-微信授权快捷登录;2-手机验证登录")
private int registerType;
/**
* 是否需要需要短信验证: true-验证; false-不验证
*/
@ApiModelProperty("是否需要需要短信验证: true-验证; false-不验证")
private Boolean isNeedVerify;
/**
* 注册类型为1时使用:微信用户数据字段1,根据1、2进行数据解密,计算出手机号
*/
@ApiModelProperty("注册类型为1时使用:微信用户数据字段1,根据1、2进行数据解密,计算出手机号")
private String encryptedData;
/**
* 注册类型为1时使用:微信用户数据字段2,根据1、2进行数据解密,计算出手机号
*/
@ApiModelProperty("注册类型为1时使用:微信用户数据字段1,根据1、2进行数据解密,计算出手机号")
private String iv;
/**
*注册类型为1时使用:微信用户数据字段3,根据1、2、3进行数据解密,计算出手机号
*/
@ApiModelProperty("注册类型为1时使用:微信用户数据字段3,根据1、2、3进行数据解密,计算出手机号")
private String code;
/**
* 注册类型为2-手机验证登录时使用:手机号
*/
@ApiModelProperty("注册类型为2-手机验证登录时使用:手机号")
private String phoneNo;
/**
* 注册类型为2-手机验证登录时使用:验证码
*/
@ApiModelProperty("注册类型为2-手机验证登录时使用:验证码")
private String verifyCode;
@ApiModelProperty("农户信息")
private PeasantHouseholdDto peasantHouseholdDto;
}
......@@ -73,6 +73,9 @@ public class PeasantHouseholdDto extends BaseDto {
@ApiModelProperty(value = "勘察状态描述")
private String surveyOrNotText;
@ApiModelProperty(value = "证件类型")
private String idType;
@ApiModelProperty(value = "身份证号")
private String idCard;
......@@ -103,4 +106,30 @@ public class PeasantHouseholdDto extends BaseDto {
@ApiModelProperty(value = "常住地址文字")
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<String> permanentAddressText;
@ApiModelProperty(value = "区域公司id")
private Long regionalCompaniesSeq;
@ApiModelProperty(value = "区域公司code")
private String regionalCompaniesCode;
@ApiModelProperty(value = "区域公司名称")
private String regionalCompaniesName;
@ApiModelProperty(value = "身份证正面")
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<Object> idCardFront;
@ApiModelProperty(value = "身份证反面")
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<Object> idCardOpposite;
@ApiModelProperty(value = "微信唯一id")
private String openId;
@ApiModelProperty(value = "是否已认证(0-未认证,1-已认证)")
private Integer isCertified;
@ApiModelProperty(value = "平台userId")
private String userId;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author Provence
* @version v1.0
* @date 2023/8/21 13:16
*/
@Data
@ApiModel (value="PeasantHouseholdWxDto", description="微信农户登录信息")
public class PeasantHouseholdWxDto {
@ApiModelProperty (value = "token有效期")
private Long expire;
@ApiModelProperty (value = "userId")
private String userId;
@ApiModelProperty
private String userState;
@ApiModelProperty (value = "农户信息")
private PeasantHousehold peasantHousehold;
@ApiModelProperty
private Map<String, Object> userInfo;
@ApiModelProperty
private Map<String, Object> authInfo;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;
/**
* 发货单
......@@ -16,6 +24,7 @@ import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PreparationMoneyDto", description="发货单")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PreparationMoneyDto extends BaseDto {
private static final long serialVersionUID = 1L;
......@@ -34,6 +43,7 @@ public class PreparationMoneyDto extends BaseDto {
private String orderUser;
@ApiModelProperty(value = "下单时间")
@JsonFormat (pattern="yyyy-MM-dd")
private Date orderTime;
@ApiModelProperty(value = "经销商id")
......@@ -43,7 +53,8 @@ public class PreparationMoneyDto extends BaseDto {
private String dealerName;
@ApiModelProperty(value = " 发货地址")
private String sendAddress;
@TableField (typeHandler = FastjsonTypeHandler.class)
private List<String> sendAddress;
@ApiModelProperty(value = " 业主类型")
private String ownerType;
......@@ -64,16 +75,19 @@ public class PreparationMoneyDto extends BaseDto {
private String consigneePhone;
@ApiModelProperty(value = "收货人地址")
private String consigneeAddress;
@TableField (typeHandler = FastjsonTypeHandler.class)
private List<String> consigneeAddress;
@ApiModelProperty(value = "收货人详细地址")
private String consigneeDetailAddress;
@ApiModelProperty(value = "发货单")
private String invoice;
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<Object> invoice;
@ApiModelProperty(value = "收货单")
private String receipt;
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<Object> receipt;
@ApiModelProperty(value = "订单状态0未完成1已完成2作废")
private String documentState;
......@@ -99,4 +113,17 @@ public class PreparationMoneyDto extends BaseDto {
@ApiModelProperty(value = "总价")
private Double totalPrice;
@ApiModelProperty(value = "到货时间")
@JsonFormat (pattern="yyyy-MM-dd")
private Date deliveryTime;
@ApiModelProperty(value = "发货电站列表")
@NotEmpty(message = "请选择发货电站")
private List<PeasantHouseholdDto> powerStations;
@ApiModelProperty(value = "BOM清单")
private List<DocumentBomDto> documentBoms;
@ApiModelProperty(value = "单据追踪")
private List<PreparationMoneyLogDto> preparationMoneyLogs;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 发货单
*
* @author system_generator
* @date 2023-08-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PreparationMoneyLogDto", description="发货单追踪记录")
public class PreparationMoneyLogDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "货单id")
private Long preparationMoneyId;
@ApiModelProperty(value = "货单id")
private String operationContent;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2023-08-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="SealDictionaryDto", description="")
public class SealDictionaryDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "平台公司id")
private Long amosCompanySeq;
@ApiModelProperty(value = "平台公名称")
private String amosCompanyName;
@ApiModelProperty(value = "印章id")
private Long sealId;
@ApiModelProperty(value = "盖章人")
private String sealedUser;
@ApiModelProperty(value = "盖章人手机号")
private String sealedPhone;
private String category;
private String companyTenantName;
}
......@@ -12,4 +12,9 @@ public class TemplateParamDto {
private String key;
private String value;
public TemplateParamDto(String key, String value) {
this.key = key;
this.value = value;
}
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import lombok.Data;
/**
* TODO(一句话描述该类的功能)
*
* @author Provence
* @version v1.0
* @date 2023/8/22 13:05
*/
@Data
public class WechatQrCodeDTO {
/**
* 数据类型 (MIME Type)
*/
private String contentType;
/**
* byte数据 微信生成的二维码
*/
private byte[] buffer;
/**
* 错误码
*/
private Integer errCode;
/**
* 错误信息
*/
private String errMsg;
}
package com.yeejoin.amos.boot.module.hygf.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2023-08-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("hygf_contract_template")
public class ContractTemplate extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 模板名称
*/
@TableField("template_name")
private String templateName;
/**
* 模板id
*/
@TableField("template_id")
private Long templateId;
/**
* 公司签字位置
*/
@TableField("company_keyword")
private String companyKeyword;
/**
* 公司签字页码
*/
@TableField("company_page")
private Integer companyPage;
/**
* 公司签字位置x偏移量
*/
@TableField("company_offsetx")
private Double companyOffsetx;
/**
* 公司签字位置y偏移量
*/
@TableField("company_offsety")
private Double companyOffsety;
/**
* 个人签字位置
*/
@TableField("personal_keyword")
private String personalKeyword;
/**
* 个人签字页码
*/
@TableField("personal_page")
private Integer personalPage;
/**
* 个人签字位置x偏移量
*/
@TableField("personal_offsetx")
private Double personalOffsetx;
/**
* 个人签字位置y偏移量
*/
@TableField("personal_offsety")
private Double personalOffsety;
@TableField("num")
private Integer num;
@TableField("personal_keyword_index")
private Integer personalKeywordIndex;
@TableField("company_keyword_index")
private Integer companyKeywordIndex;
}
......@@ -178,7 +178,7 @@ public class HouseholdContract extends BaseEntity {
免租期
*/
@TableField("rent_free")
private String rentFree;
private Date rentFree;
/**
* 租金计算日期
......@@ -225,13 +225,13 @@ public class HouseholdContract extends BaseEntity {
*合同契约锁id'
* */
@TableField("contract_lock_id")
private Double contractLockId;
private Long contractLockId;
/**
* 印章id
* */
@TableField("seal_id")
private Double sealId;
private Long sealId;
/**
* 发起状态
......@@ -245,4 +245,7 @@ public class HouseholdContract extends BaseEntity {
@TableField("signing_time")
private Date signingTime;
@TableField("user_id")
private String userId;
}
......@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
......@@ -140,4 +139,44 @@ public class PeasantHousehold extends BaseEntity {
* */
@TableField("developer")
private String developer;
/*
* 区域公司id
* */
@TableField("regional_companies_seq")
private Long regionalCompaniesSeq;
/*
* 区域公司code
* */
@TableField("regional_companies_code")
private String regionalCompaniesCode;
/*
* 区域公司名称
* */
@TableField("regional_companies_name")
private String regionalCompaniesName;
/*
* 身份证正面
* */
@TableField(value = "id_card_front", typeHandler = FastjsonTypeHandler.class)
private List<Object> idCardFront;
/*
* 身份证反面
* */
@TableField(value = "id_card_opposite", typeHandler = FastjsonTypeHandler.class)
private List<Object> idCardOpposite;
/*
* 微信唯一id
* */
@TableField("open_id")
private String openId;
/*
* 是否已认证(0-未认证,1-已认证)
* */
@TableField("is_certified")
private Integer isCertified;
/*
* 平台userId
* */
@TableField("user_id")
private String userId;
}
......@@ -20,7 +20,7 @@ import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("hygf_preparation_money")
@TableName(value="hygf_preparation_money",autoResultMap = true)
public class PreparationMoney extends BaseEntity {
private static final long serialVersionUID = 1L;
......@@ -70,8 +70,8 @@ public class PreparationMoney extends BaseEntity {
/**
* 发货地址
*/
@TableField("send_address")
private String sendAddress;
@TableField(value = "send_address",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
private List<Object> sendAddress;
/**
* 业主类型
......@@ -112,8 +112,8 @@ public class PreparationMoney extends BaseEntity {
/**
* 收货人地址
*/
@TableField("consignee_address")
private String consigneeAddress;
@TableField(value = "consignee_address",typeHandler = FastjsonTypeHandler.class)
private List<Object> consigneeAddress;
/**
* 收货人详细地址
......@@ -125,14 +125,14 @@ public class PreparationMoney extends BaseEntity {
* 发货单
*/
@TableField(value = "invoice",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
@TableField(value = "invoice",typeHandler = FastjsonTypeHandler.class)
private List<Object> invoice;
/**
* 收货单
*/
@TableField(value = "receipt",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
private String receipt;
private List<Object> receipt;
/**
* 订单状态0未完成1已完成2已作废
......@@ -188,4 +188,10 @@ public class PreparationMoney extends BaseEntity {
@TableField("validating")
private String validating;
/**
* 到货时间
*/
@TableField("delivery_time")
private Date deliveryTime;
}
package com.yeejoin.amos.boot.module.hygf.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 发货单日志记录
*
* @author system_generator
* @date 2023-08-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors (chain = true)
@TableName (value = "hygf_preparation_money_log")
public class PreparationMoneyLog extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableField ("preparation_money_id")
private Long preparationMoneyId;
@TableField ("operation_content")
private String operationContent;
}
package com.yeejoin.amos.boot.module.hygf.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2023-08-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("hygf_seal_dictionary")
public class SealDictionary extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 平台公司id
*/
@TableField("amos_company_seq")
private Long amosCompanySeq;
/**
* 平台公名称
*/
@TableField("amos_company_name")
private String amosCompanyName;
/**
* 印章id
*/
@TableField("seal_id")
private Long sealId;
/**
* 盖章人
*/
@TableField("sealed_user")
private String sealedUser;
/**
* 盖章人手机号
*/
@TableField("sealed_phone")
private String sealedPhone;
/*
契约锁业务分类
* **/
@TableField("category")
private String category;
/**
* 契约锁签署公司
* */
@TableField("company_tenant_name")
private String companyTenantName;
}
package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.ContractTemplate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-08-22
*/
public interface ContractTemplateMapper extends BaseMapper<ContractTemplate> {
}
package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
/**
* 发货单 Mapper 接口
*
* @author system_generator
* @date 2023-08-17
*/
public interface PreparationMoneyLogMapper extends BaseMapper<PreparationMoneyLog> {
}
package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.SealDictionary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-08-23
*/
public interface SealDictionaryMapper extends BaseMapper<SealDictionary> {
}
package com.yeejoin.amos.boot.module.hygf.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2023-08-22
*/
public interface IContractTemplateService {
}
package com.yeejoin.amos.boot.module.hygf.api.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.DocumentBomDto;
import java.util.List;
/**
* 发货单bom接口类
*
......
package com.yeejoin.amos.boot.module.hygf.api.service;
/**
* 发货单接口类
*
* @author system_generator
* @date 2023-08-17
*/
public interface IPreparationMoneyLogService {
}
package com.yeejoin.amos.boot.module.hygf.api.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
/**
* 发货单接口类
*
......@@ -9,4 +11,27 @@ package com.yeejoin.amos.boot.module.hygf.api.service;
*/
public interface IPreparationMoneyService {
/**
* 新增/更新发货单
*
*
* @param model dto
* @return {@link PreparationMoneyDto}
* @author Provence
* @throws
*/
PreparationMoneyDto saveOrUpdateObject(PreparationMoneyDto model);
/**
* 更新发货单状态
*
*
* @param sequenceNbr 发货单ID
* @param operationType 操作类型(RECEIPT-确认收货, DELIVERY-发货, DISCARD-废弃)
* @return {@link Boolean}
* @author Provence
* @throws
*/
Boolean updatePreparationMoneyStatus(Long sequenceNbr, String operationType);
}
package com.yeejoin.amos.boot.module.hygf.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2023-08-23
*/
public interface ISealDictionaryService {
}
package com.yeejoin.amos.boot.module.hygf.api.service;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Provence
* @version v1.0
* @date 2023/8/22 12:53
*/
public interface IWxService {
/**
* 统一提供小程序Token
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html
*
* @return
*/
String getAccessToken();
/**
* 统一产生第三方页面二维码
* https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html
*
* @param access_token 接口调用凭证
* @param scene 传递的参数
* 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用
* urlencode 处理,请使用其他编码方式)
* @param page 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加
* /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
* @param width 二维码的宽度,单位 px,最小 280px,最大 1280px
* @param auto_color 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
* @param line_color auto_color 为 false 时生效,使用 rgb 设置颜色 例如
* {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
* @param is_hyaline 是否需要透明底色,为 true 时,生成透明底色的小程序
* @return
*/
String getSmallProQrCode(String access_token, String scene, String page, Long width, Boolean auto_color,
JSONObject line_color, Boolean is_hyaline);
/**
* 统一产生第三方页面二维码
* https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html
*
* @param access_token 接口调用凭证
* @param scene 传递的参数
* 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用
* urlencode 处理,请使用其他编码方式)
* @param page 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加
* /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
* @param width 二维码的宽度,单位 px,最小 280px,最大 1280px
* @param auto_color 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
* @param line_color auto_color 为 false 时生效,使用 rgb 设置颜色 例如
* {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
* @param is_hyaline 是否需要透明底色,为 true 时,生成透明底色的小程序
* @param is_hyaline 是否需要透明底色,为 true 时,生成透明底色的小程序
* @return
*/
byte[] getSmallProQrCodeByte(String access_token, String scene, String page, Long width, Boolean auto_color,
JSONObject line_color, Boolean is_hyaline);
/**
* 小程序二维码请求-文件流
*
* @param access_token
* @param scene
* @param page
* @param width
* @param auto_color
* @param line_color
* @param is_hyaline
* @param response
* @param fileName
* @param fileType
*/
String getSmallProQrCodeResponse(String access_token, String scene, String page, Long width, Boolean auto_color,
JSONObject line_color, Boolean is_hyaline, HttpServletResponse response, String fileName, String fileType);
/**
* code转session
*
* @param code
* @return
*/
JSONObject getCode2Session(String code);
/**
* 获取sessionKey
*
* @param code
* @return
*/
String getSessionKey(String code);
/**
* 获取openId
*
* @param code
* @return
*/
String getOpenId(String code);
/**
* 获取电话号码
* @param session_key
* @param encryptedData
* @param iv
* @return
*/
String getPhoneNumber(String session_key, String encryptedData, String iv);
/* *//**
* 微信消息通知推送
* @param
*//*
void sendWeChatUpcomingMessage(List<String> openIds, String template, List<String> message) ;*/
String getName();
}
<?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">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.api.mapper.ContractTemplateMapper">
</mapper>
<?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">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.api.mapper.SealDictionaryMapper">
</mapper>
package com.yeejoin.amos.boot.module.hygf.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.ContractTemplateServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.dto.ContractTemplateDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
/**
*
*
* @author system_generator
* @date 2023-08-22
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/contract-template")
public class ContractTemplateController extends BaseController {
@Autowired
ContractTemplateServiceImpl contractTemplateServiceImpl;
/**
* 新增
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<ContractTemplateDto> save(@RequestBody ContractTemplateDto model) {
model = contractTemplateServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<ContractTemplateDto> updateBySequenceNbrContractTemplate(@RequestBody ContractTemplateDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(contractTemplateServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(contractTemplateServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<ContractTemplateDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(contractTemplateServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<ContractTemplateDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<ContractTemplateDto> page = new Page<ContractTemplateDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(contractTemplateServiceImpl.queryForContractTemplatePage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<ContractTemplateDto>> selectForList() {
return ResponseHelper.buildResponse(contractTemplateServiceImpl.queryForContractTemplateList());
}
}
......@@ -113,4 +113,25 @@ public class DocumentBomController extends BaseController {
public ResponseModel<List<DocumentBomDto>> selectForList() {
return ResponseHelper.buildResponse(documentBomServiceImpl.queryForDocumentBomList());
}
/**
* 根据货单id查询BOM清单
*
*
* @param preparationMoneyId preparationMoneyId
* @return {@link ResponseModel< List< DocumentBomDto>>}
* @author Provence
* @throws
* @date 2023/8/17 20:33
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "根据货单id查询BOM清单", notes = "根据货单id查询BOM清单")
@GetMapping(value = "/listByPreparationMoneyId")
public ResponseModel<Page<DocumentBomDto>> listByPreparationMoneyId(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size,@RequestParam Long preparationMoneyId) {
Page<DocumentBomDto> page = new Page<DocumentBomDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(documentBomServiceImpl.queryForDocumentBomPage(page, preparationMoneyId));
}
}
......@@ -4,13 +4,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.hygf.api.Enum.HouseholdContractEnum;
import com.yeejoin.amos.boot.module.hygf.api.dto.HouseholdContractPageDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.HouseholdContract;
import com.yeejoin.amos.boot.module.hygf.api.mapper.HouseholdContractMapper;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.QiyuesuoServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.HouseholdContractServiceImpl;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -34,6 +46,11 @@ public class HouseholdContractController extends BaseController {
@Autowired
HouseholdContractServiceImpl householdContractServiceImpl;
@Value("${regionalCompanies.company.seq}")
private Long regionalCompanies;
@Autowired
QiyuesuoServiceImpl qiyuesuoServiceImpl;
/**
* 新增
......@@ -84,8 +101,17 @@ public class HouseholdContractController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<HouseholdContractDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(householdContractServiceImpl.queryBySeq(sequenceNbr));
public ResponseModel<HouseholdContract> selectOne(@PathVariable Long sequenceNbr) {
HouseholdContract householdContract = householdContractServiceImpl.getById(sequenceNbr);
if(householdContract.getContractLockId()!=null&&householdContract.getContractUrl()==null){
String url= qiyuesuoServiceImpl.getdownloadUrl(householdContract.getContractLockId());
householdContract.setContractUrl(url);
householdContractServiceImpl.updateById(householdContract);
}
return ResponseHelper.buildResponse(householdContract);
}
/**
......@@ -121,22 +147,85 @@ public class HouseholdContractController extends BaseController {
@ApiOperation(httpMethod = "post", value = "根据sequenceNbr发起", notes = "根据sequenceNbr发起")
public ResponseModel<HouseholdContractDto> qsBySequenceNbrHouseholdContract(@RequestBody HouseholdContractDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(householdContractServiceImpl.updateWithModel(model));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping (value = "/signing/{sequenceNbr}")
@ApiOperation(httpMethod = "Post", value = "签字", notes = "签字")
public ResponseModel<Boolean> signing(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr);
householdContrac.setSignStatus(HouseholdContractEnum.签字状态_已签字.getCode());
return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping (value = "/stamp/{sequenceNbr}")
@ApiOperation(httpMethod = "Post", value = "盖章", notes = "盖章")
public ResponseModel<Boolean> stamp(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr);
householdContrac.setStampStatus(HouseholdContractEnum.盖章状态_已盖章.getCode());
householdContrac.setSigningTime(new Date());
householdContrac.setStatus(HouseholdContractEnum.合同状态_已签署.getCode());
householdContrac.setSealedUser(getUserInfo().getRealName());
return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping (value = "/cancel/{sequenceNbr}")
@ApiOperation(httpMethod = "Post", value = "作废", notes = "作废")
public ResponseModel<Boolean> cancel(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
HouseholdContract householdContrac= householdContractServiceImpl.getById(sequenceNbr);
householdContrac.setStatus(HouseholdContractEnum.合同状态_已作废.getCode());
return ResponseHelper.buildResponse(householdContractServiceImpl.updateById(householdContrac));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/sealId/tree")
@ApiOperation(httpMethod = "GET", value = "印章", notes = "印章")
public ResponseModel<List<CompanyModel>> sealId() {
FeignClientResult<Collection<CompanyModel>> feignClientResult= Privilege.companyClient.querySubAgencyTree(regionalCompanies);
List<CompanyModel> companyModel = (List<CompanyModel>)feignClientResult.getResult();
companyModel=companyModel.stream().filter(compan->compan.getCompanyCode()!=null&&!"".equals(compan.getCompanyCode())).collect(Collectors.toList());
return ResponseHelper.buildResponse(companyModel);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/reissue/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "重新发起", notes = "重新发起")
public ResponseModel<HouseholdContract> reissue(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
HouseholdContract peasantHousehold= householdContractServiceImpl.getById(sequenceNbr);
//生成合同
HouseholdContract householdContract=new HouseholdContract();
householdContract.setPartyA(peasantHousehold.getPartyA());
householdContract.setPeasantHouseholdNumber(peasantHousehold.getPeasantHouseholdNumber());
householdContract.setPeasantHouseholdCard(peasantHousehold.getPeasantHouseholdCard());
householdContract.setDealerId(peasantHousehold.getDealerId());
householdContract.setDealerCode(peasantHousehold.getDealerCode());
householdContract.setDealerName(peasantHousehold.getDealerName());
householdContract.setPeasantHouseholdId(peasantHousehold.getSequenceNbr());
householdContract.setRegionalCompaniesCode(peasantHousehold.getRegionalCompaniesCode());
householdContract.setRegionalCompaniesName(peasantHousehold.getRegionalCompaniesName());
householdContract.setRegionalCompaniesSeq(peasantHousehold.getRegionalCompaniesSeq());
householdContract.setPeasantHouseholdPhone(peasantHousehold.getPeasantHouseholdPhone());
householdContract.setProjectAddressDetail(peasantHousehold.getProjectAddressDetail());
householdContract.setProjectAddressName(peasantHousehold.getProjectAddressName());
householdContract.setPermanentAddressDetail(peasantHousehold.getPermanentAddressDetail());
householdContract.setPermanentAddressName(peasantHousehold.getPermanentAddressName());
householdContract.setUserId(peasantHousehold.getUserId());
householdContractServiceImpl.addHouseholdContract(householdContract);
householdContractServiceImpl.reissueinitiateHouseholdContract(peasantHousehold,householdContract.getSequenceNbr());
return ResponseHelper.buildResponse(householdContract);
}
}
......@@ -201,13 +201,14 @@ public class PeasantHouseholdController extends BaseController {
@ApiOperation(httpMethod = "GET",value = "农户信息分页查询", notes = "农户信息分页查询")
public ResponseModel<Page<PeasantHouseholdDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "ownersName",required = false)String ownersName) {
@RequestParam(value = "ownersName",required = false)String ownersName,
@RequestParam(value = "developerId",required = false)Long developerId) {
Page<PeasantHouseholdDto> page = new Page<PeasantHouseholdDto>();
page.setCurrent(current);
page.setSize(size);
AgencyUserModel userInfo = getUserInfo();
String orgCode = userInfo.getCompanys().get(0).getOrgCode();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdPage(page,orgCode,ownersName));
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.queryForPeasantHouseholdPage(page,orgCode,ownersName,developerId));
}
/**
......
package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.entity.PreparationMoney;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
......@@ -12,11 +13,14 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PreparationMoneyServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
......@@ -45,8 +49,8 @@ public class PreparationMoneyController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增发货单", notes = "新增发货单")
public ResponseModel<PreparationMoneyDto> save(@RequestBody PreparationMoneyDto model) {
model = preparationMoneyServiceImpl.createWithModel(model);
public ResponseModel<PreparationMoneyDto> save(@Validated @RequestBody PreparationMoneyDto model) {
model = preparationMoneyServiceImpl.saveOrUpdateObject(model);
return ResponseHelper.buildResponse(model);
}
......@@ -61,7 +65,7 @@ public class PreparationMoneyController extends BaseController {
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单")
public ResponseModel<PreparationMoneyDto> updateBySequenceNbrPreparationMoney(@RequestBody PreparationMoneyDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.updateWithModel(model));
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.saveOrUpdateObject(model));
}
/**
......@@ -120,4 +124,47 @@ public class PreparationMoneyController extends BaseController {
public ResponseModel<List<PreparationMoneyDto>> selectForList() {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.queryForPreparationMoneyList());
}
/**
* 发货价格中金额列联动接口
*
* -根据发货电站表单传入的场站ID 查询数据然后计算相应的金额
*
*
* @param
* @return {@link ResponseModel< List< PreparationMoneyDto>>}
* @author Provence
* @throws
* @date 2023/8/17 18:23
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/getShippingPrice")
@ApiOperation(httpMethod = "POST", value = "发货价格数据查询", notes = "发货价格数据查询")
public ResponseModel<PreparationMoneyDto> getShippingPrice(@RequestBody List<PeasantHouseholdDto> dtos) {
List<Long> powerHouseholdIds = dtos.stream().map(PeasantHouseholdDto::getSequenceNbr).collect(Collectors.toList());
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.caculateShippingPriceByPowerHouseHoldIds(powerHouseholdIds));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/detail")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个发货单详情", notes = "根据sequenceNbr查询单个发货单详情")
public ResponseModel<PreparationMoneyDto> getObject(@RequestParam Long sequenceNbr) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.getObjectBySequenceNbr(sequenceNbr));
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/updatePreparationMoneyStatus")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr更新发货单", notes = "根据sequenceNbr更新发货单")
public ResponseModel<Boolean> updateBySequenceNbr(@RequestParam(value = "sequenceNbr") Long sequenceNbr, @RequestParam(value = "operationType") String operationType) {
return ResponseHelper.buildResponse(preparationMoneyServiceImpl.updatePreparationMoneyStatus(sequenceNbr, operationType));
}
}
package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qiyuesuo.sdk.v2.SdkClient;
import com.qiyuesuo.sdk.v2.bean.*;
import com.qiyuesuo.sdk.v2.exception.BaseSdkException;
......@@ -10,16 +11,19 @@ import com.qiyuesuo.sdk.v2.response.ContractListResult;
import com.qiyuesuo.sdk.v2.response.DocumentAddResult;
import com.qiyuesuo.sdk.v2.response.MiniappTicketResult;
import com.qiyuesuo.sdk.v2.response.SdkResponse;
import com.yeejoin.amos.boot.module.hygf.api.dto.ContractDataDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.HouseholdContractDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.HouseholdContract;
import com.yeejoin.amos.boot.module.hygf.api.entity.SealDictionary;
import com.yeejoin.amos.boot.module.hygf.api.mapper.SealDictionaryMapper;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.HouseholdContractServiceImpl;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.QiyuesuoServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -42,9 +46,12 @@ import java.util.Map;
public class QiyuesuoController {
private static final Logger logger = LoggerFactory.getLogger(QiyuesuoController.class);
@Autowired
SealDictionaryMapper sealDictionaryMapper;
@Autowired
QiyuesuoServiceImpl qiyuesuoService;
@Autowired
HouseholdContractServiceImpl householdContractServiceImpl;
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "post",value = "个人token", notes = "个人token")
......@@ -65,10 +72,27 @@ public class QiyuesuoController {
return ResponseHelper.buildResponse(result.getResult());
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "post",value = "合同token", notes = "合同token")
@PostMapping (value = "/getContractTokengz/{sequenceNbr}")
public ResponseModel<Object> getContractSdkResponseSequenceNbr(@RequestBody ContractMiniappTicketRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
QueryWrapper<SealDictionary> queryWrapper=new QueryWrapper();
queryWrapper.eq("amos_company_seq",sequenceNbr);
SealDictionary sealDictionary=sealDictionaryMapper.selectOne(queryWrapper);
request.setUser(new User( sealDictionary.getSealedPhone(), "MOBILE"));
SdkResponse<MiniappTicketResult> result= qiyuesuoService.getContractSdkResponse(request);
return ResponseHelper.buildResponse(result.getResult());
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "post",value = "创建合同", notes = "创建合同")
@PostMapping (value = "/addContract")
public ResponseModel<HouseholdContract> initiateHouseholdContract(@RequestBody HouseholdContractDto model) {
HouseholdContract householdContract=householdContractServiceImpl.initiateHouseholdContract(model);
return ResponseHelper.buildResponse(householdContract);
}
......@@ -100,6 +124,20 @@ public class QiyuesuoController {
return ResponseHelper.buildResponse(qysResponse.getResult());
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "post",value = "创建合同", notes = "创建合同")
@PostMapping (value = "/getUnit2000")
......@@ -126,14 +164,14 @@ public class QiyuesuoController {
contract.setCategory(new Category("智信能源合同"));
// contract.setBizId("");
contract.setSend(false);
// 个人
// 个人
Signatory signatory1 = new Signatory();
signatory1.setTenantName(username);
signatory1.setTenantType("PERSONAL");
signatory1.setReceiver(new User(username, contact, "MOBILE"));
signatory1.setSerialNo(1);
// 对接方
// 对接方
Signatory signatory2 = new Signatory();
signatory2.setTenantName("智信能源科技有限公司-测试");
signatory2.setTenantType("COMPANY");
......@@ -141,15 +179,15 @@ public class QiyuesuoController {
signatory2.setSerialNo(2);
Action action = new Action("COMPANY", 0);
signatory2.addAction(action);
// 设置签署方
// 设置签署方
contract.addSignatory(signatory1);
contract.addSignatory(signatory2);
// 创建合同
// 创建合同
ContractDraftRequest request = new ContractDraftRequest(contract);
String response = sdkClient.service(request);
SdkResponse<Contract> responseObj = JSONUtils.toQysResponse(response, Contract.class);
// 返回结果
// 返回结果
Contract result=new Contract();
if(responseObj.getCode() == 0) {
result = responseObj.getResult();
......
package com.yeejoin.amos.boot.module.hygf.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SealDictionaryServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.hygf.api.dto.SealDictionaryDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
/**
*
*
* @author system_generator
* @date 2023-08-23
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/seal-dictionary")
public class SealDictionaryController extends BaseController {
@Autowired
SealDictionaryServiceImpl sealDictionaryServiceImpl;
/**
* 新增
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<SealDictionaryDto> save(@RequestBody SealDictionaryDto model) {
model = sealDictionaryServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<SealDictionaryDto> updateBySequenceNbrSealDictionary(@RequestBody SealDictionaryDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(sealDictionaryServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(sealDictionaryServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<SealDictionaryDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(sealDictionaryServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<SealDictionaryDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<SealDictionaryDto> page = new Page<SealDictionaryDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(sealDictionaryServiceImpl.queryForSealDictionaryPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<SealDictionaryDto>> selectForList() {
return ResponseHelper.buildResponse(sealDictionaryServiceImpl.queryForSealDictionaryList());
}
}
package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.yeejoin.amos.boot.module.hygf.api.entity.ContractTemplate;
import com.yeejoin.amos.boot.module.hygf.api.mapper.ContractTemplateMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IContractTemplateService;
import com.yeejoin.amos.boot.module.hygf.api.dto.ContractTemplateDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 服务实现类
*
* @author system_generator
* @date 2023-08-22
*/
@Service
public class ContractTemplateServiceImpl extends BaseService<ContractTemplateDto,ContractTemplate,ContractTemplateMapper> implements IContractTemplateService {
/**
* 分页查询
*/
public Page<ContractTemplateDto> queryForContractTemplatePage(Page<ContractTemplateDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<ContractTemplateDto> queryForContractTemplateList() {
return this.queryForList("num" , true);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.hygf.api.entity.DesignInformation;
import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentBom;
import com.yeejoin.amos.boot.module.hygf.api.mapper.DocumentBomMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IDocumentBomService;
import com.yeejoin.amos.boot.module.hygf.api.dto.DocumentBomDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 发货单bom服务实现类
......@@ -17,6 +31,15 @@ import java.util.List;
*/
@Service
public class DocumentBomServiceImpl extends BaseService<DocumentBomDto,DocumentBom,DocumentBomMapper> implements IDocumentBomService {
/**
* 折扣率
*/
private final static double DISCOUNT_RATE = 1;
@Autowired
DesignInformationServiceImpl designInformationService;
/**
* 分页查询
*/
......@@ -30,4 +53,110 @@ public class DocumentBomServiceImpl extends BaseService<DocumentBomDto,DocumentB
public List<DocumentBomDto> queryForDocumentBomList() {
return this.queryForList("" , false);
}
/**
* 分页查询 By preparationMoneyId
*/
public Page<DocumentBomDto> queryForDocumentBomPage(Page<DocumentBomDto> page, Long preparationMoneyId) {
return this.queryForPage(page, null, false, preparationMoneyId);
}
/**
* 查询 By preparationMoneyId
*/
public List<DocumentBomDto> listByPreparationMoneyId(Long preparationMoneyId) {
return this.queryForList(null, false, preparationMoneyId);
}
/**
* 根据发货电站组装BOM清单数据
*
*
* @param powerHouseholdIds powerHouseholdIds
* @return {@link List< DocumentBom>}
* @author Provence
* @throws
*/
public List<DocumentBom> assembleDocumentBom(List<Long> powerHouseholdIds) {
// hygf_design_information
List<DesignInformation> designInformations = designInformationService.query().in("peasant_household_id", powerHouseholdIds).list();
// [{"wlbm":"1","Symbol_key":"B1F7FEE3-9377-4A42-81FB-DEB8775EF67C","wlmc":"1","dcpgg":"1"}]
// 组件-assembly, 逆变器-inverter,电表箱-electricity_meter 根据物料编码 分组
List<DocumentBom> documentBoms = new ArrayList<>();
for (DesignInformation designInformation : designInformations) {
documentBoms.addAll(convertBom(designInformation.getAssembly(), "assembly"));
documentBoms.addAll(convertBom(designInformation.getInverter(), "inverter"));
documentBoms.addAll(convertBom(designInformation.getElectricityMeter(), "electricityMeter"));
}
// 根据物料编码 分组
return documentBoms.stream().collect(Collectors.groupingBy(DocumentBom::getMaterialNum)).values().stream()
.flatMap(list -> Stream.of(list.stream().reduce((o1, o2) -> {
o1.setDemandNumber(o1.getDemandNumber() + o2.getDemandNumber());
o1.setDiscountTotal(caculateDiscountTotal(o1).add(caculateDiscountTotal(o2)).doubleValue());
o1.setDiscountUnitPrice(caculateDiscountUnitPrice(o1).add(caculateDiscountUnitPrice(o2)).doubleValue());
return o1;
}).orElse(null)).filter(Objects::nonNull)).collect(Collectors.toList());
}
private BigDecimal caculateTotal(DocumentBom o1) {
return new BigDecimal(o1.getDemandNumber()).multiply(new BigDecimal(o1.getUnitPrice()));
}
private BigDecimal caculateDiscountTotal(DocumentBom o1) {
// 折扣总额 = 总价 - 折扣总价
return caculateTotal(o1).subtract(new BigDecimal(o1.getDemandNumber()).multiply(caculateDiscountUnitPrice(o1)));
}
private BigDecimal caculateDiscountUnitPrice(DocumentBom o1) {
// 折扣后单价 = 单价 * 折扣率
return new BigDecimal(o1.getUnitPrice()).multiply(new BigDecimal(DISCOUNT_RATE));
}
/**
* 设计信息内的组件-assembly, 逆变器-inverter,电表箱-electricity_meter json转成bom清单对象
*
*
* @param objects objects
* @param materialType materialType
* @return {@link List< DocumentBom>}
* @author Provence
* @throws
*/
private List<DocumentBom> convertBom(List<Object> objects, String materialType) {
if (CollectionUtils.isEmpty(objects)) {
return Collections.EMPTY_LIST;
}
List<DocumentBom> documentBoms = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(objects.toString());
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
documentBoms.add(parseDocumentBom(json));
}
return documentBoms;
}
private DocumentBom parseDocumentBom(JSONObject json) {
DocumentBom documentBom = new DocumentBom();
String materialNum = json.getString("wlbm");//物料编码
String materialName = json.getString("wlmc");//物料名称
Integer demandNumber = json.getInteger("pzsl");//配置数量
Double price = json.getDouble("price");//价格
if (StringUtils.isAnyBlank(materialNum, materialName)) {
throw new RuntimeException("物料编码和物料名称不能为空");
}
if (null == demandNumber || null == price) {
throw new RuntimeException("价格和配置数量不能为空");
}
Double power = Double.valueOf(Optional.ofNullable(json.getString("gl")).orElse("0").replace("W", ""));// 去掉功率的单位
documentBom.setMaterialNum(materialNum);//物料编码
documentBom.setMaterialName(materialName);//物料名称
documentBom.setUnitPrice(price);
documentBom.setDemandNumber(demandNumber);
documentBom.setPower(power);
/*
类型和分组目前没有该字段
documentBom.setMaterialType(materialType);
documentBom.setMaterialGroup();*/
return documentBom;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyLogDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoneyLog;
import com.yeejoin.amos.boot.module.hygf.api.mapper.PreparationMoneyLogMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.IPreparationMoneyLogService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
/**
* 发货单日志记录服务实现类
*
* @author system_generator
* @date 2023-08-17
*/
@Service
public class PreparationMoneyLogServiceImpl extends BaseService<PreparationMoneyLogDto, PreparationMoneyLog, PreparationMoneyLogMapper> implements IPreparationMoneyLogService {
}
\ No newline at end of file
......@@ -3,9 +3,11 @@ package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.qiyuesuo.sdk.v2.SdkClient;
import com.qiyuesuo.sdk.v2.bean.*;
import com.qiyuesuo.sdk.v2.bean.vo.DocumentUrlVO;
import com.qiyuesuo.sdk.v2.exception.BaseSdkException;
import com.qiyuesuo.sdk.v2.json.JSONUtils;
import com.qiyuesuo.sdk.v2.request.*;
import com.qiyuesuo.sdk.v2.response.ContractDownloadUrlResult;
import com.qiyuesuo.sdk.v2.response.DocumentAddResult;
import com.qiyuesuo.sdk.v2.response.MiniappTicketResult;
import com.qiyuesuo.sdk.v2.response.SdkResponse;
......@@ -109,17 +111,13 @@ public class QiyuesuoServiceImpl {
Integer personalPage= contractDataDto.getPersonalPage();
Double personalOffsetX= contractDataDto.getPersonalOffsetX();
Double personalOffsetY= contractDataDto.getPersonalOffsetY();
List<Long> corpSealIds=contractDataDto.getSealId();
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
// 合同基本参数
//进行日期格式化
Contract contract = new Contract();
contract.setSubject(subject);
contract.setDescription(subject);
contract.setExpireTime(expireTime);
contract.setEndTime(endTime);
contract.setCategory(new Category(category));
contract.setSend(false);
// 个人
......@@ -136,6 +134,8 @@ public class QiyuesuoServiceImpl {
signatory2.setReceiver(new User(companyUsername, companyContact, "MOBILE"));
signatory2.setSerialNo(2);
Action action = new Action("COMPANY", 0);
//指定印章
action.setCorpSealIds(corpSealIds);
signatory2.addAction(action);
// 设置签署方
contract.addSignatory(signatory1);
......@@ -143,17 +143,18 @@ public class QiyuesuoServiceImpl {
// 创建合同
ContractDraftRequest request = new ContractDraftRequest(contract);
logger.info("创建草稿合同调用前"+JSON.toJSONString(request));
String response = sdkClient.service(request);
SdkResponse<Contract> responseObj = JSONUtils.toQysResponse(response, Contract.class);
// 返回结果
Contract result=new Contract();
logger.info("创建草稿合同调用后"+JSON.toJSONString(responseObj));
if(responseObj.getCode() == 0) {
result = responseObj.getResult();
logger.info(JSON.toJSONString(responseObj));
} else {
logger.info("请求失败,错误码:{},错误信息:{}", responseObj.getCode(), responseObj.getMessage());
}
DocumentAddResult documentAddResult= this.getDocumentAddResult(result.getId(),subject, templateParam,emplateId);
List<Signatory> list= result.getSignatories();
Long ActionId=null;
......@@ -177,7 +178,7 @@ public class QiyuesuoServiceImpl {
Stamper stamper2 = new Stamper();
stamper2.setSignatoryId(SignatoryId);
stamper2.setDocumentId(documentAddResult.getDocumentId());
stamper.setKeyword(personalkeyword);
stamper2.setKeyword(personalkeyword);
stamper2.setType("PERSONAL");
stamper2.setPage(personalPage);
stamper2.setOffsetX(personalOffsetX);
......@@ -186,7 +187,6 @@ public class QiyuesuoServiceImpl {
stampers.add(stamper);
stampers.add(stamper2);
SdkResponse<Object> data= this.getSdkResponse(result.getId(), stampers);
return result.getId();
}
......@@ -196,20 +196,24 @@ public class QiyuesuoServiceImpl {
// 添加合同文档
List<TemplateParam> params = new ArrayList<>();
for (TemplateParamDto templateParamDto : templateParam) {
params.add(new TemplateParam(templateParamDto.getKey(), templateParamDto.getValue()));
if(templateParamDto.getValue()!=null){
params.add(new TemplateParam(templateParamDto.getKey(), templateParamDto.getValue()));
}
}
logger.info("合同参数"+JSON.toJSONString(params));
DocumentAddByTemplateRequest request = new DocumentAddByTemplateRequest(contractId,
emplateId , params, subject);
logger.info("添加合同文档前", JSON.toJSONString(request));
String response = sdkClient.service(request);
SdkResponse<DocumentAddResult> responseObj = JSONUtils.toQysResponse(response, DocumentAddResult.class);
logger.info("添加合同文档后", JSON.toJSONString(responseObj));
DocumentAddResult result=null;
if (responseObj.getCode() == 0) {
result = responseObj.getResult();
logger.info("添加合同文档成功,文档ID:{}", JSON.toJSONString(result));
} else {
logger.info("请求失败,错误码:{},错误信息:{}", responseObj.getCode(), responseObj.getMessage());
throw new RuntimeException("请求失败");
}
return result;
}
......@@ -219,16 +223,44 @@ public class QiyuesuoServiceImpl {
// 发起合同
SdkResponse<Object> responseObj =null;
ContractSendRequest request = new ContractSendRequest(contractId, stampers);
logger.info("发起合同前", JSON.toJSONString(request));
String response = sdkClient.service(request);
responseObj = JSONUtils.toQysResponse(response);
logger.info("发起合同后", JSON.toJSONString(responseObj));
if(responseObj.getCode() == 0) {
logger.info("合同发起成功");
} else {
logger.info("请求失败,错误码:{},错误信息:{}", responseObj.getCode(), responseObj.getMessage());
throw new RuntimeException("请求失败");
}
return responseObj;
}
public String getdownloadUrl(Long contractId ) {
String url=null;
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
ContractDownloadUrlRequest downloadRequest = new ContractDownloadUrlRequest(contractId);
String response = sdkClient.service(downloadRequest);
SdkResponse<ContractDownloadUrlResult> responseObj = JSONUtils.toQysResponse(response, ContractDownloadUrlResult.class);
if (responseObj.getCode().equals(0)) {
List<DocumentUrlVO> downloadUrls = responseObj.getResult().getDownloadUrls();
for (DocumentUrlVO vo : downloadUrls) {
if("CONTRACT".equals(vo.getDownloadItems())){
url= vo.getDownloadUrl();
}
}
} else {
throw new RuntimeException("请求失败");
}
return url;
}
}
package com.yeejoin.amos.boot.module.hygf.biz.service.impl;
import com.yeejoin.amos.boot.module.hygf.api.entity.SealDictionary;
import com.yeejoin.amos.boot.module.hygf.api.mapper.SealDictionaryMapper;
import com.yeejoin.amos.boot.module.hygf.api.service.ISealDictionaryService;
import com.yeejoin.amos.boot.module.hygf.api.dto.SealDictionaryDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 服务实现类
*
* @author system_generator
* @date 2023-08-23
*/
@Service
public class SealDictionaryServiceImpl extends BaseService<SealDictionaryDto,SealDictionary,SealDictionaryMapper> implements ISealDictionaryService {
/**
* 分页查询
*/
public Page<SealDictionaryDto> queryForSealDictionaryPage(Page<SealDictionaryDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<SealDictionaryDto> queryForSealDictionaryList() {
return this.queryForList("" , false);
}
}
\ No newline at end of file
......@@ -85,27 +85,27 @@ spring.jms.pub-sub-domain=false
myqueue=amos.privilege.v1.JXIOP.AQSC_FDGL.userBusiness
regulator.unit.code=86*258
# 经销商应用code
# ������Ӧ��code
dealer.appcode=studio_normalapp_5133538
hygf.sms.tempCode=SMS_HYGF_0001
# 华为短信相关配置
# �������������
sms.huawei.url=https://smsapi.cn-north-4.myhuaweicloud.com:443/sms/batchSendSms/v1
sms.huawei.appKey=n3FYPWO7Heo1ze212QRBvF4VA2E2
sms.huawei.appSecret=IFhiMpWROi7w4Ei21ZbfIjKyt97b
# 模id
# �id
sms.huawei.templateId=6aaeb4bf916d4db0a1942c598912519e
# 签名通道号
# ǩ��ͨ����
sms.huawei.sender=1069368924410006092
# 签名名称
sms.huawei.signature=华为云短信测试
# 签名名称
sms.huawei.signature=华为云短信测试
# 审核pageId确认
# ���pageIdȷ��
power.station.examine.pageId=1680853427061551106
# 电站审核计划id
# ��վ��˼ƻ�id
power.station.examine.planId=c4ed1873-0dc6-4518-a7a9-dbc588ef35e5
# 用户组userGroupId
# �û���userGroupId
hygf.user.group.id=1679755750924120066
......@@ -114,4 +114,30 @@ unitInfo.station.examine.planId=51776087-a9cf-4a87-9a03-24fd24a8cf45
hygf.sms.tempCodeJXS=SMS_HYGF_0002
regionalCompanies.company.seq=1693499571071619074
\ No newline at end of file
regionalCompanies.company.seq=1693499571071619074
qiyuesuo.serverUrl = https://openapi.qiyuesuo.cn
qiyuesuo.accessKey = TdBmNkjAYd
qiyuesuo.accessSecret = y8KiDFKKDdC9Ld9Cm5zuy2rpXjxP5Z
# ============================================= v20230821 add properties =============================================
security.productWeb=AMOS_STUDIO_WEB
security.appKey=AMOS_STUDIO
login.environment=dev
# 光伏农户微信小程序信息
hygfProgram.appid=wx2188769349b1ddeb
hygfProgram.secret=3bfd098cfdac002126e728d2dbf83c0d
# 默认微信小程序农户经销商
farmer.orgCode=86
farmer.sequenceNbr=1620981815542046722
farmer.orgNamesWithoutRole=
farmer.roleId=1693501363645845505
# 配置接口授权用户
platform.access.loginId=hygf_platform
platform.access.password=AC286A35E74D2DD281EB979789DECF3A
# 测试用的经销商userid
dealer.userId=
# 测试的时候默认密码
farmer.registerPassword=a123456
\ No newline at end of file
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
......@@ -27,7 +29,7 @@ public class IdxBizPvPointVarCentralValue{
/**
*
*/
@TableField("SEQUENCE_NBR")
@TableId(value = "SEQUENCE_NBR" ,type = IdType.UUID)
private String sequenceNbr;
/**
......
......@@ -71,13 +71,13 @@ public class IdxBizPvPointVarCorrelation{
*
*/
@TableField("ANALYSIS_POINT_ID")
private Integer analysisPointId;
private String analysisPointId;
/**
*
*/
@TableField("PROCESS_POINT_ID")
private Integer processPointId;
private String processPointId;
/**
* 片区
......@@ -131,7 +131,7 @@ public class IdxBizPvPointVarCorrelation{
*
*/
@TableField("PROCESS_INDEX_ADDRESS")
private Integer processIndexAddress;
private String processIndexAddress;
/**
* 设备名称
......
......@@ -29,12 +29,8 @@ import com.yeejoin.amos.boot.module.jxiop.biz.utils.InfluxDButils;
import com.yeejoin.amos.boot.module.jxiop.biz.service.IMonitorFanIndicator;
import com.yeejoin.amos.component.robot.BadRequest;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.velocity.runtime.directive.Break;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.elasticsearch.common.recycler.Recycler;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
......@@ -45,13 +41,11 @@ import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.io.File;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.parseArray;
/**
* @description:
......@@ -102,6 +96,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
@Autowired
EmqKeeper emqKeeper;
//风机状态列表
@Value("${fan.statuts.stattuspath}")
private String fanStatusImagePathPrefix;
@Value("${pictureUrl}")
String pictureUrl;
......@@ -906,12 +903,16 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
}
public void getListByFJ(String gatewayId,String werks,String stationId){
HashMap<String,String> fanstatutsHashMap = new HashMap<>();
String sql = " SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName ='瞬时风速' ";
String sql1 = " SELECT * FROM indicators_"+gatewayId+" WHERE equipmentIndexName ='有功功率'";
List<IndicatorsDto> listData = influxDButils.getListData(sql, IndicatorsDto.class);
List<IndicatorsDto> listData1 = influxDButils.getListData(sql1, IndicatorsDto.class);
TpriDmpDatabook tpriDmpDatabook = tpriDmpDatabookServiceImpl.getTpriDmpDatabookByDataName("风机");
List<Map<String,Object>> dataMaps = sjglZsjZsbtzServiceImpl.sjglZsjZsbtzMapper.getStationInfoMapByStationWerks(werks, tpriDmpDatabook.getDataid().toString());
//获取风机列表
List<IndexDto> fanStatusList = getFanStatusList(stationId);
fanStatusList.forEach(indexDto -> {fanstatutsHashMap.put(indexDto.getEquipmentNumber(),indexDto.getState());});
int i = 0;
for (Map<String, Object> dataMap : dataMaps) {
List<String> numList = Arrays.asList(dataMap.get("equipNum").toString().split(","));
......@@ -929,6 +930,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
map.put("title",listDatum.getEquipmentNumber());
map.put("windSpeed",listDatum.getValue());
map.put("power",listDatum.getValueLabel());
//获取风机状态如果获取到的状态为空-则默认为正常运行状态
String fantStatus = ObjectUtils.isEmpty(fanstatutsHashMap.get(num))?"正常运行":fanstatutsHashMap.get(num);
map.put("url",fanStatusImagePathPrefix + File.separator + "风机-" + fantStatus + ".gif");
statusMaps.add(map);
}
}
......
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