拆零损耗出库

workplace
yewj 10 months ago
parent 30aba260ec
commit 7a01a5c5ae

@ -132,5 +132,22 @@ public class IoFifoDesOrderController extends BaseController {
return ResultVOUtils.success("损耗出库成功");
}
/**
*
*
* @param addInvDesDetaiRequest
* @param bindingResult
* @return
*/
@PostMapping("/udiwms/collect/split/desOrder/destroyOut")
public BaseResponse splitDestoryOut(@RequestBody AddInvDesDetaiRequest addInvDesDetaiRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
splitDesOrderService.splitDesOrder(addInvDesDetaiRequest);
return ResultVOUtils.success("损耗出库成功");
}
}

@ -12,6 +12,7 @@ import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoSplitDesOrder;
import com.glxp.api.entity.collect.IoSplitDesOrderCode;
import com.glxp.api.entity.collect.IoSplitDesOrderDetail;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoInv;
import com.glxp.api.exception.JsonException;
@ -19,11 +20,13 @@ import com.glxp.api.req.collect.AddInvDesDetaiRequest;
import com.glxp.api.req.collect.IoSplitDesOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.IoSplitDesOrderResponse;
import com.glxp.api.service.inout.IoSplitCodeService;
import com.glxp.api.service.inout.IoSplitFifoCodeService;
import com.glxp.api.service.inout.IoSplitFifoInvService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.OrderNoTypeBean;
import okhttp3.internal.http2.ErrorCode;
import org.apache.poi.ss.formula.functions.Offset;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -142,6 +145,9 @@ public class IoSplitDesOrderService extends ServiceImpl<IoSplitDesOrderMapper, I
@Resource
IoSplitFifoInvService ioSplitFifoInvService;
@Resource
IoSplitCodeService splitCodeService;
@Transactional(rollbackFor = Exception.class)
public Boolean destroyOut(AddInvDesDetaiRequest addInvDesDetaiRequest) {
@ -199,4 +205,39 @@ public class IoSplitDesOrderService extends ServiceImpl<IoSplitDesOrderMapper, I
}
return true;
}
public void splitDesOrder(AddInvDesDetaiRequest addInvDesDetaiRequest) {
IoSplitDesOrder collectOrder;
if (StrUtil.isNotEmpty(addInvDesDetaiRequest.getBillNo())) {
collectOrder = getByBillNo(addInvDesDetaiRequest.getBillNo());
} else {
collectOrder = IoSplitDesOrder.builder()
.billNo(gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd")))
.busType("1")
.workPlaceCode(addInvDesDetaiRequest.getWorkPlaceCode())
.createTime(new Date())
.billTime(new Date())
.remark(addInvDesDetaiRequest.getRemark())
.status(1)
.createUser(addInvDesDetaiRequest.getCreateUser())
.updateTime(new Date())
.updateUser(addInvDesDetaiRequest.getUpdateUser())
.build();
save(collectOrder);
}
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(addInvDesDetaiRequest.getCode(), addInvDesDetaiRequest.getWorkPlaceCode(), null);
if (splitCodeEntity == null) {
throw new RuntimeException("该追溯码不存在!");
}
int count = IntUtil.value(splitCodeEntity.getRemainCount()) - IntUtil.value(addInvDesDetaiRequest.getOutCount());
if (count < 0) {
if (splitCodeEntity == null) {
throw new RuntimeException("存量不足!");
}
}
splitCodeEntity.setRemainCount(count);
splitCodeService.updateById(splitCodeEntity);
}
}

@ -41,7 +41,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
IoSplitFifoCodeService splitFifoCodeService;
@Resource
BasicSkPrescribeService basicSkPrescribeService;
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
public List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest) {
if (splitCodeRequest == null) {
@ -55,7 +60,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
public List<IoSplitCodeEntity> findSplitCodes(Long relId, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getRelId, relId)
@ -65,6 +69,16 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return ioSplitCodeEntities;
}
public IoSplitCodeEntity findByCode(String code, Long workPlaceCode, String busType) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getCode, code)
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
if (CollUtil.isNotEmpty(ioSplitCodeEntities))
return ioSplitCodeEntities.get(0);
return null;
}
/**
*
@ -138,12 +152,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
basicSkPrescribeService.updateById(basicSkPrescribeEntity);
}
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
/**
*

Loading…
Cancel
Save