盘点相关功能

test
anthonywj 2 years ago
parent b626d39d0d
commit 0074c56c9d

@ -569,17 +569,15 @@ public class InvWarehouseController extends BaseController {
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@GetMapping("/udiwms/bussinessType/joinFilter") @GetMapping("/udiwms/bussinessType/joinFilter")
public BaseResponse filterJoinBussinessType(BussinessTypeFilterRequest bussinessTypeFilterRequest, public BaseResponse filterJoinBussinessType(FilterBussinessTypeRequest bussinessTypeFilterRequest,
BindingResult bindingResult) { BindingResult bindingResult) {
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
} }
if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getIds())) { List<BasicBussinessTypeResponse> list = basicBussinessTypeService.filterList(bussinessTypeFilterRequest);
List<String> idList = new ArrayList<>(Arrays.asList(bussinessTypeFilterRequest.getIds().split(","))); PageInfo<BasicBussinessTypeResponse> pageInfo = new PageInfo<>(list);
bussinessTypeFilterRequest.setActionList(idList); return ResultVOUtils.page(pageInfo);
}
return null;
} }
@AuthRuleAnnotation("") @AuthRuleAnnotation("")

@ -1,7 +1,10 @@
package com.glxp.api.controller.inv; package com.glxp.api.controller.inv;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log; import com.glxp.api.annotation.Log;
@ -9,22 +12,29 @@ import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.BusinessType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.inv.InvCountOrderEntity; import com.glxp.api.entity.inv.InvCountOrderEntity;
import com.glxp.api.entity.system.SystemPDFModuleEntity; import com.glxp.api.entity.system.SystemPDFModuleEntity;
import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.req.inout.InspectionPDFTemplateRequest; import com.glxp.api.req.inout.InspectionPDFTemplateRequest;
import com.glxp.api.req.inout.SystemPDFModuleRequest; import com.glxp.api.req.inout.SystemPDFModuleRequest;
import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest;
import com.glxp.api.req.inv.FilterInvCountOrderRequest; import com.glxp.api.req.inv.FilterInvCountOrderRequest;
import com.glxp.api.req.inv.FilterInvCountOrderSaveRequest; import com.glxp.api.req.inv.FilterInvCountOrderSaveRequest;
import com.glxp.api.req.inv.InvCountOrderPrintRequest; import com.glxp.api.req.inv.InvCountOrderPrintRequest;
import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.req.system.FilterPdfModuleRequest; import com.glxp.api.req.system.FilterPdfModuleRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.ReceiveDetailResponse;
import com.glxp.api.res.inv.InvCountOrderDetailResponse;
import com.glxp.api.res.inv.InvCountOrderResponse; import com.glxp.api.res.inv.InvCountOrderResponse;
import com.glxp.api.service.inv.InvCountOrderDetailService;
import com.glxp.api.service.inv.InvCountOrderService; import com.glxp.api.service.inv.InvCountOrderService;
import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFModuleService;
import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.service.system.SystemPDFTemplateService;
import com.glxp.api.util.JasperUtils; import com.glxp.api.util.JasperUtils;
import com.glxp.api.util.MsDateUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -35,19 +45,21 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Arrays; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* *
*/ */
@RestController @RestController
public class InvCountOrderController { public class InvCountOrderController extends BaseController {
@Value("${file_path}")
private String filePath;
@Resource @Resource
private InvCountOrderService invCountOrderService; private InvCountOrderService invCountOrderService;
@Resource
private InvCountOrderDetailService invCountOrderDetailService;
@Resource @Resource
private SystemPDFTemplateService systemPDFTemplateService; private SystemPDFTemplateService systemPDFTemplateService;
@Resource @Resource
@ -104,16 +116,15 @@ public class InvCountOrderController {
/** /**
* *
* *
* @param id
* @return * @return
*/ */
@Log(title = "提交审核") @Log(title = "提交审核")
@GetMapping("/invCount/order/submitAudit") @PostMapping("/invCount/order/submitAudit")
public BaseResponse submitAudit(String id) { public BaseResponse submitAudit(@RequestBody InvCountOrderEntity invCountOrderEntity) {
if (StrUtil.isBlank(id)) { if (StrUtil.isBlank(invCountOrderEntity.getOrderId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
} }
return invCountOrderService.submitAudit(id); return invCountOrderService.submitAudit(invCountOrderEntity.getOrderId());
} }
/** /**
@ -159,7 +170,7 @@ public class InvCountOrderController {
} }
/** /**
* *
* *
* @param invCountOrderPrintRequest * @param invCountOrderPrintRequest
* @param request * @param request
@ -170,12 +181,47 @@ public class InvCountOrderController {
@PostMapping("/invCount/order/printOrder") @PostMapping("/invCount/order/printOrder")
public void printOrder(@RequestBody InvCountOrderPrintRequest invCountOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { public void printOrder(@RequestBody InvCountOrderPrintRequest invCountOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception {
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(invCountOrderPrintRequest.getTemplateId()); SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(invCountOrderPrintRequest.getTemplateId());
//打印单号标签 InvCountOrderResponse invCountOrderEntity = invCountOrderService.selectJoinByOrderId(invCountOrderPrintRequest.getOrderId());
FilterInvCountOrderDetailRequest filterInvCountOrderDetailRequest = new FilterInvCountOrderDetailRequest();
filterInvCountOrderDetailRequest.setOrderIdFk(invCountOrderEntity.getOrderId());
List<InvCountOrderDetailResponse> invCountOrderDetailResponses = invCountOrderDetailService.filterCountDetail(filterInvCountOrderDetailRequest);
Map<String, Object> data = new HashMap<>(1); Map<String, Object> data = new HashMap<>(1);
data.put("orderId", invCountOrderPrintRequest.getOrderId()); List<Object> list = new ArrayList<>();
Map<String, List<Map<String, Object>>> printData = new HashMap<>(1); if (CollUtil.isNotEmpty(invCountOrderDetailResponses)) {
printData.put("data", Arrays.asList(data)); for (InvCountOrderDetailResponse obj : invCountOrderDetailResponses) {
JasperUtils.jasperReport(request, response, JSONUtil.toJsonStr(printData), systemPDFTemplateEntity.getPath(), "pdf"); Map<String, Object> supData = new HashMap<>();
supData.put("billNo", invCountOrderEntity.getOrderId());
supData.put("deptName", invCountOrderEntity.getDeptName());
supData.put("deptCode", invCountOrderEntity.getDeptCode());
supData.put("invName", invCountOrderEntity.getInvStorageName());
supData.put("invCode", invCountOrderEntity.getInvStorageCode());
supData.put("invSpaceName", invCountOrderEntity.getInvSpaceName());
supData.put("invSpaceCode", invCountOrderEntity.getInvWarehouseCode());
supData.put("createUserName", invCountOrderEntity.getCreateUserName());
supData.put("auditUserName", invCountOrderEntity.getAuditUserName());
supData.put("billDate", MsDateUtil.formatDate(invCountOrderEntity.getCreateTime(), "yyyy-MM-dd"));
supData.put("auditTime", MsDateUtil.formatDate(invCountOrderEntity.getAuditTime(), "yyyy-MM-dd"));
supData.put("countNum", obj.getCountNum());
supData.put("invNum", obj.getInvNum());
supData.put("profitNum", obj.getProfitNum());
supData.put("lossNum", obj.getLossNum());
supData.put("status", obj.getStatus());
supData.put("productName", obj.getProductName());
supData.put("ggxh", obj.getGgxh());
supData.put("measname", obj.getMeasname() == null ? "" : obj.getMeasname());
supData.put("nameCode", obj.getNameCode());
// supData.put("price", obj.getPrice() == null ? "" : obj.getPrice());
// supData.put("supName", obj.getSupName());
supData.put("ylqxzcrbarmc", obj.getYlqxzcrbarmc());
supData.put("zczbhhzbapzbh", obj.getZczbhhzbapzbh());
list.add(supData);
}
}
data.put("data", list);
String param = JSONObject.toJSONString(data, SerializerFeature.WriteMapNullValue);
JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
} }
//------------------------------------------------------手持终端接口--------------------------------------------------------------- //------------------------------------------------------手持终端接口---------------------------------------------------------------

@ -1,5 +1,6 @@
package com.glxp.api.controller.inv; package com.glxp.api.controller.inv;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.Log; import com.glxp.api.annotation.Log;
@ -8,6 +9,7 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.BusinessType;
import com.glxp.api.entity.inv.InvCountOrderDetailEntity; import com.glxp.api.entity.inv.InvCountOrderDetailEntity;
import com.glxp.api.req.inv.AddInvCountOrderSaveRequest;
import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest; import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.InvCountOrderDetailResponse; import com.glxp.api.res.inv.InvCountOrderDetailResponse;
@ -77,4 +79,35 @@ public class InvCountOrderDetailController {
return invCountOrderDetailService.addCountOrderDetail(invCountOrderDetail); return invCountOrderDetailService.addCountOrderDetail(invCountOrderDetail);
} }
/**
*
*
* @param invCountOrderDetail
* @return
*/
@Log(title = "更新盘点详情", businessType = BusinessType.INSERT)
@PostMapping("/invCount/order/detail/updateCountOrderDetail")
public BaseResponse updateCountOrderDetail(@RequestBody InvCountOrderDetailEntity invCountOrderDetail) {
if (null == invCountOrderDetail || StrUtil.isBlank(invCountOrderDetail.getOrderIdFk()) || StrUtil.isBlank(invCountOrderDetail.getProductId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
invCountOrderDetailService.updateById(invCountOrderDetail);
return ResultVOUtils.success("修改成功!");
}
/**
*
*
* @param addInvCountOrderSaveRequest
* @return
*/
@PostMapping("/inv/count/order/detail/batchAddDetail")
public BaseResponse batchAddDetail(@RequestBody AddInvCountOrderSaveRequest addInvCountOrderSaveRequest) {
if (null == addInvCountOrderSaveRequest || CollUtil.isEmpty(addInvCountOrderSaveRequest.getCountOrderDetailList())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
return invCountOrderDetailService.batchAddDetail(addInvCountOrderSaveRequest.getOrderId(), addInvCountOrderSaveRequest.getCountOrderDetailList());
}
} }

@ -79,11 +79,12 @@ public class InvCountSettingController {
@Log(title = "判断是否可以新增盘点设置") @Log(title = "判断是否可以新增盘点设置")
@GetMapping("/invCount/setting/verifyAdd") @GetMapping("/invCount/setting/verifyAdd")
public BaseResponse verifyAdd() { public BaseResponse verifyAdd() {
boolean verify = invCountSettingService.verifyAdd(); // boolean verify = invCountSettingService.verifyAdd();
if (verify) { // if (verify) {
return ResultVOUtils.success(); // return ResultVOUtils.success();
} // }
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "已经存在盘点设置,无法添加"); return ResultVOUtils.success();
// return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "已经存在盘点设置,无法添加");
} }
} }

@ -36,7 +36,7 @@ public interface InvCountOrderMapper extends BaseMapper<InvCountOrderEntity> {
* @param invSpaceCode * @param invSpaceCode
* @return * @return
*/ */
Integer countBySpaceCode(@Param("invStorageCode") String invStorageCode, @Param("invWarehouseCode") String invWarehouseCode, @Param("invSpaceCode") String invSpaceCode); Integer countBySpaceCode(@Param("invStorageCode") String invStorageCode, @Param("invSpaceCode") String invSpaceCode);
/** /**
* *

@ -3,6 +3,7 @@ package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvCountSettingEntity; import com.glxp.api.entity.inv.InvCountSettingEntity;
import com.glxp.api.req.inv.FilterInvCountSettingRequest; import com.glxp.api.req.inv.FilterInvCountSettingRequest;
import com.glxp.api.res.inv.InvCountSettingResponse;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -11,7 +12,7 @@ import java.util.List;
public interface InvCountSettingMapper extends BaseMapper<InvCountSettingEntity> { public interface InvCountSettingMapper extends BaseMapper<InvCountSettingEntity> {
List<InvCountSettingEntity> filterList(FilterInvCountSettingRequest settingRequest); List<InvCountSettingResponse> filterList(FilterInvCountSettingRequest settingRequest);
/** /**
* *

@ -6,16 +6,18 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* *
*/ */
@ApiModel(value="com-glxp-api-entity-inv-InvCountCodes") @ApiModel(value = "com-glxp-api-entity-inv-InvCountCodes")
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@ -25,51 +27,77 @@ public class InvCountCodesEntity implements Serializable {
/** /**
* id * id
*/ */
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="id") @ApiModelProperty(value = "id")
private Integer id; private Integer id;
/** /**
* ID * ID
*/ */
@TableField(value = "orderIdFk") @TableField(value = "orderIdFk")
@ApiModelProperty(value="盘点单ID") @ApiModelProperty(value = "盘点单ID")
private String orderIdFk; private String orderIdFk;
/** /**
* ID * ID
*/ */
@TableField(value = "productId") @TableField(value = "productId")
@ApiModelProperty(value="产品ID") @ApiModelProperty(value = "产品ID")
private String productId; private String productId;
/** /**
* *
*/ */
@TableField(value = "code") @TableField(value = "code")
@ApiModelProperty(value="码") @ApiModelProperty(value = "码")
private String code; private String code;
/** /**
* 0 1 * 0 1
*/ */
@TableField(value = "`status`") @TableField(value = "`status`")
@ApiModelProperty(value="条码状态(多码或少码) 0少 1多") @ApiModelProperty(value = "条码状态(多码或少码) 0少 1多")
private Boolean status; private Boolean status;
/** /**
* *
*/ */
@TableField(value = "batchNo") @TableField(value = "batchNo")
@ApiModelProperty(value="批次号") @ApiModelProperty(value = "批次号")
private String batchNo; private String batchNo;
/** /**
* *
*/ */
@TableField(value = "`count`") @TableField(value = "`count`")
@ApiModelProperty(value="扫码数量") @ApiModelProperty(value = "扫码数量")
private Integer count; private Integer count;
@TableField(value = "nameCode")
@ApiModelProperty(value = "产品DI")
private String nameCode;
/**
*
*/
@TableField(value = "produceDate")
@ApiModelProperty(value = "生产日期")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
@ApiModelProperty(value = "失效日期")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
@ApiModelProperty(value = "序列号")
private String serialNo;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

@ -6,17 +6,19 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* *
*/ */
@ApiModel(value="com-glxp-api-entity-inv-InvCountOrder") @ApiModel(value = "com-glxp-api-entity-inv-InvCountOrder")
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@ -27,105 +29,105 @@ public class InvCountOrderEntity implements Serializable {
* id * id
*/ */
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="id") @ApiModelProperty(value = "id")
private Integer id; private Integer id;
/** /**
* *
*/ */
@TableField(value = "orderId") @TableField(value = "orderId")
@ApiModelProperty(value="盘点单号") @ApiModelProperty(value = "盘点单号")
private String orderId; private String orderId;
/** /**
* *
*/ */
@TableField(value = "invStorageCode") @TableField(value = "invStorageCode")
@ApiModelProperty(value="仓库号") @ApiModelProperty(value = "仓库编码")
private String invStorageCode; private String invStorageCode;
/** /**
* *
*/ */
@TableField(value = "invWarehouseCode") @TableField(value = "invWarehouseCode")
@ApiModelProperty(value="分库号") @ApiModelProperty(value = "货位编码")
private String invWarehouseCode; private String invWarehouseCode;
/** /**
* *
*/ */
@TableField(value = "invSpaceCode") @TableField(value = "deptCode")
@ApiModelProperty(value="货位号") @ApiModelProperty(value = "部门编码")
private String invSpaceCode; private String deptCode;
/** /**
* ID * ID
*/ */
@TableField(value = "`createUser`") @TableField(value = "`createUser`")
@ApiModelProperty(value="盘点用户ID") @ApiModelProperty(value = "盘点用户ID")
private String createUser; private String createUser;
/** /**
* *
*/ */
@TableField(value = "createTime") @TableField(value = "createTime")
@ApiModelProperty(value="创建时间") @ApiModelProperty(value = "创建时间")
private Date createTime; private Date createTime;
/** /**
* *
*/ */
@TableField(value = "updateTime") @TableField(value = "updateTime")
@ApiModelProperty(value="更新时间") @ApiModelProperty(value = "更新时间")
private Date updateTime; private Date updateTime;
/** /**
* ID * ID
*/ */
@TableField(value = "auditUser") @TableField(value = "auditUser")
@ApiModelProperty(value="审核用户ID") @ApiModelProperty(value = "审核用户ID")
private String auditUser; private String auditUser;
/** /**
* *
*/ */
@TableField(value = "auditTime") @TableField(value = "auditTime")
@ApiModelProperty(value="审核时间") @ApiModelProperty(value = "审核时间")
private Date auditTime; private Date auditTime;
/** /**
* *
*/ */
@TableField(value = "`status`") @TableField(value = "`status`")
@ApiModelProperty(value="状态") @ApiModelProperty(value = "状态")
private Integer status; private Integer status;
/** /**
* *
*/ */
@TableField(value = "remark") @TableField(value = "remark")
@ApiModelProperty(value="备注字段") @ApiModelProperty(value = "备注字段")
private String remark; private String remark;
/** /**
* 使 , * 使 ,
*/ */
@TableField(value = "inOrderIds") @TableField(value = "inOrderIds")
@ApiModelProperty(value="入库扫码单据号,多个使用 , 隔开") @ApiModelProperty(value = "入库扫码单据号,多个使用 , 隔开")
private String inOrderIds; private String inOrderIds;
/** /**
* 使 , * 使 ,
*/ */
@TableField(value = "outOrderIds") @TableField(value = "outOrderIds")
@ApiModelProperty(value="出库扫码单据号,多个使用 , 隔开") @ApiModelProperty(value = "出库扫码单据号,多个使用 , 隔开")
private String outOrderIds; private String outOrderIds;
/** /**
* 0 1 2 * 0 1 2
*/ */
@TableField(value = "countType") @TableField(value = "countType")
@ApiModelProperty(value="盘点类型0整库盘点 1按货位盘点 2部分盘点") @ApiModelProperty(value = "盘点类型0整库盘点 1按货位盘点 2部分盘点")
private Integer countType; private Integer countType;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -6,16 +6,18 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* *
*/ */
@ApiModel(value="com-glxp-api-entity-inv-InvCountSetting") @ApiModel(value = "com-glxp-api-entity-inv-InvCountSetting")
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@ -26,22 +28,46 @@ public class InvCountSettingEntity implements Serializable {
* ID * ID
*/ */
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="ID") @ApiModelProperty(value = "ID")
private Integer id; private Integer id;
/** /**
* *
*/ */
@TableField(value = "inAction") @TableField(value = "inAction")
@ApiModelProperty(value="盘点入库转单类型") @ApiModelProperty(value = "盘点入库转单类型")
private String inAction; private String inAction;
/** /**
* *
*/ */
@TableField(value = "outAction") @TableField(value = "outAction")
@ApiModelProperty(value="盘点出库转单类型") @ApiModelProperty(value = "盘点出库转单类型")
private String outAction; private String outAction;
/**
*
*/
@TableField(value = "invStorageCode")
@ApiModelProperty(value = "盘点仓库")
private String invStorageCode;
/**
*
*/
@TableField(value = "invWarehouseCode")
@ApiModelProperty(value = "盘点货位")
private String invWarehouseCode;
/**
*
*/
@TableField(value = "inFromCorp")
@ApiModelProperty(value = "盘盈入库往来单位")
private String inFromCorp;
/**
*
*/
@TableField(value = "outFromCorp")
@ApiModelProperty(value = "盘亏出库往来单位")
private String outFromCorp;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

@ -0,0 +1,12 @@
package com.glxp.api.req.inv;
import com.glxp.api.entity.inv.InvCountOrderDetailEntity;
import lombok.Data;
import java.util.List;
@Data
public class AddInvCountOrderSaveRequest {
private List<InvCountOrderDetailEntity> countOrderDetailList;
private String orderId;
}

@ -29,4 +29,6 @@ public class InvCountOrderDetailResponse extends InvCountOrderDetailEntity {
*/ */
private String ylqxzcrbarmc; private String ylqxzcrbarmc;
private String measname;
} }

@ -26,4 +26,10 @@ public class InvCountOrderResponse extends InvCountOrderEntity {
*/ */
private String invSpaceName; private String invSpaceName;
private String deptName;
private String createUserName;
private String auditUserName;
} }

@ -19,4 +19,13 @@ public class InvCountSettingResponse extends InvCountSettingEntity {
*/ */
private String outBusTypeName; private String outBusTypeName;
private String inFromCorpName;
private String outFromCorpName;
private String invName;
private String spaceName;
} }

@ -99,6 +99,9 @@ public class InvCountCodesService extends ServiceImpl<InvCountCodesMapper, InvCo
//新增条码 //新增条码
invCountCodes.setProductId(invCountOrderDetailEntity.getProductId()); invCountCodes.setProductId(invCountOrderDetailEntity.getProductId());
invCountCodes.setBatchNo(udi.getBatchNo()); invCountCodes.setBatchNo(udi.getBatchNo());
invCountCodes.setNameCode(udi.getUdi());
invCountCodes.setProduceDate(udi.getProduceDate());
invCountCodes.setExpireDate(udi.getExpireDate());
invCountCodes.setCount(1); invCountCodes.setCount(1);
invCountCodesDao.insert(invCountCodes); invCountCodesDao.insert(invCountCodes);
} else { } else {
@ -116,7 +119,7 @@ public class InvCountCodesService extends ServiceImpl<InvCountCodesMapper, InvCo
} }
//修改码明细 //修改码明细
invCountOrderDetailEntity.setCountNum(invCountOrderDetailEntity.getCountNum() + getActCount(udi.getUdi())); invCountOrderDetailEntity.setCountNum(IntUtil.value(invCountOrderDetailEntity.getCountNum()) + getActCount(udi.getUdi()));
invCountOrderDetailDao.updateById(invCountOrderDetailEntity); invCountOrderDetailDao.updateById(invCountOrderDetailEntity);
return ResultVOUtils.success(); return ResultVOUtils.success();
} }

@ -1,23 +1,27 @@
package com.glxp.api.service.inv; package com.glxp.api.service.inv;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.inv.InvCountOrderMapper; import com.glxp.api.dao.inv.InvCountOrderMapper;
import com.glxp.api.dao.inv.InvProductDao; import com.glxp.api.dao.inv.InvProductDao;
import com.glxp.api.entity.inv.InvCountCodesEntity;
import com.glxp.api.entity.inv.InvCountOrderEntity; import com.glxp.api.entity.inv.InvCountOrderEntity;
import com.glxp.api.entity.inv.InvProductEntity; import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest; import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest;
import com.glxp.api.res.inv.InvCountOrderDetailResponse; import com.glxp.api.res.inv.InvCountOrderDetailResponse;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.TransactionIsolationLevel;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.inv.InvCountOrderDetailMapper; import com.glxp.api.dao.inv.InvCountOrderDetailMapper;
import com.glxp.api.entity.inv.InvCountOrderDetailEntity; import com.glxp.api.entity.inv.InvCountOrderDetailEntity;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections; import java.util.*;
import java.util.List;
@Service @Service
public class InvCountOrderDetailService extends ServiceImpl<InvCountOrderDetailMapper, InvCountOrderDetailEntity> { public class InvCountOrderDetailService extends ServiceImpl<InvCountOrderDetailMapper, InvCountOrderDetailEntity> {
@ -74,4 +78,15 @@ public class InvCountOrderDetailService extends ServiceImpl<InvCountOrderDetailM
return ResultVOUtils.success(); return ResultVOUtils.success();
} }
public BaseResponse batchAddDetail(String orderId, List<InvCountOrderDetailEntity> countOrderDetailList) {
InvCountOrderEntity invCountOrder = invCountOrderDao.selectByOrderId(orderId);
invCountOrder.setUpdateTime(new Date());
invCountOrderDetailDao.deleteByOrderId(orderId);
if (CollUtil.isNotEmpty(countOrderDetailList)) {
invCountOrderDetailDao.insertBatch(countOrderDetailList);
}
return ResultVOUtils.success();
}
} }

@ -35,12 +35,17 @@ import com.glxp.api.res.inv.InvCountOrderResponse;
import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoAddInoutService;
import com.glxp.api.service.inout.IoCheckInoutService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.util.CustomUtil; import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.OrderNoTypeBean;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -73,7 +78,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
@Resource @Resource
private BasicCorpDao unitMaintainDao; private BasicCorpDao unitMaintainDao;
@Resource @Resource
private IoOrderDao orderDao; private IoOrderService orderService;
@Resource @Resource
private IoCodeTempDao codesTempDao; private IoCodeTempDao codesTempDao;
@Resource @Resource
@ -88,7 +93,13 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
private UdiRelevanceService udiRelevanceService; private UdiRelevanceService udiRelevanceService;
@Resource @Resource
private IBasicBussinessTypeService basicBussinessTypeService; private IBasicBussinessTypeService basicBussinessTypeService;
@Resource
private InvCountSettingService invCountSettingService;
@Resource
IoAddInoutService addInoutService;
@Resource
@Lazy
IoCheckInoutService ioCheckInoutService;
public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) { public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) {
if (null == filterInvCountOrderRequest) { if (null == filterInvCountOrderRequest) {
@ -101,6 +112,16 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
} }
public InvCountOrderResponse selectJoinByOrderId(String orderId) {
FilterInvCountOrderRequest filterInvCountOrderRequest = new FilterInvCountOrderRequest();
filterInvCountOrderRequest.setOrderId(orderId);
List<InvCountOrderResponse> orderResponses = invCountOrderDao.selectList(filterInvCountOrderRequest);
if (CollUtil.isNotEmpty(orderResponses))
return orderResponses.get(0);
return null;
}
public void deleteOrder(String id) { public void deleteOrder(String id) {
String orderId = invCountOrderDao.selectOrderIdById(id); String orderId = invCountOrderDao.selectOrderIdById(id);
log.info("开始删除盘点单据,盘点单号: {}", orderId); log.info("开始删除盘点单据,盘点单号: {}", orderId);
@ -118,12 +139,12 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
public BaseResponse saveCountOrder(InvCountOrderEntity invCountOrder) { public BaseResponse saveCountOrder(InvCountOrderEntity invCountOrder) {
if (invCountOrder.getCountType() == 0 || invCountOrder.getCountType() == 2) { if (invCountOrder.getCountType() == 0 || invCountOrder.getCountType() == 2) {
//整库盘点 //整库盘点
if (StrUtil.isBlank(invCountOrder.getInvStorageCode()) || StrUtil.isBlank(invCountOrder.getInvWarehouseCode())) { if (StrUtil.isBlank(invCountOrder.getInvStorageCode())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "请选择仓库信息!"); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "请选择仓库信息!");
} }
} else if (invCountOrder.getCountType() == 1) { } else if (invCountOrder.getCountType() == 1) {
//货位盘点 //货位盘点
if (StrUtil.isBlank(invCountOrder.getInvStorageCode()) || StrUtil.isBlank(invCountOrder.getInvWarehouseCode()) || StrUtil.isBlank(invCountOrder.getInvSpaceCode())) { if (StrUtil.isBlank(invCountOrder.getInvStorageCode()) || StrUtil.isBlank(invCountOrder.getInvWarehouseCode())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "请选择仓库和货位信息!"); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "请选择仓库和货位信息!");
} }
} }
@ -153,7 +174,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
public BaseResponse submitAudit(String id) { public BaseResponse submitAudit(String id) {
InvCountOrderEntity invCountOrder = invCountOrderDao.selectById(id); InvCountOrderEntity invCountOrder = invCountOrderDao.selectByOrderId(id);
if (null == invCountOrder) { if (null == invCountOrder) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "单据不存在"); return ResultVOUtils.error(ResultEnum.DATA_ERROR, "单据不存在");
} }
@ -166,17 +187,17 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "请先选择盘点产品"); return ResultVOUtils.error(ResultEnum.DATA_ERROR, "请先选择盘点产品");
} }
Long codesCount = invCountCodesDao.countByOrderIdFk(invCountOrder.getOrderId()); // Long codesCount = invCountCodesDao.countByOrderIdFk(invCountOrder.getOrderId());
if (codesCount == 0) { // if (codesCount == 0) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "请扫描需要盘点的产品"); // return ResultVOUtils.error(ResultEnum.DATA_ERROR, "请扫描需要盘点的产品");
} // }
//更新状态 //更新状态
invCountOrder.setStatus(1); invCountOrder.setStatus(1);
invCountOrder.setUpdateTime(new Date()); invCountOrder.setUpdateTime(new Date());
//查询单据详情,计算盘点盈亏状态 //查询单据详情,计算盘点盈亏状态
List<InvCountOrderDetailEntity> detailList = invCountOrderDetailDao.selectByOrderId(invCountOrder.getOrderId()); List<InvCountOrderDetailEntity> detailList = invCountOrderDetailDao.selectByOrderId(invCountOrder.getOrderId());
for (InvCountOrderDetailEntity invCountOrderDetail : detailList) { for (InvCountOrderDetailEntity invCountOrderDetail : detailList) {
int diff = invCountOrderDetail.getInvNum() - invCountOrderDetail.getCountNum(); int diff = IntUtil.value(invCountOrderDetail.getInvNum()) - IntUtil.value(invCountOrderDetail.getCountNum());
if (diff > 0) { if (diff > 0) {
invCountOrderDetail.setLossNum(Math.abs(diff)); invCountOrderDetail.setLossNum(Math.abs(diff));
//盘亏 //盘亏
@ -212,10 +233,6 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
//审核通过 //审核通过
//根据单据详情生成相关单据 //根据单据详情生成相关单据
log.info("单据审核通过后将会生成对应盘盈盘亏单是否继续?,开始生成扫码单据"); log.info("单据审核通过后将会生成对应盘盈盘亏单是否继续?,开始生成扫码单据");
// ThreadUtil.execAsync(() -> {
//
// });
countTransferOrder(invCountOrder); countTransferOrder(invCountOrder);
} }
invCountOrderDao.updateById(invCountOrder); invCountOrderDao.updateById(invCountOrder);
@ -246,7 +263,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
* *
*/ */
private void countOrderTransfer(InvCountOrderEntity invCountOrder) { private void countOrderTransfer(InvCountOrderEntity invCountOrder) {
List<InvCountSettingEntity> list = invCountSettingDao.filterList(null); List<InvCountSettingEntity> list = invCountSettingDao.selectList(null);
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
log.error("未配置盘点单据设置参数,无法转单"); log.error("未配置盘点单据设置参数,无法转单");
return; return;
@ -277,7 +294,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
if (invCountOrder.getCountType() == 1) { if (invCountOrder.getCountType() == 1) {
//按照货位盘点,查询库存详情添加货位条件 //按照货位盘点,查询库存详情添加货位条件
invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvSpaceCode()); invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvWarehouseCode());
} }
FilterInvCountOrderDetailRequest detailRequest = new FilterInvCountOrderDetailRequest(); FilterInvCountOrderDetailRequest detailRequest = new FilterInvCountOrderDetailRequest();
@ -437,7 +454,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
}); });
invCountOrder.setInOrderIds(order.getBillNo()); invCountOrder.setInOrderIds(order.getBillNo());
orderDao.insert(order); orderService.insertOrder(order);
codesTempDao.insertBatch(inOrderCodes); codesTempDao.insertBatch(inOrderCodes);
log.info("盘盈入库单据生成成功"); log.info("盘盈入库单据生成成功");
} }
@ -455,7 +472,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
}); });
invCountOrder.setOutOrderIds(order.getBillNo()); invCountOrder.setOutOrderIds(order.getBillNo());
orderDao.insert(order); orderService.insertOrder(order);
codesTempDao.insertBatch(outOrderCodes); codesTempDao.insertBatch(outOrderCodes);
log.info("盘亏入库单据生成成功"); log.info("盘亏入库单据生成成功");
} }
@ -470,13 +487,11 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
*/ */
private void countTransferOrder(InvCountOrderEntity invCountOrder) { private void countTransferOrder(InvCountOrderEntity invCountOrder) {
List<InvCountSettingEntity> list = invCountSettingDao.filterList(null); InvCountSettingEntity invCountSettingEntity = invCountSettingService.findByInvSpace(invCountOrder.getInvStorageCode(), invCountOrder.getInvWarehouseCode());
if (CollUtil.isEmpty(list)) { if (invCountSettingEntity == null) {
log.error("未配置盘点单据设置参数,无法转单"); log.error("未配置盘点单据设置参数,无法转单");
return; return;
} }
InvCountSettingEntity invCountSettingEntity = list.get(0);
List<InvCountOrderDetailEntity> orderDetailList = invCountOrderDetailDao.selectByOrderId(invCountOrder.getOrderId()); List<InvCountOrderDetailEntity> orderDetailList = invCountOrderDetailDao.selectByOrderId(invCountOrder.getOrderId());
List<IoCodeTempEntity> lossCodesList = new ArrayList<>(); List<IoCodeTempEntity> lossCodesList = new ArrayList<>();
List<IoCodeTempEntity> profitCodesList = new ArrayList<>(); List<IoCodeTempEntity> profitCodesList = new ArrayList<>();
@ -504,8 +519,14 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
warehouseEntity.setAction(order.getAction()); warehouseEntity.setAction(order.getAction());
warehouseEntity.setCorpOrderId(order.getCorpOrderId()); warehouseEntity.setCorpOrderId(order.getCorpOrderId());
}); });
orderDao.insert(order); orderService.insertOrder(order);
codesTempDao.insertBatch(lossCodesList); codesTempDao.insertBatch(lossCodesList);
addInoutService.dealProcess(order);
if (!ioCheckInoutService.checkManual(order.getBillNo())) {
ioCheckInoutService.check(order.getBillNo());
}
} }
//生成盘盈入库单 //生成盘盈入库单
@ -516,8 +537,14 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
warehouseEntity.setAction(order.getAction()); warehouseEntity.setAction(order.getAction());
warehouseEntity.setCorpOrderId(order.getCorpOrderId()); warehouseEntity.setCorpOrderId(order.getCorpOrderId());
}); });
orderDao.insert(order); orderService.insertOrder(order);
codesTempDao.insertBatch(profitCodesList); codesTempDao.insertBatch(profitCodesList);
addInoutService.dealProcess(order);
if (!ioCheckInoutService.checkManual(order.getBillNo())) {
ioCheckInoutService.check(order.getBillNo());
}
} }
} }
@ -548,7 +575,9 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
warehouseEntity.setCount(invCountOrderDetail.getLossNum()); warehouseEntity.setCount(invCountOrderDetail.getLossNum());
warehouseEntity.setReCount(invCountOrderDetail.getLossNum()); warehouseEntity.setReCount(invCountOrderDetail.getLossNum());
} }
warehouseEntity.setCreateTime(new Date());
warehouseEntity.setUpdateTime(new Date());
warehouseEntity.setDeptCode(invCountOrder.getDeptCode());
return warehouseEntity; return warehouseEntity;
} }
@ -632,11 +661,14 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
*/ */
public IoOrderEntity createOrder(InvCountSettingEntity invCountSettingEntity, InvCountOrderEntity invCountOrder, String type) { public IoOrderEntity createOrder(InvCountSettingEntity invCountSettingEntity, InvCountOrderEntity invCountOrder, String type) {
BasicBussinessTypeEntity bussinessTypeEntity; BasicBussinessTypeEntity bussinessTypeEntity;
BasicCorpEntity unitMaintainEntity = null;
if (ConstantType.TYPE_PUT.equals(type)) { if (ConstantType.TYPE_PUT.equals(type)) {
bussinessTypeEntity = basicBussinessTypeService.findByAction(invCountSettingEntity.getInAction()); bussinessTypeEntity = basicBussinessTypeService.findByAction(invCountSettingEntity.getInAction()); //查询单据往来单位数据
unitMaintainEntity = unitMaintainDao.selectByErpId(invCountSettingEntity.getInFromCorp());
} else { } else {
bussinessTypeEntity = basicBussinessTypeService.findByAction(invCountSettingEntity.getOutAction()); bussinessTypeEntity = basicBussinessTypeService.findByAction(invCountSettingEntity.getOutAction());
unitMaintainEntity = unitMaintainDao.selectByErpId(invCountSettingEntity.getOutFromCorp());
} }
//构造单据数据 //构造单据数据
@ -645,14 +677,22 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
orderEntity.setAction(bussinessTypeEntity.getAction()); orderEntity.setAction(bussinessTypeEntity.getAction());
orderEntity.setCreateTime(new Date()); orderEntity.setCreateTime(new Date());
orderEntity.setInvCode(invCountOrder.getInvStorageCode()); orderEntity.setInvCode(invCountOrder.getInvStorageCode());
//查询单据往来单位数据 if (unitMaintainEntity != null) {
BasicCorpEntity unitMaintainEntity = unitMaintainDao.selectByErpId(bussinessTypeEntity.getDefaultUnit()); orderEntity.setFromCorp(unitMaintainEntity.getErpId());
orderEntity.setFromCorp(unitMaintainEntity.getErpId()); }
orderEntity.setCorpOrderId(CustomUtil.getId() + "x"); orderEntity.setCorpOrderId(CustomUtil.getId() + "x");
orderEntity.setExportStatus(0); //设置导出状态为未导出 orderEntity.setExportStatus(0); //设置导出状态为未导出
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_PROCESS);
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);
orderEntity.setCreateUser(invCountOrder.getAuditUser());
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateUser(invCountOrder.getAuditUser());
orderEntity.setUpdateTime(new Date());
orderEntity.setCustomerId("110");
orderEntity.setOrderType(2);
orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单 orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
orderEntity.setBillNo(orderNo); orderEntity.setBillNo(orderNo);
return orderEntity; return orderEntity;
} }
@ -666,4 +706,9 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
return null; return null;
} }
public InvCountOrderEntity selectByOrderId(String orderId) {
return invCountOrderDao.selectByOrderId(orderId);
}
} }

