Merge remote-tracking branch 'origin/master'

master
anthonywj 2 years ago
commit e963f74448

@ -0,0 +1,130 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.inv.InvMAOrderEntity;
import com.glxp.api.req.inv.FilterInvMAOrderRequest;
import com.glxp.api.res.inv.InvMAOrderResponse;
import com.glxp.api.service.inv.InvMAOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
*
*/
@Slf4j
@RestController
public class InvMAOrderController {
@Resource
private InvMAOrderService invMAOrderService;
/**
*
*
* @param filterInvMAOrderRequest
* @return
*/
@GetMapping("/inv/MA/order/filterList")
public BaseResponse filterList(FilterInvMAOrderRequest filterInvMAOrderRequest) {
List<InvMAOrderResponse> list = invMAOrderService.filterList(filterInvMAOrderRequest);
PageInfo<InvMAOrderResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param invMAOrderEntity
* @param bindingResult
* @return
*/
@PostMapping("/inv/MA/order/addOrder")
public BaseResponse addOrder(@RequestBody InvMAOrderEntity invMAOrderEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
return invMAOrderService.addOrder(invMAOrderEntity);
}
/**
*
*
* @param invMaintenanceOrder
* @param bindingResult
* @return
*/
@PostMapping("/inv/MA/order/update")
public BaseResponse update(@RequestBody InvMAOrderEntity invMAOrderEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == invMAOrderEntity || StrUtil.isBlank(invMAOrderEntity.getOrderId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!");
}
return invMAOrderService.update(invMAOrderEntity);
}
/**
*
*
* @return
*/
@PostMapping("/inv/MA/order/submitAudit")
public BaseResponse submitAudit(@RequestBody FilterInvMAOrderRequest filterInvMAOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == filterInvMAOrderRequest || null == filterInvMAOrderRequest.getId()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空");
}
return invMAOrderService.submitAudit(filterInvMAOrderRequest.getId());
}
/**
*
*
* @param filterInvMAOrderRequest
* @param bindingResult
* @return
*/
@PostMapping("/inv/MA/order/updateStatus")
public BaseResponse updateStatus(@RequestBody FilterInvMAOrderRequest filterInvMAOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == filterInvMAOrderRequest || null == filterInvMAOrderRequest.getId() || null == filterInvMAOrderRequest.getStatus()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!");
}
return invMAOrderService.updateStatus(filterInvMAOrderRequest.getId(), filterInvMAOrderRequest.getStatus());
}
/**
*
*
* @param filterInvMAOrderRequest
* @param bindingResult
* @return
*/
@PostMapping("/inv/MA/order/delete")
public BaseResponse delete(@RequestBody FilterInvMAOrderRequest filterInvMAOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == filterInvMAOrderRequest || null == filterInvMAOrderRequest.getId()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!");
}
return invMAOrderService.delete(filterInvMAOrderRequest.getId());
}
}

