【需求】出库单调整

dev
zengchenxi 5 months ago
parent 374cf1b48c
commit a46b2f1daf

@ -60,4 +60,8 @@ public class StorageSaveReqVO {
private String vMatName; private String vMatName;
@Schema(description = "操作类型")
@NotBlank(message = "操作类型不能为空")
private String active;
} }

@ -1,9 +1,9 @@
package com.chanko.yunxi.mes.module.biz.service.storage; package com.chanko.yunxi.mes.module.biz.service.storage;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StoragePageReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StoragePageReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StorageSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StorageSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.storagemat.vo.StorageMatPageReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.storagemat.vo.StorageMatPageReqVO;
@ -11,10 +11,8 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.serialnumber.SerialNumberD
import com.chanko.yunxi.mes.module.biz.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.biz.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.biz.enums.CodeEnum; import com.chanko.yunxi.mes.module.biz.enums.CodeEnum;
import com.chanko.yunxi.mes.module.biz.enums.StockTypeEnum; import com.chanko.yunxi.mes.module.biz.enums.StockTypeEnum;
import com.chanko.yunxi.mes.module.biz.enums.StorageStatusEnum;
import com.chanko.yunxi.mes.module.biz.manager.CrossOrderManager; import com.chanko.yunxi.mes.module.biz.manager.CrossOrderManager;
import com.chanko.yunxi.mes.module.biz.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.biz.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.biz.service.storagemat.StorageMatService; import com.chanko.yunxi.mes.module.biz.service.storagemat.StorageMatService;
@ -97,7 +95,7 @@ public class StorageServiceImpl implements StorageService {
// 如为提交同步生成出库单 // 如为提交同步生成出库单
if(updateObj.getStockType() == StockTypeEnum.OUT.getCode()){ if(updateObj.getStockType() == StockTypeEnum.OUT.getCode()){
if(updateObj.getStatus() == StorageStatusEnum.SUBMIT.getCode()){ if(OperateTypeEnum.SUBMIT.name().equals(updateReqVO.getActive())){
// 数据校验 // 数据校验
StorageMatPageReqVO reqVO = new StorageMatPageReqVO(); StorageMatPageReqVO reqVO = new StorageMatPageReqVO();
@ -117,8 +115,8 @@ public class StorageServiceImpl implements StorageService {
try { try {
crossOrderManager.createStockOutOrder(updateObj.getId()); crossOrderManager.createStockOutOrder(updateObj.getId());
} catch (ChanjetApiException e) { } catch (Exception e) {
throw new RuntimeException(e); throw exception(CALL_API_ERROR);
} }
} }
} }

@ -560,15 +560,15 @@
</el-form> </el-form>
<div class="text-center hl-footer"> <div class="text-center hl-footer">
<el-button @click="() => router.go(-1)" size="large"> </el-button> <el-button @click="() => router.go(-1)" size="large"> </el-button>
<el-button @click="submitForm" type="success" v-if="btnSave" size="large"> </el-button> <el-button @click="saveFormData('SAVE',1)" type="success" v-if="btnSave" size="large"> </el-button>
<el-button <el-button
@click="handleStatus(2)" @click="saveFormData('SUBMIT',2)"
type="primary" type="primary"
v-if="btnSave&&query.type !== 'create'" v-if="btnSave&&query.type !== 'create'"
size="large" size="large"
> </el-button > </el-button
> >
<el-button @click="handleStatus(3)" type="danger" v-if="btnCancel" size="large" <el-button @click="saveFormData('CANCEL',3)" type="danger" v-if="btnCancel" size="large"
> </el-button > </el-button
> >
</div> </div>
@ -718,6 +718,7 @@ const handleStatus = async (num) => {
formData.value.status = num formData.value.status = num
const data = formData.value as unknown as StorageApi.StorageVO const data = formData.value as unknown as StorageApi.StorageVO
if (num == 2) { if (num == 2) {
formData.value.active = 'SUBMIT'
// //
await formRef.value.validate() await formRef.value.validate()
if (formData.value.matItemDOList.length === 0) { if (formData.value.matItemDOList.length === 0) {
@ -779,6 +780,7 @@ const handleStatus = async (num) => {
await saveFormData() await saveFormData()
data.outbound = useUserStore().getUser.id data.outbound = useUserStore().getUser.id
} else { } else {
formData.value.active = 'CANCEL'
await StorageApi.updateStorage(data) await StorageApi.updateStorage(data)
data.cancel = useUserStore().getUser.id data.cancel = useUserStore().getUser.id
commonResult = 'common.updateSuccess' commonResult = 'common.updateSuccess'
@ -912,7 +914,9 @@ var commonResult = ''
/** 提交表单 */ /** 提交表单 */
const emit = defineEmits(['success']) // success const emit = defineEmits(['success']) // success
const saveFormData = async () => { const saveFormData = async (active, status) => {
formData.value.active = active
formData.value.status = status
// //
formLoading.value = true formLoading.value = true
try { try {
@ -945,73 +949,6 @@ const saveFormData = async () => {
formLoading.value = false formLoading.value = false
} }
} }
const submitForm = async () => {
//
await formRef.value.validate()
var repeatItem = []
formData.value.matItemDOList.forEach((item) => {
if (
formData.value.matItemDOList.filter((mat) => mat.matId == item.matId)
.length > 1
) {
var tmpCode = '[' + item.matCode + ']'
if (repeatItem.indexOf(tmpCode) < 0) {
repeatItem.push(tmpCode)
}
}
})
if (repeatItem.length > 0) {
message.alertWarning(
'物料编码' + repeatItem.join(',') + '出库库位存在多行数据,请修改,避免重复出库'
)
return
}
// if (formData.value.matItemDOList.length === 0) {
// message.alertWarning('!')
// return
// }
//
try {
await matSubFormRef.value.validate()
} catch (e) {
return
}
//
const matCurrentData = await StorageMatApi.getStorageMatList(0)
var hasRestNum = true
formData.value.matItemDOList.forEach((rest) => {
if (
matCurrentData.find(
(mat) =>
mat.matId == rest.matId &&
mat.matRest < Number(rest.storageOkQty)
) !== undefined ||
rest.storageOkQty.length == 0
) {
hasRestNum = false
}
})
if (!hasRestNum) {
message.alertWarning('物料库存不足')
return
}
// //
// await message.confirm('?')
//
await saveFormData()
//
query.id = formData.value.id
query.type = 'update'
if (sumbefore.value == 0) {
reload()
}
}
// //
@ -1041,12 +978,6 @@ const getMatList = async (name) => {
const dataMat = await MaterialApi.getMaterialPage(matParams) const dataMat = await MaterialApi.getMaterialPage(matParams)
matList.value = dataMat.list matList.value = dataMat.list
// matList.value = dataMat.list.filter(
// (item) =>
// matLastRemoteData.find(
// (fish) => fish.matId === item.id && fish.whId == formData.value.whId
// ) !== undefined
// )
} }

Loading…
Cancel
Save