近期修改

This commit is contained in:
z 2025-08-30 15:44:28 +08:00
parent cc3b2441e6
commit 7f720de18d
8 changed files with 97 additions and 67 deletions

View File

@ -151,7 +151,7 @@ public class bdgzsomthingController {
BeanUtils.toBean(list, bdgzsomthingRespVO.class)); BeanUtils.toBean(list, bdgzsomthingRespVO.class));
} }
// @Scheduled(fixedRate = 10800000) @Scheduled(fixedRate = 10800000)
public void scheduledTask() { public void scheduledTask() {
bdgzsomthingService.selectds(); bdgzsomthingService.selectds();
} }
@ -159,8 +159,8 @@ public class bdgzsomthingController {
//@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次 //@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次
@PostConstruct @PostConstruct
public void init() { public void init() {
// selectHasPrice(); selectHasPrice();
// selectSafeStorageAndDeliverOneYear(); selectSafeStorageAndDeliverOneYear();
// bdgzsomthingService.selectds(); // bdgzsomthingService.selectds();
} }
@Scheduled(cron = "0 0 2 * * ?") @Scheduled(cron = "0 0 2 * * ?")

View File

@ -71,6 +71,7 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
.like(!StringUtils.isEmpty(reqVO.getTwoDimOwnerName()), "u4.nickname", reqVO.getTwoDimOwnerName()) .like(!StringUtils.isEmpty(reqVO.getTwoDimOwnerName()), "u4.nickname", reqVO.getTwoDimOwnerName())
.like(!StringUtils.isEmpty(reqVO.getBlankOwnerName()), "u3.nickname", reqVO.getBlankOwnerName()) .like(!StringUtils.isEmpty(reqVO.getBlankOwnerName()), "u3.nickname", reqVO.getBlankOwnerName())
.like(!StringUtils.isEmpty(reqVO.getCastOwnerName()), "u6.nickname", reqVO.getCastOwnerName()) .like(!StringUtils.isEmpty(reqVO.getCastOwnerName()), "u6.nickname", reqVO.getCastOwnerName())
.ne(ObjectUtil.isNotEmpty(reqVO.getIsOverProcess()), ProcessDesignDO::getIsOverProcess, reqVO.getIsOverProcess())
.like(!StringUtils.isEmpty(reqVO.getProjectSubName()), ProjectOrderSubDO::getName, reqVO.getProjectSubName()) .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), ProjectOrderSubDO::getName, reqVO.getProjectSubName())
.eq(!StringUtils.isEmpty(reqVO.getProcessDesignType()), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignType()) .eq(!StringUtils.isEmpty(reqVO.getProcessDesignType()), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignType())
.in(reqVO.getProcessDesignTypeList() != null && !reqVO.getProcessDesignTypeList().isEmpty(), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignTypeList()) .in(reqVO.getProcessDesignTypeList() != null && !reqVO.getProcessDesignTypeList().isEmpty(), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignTypeList())
@ -91,6 +92,7 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
if(reqVO.getUncompletedDesign() != null && reqVO.getUncompletedDesign()){ if(reqVO.getUncompletedDesign() != null && reqVO.getUncompletedDesign()){
query.and(QueryWrapper -> QueryWrapper.apply("COALESCE(z.progress, 0) < {0}", 100).ne(PlanDO::getStatus, ProjectPlanStatusEnum.TERMINATE.getCode())); query.and(QueryWrapper -> QueryWrapper.apply("COALESCE(z.progress, 0) < {0}", 100).ne(PlanDO::getStatus, ProjectPlanStatusEnum.TERMINATE.getCode()));
} }
if(reqVO.getPgType() != null){ if(reqVO.getPgType() != null){
if(reqVO.getPgType()==0){ if(reqVO.getPgType()==0){
query.eq(ProcessDesignDO::getIsOverProcess,0); query.eq(ProcessDesignDO::getIsOverProcess,0);

View File

@ -457,6 +457,7 @@ public class ProcessDesignServiceImpl implements ProcessDesignService {
Long userId = SecurityFrameworkUtils.getLoginUser().getId(); Long userId = SecurityFrameworkUtils.getLoginUser().getId();
ProcessDesignPageReqVO reqVO = new ProcessDesignPageReqVO(); ProcessDesignPageReqVO reqVO = new ProcessDesignPageReqVO();
reqVO.setUncompletedDesign(true).setOwner(userId).setPageSize(99); reqVO.setUncompletedDesign(true).setOwner(userId).setPageSize(99);
reqVO.setIsOverProcess(1);
PageResult<ProcessDesignDO> result = processDesignMapper.selectPage(reqVO); PageResult<ProcessDesignDO> result = processDesignMapper.selectPage(reqVO);
if(result.getTotal() > 0){ if(result.getTotal() > 0){
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();

View File

@ -219,12 +219,12 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
</el-col> --> </el-col> -->
<el-col :span="6" > <el-col :span="6" >
<el-form-item label="设计工时" prop="delayReason"> <el-form-item label="设计工时" prop="delayReason">
<el-input class="!w-260px" :placeholder="getWorkTime(1)" :disabled="true"/> <el-input class="!w-260px" v-model="formData.workTime" :disabled="true"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="设计工期" prop="delayReason"> <el-form-item label="设计工期" prop="delayReason">
<el-input class="!w-260px" :placeholder="getWorkTime(2)" :disabled="true"/> <el-input class="!w-260px" v-model="formData.work" :disabled="true"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" > <el-col :span="6" >
@ -377,13 +377,15 @@ v-if="scope.row.isOver == 0 && active != 'detail'"
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, } from '@/utils/dict' import { getIntDictOptions, getStrDictOptions, DICT_TYPE, } from '@/utils/dict'
import {dateFormatter, } from "@/utils/formatTime"; import {dateFormatter, formatDate,} from "@/utils/formatTime";
import {ref} from "vue"; import {ref} from "vue";
import * as ProcessDesignApi from "@/api/heli/processdesign"; import * as ProcessDesignApi from "@/api/heli/processdesign";
import { inject } from 'vue' import { inject } from 'vue'
import {useUserStore} from "@/store/modules/user"; import {useUserStore} from "@/store/modules/user";
import {useCommonStore} from "@/store/modules/common"; import {useCommonStore} from "@/store/modules/common";
import {ElMessageBox} from "element-plus"; import {ElMessageBox} from "element-plus";
import * as PlanSubApi from "@/api/heli/plansub";
import {getPgMasterLineListByZlPgId} from "@/api/heli/pgmaster";
defineOptions({ name: 'ProcessDesignDetail' }) defineOptions({ name: 'ProcessDesignDetail' })
@ -520,7 +522,7 @@ const handleClose = (done: () => void) => {
.catch(() => { .catch(() => {
}) })
} }
const getWorkTime = (type) =>{ const getWorkTime = async (type) =>{
var beginTime = null ; var beginTime = null ;
var endTime = null var endTime = null
if(processDesignType.value == 'BLUEPRINT_WORKBLANK'){ if(processDesignType.value == 'BLUEPRINT_WORKBLANK'){
@ -528,7 +530,6 @@ const getWorkTime = (type) =>{
beginTime = formData.value.startBlankDate; beginTime = formData.value.startBlankDate;
endTime = formData.value.blankDate endTime = formData.value.blankDate
} }
} }
if(processDesignType.value == 'BLUEPRINT_2D'){ if(processDesignType.value == 'BLUEPRINT_2D'){
if(formData.value.twoDimDate != null && formData.value.startTwoDimDate ){ if(formData.value.twoDimDate != null && formData.value.startTwoDimDate ){
@ -540,37 +541,34 @@ const getWorkTime = (type) =>{
if(formData.value.threeDimDate != null && formData.value.startThreeDimDate != null){ if(formData.value.threeDimDate != null && formData.value.startThreeDimDate != null){
beginTime = formData.value.startThreeDimDate; beginTime = formData.value.startThreeDimDate;
endTime = formData.value.threeDimDate; endTime = formData.value.threeDimDate;
} }
} }
if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){ if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){
if(formData.value.craftStartDate != null && formData.value.craftEndDate != null ){ if(formData.value.craftStartDate != null && formData.value.craftEndDate != null ){
beginTime = formData.value.craftStartDate; beginTime = formData.value.craftStartDate;
endTime = formData.value.craftEndDate endTime = formData.value.craftEndDate
} }
} }
if(processDesignType.value == 'CASTING_DRAWING'){ if(processDesignType.value == 'CASTING_DRAWING'){
if(formData.value.castStartDate != null && formData.value.castEndDate != null ){ if(formData.value.castStartDate != null && formData.value.castEndDate != null ){
beginTime = formData.value.castStartDate; beginTime = formData.value.castStartDate;
endTime = formData.value.castEndDate endTime = formData.value.castEndDate
} }
} }
if(beginTime != null && endTime != null){ if(beginTime != null && endTime != null){
const start = new Date(beginTime ).getTime(); // const start = new Date(beginTime ).getTime();
const end = new Date(endTime).getTime(); // const end = new Date(endTime).getTime();
const diffTime = Math.abs(end - start); // const diffTime = Math.abs(end - start);
var day = Math.floor(diffTime / (1000 * 60 * 60 * 24)); // var day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
if(day == 0){ // day += 1
day += 1 var day
} await PlanSubApi.getSearchRlTsS(formatDate(beginTime,'YYYY-MM-DD'),formatDate(endTime,'YYYY-MM-DD')).then(data=>{
if(type == 1){ day=data
return day * 8 + '小时'; });
if(type == 1){
formData.value.workTime= day * 8 + '小时';
}else{ }else{
return day +'天' formData.value.work= day +'天';
} }
}else{return '' }else{return ''
} }
@ -590,7 +588,6 @@ const endTimeChange = (e , row) =>{
row.workTime = timeDiff / (1000 * 60 * 60); row.workTime = timeDiff / (1000 * 60 * 60);
row.maxTime = row.workTime; row.maxTime = row.workTime;
} }
}else{ }else{
row.workTime = null row.workTime = null
row.maxTime = row.workTime; row.maxTime = row.workTime;
@ -739,6 +736,10 @@ const overProcess = () =>{
message.error("已做时间不能为空!请确认") message.error("已做时间不能为空!请确认")
return return
} }
if(new Date(item.beginTime) > new Date(item.endTime)){
message.error("开始时间不能大于结束时间!请确认!")
return
}
} }
item.isOver = 1; item.isOver = 1;
} }
@ -815,6 +816,8 @@ const queryData = async (id?: number) => {
formLoading.value = true formLoading.value = true
try { try {
formData.value = await ProcessDesignApi.getProcessDesign(id) formData.value = await ProcessDesignApi.getProcessDesign(id)
getWorkTime(1)
getWorkTime(2)
formData.value.processDesignProgressList = await ProcessDesignApi.getProcessDesignProgressListByProcessDesignId(id) formData.value.processDesignProgressList = await ProcessDesignApi.getProcessDesignProgressListByProcessDesignId(id)
if( formData.value.processDesignProgressList != null && formData.value.processDesignProgressList.length > 0){ if( formData.value.processDesignProgressList != null && formData.value.processDesignProgressList.length > 0){
var maxTime = null; var maxTime = null;

View File

@ -61,6 +61,7 @@
"@dcloudio/uni-ui": "^1.4.28", "@dcloudio/uni-ui": "^1.4.28",
"pinia": "2.0.27", "pinia": "2.0.27",
"pinia-plugin-persistedstate": "^3.2.0", "pinia-plugin-persistedstate": "^3.2.0",
"uview-ui": "^2.0.38",
"vue": "3.4.21", "vue": "3.4.21",
"vue-i18n": "9.10.1" "vue-i18n": "9.10.1"
}, },
@ -85,7 +86,7 @@
"lint-staged": "^13.0.3", "lint-staged": "^13.0.3",
"miniprogram-api-typings": "^3.12.0", "miniprogram-api-typings": "^3.12.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"sass": "^1.56.1", "sass": "^1.89.2",
"typescript": "^5.1.6", "typescript": "^5.1.6",
"vite": "4.0.3", "vite": "4.0.3",
"vue-tsc": "^1.8.8" "vue-tsc": "^1.8.8"

View File

@ -28,7 +28,7 @@ const categoryList = ref([
name: "品质异常通知", name: "品质异常通知",
auth: false, auth: false,
imgUrl: "/static/images/unqualifiedNotification.png", imgUrl: "/static/images/unqualifiedNotification.png",
defaultImgUrl: "/static/images/unqualifiedNotification-default.png", defaultImgUrl: "/static/images/assembleReport-default.png",
}, },
{ {
path: "productionReport", path: "productionReport",
@ -85,7 +85,7 @@ const categoryList = ref([
name: "品质异常确认", name: "品质异常确认",
auth: false, auth: false,
imgUrl: "/static/images/unqualifiedNotificationConfirm.png", imgUrl: "/static/images/unqualifiedNotificationConfirm.png",
defaultImgUrl: "/static/images/unqualifiedNotification-default.png", defaultImgUrl: "/static/images/assembleReport-default.png",
}, },
{ {
path: "receivingGoods", path: "receivingGoods",

View File

@ -24,12 +24,12 @@
pageNo: 1, pageNo: 1,
pageSize: 5, pageSize: 5,
subOrDetailName: "", subOrDetailName: "",
projectName: undefined, projectName: "",
projectSubName: undefined, projectSubName: "",
supplierName: undefined, supplierName: "",
boomName: undefined, boomName: "",
procedureName: undefined, procedureName: "",
blueprintNo: undefined, blueprintNo: "",
}; };
const dataList = ref([]); const dataList = ref([]);
const list = ref([]); const list = ref([]);
@ -135,6 +135,9 @@
estimatedPrice.value = "" estimatedPrice.value = ""
purchaseRemAmounts.value = "" purchaseRemAmounts.value = ""
popup.value?.close() popup.value?.close()
queryParams.pageNo = 1;
isFinish.value = false;
dataList.value = [];
await getListData() await getListData()
} }
@ -143,7 +146,11 @@
estimatedPrice.value = "" estimatedPrice.value = ""
purchaseRemAmounts.value = "" purchaseRemAmounts.value = ""
popup.value?.close() popup.value?.close()
} queryParams.pageNo = 1;
isFinish.value = false;
dataList.value = [];
getListData()
}
const filterData : Required<any> = ({ const filterData : Required<any> = ({
projectName: '', projectName: '',
subProjectName: '', subProjectName: '',
@ -220,10 +227,10 @@
<view class="md"> <view class="md">
<view class="product-row"> <view class="product-row">
<view class="row-item"> <view class="row-item">
<view class="label">零件名称: {{ item.boomName }}</view> <view class="label">零件名称: <span style="font-weight: bold;">{{ item.boomName }}</span></view>
</view> </view>
<view class="row-item"> <view class="row-item">
<view class="label">派工工序: {{ item.procedureName }}</view> <view class="label">派工工序: <span style="font-weight: bold;">{{ item.procedureName }}</span></view>
</view> </view>
</view> </view>
<view class="product-row"> <view class="product-row">
@ -247,9 +254,17 @@
<view class="label">完成日期: {{ item.requireTimes }}</view> <view class="label">完成日期: {{ item.requireTimes }}</view>
</view> </view>
<view class="row-item"> <view class="row-item">
<view class="label">供应商: {{ item.supplierName }}</view> <view class="label">&emsp;供应商: {{ item.supplierName }}</view>
</view> </view>
</view> </view>
<view class="product-row">
<view class="row-item">
<view class="label">预估总价: {{ item.estimatedPrice }}</view>
</view>
<view class="row-item">
<view class="label">&emsp;&emsp;材质: {{ item.boomSpec }}</view>
</view>
</view>
<view class="product-row"> <view class="product-row">
<view> <view>
<view class="label">子项目编码: {{ item.projectSubCode }}</view> <view class="label">子项目编码: {{ item.projectSubCode }}</view>
@ -263,32 +278,33 @@
<view class="loading-text" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }"> <view class="loading-text" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }">
{{ isFinish ? "没有更多数据~" : "正在加载..." }} {{ isFinish ? "没有更多数据~" : "正在加载..." }}
</view> </view>
<uni-popup class="popup" ref="popup" :mask-click="false" type="bottom" background-color="#fff">
<view class="title">
<view class="text">填写信息</view>
</view>
<view class="cont">
<view class="item">
<view class="label"><span class="star">*</span>入库数量</view>
<uni-easyinput class="val" type="digit" v-model="purchaseRemAmounts"
placeholder="请输入本次入库数量"></uni-easyinput>
</view>
<view class="item">
<view class="label"><span class="star">*</span>预估总价</view>
<uni-easyinput class="val" type="number" v-model="estimatedPrice"
placeholder="请输入本次预估总价"></uni-easyinput>
</view>
</view>
<view class="button-group">
<view class="ok" @click="handleOk">确定</view>
<view class="cancel" @click="cancel">取消</view>
</view>
</uni-popup>
</scroll-view> </scroll-view>
<uni-popup class="popup" ref="popup" :mask-click="false" type="bottom" background-color="#fff">
<view class="title">
<view class="text">填写信息</view>
</view>
<view class="cont">
<view class="item">
<view class="label"><span class="star">*</span>入库数量</view>
<uni-easyinput class="val" type="number" v-model="purchaseRemAmounts"
placeholder="请输入本次入库数量"></uni-easyinput>
</view>
<view class="item">
<view class="label"><span class="star">*</span>预估总价</view>
<uni-easyinput class="val" type="number" v-model="estimatedPrice"
placeholder="请输入本次预估总价"></uni-easyinput>
</view>
</view>
<view class="button-group">
<view class="ok" @click="handleOk">确定</view>
<view class="cancel" @click="cancel">取消</view>
</view>
</uni-popup>
<uni-popup class="popup" ref="showPop" :mask-click="false" type="top" background-color="#fff"> <uni-popup class="popup" ref="showPop" :mask-click="false" type="top" background-color="#fff">
<view style="margin-top: 6%;"> <view style="margin-top: 6%;">
<uni-forms :modelValue="queryParams"> <uni-forms :modelValue="queryParams" label-align="right" label-width="90px">
<uni-forms-item label="项目名称" name="projectName"> <uni-forms-item label="项目名称" name="projectName">
<uni-easyinput type="text" v-model="queryParams.projectName" placeholder="请输入项目名称" /> <uni-easyinput type="text" v-model="queryParams.projectName" placeholder="请输入项目名称" />
</uni-forms-item> </uni-forms-item>
@ -311,8 +327,8 @@
</view> </view>
<view class="filter-buttons"> <view class="button-group">
<view class="ok" @click="confirmFilter">确认</view> <view class="ok" @click="confirmFilter">查询</view>
<view class="cancel" @click="cancelFilter">取消</view> <view class="cancel" @click="cancelFilter">取消</view>
</view> </view>
@ -321,6 +337,13 @@
</template> </template>
<style lang="scss"> <style lang="scss">
.fixed-bottom-modal {
position: fixed !important; /* 覆盖框架默认定位 */
bottom: 0; /* 紧贴屏幕底部 */
left: 0;
right: 0;
z-index: 9999 !important; /* 确保最高层级 */
}
.filter-buttons { .filter-buttons {
display: flex; display: flex;
width: 100%; width: 100%;
@ -620,7 +643,7 @@
} }
.popup { .popup {
.title { .title {
line-height: 1; line-height: 1;
padding: 40rpx; padding: 40rpx;
font-size: 32rpx; font-size: 32rpx;
@ -687,17 +710,17 @@
/* 修正原有 .ok 样式 */ /* 修正原有 .ok 样式 */
.ok, .ok,
.cancel { .cancel {
font-size: 32rpx; font-size: 40rpx;
text-align: center; text-align: center;
width: 200rpx; width: 250rpx;
border-radius: 10rpx; border-radius: 24rpx;
padding: 8rpx 0; padding: 10rpx 0;
background-color: #3C8AF7; background-color: #3C8AF7;
color: #fff; color: #fff;
line-height:40px;
margin: 20rpx auto 80rpx; margin: 20rpx auto 80rpx;
/* 移除原有的 margin: 20rpx auto 80rpx; */ /* 移除原有的 margin: 20rpx auto 80rpx; */
} }
/* 可选:为取消按钮添加不同样式 */ /* 可选:为取消按钮添加不同样式 */
.cancel { .cancel {
background: linear-gradient(157deg, #A9A9A9 -3%, #A9A9A9 90%); background: linear-gradient(157deg, #A9A9A9 -3%, #A9A9A9 90%);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB