Merge branch 'dev_fifo_z' of http://116.204.71.86:3000/UDI/udi-wms-java into dev_fifo_z

dev_no_inv
qyt 9 months ago
commit a8b853ef96

@ -131,6 +131,11 @@ public enum BasicExportStatusTimeEnum {
DEV_REPAIR("device_repair","设备维修单数据"),
PRODUCE_BUSINESS_DATA("thr_manufacturer", "生产企业数据"),
/**
*
*/
DRUG_DATA_TASK("drug_data_task", "药品关联信息任"),
;
@EnumValue
private String key;

@ -64,6 +64,11 @@ public enum BasicExportTypeEnum {
DEVICE_UPKEEP_DATA("device__upkeep", "设备保养数据"),
PRODUCE_BUSINESS_DATA("thr_manufacturer", "生产企业数据"),
/**
*
*/
DRUG_DATA_TASK("drug_data_task", "药品关联信息任"),
//
// NEW_ALL_ORDER("all_order", "出入库扫码单据"),
// ALL_BUS_ORDER("all_bus_order", "业务单据"),

@ -299,4 +299,26 @@ public class SysWorkplaceController extends BaseController {
}
return ResultVOUtils.success("更新成功");
}
@PostMapping("/udiwms/sysWorkplace/getListByBusType")
public BaseResponse getListByBusType(@RequestBody SysWorkplaceRequest request) {
// Page<SystemWorkplace> page = sysWorkplaceService.page(new Page<>(request.getPage(), request.getLimit()), Wrappers.lambdaQuery(SystemWorkplace.class)
// .eq(StrUtil.isNotBlank(request.getInvCode()),SystemWorkplace::getInvCode,request.getInvCode())
// .like(StrUtil.isNotBlank(request.getKey()),SystemWorkplace::getWorkplaceId,request.getKey())
// .or()
// .like(StrUtil.isNotBlank(request.getKey()),SystemWorkplace::getWorkplaceName,request.getKey())
// );
request.setUserId(getUserId() + "");
DeptEntity deptEntity = deptService.selectByCode(request.getDeptCode());
if (deptEntity.getPid() == 0){
request.setDeptCode(null);
}
List<SysWorkplaceResponse> page = sysWorkplaceService.getListByBusType(request);
PageInfo<SysWorkplaceResponse> pageInfo = new PageInfo<>(page);
PageSimpleResponse<SysWorkplaceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(page);
return ResultVOUtils.success(pageSimpleResponse);
}
}

@ -859,7 +859,7 @@ public class UdiRelevanceController extends BaseController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<YbDrug> list = ybDrugService.getList(ybHcflDetailFilterRequest);
if (list.size() > 0) {
if (list != null && list.size() > 0) {
return ResultVOUtils.success(list.get(0));
}
return ResultVOUtils.success(null);

@ -96,7 +96,10 @@ public class IoCollectOrderBackupController extends BaseController {
public BaseResponse orderUpload(@RequestBody CollectOrderRequest collectOrderRequest) {
if (StrUtil.isEmpty(collectOrderRequest.getBillNo()))
return ResultVOUtils.error(500, "单据号不能为空");
ioCollectOrderBackupService.orderUpload(collectOrderRequest.getBillNo());
Boolean aBoolean = ioCollectOrderBackupService.orderUpload(collectOrderRequest.getBillNo());
if (!aBoolean){
return ResultVOUtils.error("上传失败");
}
return ResultVOUtils.success();
}

@ -82,7 +82,7 @@ public class IoCollectOrderController extends BaseController {
request.setLimit(100);
request.setUserId(userId.toString());
page = basicCollectUserService.filterList(request);
if (page != null) {
if (page != null && page.size() > 0) {
workPlaceCodes = page.stream()
.map(UserWorkResponse::getWorkplaceId)
.collect(Collectors.toList());

@ -9,6 +9,7 @@ import com.glxp.api.constant.RedissonCacheKey;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.collect.RelCodeBatch;
import com.glxp.api.req.collect.RelCodeBatchRequest;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.RelCodeBatchResponse;
import com.glxp.api.service.collect.RelCodeBatchService;
@ -54,6 +55,18 @@ public class RelCodeBatchController extends BaseController {
return ResultVOUtils.successMsg("添加成功!");
}
/**
*
* @param relCodeBatchRequest
* @return
*/
@RepeatSubmit()
@PostMapping("/udiwms/relCode/batch/addRelCodeSpellBox")
public BaseResponse addRelCodeSpellBox(@RequestBody @Valid List<RelCodeBatchRequest> relCodeBatchRequest,BindingResult bindingResult) {
relCodeBatchService.addRelCodeSpellBox(relCodeBatchRequest);
return ResultVOUtils.successMsg("添加成功!");
}
@GetMapping("/udiwms/relCode/batch/filter")
public BaseResponse list(RelCodeBatchRequest relCodeBatchRequest, BindingResult bindingResult) {
List<RelCodeBatchResponse> relCodeBatchResponses = relCodeBatchService.filterList(relCodeBatchRequest);
@ -83,4 +96,19 @@ public class RelCodeBatchController extends BaseController {
return ResultVOUtils.success("修改成功!");
}
@GetMapping("/udiwms/relCode/batch/deleteDetail")
public BaseResponse deleteDetail(@RequestParam("curCode") String curCode) {
relCodeBatchService.deleteDetail(curCode);
return ResultVOUtils.success("删除成功");
}
@PostMapping("/udiwms/relCode/batch/deleteAllDetail")
public BaseResponse deleteAllDetail(@RequestBody List<RelCodeDetailRequest> detailList) {
relCodeBatchService.deleteAllDetail(detailList);
return ResultVOUtils.success("清空成功");
}
}

@ -10,14 +10,13 @@ import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderOrigin;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.service.collect.IoCollectCodeService;
import com.glxp.api.service.collect.IoCollectOrderBizBackupService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.service.collect.*;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import org.aspectj.weaver.ast.Var;
@ -117,6 +116,9 @@ public class IoCodeTempController extends BaseController {
@Resource
IoSplitFifoInvService ioSplitFifoInvService;
@Resource
IoCollectOrderBackupService ioCollectOrderBackupService;
/**
* PDA-----
*/
@ -319,7 +321,7 @@ public class IoCodeTempController extends BaseController {
UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
if (checkUdi == null) {
return ResultVOUtils.error(500, "产品字典不存在此产品!");
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
}
boolean checkSuccess = true;
String lostMsg = "";
@ -593,6 +595,8 @@ public class IoCodeTempController extends BaseController {
@Resource
IoSplitFifoCodeService fifoCodeService;
@Resource
IoSplitCodeService splitCodeService;
@Transactional(rollbackFor = Exception.class)
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
@ -804,6 +808,24 @@ public class IoCodeTempController extends BaseController {
}
//校验码表是否已经存在追溯码 io_code_temp
IoCodeTempEntity codeTempEntity1 = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction());
if (codeTempEntity1 != null) {
return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!");
}
//校验工位存量是否存在
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!");
}
} else {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity == null) {
return ResultVOUtils.error(500, "当前追溯码未上货!");
}
}
//校验预验收是否已存在
if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) {
@ -851,14 +873,6 @@ public class IoCodeTempController extends BaseController {
addOrderRequest.setFromCorp(fromCorp);
}
//校验工位存量是否存在
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, null);
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(500, "当前追溯码已存在!");
}
}
//先生成扫码单据
IoOrderEntity orderEntity = orderService.findByBillNo(orderId);
@ -1291,33 +1305,36 @@ public class IoCodeTempController extends BaseController {
}
//校验工位存量是否存在
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
//校验码表是否已经存在追溯码 io_code_temp
IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code,udiEntity.getBatchNo());
IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction());
if (codeTempEntity != null) {
return ResultVOUtils.error(533,"当前追溯码已存在草稿单据中!");
return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!");
}
//------工位上货相关-----校验工位存量是否存在----
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!");
}
} else {
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!");
}
} else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity == null) {
return ResultVOUtils.error(500, "当前追溯码未上货!");
}
IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code,udiEntity.getBatchNo());
if (codeTempEntity != null){
return ResultVOUtils.error(533,"当前追溯码已存在草稿单据中!");
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已经拆零,无法退货!");
}
}
if (addOrderRequest.getFromCorp() == null || StrUtil.isNotEmpty(addOrderRequest.getSickerAdNum())) {
String fromCorp = ioAddInoutService.updateCorp(bussinessTypeEntity, addOrderRequest.getFromCorp(), addOrderRequest.getSickerAdNum());
addOrderRequest.setFromCorp(fromCorp);
@ -2612,11 +2629,14 @@ public class IoCodeTempController extends BaseController {
}
String orderFinishBillNo = addOrderCodeRequest.getOrderFinishBillNo();
List<IoCollectCode> list = ioCollectCodeService.list(new LambdaUpdateWrapper<IoCollectCode>().eq(IoCollectCode::getBillNo, orderFinishBillNo));
if (CollUtil.isEmpty(list)) return ResultVOUtils.error(500, "未找到已完成单的码明细");
// List<IoCollectCode> list = ioCollectCodeService.list(new LambdaUpdateWrapper<IoCollectCode>().eq(IoCollectCode::getBillNo, orderFinishBillNo));
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(orderFinishBillNo);
List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBackupService.combieOrderDetail(collectOrderBizRequest);
if (CollUtil.isEmpty(collectOrderBizResponses)) return ResultVOUtils.error(500, "未找到已完成单的码明细");
List<String> codeList = new ArrayList<>();
list.forEach(item -> {
String code = item.getCode();
collectOrderBizResponses.forEach(item -> {
String code = item.getFinishUdiCode();
Integer reCountObj = item.getScanCount();
int reCount = reCountObj != null ? reCountObj : 0; // 如果reCountObj为null则默认为0次迭代
for (int i = 0; i < reCount; i++) {

@ -445,7 +445,6 @@ public class IoOrderController extends BaseController {
}
if (checkInoutService.checkManual(addOrderRequest.getBillNo())) {
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
if (bussinessTypeEntity.getCheckWebNew() == 1) {
String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities);
if (StrUtil.isNotEmpty(errMsg)) {
@ -481,8 +480,6 @@ public class IoOrderController extends BaseController {
ioAddInoutService.dealProcess(orderEntity);
checkInoutService.check(addOrderRequest.getBillNo());
}
} else {
return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!");
}
@ -1376,7 +1373,6 @@ public class IoOrderController extends BaseController {
}
public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) {

@ -23,4 +23,5 @@ public interface SysWorkplaceDao extends BaseMapper<SysWorkplace> {
List<SysWorkplaceResponse> getAllByBusType(String busTypeCode);
List<SysWorkplaceResponse> getListByBusType(@Param("request") SysWorkplaceRequest request);
}

@ -14,4 +14,7 @@ public interface IoCollectOrderCodeManMapper extends BaseMapper<IoCollectOrderCo
List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest);
IoCollectOrderCodeMan exitCode(CollectOrderCodeManRequest collectOrderCodeManRequest);
}

@ -65,14 +65,14 @@ public class RelCodeBatch implements Serializable {
*/
@TableField(value = "madeDate")
@ApiModelProperty(value="生产日期")
private Date madeDate;
private String madeDate;
/**
*
*/
@TableField(value = "validateDate")
@ApiModelProperty(value="有效期至")
private Date validateDate;
private String validateDate;
/**
*

@ -83,4 +83,9 @@ public class SyncDataSetEntity {
private int deviceUpkeep;//保养单
private int produceBusiness;//生产企业 PRODUCE_BUSINESS_DATA
/**
*
*/
private int drugDataTask;
}

@ -30,6 +30,8 @@ public class SysWorkplaceRequest extends ListPageRequest {
private List<Long> workPlaceIds;
private String chargeUser;
private String userId;
private String busType;
private Boolean userIdFlag;

@ -29,5 +29,6 @@ public class CollectOrderCodeManRequest extends ListPageRequest {
private Long updateUser;
private Long bizIdFk;
private String busType;
}

@ -46,12 +46,12 @@ public class RelCodeBatchRequest extends ListPageRequest {
/**
*
*/
private Date madeDate;
private String madeDate;
/**
*
*/
private Date validateDate;
private String validateDate;
/**
*

@ -63,4 +63,22 @@ public class RelCodeBatchResponse {
*
*/
private String lineManager;
/**
*
*/
private String cpmctymc;
/**
*
*/
private Integer bhxjsl;
/**
*
*/
private String packUnit;
/**
*
*/
private Integer packLayer;
}

@ -191,5 +191,7 @@ public class IoOrderDetailBizResponse {
private String prepnUnit;
private String action;
}

@ -0,0 +1,16 @@
package com.glxp.api.res.sync;
import com.glxp.api.entity.collect.RelCodeBatch;
import com.glxp.api.entity.collect.RelCodeDetail;
import lombok.Data;
import java.util.List;
@Data
public class SpsSyncDrugDataTaskResponse extends BaseSyncResponse {
public List<RelCodeBatch> relCodeBatches;
public List<RelCodeDetail> relCodeDetails;
}

@ -81,4 +81,15 @@ public class SysWorkplaceService extends ServiceImpl<SysWorkplaceDao, SysWorkpla
}
return true;
}
public List<SysWorkplaceResponse> getListByBusType(SysWorkplaceRequest request) {
if (null == request) {
return Collections.emptyList();
}
if (null != request.getPage() && null != request.getLimit()) {
PageHelper.offsetPage((request.getPage() - 1) * request.getLimit(), request.getLimit());
}
List<SysWorkplaceResponse> page = super.baseMapper.getListByBusType(request);
return page;
}
}

@ -285,7 +285,7 @@ public class UdiContrastService {
UdiProductEntity udiProductEntity = new UdiProductEntity();
BeanUtils.copyProperties(thrProductsEntity, udiProductEntity);
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
if (list.size() > 0) {
if (list != null && list.size() > 0) {
YbDrug ybDrug = list.get(0);
// udiProductEntity.setNameCode(thrProductsEntity.getCode());
udiProductEntity.setPrepnSpec(ybDrug.getRealityOutlook());

@ -273,7 +273,7 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
@Transactional(rollbackFor = Exception.class)
public void orderUpload(String billNo) {
public Boolean orderUpload(String billNo) {
IoCollectOrderBackup updateOrder = new IoCollectOrderBackup();
updateOrder.setBillNo(billNo);
try {
@ -285,5 +285,9 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
}
//更新状态
this.updateByBillNo(updateOrder);
if (updateOrder.getUploadStatus() == 3){
return false;
}
return true;
}
}

@ -82,6 +82,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
@Resource
UdiCalCountUtil calCountUtil;
@Resource
IoSplitCodeService splitCodeService;
public List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) {
if (collectOrderCodeManRequest == null) {
return Collections.emptyList();
@ -99,6 +102,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.eq(IoCollectOrderCodeMan::getOrderIdFk, billNo));
}
public IoCollectOrderCodeMan findByCode(String billNo, String code) {
return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo)
.eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1"));
@ -223,6 +227,19 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
// if (!b1) {
// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
// }
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被拆零!");
}
CollectOrderCodeManRequest collectOrderCodeManRequest = new CollectOrderCodeManRequest();
collectOrderCodeManRequest.setUdiCode(code);
collectOrderCodeManRequest.setBusType(sysWorkplaceDocumentEntity.getDocumentTypeCode());
IoCollectOrderCodeMan collectOrderCodeMan = collectOrderCodeManMapper.exitCode(collectOrderCodeManRequest);
if (collectOrderCodeMan != null && StrUtil.isNotEmpty(collectOrderCodeMan.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被其他单据关联!");
}
collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
case 1: //插入
@ -310,6 +327,19 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
throw new JsonException(500, "单据不存在!");
//按单不校验三期
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
CollectOrderCodeManRequest collectOrderCodeManRequest = new CollectOrderCodeManRequest();
collectOrderCodeManRequest.setUdiCode(code);
collectOrderCodeManRequest.setBusType(sysWorkplaceDocumentEntity.getDocumentTypeCode());
IoCollectOrderCodeMan collectOrderCodeMan = collectOrderCodeManMapper.exitCode(collectOrderCodeManRequest);
if (collectOrderCodeMan != null && StrUtil.isNotEmpty(collectOrderCodeMan.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被其他单据关联!");
}
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code);
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
throw new JsonException(500, "当前追溯码已被拆零!");
}
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
case 1: //插入
if (collectOrderBiz == null) {
@ -419,8 +449,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
return collectOrder;
}
@Resource
IoSplitCodeService splitCodeService;
/**
*
@ -524,4 +552,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
return remove(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo));
}
IoCollectOrderCodeMan exitCode(CollectOrderCodeManRequest collectOrderCodeManRequest) {
return collectOrderCodeManMapper.exitCode(collectOrderCodeManRequest);
}
}

@ -283,7 +283,7 @@ public class IoSplitDesOrderService extends ServiceImpl<IoSplitDesOrderMapper, I
}
// int newAvailableCount = splitFifoInv.getAvailableCount() - availableCount;
splitFifoInv.setAvailableCount(availableCount);//可用数量
splitFifoInv.setInCount(splitFifoInv.getInCount() - addInvDesDetaiRequest.getOutCount());
// splitFifoInv.setInCount(splitFifoInv.getInCount() - addInvDesDetaiRequest.getOutCount());
splitFifoInv.setUpdateTime(new Date());
//更改 库存
boolean update = ioSplitFifoInvService.updateById(splitFifoInv);

@ -6,6 +6,7 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.XmlUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.collect.RelCodeDetail;
@ -36,6 +37,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -97,9 +99,11 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
String batchNo = batchE.getAttribute("batchNo");
relCodeBatch.setBatchNo(batchNo);
String madeDate = batchE.getAttribute("madeDate");
relCodeBatch.setMadeDate(DateUtil.parse(madeDate,"yyyy-MM-dd"));
relCodeBatch.setMadeDate(madeDate);
// relCodeBatch.setMadeDate(DateUtil.parse(madeDate,"yyyy-MM-dd"));
String validateDate = batchE.getAttribute("validateDate");
relCodeBatch.setValidateDate(DateUtil.offsetDay(DateUtil.parse(validateDate,"yyyy-MM-dd"),1));
// relCodeBatch.setValidateDate(DateUtil.offsetDay(DateUtil.parse(validateDate,"yyyy-MM-dd"),1));
relCodeBatch.setValidateDate(String.valueOf(DateUtil.offsetDay(DateUtil.parse(validateDate,"yyyy-MM-dd"),1)));
String workShop = batchE.getAttribute("workShop");
relCodeBatch.setWorkShop(workShop);
String lineName = batchE.getAttribute("lineName");
@ -180,6 +184,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
return this.baseMapper.filterList(relCodeBatchRequest);
}
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
if(id == null){
throw new JsonException("id 不能为空");
@ -187,4 +192,34 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
relCodeDetailService.remove(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getBatchIdFk,id));
this.removeById(id);
}
@Transactional(rollbackFor = Exception.class)
public void addRelCodeSpellBox(List<RelCodeBatchRequest> relCodeBatchRequests) {
if (CollUtil.isEmpty(relCodeBatchRequests)){
throw new JsonException("单据信息异常!");
}
relCodeBatchRequests.forEach( item -> {
this.add(item);
});
}
@Transactional(rollbackFor = Exception.class)
public void deleteDetail(String curCode) {
List<RelCodeDetail> list = relCodeDetailService.list(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getParentCode, curCode));
if (CollUtil.isNotEmpty(list)){
List<Integer> batchIds = list.stream().map(RelCodeDetail::getBatchIdFk).collect(Collectors.toList());
this.removeBatchByIds(batchIds);
relCodeDetailService.remove(new LambdaQueryWrapper<RelCodeDetail>().in(RelCodeDetail::getBatchIdFk,batchIds));
}
}
@Transactional(rollbackFor = Exception.class)
public void deleteAllDetail(List<RelCodeDetailRequest> detailList) {
if (CollUtil.isNotEmpty(detailList)){
detailList.forEach( item -> {
String curCode = item.getCurCode();
this.deleteDetail(curCode);
});
}
}
}

@ -1,7 +1,9 @@
package com.glxp.api.service.collect;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.entity.basic.BasicProductsEntity;
@ -50,6 +52,11 @@ public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCo
if(cur == null){
throw new JsonException("产品信息不存在");
}
//是否已存在数据库中
List<RelCodeDetail> list = this.baseMapper.selectList(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getCurCode, curCode));
if (CollUtil.isNotEmpty(list)){
throw new JsonException("当前条码关联关系已被维护!");
}
if(StrUtil.isNotBlank(parentCode)){
if (parentCode.endsWith("\u001D")) {
parentCode = parentCode.replace("\u001D", "");
@ -80,7 +87,7 @@ public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCo
relCodeDetailResponse.setCurCode(curCode);
relCodeDetailResponse.setParentCode(parentCode);
relCodeDetailResponse.setPackLayer(Integer.valueOf(cur.getPackLevel()));
relCodeDetailResponse.setFlag(Integer.valueOf(cur.getMajorStatus()));
relCodeDetailResponse.setFlag(1);
relCodeDetailResponse.setCpmctymc(cur.getCpmctymc());
relCodeDetailResponse.setProductCode(cur.getNameCode());
relCodeDetailResponse.setBhxjsl(cur.getBhxjsl());

@ -1156,7 +1156,6 @@ public class IoCheckInoutService {
}
}
}
}
List<IoCodeEntity> backCodeList = new ArrayList<>();
@ -1165,18 +1164,13 @@ public class IoCheckInoutService {
backCodeList.add(codeEntity);
}
}
//更新预验收单为已被选入
OrderEditRequest orderEditRequest = new OrderEditRequest();
orderEditRequest.setOrderIds(orderList);
orderEditRequest.setPreInSelected(1);
orderService.updateBatchOrder(orderEditRequest);
genBackOrder(orderEntity, backCodeList);
}
} else { //按仓库货位退货
List<IoCodeEntity> backCodeList = new ArrayList<>();
@ -1249,6 +1243,7 @@ public class IoCheckInoutService {
//拆零预出库退回
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo());
fifoInvService.removeInv(codeList, orderEntity.getWorkPlaceCode());
splitFifoCodeService.updateAllInvAlert(orderEntity.getWorkPlaceCode());
}
}
}

@ -50,5 +50,5 @@ public interface IoCodeTempService {
Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity);
IoCodeTempEntity selectByCode(String code,String batchNo);
IoCodeTempEntity selectByCode(String code,String batchNo,String action);
}

@ -33,6 +33,9 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
*
*/
@Service
public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCodeEntity> {
@ -82,6 +85,11 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return null;
}
public IoSplitCodeEntity findByCode(String code) {
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
}
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode) {
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);

@ -154,10 +154,11 @@ public class IoCodeTempServiceImpl implements IoCodeTempService {
}
@Override
public IoCodeTempEntity selectByCode(String code,String batchNo) {
public IoCodeTempEntity selectByCode(String code,String batchNo,String action) {
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
ew.eq("code",code);
ew.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo);
ew.eq(StrUtil.isNotEmpty(action), "action", action);
return ioCodeTempDao.selectOne(ew);
}

@ -3,8 +3,12 @@ package com.glxp.api.service.sync;
import cn.hutool.core.bean.BeanUtil;
import com.glxp.api.dao.dev.*;
import com.glxp.api.dao.thrsys.ThrManufacturerMapper;
import com.glxp.api.entity.collect.RelCodeBatch;
import com.glxp.api.entity.collect.RelCodeDetail;
import com.glxp.api.entity.dev.*;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import com.glxp.api.service.collect.RelCodeBatchService;
import com.glxp.api.service.collect.RelCodeDetailService;
import com.glxp.api.service.dev.*;
import org.junit.Test;
import org.springframework.beans.BeanUtils;
@ -69,6 +73,7 @@ import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.glxp.api.constant.BasicProcessStatus.NEW_ALL_ORDER;
import static com.glxp.api.constant.BasicProcessStatus.NEW_ALL_UDIS;
@ -305,6 +310,12 @@ public class HeartService {
// if (needExec(info.getDeviceTask())) {
//默认开启
uploadData(exportType, taskId, x -> x.getDeviceTaskData(info, taskId, now, syncTime));
// }
break;
case DRUG_DATA_TASK:
// if (needExec(info.getDeviceTask())) {
//默认开启
uploadData(exportType, taskId, x -> x.getDrugDataTaskData(info, taskId, now, syncTime));
// }
break;
}
@ -1108,6 +1119,10 @@ public class HeartService {
@Resource
DeviceInspectTaskService deviceInspectTaskService;
@Resource
RelCodeDetailService relCodeDetailService;
@Resource
RelCodeBatchService relCodeBatchService;
@Resource
DeviceInspectTaskDetailService deviceInspectTaskDetailService;
@Value("${file_path}")
private String filePath;
@ -1164,6 +1179,50 @@ public class HeartService {
}
return dataResponse;
}
/**
* @param info
* @param taskId
* @param now
* @param syncTime
* @return
*/
private SpsSyncDrugDataTaskResponse getDrugDataTaskData(SyncDataSetEntity info, String taskId, Date now, Date syncTime) {
SpsSyncDrugDataTaskResponse dataResponse = null;
Map<String, Object> syncTimeMap = new WeakHashMap<>(3);
syncTimeMap.put("isNew", true);
boolean ge = false;
if (syncTime != null) {
ge = true;
}
StringBuffer remark = new StringBuffer();
if (needExec(info.getDrugDataTask())) {
Map<String, Object> map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.DRUG_DATA_TASK);
List<RelCodeBatch> relCodeBatches = relCodeBatchService.list(Wrappers.lambdaQuery(RelCodeBatch.class)
.le(!ge && (boolean) map.get("isNew"), RelCodeBatch::getUpdateTime, now)
.between(ge, RelCodeBatch::getUpdateTime, syncTime, now)
.between(!ge && !(boolean) map.get("isNew"), RelCodeBatch::getUpdateTime
, map.get("oldDate"), now)
);
if (CollectionUtil.isNotEmpty(relCodeBatches)) {
dataResponse = new SpsSyncDrugDataTaskResponse();
dataResponse.setRelCodeBatches(relCodeBatches);
//增加明细数据
List<Integer> batchIds = relCodeBatches.stream().map(RelCodeBatch::getId).collect(Collectors.toList());
List<RelCodeDetail> list = relCodeDetailService.list(Wrappers.lambdaQuery(RelCodeDetail.class)
.in(RelCodeDetail::getBatchIdFk,batchIds));
dataResponse.setRelCodeDetails(list);
remark.append("药品关联信息任务:").append(relCodeBatches.size()).append("条\n");
}
}
if (dataResponse != null) {
dataResponse.setTaskId(taskId);
dataResponse.setType(BasicExportTypeEnum.DRUG_DATA_TASK.getRemark());
dataResponse.setSyncRemark(remark.toString());
}
return dataResponse;
}
/**

@ -7,12 +7,15 @@ import com.glxp.api.entity.thrsys.YbDrug;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.YbDrugDetailFilterRequest;
import com.glxp.api.res.PageSimpleResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class YbDrugService {
@Resource
@ -25,10 +28,15 @@ public class YbDrugService {
ybHcflDetailFilterRequest.setLimit(1);
List<YbDrug> list = ybDrugMapper.list(ybHcflDetailFilterRequest);
if (CollUtil.isEmpty(list)){
List<YbDrug> list1 = new ArrayList<>();
try {
BaseResponse<PageSimpleResponse<YbDrug>> ybDrugDetail = erpBasicClient.getYbDrugDetail(ybHcflDetailFilterRequest);
PageSimpleResponse<YbDrug> data = ybDrugDetail.getData();
List<YbDrug> list1 = data.getList();
ybDrugMapper.batchSaveOrUpdateByGoodsCode(list1);
list1 = data.getList();
}catch (Exception e){
log.debug("获取国家同步库药品的信息错误",e);
}
if (CollUtil.isNotEmpty(list1)) ybDrugMapper.batchSaveOrUpdateByGoodsCode(list1);
return list1;
}
return list;

@ -42,8 +42,8 @@ public class SyncHeartTask implements SchedulingConfigurer {
triggerContext -> {
ScheduledRequest scheduledRequest = new ScheduledRequest();
scheduledRequest.setCronName("heartTask");
// ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = "0 0 0 1 * ?";
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity.getCron();
if (cron.isEmpty()) {
log.error("cron is null");
}

@ -60,4 +60,56 @@
</where>
GROUP BY sys_workplace.workplaceId
</select>
<select id="getListByBusType" resultType="com.glxp.api.res.basic.SysWorkplaceResponse">
select sw.*, aw.name invName,auth_user.employeeName as employeeName,scps.name as categoryName,
ad.name as deptCodeName
from sys_workplace sw
left join auth_dept ad on sw.deptCode = ad.code
left join auth_warehouse aw on sw.invCode = aw.code
left join auth_user on sw.chargeUser = auth_user.id
left join basic_collect_point_category scps on sw.constituencies = scps.code
left join sys_workplace_bus swb on sw.workplaceId = swb.workplaceCode
left join sys_workplace_document swd on swb.busTypeCode = swd.documentTypeCode
left join basic_collect_user bcu on bcu.workplaceCode = sw.workplaceId
<where>
<if test="request.key != null and request.key != ''">
AND (sw.workplaceName like concat('%', #{request.key}, '%')
or sw.workplaceId like concat('%', #{request.key}, '%')
or auth_user.employeeName like concat('%', #{request.key}, '%')
or sw.remake like concat('%', #{request.key}, '%')
)
</if>
<if test=" request.invCode != null and request.invCode != ''">
AND sw.invCode = #{request.invCode}
</if>
<if test=" request.deptCode != null and request.deptCode != ''">
AND sw.deptCode = #{request.deptCode}
</if>
<if test=" request.workplaceStatus != null">
AND sw.workplaceStatus = #{request.workplaceStatus}
</if>
<if test=" request.chargeUser != null and request.chargeUser != ''">
AND sw.chargeUser = #{request.chargeUser}
</if>
<if test=" request.userId != null and request.userId != ''">
AND bcu.userId = #{request.userId}
</if>
<if test=" request.code != null and request.code != ''">
AND scps.code = #{request.code}
</if>
<if test=" request.workPlaceClass != null and request.workPlaceClass != ''">
AND sw.workPlaceClass = #{request.workPlaceClass}
</if>
<if test=" request.busType != null and request.busType != ''">
AND swd.documentTypeCode = #{request.busType}
</if>
<if test=" request.workPlaceIds != null and request.workPlaceIds.size > 0">
AND sw.workplaceId IN
<foreach collection="request.workPlaceIds" item="workplaceId" index="index" open="(" close=")" separator=",">
#{workplaceId}
</foreach>
</if>
</where>
ORDER BY sw.deptCode, sw.chargeUser ,sw.workplaceId
</select>
</mapper>

@ -28,4 +28,20 @@
</where>
group by icocm.id
</select>
<select id="exitCode" parameterType="com.glxp.api.req.collect.CollectOrderCodeManRequest"
resultType="com.glxp.api.entity.collect.IoCollectOrderCodeMan">
SELECT *
FROM io_collect_order_code_man icocm
left join udi_wms_ct.io_collect_order bu on icocm.orderIdFk = bu.billNo
<where>
<if test="udiCode != '' and udiCode != null">
AND udiCode = #{udiCode}
</if>
<if test="busType != '' and busType != null">
AND busType = #{busType}
</if>
</where>
limit 1
</select>
</mapper>

@ -36,8 +36,13 @@
a.validateDate,
a.workShop,
a.lineName,
a.lineManager
a.lineManager,
bp.cpmctymc,
bp.bhxjsl,
bp.packLevel AS packLayer,
bp.packUnit
from rel_code_batch a
LEFT JOIN basic_products bp ON bp.nameCode = a.productCode
<where>
<if test="productCode != '' and productCode != null">
AND a.productCode LIKE concat('%', #{productCode}, '%')

@ -6,10 +6,12 @@
bp.ggxh,
bp.bzgg,
bp.prepnUnit,
bp.prepnSpec
bp.prepnSpec,
io.action
from io_order_detail_biz
left join basic_udirel bu on bu.id = io_order_detail_biz.bindRlFk
left join basic_products bp on bu.uuid = bp.uuid
left join io_order io on io.billNo = io_order_detail_biz.orderIdFk
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND orderIdFk = #{orderIdFk}

Loading…
Cancel
Save