Commit 8dda72ca authored by 杨阳's avatar 杨阳

发货单

新增/编辑/详情接口 更新发货单状态接口
parent 55da605c
...@@ -105,7 +105,7 @@ public class PeasantHouseholdDto extends BaseDto { ...@@ -105,7 +105,7 @@ public class PeasantHouseholdDto extends BaseDto {
private List<String> permanentAddressText; private List<String> permanentAddressText;
@ApiModelProperty(value = "区域公司id") @ApiModelProperty(value = "区域公司id")
private String regionalCompaniesSeq; private Long regionalCompaniesSeq;
@ApiModelProperty(value = "区域公司code") @ApiModelProperty(value = "区域公司code")
private String regionalCompaniesCode; private String regionalCompaniesCode;
...@@ -126,4 +126,7 @@ public class PeasantHouseholdDto extends BaseDto { ...@@ -126,4 +126,7 @@ public class PeasantHouseholdDto extends BaseDto {
@ApiModelProperty(value = "是否已认证(0-未认证,1-已认证)") @ApiModelProperty(value = "是否已认证(0-未认证,1-已认证)")
private Integer isCertified; private Integer isCertified;
@ApiModelProperty(value = "平台userId")
private String userId;
} }
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.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold; import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List; import java.util.HashMap;
import java.util.Map;
/** /**
* *
...@@ -22,32 +19,25 @@ import java.util.List; ...@@ -22,32 +19,25 @@ import java.util.List;
@ApiModel (value="PeasantHouseholdWxDto", description="微信农户登录信息") @ApiModel (value="PeasantHouseholdWxDto", description="微信农户登录信息")
public class PeasantHouseholdWxDto { public class PeasantHouseholdWxDto {
@ApiModelProperty @ApiModelProperty (value = "token有效期")
private String userState; private Long expire;
@ApiModelProperty @ApiModelProperty (value = "token")
private AuthInfoDto authInfo; private String token;
@ApiModelProperty (value = "用户信息") @ApiModelProperty (value = "userId")
private AgencyUserModel userInfo; private String userId;
@ApiModelProperty
private String userState;
@ApiModelProperty (value = "农户信息") @ApiModelProperty (value = "农户信息")
private PeasantHousehold peasantHousehold; private PeasantHousehold peasantHousehold;
@Data @ApiModelProperty
@ApiModel (value="authInfo信息", description="authInfo信息") private Map<String, Object> userInfo;
public static class AuthInfoDto {
@ApiModelProperty (value = "登录token")
private String token;
@ApiModelProperty (value = "用户id")
private String personId;
@ApiModelProperty (value = "appKey") @ApiModelProperty
private String appKey; private Map<String, Object> authInfo;
@ApiModelProperty (value = "product")
private String product;
}
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 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.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
...@@ -122,4 +123,7 @@ public class PreparationMoneyDto extends BaseDto { ...@@ -122,4 +123,7 @@ public class PreparationMoneyDto extends BaseDto {
@ApiModelProperty(value = "BOM清单") @ApiModelProperty(value = "BOM清单")
private List<DocumentBomDto> documentBoms; 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="发货单追踪记录")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PreparationMoneyLogDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "货单id")
private Long preparationMoneyId;
@ApiModelProperty(value = "货单id")
private String operationContent;
}
...@@ -144,7 +144,7 @@ public class PeasantHousehold extends BaseEntity { ...@@ -144,7 +144,7 @@ public class PeasantHousehold extends BaseEntity {
* 区域公司id * 区域公司id
* */ * */
@TableField("regional_companies_seq") @TableField("regional_companies_seq")
private String regionalCompaniesSeq; private Long regionalCompaniesSeq;
/* /*
* 区域公司code * 区域公司code
* */ * */
...@@ -175,5 +175,9 @@ public class PeasantHousehold extends BaseEntity { ...@@ -175,5 +175,9 @@ public class PeasantHousehold extends BaseEntity {
* */ * */
@TableField("is_certified") @TableField("is_certified")
private Integer isCertified; private Integer isCertified;
/*
* 平台userId
* */
@TableField("user_id")
private String userId;
} }
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.dto.BaseDto;
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 BaseDto {
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.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.hygf.api.entity.PreparationMoney;
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.service;
import com.yeejoin.amos.boot.module.hygf.api.dto.PreparationMoneyDto;
/**
* 发货单接口类
*
* @author system_generator
* @date 2023-08-17
*/
public interface IPreparationMoneyLogService {
}
package com.yeejoin.amos.boot.module.hygf.biz.controller; package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
...@@ -9,39 +8,49 @@ import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto; ...@@ -9,39 +8,49 @@ import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto;
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.PeasantHouseholdWxDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdWxDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.SurveyInformationDto; import com.yeejoin.amos.boot.module.hygf.api.dto.SurveyInformationDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PeasantHouseholdServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.PeasantHouseholdServiceImpl;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SurveyInformationServiceImpl; import com.yeejoin.amos.boot.module.hygf.biz.service.impl.SurveyInformationServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.IdPasswordAuthModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel; import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import com.yeejoin.amos.feign.systemctl.model.SmsRecordModel;
import com.yeejoin.precontrol.common.utils.DesUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.logging.SimpleFormatter;
/** /**
* 农户信息 * 农户信息
...@@ -56,13 +65,13 @@ import java.util.List; ...@@ -56,13 +65,13 @@ import java.util.List;
public class PeasantHouseholdWxController extends BaseController { public class PeasantHouseholdWxController extends BaseController {
@Autowired @Autowired
SurveyInformationServiceImpl surveyInformationServiceImpl; RedisUtils redisUtil;
@Autowired @Autowired
PeasantHouseholdServiceImpl peasantHouseholdServiceImpl; SurveyInformationServiceImpl surveyInformationServiceImpl;
@Autowired @Autowired
RedisUtils redisUtils; PeasantHouseholdServiceImpl peasantHouseholdServiceImpl;
private static final String regionRedis = "app_region_redis"; private static final String regionRedis = "app_region_redis";
...@@ -74,20 +83,39 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -74,20 +83,39 @@ public class PeasantHouseholdWxController extends BaseController {
}*/ }*/
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation("获取验证码")
@GetMapping("/getAuthCode")
public ResponseModel<Boolean> getAuthCode(@RequestParam String phoneNo) {
HashMap<String, String> sendMap = new HashMap<>();
sendMap.put("mobile", phoneNo);
sendMap.put("smsType", "MOBILE_LOGIN");
FeignClientResult<SmsRecordModel> sendVerifyCodeResult = Systemctl.smsClient.sendVerifyCode(sendMap);
if (sendVerifyCodeResult.getStatus() != 200) {
if (log.isErrorEnabled()) {
log.error("调用平台发送验证码失败:{}", sendVerifyCodeResult.getDevMessage());
}
throw new BadRequest(sendVerifyCodeResult.getMessage());
}
return ResponseHelper.buildResponse(true);
}
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping (value = "/login", method = RequestMethod.POST) @RequestMapping (value = "/login", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信授权登陆", notes = "微信授权登陆") @ApiOperation (httpMethod = "POST", value = "微信授权登陆", notes = "微信授权登陆")
public ResponseModel<PeasantHouseholdWxDto> wxUserLogin(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) { public ResponseModel<PeasantHouseholdWxDto> wxUserLogin(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
peasantHouseholdServiceImpl.setPlatFormAccess();
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.wxUserLogin(mobileLoginParam)); return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.wxUserLogin(mobileLoginParam));
} }
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping (value = "/register", method = RequestMethod.POST) @RequestMapping (value = "/register", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信农户注册", notes = "微信农户注册") @ApiOperation (httpMethod = "POST", value = "微信农户注册", notes = "微信农户注册")
public ResponseModel<PeasantHouseholdWxDto> wxUserRegister(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) { public ResponseModel<PeasantHouseholdDto> wxUserRegister(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
log.info("微信农户注册, 入参 => {}", JSONObject.toJSONString(mobileLoginParam)); log.info("微信农户注册, 入参 => {}", JSONObject.toJSONString(mobileLoginParam));
if (null == mobileLoginParam.getPeasantHouseholdDto()) { if (null == mobileLoginParam.getPeasantHouseholdDto()) {
throw new BadRequest("农户信息不能为空"); throw new BadRequest("农户信息不能为空");
} }
AgencyUserModel userInfo = getUserInfo();
PeasantHouseholdDto model = mobileLoginParam.getPeasantHouseholdDto(); PeasantHouseholdDto model = mobileLoginParam.getPeasantHouseholdDto();
SurveyInformationDto surveyInformationDto = new SurveyInformationDto(); SurveyInformationDto surveyInformationDto = new SurveyInformationDto();
surveyInformationServiceImpl.createWithModel(surveyInformationDto); surveyInformationServiceImpl.createWithModel(surveyInformationDto);
...@@ -102,11 +130,11 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -102,11 +130,11 @@ public class PeasantHouseholdWxController extends BaseController {
area = area + re.getRegionName() + "/"; area = area + re.getRegionName() + "/";
} }
} }
model.setProjectAddressName(area.substring(0, area.length() - 2)); model.setProjectAddressName(area.length() > 2 ? area.substring(0, area.length() - 2) : area);
if ("1".equals(model.getIsPermanent())) { if ("1".equals(model.getIsPermanent())) {
model.setPermanentAddress(model.getProjectAddress()); model.setPermanentAddress(model.getProjectAddress());
model.setPermanentAddressDetail(model.getProjectAddressDetail()); model.setPermanentAddressDetail(model.getProjectAddressDetail());
model.setPermanentAddressName(area.substring(0, area.length() - 2)); model.setPermanentAddressName(area.length() > 2 ? area.substring(0, area.length() - 2) : area);
} else { } else {
// 处理常住地址 // 处理常住地址
String permanent = ""; String permanent = "";
...@@ -117,7 +145,7 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -117,7 +145,7 @@ public class PeasantHouseholdWxController extends BaseController {
permanent = permanent + re.getRegionName() + "/"; permanent = permanent + re.getRegionName() + "/";
} }
} }
model.setPermanentAddressName(permanent.substring(0, permanent.length() - 2)); model.setPermanentAddressName(permanent.length() > 2 ? permanent.substring(0, permanent.length() - 2) : permanent);
} }
} }
} }
...@@ -125,24 +153,20 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -125,24 +153,20 @@ public class PeasantHouseholdWxController extends BaseController {
model.setSurveyInformationId(surveyInformationDto.getSequenceNbr()); model.setSurveyInformationId(surveyInformationDto.getSequenceNbr());
model.setSurveyOrNot(0); model.setSurveyOrNot(0);
model.setReview(0); model.setReview(0);
/*model.setDeveloperCode(userInfo.getCompanys().get(0).getOrgCode());
model.setDeveloperId(userInfo.getCompanys().get(0).getSequenceNbr());
model.setDeveloperName(userInfo.getOrgNamesWithoutRole());
if (StringUtils.isEmpty(model.getDeveloper())) {
model.setDeveloper(userInfo.getRealName());
}*/
if (model.getCreationTime() == null) { if (model.getCreationTime() == null) {
model.setCreationTime(new Date()); model.setCreationTime(new Date());
} }
model.setPeasantHouseholdNo(peasantHouseholdServiceImpl.getPeasantHouseholdNo());
model.setIsCertified(model.getIsCertified() == null ? 0 : model.getIsCertified());// 未认证 model.setIsCertified(model.getIsCertified() == null ? 0 : model.getIsCertified());// 未认证
mobileLoginParam.setPeasantHouseholdDto(model); model.setUserId(userInfo.getUserId());// 绑定平台userId
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.wxUserRegister(mobileLoginParam));
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.createWithModel(model));
} }
public JSONArray getRegionName() { public JSONArray getRegionName() {
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
if (redisUtils.hasKey(regionRedis)) { if (redisUtil.hasKey(regionRedis)) {
jsonArray = JSONArray.parseArray(redisUtils.get(regionRedis).toString()); jsonArray = JSONArray.parseArray(redisUtil.get(regionRedis).toString());
} else { } else {
Collection<RegionModel> regionChild = new ArrayList<>(); Collection<RegionModel> regionChild = new ArrayList<>();
RegionModel regionModel1 = new RegionModel(); RegionModel regionModel1 = new RegionModel();
...@@ -165,8 +189,9 @@ public class PeasantHouseholdWxController extends BaseController { ...@@ -165,8 +189,9 @@ public class PeasantHouseholdWxController extends BaseController {
} }
} }
redisUtils.set(regionRedis, jsonArray); redisUtil.set(regionRedis, jsonArray);
} }
return jsonArray; return jsonArray;
} }
} }
...@@ -18,6 +18,8 @@ import com.yeejoin.amos.boot.module.jxiop.api.util.HttpUtil; ...@@ -18,6 +18,8 @@ import com.yeejoin.amos.boot.module.jxiop.api.util.HttpUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.model.LoginInfoModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel; import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.privilege.model.VerifyCodeAuthModel; import com.yeejoin.amos.feign.privilege.model.VerifyCodeAuthModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil; import com.yeejoin.amos.feign.privilege.util.DesUtil;
...@@ -27,22 +29,30 @@ import org.apache.http.client.methods.CloseableHttpResponse; ...@@ -27,22 +29,30 @@ import org.apache.http.client.methods.CloseableHttpResponse;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.annotation.Condition; import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator; import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.io.InputStream; import java.io.InputStream;
import java.security.spec.AlgorithmParameterSpec; import java.security.spec.AlgorithmParameterSpec;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -58,10 +68,10 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -58,10 +68,10 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
private Long TOKEN_TIME = 1209600l; private Long TOKEN_TIME = 1209600l;
@Value("${security.productWeb}") @Value("${amos.system.user.product}")
private String product; private String product;
@Value("${security.appKey}") @Value("${amos.system.user.app-key}")
private String appKey; private String appKey;
@Value("${login.environment}") @Value("${login.environment}")
...@@ -73,12 +83,21 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -73,12 +83,21 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
@Value("${farmer.sequenceNbr}") @Value("${farmer.sequenceNbr}")
private Long orgSequenceNbr; private Long orgSequenceNbr;
@Value("${farmer.orgNamesWithoutRole}") @Value("${farmer.orgNamesWithoutRole:智信能源科技有限公司}")
private String orgNamesWithoutRole; private String orgNamesWithoutRole;
@Value("${dealer.appcode}") @Value("${dealer.appcode}")
private String appCodes; private String appCodes;
@Value("${platform.access.loginId}")
private String platfromAccessLoginId;
@Value("${platform.access.password}")
private String platfromAccessPassword;
@Value("${farmer.roleId:1678211468450885633}")
private String farmerRoleId;
@Autowired @Autowired
private RedisUtils redisUtils; private RedisUtils redisUtils;
...@@ -177,28 +196,30 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -177,28 +196,30 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
public PeasantHouseholdWxDto wxUserLogin(MobileLoginParamDto wxDTO) { public PeasantHouseholdWxDto wxUserLogin(MobileLoginParamDto wxDTO) {
// 通过手机号和验证码调用平台接口进行验证 // 通过手机号和验证码调用平台接口进行验证
String phoneNo = this.parsePhoneNo(wxDTO); // String phoneNo = this.parsePhoneNo(wxDTO);
String phoneNo = "13022982292";
if (phoneNo == null) { if (phoneNo == null) {
throw new BadRequest("获取手机号失败!"); throw new BadRequest("获取手机号失败!");
} }
wxDTO.setPhoneNo(phoneNo); wxDTO.setPhoneNo(phoneNo);
// 判断是否注册过
PeasantHousehold peasantHousehold = this.query().eq("telephone", phoneNo).one();
// 在平台里注册过但是没有农户信息 // 在平台里注册过但是没有农户信息
FeignClientResult<LoginInfoModel> loginInfo = Privilege.agencyUserClient.getLoginInfo(phoneNo);
if (200 == loginInfo.getStatus()) {
LoginInfoModel loginInfoModel = loginInfo.getResult();
if (loginInfoModel == null || !StringUtils.isNotBlank(loginInfoModel.getLoginId())) {
doRegister(wxDTO);
}
}
// 判断是否注册过
List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", phoneNo).list();
PeasantHousehold peasantHousehold = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null;
// 没有注册过农户信息
if (null == peasantHousehold) { if (null == peasantHousehold) {
// 没注册过,进行返回
PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto(); PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto();
AgencyUserModel agencyUserModel = new AgencyUserModel();
agencyUserModel.setMobile(phoneNo);
peasantHouseholdWxDto.setUserInfo(agencyUserModel);
peasantHouseholdWxDto.setUserState("0");// 未注册
// 创建一个农户信息
// AgencyUserModel registerUser = doRegister(wxDTO);
PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(phoneNo); PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(phoneNo);
peasantHousehold = new PeasantHousehold(); peasantHousehold = new PeasantHousehold();
BeanUtils.copyProperties(peasantHouseholdDto, peasantHousehold); BeanUtils.copyProperties(peasantHouseholdDto, peasantHousehold);
peasantHouseholdWxDto.setPeasantHousehold(peasantHousehold); peasantHouseholdWxDto.setPeasantHousehold(peasantHousehold);
return peasantHouseholdWxDto;
} }
PeasantHouseholdWxDto loginResult = doLogin(wxDTO); PeasantHouseholdWxDto loginResult = doLogin(wxDTO);
// 装载农户信息 // 装载农户信息
...@@ -207,44 +228,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -207,44 +228,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
} }
/** /**
* 微信农户注册
*
*
* @param wxDTO wxDTO
* @return {@link PeasantHouseholdWxDto}
* @author Provence
* @throws
* @date 2023/8/21 16:41
*/
public PeasantHouseholdWxDto wxUserRegister(MobileLoginParamDto wxDTO) {
PeasantHouseholdDto model = wxDTO.getPeasantHouseholdDto();
// String phoneNo = this.parsePhoneNo(wxDTO);
String phoneNo = model.getTelephone();
if (phoneNo == null) {
throw new BadRequest("获取手机号失败!");
}
wxDTO.setPhoneNo(phoneNo);
// 注册用户
AgencyUserModel userModel = doRegister(wxDTO);
/*FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.queryByUserId(phoneNo);
if (null == userResult.getResult()) {
userModel = doRegister(wxDTO);
} else {
userModel = userResult.getResult();
}*/
// 创建一个农户信息
PeasantHouseholdDto peasantHouseholdDto = wxDTO.getPeasantHouseholdDto();
peasantHouseholdDto.setTelephone(phoneNo);
peasantHouseholdDto = this.createWithModel(peasantHouseholdDto);
PeasantHousehold peasantHousehold = new PeasantHousehold();
BeanUtils.copyProperties(peasantHouseholdDto, peasantHousehold);
// 注册完成后直接登录系统
PeasantHouseholdWxDto loginResult = doLogin(wxDTO);
loginResult.setPeasantHousehold(peasantHousehold);
return loginResult;
}
/**
* 农户微信注册 * 农户微信注册
* *
* *
...@@ -255,32 +238,25 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -255,32 +238,25 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
* @date 2023/8/21 18:05 * @date 2023/8/21 18:05
*/ */
public AgencyUserModel doRegister(MobileLoginParamDto mobileLoginParamDto) { public AgencyUserModel doRegister(MobileLoginParamDto mobileLoginParamDto) {
FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
List<RoleModel> allRoleList = roleListResult.getResult();
List<RoleModel> userRoleList = new ArrayList<>(); List<RoleModel> userRoleList = new ArrayList<>();
List<Long> roleIds = new ArrayList<>();
List<String> split = Arrays.asList(StringUtils.split(appCodes, ',')); List<String> split = Arrays.asList(StringUtils.split(appCodes, ','));
Map<Long, List<Long>> roleSeqMap = new HashMap<>(); Map<Long, List<Long>> roleSeqMap = new HashMap<>();
Map<Long, List<RoleModel>> orgRoles = new HashMap<>(); Map<Long, List<RoleModel>> orgRoles = new HashMap<>();
// 提前建立好一个默认角色 // 提前建立好一个默认角色
String defaultUnitTypeCode = ""; List<Long> roleIds = new ArrayList<>();
userRoleList = allRoleList.stream().filter(r -> r.getRoleName().equals(defaultUnitTypeCode))
.collect(Collectors.toList()); roleIds.add(Long.valueOf(farmerRoleId));
userRoleList.forEach(r -> {
if (!roleIds.contains(r.getSequenceNbr())) {
roleIds.add(r.getSequenceNbr());
}
});
roleSeqMap.put(orgSequenceNbr, roleIds); roleSeqMap.put(orgSequenceNbr, roleIds);
orgRoles.put(orgSequenceNbr, userRoleList); orgRoles.put(orgSequenceNbr, userRoleList);
// //
String custPassword = DesUtil.encode(mobileLoginParamDto.getPhoneNo(), "qaz"); String custPassword = com.yeejoin.precontrol.common.utils.DesUtil.encode(mobileLoginParamDto.getPhoneNo(), mobileLoginParamDto.getPhoneNo());
AgencyUserModel agencyUserModel = new AgencyUserModel(); AgencyUserModel agencyUserModel = new AgencyUserModel();
agencyUserModel.setUserName(mobileLoginParamDto.getPhoneNo()); agencyUserModel.setUserName(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setRealName(mobileLoginParamDto.getPhoneNo()); agencyUserModel.setRealName(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setPassword(custPassword); agencyUserModel.setPassword(custPassword);
agencyUserModel.setRePassword(custPassword); agencyUserModel.setRePassword(custPassword);
agencyUserModel.setLockStatus("LOCK"); agencyUserModel.setLockStatus("UNLOCK");
agencyUserModel.setAgencyCode("JXIOP"); agencyUserModel.setAgencyCode("JXIOP");
agencyUserModel.setMobile(mobileLoginParamDto.getPhoneNo()); agencyUserModel.setMobile(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setAppCodes(split); agencyUserModel.setAppCodes(split);
...@@ -288,8 +264,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -288,8 +264,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
agencyUserModel.setOrgRoleSeqs(roleSeqMap); agencyUserModel.setOrgRoleSeqs(roleSeqMap);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(agencyUserModel); FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(agencyUserModel);
if (userResult == null || userResult.getResult() == null) { if (userResult.getStatus() != 200) {
throw new BadRequest("用户注册失败"); log.error("调用平台创建用户信息失败:{}" + userResult.getDevMessage());
throw new BadRequest(userResult.getMessage());
} }
return userResult.getResult(); return userResult.getResult();
} }
...@@ -308,19 +285,22 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -308,19 +285,22 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
RequestContext.setToken(""); RequestContext.setToken("");
RequestContext.setProduct(product); RequestContext.setProduct(product);
RequestContext.setAppKey(appKey); RequestContext.setAppKey(appKey);
String phoneNo = this.parsePhoneNo(param); String phoneNo = param.getPhoneNo();
if (phoneNo == null) { if (phoneNo == null) {
throw new BadRequest("获取手机号失败!"); throw new BadRequest("获取手机号失败!");
} }
VerifyCodeAuthModel model = new VerifyCodeAuthModel(); FeignClientResult loginResult;
model.setLoginId(phoneNo);
if (!param.getIsNeedVerify() || ("dev".equals(loginEnvironment) && "666666".equals(param.getVerifyCode()))) { if (!param.getIsNeedVerify() || ("dev".equals(loginEnvironment) && "666666".equals(param.getVerifyCode()))) {
model.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(phoneNo, phoneNo)); IdPasswordAuthModel authModel = new IdPasswordAuthModel();
authModel.setLoginId(phoneNo);
authModel.setPassword(com.yeejoin.precontrol.common.utils.DesUtil.encode(phoneNo, phoneNo));
loginResult = Privilege.authClient.idpassword(authModel);
} else { } else {
VerifyCodeAuthModel model = new VerifyCodeAuthModel();
model.setLoginId(phoneNo);
model.setVerifyCode(param.getVerifyCode()); model.setVerifyCode(param.getVerifyCode());
loginResult = Privilege.authClient.mobileVerifyCode(model);
} }
FeignClientResult loginResult = Privilege.authClient.mobileVerifyCode(model);
if (loginResult.getStatus() != 200) { if (loginResult.getStatus() != 200) {
log.error("远程调用Privilege服务失败: " + loginResult.getDevMessage()); log.error("远程调用Privilege服务失败: " + loginResult.getDevMessage());
String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage(); String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage();
...@@ -333,19 +313,27 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -333,19 +313,27 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
// redisUtils.set(model.getPhone() + "_token", token, TOKEN_TIME); // redisUtils.set(model.getPhone() + "_token", token, TOKEN_TIME);
// 设置登录信息 // 设置登录信息
PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto(); PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto();
// 设置authInfo信息 peasantHouseholdWxDto.setToken(token);
PeasantHouseholdWxDto.AuthInfoDto authInfoDto = new PeasantHouseholdWxDto.AuthInfoDto(); peasantHouseholdWxDto.setExpire(Long.valueOf((String) resultMap.get("expire")));
authInfoDto.setToken(token); peasantHouseholdWxDto.setUserId((String) resultMap.get("userId"));
authInfoDto.setPersonId((String) resultMap.get("userId"));
authInfoDto.setAppKey(appKey);
authInfoDto.setProduct(product);
peasantHouseholdWxDto.setAuthInfo(authInfoDto);
// 查询用户信息 // 查询用户信息
FeignClientResult<AgencyUserModel> getme = Privilege.agencyUserClient.getme(); FeignClientResult<AgencyUserModel> getme = Privilege.agencyUserClient.getme();
getme.getResult().setPassword(""); getme.getResult().setPassword("");
getme.getResult().setAppCodes(new ArrayList()); getme.getResult().setAppCodes(new ArrayList());
AgencyUserModel userModel = (AgencyUserModel) getme.getResult(); AgencyUserModel userModel = (AgencyUserModel) getme.getResult();
peasantHouseholdWxDto.setUserInfo(userModel); Map<String, Object> userInfo = Bean.BeantoMap(userModel);
userInfo.put("phoneNo", phoneNo);
userInfo.put("companyId", userModel.getCompanys().get(0).getCompanyOrgCode());
peasantHouseholdWxDto.setUserInfo(userInfo);
Map<String, Object> authInfo = new HashMap<>();
authInfo.put("token", resultMap.get("token"));
authInfo.put("personId", resultMap.get("userId"));
authInfo.put("appKey", appKey);
authInfo.put("product", product);
peasantHouseholdWxDto.setAuthInfo(authInfo);
return peasantHouseholdWxDto; return peasantHouseholdWxDto;
} }
...@@ -360,6 +348,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -360,6 +348,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
dto.setDeveloperId(orgSequenceNbr); dto.setDeveloperId(orgSequenceNbr);
dto.setDeveloperName(orgNamesWithoutRole); dto.setDeveloperName(orgNamesWithoutRole);
dto.setDeveloper(phoneNo); dto.setDeveloper(phoneNo);
dto.setRegionalCompaniesSeq(orgSequenceNbr);
dto.setRegionalCompaniesCode(orgCode);
dto.setRegionalCompaniesName(orgNamesWithoutRole);
dto.setTelephone(phoneNo); dto.setTelephone(phoneNo);
return dto; return dto;
} }
...@@ -406,6 +397,54 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -406,6 +397,54 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
} }
/**
* 设置平台接口调用权限
*/
public void setPlatFormAccess() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
IdPasswordAuthModel authModel = new IdPasswordAuthModel();
authModel.setLoginId("admin_jxiop");
authModel.setPassword("AC286A35E74D2DD281EB979789DECF3A");
/*IdPasswordAuthModel authModel = new IdPasswordAuthModel();
authModel.setLoginId(platfromAccessLoginId);
authModel.setPassword(platfromAccessPassword);*/
FeignClientResult<Map<String, String>> authResult = Privilege.authClient.idpassword(authModel);
String token = authResult.getResult().get("token");
System.out.println("token:" + token);
RequestContext.setToken(token);
// 正常情况下,这里应该做缓存
}
/**
* 生成一个农户信息编号
*
*
* @param
* @return {@link String}
* @author Provence
* @throws
*/
public String getPeasantHouseholdNo() {
String redisKey = "getPeasantHouseholdNo";
String sdf = new SimpleDateFormat("yyyyMMdd").format(new Date());
long increment = redisUtils.incr(redisKey, 1);
if (increment == 0) {
redisUtils.expire(redisKey, nextDay());
}
return "N" + sdf + String.format("%05d", increment);
}
private long nextDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return (calendar.getTimeInMillis() - System.currentTimeMillis()) / 1000;
}
} }
\ 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
...@@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.yeejoin.amos.boot.module.hygf.api.Enum.PreparationMoneyEnum;
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.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.DocumentBom;
import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentStation; import com.yeejoin.amos.boot.module.hygf.api.entity.DocumentStation;
import com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold; 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 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.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.service.IPreparationMoneyService; import com.yeejoin.amos.boot.module.hygf.api.service.IPreparationMoneyService;
...@@ -58,6 +60,8 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -58,6 +60,8 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
private AmosRequestContext amosRequestContext; private AmosRequestContext amosRequestContext;
@Autowired @Autowired
private UnitInfoServiceImpl unitInfoService; private UnitInfoServiceImpl unitInfoService;
@Autowired
private PreparationMoneyLogServiceImpl preparationMoneyLogService;
/** /**
* 分页查询 * 分页查询
*/ */
...@@ -114,12 +118,23 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -114,12 +118,23 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
.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 -> { preparationMoneyDto.setPowerStations(peasantHouseholds.stream().map(o -> entityToDto(o)).collect(Collectors.toList()));
// 加载单据追踪数据
List<PreparationMoneyLog> preparationMoneyLogDtos = preparationMoneyLogService.list(new LambdaQueryWrapper<PreparationMoneyLog>().eq(PreparationMoneyLog::getPreparationMoneyId, sequenceNbr));
preparationMoneyDto.setPreparationMoneyLogs(preparationMoneyLogDtos.stream().map(o -> entityToDto(o)).collect(Collectors.toList()));
return preparationMoneyDto;
}
private PeasantHouseholdDto entityToDto(PeasantHousehold o) {
PeasantHouseholdDto dto = new PeasantHouseholdDto(); PeasantHouseholdDto dto = new PeasantHouseholdDto();
BeanUtils.copyProperties(o, dto); BeanUtils.copyProperties(o, dto);
return dto; return dto;
}).collect(Collectors.toList())); }
return preparationMoneyDto;
private PreparationMoneyLogDto entityToDto(PreparationMoneyLog o) {
PreparationMoneyLogDto dto = new PreparationMoneyLogDto();
BeanUtils.copyProperties(o, dto);
return dto;
} }
/** /**
...@@ -180,6 +195,11 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -180,6 +195,11 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
} }
documentBomService.saveOrUpdateBatch(documentBoms); documentBomService.saveOrUpdateBatch(documentBoms);
documentStationService.saveOrUpdateBatch(documentStations); documentStationService.saveOrUpdateBatch(documentStations);
// 记录操作日志
PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog();
preparationMoneyLog.setPreparationMoneyId(entity.getSequenceNbr());
preparationMoneyLog.setOperationContent(String.format("备货单保存【备货单号:%s】", entity.getOddNumbers()));
preparationMoneyLogService.save(preparationMoneyLog);
return model; return model;
} }
...@@ -210,6 +230,8 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -210,6 +230,8 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
if (preparationMoney == null) { if (preparationMoney == null) {
throw new RuntimeException("订单不存在"); throw new RuntimeException("订单不存在");
} }
PreparationMoneyLog preparationMoneyLog = new PreparationMoneyLog();
preparationMoneyLog.setPreparationMoneyId(preparationMoney.getSequenceNbr());
switch (operationType) { switch (operationType) {
case "RECEIPT": case "RECEIPT":
// 确认收货 -> 到货状态 -> 已到货 -> 订单状态改为 已完成 // 确认收货 -> 到货状态 -> 已到货 -> 订单状态改为 已完成
...@@ -219,10 +241,12 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -219,10 +241,12 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
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()));
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()));
break; break;
case "DISCARD": case "DISCARD":
// 作废 // 作废
...@@ -231,10 +255,12 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto ...@@ -231,10 +255,12 @@ public class PreparationMoneyServiceImpl extends BaseService<PreparationMoneyDto
throw new RuntimeException("订单已到货, 无法作废"); throw new RuntimeException("订单已到货, 无法作废");
} }
preparationMoney.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.作废.getName()); preparationMoney.setDocumentState(PreparationMoneyEnum.DOCUMENT_STATE.作废.getName());
preparationMoneyLog.setOperationContent(String.format("备货单作废【备货单号:%s】", preparationMoney.getOddNumbers()));
break; break;
default: default:
break; break;
} }
preparationMoneyLogService.save(preparationMoneyLog);
return preparationMoneyMapper.updateById(preparationMoney) > 0; return preparationMoneyMapper.updateById(preparationMoney) > 0;
} }
......
...@@ -126,4 +126,8 @@ hygfProgram.secret=3bfd098cfdac002126e728d2dbf83c0d ...@@ -126,4 +126,8 @@ hygfProgram.secret=3bfd098cfdac002126e728d2dbf83c0d
# 默认微信小程序农户经销商 # 默认微信小程序农户经销商
farmer.orgCode=86 farmer.orgCode=86
farmer.sequenceNbr=1620981815542046722 farmer.sequenceNbr=1620981815542046722
farmer.orgNamesWithoutRole=智信能源科技有限公司 farmer.orgNamesWithoutRole=
\ No newline at end of file farmer.roleId=1678211468450885633
# 配置接口授权用户
platform.access.loginId=hygf_platform
platform.access.password=23F8A9AE5E9CF343B0AFD49A9C44947
\ 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