@ -0,0 +1,116 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.inv.InvMAOrderDetailEntity;
import com.glxp.api.req.inv.AddInvMAOrderDetailRequest;
import com.glxp.api.req.inv.FilterInvMAOrderDetailRequest;
import com.glxp.api.res.inv.InvMAOrderDetailResponse;
import com.glxp.api.service.inv.InvMAOrderDetailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
*
*/
@Slf4j
@RestController
public class InvMAOrderDetailController {
@Resource
private InvMAOrderDetailService invMAOrderDetailService;
/**
*
*
* @param filterInvMAOrderDetailRequest
* @return
*/
@GetMapping("/inv/MA/order/detail/filterList")
public BaseResponse filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest) {
List<InvMAOrderDetailResponse> list = invMAOrderDetailService.filterList(filterInvMAOrderDetailRequest);
PageInfo<InvMAOrderDetailResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param invMAOrderDetailEntity
* @param bindingResult
* @return
*/
@PostMapping("/inv/MA/order/detail/addOrderDetail")
public BaseResponse addOrderDetail(@RequestBody InvMAOrderDetailEntity invMAOrderDetailEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == invMAOrderDetailEntity || StrUtil.isBlank(invMAOrderDetailEntity.getCode()) || StrUtil.isBlank(invMAOrderDetailEntity.getOrderIdFk())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空");
}
return invMAOrderDetailService.addOrderDetail(invMAOrderDetailEntity);
}
/**
*
*
* @param invProductIds
* @return
*/
@PostMapping("/inv/MA/order/detail/batchAddDetail")
public BaseResponse batchAddDetail(@RequestBody AddInvMAOrderDetailRequest addMAOrderDetailRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == addMAOrderDetailRequest || CollUtil.isEmpty(addMAOrderDetailRequest.getInvProductIds()) || StrUtil.isBlank(addMAOrderDetailRequest.getOrderIdFk())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!");
}
return invMAOrderDetailService.batchAddDetail(addMAOrderDetailRequest);
}
/**
*
*
* @param filterInvMAOrderDetailRequest
* @return
*/
@PostMapping("/inv/MA/order/detail/delete")
public BaseResponse delete(@RequestBody FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == filterInvMAOrderDetailRequest || null == filterInvMAOrderDetailRequest.getId()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空");
}
return invMAOrderDetailService.delete(filterInvMAOrderDetailRequest.getId());
}
/**
*
*
* @param invMAOrderDetailEntity
* @return
*/
@PostMapping("/inv/MA/order/detail/update")
public BaseResponse update(@RequestBody InvMAOrderDetailEntity invMAOrderDetailEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == invMAOrderDetailEntity || null == invMAOrderDetailEntity.getId()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!");
}
return invMAOrderDetailService.update(invMAOrderDetailEntity);
}
}

@ -4,4 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvMAExplanationEntity;
public interface InvMAExplanationDao extends BaseMapper<InvMAExplanationEntity> {
/**
*
*
* @param status
* @return
*/
InvMAExplanationEntity selectByStatus(int status);
}

