【功能优化】初步完善订单打印功能

pull/1/head
zengchenxi 9 months ago
parent 87aad982d6
commit 552398aa51

@ -176,4 +176,7 @@ public class ProjectOrderRespVO {
@Schema(description = "变更的字段列表")
private Set<String> alterFieldNames;
@Schema(description = "创建人名称")
private String creatorName;
}

@ -196,6 +196,21 @@ public class ProjectOrderDO extends BaseDO {
@TableField(exist = false)
private String businessManName;
@TableField(exist = false)
private String creatorName;
@TableField(exist = false)
private String auditName;
@TableField(exist = false)
private Long auditTime;
@TableField(exist = false)
private String approveName;
@TableField(exist = false)
private Long approveTime;
/**
*
* */

@ -72,4 +72,9 @@ public class ProjectOrderSubDO extends BaseDO {
@TableField(exist = false)
private Set<String> alterFieldNames;
/**
*
*/
@TableField(exist = false)
private String compositionName;
}

@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
@ -42,4 +43,17 @@ public interface ProjectOrderMapper extends BaseMapperX<ProjectOrderDO> {
return selectPage(reqVO, query);
}
default ProjectOrderDO selectById(Long id) {
MPJLambdaWrapper<ProjectOrderDO> query = new MPJLambdaWrapper<>();
query.selectAll(ProjectOrderDO.class)
.select("u.nickname as businessManName", "d.name as businessDeptName", "u1.nickname as creatorName")
.leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, ProjectOrderDO::getBusinessMan)
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, ProjectOrderDO::getCreator)
.leftJoin(DeptDO.class, "d", DeptDO::getId, ProjectOrderDO::getBusinessDeptId)
.eq(ProjectOrderDO::getId, id)
.last("LIMIT 1")
.disableSubLogicDel();
return selectOne(query);
}
}

@ -6,7 +6,9 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectordersub.ProjectOrderSubDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,7 +20,13 @@ import org.apache.ibatis.annotations.Mapper;
public interface ProjectOrderSubMapper extends BaseMapperX<ProjectOrderSubDO> {
default List<ProjectOrderSubDO> selectListByProjectOrderId(Long projectOrderId) {
return selectList(ProjectOrderSubDO::getProjectOrderId, projectOrderId);
MPJLambdaWrapper<ProjectOrderSubDO> query = new MPJLambdaWrapper<>();
query.selectAll(ProjectOrderSubDO.class)
.select("b.name as compositionName")
.leftJoin(CompositionDO.class, "b", CompositionDO::getId, ProjectOrderSubDO::getCompositionId)
.disableSubLogicDel()
.eq(ProjectOrderSubDO::getProjectOrderId, projectOrderId);
return selectList(query);
}
default int deleteByProjectOrderId(Long projectOrderId) {

@ -219,6 +219,8 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
// do nothing
log.error("generate alterFieldNames error, id: {}, exception: {}", id, e.getMessage(), e);
}
// 查询操作日志获取审核/批准
return projectOrderDO;
}

