1.添加库存养护记录详情接口

feature-order-fix
x_z 2 years ago
parent 86367efddd
commit fdc7adb9f3

@ -1,14 +1,20 @@
package com.glxp.api.admin.controller.inventory;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest;
import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse;
import com.glxp.api.admin.service.inventory.InvMAOrderDetailService;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
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;
@ -40,5 +46,59 @@ public class InvMAOrderDetailController {
return ResultVOUtils.success();
}
/**
*
*
* @param invMaintenanceOrderDetailEntity
* @param bindingResult
* @return
*/
@PostMapping("/inv/MA/order/detail/addOrderDetail")
public BaseResponse addOrderDetail(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (null == invMaintenanceOrderDetailEntity || StrUtil.isBlank(invMaintenanceOrderDetailEntity.getCode()) || StrUtil.isBlank(invMaintenanceOrderDetailEntity.getOrderIdFk())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空");
}
return invMAOrderDetailService.addOrderDetail(invMaintenanceOrderDetailEntity);
}
/**
*
*
* @param invProductIds
* @return
*/
@PostMapping("/inv/MA/order/detail/batchAddDetail")
public BaseResponse batchAddDetail(@RequestBody List<String> invProductIds, BindingResult bindingResult) {
return ResultVOUtils.success();
}
/**
*
*
* @param filterInvMAOrderDetailRequest
* @return
*/
@PostMapping("/inv/MA/order/detail/delete")
public BaseResponse delete(@RequestBody FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest, BindingResult bindingResult) {
return ResultVOUtils.success();
}
/**
*
*
* @param invMaintenanceOrderDetailEntity
* @return
*/
@PostMapping("/inv/MA/order/detail/delete")
public BaseResponse update(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) {
return ResultVOUtils.success();
}
}

@ -1,8 +1,12 @@
package com.glxp.api.admin.dao.inventory;
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest;
import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface InvMaintenanceOrderDetailDao {
int deleteByPrimaryKey(Integer id);
@ -31,4 +35,21 @@ public interface InvMaintenanceOrderDetailDao {
* @return
*/
Long countByOrderId(@Param("orderId") String orderId);
/**
*
*
* @param filterInvMAOrderDetailRequest
* @return
*/
List<InvMAOrderDetailResponse> filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest);
/**
*
*
* @param orderIdFk
* @param code
* @return
*/
InvMaintenanceOrderDetailEntity selectByOrderIdAndCode(@Param("orderIdFk") String orderIdFk, @Param("code") String code);
}

@ -1,7 +1,9 @@
package com.glxp.api.admin.service.inventory;
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest;
import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse;
import com.glxp.api.common.res.BaseResponse;
import java.util.List;
@ -17,4 +19,13 @@ public interface InvMAOrderDetailService {
* @return
*/
List<InvMAOrderDetailResponse> filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest);
/**
*
*
* @param invMaintenanceOrderDetailEntity
* @return
*/
BaseResponse addOrderDetail(InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity);
}