@ -2,6 +2,18 @@ package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvMAOrderEntity;
import com.glxp.api.req.inv.FilterInvMAOrderRequest;
import com.glxp.api.res.inv.InvMAOrderResponse;
import java.util.List;
public interface InvMAOrderDao extends BaseMapper<InvMAOrderEntity> {
/**
* VO
*
* @param filterInvMAOrderRequest
* @return
*/
List<InvMAOrderResponse> filterList(FilterInvMAOrderRequest filterInvMAOrderRequest);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvMAOrderDetailEntity;
import com.glxp.api.req.inv.FilterInvMAOrderDetailRequest;
import com.glxp.api.res.inv.InvMAOrderDetailResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -16,4 +17,14 @@ public interface InvMAOrderDetailDao extends BaseMapper<InvMAOrderDetailEntity>
* @return
*/
List<InvMAOrderDetailResponse> filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest);
/**
*
*
* @param orderIdFk
* @param code
* @return
*/
InvMAOrderDetailEntity selectByOrderIdAndCode(@Param("orderIdFk") String orderIdFk, @Param("code") String code);
}

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
*/
@ -35,7 +37,7 @@ public class InvMAOrderDetailEntity {
* ID
*/
@TableField(value = "relId")
private String relId;
private Long relId;
/**
* DI
@ -71,25 +73,25 @@ public class InvMAOrderDetailEntity {
* 0 1
*/
@TableField(value = "maStatus")
private Boolean maStatus;
private Integer maStatus;
/**
* 0 1
*/
@TableField(value = "deviceStatus")
private Boolean deviceStatus;
private Integer deviceStatus;
/**
*
*/
@TableField(value = "createTime")
private String createTime;
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
private String updateTime;
private Date updateTime;
/**
*

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
*/
@ -37,25 +39,25 @@ public class InvMAOrderEntity {
* 0稿 1 2
*/
@TableField(value = "`status`")
private Boolean status;
private Integer status;
/**
*
*/
@TableField(value = "createTime")
private String createTime;
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
private String updateTime;
private Date updateTime;
/**
*
*/
@TableField(value = "auditTime")
private String auditTime;
private Date auditTime;
/**
*

@ -1,10 +1,13 @@
package com.glxp.api.req.inv;
import lombok.Data;
import java.util.List;
/**
*
*/
@Data
public class AddInvMAOrderDetailRequest {
/**
@ -17,5 +20,4 @@ public class AddInvMAOrderDetailRequest {
*/
List<String> invProductIds;
}

@ -75,4 +75,14 @@ public class FilterInvProductDetailRequest extends ListPageRequest {
*
*/
private String updateTime;
/**
*
*/
private String productionDate;
/**
*
*/
private String expireDate;
}

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.util.Date;
/**
*
*/
@ -26,7 +28,7 @@ public class InvMAOrderDetailResponse {
/**
* ID
*/
private String relId;
private Long relId;
/**
* DI
@ -56,22 +58,22 @@ public class InvMAOrderDetailResponse {
/**
* 0 1
*/
private Boolean maStatus;
private Integer maStatus;
/**
* 0 1
*/
private Boolean deviceStatus;
private Integer deviceStatus;
/**
*
*/
private String createTime;
private Date createTime;
/**
*
*/
private String updateTime;
private Date updateTime;
/**
*

@ -2,6 +2,8 @@ package com.glxp.api.res.inv;
import lombok.Data;
import java.util.Date;
/**
*
*/
@ -28,22 +30,22 @@ public class InvMAOrderResponse {
/**
* 0稿 1 2
*/
private Boolean status;
private Integer status;
/**
*
*/
private String createTime;
private Date createTime;
/**
*
*/
private String updateTime;
private Date updateTime;
/**
*
*/
private String auditTime;
private Date auditTime;
/**
*
@ -61,13 +63,23 @@ public class InvMAOrderResponse {
private String remark;
/**
*
*
*/
private String invWarehouseName;
private String invName;
/**
*
*/
private String invSpaceName;
/**
*
*/
private String createUserName;
/**
*
*/
private String auditUserName;
}

@ -1,20 +1,29 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.inv.*;
import com.glxp.api.entity.inv.InvMAOrderDetailEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.inv.*;
import com.glxp.api.req.inv.AddInvMAOrderDetailRequest;
import com.glxp.api.req.inv.FilterInvMAOrderDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvMAOrderDetailResponse;
import com.glxp.api.service.inv.InvMAOrderDetailService;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -45,21 +54,150 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
@Override
public BaseResponse addOrderDetail(InvMAOrderDetailEntity invMAOrderDetailEntity) {
return null;
//解析条码
UdiEntity udi = FilterUdiUtils.getUdi(invMAOrderDetailEntity.getCode());
//查询此条码是否重复
InvMAOrderDetailEntity maintenanceOrderDetailEntity = invMAOrderDetailDao.selectByOrderIdAndCode(invMAOrderDetailEntity.getOrderIdFk(), invMAOrderDetailEntity.getCode());
//查询养护说明
InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1);
if (null != maintenanceOrderDetailEntity) {
if (StrUtil.isBlank(udi.getSerialNo()) || (StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo()))) {
maintenanceOrderDetailEntity.setCount(maintenanceOrderDetailEntity.getCount() + 1);
maintenanceOrderDetailEntity.setUpdateTime(new Date());
invMAOrderDetailDao.updateById(maintenanceOrderDetailEntity);
} else {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "条码重复!");
}
} else {
//查询养护记录信息
InvMAOrderEntity maOrder = invMAOrderDao.selectOne(new QueryWrapper<InvMAOrderEntity>().eq("orderId", invMAOrderDetailEntity.getOrderIdFk()));
//查询此产品库存详情是否存在
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setCode(invMAOrderDetailEntity.getCode());
filterInvProductDetailRequest.setBatchNo(udi.getBatchNo());
filterInvProductDetailRequest.setInvCode(maOrder.getInvCode());
filterInvProductDetailRequest.setInvSpaceCode(maOrder.getInvSpaceCode());
filterInvProductDetailRequest.setProductionDate(udi.getProduceDate());
filterInvProductDetailRequest.setExpireDate(udi.getExpireDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
log.info("库存中存在,添加到库存养护记录详情中");
//设置养护状态为未养护
invMAOrderDetailEntity.setMaStatus(0);
//设置设备养护状态为正常
invMAOrderDetailEntity.setDeviceStatus(1);
invMAOrderDetailEntity.setCount(1);
invMAOrderDetailEntity.setBatchNo(udi.getBatchNo());
invMAOrderDetailEntity.setProductionDate(udi.getProduceDate());
invMAOrderDetailEntity.setExpireDate(udi.getExpireDate());
invMAOrderDetailEntity.setNameCode(udi.getUdi());
invMAOrderDetailEntity.setRelId(invProductDetailEntities.get(0).getRelId());
if (null != invMAExplanationEntity) {
invMAOrderDetailEntity.setRemark(invMAExplanationEntity.getText());
}
invMAOrderDetailEntity.setCreateTime(new Date());
invMAOrderDetailDao.insert(invMAOrderDetailEntity);
} else {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "当前仓库中不存在此产品,无法进行养护!");
}
}
return ResultVOUtils.success("添加库存养护详情成功!");
}
@Override
public BaseResponse delete(Integer id) {
return null;
InvMAOrderDetailEntity invMAOrderDetailEntity = invMAOrderDetailDao.selectById(id);
if (invMAOrderDetailEntity.getCount() > 1) {
invMAOrderDetailEntity.setCount(invMAOrderDetailEntity.getCount() - 1);
invMAOrderDetailDao.updateById(invMAOrderDetailEntity);
} else {
//养护数量为0直接删除养护记录详情
invMAOrderDetailDao.deleteById(id);
}
return ResultVOUtils.success();
}
@Override
public BaseResponse batchAddDetail(AddInvMAOrderDetailRequest addMAOrderDetailRequest) {
return null;
//查询库存养护记录说明
InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1);
//遍历库存ID查找库存详情的条码信息生成库存养护记录详情
addMAOrderDetailRequest.getInvProductIds().forEach(invProductId -> {
//查询库存信息
InvProductEntity invProductEntity = invProductDao.selectById(invProductId);
//查询库存详情码信息
FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest();
detailRequest.setRelId(String.valueOf(invProductEntity.getRelIdFk()));
detailRequest.setBatchNo(invProductEntity.getBatchNo());
detailRequest.setDeptCode(invProductEntity.getDeptCode());
detailRequest.setInvCode(invProductEntity.getInvCode());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(detailRequest);
//提取去重后的码集合
List<String> codeList = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).distinct().collect(Collectors.toList());
//初始化码数量计算集合数据
Map<String, Integer> codeMap = new HashMap<>(codeList.size());
codeList.forEach(code -> codeMap.put(code, 0));
//计算当前在库存中的码明细
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
if (StrUtil.isNotBlank(udi.getSerialNo())) {
//有序列号产品,根据产品数量计算即可
Integer count = codeMap.get(invProductDetailEntity.getCode());
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
//出库
count = count - 1;
} else {
//入库
count = count + 1;
}
codeMap.put(invProductDetailEntity.getCode(), count);
} else {
//无序列号产品条码,直接查询库存,使用此库存信息计算出养护数量
int count = invProductEntity.getInCount() - invProductEntity.getOutCount();
codeMap.put(invProductDetailEntity.getCode(), count);
}
}
//根据库存中的码明细,生成库存养护记录详情
for (String code : codeMap.keySet()) {
if (codeMap.get(code) > 0) {
//获取库存详情
InvProductDetailEntity invProductDetailEntity = null;
for (InvProductDetailEntity detailEntity : invProductDetailEntities) {
if (detailEntity.getCode().equals(code)) {
invProductDetailEntity = detailEntity;
break;
}
}
//生成库存养护记录详情
InvMAOrderDetailEntity maOrderDetail = new InvMAOrderDetailEntity();
maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk());
maOrderDetail.setCode(invProductDetailEntity.getCode());
maOrderDetail.setRelId(invProductDetailEntity.getRelId());
UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
maOrderDetail.setNameCode(udi.getUdi());
maOrderDetail.setProductionDate(udi.getProduceDate());
maOrderDetail.setExpireDate(udi.getExpireDate());
maOrderDetail.setBatchNo(udi.getBatchNo());
maOrderDetail.setCount(codeMap.get(code));
maOrderDetail.setMaStatus(0);
maOrderDetail.setDeviceStatus(1);
maOrderDetail.setCreateTime(new Date());
if (null != invMAExplanationEntity) {
maOrderDetail.setRemark(invMAExplanationEntity.getText());
}
invMAOrderDetailDao.insert(maOrderDetail);
}
}
});
return ResultVOUtils.success("添加成功");
}
@Override
public BaseResponse update(InvMAOrderDetailEntity invMAOrderDetailEntity) {
return null;
invMAOrderDetailEntity.setUpdateTime(new Date());
invMAOrderDetailDao.updateById(invMAOrderDetailEntity);
return ResultVOUtils.success("更新成功!");
}
}

@ -1,14 +1,30 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.dao.inv.InvMAOrderDao;
import com.glxp.api.dao.inv.InvMAOrderDetailDao;
import com.glxp.api.entity.inv.InvMAOrderDetailEntity;
import com.glxp.api.entity.inv.InvMAOrderEntity;
import com.glxp.api.req.inv.FilterInvMAOrderRequest;
import com.glxp.api.res.inv.InvMAOrderResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.inv.InvMAOrderService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Slf4j
@ -16,35 +32,101 @@ import java.util.List;
@Transactional(rollbackFor = Exception.class)
public class InvMAOrderServiceImpl implements InvMAOrderService {
@Resource
private GennerOrderUtils gennerOrderUtils;
@Resource
private CustomerService customerService;
@Resource
private InvMAOrderDao invMAOrderDao;
@Resource
private InvMAOrderDetailDao invMAOrderDetailDao;
@Override
public List<InvMAOrderResponse> filterList(FilterInvMAOrderRequest filterInvMAOrderRequest) {
return null;
if (null == filterInvMAOrderRequest) {
return Collections.emptyList();
}
if (null != filterInvMAOrderRequest.getPage() && null != filterInvMAOrderRequest.getLimit()) {
PageHelper.offsetPage((filterInvMAOrderRequest.getPage() - 1) * filterInvMAOrderRequest.getLimit(), filterInvMAOrderRequest.getLimit());
}
return invMAOrderDao.filterList(filterInvMAOrderRequest);
}
@Override
public BaseResponse addOrder(InvMAOrderEntity invMAOrderEntity) {
return null;
if (null == invMAOrderEntity || StrUtil.isBlank(invMAOrderEntity.getInvCode())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!");
}
//生成养护记录
//生成单据号
invMAOrderEntity.setOrderId(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.MA_ORDER, "yyyyMMdd")));
//创建时间
invMAOrderEntity.setCreateTime(new Date());
//创建人
String createUser = customerService.getUserBean().getUserName();
invMAOrderEntity.setCreateUser(createUser);
//设置状态为草稿
invMAOrderEntity.setStatus(0);
invMAOrderDao.insert(invMAOrderEntity);
return ResultVOUtils.success(invMAOrderEntity);
}
@Override
public BaseResponse update(InvMAOrderEntity invMAOrderEntity) {
return null;
//查找此单据是否存在
InvMAOrderEntity maintenanceOrder = invMAOrderDao.selectOne(new QueryWrapper<InvMAOrderEntity>().eq("orderId", invMAOrderEntity.getOrderId()));
if (null == maintenanceOrder) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "此单据不存在!");
}
//复制新数据
BeanUtil.copyProperties(invMAOrderEntity, maintenanceOrder, "id", "createTime", "createUser");
maintenanceOrder.setUpdateTime(new Date());
invMAOrderDao.updateById(maintenanceOrder);
return ResultVOUtils.success("更新成功");
}
@Override
public BaseResponse submitAudit(Integer id) {
return null;
InvMAOrderEntity maOrder = invMAOrderDao.selectById(id);
if (null == maOrder) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "此记录不存在!");
}
if (maOrder.getStatus() != 0) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "此记录已提交审核,请勿重复提交!");
}
//查询此养护记录是否添加详情
Long count = invMAOrderDetailDao.selectCount(new QueryWrapper<InvMAOrderDetailEntity>().eq("orderIdFk", maOrder.getOrderId()));
if (count == 0) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "请添加养护产品!");
}
maOrder.setStatus(1);
maOrder.setUpdateTime(new Date());
invMAOrderDao.updateById(maOrder);
return ResultVOUtils.success("提交成功");
}
@Override
public BaseResponse updateStatus(Integer id, Integer status) {
return null;
InvMAOrderEntity maOrder = invMAOrderDao.selectById(id);
if (null == maOrder || maOrder.getStatus() != 1) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
maOrder.setStatus(status);
maOrder.setAuditTime(new Date());
maOrder.setUpdateTime(new Date());
invMAOrderDao.updateById(maOrder);
return ResultVOUtils.success("更新成功");
}
@Override
public BaseResponse delete(Integer id) {
return null;
InvMAOrderEntity maOrder = invMAOrderDao.selectById(id);
if (null == maOrder) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "此记录不存在!");
}
//删除养护记录和详情
invMAOrderDao.deleteById(id);
invMAOrderDetailDao.delete(new QueryWrapper<InvMAOrderDetailEntity>().eq("orderIdFk", maOrder.getOrderId()));
return ResultVOUtils.success("删除成功");
}
}

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.InvMAExplanationDao">
<select id="selectByStatus" resultType="com.glxp.api.entity.inv.InvMAExplanationEntity">
select *
from inv_ma_explanation
where status = #{status}
</select>
</mapper>

@ -1,5 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.InvMAOrderDao">
<select id="filterList" resultType="com.glxp.api.res.inv.InvMAOrderResponse">
select ma.id,
ma.orderId,
ma.invCode,
ma.invSpaceCode,
ma.status,
ma.createTime,
ma.updateTime,
ma.auditTime,
ma.createUser,
ma.auditUser,
(select name from auth_user where id = ma.createUser) createUserName,
(select name from auth_user where id = ma.auditUser) auditUserName,
ma.remark,
auth_warehouse.name invName,
auth_space.name invSpaceName
from inv_ma_order ma
left join auth_warehouse on ma.invCode = auth_warehouse.code
left join auth_space
on ma.invSpaceCode = auth_space.code and auth_warehouse.code = auth_space.invWarehouseCode
<where>
<if test="id != null">
AND ma.id = #{id}
</if>
<if test="orderId != null and orderId != ''">
AND ma.orderId = #{orderId}
</if>
<if test="invCode != null and invCode != ''">
AND ma.invCode = #{invCode}
</if>
<if test="invSpaceCode != null and invSpaceCode != ''">
AND ma.invSpaceCode = #{invSpaceCode}
</if>
<if test="status != null">
AND ma.status = #{status}
</if>
</where>
order by ma.updateTime desc
</select>
</mapper>