@ -6,6 +6,7 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -28,6 +29,9 @@ public class OperateLogPageReqVO extends PageParam {
@Schema(description = "操作分类,参见 OperateLogTypeEnum 枚举类", example = "1")
private Integer type;
@Schema(description = "操作分类列表", example = "1")
private List<Integer> typeList;
@Schema(description = "操作状态", example = "true")
private Boolean success;

@ -20,7 +20,9 @@ public interface OperateLogMapper extends BaseMapperX<OperateLogDO> {
.likeIfPresent(OperateLogDO::getModule, reqVO.getModule())
.inIfPresent(OperateLogDO::getUserId, userIds)
.eqIfPresent(OperateLogDO::getType, reqVO.getType())
.betweenIfPresent(OperateLogDO::getStartTime, reqVO.getStartTime());
.betweenIfPresent(OperateLogDO::getStartTime, reqVO.getStartTime())
.inIfPresent(OperateLogDO::getType, reqVO.getTypeList())
;
if (Boolean.TRUE.equals(reqVO.getSuccess())) {
query.eq(OperateLogDO::getResultCode, GlobalErrorCodeConstants.SUCCESS.getCode());
} else if (Boolean.FALSE.equals(reqVO.getSuccess())) {

@ -278,6 +278,7 @@ import { dateFormatter, dateFormatter2, formatDate } from '@/utils/formatTime'
import download from '@/utils/download'
import * as ProjectOrderApi from '@/api/heli/projectorder'
import Print from './startprint.vue' //
import {ref} from "vue";
defineOptions({ name: 'ProjectOrder' })
@ -397,7 +398,6 @@ const handleCommand = async (command, id, code) => {
break
case 'printProject':
printHandle(id)
// TODO
break
case 'alter':
openDetail('alter', id)
@ -416,6 +416,14 @@ const handleCommand = async (command, id, code) => {
}
}
//
const printRef = ref() //
const dialogInfo = ref({}) //
//
const printHandle = (id) => {
printRef.value.open(id)
}
/** 初始化 **/
onMounted(() => {
getList()
@ -424,12 +432,6 @@ onActivated(() => {
getList()
})
const printRef = ref() //
const dialogVisible = ref(false) //
//
const printHandle = (id) => {
printRef.value.open(id)
}
</script>
<style scoped>

@ -20,15 +20,15 @@
</tr>
</tbody>
<tbody>
<tr>
<td colspan="2"> 客户名称 </td>
<td colspan="5">
<span>{{ formData.customerId }}</span>
</td>
<td colspan="1">{{ `密称` }}</td>
<td> 编码 </td>
<td>{{ `1091` }} </td>
</tr>
<tr>
<td colspan="2"> 客户名称 </td>
<td colspan="5">
<span>{{ formData.customer.name }}</span>
</td>
<td colspan="1">{{ formData.customer.brief }}</td>
<td> 编码 </td>
<td>{{ formData.customer.code }} </td>
</tr>
</tbody>
<tr>
<td colspan="2"> 项目名称 </td>
@ -36,29 +36,20 @@
{{ formData.mouldName }}
</td>
<td> 业务员 </td>
<td>{{ formData.businessMan }} </td>
<td>{{ formData.businessManName }} </td>
</tr>
<tr>
<td colspan="2"> 项目工期 </td>
<td colspan="1"> </td>
<td colspan="1">
<span> {{ formData.projectStartTime }}</span>
<span>{{ formatDate(new Date(formData.projectStartTime), 'YYYY-MM-DD') }}</span>
</td>
<td colspan="1"></td>
<td colspan="1">{{ formData.projectEndTime }}</td>
<td colspan="1">{{ formatDate(new Date(formData.projectEndTime), 'YYYY-MM-DD') }}</td>
<td>天数</td>
<td colspan="1">{{
betweenDay(new Date(formData.projectStartTime), new Date(formData.projectEndTime))
}}</td>
<td colspan="1">{{ betweenDay(new Date(formData.projectStartTime), new Date(formData.projectEndTime)) }}</td>
<td colspan="1"> 是否紧急 </td>
<td colspan="1">
<dict-tag
:type="DICT_TYPE.HELI_COMMON_IS_OR_NOT"
:value="formData.isUrgency"
style="border: none; background-color: #fff; color: #666"
/>
</td>
<td colspan="1">{{ getDictLabel(DICT_TYPE.HELI_COMMON_IS_OR_NOT, formData.isUrgency) }} </td>
</tr>
<tr>
<td colspan="10">
@ -100,20 +91,8 @@
<div>性质</div>
</div>
<div style="border: 1px solid #333; width: 100px">
<div style="border-bottom: 1px solid #333">
<dict-tag
:type="DICT_TYPE.HELI_BUSINESS_LINE"
:value="formData.businessLine"
style="border:none; background-color: #fff; color: #333; padding: 2px 0"
/>
</div>
<div>
<dict-tag
:type="DICT_TYPE.HELI_PROJECT_PROPERTY"
:value="formData.property"
style="border:none; background-color: #fff; color: #333; padding: 2px 0"
/>
</div>
<div style="border-bottom: 1px solid #333">{{ getDictLabel(DICT_TYPE.HELI_BUSINESS_LINE, formData.businessLine) }}</div>
<div>{{ getDictLabel(DICT_TYPE.HELI_PROJECT_PROPERTY, formData.property) }}</div>
</div>
</div>
</div>
@ -134,13 +113,13 @@
<td> 主要材料 </td>
<td colspan="3"> 子项目编号 </td>
</tr>
<tr v-for="item in 8" :key="item.index">
<td>{{ item }}</td>
<td colspan="2"></td>
<td></td>
<td></td>
<td></td>
<tr v-for="(item,idx) in formData.projectOrderSubs" :key="idx">
<td>{{ idx+1 }}</td>
<td colspan="2">{{item.name}}</td>
<td>{{item.deviceModel}}</td>
<td></td>
<td>{{item.amount}}</td>
<td>{{item.compositionName}}</td>
<td colspan="3"></td>
</tr>
</tbody>
@ -165,14 +144,14 @@
<td colspan="4"> 批准/日期 </td>
</tr>
<tr>
<td colspan="3">1</td>
<td colspan="3"> </td>
<td colspan="4"> </td>
<td colspan="3">{{formData.creatorName}}</td>
<td colspan="3">{{formData.auditUserName}}</td>
<td colspan="4">{{formData.approveUserName}}</td>
</tr>
<tr>
<td colspan="3">1</td>
<td colspan="3"> </td>
<td colspan="4"> </td>
<td colspan="3">{{formatDate(new Date(formData.createTime), 'YYYY-MM-DD')}}</td>
<td colspan="3">{{formatDate(new Date(formData.auditTime), 'YYYY-MM-DD')}}</td>
<td colspan="4">{{formatDate(new Date(formData.approveTime), 'YYYY-MM-DD')}}</td>
</tr>
</tbody>
</table>
@ -190,6 +169,7 @@ import * as ProjectOrderApi from '@/api/heli/projectorder'
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getDictLabel } from '@/utils/dict'
import { betweenDay, dateFormatter, formatDate } from '@/utils/formatTime'
import { Check } from '@element-plus/icons-vue'
import {getCustomer} from "@/api/heli/customer";
const dialogVisible = ref(false) //
const onPrint = () => {
@ -324,17 +304,17 @@ const formData = ref({
snapshotCode: undefined,
orderTime: new Date(),
snapshotOrderTime: undefined,
alterFieldNames: []
alterFieldNames: [],
customer: {}
})
/** 打开弹窗 */
const open = async (id?: number) => {
console.log(id)
dialogVisible.value = true
resetForm()
if (id) {
formData.value = await ProjectOrderApi.getProjectOrder(id)
console.log(formData.value)
}
formData.value = await ProjectOrderApi.getProjectOrder(id)
//
formData.value.projectOrderSubs = await ProjectOrderApi.getProjectOrderSubListByProjectOrderId(id)
formData.value.customer = await getCustomer(formData.value.customerId)
}
defineExpose({ open }) // open
@ -380,7 +360,8 @@ const resetForm = () => {
snapshotCode: undefined,
orderTime: new Date(),
snapshotOrderTime: undefined,
alterFieldNames: []
alterFieldNames: [],
customer: {}
}
}
</script>

Loading…
Cancel
Save