@ -1,9 +1,23 @@
package com.glxp.api.admin.service.inventory.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.admin.dao.inventory.InvMaintenanceOrderDao;
import com.glxp.api.admin.dao.inventory.InvMaintenanceOrderDetailDao;
import com.glxp.api.admin.dao.inventory.InvProductDetailDao;
import com.glxp.api.admin.entity.basic.UdiEntity;
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderEntity;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest;
import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest;
import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse;
import com.glxp.api.admin.service.inventory.InvMAOrderDetailService;
import com.glxp.api.admin.util.FilterUdiUtils;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -19,12 +33,61 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
@Resource
private InvMaintenanceOrderDetailDao invMAOrderDetailDao;
@Resource
private InvMaintenanceOrderDao invMaintenanceOrderDao;
@Resource
private InvProductDetailDao invProductDetailDao;
@Override
public List<InvMAOrderDetailResponse> filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest) {
if (null == filterInvMAOrderDetailRequest) {
return Collections.emptyList();
}
return null;
if (null == filterInvMAOrderDetailRequest.getPage() && null == filterInvMAOrderDetailRequest.getLimit()) {
PageHelper.offsetPage((filterInvMAOrderDetailRequest.getPage() - 1) * filterInvMAOrderDetailRequest.getLimit(), filterInvMAOrderDetailRequest.getLimit());
}
return invMAOrderDetailDao.filterList(filterInvMAOrderDetailRequest);
}
@Override
public BaseResponse addOrderDetail(InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity) {
//解析条码
UdiEntity udi = FilterUdiUtils.getUdi(invMaintenanceOrderDetailEntity.getCode());
//查询此条码是否重复
InvMaintenanceOrderDetailEntity maintenanceOrderDetailEntity = invMAOrderDetailDao.selectByOrderIdAndCode(invMaintenanceOrderDetailEntity.getOrderIdFk(), invMaintenanceOrderDetailEntity.getCode());
if (null != maintenanceOrderDetailEntity) {
if (StrUtil.isBlank(udi.getSerialNo()) || (StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo()))) {
maintenanceOrderDetailEntity.setCount(maintenanceOrderDetailEntity.getCount() + 1);
invMAOrderDetailDao.updateByPrimaryKey(maintenanceOrderDetailEntity);
} else {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "条码重复!");
}
}
//查询养护记录信息
InvMaintenanceOrderEntity maOrder = invMaintenanceOrderDao.selectByOrderId(invMaintenanceOrderDetailEntity.getOrderIdFk());
//查询此产品库存详情是否存在
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOriginCode(invMaintenanceOrderDetailEntity.getCode());
filterInvProductDetailRequest.setBatchNo(udi.getBatchNo());
filterInvProductDetailRequest.setInvWarehouseCode(maOrder.getInvWarehouseCode());
filterInvProductDetailRequest.setInvSpaceCode(maOrder.getInvSpaceCode());
filterInvProductDetailRequest.setProductionDate(udi.getProduceDate());
filterInvProductDetailRequest.setExpireDate(udi.getExpireDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
log.info("库存中存在,添加到库存养护记录详情中");
//设置养护状态为未养护
invMaintenanceOrderDetailEntity.setMaintenanceStatus(0);
//设置设备养护状态为正常
invMaintenanceOrderDetailEntity.setDeviceStatus(1);
invMaintenanceOrderDetailEntity.setCount(1);
invMaintenanceOrderDetailEntity.setBatchNo(udi.getBatchNo());
invMaintenanceOrderDetailEntity.setProduceDate(udi.getProduceDate());
invMaintenanceOrderDetailEntity.setExpireDate(udi.getExpireDate());
invMaintenanceOrderDetailEntity.setNameCode(udi.getUdi());
invMaintenanceOrderDetailEntity.setProductId(invProductDetailEntities.get(0).getProductIdFk());
invMAOrderDetailDao.insert(invMaintenanceOrderDetailEntity);
}
return ResultVOUtils.success("添加库存养护详情成功!");
}
}

@ -199,4 +199,36 @@
from inv_maintenance_order_detail
where orderIdFk = #{orderId}
</select>
<select id="filterList" resultType="com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse">
select mad.id,
orderIdFk,
code,
productId,
nameCode,
batchNo,
produceDate,
expireDate,
count,
maintenanceStatus,
deviceStatus,
remark,
basic_products.cpmctymc productName
from inv_maintenance_order_detail mad
left join basic_udirel on mad.productId = basic_udirel.id
left join basic_products on basic_products.uuid = basic_udirel.uuid
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND orderIdFk = #{orderIdFk}
</if>
</where>
</select>
<select id="selectByOrderIdAndCode" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from inv_maintenance_order_detail
where orderIdFk = #{orderIdFk}
and code = #{code}
</select>
</mapper>

@ -14,9 +14,6 @@ CREATE TABLE `inv_maintenance_order` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '养护记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for inv_maintenance_order_detail
-- ----------------------------
DROP TABLE IF EXISTS `inv_maintenance_order_detail`;
CREATE TABLE `inv_maintenance_order_detail` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',

Loading…
Cancel
Save