@ -1,22 +1,21 @@
package com.glxp.api.service.inv; package com.glxp.api.service.inv;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.basic.BasicBussinessTypeDao; import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.dao.inv.InvCountSettingMapper;
import com.glxp.api.entity.inv.InvCountSettingEntity;
import com.glxp.api.req.inv.FilterInvCountSettingRequest; import com.glxp.api.req.inv.FilterInvCountSettingRequest;
import com.glxp.api.res.inv.InvCountSettingResponse; import com.glxp.api.res.inv.InvCountSettingResponse;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.inv.InvCountSettingEntity;
import com.glxp.api.dao.inv.InvCountSettingMapper;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -34,20 +33,15 @@ public class InvCountSettingService extends ServiceImpl<InvCountSettingMapper, I
if (null != settingRequest.getPage() && null != settingRequest.getLimit()) { if (null != settingRequest.getPage() && null != settingRequest.getLimit()) {
PageHelper.offsetPage((settingRequest.getPage() - 1) * settingRequest.getLimit(), settingRequest.getLimit()); PageHelper.offsetPage((settingRequest.getPage() - 1) * settingRequest.getLimit(), settingRequest.getLimit());
} }
List<InvCountSettingEntity> list = invCountSettingDao.filterList(settingRequest); List<InvCountSettingResponse> list = invCountSettingDao.filterList(settingRequest);
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
List<InvCountSettingResponse> result = new ArrayList<>(list.size()); for (InvCountSettingResponse invCountSettingEntity : list) {
for (InvCountSettingEntity invCountSettingEntity : list) {
InvCountSettingResponse response = new InvCountSettingResponse();
BeanUtil.copyProperties(invCountSettingEntity, response);
//查询单据类型名称 //查询单据类型名称
response.setInBusTypeName(bussinessTypeDao.selectNameByAction(invCountSettingEntity.getInAction())); invCountSettingEntity.setInBusTypeName(bussinessTypeDao.selectNameByAction(invCountSettingEntity.getInAction()));
response.setOutBusTypeName(bussinessTypeDao.selectNameByAction(invCountSettingEntity.getOutAction())); invCountSettingEntity.setOutBusTypeName(bussinessTypeDao.selectNameByAction(invCountSettingEntity.getOutAction()));
result.add(response);
} }
return result;
} }
return Collections.emptyList(); return list;
} }
@ -55,13 +49,15 @@ public class InvCountSettingService extends ServiceImpl<InvCountSettingMapper, I
if (StrUtil.isBlank(invCountSettingEntity.getInAction()) || StrUtil.isBlank(invCountSettingEntity.getOutAction())) { if (StrUtil.isBlank(invCountSettingEntity.getInAction()) || StrUtil.isBlank(invCountSettingEntity.getOutAction())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
} }
if (existSetting(invCountSettingEntity, invCountSettingEntity.getId()))
return ResultVOUtils.error(500, "重复添加");
invCountSettingDao.updateById(invCountSettingEntity); invCountSettingDao.updateById(invCountSettingEntity);
return ResultVOUtils.success(); return ResultVOUtils.success();
} }
public BaseResponse addCountSetting(InvCountSettingEntity invCountSettingEntity) { public BaseResponse addCountSetting(InvCountSettingEntity invCountSettingEntity) {
if (existSetting()) { if (existSetting(invCountSettingEntity, null)) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "已存在盘点参数"); return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "已存在盘点参数");
} }
if (StrUtil.isBlank(invCountSettingEntity.getInAction()) || StrUtil.isBlank(invCountSettingEntity.getOutAction())) { if (StrUtil.isBlank(invCountSettingEntity.getInAction()) || StrUtil.isBlank(invCountSettingEntity.getOutAction())) {
@ -72,25 +68,29 @@ public class InvCountSettingService extends ServiceImpl<InvCountSettingMapper, I
} }
public boolean verifyAdd() { InvCountSettingEntity findByInvSpace(String invCode, String spaceCode) {
if (existSetting()) { List<InvCountSettingEntity> invCountSettingEntities = invCountSettingDao.selectList(new QueryWrapper<InvCountSettingEntity>()
return false; .eq("invStorageCode", invCode)
} .eq(StrUtil.isNotEmpty(spaceCode), "invWarehouseCode", spaceCode));
return true; if (CollUtil.isNotEmpty(invCountSettingEntities)) {
return invCountSettingEntities.get(0);
} else
return null;
} }
/** /**
* *
* *
* @return * @return
*/ */
public boolean existSetting() { public boolean existSetting(InvCountSettingEntity invCountSettingEntity, Integer ignoreId) {
Long count = invCountSettingDao.countSetting(); return invCountSettingDao.exists(new QueryWrapper<InvCountSettingEntity>()
if (count == null || count < 1) { .eq("invStorageCode", invCountSettingEntity.getInvStorageCode())
//未配置设置 .eq(invCountSettingEntity.getInvWarehouseCode() != null, "invWarehouseCode", invCountSettingEntity.getInvWarehouseCode())
return false; .ne(ignoreId != null, "id", ignoreId)
} );
return true;
} }
} }