@ -2,6 +2,44 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.InvMAOrderDetailDao">
<select id="filterList" resultType="com.glxp.api.res.inv.InvMAOrderDetailResponse">
SELECT mad.id,
mad.orderIdFk,
mad.CODE,
mad.relId,
mad.nameCode,
mad.batchNo,
mad.productionDate,
mad.expireDate,
mad.count,
mad.maStatus,
mad.deviceStatus,
mad.remark,
mad.createTime,
mad.updateTime,
basic_products.cpmctymc productName,
basic_products.ggxh,
basic_products.zczbhhzbapzbh,
basic_products.ylqxzcrbarmc
FROM inv_ma_order_detail mad
left join inv_ma_order ma on mad.orderIdFk = ma.orderId
LEFT JOIN basic_udirel ON mad.relId = basic_udirel.id
LEFT JOIN basic_products ON basic_products.uuid = basic_udirel.uuid
left join inv_product_detail ipd on ipd.relId = mad.relId
and ipd.invCode = ma.invCode and ipd.invSpaceCode = ma.invSpaceCode
left join inv_product ip on ipd.relId = ip.relIdFk and ip.batchNo = ipd.batchNo
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND mad.orderIdFk = #{orderIdFk}
</if>
</where>
group by mad.code
</select>
<select id="selectByOrderIdAndCode" resultType="com.glxp.api.entity.inv.InvMAOrderDetailEntity">
select *
from inv_ma_order_detail
where orderIdFk = #{orderIdFk}
and code = #{code}
limit 1
</select>
</mapper>

@ -44,6 +44,12 @@
<if test="batchNo == 'empty'">
AND batchNo is null
</if>
<if test="productionDate != null and productionDate != ''">
AND produceDate = #{productionDate}
</if>
<if test="expireDate != null and expireDate != ''">
AND expireDate = #{expireDate}
</if>
<if test="productIdList != null and productIdList.size() != 0">
AND relId in
<foreach collection="productIdList" item="item" index="index" open="(" close=")" separator=",">

Loading…
Cancel
Save