提交 9a76be14 作者: 刘明祎-运维用途

Merge branch 'develop'

流水线 #7326 已通过 于阶段
in 2 分 55 秒
......@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author small
......@@ -65,4 +66,10 @@ public class ServiceOrderFormDTO {
@ApiModelProperty(value = "等待状态", example = "等待状态")
private String waiting;
@ApiModelProperty(value = "父订单id")
private Integer fatherRequireId;
@ApiModelProperty(value = "子订单详情")
private List<ServiceOrderFormDTO> childrenRequire;
}
......@@ -195,4 +195,6 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty(value = "订单共需多少人")
private Integer requireNum;
@ApiModelProperty(value = "后台修改后的金额")
private BigDecimal changedOrderAmount;
}
......@@ -18,4 +18,4 @@ patches:
images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag: 1aff12cab9b7e87a73bd5fe447179a02a8aef31b
newTag: 202f9c361a080016ec6a56316007610c7191d3b3
......@@ -4,6 +4,7 @@ import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.ServiceOrderFormDTO;
import com.mmc.csf.infomation.dto.ServiceOrderFormDetailsDTO;
import com.mmc.csf.infomation.qo.ServiceOrderQO;
import com.mmc.csf.release.entity.requirements.OrderAmountDetailDO;
import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.service.BackRequirementsService;
import io.swagger.annotations.*;
......@@ -12,6 +13,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @Author small
......@@ -41,5 +43,25 @@ public class BackRequirementsController extends BaseController {
return backRequirementsService.serviceOrderFormDetails(requirementsInfoId, this.getUserLoginInfoFromRedis(request));
}
@ApiOperation(value = "后台管理——订单金额明细")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("getOrderAmountDetails")
public ResultBody getOrderAmountDetails( @ApiParam(value = "需求发布id", required = true) @RequestParam Integer requirementsInfoId) {
return backRequirementsService.getOrderAmountDetails(requirementsInfoId);
}
@ApiOperation(value = "后台订单——修改金额明细")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("updateOrderAmountDetails")
public ResultBody updateOrderAmountDetails(@RequestBody List<OrderAmountDetailDO> list) {
return backRequirementsService.updateOrderAmountDetails(list);
}
@ApiOperation(value = "后台订单——新增金额明细")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("insertOrderAmountDetails")
public ResultBody insertOrderAmountDetails(@RequestBody List<OrderAmountDetailDO> list) {
return backRequirementsService.insertOrderAmountDetails(list);
}
}
......@@ -11,7 +11,6 @@ import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.release.service.RequirementsService;
import io.swagger.annotations.*;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -89,14 +88,13 @@ public class RequirementsController extends BaseController {
@ApiOperation(value = "内部调用")
@GetMapping("/repertory")
public ServiceRequirementsDO repertory(@ApiParam(value = "需求发布id", required = true) @RequestParam Integer requirementsInfoId, HttpServletRequest request){
public ServiceRequirementsDO repertory(@ApiParam(value = "需求发布id", required = true) @RequestParam Integer requirementsInfoId, HttpServletRequest request) {
GrabTheOrderVO grabTheOrderVO = new GrabTheOrderVO();
grabTheOrderVO.setRequirementsInfoId(requirementsInfoId);
return requirementsService.getRepertory(grabTheOrderVO, request);
return requirementsService.getRepertory(grabTheOrderVO, request);
}
@ApiOperation(value = "小程序——发布服务需求订单编号单独接口")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("publisherNumber")
......@@ -238,7 +236,7 @@ public class RequirementsController extends BaseController {
@PostMapping("confirmSettlement")
public ResultBody confirmSettlement(HttpServletRequest request, @RequestParam(value = "需求id") Integer requirementsInfoId) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.confirmSettlement(userAccountId, requirementsInfoId,request);
return requirementsService.confirmSettlement(userAccountId, requirementsInfoId, request);
}
@ApiOperation(value = "new——小程序-—发布者--订单结算详情")
......@@ -314,6 +312,7 @@ public class RequirementsController extends BaseController {
/**
* 客服介入
*
* @param request
* @param liabilityProblemVO
* @return
......@@ -323,7 +322,7 @@ public class RequirementsController extends BaseController {
@PostMapping("cancelAll")
public ResultBody cancelAll(HttpServletRequest request, @RequestBody LiabilityProblemVO liabilityProblemVO) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.cancelAll(liabilityProblemVO, userAccountId,request);
return requirementsService.cancelAll(liabilityProblemVO, userAccountId, request);
}
......@@ -360,7 +359,7 @@ public class RequirementsController extends BaseController {
@ApiOperation(value = "小程序—获取子订单详细信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("selectRequireSonInfo")
public ResultBody<RequirementsInfoVO> selectRequireSonInfo(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "查询所有子订单信息", required = true) @RequestBody MyPublishQO param){
public ResultBody<RequirementsInfoVO> selectRequireSonInfo(HttpServletRequest request, @Validated(value = {Page.class}) @ApiParam(value = "查询所有子订单信息", required = true) @RequestBody MyPublishQO param) {
return ResultBody.success(requirementsService.selectRequireSonInfo(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
}
......@@ -370,6 +369,4 @@ public class RequirementsController extends BaseController {
public ResultBody agreeOrRefusePilot(@RequestBody AgreeOrRefusePilotQO param) {
return requirementsService.agreeOrRefusePilot(param);
}
}
}
\ No newline at end of file
package com.mmc.csf.release.controller;
import java.io.IOException;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.mmc.csf.common.util.group.Create;
import com.mmc.csf.common.util.group.Page;
import com.mmc.csf.common.util.web.ResultBody;
......@@ -25,8 +15,18 @@ import com.mmc.csf.infomation.vo.TenderNewsVO;
import com.mmc.csf.release.entity.tender.TenderInfoDO;
import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.release.service.TenderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import io.swagger.annotations.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Date;
/**
* @author: zj
......@@ -62,9 +62,9 @@ public class TenderController extends BaseController{
@ApiOperation(value = "修改-招标快讯列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PutMapping(value = "news")
@PostMapping(value = "updateTenderNews")
public ResultBody updateTenderNews(@RequestParam(value = "file", required = false) MultipartFile file,
@Validated(value = {Update.class}) @RequestPart TenderNewsVO tenderNewsVO) throws IOException {
@Validated(value = {Update.class}) @RequestBody TenderNewsVO tenderNewsVO) throws IOException {
return tenderService.updateTenderNews(file, tenderNewsVO);
}
......
......@@ -16,6 +16,7 @@ import java.util.List;
public interface BackRequirementsDao {
List<ServiceOrderFormDO> serviceOrderFormList(ServiceOrderQO param);
List<ServiceOrderFormDO> getSonFromFatherRequireId(Integer id);
int countService(ServiceOrderQO param);
ServiceOrderFormDetailsDO serviceOrderFormDetails(Integer requirementsInfoId);
......
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.requirements.OrderAmountDetailDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author Admin
* @description 针对表【order_amount_detail】的数据库操作Mapper
* @createDate 2023-11-27 18:55:19
* @Entity com.mmc.csf.release.entity.requirements.OrderAmountDetailDO
*/
@Mapper
public interface OrderAmountDetailDao {
int deleteByPrimaryKey(Integer requirementsInfoId);
/**
* 新增
* @param record
* @return int
*/
int insert(OrderAmountDetailDO record);
/**
* 选择性新增
* @param record 新增实体类
* @return int
*/
int insertSelective(OrderAmountDetailDO record);
/**
* 批量新增
* @param list 新增列表
*/
void batchInsert(List<OrderAmountDetailDO> list);
/**
* 根据订单id查询该订单金额明细
* @param requirementsInfoId 订单id
* @return {@link List}<{@link OrderAmountDetailDO}>
*/
List<OrderAmountDetailDO> selectByPrimaryKey(Integer requirementsInfoId);
int updateByPrimaryKeySelective(OrderAmountDetailDO record);
int updateByPrimaryKey(OrderAmountDetailDO record);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.qo.*;
import com.mmc.csf.infomation.vo.LiabilityProblemVO;
import com.mmc.csf.infomation.vo.ServiceSettleAccountsVO;
import com.mmc.csf.release.entity.requirements.*;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal;
......@@ -362,4 +360,20 @@ public interface RequirementsDao {
* @return {@link String}
*/
String selectOrderStatusByServiceFlowId(Integer serviceFlowId);
/**
* 查询订单所处的状态
* @param requireId 订单id
* @return {@link Integer}
*/
Integer selectServiceIdByRequireId(Integer requireId);
/**
* 获取后台修改后的金额
* @param requireId 订单id
* @return {@link Integer}
*/
BigDecimal getChangedOrderAmount(Integer requireId);
Integer selectUserSureChangeAmount(Integer requireId);
}
package com.mmc.csf.release.entity.requirements;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName order_amount_detail
*/
@Data
public class OrderAmountDetailDO implements Serializable {
/**
*
*/
private Integer id;
/**
* 订单id
*/
@ApiModelProperty(value = "订单id",required = true)
@NotNull(message = "订单id不能为空")
private Integer requirementsInfoId;
/**
* 每天的工资
*/
@ApiModelProperty(value = "每天的工资")
private BigDecimal dailyWage;
/**
* 节日补贴
*/
@ApiModelProperty(value = "节日补贴")
private BigDecimal subsidyFestival;
/**
* 租房补贴
*/
@ApiModelProperty(value = "租房补贴")
private BigDecimal rentalSubsidy;
/**
* 交通补贴
*/
@ApiModelProperty(value = "交通补贴")
private BigDecimal trafficSubsidy;
/**
* 高温补贴
*/
@ApiModelProperty(value = "高温补贴")
private BigDecimal highTemperatureSubsidy;
/**
* 结算比例
*/
@ApiModelProperty(value = "结算比例")
private BigDecimal settleAccountsProportion;
/**
* 实际工资 上边加一起乘以结算比例
*/
@ApiModelProperty(value = "实际工资")
private BigDecimal realWages;
/**
* 工作的时间
*/
@ApiModelProperty(value = "工作时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date workDate;
private static final long serialVersionUID = 1L;
/**
*
*/
public Integer getId() {
return id;
}
/**
*
*/
public void setId(Integer id) {
this.id = id;
}
/**
*
*/
public Integer getRequirementsInfoId() {
return requirementsInfoId;
}
/**
*
*/
public void setRequirementsInfoId(Integer requirementsInfoId) {
this.requirementsInfoId = requirementsInfoId;
}
/**
* 每天的工资
*/
public BigDecimal getDailyWage() {
return dailyWage;
}
/**
* 每天的工资
*/
public void setDailyWage(BigDecimal dailyWage) {
this.dailyWage = dailyWage;
}
/**
* 节日补贴
*/
public BigDecimal getSubsidyFestival() {
return subsidyFestival;
}
/**
* 节日补贴
*/
public void setSubsidyFestival(BigDecimal subsidyFestival) {
this.subsidyFestival = subsidyFestival;
}
/**
* 租房补贴
*/
public BigDecimal getRentalSubsidy() {
return rentalSubsidy;
}
/**
* 租房补贴
*/
public void setRentalSubsidy(BigDecimal rentalSubsidy) {
this.rentalSubsidy = rentalSubsidy;
}
/**
* 交通补贴
*/
public BigDecimal getTrafficSubsidy() {
return trafficSubsidy;
}
/**
* 交通补贴
*/
public void setTrafficSubsidy(BigDecimal trafficSubsidy) {
this.trafficSubsidy = trafficSubsidy;
}
/**
* 高温补贴
*/
public BigDecimal getHighTemperatureSubsidy() {
return highTemperatureSubsidy;
}
/**
* 高温补贴
*/
public void setHighTemperatureSubsidy(BigDecimal highTemperatureSubsidy) {
this.highTemperatureSubsidy = highTemperatureSubsidy;
}
/**
* 结算比例
*/
public BigDecimal getSettleAccountsProportion() {
return settleAccountsProportion;
}
/**
* 结算比例
*/
public void setSettleAccountsProportion(BigDecimal settleAccountsProportion) {
this.settleAccountsProportion = settleAccountsProportion;
}
/**
* 实际工资 上边加一起乘以结算比例
*/
public BigDecimal getRealWages() {
return realWages;
}
/**
* 实际工资 上边加一起乘以结算比例
*/
public void setRealWages(BigDecimal realWages) {
this.realWages = realWages;
}
/**
* 工作的时间
*/
public Date getWorkDate() {
return workDate;
}
/**
* 工作的时间
*/
public void setWorkDate(Date workDate) {
this.workDate = workDate;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
OrderAmountDetailDO other = (OrderAmountDetailDO) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getRequirementsInfoId() == null ? other.getRequirementsInfoId() == null : this.getRequirementsInfoId().equals(other.getRequirementsInfoId()))
&& (this.getDailyWage() == null ? other.getDailyWage() == null : this.getDailyWage().equals(other.getDailyWage()))
&& (this.getSubsidyFestival() == null ? other.getSubsidyFestival() == null : this.getSubsidyFestival().equals(other.getSubsidyFestival()))
&& (this.getRentalSubsidy() == null ? other.getRentalSubsidy() == null : this.getRentalSubsidy().equals(other.getRentalSubsidy()))
&& (this.getTrafficSubsidy() == null ? other.getTrafficSubsidy() == null : this.getTrafficSubsidy().equals(other.getTrafficSubsidy()))
&& (this.getHighTemperatureSubsidy() == null ? other.getHighTemperatureSubsidy() == null : this.getHighTemperatureSubsidy().equals(other.getHighTemperatureSubsidy()))
&& (this.getSettleAccountsProportion() == null ? other.getSettleAccountsProportion() == null : this.getSettleAccountsProportion().equals(other.getSettleAccountsProportion()))
&& (this.getRealWages() == null ? other.getRealWages() == null : this.getRealWages().equals(other.getRealWages()))
&& (this.getWorkDate() == null ? other.getWorkDate() == null : this.getWorkDate().equals(other.getWorkDate()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getRequirementsInfoId() == null) ? 0 : getRequirementsInfoId().hashCode());
result = prime * result + ((getDailyWage() == null) ? 0 : getDailyWage().hashCode());
result = prime * result + ((getSubsidyFestival() == null) ? 0 : getSubsidyFestival().hashCode());
result = prime * result + ((getRentalSubsidy() == null) ? 0 : getRentalSubsidy().hashCode());
result = prime * result + ((getTrafficSubsidy() == null) ? 0 : getTrafficSubsidy().hashCode());
result = prime * result + ((getHighTemperatureSubsidy() == null) ? 0 : getHighTemperatureSubsidy().hashCode());
result = prime * result + ((getSettleAccountsProportion() == null) ? 0 : getSettleAccountsProportion().hashCode());
result = prime * result + ((getRealWages() == null) ? 0 : getRealWages().hashCode());
result = prime * result + ((getWorkDate() == null) ? 0 : getWorkDate().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", requirementsInfoId=").append(requirementsInfoId);
sb.append(", dailyWage=").append(dailyWage);
sb.append(", subsidyFestival=").append(subsidyFestival);
sb.append(", rentalSubsidy=").append(rentalSubsidy);
sb.append(", trafficSubsidy=").append(trafficSubsidy);
sb.append(", highTemperatureSubsidy=").append(highTemperatureSubsidy);
sb.append(", settleAccountsProportion=").append(settleAccountsProportion);
sb.append(", realWages=").append(realWages);
sb.append(", workDate=").append(workDate);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
package com.mmc.csf.release.entity.requirements;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mmc.csf.config.IsNullConvertZero;
import com.mmc.csf.infomation.vo.RequirementsAmountVO;
import io.swagger.annotations.ApiModelProperty;
......@@ -27,7 +28,7 @@ public class RequirementsAmountUpdateDO {
@IsNullConvertZero
private BigDecimal orderAmount;
@ApiModelProperty(value = "发布者修改订单金额", example = "100")
@ApiModelProperty(value = "发布者修改订单金额", example = "100")
@IsNullConvertZero
private BigDecimal updateOrderAmount;
......@@ -67,6 +68,10 @@ public class RequirementsAmountUpdateDO {
@IsNullConvertZero
private BigDecimal returnSalaryAmount;
@ApiModelProperty(value = "小程序是否支付修改后金额 1,支付了 0,后台修改未支付")
@JsonIgnore
private Integer userSureChange;
public RequirementsAmountUpdateDO(RequirementsAmountVO amountVO, RequirementsInfoDO requirementsInfoDO) {
this.updateOrderAmount = amountVO.getUpdateOrderAmount();
this.reason = amountVO.getReason();
......
......@@ -69,6 +69,9 @@ public class ServiceOrderFormDO {
@ApiModelProperty(value = "等待状态", example = "100")
private String waiting;
@ApiModelProperty(value = "父订单id")
private Integer fatherRequireId;
public ServiceOrderFormDTO buildServiceOrderForm() {
return ServiceOrderFormDTO.builder()
.id(this.id)
......@@ -85,6 +88,7 @@ public class ServiceOrderFormDO {
.updateTime(this.updateTime)
.orderStatus(this.orderStatus)
.waiting(this.waiting)
.fatherRequireId(this.fatherRequireId)
.build();
}
......
package com.mmc.csf.release.enums;
/**
* 对应ims service_flow中的字段
* @author Admin
* @date 2023/11/29
*/
public enum ServiceIdEnum {
WAIT_CHANGE_AMOUNT(12,"等待修改金额"),
DETAIL_COMPLETE(4,"任务已完成");
private Integer code;
private String name;
ServiceIdEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
public void setCode(Integer code) {
this.code = code;
}
public Integer getCode() {
return this.code;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
......@@ -4,6 +4,9 @@ import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.ServiceOrderQO;
import com.mmc.csf.release.auth.dto.LoginSuccessDTO;
import com.mmc.csf.release.entity.requirements.OrderAmountDetailDO;
import java.util.List;
/**
* @Author small
......@@ -14,4 +17,26 @@ public interface BackRequirementsService {
PageResult serviceOrderFormList(ServiceOrderQO param, LoginSuccessDTO userLoginInfoFromRedis);
ResultBody serviceOrderFormDetails(Integer requirementsInfoId, LoginSuccessDTO userLoginInfoFromRedis);
/**
* 根据订单id获取到这个订单的金额具体明细
* @param requirementsInfoId 订单id
* @return {@link ResultBody}
*/
ResultBody getOrderAmountDetails(Integer requirementsInfoId);
/**
* 先删除之前的默认数据 再新增
* @param list
* @return {@link ResultBody}
*/
ResultBody updateOrderAmountDetails(List<OrderAmountDetailDO> list);
/**
* 批量添加
* @param list 列表
* @return {@link ResultBody}
*/
ResultBody insertOrderAmountDetails(List<OrderAmountDetailDO> list);
}
......@@ -8,15 +8,19 @@ import com.mmc.csf.infomation.qo.ServiceOrderQO;
import com.mmc.csf.infomation.vo.RequireEveryStatusVO;
import com.mmc.csf.release.auth.dto.LoginSuccessDTO;
import com.mmc.csf.release.dao.BackRequirementsDao;
import com.mmc.csf.release.dao.OrderAmountDetailDao;
import com.mmc.csf.release.dao.RequirementsDao;
import com.mmc.csf.release.entity.requirements.ServiceOrderFormDO;
import com.mmc.csf.release.entity.requirements.ServiceOrderFormDetailsDO;
import com.mmc.csf.release.entity.requirements.*;
import com.mmc.csf.release.enums.ServiceIdEnum;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.BackRequirementsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
......@@ -25,6 +29,7 @@ import java.util.stream.Collectors;
* @Version 1.0
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class BackRequirementsServiceImpl implements BackRequirementsService {
@Autowired
......@@ -35,10 +40,13 @@ public class BackRequirementsServiceImpl implements BackRequirementsService {
@Autowired
private UserAppApi userAppApi;
@Autowired
private OrderAmountDetailDao orderAmountDetailDao;
@Override
public PageResult serviceOrderFormList(ServiceOrderQO param, LoginSuccessDTO userLoginInfoFromRedis) {
//权限限制,除了admin以外其他飞手团队后台账号只能看到自己团队里面飞手的订单
//权限限制,除了admin以外其他飞手团队后台账号只能看到自己团队里面飞手的订单
Integer userAccountId = userLoginInfoFromRedis.getUserAccountId();
List<Integer> pilotUserIdList = null;
if(userAccountId != 1) {
......@@ -46,9 +54,8 @@ public class BackRequirementsServiceImpl implements BackRequirementsService {
if(pilotUserIdList == null || pilotUserIdList.isEmpty()) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), 0);
}
param.setPilotUserIdList(pilotUserIdList);
}
param.setPilotUserIdList(pilotUserIdList);
int count = backRequirementsDao.countService(param);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
......@@ -56,7 +63,15 @@ public class BackRequirementsServiceImpl implements BackRequirementsService {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<ServiceOrderFormDO> serviceOrderFormDOS = backRequirementsDao.serviceOrderFormList(param);
List<ServiceOrderFormDTO> collect = serviceOrderFormDOS.stream().map(ServiceOrderFormDO::buildServiceOrderForm).collect(Collectors.toList());
List<ServiceOrderFormDTO> collect = serviceOrderFormDOS.stream().map(ServiceOrderFormDO::buildServiceOrderForm)
.map(serviceOrderFormDTO -> {
Integer id = serviceOrderFormDTO.getId();
List<ServiceOrderFormDO> listSon = backRequirementsDao.getSonFromFatherRequireId(id);
List<ServiceOrderFormDTO> childrenList = listSon.stream().map(ServiceOrderFormDO::buildServiceOrderForm).collect(Collectors.toList());
serviceOrderFormDTO.setChildrenRequire(childrenList);
return serviceOrderFormDTO;
})
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, param.getPageSize(), count, collect);
}
......@@ -86,4 +101,46 @@ public class BackRequirementsServiceImpl implements BackRequirementsService {
return ResultBody.success(requireEveryStatusVO);
}
@Override
public ResultBody getOrderAmountDetails(Integer requirementsInfoId) {
return ResultBody.success(orderAmountDetailDao.selectByPrimaryKey(requirementsInfoId));
}
@Override
public ResultBody updateOrderAmountDetails(List<OrderAmountDetailDO> list) {
Integer requirementsInfoId = list.get(0).getRequirementsInfoId();
if(requirementsInfoId == null) {
return ResultBody.error("订单id不能为空");
}
//判当前订单是否是完成任务的状态
if(!Objects.equals(requirementsDao.selectServiceIdByRequireId(requirementsInfoId), ServiceIdEnum.DETAIL_COMPLETE.getCode())) {
return ResultBody.error("当前订单不能进行修改金额");
}
//修改当前订单的状态
requirementsDao.updateScene(requirementsInfoId, ServiceIdEnum.WAIT_CHANGE_AMOUNT.getCode());
requirementsDao.updateInfo(requirementsInfoId, ServiceIdEnum.WAIT_CHANGE_AMOUNT.getCode());
//删除掉默认的一条数据
orderAmountDetailDao.deleteByPrimaryKey(requirementsInfoId);
//把后面用户添加的数据保存到数据库
orderAmountDetailDao.batchInsert(list);
//算一下总金额保存下来,然后去小程序支付
BigDecimal amountSum = new BigDecimal(0);
for(OrderAmountDetailDO orderAmountDetailDO : list) {
amountSum = amountSum.add(orderAmountDetailDO.getRealWages());
}
RequirementsAmountUpdateDO requirementsAmountUpdateDO = new RequirementsAmountUpdateDO();
requirementsAmountUpdateDO.setRequirementsInfoId(requirementsInfoId);
requirementsAmountUpdateDO.setUpdateOrderAmount(amountSum);
requirementsAmountUpdateDO.setUserSureChange(0);
requirementsDao.requirementsAmountUpdate(requirementsAmountUpdateDO);
return ResultBody.success();
}
@Override
public ResultBody insertOrderAmountDetails(List<OrderAmountDetailDO> list) {
orderAmountDetailDao.batchInsert(list);
return ResultBody.success();
}
}
......@@ -13,6 +13,7 @@ import com.mmc.csf.infomation.qo.*;
import com.mmc.csf.infomation.vo.*;
import com.mmc.csf.release.constant.*;
import com.mmc.csf.release.controller.countDown.RedisUtil;
import com.mmc.csf.release.dao.OrderAmountDetailDao;
import com.mmc.csf.release.dao.RequirementsDao;
import com.mmc.csf.release.entity.requirements.*;
import com.mmc.csf.release.feign.PmsAppApi;
......@@ -21,14 +22,11 @@ import com.mmc.csf.release.industry.IndustryTypeDTO;
import com.mmc.csf.release.industry.UserPayInfoVO;
import com.mmc.csf.release.service.RequirementsService;
import com.mmc.csf.release.util.RestTemplateUtil;
import com.sun.xml.bind.v2.TODO;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GeodeticCurve;
import org.gavaghan.geodesy.GlobalCoordinates;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
......@@ -90,6 +88,9 @@ public class RequirementsServiceImpl implements RequirementsService {
@Autowired
private UserSystemConstant userSystemConstant;
@Autowired
private OrderAmountDetailDao orderAmountDetailDao;
@Override
public ResultBody listType(Integer id) {
List<RequirementsTypeDO> requirementsTypeDOList = requirementsDao.listTypeReq(id);
......@@ -264,6 +265,8 @@ public class RequirementsServiceImpl implements RequirementsService {
if (requirementsDao.selectServiceIdByRequireIdAndUserId(id, userAccountId) == 11) {
requirementsInfoVO.setOrderStatus("170");
}
BigDecimal changedOrderAmount = requirementsDao.getChangedOrderAmount(requirementsInfoVO.getRequirementsInfoId());
requirementsInfoVO.setChangedOrderAmount(changedOrderAmount);
return ResultBody.success(requirementsInfoVO);
}
......@@ -2002,8 +2005,14 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao.updateScene(amountVO.getRequirementsInfoId(), 8);
requirementsDao.updateInfo(amountVO.getRequirementsInfoId(), 8);
int amountUpdate = requirementsDao.findAmountUpdate(amountUpdateDO.getRequirementsInfoId());
//查看是否修改过最终结算金额
if (amountUpdate != 0) {
return ResultBody.error("只能修改一次不能重复修改");
//查看是否已经支付过 如果支付过就不能再修改了
if(requirementsDao.selectUserSureChangeAmount(amountUpdateDO.getRequirementsInfoId()) != 0){
return ResultBody.error("只能修改一次不能重复修改");
}
//没支付过是可以修改的
requirementsDao.updateRequirementsAmountUpdate(amountUpdateDO);
} else {
requirementsDao.requirementsAmountUpdate(amountUpdateDO);
}
......@@ -2805,19 +2814,28 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao.addAmount(requirementsAmountDO);
if (sum == 1) {
requirementsDao.insertPlatformOrderEarnings(new BigDecimal(0), requirementsInfoDO.getId(), 0);
//向order_amout_detail给每个子订单添加详细信息
OrderAmountDetailDO orderAmountDetailDO = new OrderAmountDetailDO();
orderAmountDetailDO.setRequirementsInfoId(requirementsInfoDO.getId());
orderAmountDetailDO.setRealWages(requirementsAmountDO.getOrderAmount());
orderAmountDetailDO.setDailyWage(requirementsAmountDO.getOrderAmount());
orderAmountDetailDao.insertSelective(orderAmountDetailDO);
} else {
//循环添加子订单
//添加子订单
for (int i = 0; i < sum; i++) {
//往requirements_info表添加数据
ServiceRequirementsSonDO requirementsSonDO = new ServiceRequirementsSonDO(requirementsInfoDO);
requirementsDao.addPublishServiceSon(requirementsSonDO);
System.out.println(requirementsSonDO);
//往requirements_amount表添加数据
RequirementsAmountDO requirementsAmountSonDO = new RequirementsAmountDO(requirementsSonDO);
System.out.println(requirementsAmountSonDO);
System.out.println("-------------------------");
requirementsDao.addAmount(requirementsAmountSonDO);
//向order_amout_detail给每个子订单添加详细信息
OrderAmountDetailDO orderAmountDetailDO = new OrderAmountDetailDO();
orderAmountDetailDO.setRequirementsInfoId(requirementsSonDO.getId());
orderAmountDetailDO.setRealWages(requirementsAmountSonDO.getOrderAmount());
orderAmountDetailDO.setDailyWage(requirementsAmountSonDO.getOrderAmount());
orderAmountDetailDao.insertSelective(orderAmountDetailDO);
requirementsDao.insertPlatformOrderEarnings(new BigDecimal(0), requirementsSonDO.getId(), 0);
}
}
......@@ -3259,7 +3277,6 @@ public class RequirementsServiceImpl implements RequirementsService {
return ResultBody.success();
}
public UserAccountSimpleDTO feignGetUserSimpleInfo(Integer userAccountId, HttpServletRequest request) {
String token = request.getHeader("token");
HttpHeaders headers = new HttpHeaders();
......
......@@ -145,7 +145,7 @@ iuav:
userapp:
url: http://localhost:35150
pmsapp:
url: http://pms-svc:8099
url: http://localhost:8099
omsapp:
url: http://localhost:8077/oms/
payment:
......
......@@ -57,6 +57,7 @@
SELECT
ri.id,
ri.create_time,
ri.father_require_id,
ri.update_time,
ri.publisher_number,
ri.publish_phone,
......@@ -76,9 +77,10 @@
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
LEFT JOIN service_flow sf ON ri.service_flow_id = sf.id
WHERE
ri.publish =1
<if test="pilotUserIdList != null">
AND rs.pilot_certification_user_id IN
ri.publish =1 and ri.father_require_id = 0
<bind name="isPilotUserIdListEmpty" value="pilotUserIdList != null and !pilotUserIdList.isEmpty()" />
<if test="isPilotUserIdListEmpty">
AND ri.user_account_id IN
<foreach item="item" collection="pilotUserIdList" open="(" separator="," close=")">
#{item}
</foreach>
......@@ -106,9 +108,8 @@
LEFT JOIN service_flow sf ON ri.service_flow_id = sf.id
WHERE
ri.publish =1
<bind name="isPilotUserIdListEmpty" value="pilotUserIdList != null and !pilotUserIdList.isEmpty()" />
<if test="isPilotUserIdListEmpty">
AND rs.pilot_certification_user_id IN
<if test="pilotUserIdList != null">
AND ri.user_account_id IN
<foreach item="item" collection="pilotUserIdList" open="(" separator="," close=")">
#{item}
</foreach>
......@@ -159,5 +160,33 @@
LEFT JOIN customer_service_intervention csi ON csi.requirements_info_id = ri.id
WHERE ri.id = #{requirementsInfoId} and (rs.service_flow_id != 11 or rs.service_flow_id is null)
</select>
<select id="getSonFromFatherRequireId"
resultType="com.mmc.csf.release.entity.requirements.ServiceOrderFormDO">
SELECT
ri.id,
ri.create_time,
ri.father_require_id,
ri.update_time,
ri.publisher_number,
ri.publish_phone,
ri.order_attribute,
ra.order_earnings,
ra.order_level,
rs.preempt_phone,
ri.service_flow_id,
sf.doing,
ri.service_id,
ri.service_name,
sf.order_status,
sf.waiting
FROM
requirements_info ri
LEFT JOIN requirements_amount ra ON ri.id = ra.requirements_info_id
LEFT JOIN requirements_service rs ON rs.requirements_info_id = ri.id
LEFT JOIN service_flow sf ON ri.service_flow_id = sf.id
WHERE
ri.publish =1 and ri.father_require_id = #{id}
</select>
</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.mmc.csf.release.dao.OrderAmountDetailDao">
<resultMap id="BaseResultMap" type="com.mmc.csf.release.entity.requirements.OrderAmountDetailDO">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="requirementsInfoId" column="requirements_info_id" jdbcType="INTEGER"/>
<result property="dailyWage" column="daily_wage" jdbcType="DECIMAL"/>
<result property="subsidyFestival" column="subsidy_festival" jdbcType="DECIMAL"/>
<result property="rentalSubsidy" column="rental_subsidy" jdbcType="DECIMAL"/>
<result property="trafficSubsidy" column="traffic_subsidy" jdbcType="DECIMAL"/>
<result property="highTemperatureSubsidy" column="high_temperature_subsidy" jdbcType="DECIMAL"/>
<result property="settleAccountsProportion" column="settle_accounts_proportion" jdbcType="DECIMAL"/>
<result property="realWages" column="real_wages" jdbcType="DECIMAL"/>
<result property="workDate" column="work_date" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,requirements_info_id,daily_wage,
subsidy_festival,rental_subsidy,traffic_subsidy,
high_temperature_subsidy,settle_accounts_proportion,real_wages,
work_date,create_time,update_time
</sql>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from order_amount_detail
where requirements_info_id = #{requirementsInfoId}
</delete>
<select id="selectByPrimaryKey" resultType="com.mmc.csf.release.entity.requirements.OrderAmountDetailDO">
select
<include refid="Base_Column_List" />
from order_amount_detail
where requirements_info_id = #{id,jdbcType=INTEGER}
</select>
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.mmc.csf.release.entity.requirements.OrderAmountDetailDO" useGeneratedKeys="true">
insert into order_amount_detail
( id,requirements_info_id,daily_wage
,subsidy_festival,rental_subsidy,traffic_subsidy
,high_temperature_subsidy,settle_accounts_proportion,real_wages
,work_date,create_time
)
values (#{id,jdbcType=INTEGER},#{requirementsInfoId,jdbcType=INTEGER},#{dailyWage,jdbcType=DECIMAL}
,#{subsidyFestival,jdbcType=DECIMAL},#{rentalSubsidy,jdbcType=DECIMAL},#{trafficSubsidy,jdbcType=DECIMAL}
,#{highTemperatureSubsidy,jdbcType=DECIMAL},#{settleAccountsProportion,jdbcType=DECIMAL},#{realWages,jdbcType=DECIMAL}
,#{workDate,jdbcType=TIMESTAMP},NOW())
</insert>
<insert id="batchInsert" parameterType="java.util.List">
insert into order_amount_detail
(id, requirements_info_id, daily_wage, subsidy_festival, rental_subsidy, traffic_subsidy,
high_temperature_subsidy, settle_accounts_proportion, real_wages, work_date, create_time)
values
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.requirementsInfoId}, #{item.dailyWage}, #{item.subsidyFestival}, #{item.rentalSubsidy},
#{item.trafficSubsidy}, #{item.highTemperatureSubsidy}, #{item.settleAccountsProportion}, #{item.realWages},
#{item.workDate}, NOW())
</foreach>
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.mmc.csf.release.entity.requirements.OrderAmountDetailDO" useGeneratedKeys="true">
insert into order_amount_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="requirementsInfoId != null">requirements_info_id,</if>
<if test="dailyWage != null">daily_wage,</if>
<if test="subsidyFestival != null">subsidy_festival,</if>
<if test="rentalSubsidy != null">rental_subsidy,</if>
<if test="trafficSubsidy != null">traffic_subsidy,</if>
<if test="highTemperatureSubsidy != null">high_temperature_subsidy,</if>
<if test="settleAccountsProportion != null">settle_accounts_proportion,</if>
<if test="realWages != null">real_wages,</if>
<if test="workDate != null">work_date,</if>
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id,jdbcType=INTEGER},</if>
<if test="requirementsInfoId != null">#{requirementsInfoId,jdbcType=INTEGER},</if>
<if test="dailyWage != null">#{dailyWage,jdbcType=DECIMAL},</if>
<if test="subsidyFestival != null">#{subsidyFestival,jdbcType=DECIMAL},</if>
<if test="rentalSubsidy != null">#{rentalSubsidy,jdbcType=DECIMAL},</if>
<if test="trafficSubsidy != null">#{trafficSubsidy,jdbcType=DECIMAL},</if>
<if test="highTemperatureSubsidy != null">#{highTemperatureSubsidy,jdbcType=DECIMAL},</if>
<if test="settleAccountsProportion != null">#{settleAccountsProportion,jdbcType=DECIMAL},</if>
<if test="realWages != null">#{realWages,jdbcType=DECIMAL},</if>
<if test="workDate != null">#{workDate,jdbcType=TIMESTAMP},</if>
NOW()
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.mmc.csf.release.entity.requirements.OrderAmountDetailDO">
update order_amount_detail
<set>
<if test="requirementsInfoId != null">
requirements_info_id = #{requirementsInfoId,jdbcType=INTEGER},
</if>
<if test="dailyWage != null">
daily_wage = #{dailyWage,jdbcType=DECIMAL},
</if>
<if test="subsidyFestival != null">
subsidy_festival = #{subsidyFestival,jdbcType=DECIMAL},
</if>
<if test="rentalSubsidy != null">
rental_subsidy = #{rentalSubsidy,jdbcType=DECIMAL},
</if>
<if test="trafficSubsidy != null">
traffic_subsidy = #{trafficSubsidy,jdbcType=DECIMAL},
</if>
<if test="highTemperatureSubsidy != null">
high_temperature_subsidy = #{highTemperatureSubsidy,jdbcType=DECIMAL},
</if>
<if test="settleAccountsProportion != null">
settle_accounts_proportion = #{settleAccountsProportion,jdbcType=DECIMAL},
</if>
<if test="realWages != null">
real_wages = #{realWages,jdbcType=DECIMAL},
</if>
<if test="workDate != null">
work_date = #{workDate,jdbcType=TIMESTAMP},
</if>
update_time = NOW()
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.mmc.csf.release.entity.requirements.OrderAmountDetailDO">
update order_amount_detail
set
requirements_info_id = #{requirementsInfoId,jdbcType=INTEGER},
daily_wage = #{dailyWage,jdbcType=DECIMAL},
subsidy_festival = #{subsidyFestival,jdbcType=DECIMAL},
rental_subsidy = #{rentalSubsidy,jdbcType=DECIMAL},
traffic_subsidy = #{trafficSubsidy,jdbcType=DECIMAL},
high_temperature_subsidy = #{highTemperatureSubsidy,jdbcType=DECIMAL},
settle_accounts_proportion = #{settleAccountsProportion,jdbcType=DECIMAL},
real_wages = #{realWages,jdbcType=DECIMAL},
work_date = #{workDate,jdbcType=TIMESTAMP},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
......@@ -50,11 +50,11 @@
INSERT INTO requirements_amount_update(requirements_info_id, order_amount, cash_amount, we_chat, salary_amount,
wechat_pay_order_number, create_time, update_time, reason, url,
user_account_id, update_order_amount, return_cash_amount, return_we_chat,
return_salary_amount)
return_salary_amount,user_sure_change)
values (#{requirementsInfoId}, #{orderAmount}, #{cashAmount}, #{weChat}, #{salaryAmount},
#{wechatPayOrderNumber}, NOW(), NOW(), #{reason}, #{url},
#{userAccountId}, #{updateOrderAmount}, #{returnCashAmount}, #{returnWeChat},
#{returnSalaryAmount})
#{returnSalaryAmount},#{userSureChange})
</insert>
......@@ -87,7 +87,8 @@
</if>
return_cash_amount=#{returnCashAmount},
return_we_chat =#{returnWeChat},
return_salary_amount=#{returnSalaryAmount}
return_salary_amount=#{returnSalaryAmount},
user_sure_change = 1
</set>
where requirements_info_id=#{requirementsInfoId}
</update>
......@@ -1625,6 +1626,7 @@
ORDER BY ri.id desc
limit #{pageNo}, #{pageSize}
</select>
<select id="selectFatherRequireIdBySonId" resultType="java.lang.Integer">
select father_require_id from requirements_info
where id = #{requireInfoId}
......@@ -1824,6 +1826,15 @@
<select id="selectOrderStatusByServiceFlowId" resultType="java.lang.String">
select order_status from service_flow where id = #{serviceFlowId}
</select>
<select id="selectServiceIdByRequireId" resultType="java.lang.Integer">
select service_flow_id from requirements_info where id = #{requireId}
</select>
<select id="getChangedOrderAmount" resultType="java.math.BigDecimal">
select update_order_amount from requirements_amount_update where requirements_info_id = #{requireId} and user_sure_change = 0
</select>
<select id="selectUserSureChangeAmount" resultType="java.lang.Integer">
select user_sure_change from requirements_amount_update where requirements_info_id = #{requireId}
</select>
<delete id="deleteRequirementsServiceInfo">
delete from requirements_service where requirements_info_id = #{requireId} and pilot_certification_user_id = #{userAccountId}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论