@ -1,6 +1,7 @@
package com.glxp.api.service.sync; package com.glxp.api.service.sync;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
@ -1757,10 +1758,18 @@ public class HeartService {
basicHospTypeDao.replaceBatch(hospTypeList); basicHospTypeDao.replaceBatch(hospTypeList);
} }
if (CollectionUtil.isNotEmpty(udiRelevanceList)) { if (CollectionUtil.isNotEmpty(udiRelevanceList)) {
udiRelevanceDao.replaceBatch(udiRelevanceList); List<List<UdiRelevanceEntity>> splits = CustomUtil.splitList(udiRelevanceList, 500);
splits.forEach(items -> {
udiRelevanceDao.replaceBatch(items);
});
} }
if (CollectionUtil.isNotEmpty(productsList)) { if (CollectionUtil.isNotEmpty(productsList)) {
basicProductsDao.replaceBatch(productsList);
List<List<BasicProductsEntity>> splits = CustomUtil.splitList(productsList, 500);
splits.forEach(items -> {
basicProductsDao.replaceBatch(items);
});
// basicProductsDao.replaceBatchs(productsList, 1000);
} }
if (CollectionUtil.isNotEmpty(relevanceList)) { if (CollectionUtil.isNotEmpty(relevanceList)) {
relevanceDao.replaceBatch(relevanceList); relevanceDao.replaceBatch(relevanceList);

@ -209,8 +209,8 @@ public class FilterUdiUtils {
public static String transGlxpNoSerStr(List<UdiRelevanceResponse> udiRelevanceResponses, InvCountOrderDetailEntity invCountOrderDetail) { public static String transGlxpNoSerStr(List<UdiRelevanceResponse> udiRelevanceResponses, InvCountOrderDetailEntity invCountOrderDetail) {
UdiRelevanceResponse udiRelevanceResponse = getMinDi(udiRelevanceResponses); UdiRelevanceResponse udiRelevanceResponse = getMinDi(udiRelevanceResponses);
String udiCode = "#" + udiRelevanceResponse.getNameCode() + "#" + invCountOrderDetail.getProduceDate() + "#" + invCountOrderDetail.getExpireDate() + String udiCode = "#" + udiRelevanceResponse.getNameCode() + "#" + StrUtil.trimToEmpty(invCountOrderDetail.getProduceDate()) + "#" + StrUtil.trimToEmpty(invCountOrderDetail.getExpireDate()) +
"#" + invCountOrderDetail.getBatchNo() + "#" + "#" + "#"; "#" + StrUtil.trimToEmpty(invCountOrderDetail.getBatchNo()) + "#" + "#" + "#";
return udiCode; return udiCode;
} }

@ -230,6 +230,9 @@
<if test="editType != null"> <if test="editType != null">
AND basic_bussiness_type.editType = #{editType} AND basic_bussiness_type.editType = #{editType}
</if> </if>
<if test="mainAction != null">
AND basic_bussiness_type.mainAction = #{mainAction}
</if>
</where> </where>
group by basic_bussiness_type.action group by basic_bussiness_type.action
</select> </select>

@ -45,13 +45,12 @@
</select> </select>
<select id="filterCountDetail" resultType="com.glxp.api.res.inv.InvCountOrderDetailResponse"> <select id="filterCountDetail" resultType="com.glxp.api.res.inv.InvCountOrderDetailResponse">
select od.*, ip.productsName productName, ip.ggxh, ip.ylqxzcrbarmc, ip.zczbhhzbapzbh select od.*, bps.cpmctymc productName, bps.ggxh, bps.ylqxzcrbarmc, bps.zczbhhzbapzbh
from inv_count_order_detail od from inv_count_order_detail od
left join inv_count_order ico on od.orderIdFk = ico.orderId left join inv_count_order ico on od.orderIdFk = ico.orderId
left join inv_product ip on od.productId = ip.relIdFk left join inv_product ip on od.productId = ip.relIdFk
left join basic_products bps on od.nameCode = bps.nameCode
where od.orderIdFk = #{orderIdFk} where od.orderIdFk = #{orderIdFk}
and ip.invStorageCode = ico.invStorageCode
and ip.invWarehouseCode = ico.invWarehouseCode
group by od.id group by od.id
</select> </select>

@ -8,7 +8,7 @@
<result column="orderId" jdbcType="VARCHAR" property="orderId"/> <result column="orderId" jdbcType="VARCHAR" property="orderId"/>
<result column="invStorageCode" jdbcType="VARCHAR" property="invStorageCode"/> <result column="invStorageCode" jdbcType="VARCHAR" property="invStorageCode"/>
<result column="invWarehouseCode" jdbcType="VARCHAR" property="invWarehouseCode"/> <result column="invWarehouseCode" jdbcType="VARCHAR" property="invWarehouseCode"/>
<result column="invSpaceCode" jdbcType="VARCHAR" property="invSpaceCode"/> <result column="deptCode" jdbcType="VARCHAR" property="deptCode"/>
<result column="createUser" jdbcType="VARCHAR" property="createUser"/> <result column="createUser" jdbcType="VARCHAR" property="createUser"/>
<result column="createTime" jdbcType="TIMESTAMP" property="createTime"/> <result column="createTime" jdbcType="TIMESTAMP" property="createTime"/>
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime"/> <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime"/>
@ -22,7 +22,7 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, orderId, invStorageCode, invWarehouseCode, invSpaceCode, `createUser`, createTime, id, orderId, invStorageCode, invWarehouseCode, deptCode, `createUser`, createTime,
updateTime, auditUser, auditTime, `status`, remark, inOrderIds, outOrderIds, countType updateTime, auditUser, auditTime, `status`, remark, inOrderIds, outOrderIds, countType
</sql> </sql>
@ -32,7 +32,7 @@
co.orderId, co.orderId,
co.invStorageCode, co.invStorageCode,
co.invWarehouseCode, co.invWarehouseCode,
co.invSpaceCode, co.deptCode,
co.createUser, co.createUser,
co.createTime, co.createTime,
co.updateTime, co.updateTime,
@ -43,17 +43,23 @@
co.inOrderIds, co.inOrderIds,
co.outOrderIds, co.outOrderIds,
co.countType, co.countType,
ws.name as invStorageName, ws.name as invStorageName,
sp.name as invSpaceName sp.name as invSpaceName,
ad.name as deptName,
au1.employeeName as createUserName,
au2.employeeName as auditUserName
from inv_count_order co from inv_count_order co
left join auth_warehouse ws on co.invWarehouseCode = ws.code left join auth_warehouse ws on co.invStorageCode = ws.code
left join auth_space sp on co.invSpaceCode = sp.code left join auth_space sp on co.invWarehouseCode = sp.code
left join auth_dept ad on co.deptCode = sp.code
left join auth_user au1 on au1.userName = co.createUser
left join auth_user au2 on au2.userName = co.auditUser
<where> <where>
<if test="invCode != null and invCode != ''"> <if test="invCode != null and invCode != ''">
AND co.invStorageCode = #{invCode} AND co.invStorageCode = #{invCode}
</if> </if>
<if test="invSpaceCode != null and invSpaceCode != ''"> <if test="invSpaceCode != null and invSpaceCode != ''">
AND co.invSpaceCode = #{invSpaceCode} AND co.invWarehouseCode = #{invSpaceCode}
</if> </if>
<if test="status != null"> <if test="status != null">
AND co.status = #{status} AND co.status = #{status}
@ -79,11 +85,8 @@
<if test="invStorageCode != null and invStorageCode != ''"> <if test="invStorageCode != null and invStorageCode != ''">
AND invStorageCode = #{invStorageCode} AND invStorageCode = #{invStorageCode}
</if> </if>
<if test="invWarehouseCode != null and invWarehouseCode != ''">
AND invWarehouseCode = #{invWarehouseCode}
</if>
<if test="invSpaceCode != null and invSpaceCode != ''"> <if test="invSpaceCode != null and invSpaceCode != ''">
AND invSpaceCode = #{invSpaceCode} AND invWarehouseCode = #{invSpaceCode}
</if> </if>
</where> </where>
</select> </select>
@ -92,7 +95,7 @@
update inv_count_order update inv_count_order
set invStorageCode = #{invStorageCode,jdbcType=VARCHAR}, set invStorageCode = #{invStorageCode,jdbcType=VARCHAR},
invWarehouseCode = #{invWarehouseCode,jdbcType=VARCHAR}, invWarehouseCode = #{invWarehouseCode,jdbcType=VARCHAR},
invSpaceCode = #{invSpaceCode,jdbcType=VARCHAR}, deptCode = #{deptCode,jdbcType=VARCHAR},
`createUser` = #{createUser,jdbcType=VARCHAR}, `createUser` = #{createUser,jdbcType=VARCHAR},
createTime = #{createTime,jdbcType=TIMESTAMP}, createTime = #{createTime,jdbcType=TIMESTAMP},
updateTime = #{updateTime,jdbcType=TIMESTAMP}, updateTime = #{updateTime,jdbcType=TIMESTAMP},

@ -1,26 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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.InvCountSettingMapper"> <mapper namespace="com.glxp.api.dao.inv.InvCountSettingMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inv.InvCountSettingEntity"> <select id="filterList" resultType="com.glxp.api.res.inv.InvCountSettingResponse">
<!--@mbg.generated--> select ics.*,
<!--@Table inv_count_setting--> aw.name invName,
<id column="id" jdbcType="INTEGER" property="id"/> sts.name spaceName,
<result column="inAction" jdbcType="VARCHAR" property="inAction"/> bc1.name inFromCorpName,
<result column="outAction" jdbcType="VARCHAR" property="outAction"/> bc2.name outFromCorpName
</resultMap> from inv_count_setting ics
<sql id="Base_Column_List"> left join auth_warehouse aw on ics.invStorageCode = aw.code
<!--@mbg.generated--> left join auth_space sts on ics.invWarehouseCode = sts.code
id, inAction, outAction left join basic_corp bc1 on ics.inFromCorp = bc1.erpId
</sql> left join basic_corp bc2 on ics.outFromCorp = bc2.erpId
<select id="filterList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from inv_count_setting
<where> <where>
<if test="id != null"> <if test="id != null">
AND id = #{id} AND ics.id = #{id}
</if> </if>
</where> </where>
</select> </select>

@ -297,7 +297,7 @@
</select> </select>
<select id="filterProductNames" resultType="com.glxp.api.res.inv.InvProductResponse"> <select id="filterProductNames" resultType="com.glxp.api.res.inv.InvProductResponse">
select ip.relIdFk, bp.cpmctymc, bp.ggxh select ip.relIdFk, bp.cpmctymc, bp.ggxh,bp.ylqxzcrbarmc,bp.zczbhhzbapzbh
from inv_product ip from inv_product ip
left join inv_product_detail ipd on ip.relIdFk = ipd.relId and ip.invCode = ipd.invCode and left join inv_product_detail ipd on ip.relIdFk = ipd.relId and ip.invCode = ipd.invCode and
ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty')

@ -985,3 +985,13 @@ VALUES (2015, '单据生成', 2011, 4, NULL, NULL, NULL, 1, 0, 'F', '0', '0', 's
CALL Pro_Temp_ColumnWork('io_order_detail_result', 'inoutPrintStatus', 'tinyint', 1); CALL Pro_Temp_ColumnWork('io_order_detail_result', 'inoutPrintStatus', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('inv_count_setting', 'invStorageCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_setting', 'invWarehouseCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_setting', 'inFromCorp', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_setting', 'outFromCorp', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_codes', 'nameCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_codes', 'produceDate', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_codes', 'expireDate', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_codes', 'serialNo', 'varchar(255)', 1);

Loading…
Cancel
Save