代码备份

workplace
yewj 11 months ago
parent 88513a51f4
commit 4f5b4282e1

@ -102,7 +102,7 @@ public class IoCollectOrderCodeAutoController extends BaseController {
BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse);
for (IoCollectOrderCodeAuto collectOrderCodeAuto : collectOrderCodeAutos) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.emptyIfNull(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());

@ -156,7 +156,7 @@ public class IoCollectOrderController extends BaseController {
//拆零
for (IoCollectOrderCodeAuto collectOrderCodeAuto : splitCodes) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
@ -168,7 +168,7 @@ public class IoCollectOrderController extends BaseController {
//整取
for (IoCollectOrderCodeAuto collectOrderCodeAuto : unSplitCodes) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
@ -180,7 +180,7 @@ public class IoCollectOrderController extends BaseController {
//手动
for (IoCollectOrderCodeMan collectOrderCodeAuto : manList) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
@ -274,7 +274,7 @@ public class IoCollectOrderController extends BaseController {
collectOrder.setTagStatus(3);
collectOrder.setUpdateTime(new Date());
collectOrder.setUpdateUser(getUserId());
collectOrderService.updateById(collectOrder);
collectOrderService.updateByBillNo(collectOrder);
return ResultVOUtils.success();
}

@ -635,10 +635,10 @@ public class IoCodeTempController extends BaseController {
BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity);
genDetaiEntity.setCount(1);
genDetaiEntity.setReCount(udiCalCountUtil.getActCount(udiRelevanceResponses.get(0)));
genDetaiEntity.setReCount(udiCalCountUtil.getSplitActCount(udiRelevanceResponses.get(0)));
exitLocalEntity.setCount(exitLocalEntity.getMyCount() + 1);
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponses.get(0)));
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getSplitActCount(udiRelevanceResponses.get(0)));
if (!StringUtils.isBlank(exitLocalEntity.getSerialNo())) {
@ -770,7 +770,7 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
}
//计算实际数量
codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponse));
codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getSplitActCount(udiRelevanceResponse));
} else if (udiRelevanceResponses.size() == 0) {
if (unitFk == null)
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
@ -1031,10 +1031,10 @@ public class IoCodeTempController extends BaseController {
BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity);
genDetaiEntity.setCount(1);
genDetaiEntity.setReCount(udiCalCountUtil.getActCount(udiRelevanceResponses.get(0)));
genDetaiEntity.setReCount(udiCalCountUtil.getSplitActCount(udiRelevanceResponses.get(0)));
exitLocalEntity.setCount(exitLocalEntity.getMyCount() + 1);
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponses.get(0)));
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getSplitActCount(udiRelevanceResponses.get(0)));
if (!StringUtils.isBlank(exitLocalEntity.getSerialNo())) {
@ -1163,7 +1163,7 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(500, "当前上货只允许录入拆零产品!");
}
//计算实际数量
codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponse));
codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getSplitActCount(udiRelevanceResponse));
} else if (udiRelevanceResponses.size() == 0) {
if (unitFk == null)
return ResultVOUtils.error(500, "耗材字典不存在此产品!");

@ -126,7 +126,7 @@ public class IoSplitController extends BaseController {
* @return
*/
@PostMapping("/udiwms/ioSplit/material/order/split")
public BaseResponse startSplit(@RequestBody AddTagCodeReqeust addTagCodeReqeust,
public BaseResponse startSplit(@RequestBody AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) {
IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
if (collectOrder == null) {

@ -20,4 +20,7 @@ public interface SysWorkplaceDao extends BaseMapper<SysWorkplace> {
Long selectMaxWorkplaceId();
List<SysWorkplaceResponse> filterList(@Param("request") SysWorkplaceRequest request);
List<SysWorkplace> getAllByBusType(String busTypeCode);
}

@ -1,5 +1,6 @@
package com.glxp.api.res.collect;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
@ -91,6 +92,14 @@ public class IoCollectOrderResponse {
private String fromTypeName;
private String fromCorpName;
private String workplaceName;
private String fromName;
public String getFromName() {
if (StrUtil.isNotEmpty(fromCorpName))
return fromCorpName;
if (StrUtil.isNotEmpty(fromCorp))
return fromCorp;
return fromName;
}
}

@ -11,6 +11,7 @@ import com.glxp.api.req.auth.SysWorkplaceRequest;
import com.glxp.api.res.basic.SysWorkplaceResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@ -21,7 +22,8 @@ import java.util.List;
*/
@Service
public class SysWorkplaceService extends ServiceImpl<SysWorkplaceDao, SysWorkplace> {
@Resource
SysWorkplaceDao sysWorkplaceDao;
public Long maxWorkplaceId() {
return super.baseMapper.selectMaxWorkplaceId();
@ -49,8 +51,9 @@ public class SysWorkplaceService extends ServiceImpl<SysWorkplaceDao, SysWorkpla
new LambdaQueryWrapper<SysWorkplace>().eq(SysWorkplace::getOrderId, code).last("limit 1"));
}
public List<SysWorkplace> getAllByBusType(String code) {
//sysWorkplaceDao.getAllByBusType(code); 切换成单据类型关联的
return super.baseMapper.selectList(
new LambdaQueryWrapper<SysWorkplace>().eq(SysWorkplace::getOrderId, code));
}

@ -1,11 +1,10 @@
package com.glxp.api.service.collect;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.collect.IoCollectOrderMapper;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.basic.BasicCollectBustypeEntity;
@ -24,10 +23,7 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.BasicCollectBustypeService;
import com.glxp.api.service.basic.BasicSkPrescirbeDetailService;
import com.glxp.api.service.basic.BasicSkPrescribeService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.IoCodeTempService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
@ -52,6 +48,11 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
return collectOrderMapper.selectOne(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo).last("limit 1"));
}
public int updateByBillNo(IoCollectOrder collectOrder) {
return collectOrderMapper.update(collectOrder, new UpdateWrapper<IoCollectOrder>().eq("billNo", collectOrder.getBillNo()));
}
public List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest) {
if (collectOrderRequest == null) {
return Collections.emptyList();
@ -126,6 +127,10 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
@Resource
SysWorkplaceService sysWorkplaceService;
@Resource
SysWorkplaceDocumentService sysWorkplaceDocumentService;
public void importUdi() {
//下载UDI内部单据
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
@ -136,16 +141,18 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
List<IoOrderResponse> list = orderService.filterList(filterOrderRequest);
List<IoCollectOrder> collectOrderList = new ArrayList<>();
for (IoOrderResponse ioOrderEntity : list) {
BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(ioOrderEntity.getAction());
if (collectBustypeEntity == null)
continue;
if (collectOrderMapper.exists(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) {
continue;
}
BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(ioOrderEntity.getAction());
if (collectBustypeEntity == null)
continue;
List<SysWorkplace> sysWorkplaces = sysWorkplaceService.getAllByBusType(collectBustypeEntity.getCode());
//自动分配工位
final Long[] defaultWorkplace = {null};
List<SysWorkplace> sysWorkplaces = sysWorkplaceService.getAllByBusType(collectBustypeEntity.getCode());
if (CollUtil.isNotEmpty(sysWorkplaces)) {
if (sysWorkplaces.size() == 1) {
defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId();

@ -152,7 +152,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//处方赋码状态 1未赋码2部分赋码3全部赋码
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
if (IntUtil.value(collectOrderBiz.getTagStatus()) == 3) {
continue;
}
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
@ -238,6 +240,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
collectOrderBiz.setTagMsg("赋码完成!");
}
}
} else {
collectOrderBiz.setTagStatus(3);
collectOrderBiz.setTagMsg("赋码完成!");
}
collectOrderBiz.setUnTagCount(unCount);
collectOrderBizService.updateById(collectOrderBiz);
@ -318,6 +323,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
public int checkStatus(List<IoCollectOrderBiz> list) {
boolean hasTwo = false;
boolean hasOne = false;
boolean hasNone = true;
for (IoCollectOrderBiz di : list) {
int tagStatus = di.getTagStatus();
if (tagStatus == 2) {
@ -328,6 +334,15 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
throw new IllegalArgumentException("Invalid tagStatus value: " + tagStatus);
}
}
for (IoCollectOrderBiz di : list) {
if (IntUtil.value(di.getCount()) != IntUtil.value(di.getUnTagCount())) {
hasNone = false;
break;
}
}
if (hasNone) {
return 1;
}
if (hasTwo) {
return 2;
} else if (hasOne) {

@ -103,6 +103,10 @@ public class UdiCalCountUtil {
return getSplitActCount(udiRelevanceService.selectGroupById(relId));
}
// public int getSplitLtCount(){
//
// }
public int getActCount(IoCodeTempEntity codeTempEntity) {
if (codeTempEntity.getRelId() != null) {

@ -4,7 +4,7 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://192.168.0.43:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://192.168.0.166:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
hikari:

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.auth.SysWorkplaceDao">
<select id="selectMaxWorkplaceId" resultType="java.lang.Long">
SELECT MAX(workplaceId)
FROM sys_workplace
@ -10,11 +9,11 @@
select sw.*, aw.name invName,auth_user.employeeName as employeeName,scps.name as categoryName,
bcb.code as busTypeCode,bcb.name as busTypeName,bcb.fromType as fromTypeName,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 basic_collect_bustype bcb on sw.orderId = bcb.code
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 basic_collect_bustype bcb on sw.orderId = bcb.code
<where>
<if test="request.key != null and request.key != ''">
AND (sw.workplaceName like concat('%', #{request.key}, '%')
@ -35,4 +34,16 @@
</where>
ORDER BY sw.workplaceId
</select>
<select id="getAllByBusType" resultType="com.glxp.api.res.basic.SysWorkplaceResponse">
select sys_workplace.* from sys_workplace_document INNER JOIN sys_workplace on
sys_workplace_document.workplaceCode = sys_workplace.workplaceId
<where>
<if test=" busTypeCode != null and busTypeCode != ''">
AND sys_workplace_document.documentTypeCode = #{busTypeCode}
</if>
</where>
GROUP BY sys_workplace.workplaceId
</select>
</mapper>

@ -3,16 +3,19 @@
<mapper namespace="com.glxp.api.dao.collect.IoCollectOrderMapper">
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderRequest"
resultType="com.glxp.api.res.collect.IoCollectOrderResponse">
SELECT ico.*,
bcb.name busTypeName,
bcb.fromType fromTypeName,
bc.name fromCorpName,
sw.workplaceId workPlaceCode,
sw.workplaceName
SELECT
ico.billNo,ico.busType,ico.fromType,ico.fromTypeDesc,ico.fromCorp,ico.billTime,
ico.createTime,ico.workPlaceCode,ico.remark,ico.createUser,ico.updateTime,ico.updateUser,ico.tagStatus,ico.splitStatus,ico.splitMsg
,ico.tagMsg,
bcb.name busTypeName,
bcb.fromType fromTypeName,
bc.name fromCorpName,
sw.workplaceId workPlaceCode,
sw.workplaceName
FROM io_collect_order ico
left join basic_collect_bustype bcb on ico.busType = bcb.code
left join basic_corp bc on ico.fromCorp = bc.erpId
left join sys_workplace sw on ico.workPlaceCode = sw.workplaceId
left join basic_collect_bustype bcb on ico.busType = bcb.code
left join basic_corp bc on ico.fromCorp = bc.erpId
left join sys_workplace sw on ico.workPlaceCode = sw.workplaceId
<where>
<if test="billNo != '' and billNo != null">
AND billNo LIKE concat('%', #{billNo}, '%')
@ -42,7 +45,7 @@
AND workPlaceCode = #{workPlaceCode}
</if>
<if test="tagStatusList != null and tagStatusList.size() > 0">
and tagStatus in
and tagStatus in
<foreach collection="tagStatusList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>

Loading…
Cancel
Save