应收管理界面调整
This commit is contained in:
parent
14a2416c28
commit
708dcd1acd
@ -1,5 +1,6 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
@ -9,10 +10,13 @@ import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper;
|
||||
import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum;
|
||||
import com.chanko.yunxi.mes.module.heli.manager.CrossOrderManager;
|
||||
import com.chanko.yunxi.mes.module.heli.service.orderys.OrderYsService;
|
||||
import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@ -50,7 +54,8 @@ public class ProjectOrderController {
|
||||
|
||||
@Resource
|
||||
private CrossOrderManager crossOrderManager;
|
||||
|
||||
@Resource
|
||||
private OrderYsService orderYsService;
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建项目订单")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:create')")
|
||||
@ -86,11 +91,14 @@ public class ProjectOrderController {
|
||||
// 批准、终止记录快照
|
||||
switch (OperateTypeEnum.valueOf(operateReqVO.getActive())){
|
||||
case APPROVE:
|
||||
//订单批准时创建或者更新应收记录数据
|
||||
orderYsService.createOrUpdate(operateReqVO);
|
||||
// 订单批准时创建或者更新生产计划数据
|
||||
crossOrderManager.generatePlan(operateReqVO.getId());
|
||||
projectOrderService.createProjectOrderSnapshot(operateReqVO);
|
||||
break;
|
||||
case TERMINATE:
|
||||
orderYsService.delete(operateReqVO);
|
||||
// 订单终止时更新生产计划状态
|
||||
crossOrderManager.updatePlanStatusToTerminate(operateReqVO.getId());
|
||||
projectOrderService.createProjectOrderSnapshot(operateReqVO);
|
||||
|
@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.service.orderys;
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSaveReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
@ -52,4 +53,7 @@ public interface OrderYsService {
|
||||
*/
|
||||
PageResult<OrderYsDO> getOrderYsPage(OrderYsPageReqVO pageReqVO);
|
||||
|
||||
void createOrUpdate(ProjectOrderSaveReqVO operateReqVO);
|
||||
|
||||
void delete(ProjectOrderSaveReqVO operateReqVO);
|
||||
}
|
||||
|
@ -1,10 +1,16 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.orderys;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSaveReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.customer.CustomerService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO;
|
||||
@ -28,6 +34,8 @@ public class OrderYsServiceImpl implements OrderYsService {
|
||||
|
||||
@Resource
|
||||
private OrderYsMapper orderYsMapper;
|
||||
@Resource
|
||||
private CustomerService customerService;
|
||||
|
||||
@Override
|
||||
public Integer createOrderYs(OrderYsSaveReqVO createReqVO) {
|
||||
@ -74,4 +82,42 @@ public class OrderYsServiceImpl implements OrderYsService {
|
||||
return orderYsMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createOrUpdate(ProjectOrderSaveReqVO operateReqVO) {
|
||||
if (operateReqVO.getHasPrice().equals(1)){
|
||||
OrderYsDO orderYsDO = new OrderYsDO();
|
||||
orderYsDO.setCode(operateReqVO.getCode());
|
||||
orderYsDO.setProjectName(operateReqVO.getProjectName());
|
||||
orderYsDO.setCgTime(LocalDateTime.now());
|
||||
orderYsDO.setCgKhname(customerService.getCustomer(operateReqVO.getCustomerId()).getName());
|
||||
if(operateReqVO.getPrice()==null){
|
||||
orderYsDO.setCgYs(new BigDecimal(0));
|
||||
}else {
|
||||
orderYsDO.setCgYs(operateReqVO.getPrice());
|
||||
LocalDateTime[] paymentTimes = {
|
||||
operateReqVO.getSixFuKuanTime(),
|
||||
operateReqVO.getFiveFuKuanTime(),
|
||||
operateReqVO.getFourFuKuanTime(),
|
||||
operateReqVO.getThreeFuKuanTime(),
|
||||
operateReqVO.getTwoFuKuanTime(),
|
||||
operateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
orderYsMapper.insert(orderYsDO);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(ProjectOrderSaveReqVO operateReqVO) {
|
||||
LambdaQueryWrapper<OrderYsDO> eq = new LambdaQueryWrapper<OrderYsDO>().eq(OrderYsDO::getCode, operateReqVO.getCode());
|
||||
orderYsMapper.delete(eq);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -191,6 +191,48 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
|
||||
// throw exception(INVALID_OPERATE);
|
||||
// }
|
||||
// 更新
|
||||
|
||||
LambdaQueryWrapper<OrderYsDO> eq = new LambdaQueryWrapper<OrderYsDO>().eq(OrderYsDO::getCode, updateReqVO.getCode());
|
||||
OrderYsDO orderYsDO = orderYsMapper.selectOne(eq);
|
||||
if (ObjectUtil.isEmpty(orderYsDO)){
|
||||
orderYsDO = new OrderYsDO();
|
||||
orderYsDO.setCode(updateReqVO.getCode());
|
||||
orderYsDO.setProjectName(updateReqVO.getProjectName());
|
||||
orderYsDO.setCgTime(LocalDateTime.now());
|
||||
orderYsDO.setCgYs(updateReqVO.getPrice());
|
||||
LocalDateTime[] paymentTimes = {
|
||||
updateReqVO.getSixFuKuanTime(),
|
||||
updateReqVO.getFiveFuKuanTime(),
|
||||
updateReqVO.getFourFuKuanTime(),
|
||||
updateReqVO.getThreeFuKuanTime(),
|
||||
updateReqVO.getTwoFuKuanTime(),
|
||||
updateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
orderYsMapper.insert(orderYsDO);
|
||||
}else {
|
||||
orderYsDO.setCgYs(updateReqVO.getPrice());
|
||||
LocalDateTime[] paymentTimes = {
|
||||
updateReqVO.getSixFuKuanTime(),
|
||||
updateReqVO.getFiveFuKuanTime(),
|
||||
updateReqVO.getFourFuKuanTime(),
|
||||
updateReqVO.getThreeFuKuanTime(),
|
||||
updateReqVO.getTwoFuKuanTime(),
|
||||
updateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
orderYsMapper.updateById(orderYsDO);
|
||||
}
|
||||
ProjectOrderDO updateObj = BeanUtils.toBean(updateReqVO, ProjectOrderDO.class);
|
||||
projectOrderMapper.updateById(updateObj);
|
||||
}
|
||||
@ -388,16 +430,10 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
|
||||
public void operateProjectOrder(ProjectOrderSaveReqVO operateReqVO) {
|
||||
if(operateReqVO.getId() == null){
|
||||
createProjectOrder(operateReqVO);
|
||||
OrderYsDO orderYsDO = new OrderYsDO();
|
||||
orderYsDO.setCode(operateReqVO.getCode());
|
||||
orderYsDO.setProjectName(operateReqVO.getProjectName());
|
||||
orderYsDO.setCgTime(LocalDateTime.now());
|
||||
orderYsDO.setCgKhname(customerService.getCustomer(operateReqVO.getCustomerId()).getName());
|
||||
if(operateReqVO.getHasPrice().equals(1)&&(operateReqVO.getPrice()==null)){
|
||||
//订单有价格但是没录价格
|
||||
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
|
||||
|
||||
orderYsDO.setCgYs(new BigDecimal(0));
|
||||
|
||||
List<AttentiontodoDO> attentiontodook = attentiontodoService.getAttentiontodolist(1);//查找该类型的待办和关注人 改
|
||||
AttentiontodoDO attentiontodoDO = attentiontodook.get(0);
|
||||
@ -464,33 +500,12 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
|
||||
BdgzsomthingDO.setAttr3(operateReqVO.getId().toString());//获取数据当前表的id
|
||||
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件 改
|
||||
bdgzsomthingMapper.insert(BdgzsomthingDO);
|
||||
|
||||
|
||||
|
||||
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
orderYsDO.setCgYs(operateReqVO.getPrice());
|
||||
LocalDateTime[] paymentTimes = {
|
||||
operateReqVO.getSixFuKuanTime(),
|
||||
operateReqVO.getFiveFuKuanTime(),
|
||||
operateReqVO.getFourFuKuanTime(),
|
||||
operateReqVO.getThreeFuKuanTime(),
|
||||
operateReqVO.getTwoFuKuanTime(),
|
||||
operateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
orderYsMapper.insert(orderYsDO);
|
||||
}else{
|
||||
if ("PRICE".equals(operateReqVO.getActive())){
|
||||
updateProjectOrderPrice(operateReqVO);
|
||||
@ -498,79 +513,15 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
|
||||
updateProjectOrder(operateReqVO);
|
||||
}
|
||||
if(operateReqVO.getHasPrice().equals(1)&&(operateReqVO.getPrice()==null)){
|
||||
LambdaQueryWrapper<OrderYsDO> eq = new LambdaQueryWrapper<OrderYsDO>().eq(OrderYsDO::getCode, operateReqVO.getCode());
|
||||
OrderYsDO orderYsDO = orderYsMapper.selectOne(eq);
|
||||
if (ObjectUtil.isEmpty(orderYsDO)) {
|
||||
orderYsDO = new OrderYsDO();
|
||||
orderYsDO.setCode(operateReqVO.getCode());
|
||||
orderYsDO.setProjectName(operateReqVO.getProjectName());
|
||||
orderYsDO.setCgTime(LocalDateTime.now());
|
||||
orderYsDO.setCgYs(new BigDecimal(0));
|
||||
LocalDateTime[] paymentTimes = {
|
||||
operateReqVO.getSixFuKuanTime(),
|
||||
operateReqVO.getFiveFuKuanTime(),
|
||||
operateReqVO.getFourFuKuanTime(),
|
||||
operateReqVO.getThreeFuKuanTime(),
|
||||
operateReqVO.getTwoFuKuanTime(),
|
||||
operateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
orderYsMapper.insert(orderYsDO);
|
||||
}
|
||||
|
||||
}else{
|
||||
bdgzsomthingDO abc= new bdgzsomthingDO();
|
||||
abc.setThingname("订单有价格");
|
||||
abc.setAttr12("0");
|
||||
abc.setAttr3(operateReqVO.getId().toString());
|
||||
bdgzsomthingMapper.updateok(abc);
|
||||
LambdaQueryWrapper<OrderYsDO> eq = new LambdaQueryWrapper<OrderYsDO>().eq(OrderYsDO::getCode, operateReqVO.getCode());
|
||||
OrderYsDO orderYsDO = orderYsMapper.selectOne(eq);
|
||||
if (ObjectUtil.isEmpty(orderYsDO)){
|
||||
orderYsDO = new OrderYsDO();
|
||||
orderYsDO.setCode(operateReqVO.getCode());
|
||||
orderYsDO.setProjectName(operateReqVO.getProjectName());
|
||||
orderYsDO.setCgTime(LocalDateTime.now());
|
||||
orderYsDO.setCgYs(operateReqVO.getPrice());
|
||||
LocalDateTime[] paymentTimes = {
|
||||
operateReqVO.getSixFuKuanTime(),
|
||||
operateReqVO.getFiveFuKuanTime(),
|
||||
operateReqVO.getFourFuKuanTime(),
|
||||
operateReqVO.getThreeFuKuanTime(),
|
||||
operateReqVO.getTwoFuKuanTime(),
|
||||
operateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
orderYsMapper.insert(orderYsDO);
|
||||
}else {
|
||||
orderYsDO.setCgYs(operateReqVO.getPrice());
|
||||
LocalDateTime[] paymentTimes = {
|
||||
operateReqVO.getSixFuKuanTime(),
|
||||
operateReqVO.getFiveFuKuanTime(),
|
||||
operateReqVO.getFourFuKuanTime(),
|
||||
operateReqVO.getThreeFuKuanTime(),
|
||||
operateReqVO.getTwoFuKuanTime(),
|
||||
operateReqVO.getShouFuKuanTime()
|
||||
};
|
||||
for (LocalDateTime paymentTime : paymentTimes) {
|
||||
if (!ObjectUtil.isEmpty(paymentTime)) {
|
||||
orderYsDO.setPaymentDate(paymentTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
orderYsMapper.updateById(orderYsDO);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -73,6 +73,17 @@ export function formatDate(date: Date, format?: string): string {
|
||||
}
|
||||
return dayjs(date).format(format)
|
||||
}
|
||||
export function formatDate1(date: Date, format?: string): string {
|
||||
// 日期不存在,则返回空
|
||||
if (!date) {
|
||||
return ''
|
||||
}
|
||||
// 日期存在,则进行格式化
|
||||
if (format === undefined) {
|
||||
format = 'YYYY-MM-DD'
|
||||
}
|
||||
return dayjs(date).format(format)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前的日期+时间
|
||||
@ -206,7 +217,12 @@ export const dateFormatter = (row, column, cellValue): string => {
|
||||
}
|
||||
return formatDate(cellValue)
|
||||
}
|
||||
|
||||
export const dateFormatter1 = (row, column, cellValue): string => {
|
||||
if (!cellValue) {
|
||||
return ''
|
||||
}
|
||||
return formatDate1(cellValue)
|
||||
}
|
||||
/**
|
||||
* element plus 的时间 Formatter 实现,使用 YYYY-MM-DD 格式
|
||||
*
|
||||
|
@ -4,7 +4,7 @@
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="100px"
|
||||
label-width="160px"
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<el-form-item label="项目编号" prop="code">
|
||||
@ -31,7 +31,20 @@
|
||||
<el-input v-model="formData.cgYishou" placeholder="请输入已收金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否回款完成" prop="cgTypee" >
|
||||
<el-input v-model="formData.cgTypee" placeholder="请输入是否回款完成" disabled/>
|
||||
<el-select
|
||||
v-model="formData.cgTypee"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_YINGFU_MONEY)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="rem">
|
||||
<el-input v-model="formData.rem" placeholder="请输入备注" />
|
||||
@ -45,6 +58,7 @@
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import * as OrderYsApi from '@/api/heli/orderys'
|
||||
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
|
||||
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
|
@ -86,32 +86,32 @@
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||
<el-table-column label="项目编号" align="center" prop="code" />
|
||||
<el-table-column label="项目名称" align="center" prop="projectName" />
|
||||
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||
<el-table-column
|
||||
label="生成日期"
|
||||
align="center"
|
||||
prop="cgTime"
|
||||
:formatter="dateFormatter"
|
||||
width="180px"
|
||||
width="250px"
|
||||
/>
|
||||
<el-table-column label="客户名称" align="center" prop="cgKhname" />
|
||||
<el-table-column label="客户名称" align="center" prop="cgKhname" width="200px"/>
|
||||
<el-table-column
|
||||
label="预计回款日期"
|
||||
align="center"
|
||||
prop="cgTime"
|
||||
:formatter="dateFormatter"
|
||||
width="180px"
|
||||
prop="paymentDate"
|
||||
:formatter="dateFormatter1"
|
||||
width="200px"
|
||||
/>
|
||||
<el-table-column label="应收金额" align="center" prop="cgYs" />
|
||||
<el-table-column label="已收金额" align="center" prop="cgYishou" />
|
||||
<el-table-column label="应收金额(元)" align="center" prop="cgYs" width="150"/>
|
||||
<el-table-column label="已收金额(元)" align="center" prop="cgYishou" width="150"/>
|
||||
<el-table-column label="是否回款完成" align="center" prop="cgTypee" width="150" >
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.HELI_YINGFU_MONEY" :value="scope.row.cgTypee" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="rem" />
|
||||
<el-table-column label="操作" align="center">
|
||||
<el-table-column label="项目编号" align="center" prop="code" width="180"/>
|
||||
<el-table-column label="备注" align="center" prop="rem" width="120"/>
|
||||
<el-table-column label="操作" align="center" width="180">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
@ -146,7 +146,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { dateFormatter } from '@/utils/formatTime'
|
||||
import {dateFormatter, dateFormatter1} from '@/utils/formatTime'
|
||||
import download from '@/utils/download'
|
||||
import * as OrderYsApi from '@/api/heli/orderys'
|
||||
import OrderYsForm from './OrderYsForm.vue'
|
||||
|
Loading…
Reference in New Issue
Block a user